NNO Docs
API ReferenceProvisioning

NNO Provisioning Service API

Cloudflare resource provisioning, platform bootstrapping, and auth worker management.

Provision a new platform

POST
/api/v1/provision/platform

Request Body

application/json

platformId*string
Length1 <= length
planTier*string
Length1 <= length
billingEmail*string
Formatemail
defaultEntityId?string
Length1 <= length
environment?string
Default"prod"
Value in"dev" | "stg" | "prod"

Response Body

application/json

application/json

curl -X POST "https://provisioning.svc.nno.app/api/v1/provision/platform" \  -H "Content-Type: application/json" \  -d '{    "platformId": "string",    "planTier": "string",    "billingEmail": "[email protected]"  }'
{
  "jobId": "string",
  "status": "QUEUED"
}
{
  "error": {
    "code": "string",
    "message": "string",
    "requestId": "string",
    "details": null
  }
}

Activate a feature

POST
/api/v1/provision/feature/activate

Request Body

application/json

platformId*string
Length1 <= length
entityId*string
Length1 <= length
featureId*string
Length1 <= length
featureVersion*string
Length1 <= length
environment*string
Value in"dev" | "stg" | "prod"

Response Body

application/json

application/json

curl -X POST "https://provisioning.svc.nno.app/api/v1/provision/feature/activate" \  -H "Content-Type: application/json" \  -d '{    "platformId": "string",    "entityId": "string",    "featureId": "string",    "featureVersion": "string",    "environment": "dev"  }'
{
  "jobId": "string",
  "status": "QUEUED"
}
{
  "error": {
    "code": "string",
    "message": "string",
    "requestId": "string",
    "details": null
  }
}

Deactivate a feature

POST
/api/v1/provision/feature/deactivate

Request Body

application/json

platformId*string
Length1 <= length
entityId*string
Length1 <= length
featureId*string
Length1 <= length
environment*string
Value in"dev" | "stg" | "prod"
deleteData?boolean
Defaultfalse

Response Body

application/json

application/json

curl -X POST "https://provisioning.svc.nno.app/api/v1/provision/feature/deactivate" \  -H "Content-Type: application/json" \  -d '{    "platformId": "string",    "entityId": "string",    "featureId": "string",    "environment": "dev"  }'
{
  "jobId": "string",
  "status": "QUEUED"
}
{
  "error": {
    "code": "string",
    "message": "string",
    "requestId": "string",
    "details": null
  }
}

Activate a stack

POST
/api/v1/provision/stack/activate

Request Body

application/json

platformId*string
Length1 <= length
stackId*string
Length1 <= length
stackVersion*string
Length1 <= length
entityId?string
Length1 <= length
environment?string
Default"prod"
Value in"dev" | "stg" | "prod"

Response Body

application/json

application/json

curl -X POST "https://provisioning.svc.nno.app/api/v1/provision/stack/activate" \  -H "Content-Type: application/json" \  -d '{    "platformId": "string",    "stackId": "string",    "stackVersion": "string"  }'
{
  "jobId": "string",
  "status": "QUEUED"
}
{
  "error": {
    "code": "string",
    "message": "string",
    "requestId": "string",
    "details": null
  }
}

Deactivate a stack

POST
/api/v1/provision/stack/deactivate

Request Body

application/json

platformId*string
Length1 <= length
stackInstanceId*string
Length1 <= length
environment?string
Default"prod"
Value in"dev" | "stg" | "prod"
deleteData?boolean
Defaultfalse

Response Body

application/json

application/json

curl -X POST "https://provisioning.svc.nno.app/api/v1/provision/stack/deactivate" \  -H "Content-Type: application/json" \  -d '{    "platformId": "string",    "stackInstanceId": "string"  }'
{
  "jobId": "string",
  "status": "QUEUED"
}
{
  "error": {
    "code": "string",
    "message": "string",
    "requestId": "string",
    "details": null
  }
}

Onboard a new platform

POST
/api/v1/provision/onboard

Request Body

application/json

onboardingId*string
Length1 <= length
platformName*string
Length1 <= length
slug*string
Length1 <= length
stackTemplateId?string|null
tier?string
Default"starter"
Value in"starter" | "growth" | "scale"
userId*string
Length1 <= length
billingEmail?string
Formatemail

Response Body

application/json

application/json

curl -X POST "https://provisioning.svc.nno.app/api/v1/provision/onboard" \  -H "Content-Type: application/json" \  -d '{    "onboardingId": "string",    "platformName": "string",    "slug": "string",    "userId": "string"  }'
{
  "jobId": "string",
  "status": "QUEUED"
}
{
  "error": {
    "code": "string",
    "message": "string",
    "requestId": "string",
    "details": null
  }
}

Create an app

POST
/api/v1/provision/app/create

Request Body

application/json

platformId*string
Length1 <= length
stackId*string
Length1 <= length
appName*string
Match^[a-z][a-z0-9-]*[a-z0-9]$
Length1 <= length
appType*string
Value in"app" | "svc" | "fullstack"
withDatabase?boolean
Defaultfalse

Response Body

application/json

application/json

curl -X POST "https://provisioning.svc.nno.app/api/v1/provision/app/create" \  -H "Content-Type: application/json" \  -d '{    "platformId": "string",    "stackId": "string",    "appName": "string",    "appType": "app"  }'
{
  "jobId": "string",
  "status": "QUEUED"
}
{
  "error": {
    "code": "string",
    "message": "string",
    "requestId": "string",
    "details": null
  }
}

Add a custom domain

POST
/api/v1/provision/domain/add

Request Body

application/json

platformId*string
Length1 <= length
customHostname*string
Length1 <= length
targetDnsRecordId*string
Length1 <= length

Response Body

application/json

application/json

curl -X POST "https://provisioning.svc.nno.app/api/v1/provision/domain/add" \  -H "Content-Type: application/json" \  -d '{    "platformId": "string",    "customHostname": "string",    "targetDnsRecordId": "string"  }'
{
  "jobId": "string",
  "status": "QUEUED"
}
{
  "error": {
    "code": "string",
    "message": "string",
    "requestId": "string",
    "details": null
  }
}

Deprovision a platform

POST
/api/v1/provision/platform/deprovision

Request Body

application/json

platformId*string
Length1 <= length
environment?string
Default"prod"
Value in"dev" | "stg" | "prod"

Response Body

application/json

application/json

curl -X POST "https://provisioning.svc.nno.app/api/v1/provision/platform/deprovision" \  -H "Content-Type: application/json" \  -d '{    "platformId": "string"  }'
{
  "jobId": "string",
  "status": "QUEUED"
}
{
  "error": {
    "code": "string",
    "message": "string",
    "requestId": "string",
    "details": null
  }
}

Get a provisioning job

GET
/api/v1/provision/jobs/{jobId}

Path Parameters

jobId*string

Response Body

application/json

application/json

curl -X GET "https://provisioning.svc.nno.app/api/v1/provision/jobs/string"
{
  "property1": null,
  "property2": null
}
{
  "error": {
    "code": "string",
    "message": "string",
    "requestId": "string",
    "details": null
  }
}

List provisioning jobs

GET
/api/v1/provision/jobs

Query Parameters

platformId?string
status?string
limit?string
cursor?string

Response Body

application/json

curl -X GET "https://provisioning.svc.nno.app/api/v1/provision/jobs"
{
  "data": [
    {
      "property1": null,
      "property2": null
    }
  ],
  "pagination": {
    "limit": 0,
    "cursor": "string",
    "nextCursor": "string",
    "count": 0
  }
}

Retry a provisioning job (operator only)

POST
/api/v1/provision/jobs/{jobId}/retry

Path Parameters

jobId*string

Response Body

application/json

application/json

application/json

curl -X POST "https://provisioning.svc.nno.app/api/v1/provision/jobs/string/retry"
{
  "jobId": "string",
  "status": "QUEUED"
}
{
  "error": {
    "code": "string",
    "message": "string",
    "requestId": "string",
    "details": null
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "requestId": "string",
    "details": null
  }
}

Cancel a provisioning job (operator only)

POST
/api/v1/provision/jobs/{jobId}/cancel

Path Parameters

jobId*string

Response Body

application/json

application/json

application/json

curl -X POST "https://provisioning.svc.nno.app/api/v1/provision/jobs/string/cancel"
{
  "jobId": "string",
  "status": "FAILED",
  "reason": "string"
}
{
  "error": {
    "code": "string",
    "message": "string",
    "requestId": "string",
    "details": null
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "requestId": "string",
    "details": null
  }
}

Force complete a provisioning job (operator only)

POST
/api/v1/provision/jobs/{jobId}/force-complete

Path Parameters

jobId*string

Response Body

application/json

application/json

application/json

curl -X POST "https://provisioning.svc.nno.app/api/v1/provision/jobs/string/force-complete"
{
  "jobId": "string",
  "status": "COMPLETED"
}
{
  "error": {
    "code": "string",
    "message": "string",
    "requestId": "string",
    "details": null
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "requestId": "string",
    "details": null
  }
}

List DLQ entries (operator only)

GET
/api/v1/provision/dlq

Query Parameters

limit?string
cursor?string

Response Body

application/json

application/json

curl -X GET "https://provisioning.svc.nno.app/api/v1/provision/dlq"
{
  "data": [
    {
      "property1": null,
      "property2": null
    }
  ],
  "pagination": {
    "limit": 0,
    "cursor": "string"
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "requestId": "string",
    "details": null
  }
}

Upgrade auth worker (operator only)

POST
/api/v1/provision/auth/upgrade

Request Body

application/json

platformId*string
Length1 <= length

Response Body

application/json

application/json

application/json

curl -X POST "https://provisioning.svc.nno.app/api/v1/provision/auth/upgrade" \  -H "Content-Type: application/json" \  -d '{    "platformId": "string"  }'
{
  "jobId": "string",
  "platformId": "string"
}
{
  "error": {
    "code": "string",
    "message": "string",
    "requestId": "string",
    "details": null
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "requestId": "string",
    "details": null
  }
}

Replay a DLQ entry (operator only)

POST
/api/v1/provision/dlq/{entryId}/replay

Path Parameters

entryId*string

Response Body

application/json

application/json

application/json

curl -X POST "https://provisioning.svc.nno.app/api/v1/provision/dlq/string/replay"
{
  "jobId": "string",
  "status": "QUEUED",
  "entryId": "string"
}
{
  "error": {
    "code": "string",
    "message": "string",
    "requestId": "string",
    "details": null
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "requestId": "string",
    "details": null
  }
}