Skip to Content
We are live but in Staging 🎉

Engine — API Reference

Package: dodil.k3.tables.v1 · Service: TableService

You usually don’t need these RPCs. Every bucket gets an auto-enabled table engine on CreateBucketEnableEngine runs implicitly. This page is for advanced scenarios: applying custom settings after the fact, disabling tables on a bucket without dropping it, or troubleshooting.

The engine is the per-bucket backend configuration. One engine per bucket; all tables in the bucket share it. See Core Concepts → Engine for the type.

RPCHTTP
EnableEnginePOST /:bucket/tables/_engine
GetEngineGET /:bucket/tables/_engine
DisableEngineDELETE /:bucket/tables/_engine

gRPC setup — grpcurl, endpoints, reflection, and field-name casing — is covered once in Conventions → Using gRPC.

EnableEngine

Most callers will never run this — CreateBucket enables the engine implicitly. Use it to:

  • Re-enable an engine you previously disabled
  • Apply custom settings post-bucket-creation (re-enables with new settings)

Request

Default settings (same as the auto-enable does):

curl -sS -X POST "https://k3.dev.dodil.io/kb-prod/tables/_engine" \ -H "Authorization: Bearer $DODIL_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "bucket": "kb-prod", "settings": "{}" }'

With custom settings:

curl -sS -X POST "https://k3.dev.dodil.io/kb-prod/tables/_engine" \ -H "Authorization: Bearer $DODIL_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "bucket": "kb-prod", "settings": "{\"setting_key\":\"value\"}" }'

Response

An Engine row — see Core Concepts → Engine.

GetEngine

Request

curl -sS "https://k3.dev.dodil.io/kb-prod/tables/_engine" \ -H "Authorization: Bearer $DODIL_TOKEN"

Response

An Engine row — see Core Concepts → Engine.

{ "engineId": "eng_a1b2…", "bucket": "kb-prod", "status": "ENGINE_STATUS_ACTIVE", "settings": "{}", "tableCount": 4, "createdAt": "1716840000000", "updatedAt": "1716843600000" }

DisableEngine

Disables the engine for the bucket. Does not delete tables — table rows + Delta data remain intact — but blocks new writes / reads against any of them.

Request

curl -sS -X DELETE "https://k3.dev.dodil.io/kb-prod/tables/_engine" \ -H "Authorization: Bearer $DODIL_TOKEN"

Response

Empty (DisableEngineResponse {}).

Disable is reversible — call EnableEngine to flip it back. The engine row + engine_id + tableCount persist; only status changes.


See also