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
| Capability | CLI support | Recommended path |
|---|---|---|
| Shared database allocate/delete/list/use | Yes (db group) | CLI first |
| Collection lifecycle | Yes (collection group) | CLI first |
| Vector insert/search | Yes (data group) | CLI first |
| Index create/drop | Yes (index group) | CLI first |
| Tenant health/version check | Yes (status, version) | CLI first |
| Dedicated cluster create/get/scale/delete/tasks | No first-class commands | gRPC/HTTP API |
| Backup and restore APIs | No first-class commands | gRPC/HTTP API |
| Backup policy APIs | No first-class commands | gRPC/HTTP API |
Generic RunCommand passthrough | No first-class command | gRPC/HTTP API |
Admin API (GetClusterTenants) | No | Internal/admin gRPC |
Practical Decision Rules
- Start with CLI for standard shared-db workflows.
- If command does not exist in
dodil vbase --help, use API reference and workflows. - 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.
| Path | Where request goes | Typical command style |
|---|---|---|
| RunCommand fallback | rpc.dev.dodil.io:443 (or https://api.dev.dodil.io:443 HTTP gateway) | grpcurl ... VBaseService/RunCommand with method + escaped JSON payload |
| Direct CLI Milvus | Tenant 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
- API reference hub: 04-api-reference.md
- Workflows hub: 06-workflows.md
Typical Hybrid Pattern
- Provision and select service with CLI:
dodil vbase db create my-shared-db
dodil vbase db use <service_id>- 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