73 lines
2 KiB
JSON
73 lines
2 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://hugin.intern/schema/bundle-request-1.json",
|
|
"title": "Anfrage an POST /api/v1/bundle bzw. /api/v1/delivery/bundle",
|
|
"type": "object",
|
|
"required": [
|
|
"packages",
|
|
"tools"
|
|
],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"packages": {
|
|
"description": "Abos: <id>@<stabil|test|^major|exakte Version>. Ohne @ gilt @stabil.",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*(@(stabil|test|\\^\\d+|\\d+\\.\\d+\\.\\d+))?$"
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"unsubscribed": {
|
|
"description": "Pakete, die nicht geliefert werden sollen. Für Pflichtpakete wirkungslos.",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"tools": {
|
|
"description": "Erkannte Werkzeuge mit installierter Version; leerer String, wenn die Version unbekannt ist.",
|
|
"type": "object",
|
|
"minProperties": 1,
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"claude": {
|
|
"type": "string"
|
|
},
|
|
"opencode": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"mandatory": {
|
|
"description": "Pflichtpakete mitliefern.",
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"major": {
|
|
"description": "Major-Sprünge bei @stabil erlauben (hugin sync --major).",
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"options": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"opencode_reads_claude": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
}
|
|
},
|
|
"installed": {
|
|
"description": "Aktuell installierte Versionen (aus hugin.lock). Daraus berechnet der Server die entfernen-Operationen.",
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string",
|
|
"pattern": "^\\d+\\.\\d+\\.\\d+$"
|
|
}
|
|
}
|
|
}
|
|
}
|