{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Configuration", "type": "object", "required": [ "issuers" ], "properties": { "issuers": { "type": "object", "additionalProperties": { "$ref": "#/definitions/Issuer" } } }, "definitions": { "Client": { "oneOf": [ { "type": "object", "required": [ "confidential" ], "properties": { "confidential": { "type": "object", "required": [ "id", "secret" ], "properties": { "defaultScope": { "default": "openid", "type": "string" }, "id": { "type": "string" }, "secret": { "type": "string" } } } }, "additionalProperties": false }, { "type": "object", "required": [ "public" ], "properties": { "public": { "type": "object", "required": [ "id", "redirectUrls" ], "properties": { "defaultScope": { "default": "openid", "type": "string" }, "id": { "type": "string" }, "redirectUrls": { "type": "array", "items": { "$ref": "#/definitions/RedirectUrlOrString" } } } } }, "additionalProperties": false } ] }, "Issuer": { "type": "object", "required": [ "clients", "scopes" ], "properties": { "clients": { "type": "array", "items": { "$ref": "#/definitions/Client" } }, "scopes": { "type": "array", "items": { "type": "string" } } } }, "RedirectUrlOrString": { "oneOf": [ { "type": "string", "format": "uri" }, { "oneOf": [ { "type": "object", "required": [ "semantic" ], "properties": { "semantic": { "type": "string", "format": "uri" } }, "additionalProperties": false }, { "type": "object", "required": [ "exact" ], "properties": { "exact": { "type": "object", "required": [ "url" ], "properties": { "ignoreLocalhostPort": { "description": "ignore the port on localhost URLs", "default": false, "type": "boolean" }, "url": { "type": "string" } } } }, "additionalProperties": false } ] } ] } } }