{
    "captainVersion": "2",
    "documentation": "Hasura GraphQL Engine",
    "displayName": "",
    "description": "Instant realtime GraphQL APIs on any Postgres application, existing or new",
    "dockerCompose": {
        "version": "3.6",
        "services": {
            "$$cap_appname-db": {
                "image": "postgres:$$cap_postgres_version",
                "notExposeAsWebApp": "true",
                "volumes": ["$$cap_appname-db-data:/var/lib/postgresql/data"],
                "restart": "always",
                "environment": {
                    "POSTGRES_USER": "$$cap_pg_user",
                    "POSTGRES_PASSWORD": "$$cap_pg_pass",
                    "POSTGRES_DB": "$$cap_pg_db",
                    "POSTGRES_INITDB_ARGS": "$$cap_pg_initdb_args"
                }
            },
            "$$cap_appname": {
                "image": "hasura/graphql-engine:$$cap_hasura_version",
                "containerHttpPort": "8080",
                "depends_on": ["$$cap_appname-db"],
                "restart": "always",
                "environment": {
                    "HASURA_GRAPHQL_DATABASE_URL": "postgres://$$cap_pg_user:$$cap_pg_pass@srv-captain--$$cap_appname-db:5432/$$cap_pg_db",
                    "HASURA_GRAPHQL_ENABLE_CONSOLE": "true",
                    "HASURA_GRAPHQL_ADMIN_SECRET": "$$cap_admin_secret",
                    "HASURA_GRAPHQL_ENABLED_LOG_TYPES": "startup, http-log, webhook-log, websocket-log, query-log"
                }
            }
        }
    },
    "instructions": {
        "end": "Hasura is deployed and available as $$cap_appname. \n\n IMPORTANT: It will take up to 2 minutes for Hasura to be ready. Before that, you might see 502 error page.\n",
        "start": "Instant Realtime GraphQL on Postgres with web admin console. This Docker Compose setup runs Hasura GraphQL Engine along with a Postgres database with the PostGIS extension."
    },
    "variables": [
        {
            "defaultValue": "v1.2.2",
            "description": "Check out their GitHub page for their latest version https://github.com/hasura/graphql-engine",
            "id": "$$cap_hasura_version",
            "label": "Hasura Version",
            "validRegex": "/^([^\\s^\\/])+$/"
        },
        {
            "defaultValue": "12",
            "id": "$$cap_postgres_version",
            "label": "Postgres Version",
            "validRegex": "/^([^\\s^\\/])+$/"
        },
        {
            "description": "The admin secret gives you access to the console.",
            "id": "$$cap_admin_secret",
            "label": "Hasura admin secret(password)",
            "validRegex": "/^(?=.*\\d).{10,}$/"
        },
        {
            "id": "$$cap_pg_user",
            "label": "Postgres Username",
            "description": "",
            "validRegex": "/.{1,}/"
        },
        {
            "id": "$$cap_pg_pass",
            "label": "Postgres Password",
            "description": "",
            "validRegex": "/.{1,}/"
        },
        {
            "id": "$$cap_pg_db",
            "label": "Postgres Default Database",
            "description": "",
            "validRegex": "/.{1,}/"
        },
        {
            "id": "$$cap_pg_initdb_args",
            "label": "OPTIONAL: Arguments for 'postgres initdb'",
            "description": "For example, --data-checksums",
            "validRegex": "/.{0,}/"
        }
    ]
}
