Files
stem-launcher/doc/tokens.schema.json
T
2026-04-26 21:56:07 +02:00

108 lines
2.3 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://edu-tools.local/rv-launcher/tokens.schema.json",
"title": "RV launcher tokens",
"type": "object",
"additionalProperties": false,
"required": ["version", "tokens"],
"properties": {
"version": {
"const": 3
},
"tokens": {
"type": "array",
"items": {
"$ref": "#/$defs/token"
}
}
},
"$defs": {
"server": {
"type": "object",
"additionalProperties": false,
"required": ["type", "endpoint", "scheme", "host", "port"],
"properties": {
"type": {
"type": "string"
},
"endpoint": {
"type": "string",
"format": "uri"
},
"scheme": {
"enum": ["http", "https"]
},
"host": {
"type": "string"
},
"port": {
"type": ["integer", "null"],
"minimum": 1,
"maximum": 65535
}
}
},
"remote": {
"type": "object",
"additionalProperties": false,
"required": ["name", "org", "repo"],
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"org": {
"type": "string"
},
"repo": {
"type": "string"
},
"org_perm": {
"type": "string",
"pattern": "^[+?!-]{5}$"
},
"repo_perm": {
"type": "string",
"pattern": "^[+?!-]{4}$"
}
}
},
"token": {
"type": "object",
"additionalProperties": false,
"required": ["token_id", "value", "server", "remotes"],
"properties": {
"token_id": {
"type": "string",
"minLength": 1
},
"value": {
"type": "string"
},
"server": {
"$ref": "#/$defs/server"
},
"user": {
"type": "string"
},
"valid": {
"type": "string"
},
"scope": {
"type": "string",
"pattern": "^[rw?!-]{9}$"
},
"expires_at": {
"type": "string"
},
"remotes": {
"type": "array",
"items": {
"$ref": "#/$defs/remote"
}
}
}
}
}
}