Merge pull request 'feat(workspaces): update_tier column for canary vs production fan-out' (#124) from feat/canary-tier-filter into main
Some checks failed
CodeQL / Analyze (${{ matrix.language }}) (go) (push) Successful in 5s
CodeQL / Analyze (${{ matrix.language }}) (javascript-typescript) (push) Successful in 6s
CodeQL / Analyze (${{ matrix.language }}) (python) (push) Successful in 19s
Block internal-flavored paths / Block forbidden paths (push) Successful in 35s
CI / Detect changes (push) Successful in 34s
E2E API Smoke Test / detect-changes (push) Successful in 17s
Handlers Postgres Integration / detect-changes (push) Successful in 25s
publish-workspace-server-image / build-and-push (push) Failing after 25s
Secret scan / Scan diff for credential-shaped strings (push) Successful in 26s
E2E Staging Canvas (Playwright) / detect-changes (push) Successful in 29s
Runtime PR-Built Compatibility / detect-changes (push) Successful in 28s
Harness Replays / detect-changes (push) Successful in 29s
CI / Canvas (Next.js) (push) Successful in 10s
CI / Shellcheck (E2E scripts) (push) Successful in 8s
CI / Python Lint & Test (push) Successful in 23s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (push) Successful in 12s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (push) Successful in 8s
Harness Replays / Harness Replays (push) Failing after 22s
CI / Canvas Deploy Reminder (push) Has been skipped
E2E API Smoke Test / E2E API Smoke Test (push) Successful in 2m35s
Handlers Postgres Integration / Handlers Postgres Integration (push) Successful in 7m31s
CI / Platform (Go) (push) Successful in 13m59s
Canary — staging SaaS smoke (every 30 min) / Canary smoke (push) Failing after 3m56s
Some checks failed
CodeQL / Analyze (${{ matrix.language }}) (go) (push) Successful in 5s
CodeQL / Analyze (${{ matrix.language }}) (javascript-typescript) (push) Successful in 6s
CodeQL / Analyze (${{ matrix.language }}) (python) (push) Successful in 19s
Block internal-flavored paths / Block forbidden paths (push) Successful in 35s
CI / Detect changes (push) Successful in 34s
E2E API Smoke Test / detect-changes (push) Successful in 17s
Handlers Postgres Integration / detect-changes (push) Successful in 25s
publish-workspace-server-image / build-and-push (push) Failing after 25s
Secret scan / Scan diff for credential-shaped strings (push) Successful in 26s
E2E Staging Canvas (Playwright) / detect-changes (push) Successful in 29s
Runtime PR-Built Compatibility / detect-changes (push) Successful in 28s
Harness Replays / detect-changes (push) Successful in 29s
CI / Canvas (Next.js) (push) Successful in 10s
CI / Shellcheck (E2E scripts) (push) Successful in 8s
CI / Python Lint & Test (push) Successful in 23s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (push) Successful in 12s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (push) Successful in 8s
Harness Replays / Harness Replays (push) Failing after 22s
CI / Canvas Deploy Reminder (push) Has been skipped
E2E API Smoke Test / E2E API Smoke Test (push) Successful in 2m35s
Handlers Postgres Integration / Handlers Postgres Integration (push) Successful in 7m31s
CI / Platform (Go) (push) Successful in 13m59s
Canary — staging SaaS smoke (every 30 min) / Canary smoke (push) Failing after 3m56s
This commit is contained in:
commit
cc28cc6607
@ -0,0 +1,2 @@
|
||||
DROP INDEX IF EXISTS workspaces_update_tier_canary;
|
||||
ALTER TABLE workspaces DROP COLUMN IF EXISTS update_tier;
|
||||
@ -0,0 +1,26 @@
|
||||
-- workspaces.update_tier — canary vs production filter for plugin updates
|
||||
-- (core#115). Composes with the version-subscription DB foundation
|
||||
-- (core#113, merged) and the upcoming drift+queue+apply endpoint
|
||||
-- (core#123).
|
||||
--
|
||||
-- Tiers:
|
||||
-- 'production' (default) — fan-out target; only updated AFTER canary soak
|
||||
-- 'canary' — early-adopter target; updates land here first
|
||||
--
|
||||
-- Default 'production' so existing customers (Reno-Stars + any future
|
||||
-- live tenant) are default-safe. Synthetic dogfooding workspaces opt
|
||||
-- INTO 'canary' explicitly.
|
||||
--
|
||||
-- The column is just metadata at this layer; the actual filter logic
|
||||
-- ('apply this update only to canary tier first') lives in the future
|
||||
-- POST /admin/plugin-updates/:id/apply endpoint (core#123).
|
||||
|
||||
ALTER TABLE workspaces
|
||||
ADD COLUMN IF NOT EXISTS update_tier TEXT NOT NULL DEFAULT 'production'
|
||||
CHECK (update_tier IN ('canary', 'production'));
|
||||
|
||||
-- Partial index for the apply endpoint's canary-tier scan: only
|
||||
-- index canary rows since the apply path queries them most often
|
||||
-- and the production set is the much larger default.
|
||||
CREATE INDEX IF NOT EXISTS workspaces_update_tier_canary
|
||||
ON workspaces(update_tier) WHERE update_tier = 'canary';
|
||||
Loading…
Reference in New Issue
Block a user