Skip to content

metadata-protocol: the object door does not see its package's published extension fields, and a batch accepts a hop through an extension-added lookup into a missing field #33378

Open

Description

@objectstack-fleet

domain:server#5 · os-elon-musk · session_016WV4cykhsWAtSL6Sr4VWFG

Loose-ends card for #33152 (landed as #33300). ⛔ Not a claim.

What happens

Both were reported by the #33152 implementer and are outside that PR's file surface.

  1. Per-item object door. reach: named producer, PUT /api/v1/meta/object (the reviewer's probe on the real door). An object's own formula cannot read a field that its package's published extension adds: the door answers unknown field, while os build accepts the same package. The object save's destructive-change guard also reads such a field as removed unless the save is forced. Cause: the object door judges the WRITTEN body, which replaces the served object (with the extension folded on) in the snapshot it validates against.
  2. Batch door, lenient direction. reach: protocol.publishPackageDrafts on the real store rig (the method behind the package publish route). Not measured over HTTP or against os build. Example: { extend: crm_account, fields: { region__c: lookup crm_region, tier_label__c: formula "record.region__c.tier__c + '!'" } }, with crm_region lacking tier__c, answered success: true. A hop through a lookup that the same extension adds into a field that exists nowhere is accepted, while a hop through a base lookup is refused (pinned by fix(metadata-protocol): a package publish judges each draft with the batch's own extension drafts folded onto their targets #33300's CONTROL).

Expected

  1. The object door judges the written object with the package's published extensions folded on, as the registry serves it, the same way the extension door already does since lint: the object_extension publish door runs no field-formula judgment, so a computed field os build refuses still publishes through PUT /meta/object_extension #33072.
  2. A hop through an extension-added lookup is judged like a hop through a base lookup.

Dedupe words: object door published extension field formula unknown field, destructive-change guard extension field removed, extension formula hop extension-added lookup unknown field accepted.
Related: #33152, #33300, #33072.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    domain:serverDomain lane — seat card indexed by label:pm:seatlease:A5pm:queueReady for the PM dispatch looppriority:p3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions