OPF
DocsSchema referenceView source

Catalog Index

Generic shape shared by every spec/catalogs/<kind>/index.json file in the OPF repo and by the default-catalog index that pptx.gallery publishes at https://www.pptx.gallery/<kind>/index.json (spec/catalogs is a…

Schema $id
https://openpresentation.org/schema/opf-catalog-index/v1
Type
object
Source
spec/schemas/catalog-index.schema.json
Fields
6 · 4 required

Field index

FieldTypeReq.DefaultDescription
$schemaconstyes—
kindenum——Catalog kind, as the URL segment of the default catalog (https://www.pptx.gallery/<kind>) and the spec/catalogs/<kind> directory name.
versionstringyes—Index format version, as a string.
descriptionstringyes—Human-readable description of what this catalog kind holds and how entries are ordered.
contentSha256string——SHA-256 (lowercase hex) of the canonical JSON of the full records this index lists, in index order, with every top-level x-* member removed. Canonical JSON sorts object keys and has no insignificant whitespace. Lets a consumer prove it holds exactly the published content.
recordsarray<ref:IndexRecord>yes—Ordered list of lightweight record summaries. Order defines the catalog's canonical/display order; full record data lives in the sibling JSON file named by file.

$schema

typeconstrequiredyesdefault—

$schema.json
{
  "$schema": "https://openpresentation.org/schema/opf-catalog-index/v1"
}

kind

typeenumrequirednodefault—

Catalog kind, as the URL segment of the default catalog (https://www.pptx.gallery/<kind>) and the spec/catalogs/<kind> directory name.

kind.json
{
  "kind": "audiences"
}

version

typestringrequiredyesdefault—

Index format version, as a string.

version.json
{
  "version": "1"
}

description

typestringrequiredyesdefault—

Human-readable description of what this catalog kind holds and how entries are ordered.

description.json
{
  "description": "description-value"
}

contentSha256

typestringrequirednodefault—pattern^[0-9a-f]{64}$

SHA-256 (lowercase hex) of the canonical JSON of the full records this index lists, in index order, with every top-level x-* member removed. Canonical JSON sorts object keys and has no insignificant whitespace. Lets a consumer prove it holds exactly the published content.

contentSha256.json
{
  "contentSha256": "contentSha256-value"
}

records

typearray<ref:IndexRecord>requiredyesdefault—

Ordered list of lightweight record summaries. Order defines the catalog's canonical/display order; full record data lives in the sibling JSON file named by file.

records.json
{
  "records": []
}