Skip to Content
We are live but in Staging 🎉

dodil data bucket

Manage K3 bucketscreate, get, list, update, delete. Mirrors Buckets — API Reference.

Bucket-scoped sub-groups: dodil data bucket policy (S3-style ACL) and dodil data bucket cors (CORS configuration).

dodil data bucket create

dodil data bucket create [name] [flags]

Creates a new bucket scoped to the caller’s org. Defaults from the API apply (BUCKET_ACCESS_MODE_PRIVATE, storage_quota_bytes = 0 = unlimited) — the CLI does not currently expose flags for them. To make a bucket public you must follow up with dodil data bucket update <name> --access-mode public.

FlagShortTypeDescription
--description-dstringHuman-readable bucket description

The name must be 3–63 characters, lowercase letters / digits / - only, starting and ending with a letter or digit, and unique in the org — the server rejects anything else before provisioning.

Examples:

dodil data bucket create kb-prod dodil data bucket create kb-prod -d "Production knowledge base"

dodil data bucket get

dodil data bucket get [name]

Fetches a bucket by name. Output format follows the global -o/--output flag (default table; use -o json for the full Bucket row).

Example:

dodil data bucket get kb-prod -o json
{ "accessMode": "BUCKET_ACCESS_MODE_PRIVATE", "status": "BUCKET_STATUS_ACTIVE", "name": "kb-prod", "drn": "drn:dodil:k3:us-east-1:<org_id>:bucket/kb-prod", "internalSourceId": "4d2adf30-6f14-4c4d-bf66-ec979d9c5f8b", "objectCount": "148", "sourceCount": "1", "ruleCount": "0", "indexCount": "0", "storageUsedBytes": "2695684", "storageQuotaBytes": "0" }

Enum values come back fully qualified (BUCKET_STATUS_ACTIVE, BUCKET_ACCESS_MODE_PRIVATE), not as bare ACTIVE / PRIVATE. Timestamps are rendered as RFC 3339 by the CLI even though the wire carries Unix milliseconds.

dodil data bucket list

dodil data bucket list

Lists all buckets in the caller’s org. Pagination and search filtering exist on the underlying ListBuckets API but are not surfaced as CLI flags today. The default table prints NAME and DESCRIPTION only — use -o json for everything else.

sourceCount and internalSourceId are wrong on list. They come back 0 and "" even for a bucket that has its auto-created internal S3 source. dodil data bucket get <name> reports both correctly; prefer it whenever those fields matter.

dodil data bucket update

dodil data bucket update [name] [flags]

Patches mutable fields on a bucket — only the flags you pass are sent. Anything you don’t pass stays unchanged. Mirrors UpdateBucket.

FlagShortTypeDescription
--description-dstringHuman-readable description
--storage-quota-bytesintStorage quota in bytes (0 = unlimited)
--access-modestringprivate | public | custom — case-insensitive; the CLI maps them to BUCKET_ACCESS_MODE_* and rejects anything else client-side

Setting --access-mode custom by hand is rarely what you want: bucket policy set already flips the bucket to custom, and custom with no policy denies everything except the owner.

Examples:

# Change just the description dodil data bucket update kb-prod -d "Renamed bucket" # Make it public dodil data bucket update kb-prod --access-mode public # Set a 10 GiB quota dodil data bucket update kb-prod --storage-quota-bytes 10737418240 # Multiple fields at once dodil data bucket update kb-prod -d "Tighter quota" --storage-quota-bytes 5368709120

dodil data bucket delete

dodil data bucket delete [name]

Deletes a bucket.

This purges the bucket’s contents — it does not refuse a non-empty bucket. The server loops list + batch-delete until the backing store is empty, then drops the bucket’s plane database, its engine rows (clearing reservation intent and billing) and its remaining ingest rules. The CLI adds no confirmation prompt and there is no --force to gate it, because there is nothing to gate: one command and the data is gone.

Example:

dodil data bucket delete kb-prod

See also