{ "$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", "minLength": 1 }, "server": { "$ref": "#/$defs/server" }, "user": { "type": "string" }, "valid": { "type": "string" }, "scope": { "type": "string", "pattern": "^[+?!-]{5}$" }, "expires_at": { "type": "string" }, "remotes": { "type": "array", "items": { "$ref": "#/$defs/remote" } } } } } }