You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
metadata: the layered read of a shipped flow name reports a stored row as the effective layer, so after #20946 it disagrees with the by-name read and the list (and the published-snapshot read serves that layer) #21002
What. Take a flow name the loader ships from a managed package, where an environment-wide active stored row of that name is at rest. GET /api/v1/meta/flow/NAME/layers answers 200, and its effective layer is the stored row's body. The response's provenance and lock flags name the package.
Measured by the #20946 dev (report 5922452902, open question 1, and PR #20994's out-of-scope finding). The measurement was on the showcase composition with a database file, over a cold boot: 200, the effective layer is the stored body, both before and after PR #20994. The contract review 5922658606 on PR #20994 confirms it by source reading at the head.
The same family, one more door, by source reading only (not measured):
The doors: the published-snapshot read, GET /api/v1/meta/flow/NAME/published (packages/rest/src/rest-server.ts, about :8270-8430), and its runtime-dispatcher twin in packages/runtime/src/domains/meta.ts.
What they do: both read getMetaItemLayered, and when the overlay layer is present they serve that layer as the response. For a shipped flow name with a stored row, that is the stored body.
The doors that reach getMetaItemLayered for this case:
the layered door, /meta/flow/NAME/layers;
the deprecated layers query flag on the by-name door;
the runtime dispatcher's layered answer;
the published-snapshot door and its dispatcher twin.
Reach: the same at-rest state #20913 and #20946 name. It is an environment-wide, active flow row whose name the loader ships. It arises from the operator's writable-metadata hatch or a direct store write; every authoring door refuses the write as a locked base since #20679 and #20853. The Studio diff tab is the layered read's named consumer.
Governing text:
ADR-0126 §2 (flow is Regime C): "⛔ Never silent override, never an overlay read path".
Still open: whether the stored row still shows as a separate layer for diagnosis, and what the published-snapshot door answers. Both are triage's or the fix's call.
Where it likely lands (for triage):getMetaItemLayered in packages/metadata-protocol/src/protocol.ts, and possibly the published door's choice of layer in packages/rest/src/rest-server.ts and packages/runtime/src/domains/meta.ts.
⚠️ This card derives from the security card #20761. Keep public text on doors, roles, codes and statuses, with no request-body, header or field spelling.
Filed by the domain:cli seat (session_01VvcEokUG1tvVxkceYfR5XB). It is unlabelled, for triage.
Dedupe words: meta flow layers effective stored row shipped name · layered read effective overlay flow regime C · published snapshot flow stored row served · getMetaItemLayered effective disagrees with getMetaItem
What. Take a flow name the loader ships from a managed package, where an environment-wide active stored row of that name is at rest.
GET /api/v1/meta/flow/NAME/layersanswers200, and its effective layer is the stored row's body. The response's provenance and lock flags name the package.getMetaItemLayeredinpackages/metadata-protocol/src/protocol.tscomputes the effective layer as overlay-wins:effectiveBase = overlay !== null ? … overlay … : code. That is about:9378-9381on PR fix(metadata-protocol): the by-name read of a shipped flow name serves the loader's body, as the list does (#20946) #20994's head07843e6889.:9042-9044) states the effective layer is "whatgetMetaItemwould return".getMetaItemanswers the loader's body for such a name, as the flow list and the execution view have since PR fix(service-automation, metadata-protocol): a shipped flow name arms the loader's body at both boot steps, and a stored row of that name is reported as shadowed (#20913) #20942 (automation: atkernel:readythe flow sync re-arms a stored row's body over the loader's for a packaged flow name, after the boot pull armed the loader's, so the stored body runs while the receipt says the package's is armed #20913). The layered read is then the one read door that disagrees about that name, and its docblock is false for it.Measured by the #20946 dev (report
5922452902, open question 1, and PR #20994's out-of-scope finding). The measurement was on the showcase composition with a database file, over a cold boot:200, the effective layer is the stored body, both before and after PR #20994. The contract review5922658606on PR #20994 confirms it by source reading at the head.The same family, one more door, by source reading only (not measured):
GET /api/v1/meta/flow/NAME/published(packages/rest/src/rest-server.ts, about:8270-8430), and its runtime-dispatcher twin inpackages/runtime/src/domains/meta.ts.getMetaItemLayered, and when the overlay layer is present they serve that layer as the response. For a shipped flow name with a stored row, that is the stored body.The doors that reach
getMetaItemLayeredfor this case:/meta/flow/NAME/layers;Reach: the same at-rest state #20913 and #20946 name. It is an environment-wide, active flow row whose name the loader ships. It arises from the operator's writable-metadata hatch or a direct store write; every authoring door refuses the write as a locked base since #20679 and #20853. The Studio diff tab is the layered read's named consumer.
Governing text:
flowis Regime C): "⛔ Never silent override, never an overlay read path".5904938166): a body's package-provenance stamps are display only.getMetaItemwould return.Remedy shape named by the review, not chosen here:
sys_metadatafamily goes tenant-less; the per-organization overlay axis retires; managed content is sealed (ADR-0131 D6/D7/D13) #15206's (pm:blocked).Where it likely lands (for triage):
getMetaItemLayeredinpackages/metadata-protocol/src/protocol.ts, and possibly the published door's choice of layer inpackages/rest/src/rest-server.tsandpackages/runtime/src/domains/meta.ts.kernel:readythe flow sync re-arms a stored row's body over the loader's for a packaged flow name, after the boot pull armed the loader's, so the stored body runs while the receipt says the package's is armed #20913 (the list and execution faces), feat(metadata-core,metadata-protocol,objectql,plugin-security): thesys_metadatafamily goes tenant-less; the per-organization overlay axis retires; managed content is sealed (ADR-0131 D6/D7/D13) #15206, and epic Epic: packaged-metadata customization (ADR-0126) — flows first, v17 line #12150.securitycard #20761. Keep public text on doors, roles, codes and statuses, with no request-body, header or field spelling.Filed by the
domain:cliseat (session_01VvcEokUG1tvVxkceYfR5XB). It is unlabelled, for triage.Dedupe words:
meta flow layers effective stored row shipped name·layered read effective overlay flow regime C·published snapshot flow stored row served·getMetaItemLayered effective disagrees with getMetaItem