ansible-base/roles/synapse/cfg.schema.json
2025-10-15 08:07:41 +02:00

344 lines
6.3 KiB
JSON

{
"nullable": false,
"type": "object",
"properties": {
"scheme": {
"nullable": false,
"type": "string",
"default": "https"
},
"domain": {
"nullable": false,
"type": "string"
},
"database": {
"anyOf": [
{
"nullable": false,
"type": "object",
"properties": {
"kind": {
"nullable": false,
"type": "string",
"enum": ["sqlite"],
"default": "sqlite"
},
"data": {
"nullable": false,
"type": "object",
"properties": {
"path": {
"nullable": false,
"type": "string",
"default": "/var/synapse/data.sqlite"
}
},
"additionalProperties": false,
"required": [
"path"
]
}
},
"additionalProperties": false,
"required": [
"kind",
"data"
]
},
{
"nullable": false,
"type": "object",
"properties": {
"kind": {
"nullable": false,
"type": "string",
"enum": ["postgresql"],
"default": "postgresql"
},
"data": {
"nullable": false,
"type": "object",
"properties": {
"host": {
"nullable": false,
"type": "string",
"default": "localhost"
},
"port": {
"nullable": false,
"type": "integer",
"default": 5432
},
"username": {
"nullable": false,
"type": "string",
"default": "synapse_user"
},
"password": {
"nullable": false,
"type": "string"
},
"schema": {
"nullable": false,
"type": "string",
"default": "synapse"
}
},
"additionalProperties": false,
"required": [
"host",
"port",
"username",
"password",
"schema"
]
}
},
"additionalProperties": false,
"required": [
"kind",
"data"
]
}
]
},
"element_url": {
"nullable": true,
"type": "string",
"default": null
},
"title": {
"nullable": false,
"type": "string",
"default": "Example | Matrix"
},
"federation": {
"nullable": false,
"type": "object",
"properties": {
"enable": {
"nullable": false,
"type": "boolean",
"default": false
},
"whitelist": {
"nullable": false,
"type": "array",
"items": {
"type": "string"
},
"default": []
}
},
"additionalProperties": false,
"required": [
"enable",
"whitelist"
]
},
"password_strict_policy": {
"nullable": false,
"type": "boolean",
"default": true
},
"registration_shared_secret": {
"nullable": true,
"type": "string",
"default": null
},
"authentication": {
"anyOf": [
{
"nullable": false,
"type": "object",
"properties": {
"kind": {
"nullable": false,
"type": "string",
"enum": ["internal"],
"default": "internal"
},
"data": {
"nullable": false,
"type": "object",
"properties": {
},
"additionalProperties": false,
"required": [
]
}
},
"additionalProperties": false,
"required": [
"kind",
"data"
]
},
{
"nullable": false,
"type": "object",
"properties": {
"kind": {
"nullable": false,
"type": "string",
"enum": ["authelia"],
"default": "authelia"
},
"data": {
"nullable": false,
"type": "object",
"properties": {
"provider_id": {
"nullable": false,
"type": "string",
"default": "authelia"
},
"provider_name": {
"nullable": false,
"type": "string",
"default": "Authelia"
},
"client_id": {
"nullable": false,
"type": "string",
"default": "synapse"
},
"client_secret": {
"nullable": false,
"type": "string"
},
"url_base": {
"nullable": false,
"type": "string"
}
},
"additionalProperties": false,
"required": [
"provider_id",
"provider_name",
"client_id",
"client_secret",
"url_base"
]
}
},
"additionalProperties": false,
"required": [
"kind",
"data"
]
}
]
},
"smtp": {
"nullable": true,
"type": "object",
"properties": {
"host": {
"nullable": false,
"type": "string"
},
"port": {
"nullable": false,
"type": "integer",
"default": 587
},
"username": {
"nullable": false,
"type": "string",
"default": "synapse"
},
"password": {
"nullable": false,
"type": "string"
}
},
"additionalProperties": false,
"required": [
"host",
"port",
"username",
"password"
]
},
"notifications": {
"nullable": false,
"type": "object",
"properties": {
"source_address": {
"nullable": false,
"type": "string",
"default": "synapse@example.org"
},
"via_email": {
"nullable": false,
"type": "object",
"properties": {
"enabled_by_default": {
"nullable": false,
"type": "boolean",
"default": false
},
"delay": {
"nullable": false,
"type": "string",
"default": "1h"
}
},
"additionalProperties": false,
"required": [
"enabled_by_default",
"delay"
]
}
},
"additionalProperties": false,
"required": [
"source_address",
"via_email"
]
},
"admin_user": {
"nullable": false,
"type": "object",
"properties": {
"define": {
"nullable": false,
"type": "boolean",
"default": true
},
"name": {
"nullable": false,
"type": "string",
"default": "admin"
},
"password": {
"nullable": false,
"type": "string"
}
},
"additionalProperties": false,
"required": [
"define",
"name",
"password"
]
}
},
"additionalProperties": false,
"required": [
"scheme",
"domain",
"database",
"element_url",
"title",
"federation",
"password_strict_policy",
"registration_shared_secret",
"authentication",
"smtp",
"notification",
"admin_user"
]
}