Schema: dam-inventory
{
"$defs": {
"entry": {
"additionalProperties": false,
"properties": {
"ancestry": {
"items": {
"minLength": 1,
"type": "string"
},
"type": "array"
},
"app_slug": {
"type": [
"string",
"null"
]
},
"basename": {
"minLength": 1,
"type": "string"
},
"content_hash": {
"pattern": "^[0-9a-f]{64}$",
"type": "string"
},
"extension": {
"type": "string"
},
"key": {
"minLength": 1,
"type": "string"
},
"modified_at": {
"minLength": 1,
"type": "string"
},
"parent": {
"type": [
"string",
"null"
]
},
"relative_path": {
"minLength": 1,
"pattern": "^(templates|suites|static)(/[^/\\\\]+)*$",
"type": "string"
},
"root": {
"enum": [
"templates",
"suites",
"static"
],
"type": "string"
},
"semantic_role": {
"minLength": 1,
"type": "string"
},
"size_bytes": {
"minimum": 0,
"type": "integer"
},
"suite_name": {
"type": [
"string",
"null"
]
},
"type": {
"enum": [
"file",
"dir",
"symlink"
],
"type": "string"
}
},
"required": [
"root",
"type",
"basename",
"relative_path",
"parent",
"ancestry",
"extension",
"key"
],
"type": "object"
},
"path_map": {
"additionalProperties": {
"items": {
"minLength": 1,
"type": "string"
},
"type": "array"
},
"type": "object"
}
},
"$id": "https://australis.systems/schemas/dam/dam-inventory.schema.json",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"description": "Strict schema for the Dynamic Assets Manager inventory manifest v1. Every path is portable and root-name-prefixed; no absolute path, drive letter or backslash separator is permitted.",
"properties": {
"ambiguities": {
"additionalProperties": {
"items": {
"minLength": 1,
"type": "string"
},
"type": "array"
},
"type": "object"
},
"counts": {
"additionalProperties": false,
"properties": {
"directories": {
"minimum": 0,
"type": "integer"
},
"files": {
"minimum": 0,
"type": "integer"
},
"roots": {
"minimum": 0,
"type": "integer"
},
"symlinks": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"files",
"directories",
"symlinks",
"roots"
],
"type": "object"
},
"entries": {
"items": {
"$ref": "#/$defs/entry"
},
"type": "array"
},
"generated_at": {
"minLength": 1,
"type": "string"
},
"generator": {
"const": "dam/1",
"type": "string"
},
"indexes": {
"additionalProperties": false,
"properties": {
"by_basename": {
"$ref": "#/$defs/path_map"
},
"by_category": {
"$ref": "#/$defs/path_map"
},
"by_extension": {
"$ref": "#/$defs/path_map"
},
"by_semantic_role": {
"$ref": "#/$defs/path_map"
},
"by_suite_app": {
"$ref": "#/$defs/path_map"
}
},
"required": [
"by_basename",
"by_extension",
"by_category"
],
"type": "object"
},
"roots": {
"items": {
"enum": [
"templates",
"suites",
"static"
],
"type": "string"
},
"minItems": 1,
"type": "array",
"uniqueItems": true
},
"schema_version": {
"const": "1.0.0",
"type": "string"
}
},
"required": [
"schema_version",
"generated_at",
"generator",
"roots",
"counts",
"entries",
"indexes",
"ambiguities"
],
"title": "DAM Inventory Manifest",
"type": "object"
}