Skip to content

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

Description

@objectstack-fleet

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:

Remedy shape named by the review, not chosen here:

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:accessPermissions that actually hold — RLS/FLS, sharing model, write-path guardsbugSomething isn't workingdomain:clipriority:p1High: required for production / M2security

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions