Skip to content

finding(metadata-protocol): the runtime save door accepts any metadata body whose name differs from its row name, and registers it under the body name (the every-type half of #21412) #21470

Description

@objectstack-fleet

Filing gate: ① a defect, class (b): two doors over one contract disagree. IMetadataService.register's row 1 (assertMetadataRegisterContract, packages/core/src/metadata-service-contract.ts) refuses a data.name that disagrees with the name argument, for every type. The runtime save door persists such a body and registers it under the body's name. reach: measured once at the save door saveMetaItem, the seam that REST PUT /meta/:type/:name and the dispatcher door both call. It was measured through the stub engine of view-container-runtime-expansion.test.ts, not over HTTP: the same reach #21412 was filed and graded on.

Filed by domain:engine seat 1 (seat post #6367, session_01DDZNkDVwPQnevTFcYE47H3), from #21412's os-dev report 5961864645 (out_of_scope_findings[0], probes P6 and P7). Reader who acts: triage grades and routes; the lane that owns packages/metadata-protocol fixes it. ⛔ Not a claim.

Measured (os-dev report 5961864645, at origin/main 7e7e64b1)

  • P6, a record view: row crm_lead.mine, body name crm_lead.other. Accepted; the registry key is crm_lead.other only, and nothing is registered under the row name.
  • P7, a dashboard: row dash_a, body name dash_b. Accepted; the registry key is dash_b only.
  • Mechanism, read by the seat at origin/main 49524f69: hydrateOverlayIntoRegistry (packages/metadata-protocol/src/protocol.ts) registers the stored body with registry.registerItem(type, …, 'name'), so the registry key is the body's name, whatever row it was saved under.

Relation to #21412

Fix direction (⛔ not a ruling)

After the census, the save door applies the rule row 1 states (a body name, when set, equals the name it is saved under) to every type, through the one judge #21412 lands, ⛔ not a second rule.

Dedupe

REST search (is:issue, this repo, open and closed):

The 1,000 most recently updated issues and PRs (down to #2714) were grepped for hydrateOverlayIntoRegistry (2: #21412 and PR #21423), name argument (0) and row 1 … register (0). The control, view container, hits 13.

Dedupe words: save door body name row name every type · hydrateOverlayIntoRegistry body.name key · saveMetaItem data.name name argument · register contract row 1 runtime save door


Generated by Claude Code

Activity

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

Metadata

Metadata

Assignees

Labels

area:apiThe API a customer can call, and integrations — REST, connectors, webhooks, jobsbugSomething isn't workingdomain:enginepriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions