Happy New Year!
For your use case (small, not user specific, non-sensitive data, changes 1-2x/year), I might recommended WEDGE_ADDRESS_CONFIGS.
WEDGE_ADDRESS_CONFIGS stores configuration data in the Q2 database (WedgeAddress table) and is specifically designed for configuration data that may change occasionally. You can define default values in your extension code, and then update them later via the Configuration Editor on Q2Developer.com (available under Self Service) without requiring any code changes or redeployment.
These resources provide excellent explanations of the use cases and reasoning behind WEDGE_ADDRESS_CONFIGS.:
Tutorial: https://docs.q2developer.com/tutorials/online_banking/configuration.html
Video: https://cdn.q2developer.com/sdk/docs/video/Configuration.mp4
Implementation Example:
class YourExtensionHandler(Q2TectonServerRequestHandler):
WEDGE_ADDRESS_CONFIGS = DbConfigList([
DbConfig('display_data', json.dumps([
{"attr1": "value1", "attr2": "value2", ...},
{"attr1": "value1", "attr2": "value2", ...},
{"attr1": "value1", "attr2": "value2", ...}
]))
])
async def default(self):
data = json.loads(self.wedge_address_configs['display_data'])
# Use your data in your extension