Scalable Platforms · Schema

Platform Deployment

A normalized schema for a deployment on a scalable PaaS platform such as Vercel, Netlify, Heroku, Fly.io, Railway, or Render.

Cloud InfrastructureDeploymentDeveloper ExperienceDevOpsPaaSPlatformScalabilityServerless

Properties

Name Type Description
id string Unique deployment identifier assigned by the platform.
provider string PaaS platform provider.
appId string ID of the application/project this deployment belongs to.
appName string Human-readable application name.
environment string Deployment environment.
status string Current deployment status.
url string Public URL for this deployment.
gitCommit object Source code commit triggering this deployment.
build object Build configuration and outcome.
runtime object Runtime configuration for the deployed application.
scaling object Platform-managed scaling configuration.
createdAt string
readyAt string
View JSON Schema on GitHub

JSON Schema

scalable-platforms-deployment-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/scalable-platforms/main/json-schema/scalable-platforms-deployment-schema.json",
  "title": "Platform Deployment",
  "description": "A normalized schema for a deployment on a scalable PaaS platform such as Vercel, Netlify, Heroku, Fly.io, Railway, or Render.",
  "type": "object",
  "required": ["id", "provider", "appId", "status"],
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique deployment identifier assigned by the platform."
    },
    "provider": {
      "type": "string",
      "description": "PaaS platform provider.",
      "enum": ["vercel", "netlify", "cloudflare-pages", "heroku", "fly-io", "railway", "render", "northflank"]
    },
    "appId": {
      "type": "string",
      "description": "ID of the application/project this deployment belongs to."
    },
    "appName": {
      "type": "string",
      "description": "Human-readable application name."
    },
    "environment": {
      "type": "string",
      "description": "Deployment environment.",
      "enum": ["production", "staging", "preview", "development"],
      "default": "preview"
    },
    "status": {
      "type": "string",
      "description": "Current deployment status.",
      "enum": ["queued", "building", "deploying", "ready", "failed", "cancelled", "error"]
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "Public URL for this deployment."
    },
    "gitCommit": {
      "type": "object",
      "description": "Source code commit triggering this deployment.",
      "properties": {
        "sha": {"type": "string", "description": "Full commit SHA."},
        "branch": {"type": "string"},
        "message": {"type": "string"},
        "author": {"type": "string"}
      }
    },
    "build": {
      "type": "object",
      "description": "Build configuration and outcome.",
      "properties": {
        "command": {"type": "string", "description": "Build command (e.g., npm run build)."},
        "outputDirectory": {"type": "string", "description": "Build output directory (e.g., .next, dist, public)."},
        "durationSeconds": {"type": "number", "description": "Total build duration."},
        "logUrl": {"type": "string", "format": "uri", "description": "URL to build logs."}
      }
    },
    "runtime": {
      "type": "object",
      "description": "Runtime configuration for the deployed application.",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["static", "serverless", "server", "edge", "container"],
          "description": "Execution model."
        },
        "region": {
          "type": "string",
          "description": "Primary deployment region (e.g., iad1, fra1, us-east-1)."
        },
        "regions": {
          "type": "array",
          "items": {"type": "string"},
          "description": "All regions where the deployment is active."
        },
        "memory": {
          "type": "integer",
          "description": "Memory in MB for function/serverless deployments."
        },
        "timeout": {
          "type": "integer",
          "description": "Execution timeout in seconds."
        }
      }
    },
    "scaling": {
      "type": "object",
      "description": "Platform-managed scaling configuration.",
      "properties": {
        "minInstances": {"type": "integer", "minimum": 0, "description": "Minimum instances; 0 for scale-to-zero."},
        "maxInstances": {"type": "integer", "minimum": 1},
        "scaleToZero": {"type": "boolean", "default": false}
      }
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "readyAt": {
      "type": "string",
      "format": "date-time"
    }
  }
}