psconfluencepublisher/PSConfluencePublisher/manifest.schema.json
Rodweil, Theodor 3882b1089e
refactor(manifest): convert manifests to array
if the manifests are arrays, we can speed things up by indexing separately and
depend upon the order of the dictionary.

feat(manifest): add indexer

to speed things, up we're now indexing manifest items

feat(manifest): add publishing order optimizer

since we shouldn't be trusting the order of the provided pages manifest, we've
implemented sorting, so that the ancestry of pages is reflected in the order of
publishing.
2023-08-06 04:08:03 +02:00

98 lines
3.3 KiB
JSON
Executable file

{
"$id": "https://spec.victory-k.it/psconfluencepublisher.json",
"x-authors": [
"theodor.rodweil@victory-k.it"
],
"type": "object",
"properties": {
"pages": {
"type": "array",
"item": {
"$ref": "#/definitions/page"
}
},
"attachments": {
"type": "array",
"item": {
"$ref": "#/definitions/attachment"
}
}
},
"required": [
"pages",
"attachments"
],
"definitions": {
"page": {
"type": "object",
"description": "Local Confluence page/container attachment metadata",
"properties": {
"Title": {
"type": "string",
"description": "Title of page"
},
"Id": {
"type": "string",
"description": "Id of attachment defined by Confluence instance. The id is generated after the publishing of a page."
},
"Version": {
"type": "string"
},
"Hash": {
"type": "string",
"description": "SHA512 hexadecimal content hash value"
},
"Ref": {
"type": "string",
"description": "Local filesystem reference/path"
},
"AncestorTitle": {
"type": "string",
"description": "Title of Confluence page this page is a child of. The title must be a property key of the pages object."
}
},
"required": [
"Title",
"Ref"
]
},
"attachment": {
"type": "object",
"description": "Local Confluence page/container attachment metadata",
"properties": {
"Name": {
"type": "string",
"description": "name of attachment, which must be unique within the container page"
},
"Id": {
"type": "string",
"description": "Id of attachment defined by Confluence instance. The id is generated after the publishing of an attachment."
},
"Hash": {
"type": "string",
"description": "SHA512 hexadecimal attachment content hash value"
},
"MimeType": {
"type": "string",
"description": "MIME type of attachment",
"default": "binary/octet-stream"
},
"ContainerPageTitle": {
"type": "string",
"description": "Title of Confluence page this attachment is contained in. The title must be a property key of the pages object."
},
"Ref": {
"type": "string",
"description": "Local filesystem reference/path"
}
},
"required": [
"Name",
"Hash",
"MimeType",
"ContainerPageTitle",
"Ref"
]
}
}
}