44 lines
1.5 KiB
Markdown
44 lines
1.5 KiB
Markdown
|
|
# Registry Manifest Schema (core)
|
||
|
|
|
||
|
|
This file defines the common conventions for registry JSONL manifests in
|
||
|
|
`vendor/amduat/registry/`. Each registry then supplies a registry-specific
|
||
|
|
schema that fixes the key field(s) and the descriptor field ordering used for
|
||
|
|
`descriptor_sha256`.
|
||
|
|
|
||
|
|
## JSONL rules
|
||
|
|
|
||
|
|
- Each line is one JSON object (JSONL).
|
||
|
|
- Fields must match the registry-specific schema.
|
||
|
|
- Required fields must be present even if the value is `null`.
|
||
|
|
|
||
|
|
## Handle naming
|
||
|
|
|
||
|
|
Handles are stable identifiers in the `amduat` namespace:
|
||
|
|
|
||
|
|
```
|
||
|
|
amduat.<domain>.<registry>.<kind>.<id>@<version>
|
||
|
|
```
|
||
|
|
|
||
|
|
`id` is the canonical key for the registry (usually lowercase, zero-padded hex).
|
||
|
|
`version` increments only if the meaning of the key changes.
|
||
|
|
|
||
|
|
## Canonical descriptor digest
|
||
|
|
|
||
|
|
Each entry includes `descriptor_sha256`, the SHA-256 digest (lowercase hex) of
|
||
|
|
its canonical descriptor JSON object. The canonical descriptor object:
|
||
|
|
|
||
|
|
- Includes the descriptor fields defined by the registry-specific schema.
|
||
|
|
- Uses the exact field ordering specified by the registry-specific schema.
|
||
|
|
- Excludes the `descriptor_sha256` field itself.
|
||
|
|
- Uses standard JSON encoding with no extra whitespace.
|
||
|
|
- Is hashed over its UTF-8 byte sequence.
|
||
|
|
|
||
|
|
Registry-specific schema files define the precise field ordering and any
|
||
|
|
additional constraints on descriptor fields.
|
||
|
|
|
||
|
|
## Canonical key encoding
|
||
|
|
|
||
|
|
Each registry defines the byte encoding of its key. The encoding is used when
|
||
|
|
constructing ASL registry artifacts. See the registry-specific schema for the
|
||
|
|
exact key encoding (e.g., big-endian `u16` for `HASH/ASL1`).
|