Repository navigation
feat(metaschema-modules): storage_module.region; storage coordinates are DB-only - #133
pyramation wants to merge 1 commit into
Conversation
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
|
Review complete. 🟠 1 high 💬 Inline comments (1)
🧹 Nitpicks (1) — 🟢 1 low
This PR extends the
The high-severity finding concerns migration mechanics (in-place edit of a deployed change vs. a new Reviewed commit: 8cc1bee |
There was a problem hiding this comment.
Adds a nullable region column and rustfs provider to the storage_module table, but edits an already-shipped deploy change in place instead of adding a new change.
Key findings
- 🟠 Add
regionvia new change, not in-place edit — table.sql:78
Summary
Adds
region text NULLtometaschema_modules_public.storage_module, in place in the existing table definition. The comment on the connection columns now describes them as the only source of storage coordinates, where they used to be "NULL = use global env/plugin defaults".sql/metaschema-modules--0.47.0.{sql,bundle.tar.gz}were regenerated withpgpm package. The only SQL change is the new column.The same edit is in constructive-db's vendored mirror (
pgpm-modules/metaschema-modules). This repo is the one npm publishes from: the@pgpm/metaschema-modules@0.47.0gitHeadis65abdcd9(v0.47.0) here.Spec: constructive-io/constructive-planning#2161 (context #2136).
Single source of truth
metaschema_modules_public.storage_moduleholdsendpoint,provider,region(new column, added in place) andpublic_url_prefix. Buckets get their physical identity from each bucket row'sphysical_name.scope = 'platform',key = 'default'row.coalesce(sm.x, psm.x)inside the query that is already cached, so there's no extra DB read.platform_configandplatform_secretshold no storage coordinates.STORAGE_ACCESS_KEY_ID/STORAGE_SECRET_ACCESS_KEY. Each storage consumer requires them and fails fast with an error naming both. There are no aliases and no fallbacks.Merge / publish order (4 PRs)
devin/1791334000-storage-region: merge, then publish@pgpm/metaschema-modules(the next lerna release after 0.47.0). This repo is what npm publishes. constructive-db'spgpm-modules/is a vendored mirror (docs/architecture/npm-publication-sources.md).devin/1791334000-storage-db-driven: bump the rootpgpm.jsonfixture@pgpm/metaschema-modulesto that release (re-runpnpm fixtures:install). The storage suites needstorage_module.region, so they only pass after that bump. Merge, then publish thegraphile-*,@constructive-io/*andpgpmpackages.devin/1791334000-storage-db-driven(targetsmain): CI doesn't depend on any publish. Before deploying, bump@constructive-io/graphql-server/graphile-settingsto the step-2 releases (the published ones before that still readCDN_*). Relabel the mirror to the step-1 version.devin/1791334000-storage-db-driven: apply only together with a release promotion that pins images built from steps 2 and 3. The bootstrap writesstorage_module.region, and pods no longer getCDN_*/BUCKET_*.Link to Devin session: https://app.devin.ai/sessions/f3fd69925240491c9d7507d3b97aa5cb
Open in Devin Desktop: https://app.devin.ai/desktop/session/f3fd69925240491c9d7507d3b97aa5cb?variant=devin
Requested by: @pyramation