Skip to Content
We are live but in Staging 🎉
API ReferenceService Lifecycle APIs

Service Lifecycle APIs

Last validated: 2026-05-11

This page covers health, dedicated cluster lifecycle, shared database lifecycle, and service discovery/access APIs.

API Domain Overview

DomaingRPC method(s)HTTP annotation(s)Typical use case
HealthHealthCheckGET /v1/vbase/healthzProbe service readiness for clients/automation.
Dedicated clustersCreateCluster, GetCluster, ScaleCluster, DeleteCluster, GetClusterInProgressTasks/v1/vbase/clusters...Provision and manage dedicated tenant capacity.
Shared databasesAllocateDatabase, DeleteDatabase/v1/vbase/databasesProvision and remove shared database services.
Service discovery/accessListServices, GetService, GetServiceAccess/v1/vbase/list/{organization_id}, /v1/vbase/{service_id}, /v1/vbase/{service_id}/accessResolve service IDs, status, endpoint, and DB name.

1) Health

HealthCheck

Use cases:

  • startup probe for SDK/automation
  • quick auth + connectivity verification

Arguments:

  • HealthRequest is empty.

Example (gRPC):

grpcurl -insecure \ -H "authorization: Bearer $TOKEN" \ -d '{}' \ "rpc.dev.dodil.io:443" dodil.vbase.v1.VBaseService/HealthCheck

2) Dedicated Cluster Lifecycle

CreateCluster

Use cases:

  • create isolated dedicated capacity
  • define initial compute and autoscaling behavior

Request arguments:

FieldTypeRequiredDescription
organization_idstringYesTenant organization UUID.
namestringYesFriendly cluster service name.
resource_config.compute_unitsint32NoInitial compute units. Defaults to 1 if omitted by runtime.
resource_config.enable_auto_scalingboolNoEnables autoscaling behavior if supported by deployment.
resource_config.max_compute_unitsint32NoAutoscaling upper bound.
resource_config.enable_replicasboolNoReplica support toggle.
resource_config.replicasint32NoReplica count when replicas are enabled.
labelsmap<string,string>NoUser-defined labels/tags for orchestration metadata.

Example (gRPC):

grpcurl -insecure \ -H "authorization: Bearer $TOKEN" \ -d '{ "organization_id": "'"$ORG_ID"'", "name": "dedicated-vbase-1", "resource_config": { "compute_units": 3, "enable_auto_scaling": true, "max_compute_units": 6, "enable_replicas": false, "replicas": 1 }, "labels": { "env": "staging" } }' \ "rpc.dev.dodil.io:443" dodil.vbase.v1.VBaseService/CreateCluster

Example (HTTP):

curl -sS -X POST \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ "https://api.dev.dodil.io:443/v1/vbase/clusters" \ -d '{ "organization_id": "'"$ORG_ID"'", "name": "dedicated-vbase-1", "resource_config": { "compute_units": 3, "enable_auto_scaling": true, "max_compute_units": 6 } }'

GetCluster

Use case:

  • inspect current cluster status and resource config

Request argument:

  • cluster_id (string, required): cluster service ID.

Note:

  • Proto HTTP annotation for this method currently contains malformed path token ({or}). Prefer gRPC for this call.

ScaleCluster

Use cases:

  • increase/decrease compute units
  • update autoscaling ceiling

Request arguments:

FieldTypeRequiredDescription
cluster_idstringYesTarget dedicated cluster service ID.
resource_configClusterResourceConfigYesNew resource configuration payload.

Example (gRPC):

grpcurl -insecure \ -H "authorization: Bearer $TOKEN" \ -d '{ "cluster_id": "<cluster_service_id>", "resource_config": { "compute_units": 6, "enable_auto_scaling": true, "max_compute_units": 12 } }' \ "rpc.dev.dodil.io:443" dodil.vbase.v1.VBaseService/ScaleCluster

GetClusterInProgressTasks

Use case:

  • observe active cluster operations (scale/delete/etc.)

Request argument:

  • cluster_id (string, required)

Note:

  • HTTP annotation uses DELETE for a read-style operation; treat this as annotation drift. Prefer gRPC.

DeleteCluster

Use case:

  • remove dedicated cluster service

Request arguments:

FieldTypeRequiredDescription
cluster_idstringYesCluster service ID to remove.
forceboolOptional in protoRuntime currently forces deletion behavior internally.

3) Shared Database Lifecycle

AllocateDatabase

Use case:

  • create a shared tenant database service for an organization

Request arguments:

FieldTypeRequiredDescription
organization_idstringYesTenant org UUID.
namestringYesService name for shared database.

Example (gRPC):

grpcurl -insecure \ -H "authorization: Bearer $TOKEN" \ -d '{"organization_id":"'"$ORG_ID"'","name":"my-shared-db"}' \ "rpc.dev.dodil.io:443" dodil.vbase.v1.VBaseService/AllocateDatabase

Example (HTTP):

curl -sS -X POST \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ "https://api.dev.dodil.io:443/v1/vbase/databases" \ -d '{"organization_id":"'"$ORG_ID"'","name":"my-shared-db"}'

DeleteDatabase

Use case:

  • remove a shared database service by service ID

Request arguments:

FieldTypeRequiredDescription
database_idstringYesService ID returned during allocation/list.

Important:

  • HTTP route does not include path ID; database_id is in request body/message.

4) Service Discovery and Access

ListServices

Use cases:

  • enumerate all services for an organization
  • filter by service status
  • paginate large org inventories

Request arguments:

FieldTypeRequiredDescription
organization_idstringYesOrganization UUID.
status_filterServiceStatusNoFilters by one status value. 0 behaves like no filter.
page_sizeint32NoPage size. 0 means server default.
pageint32No0-based page index.
include_deletedboolNoInclude deleted entries if true.

Example (gRPC):

grpcurl -insecure \ -H "authorization: Bearer $TOKEN" \ -d '{"organization_id":"'"$ORG_ID"'","page_size":50,"page":0,"include_deleted":false}' \ "rpc.dev.dodil.io:443" dodil.vbase.v1.VBaseService/ListServices

Example (HTTP):

curl -sS \ -H "Authorization: Bearer $TOKEN" \ "https://api.dev.dodil.io:443/v1/vbase/list/$ORG_ID"

GetService

Use case:

  • fetch one service object by service_id and optional cluster configuration payload

Request argument:

  • service_id (string, required)

GetServiceAccess

Use cases:

  • resolve endpoint/port/db_name required by direct Milvus operations
  • drive dodil vbase db use style context switching

Request argument:

  • service_id (string, required)

Example (gRPC):

grpcurl -insecure \ -H "authorization: Bearer $TOKEN" \ -d '{"service_id":"<service_id>"}' \ "rpc.dev.dodil.io:443" dodil.vbase.v1.VBaseService/GetServiceAccess

Example (HTTP):

curl -sS \ -H "Authorization: Bearer $TOKEN" \ "https://api.dev.dodil.io:443/v1/vbase/<service_id>/access"