Skip to content

Commit 8c9e60b

Browse files
committed
spec: regenerate api-surface, export-origins and the protocol reference
The three artifacts check:generated proved stale: isAppPackageIdKey is added (0 breaking, 1 added), and GetMetaItemRequest's name describe moves in the reference page. Claude-Session: https://claude.ai/code/session_0121ooBYRmS8ziFXm9ai5YHm Co-authored-by: Claude <noreply@anthropic.com>
1 parent 6cb2399 commit 8c9e60b

3 files changed

Lines changed: 3 additions & 1 deletion

File tree

‎content/docs/references/api/protocol.mdx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1424,7 +1424,7 @@ This schema accepts one of the following structures:
14241424
| Property | Type | Required | Description |
14251425
| :--- | :--- | :--- | :--- |
14261426
| **type** | `string` | ✅ | Metadata type name |
1427-
| **name** | `string` | ✅ | Item name (snake_case identifier) |
1427+
| **name** | `string` | ✅ | Item name: the item's own `name`. For `type: 'app'` only, it may instead be the id of the package that ships the app (`manifest.id`, reverse-domain, e.g. `com.acme.crm`): with one app per package the app IS the package container, and the package id is its route key (ADR-0048 §3.1). The two grammars are disjoint (an app name is snake_case with no dot; a package id matches `MANIFEST_ID_PATTERN`, with at least one dot), so an app key in the package-id grammar always names the package (`isAppPackageIdKey`). That read answers the package's one app as the by-name read answers it, under the app's own `name`, and the per-caller read gate judges it as it judges that app read by name (an app withheld from the caller answers 403 `PERMISSION_DENIED`). A package with no app, or with more than one, answers as an absent item. A `packageId` naming a different package is refused with 400 `INVALID_REQUEST`. Every other type, and every other key, is read by name. |
14281428
| **packageId** | `string` | optional | Optional package ID to filter items by |
14291429
| **member** | `string` | optional | Bundle member selector, for a metadata type whose identity is a pair (today only `email_template`, identified by `(name, locale)`): the member this request addresses, spelled as its discriminator value (`zh-CN`). Absent, the canonical member (`en-US` for `email_template`), which is what a bare-name read answers; naming the canonical value is the same request. It is not the response translation locale, which `?locale=` and `Accept-Language` choose. Refused with 400 `VALIDATION_ERROR` on a type that has no members, and for a blank value or one longer than a stored member can be (100 characters). A well-formed member with nothing stored or shipped answers as that door answers an absent item. |
14301430
| **state** | `Enum<'active' \| 'draft'>` | optional | Draft-visibility switch — which lifecycle row to read (strict mode): `'draft'` opens the pending draft buffer (Studio's editor read) and fails when no draft exists; absent or `'active'` reads the live published row. Distinct from `previewDrafts`, which FALLS BACK to the active row when no draft exists. Declaration ≠ authorization: this member only selects which stored row is read — ADR-0106 masking is unaffected, and draft access is gated upstream, not by this schema. |

‎packages/spec/api-surface/api.json‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1098,6 +1098,7 @@
10981098
"getAuthEndpointUrl (function)",
10991099
"getDefaultRouteRegistrations (function)",
11001100
"identityFreeEndpointGateFailure (function)",
1101+
"isAppPackageIdKey (function)",
11011102
"isSubscribableChannel (function)",
11021103
"makeApiErrorSchema (function)",
11031104
"normalizeEndpointPath (function)",

‎packages/spec/export-origins/api.json‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1051,6 +1051,7 @@
10511051
"getAuthEndpointUrl": "src/api/auth-endpoints.zod.ts#getAuthEndpointUrl (function)",
10521052
"getDefaultRouteRegistrations": "src/api/plugin-rest-api.zod.ts#getDefaultRouteRegistrations (function)",
10531053
"identityFreeEndpointGateFailure": "src/api/endpoint-publish-gate.ts#identityFreeEndpointGateFailure (function)",
1054+
"isAppPackageIdKey": "src/api/protocol.zod.ts#isAppPackageIdKey (function)",
10541055
"isSubscribableChannel": "src/api/discovery.zod.ts#isSubscribableChannel (function)",
10551056
"makeApiErrorSchema": "src/api/contract.zod.ts#makeApiErrorSchema (function)",
10561057
"normalizeEndpointPath": "src/api/endpoint.zod.ts#normalizeEndpointPath (function)",

0 commit comments

Comments
 (0)