{ "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" ] }