librenms/misc/config_schema.json
Jellyfrog 09929bd686
Implement OAuth and SAML2 support (#13764)
* Implement OAuth and SAML2 support via Socialite

* Add socialite docs

* fixes

* Additional information added

* wip

* 22.3.0 targeted version

* Allow mysql auth as long as there is a password saved

Co-authored-by: laf <gh+n@laf.io>
Co-authored-by: Tony Murray <murraytony@gmail.com>
2022-02-20 22:05:51 +01:00

137 lines
5.0 KiB
JSON

{
"$schema": "http://json-schema.org/schema#",
"type": "object",
"properties": {
"Warning!": {
"type": "string"
},
"config": {
"type": "object",
"propertyNames": {
"pattern": "^[a-zA-Z0-9_.\\-]+$"
},
"additionalProperties": {
"type": "object",
"properties": {
"default": {},
"type": {
"type": "string"
},
"section": {
"type": "string"
},
"group": {
"type": "string"
},
"order": {
"type": "integer"
},
"options": {
"type": "object"
},
"units": {
"type": "string"
},
"validate": {
"propertyNames": {
"pattern": "^value",
"type": "string"
}
},
"when": {
"properties": {
"setting": {
"type": "string"
},
"operator": {
"type": "string",
"enum": [
"equals",
"in"
]
},
"value": {
"type": ["string", "array"]
}
}
},
"disabled": {
"type": "boolean"
},
"hidden": {
"type": "boolean"
}
},
"required": ["type"],
"additionalProperties": false,
"oneOf": [
{
"properties": {
"type": {"const": "select"},
"options": {
"type": "object",
"minProperties": 2
}
},
"required": ["options"]
},
{
"properties": {
"type": {"const": "select-dynamic"},
"options": {
"type": "object",
"properties": {
"allowClear": {"type": "boolean"},
"callback": {"type": "string"},
"placeholder": {"type": "string"},
"target": {"type": "string"}
},
"minProperties": 1,
"required": ["target"],
"additionalProperties": false
},
"validate": {
"minProperties": 1
}
},
"required": ["options", "validate"]
},
{
"properties": {
"type": {
"type": "string",
"enum": [
"integer",
"text",
"boolean",
"array",
"array-sub-keyed",
"password",
"email",
"color",
"float",
"graph",
"snmp3auth",
"ldap-groups",
"ad-groups",
"oxidized-maps",
"executable",
"directory"
]
}
},
"not": { "required": ["options"]}
}
],
"dependencies": {
"group": { "required": ["order", "section"] },
"order": { "required": ["group", "section"] },
"section": { "required": ["group", "order"] }
}
}
}
},
"required": ["Warning!", "config"],
"additionalProperties": false
}