{
  "manifest_version": "1.0.0",
  "template": {
    "id": "70500344-2b53-491f-8b70-e3f755277589",
    "slug": "fsuTFg",
    "name": "Vitess",
    "description": "Vitess is a database clustering system for horizontal scaling of MySQL.",
    "url": "https://railway.com/deploy/fsuTFg",
    "upstream": {
      "image": "vitess/lite"
    }
  },
  "status": "unvalidated",
  "validated_at": null,
  "success_rate_30d": null,
  "services": [
    {
      "name": "vitess/lite",
      "source": {
        "image": "vitess/lite"
      },
      "needs_volume": false,
      "http": false
    }
  ],
  "required_inputs": [
    {
      "key": "PORT",
      "service": "vitess/lite",
      "description": "The starting of the port addresses that vitess will use to register its components like vtgate, etc.",
      "secret": false,
      "strategy": "default",
      "default": "3306"
    },
    {
      "key": "CHARSET",
      "service": "vitess/lite",
      "description": "Default charset to use. If unspecified, it defaults to `utf8mb4`.",
      "secret": false,
      "strategy": "default",
      "default": "utf8mb4"
    },
    {
      "key": "KEYSPACES",
      "service": "vitess/lite",
      "description": "Specifies the names of the keyspaces to be created as a comma separated value.",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "NUM_SHARDS",
      "service": "vitess/lite",
      "description": "Specifies the number of shards in each keyspace. It is a comma separated value as well, read in conjunction with the KEYSPACES.",
      "secret": false,
      "strategy": "ask_user"
    },
    {
      "key": "MYSQL_BIND_HOST",
      "service": "vitess/lite",
      "description": "Which host to bind the MySQL listener to. If unspecified, it defaults to `127.0.0.1`.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "FOREIGN_KEY_MODE",
      "service": "vitess/lite",
      "description": "This is to provide how to handle foreign key constraint in create/alter table. Valid values are: `allow` (default), `disallow`.",
      "secret": true,
      "strategy": "default",
      "default": "allow"
    },
    {
      "key": "ENABLE_ONLINE_DDL",
      "service": "vitess/lite",
      "description": "Allow users to submit, review and control Online DDL. Valid values are: `true` (default), `false`.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "VTCOMBO_BIND_HOST",
      "service": "vitess/lite",
      "description": "Which host to bind the vtcombo servenv listener to. If unspecified, it defaults to `127.0.0.1`.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "MYSQL_MAX_CONNECTIONS",
      "service": "vitess/lite",
      "description": "Maximum number of connections that the MySQL instance will support. If unspecified, it defaults to 1000.",
      "secret": false,
      "strategy": "default",
      "default": "1000"
    }
  ],
  "deploy": {
    "mcp": {
      "server": "railway",
      "tool": "deploy_template",
      "args": {
        "template_code": "fsuTFg"
      }
    },
    "cli": "railway deploy --template fsuTFg",
    "api": {
      "method": "POST",
      "path": "/graphql/v2",
      "body": {
        "query": "mutation templateDeploy($input: TemplateDeployV2Input!) { templateDeployV2(input: $input) { projectId workflowId } }",
        "variables": {
          "input": {
            "templateId": "70500344-2b53-491f-8b70-e3f755277589",
            "serializedConfig": {
              "services": {
                "6f918a42-b66c-454a-bd4c-d3af7c39984d": {
                  "icon": "https://vitess.io/img/logos/vitess.png",
                  "name": "vitess/lite",
                  "source": {
                    "image": "vitess/lite"
                  },
                  "variables": {
                    "PORT": {
                      "isOptional": true,
                      "description": "The starting of the port addresses that vitess will use to register its components like vtgate, etc.",
                      "defaultValue": "3306"
                    },
                    "CHARSET": {
                      "isOptional": true,
                      "description": "Default charset to use. If unspecified, it defaults to `utf8mb4`.",
                      "defaultValue": "utf8mb4"
                    },
                    "KEYSPACES": {
                      "isOptional": false,
                      "description": "Specifies the names of the keyspaces to be created as a comma separated value.",
                      "defaultValue": "{{KEYSPACES}}"
                    },
                    "NUM_SHARDS": {
                      "isOptional": false,
                      "description": "Specifies the number of shards in each keyspace. It is a comma separated value as well, read in conjunction with the KEYSPACES.",
                      "defaultValue": "{{NUM_SHARDS}}"
                    },
                    "MYSQL_BIND_HOST": {
                      "isOptional": true,
                      "description": "Which host to bind the MySQL listener to. If unspecified, it defaults to `127.0.0.1`.",
                      "defaultValue": "${{RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "PLANNER_VERSION": {
                      "isOptional": true,
                      "description": "Sets the default planner to use when the session has not changed it. Valid values are: Gen4, Gen4Greedy, Gen4Left2Right.",
                      "defaultValue": ""
                    },
                    "FOREIGN_KEY_MODE": {
                      "isOptional": true,
                      "description": "This is to provide how to handle foreign key constraint in create/alter table. Valid values are: `allow` (default), `disallow`.",
                      "defaultValue": "allow"
                    },
                    "ENABLE_ONLINE_DDL": {
                      "isOptional": true,
                      "description": "Allow users to submit, review and control Online DDL. Valid values are: `true` (default), `false`.",
                      "defaultValue": "true"
                    },
                    "VTCOMBO_BIND_HOST": {
                      "isOptional": true,
                      "description": "Which host to bind the vtcombo servenv listener to. If unspecified, it defaults to `127.0.0.1`.",
                      "defaultValue": "${{RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "MYSQL_SERVER_VERSION": {
                      "isOptional": true,
                      "description": "MySQL server version to advertise. If unspecified, it defaults to `8.0.31-vitess` or `5.7.9-vitess` according to the version of vttestserver run.",
                      "defaultValue": ""
                    },
                    "MYSQL_MAX_CONNECTIONS": {
                      "isOptional": true,
                      "description": "Maximum number of connections that the MySQL instance will support. If unspecified, it defaults to 1000.",
                      "defaultValue": "1000"
                    },
                    "TABLET_REFRESH_INTERVAL": {
                      "isOptional": true,
                      "description": "Interval at which vtgate refreshes tablet information from topology server.",
                      "defaultValue": ""
                    }
                  },
                  "networking": {}
                }
              }
            }
          }
        }
      }
    }
  },
  "post_deploy": {},
  "resources": {
    "expected_services": 1,
    "needs_volume": false
  },
  "generated_at": "2026-09-21T16:15:12.787Z",
  "generator_version": "0.1.0"
}
