Skip to content

feature(multitenancy): Correct instance-wide default config for cron jobs under multitenancy - #136

Merged
oleksandrd-flamingo merged 1 commit into
mainfrom
fix/openframe-unpinned-app-config-reads
Aug 31, 2026
Merged

feature(multitenancy): Correct instance-wide default config for cron jobs under multitenancy#136
oleksandrd-flamingo merged 1 commit into
mainfrom
fix/openframe-unpinned-app-config-reads

Conversation

@oleksandrd-flamingo

@oleksandrd-flamingo oleksandrd-flamingo commented Aug 31, 2026

Copy link
Copy Markdown

Correct instance-wide default config for cron jobs under multitenancy

Under shared-DB multitenancy, unpinned readers — every cron, worker, and the boot path — read app_config_json with a bare LIMIT 1, returning an arbitrary row.

Changes:

  • Deterministic reads (app_configs.go): unpinned multitenant reads now select the instance row WHERE id = 1;
  • pinned reads keep their tenant row;
  • non-multitenant deployments keep the upstream statement byte-identical. A missing row falls back to OpenframeDefaultAppConfig() instead of a zero-value config.
  • Migration 20260831000001: seeds the instance row with openframe defaults if absent, repairs a degenerate one via JSON_MERGE_PATCH (feature flags only, sibling keys untouched), and reserves team id 1 (AUTO_INCREMENT = 2) so no tenant config can collide with the instance row. Idempotent; tenant rows never touched.

Docs updated (multitenancy contract + fork manifest); OpenframeDefaultAppConfig moved to server/fleet (migration can't import the mysql package).

Tests: pure decision-table tests + MySQL-backed tests for row selection, seed, repair, and team-id-1 reservation (MYSQL_TEST=1, all green).

No API changes

Backward compatible in both rollout directions (old binary on migrated DB and vice versa are safe).

…nfig for cron jobs under multitenancy

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@oleksandrd-flamingo
oleksandrd-flamingo enabled auto-merge (squash) August 31, 2026 15:45
@oleksandrd-flamingo oleksandrd-flamingo changed the title feature(multitenancy): CU-86ajn9j8t: Correct instance-wide default config for cron jobs under multitenancy feature(multitenancy): Correct instance-wide default config for cron jobs under multitenancy Aug 31, 2026
@oleksandrd-flamingo
oleksandrd-flamingo merged commit 9886832 into main Aug 31, 2026
5 checks passed
@oleksandrd-flamingo
oleksandrd-flamingo deleted the fix/openframe-unpinned-app-config-reads branch August 31, 2026 15:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants