Skip to Content
We are live but in Staging 🎉
CLI GuideCLI vs API Coverage Map

CLI vs API Coverage Map

Last validated: 2026-05-11

Use this map to decide whether a task is fully supported by dodil vbase or needs direct gRPC/HTTP calls.

Coverage Matrix

CapabilityCLI supportRecommended path
Shared database allocate/delete/list/useYes (db group)CLI first
Collection lifecycleYes (collection group)CLI first
Vector insert/searchYes (data group)CLI first
Index create/dropYes (index group)CLI first
Tenant health/version checkYes (status, version)CLI first
Dedicated cluster create/get/scale/delete/tasksNo first-class commandsgRPC/HTTP API
Backup and restore APIsNo first-class commandsgRPC/HTTP API
Backup policy APIsNo first-class commandsgRPC/HTTP API
Generic RunCommand passthroughNo first-class commandgRPC/HTTP API
Admin API (GetClusterTenants)NoInternal/admin gRPC

Practical Decision Rules

  1. Start with CLI for standard shared-db workflows.
  2. If command does not exist in dodil vbase --help, use API reference and workflows.
  3. For Milvus methods outside CLI groups, use RunCommand.

RunCommand vs Direct CLI Endpoint

RunCommand is a gateway-mediated generic method bridge, while most data-plane CLI commands call deployed Milvus directly.

PathWhere request goesTypical command style
RunCommand fallbackrpc.dev.dodil.io:443 (or https://api.dev.dodil.io:443 HTTP gateway)grpcurl ... VBaseService/RunCommand with method + escaped JSON payload
Direct CLI MilvusTenant endpoint from vbase.host:vbase.port after dodil vbase db use <service_id>dodil vbase collection ..., data ..., index ..., status, version

Practical implication:

  • prefer direct CLI path for common operations because flags are typed and simpler.
  • use RunCommand when method coverage is missing in CLI.

API Fallback Entry Points

Typical Hybrid Pattern

  1. Provision and select service with CLI:
dodil vbase db create my-shared-db dodil vbase db use <service_id>
  1. Perform advanced operation through API when needed:
grpcurl -insecure \ -H "authorization: Bearer $TOKEN" \ -H "dbname: <db_name>" \ -d '{"service_id":"<service_id>","method":"ShowCollections","input_payload":"{\"db_name\":\"<db_name>\"}"}' \ "rpc.dev.dodil.io:443" dodil.vbase.v1.VBaseService/RunCommand