edu-hub
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://render.com/schema/render.yaml.json",
"title": "render.yaml JSON Schema",
"description": "A JSON schema for render.yaml files. See https://render.com/docs/blueprint-spec for more information",
"type": "object",
"definitions": {
"autoDeployTrigger": {
"type": "string",
"enum": ["off", "commit", "checksPass"],
"description": "Sets the automatic deploy behavior for a Git-based service."
},
"buildFilter": {
"type": "object",
"description": "File paths in the service's repo to include or ignore when determining whether to trigger an automatic build. Especially useful for monorepos.",
"properties": {
"paths": {
"type": "array",
"description": "File paths to include when determining whether to trigger a build. Uses glob syntax.",
"items": { "type": "string" }
},
"ignoredPaths": {
"type": "array",
"description": "File paths to ignore when determining whether to trigger a build, even if they match a path in 'paths'. Uses glob syntax.",
"items": { "type": "string" }
}
}
},
"diskSizeGB": {
"type": "integer",
"minimum": 1,
"description": "The disk size in GB. Must be either 1 or a multiple of 5."
},
"storageAutoscalingEnabled": {
"type": "boolean",
"description": "Storage Autoscaling configuration for the database."
},
"connectionPool": {
"type": "string",
"enum": ["pgbouncer", "none"],
"description": "The type of connection pool to operate in front of the database, if any."
},
"databaseEnvVarProperty": {
"type": "string",
"enum": [
"connectionString",
"connectionPoolString",
"host",
"port",
"user",
"password",
"database"
],
"description": "The property of the database to reference."
},
"serviceEnvVarProperty": {
"type": "string",
"enum": ["host", "port", "hostport", "connectionString"],
"description": "The property of the service to reference."
},
"cronService": {
"type": "object",
"description": "A cron job service that runs on a schedule.",
"properties": {
"type": {
"type": "string",
"const": "cron",
"description": "The type of service. Must be 'cron' for cron jobs."
},
"name": {
"type": "string",
"description": "The service's name. Must be unique within the Blueprint."
},
"region": {
"$ref": "#/definitions/region"
},
"plan": {
"$ref": "#/definitions/cronPlan"
},
"runtime": {
"$ref": "#/definitions/runtime"
},
"schedule": {
"type": "string",
"description": "The schedule for running the cron job, as a cron expression."
},
"buildCommand": {
"type": "string",
"description": "The command that Render runs to build your service."
},
"startCommand": {
"type": "string",
"description": "The command that Render runs to start your service."
},
"dockerCommand": {
"type": "string",
"description": "The command to run when starting the Docker-based service. If omitted, uses the CMD defined in the Dockerfile."
},
"dockerfilePath": {
"type": "string",
"description": "The path to the service's Dockerfile, relative to the repo root."
},
"dockerContext": {
"type": "string",
"description": "The path to the service's Docker build context, relative to the repo root."
},
"registryCredential": {
"$ref": "#/definitions/registryCredential"
},
"repo": {
"type": "string",
"description": "The URL of the GitHub/GitLab repo to use. If omitted, uses the repo containing the render.yaml file."
},
"branch": {
"type": "string",
"description": "The branch of the linked repo to use. If omitted, uses the repo's default branch."
},
"image": {
"$ref": "#/definitions/image"
},
"envVars": {
"type": "array",
"description": "Environment variables for the service.",
"items": {
"$ref": "#/definitions/envVar"
}
},
"buildFilter": {
"$ref": "#/definitions/buildFilter"
},
"rootDir": {
"type": "string",
"description": "The service's root directory within its repo. If omitted, uses the repo's root directory."
},
"autoDeploy": {
"type": "boolean",
"description": "Whether to automatically deploy the service when the linked branch is updated."
},
"autoDeployTrigger": {
"$ref": "#/definitions/autoDeployTrigger"
},
"preDeployCommand": {
"type": "string",
"description": "Command that runs after the build command but before the start command. Recommended for database migrations."
}
},
"required": ["type", "name", "runtime", "schedule"],
"additionalProperties": false
},
"database": {
"type": "object",
"description": "A PostgreSQL database instance.",
"properties": {
"name": {
"type": "string",
"description": "The PostgreSQL instance's name. Must be unique within the Blueprint."
},
"databaseName": {
"type": "string",
"description": "The name of your database within the PostgreSQL instance. If omitted, Render automatically generates a name based on the instance name."
},
"user": {
"type": "string",
"description": "The name of the PostgreSQL user to create for your instance. If omitted, Render automatically generates a name based on the instance name."
},
"region": {
"$ref": "#/definitions/region"
},
"plan": {
"$ref": "#/definitions/postgresPlan"
},
"diskSizeGB": {
"$ref": "#/definitions/diskSizeGB"
},
"storageAutoscalingEnabled": {
"$ref": "#/definitions/storageAutoscalingEnabled"
},
"connectionPool": {
"$ref": "#/definitions/connectionPool"
},
"previewPlan": {
"$ref": "#/definitions/postgresPlan",
"description": "The compute plan to use for this database in preview environments."
},
"previewDiskSizeGB": {
"$ref": "#/definitions/diskSizeGB",
"description": "The disk size to use for this database in preview environments. If omitted, preview instances use the same disk size as the primary database (specified by diskSizeGB)."
},
"postgresMajorVersion": {
"type": "string",
"enum": ["10", "11", "12", "13", "14", "15", "16", "17", "18"],
"description": "What major version of PostgreSQL the database will use. Please refer to https://render.com/docs/postgresql-upgrading#version-support for which versions may be valid for this owner."
},
"highAvailability": {
"type": "object",
"description": "High availability configuration for the database.",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether to enable high availability for the database."
}
},
"required": ["enabled"],
"additionalProperties": false
},
"ipAllowList": {
"$ref": "#/definitions/ipAllowList"
},
"readReplicas": {
"type": "array",
"description": "Read replicas for the database instance.",
"items": {
"$ref": "#/definitions/readReplica"
}
}
},
"required": ["name"],
"additionalProperties": false
},
"disk": {
"type": "object",
"description": "Persistent disk configuration for a service.",
"properties": {
"name": {
"type": "string",
"description": "The name of the disk."
},
"mountPath": {
"type": "string",
"description": "The path where the disk will be mounted in the service."
},
"sizeGB": {
"type": "integer",
"minimum": 1,
"description": "The size of the disk in GB. Defaults to 10 if omitted."
}
},
"required": ["name", "mountPath"],
"additionalProperties": false
},
"environment": {
"type": "object",
"description": "An environment containing multiple services and databases.",
"allOf": [
{ "$ref": "#/definitions/resources" },
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The environment's name. Must be unique within the Blueprint."
},
"networking": {
"type": "object",
"description": "Networking configuration for the environment.",
"properties": {
"isolation": {
"type": "string",
"enum": ["enabled", "disabled"],
"default": "disabled",
"description": "Whether network isolation is enabled for the environment."
}
},
"additionalProperties": false
},
"permissions": {
"type": "object",
"description": "Permissions configuration for the environment.",
"properties": {
"protection": {
"type": "string",
"enum": ["enabled", "disabled"],
"default": "disabled",
"description": "Whether protection is enabled for the environment."
}
},
"additionalProperties": false
}
},
"required": ["name"]
}
],
"unevaluatedProperties": false
},
"envVar": {
"anyOf": [
{ "$ref": "#/definitions/envVarFromKeyValue" },
{ "$ref": "#/definitions/envVarFromDatabase" },
{ "$ref": "#/definitions/envVarFromService" },
{ "$ref": "#/definitions/envVarFromGroup" }
],
"description": "An environment variable definition."
},
"envVarFromDatabase": {
"type": "object",
"description": "An environment variable that references a property of a database.",
"properties": {
"key": {
"type": "string",
"description": "The name of the environment variable."
},
"fromDatabase": {
"type": "object",
"description": "Reference to a database property.",
"properties": {
"name": {
"type": "string",
"description": "The name of the database to reference."
},
"property": {
"$ref": "#/definitions/databaseEnvVarProperty"
}
},
"required": ["name", "property"]
}
},
"required": ["key", "fromDatabase"],
"additionalProperties": false
},
"envVarFromKeyValue": {
"type": "object",
"description": "An environment variable with a direct value or special configuration.",
"properties": {
"key": {
"type": "string",
"description": "The name of the environment variable."
},
"value": {
"anyOf": [{ "type": "string" }, { "type": "number" }],
"description": "The value of the environment variable."
},
"generateValue": {
"type": "boolean",
"description": "Whether to generate a base64-encoded 256-bit value for this environment variable."
},
"sync": {
"type": "boolean",
"description": "Whether to prompt for a value in the Render Dashboard during Blueprint creation. Set to false for secrets."
},
"previewValue": {
"anyOf": [{ "type": "string" }, { "type": "number" }],
"description": "The value to use for this environment variable in preview environments."
}
},
"required": ["key"],
"additionalProperties": false
},
"envVarFromService": {
"type": "object",
"description": "An environment variable that references a property or environment variable of another service.",
"properties": {
"key": {
"type": "string",
"description": "The name of the environment variable."
},
"fromService": {
"type": "object",
"description": "Reference to another service.",
"properties": {
"type": {
"$ref": "#/definitions/serviceType",
"description": "The type of the service to reference."
},
"name": {
"type": "string",
"description": "The name of the service to reference."
},
"property": {
"$ref": "#/definitions/serviceEnvVarProperty"
},
"envVarKey": {
"type": "string",
"description": "The environment variable key to reference from the service."
}
},
"required": ["name", "type"]
}
},
"required": ["key", "fromService"],
"additionalProperties": false
},
"envVarFromGroup": {
"type": "object",
"description": "An environment variable that references an environment group.",
"properties": {
"fromGroup": {
"type": "string",
"description": "The name of the environment group to reference."
}
},
"required": ["fromGroup"],
"additionalProperties": false
},
"envVarGroup": {
"description": "An environment group containing multiple environment variables.",
"properties": {
"name": {
"type": "string",
"description": "The name of the environment group."
},
"envVars": {
"type": "array",
"description": "The environment variables in this group.",
"items": {
"$ref": "#/definitions/envVarFromKeyValue"
}
}
},
"required": ["name", "envVars"],
"additionalProperties": false
},
"header": {
"type": "object",
"description": "HTTP response header configuration for static sites.",
"properties": {
"path": {
"type": "string",
"description": "The path pattern for which this header should be applied."
},
"name": {
"type": "string",
"description": "The name of the HTTP header."
},
"value": {
"type": "string",
"description": "The value of the HTTP header."
}
},
"required": ["path", "name", "value"]
},
"image": {
"type": "object",
"description": "Configuration for pulling a prebuilt Docker image from a registry.",
"properties": {
"url": {
"type": "string",
"description": "The URL of the Docker image to pull."
},
"creds": {
"$ref": "#/definitions/registryCredential",
"description": "Registry credentials for accessing private images."
}
},
"required": ["url"],
"additionalProperties": false
},
"readReplica": {
"type": "object",
"description": "A read replica configuration for a database.",
"properties": {
"name": {
"type": "string",
"description": "The name of the read replica."
}
},
"required": ["name"],
"additionalProperties": false
},
"ipAllowList": {
"type": "array",
"description": "List of IP addresses or CIDR blocks that are allowed to access the service externally.",
"items": {
"type": "object",
"properties": {
"source": {
"type": "string",
"description": "The IP address or CIDR block to allow access from."
},
"description": {
"type": "string",
"description": "Optional description for this IP allow list entry."
}
},
"required": ["source"]
}
},
"numInstances": {
"type": "integer",
"minimum": 1,
"description": "For a manually scaled service, the number of instances to scale the service to."
},
"cronPlan": {
"type": "string",
"description": "The compute plan for a cron job.",
"enum": [
"starter",
"standard",
"pro",
"pro plus",
"0.5c-512mb",
"1c-2g",
"2c-4g",
"2c-8g",
"2c-16g",
"4c-8g",
"4c-16g",
"4c-32g",
"8c-16g",
"8c-32g",
"8c-64g"
]
},
"keyValuePlan": {
"type": "string",
"description": "The compute plan for a Key Value instance.",
"enum": [
"free",
"starter",
"standard",
"pro",
"pro plus",
"pro max",
"pro ultra",
"256mb",
"1g",
"5g",
"10g",
"20g",
"40g"
]
},
"postgresPlan": {
"type": "string",
"description": "The compute plan for a PostgreSQL database.",
"enum": [
"free",
"starter",
"standard",
"pro",
"pro plus",
"basic-256mb",
"basic-1gb",
"basic-4gb",
"pro-4gb",
"pro-8gb",
"pro-16gb",
"pro-32gb",
"pro-64gb",
"pro-128gb",
"pro-192gb",
"pro-256gb",
"pro-384gb",
"pro-512gb",
"accelerated-16gb",
"accelerated-32gb",
"accelerated-64gb",
"accelerated-128gb",
"accelerated-256gb",
"accelerated-384gb",
"accelerated-512gb",
"accelerated-768gb",
"accelerated-1024gb",
"0.1c-256mb",
"0.5c-1g",
"1c-2g",
"1c-4g",
"2c-4g",
"2c-8g",
"2c-16g",
"4c-16g",
"4c-32g",
"8c-32g",
"8c-64g",
"16c-64g",
"16c-128g",
"32c-128g",
"32c-256g",
"48c-192g",
"48c-384g",
"64c-256g",
"64c-512g",
"96c-384g",
"96c-768g",
"128c-512g",
"128c-1024g"
]
},
"serverPlan": {
"type": "string",
"description": "The compute plan for a web service, private service, or background worker.",
"enum": [
"free",
"starter",
"standard",
"pro",
"pro plus",
"pro max",
"pro ultra",
"0.5c-512mb",
"1c-2g",
"2c-4g",
"2c-8g",
"2c-16g",
"4c-8g",
"4c-16g",
"4c-32g",
"8c-16g",
"8c-32g",
"8c-64g",
"12c-24g",
"12c-48g",
"12c-96g"
]
},
"previewsGeneration": {
"type": "string",
"description": "The preview generation mode.",
"enum": ["automatic", "manual", "off"]
},
"project": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The project's name. Must be unique within the Blueprint."
},
"environments": {
"type": "array",
"description": "A list of environments for this project.",
"items": { "$ref": "#/definitions/environment" }
}
},
"required": ["name", "environments"],
"additionalProperties": false
Source: hackmdio/codimd