Account Options
Account Options is the global key/value store for
account-wide settings — units, defaults, feature flags, reusable
metadata. Think org-wide preferences, not per-event constants.
Find it at Admin → Account Options in the ribbon. Route:
/admin/account-options. API: GET / PATCH /account-options.
How it's modelled
A single account-scoped row keyed by accountId. The body is a
JSON object with whatever keys you want. The schema validates
loose JSON — there is no fixed key list.
{
"options": {
"defaultUnits": "metric",
"lapTimeFormat": "M:SS.fff",
"fuelDensityKgPerL": 0.745,
"anomalyEmail": "ops@team.example",
...
}
}
Where the values get used
- The Flutter client reads
accountOptionsProviderand uses keys it understands (units defaults, time format) to override its own fallbacks. - Math expressions can reference account options through the
Account.option(key)scope (resolved at evaluation time). - Plugins requesting
storagecapability get a per-plugin view scoped under the same row.
What you can do today
- Author free-form keys + JSON values via the admin
- PATCH partial updates — only the keys you send are merged
- Read the same blob from any client via
GET /account-options
What's coming
- Schema-validated keys — declare expected keys + types up front so typos surface as errors, not silent data
- Per-event overrides — today, Event Data is the parallel surface for per-event constants; we want to layer the two cleanly
- History — see who changed what, when