Schemas¶
Machine-readable schemas for all Offline Lab data formats. Implementors of appctl, buildctl, or compatible tooling should validate against these.
The manifest (DDI metadata)¶
| Schema | Format | Description |
|---|---|---|
| package-yaml.schema.json | JSON Schema | package.yaml — the manifest, embedded in every image (ADR-0017/0038); the only package metadata (the pre-pivot standalone metadata JSON is gone). Fields pending T101 (expose/devices/resources etc.) are deliberately absent. |
Field semantics: App contract; wire format: Package Format.
Index formats¶
| Schema | Format | Description |
|---|---|---|
| index-manifest.schema.json | JSON Schema | The signed root manifest of an index: identity key, classes, distributed certs, version/published_at anti-rollback pair. |
| index-catalog.schema.json | JSON Schema | Per-class per-arch catalog: latest-only entries projected from verified embedded manifests at index add. |
See the Index contract for the directory layout, signing model, and client flow.
On-device state¶
| Schema | Format | Description |
|---|---|---|
| on-device-state.md | Markdown + JSON examples | File-per-record JSON layout under /var/lib/appctl/state/ (repos, packages, bases, images, locks). Replaces the earlier SQLite design. |
Host resource baseline¶
| Schema | Format | Description |
|---|---|---|
| resources.schema.json | JSON Schema | /var/lib/appctl/resources.json: host resource baseline written at boot by offlinelab-resources.service |
See Resource Tracking for how appctl uses this file for pre-install capacity checks.