{
    "$schema": "runtime-config.schema.json",
    "database": {
        "init": [
            {
                "cmd": "table",
                "name": "tenants",
                "init": [
                    {
                        "cmd": "column",
                        "name": "id",
                        "type": "VARCHAR(256) PRIMARY KEY NOT NULL"
                    },
                    {
                        "cmd": "column",
                        "name": "name",
                        "type": "VARCHAR(256) UNIQUE NOT NULL"
                    },
                    {
                        "cmd": "column",
                        "name": "domain",
                        "type": "VARCHAR(256) UNIQUE NOT NULL"
                    },
                    {
                        "cmd": "column",
                        "name": "enabled",
                        "type": "BOOLEAN DEFAULT TRUE NOT NULL"
                    },
                    {
                        "cmd": "column",
                        "name": "user_id",
                        "type": "VARCHAR DEFAULT NULL"
                    },
                    {
                        "cmd": "index",
                        "name": "user_id_index",
                        "value": "user_id"
                    }
                ]
            },
            {
                "cmd": "table",
                "name": "tenant_groups",
                "init": [
                    {
                        "cmd": "column",
                        "name": "tenant_id",
                        "type": "VARCHAR REFERENCES tenants(id) ON DELETE CASCADE NOT NULL"
                    },
                    {
                        "cmd": "column",
                        "name": "group_id",
                        "type": "VARCHAR DEFAULT NULL"
                    },
                    {
                        "cmd": "index",
                        "name": "group_id_index",
                        "value": "group_id"
                    }
                ]
            },
            {
                "cmd": "table",
                "name": "reverse_proxy_sets",
                "init": [
                    {
                        "cmd": "column",
                        "name": "id",
                        "type": "BIGSERIAL PRIMARY KEY NOT NULL"
                    },
                    {
                        "cmd": "column",
                        "name": "name",
                        "type": "VARCHAR(256) UNIQUE NOT NULL"
                    },
                    {
                        "cmd": "column",
                        "name": "replicas",
                        "type": "INTEGER DEFAULT 1 NOT NULL CHECK (replicas >= 0)"
                    },
                    {
                        "cmd": "column",
                        "name": "enabled",
                        "type": "BOOLEAN DEFAULT TRUE NOT NULL"
                    }
                ]
            },
            {
                "cmd": "table",
                "name": "dbprovisioners",
                "init": [
                    {
                        "cmd": "column",
                        "name": "id",
                        "type": "BIGSERIAL PRIMARY KEY NOT NULL"
                    },
                    {
                        "cmd": "column",
                        "name": "name",
                        "type": "VARCHAR(256) NOT NULL"
                    },
                    {
                        "cmd": "column",
                        "name": "uri",
                        "type": "VARCHAR(2048) NOT NULL"
                    },
                    {
                        "cmd": "column",
                        "name": "private",
                        "type": "VARCHAR(64) NOT NULL"
                    },
                    {
                        "cmd": "column",
                        "name": "public",
                        "type": "VARCHAR(130) NOT NULL"
                    },
                    {
                        "cmd": "column",
                        "name": "default",
                        "type": "BOOLEAN DEFAULT FALSE NOT NULL"
                    }
                ]
            }
        ]
    },
    "javascript": {
        "eval": [
            "backend/*",
            "sdk-js/*",
            "innovaphone-kubernetes-service.js"
        ]
    },
    "config": {
        "init": [
            {
                "cmd": "item",
                "name": "cloudDomain",
                "type": "STRING",
                "default": ".innovaphone.cloud"
            },
            {
                "cmd": "item",
                "name": "adminPassword",
                "type": "STRING",
                "default": "pwd"
            },
            {
                "cmd": "item",
                "name": "appStoreURL",
                "type": "STRING",
                "default": "https://store.innovaphone.com/alpha/download/"
            },
            {
                "cmd": "item",
                "name": "reverseProxyUsername",
                "type": "STRING",
                "default": "admin"
            },
            {
                "cmd": "item",
                "name": "reverseProxyPassword",
                "type": "STRING",
                "default": "pwd"
            },
            {
                "cmd": "item",
                "name": "createNodePorts",
                "type": "BOOL",
                "default": false
            },
            {
                "cmd": "item",
                "name": "showNodePorts",
                "type": "BOOL",
                "default": false
            },
            {
                "cmd": "mode",
                "name": "owner",
                "read": true,
                "write": true
            },
            {
                "cmd": "mode",
                "name": "pbx-manager",
                "read": true,
                "write": true
            },
            {
                "cmd": "mode",
                "name": "portal",
                "read": false,
                "write": false
            }
        ]
    }
}