Core
PaaS v2.x
2

Data models #

This page documents the main public payloads exchanged with the Kuzzle PaaS API.

Project #

{
  "id": "paas-project-my-project",
  "name": "my-project",
  "description": "Customer project",
  "environments": []
}

Fields:

  • id: project tenant identifier. It may be omitted when creating a project.
  • name: project display and technical name.
  • description: optional project description.
  • environments: environment list.

User #

Used when creating a project for a user.

{
  "_id": "john.doe",
  "email": "john.doe@example.com",
  "password": "<initial-password>"
}

Environment #

{
  "name": "production",
  "description": "Production environment",
  "projectId": "paas-project-my-project",
  "applications": [],
  "size": "M",
  "status": "Deployed",
  "keycloak": {
    "enabled": true,
    "realmName": "my-project-production"
  }
}

Fields:

  • name: environment identifier.
  • description: human-readable description.
  • projectId: parent project identifier.
  • applications: applications deployed in this environment.
  • size: one of S, S_SLA, M, L.
  • status: one of Deploying, Deployed, Upgrading, Disabled, Errored.
  • keycloak: optional Keycloak realm metadata.

Application #

{
  "_id": "api",
  "name": "kuzzleES8",
  "metadata": {
    "finalizers": ["resources-finalizer.argocd.argoproj.io"],
    "namespace": "delivery",
    "name": "api-production-my-project"
  },
  "spec": {
    "destination": {
      "namespace": "paas-project-my-project",
      "server": "https://kubernetes.default.svc"
    },
    "source": {
      "chart": "paas-kuzzle-es8",
      "repoURL": "https://kuzzleio.github.io/helm-charts/",
      "targetRevision": "1.5.0",
      "helm": {
        "releaseName": "api-production-my-project",
        "values": {}
      }
    },
    "syncPolicy": {
      "automated": {
        "allowEmpty": true,
        "prune": true
      }
    },
    "project": "paas-project-my-project"
  },
  "settings": {
    "projectId": "paas-project-my-project",
    "environmentId": "production",
    "customDomain": "api.example.com",
    "customPort": 7512,
    "linkedWebAppId": "webapp",
    "protocols": [
      {
        "name": "http",
        "port": 7512
      }
    ]
  },
  "status": "Healthy"
}

Fields:

  • _id: application identifier inside the environment.
  • name: application type. Public values are kuzzle, kuzzleES8, webapp, custom.
  • metadata: ArgoCD application metadata.
  • spec: ArgoCD application specification.
  • settings: Kuzzle PaaS application settings.
  • status: application health status.

Application settings #

{
  "projectId": "paas-project-my-project",
  "environmentId": "production",
  "customDomain": "api.example.com",
  "customCertificates": ["tls-secret-name"],
  "customPort": 7512,
  "linkedWebAppId": "webapp",
  "keycloak": {
    "clientId": "api",
    "secret": "<client-secret>",
    "realm": "my-project-production"
  },
  "protocols": [
    {
      "name": "http",
      "port": 7512
    }
  ]
}

Image #

Used by application:deploy.

{
  "name": "harbor.paas.kuzzle.io/my-project/api",
  "tag": "1.2.3"
}

Project history #

{
  "projectId": "paas-project-my-project",
  "createdAt": "2026-06-19T12:00:00.000Z",
  "deletedAt": null,
  "environments": [
    {
      "environmentId": "production",
      "createdAt": "2026-06-19T12:10:00.000Z",
      "deletedAt": null
    }
  ]
}

Kuzzle document wrapper #

Project configuration endpoints return Kuzzle documents:

{
  "_id": "slack",
  "_source": {
    "webhookUrl": "https://hooks.slack.com/services/..."
  },
  "_kuzzle_info": {
    "author": "-1",
    "createdAt": 1781870400000,
    "updatedAt": 1781870400000,
    "updater": "-1"
  }
}