Skip to Content
We are live but in Staging 🎉
API ReferenceConfig, Tools, Templates, and Health API

Config, Tools, Templates, and Health API

Last validated: 2026-05-14

This page covers tenant configuration APIs, script env overlays, tool catalog APIs, template discovery, and service health checks.

1) Tenant Env APIs

RPCHTTP annotationStatusUse case
SetEnvVarPUT /v1/scriptum/envImplementedUpsert one tenant env key
GetEnvVarGET /v1/scriptum/env/{key}ImplementedRead one key
ListEnvVarsGET /v1/scriptum/envPartialList all env entries
DeleteEnvVarDELETE /v1/scriptum/env/{key}ImplementedRemove key
ImportEnvVarsPOST /v1/scriptum/env/importImplementedBulk import/overwrite

Argument details

  • SetEnvVarRequest.key, value: both required.
  • ImportEnvVarsRequest.vars{}: map of key-value pairs, overwritten on conflict.

Current caveat:

  • ListEnvVars returns keys and values (not keys-only). Treat as sensitive output.

2) Script Env Overlay APIs

RPCHTTP annotationStatusUse case
GetScriptEnvGET /v1/scriptum/scripts/{name}/envImplementedRead per-script overlay
UpdateScriptEnvPATCH /v1/scriptum/scripts/{name}/envImplementedUpsert/delete overlay keys

Merge semantics

Effective env at run time is:

  • tenant base env
  • overlaid by script env
  • with empty-defers behavior for empty script values

UpdateScriptEnvRequest fields:

  • name: script name
  • set{}: keys to upsert
  • delete[]: keys to remove

Conflict rule:

  • If the same key is present in both set and delete, delete wins in resulting overlay.

3) Tool APIs

RPCHTTP annotationStatusUse case
RegisterToolPOST /v1/scriptum/toolsUnimplementedRegister custom tool
ListToolsGET /v1/scriptum/toolsPartialEnumerate available tools
GetToolGET /v1/scriptum/tools/{tool_id}UnimplementedFetch one tool definition

ListToolsRequest fields:

  • page_size
  • page_token

Current caveat:

  • Page token progression is limited in current runtime behavior.

4) Template APIs

RPCHTTP annotationStatusUse case
ListTemplatesGET /v1/scriptum/templatesImplementedDiscover starter templates
GetTemplateGET /v1/scriptum/templates/{id}ImplementedRetrieve template details + DSL

ListTemplatesRequest fields:

  • tags[], labels[]
  • category
  • search
  • page_size, page_token

Use cases:

  • Catalog explorer in UI.
  • Script bootstrap pipelines (CreateScript.from_template).

5) Health API

RPCHTTP annotationStatusUse case
HealthCheckGET /v1/scriptum/healthImplementedProgrammatic service-level health/version check

Response fields:

  • status
  • version
  • uptime_seconds

Also available as direct management HTTP endpoints:

  • GET /health
  • GET /ready
  • GET /metrics

6) Example Calls

gRPC env import + script overlay update

# Import tenant env grpcurl \ -H "authorization: Bearer $DODIL_TOKEN" \ -H "x-organization-id: $SCRIPTUM_ORG_ID" \ -d '{"vars":{"OPENAI_API_KEY":"...","DB_HOST":"db.internal"}}' \ rpc.dev.dodil.io:443 dodil.scriptum.v1.ScriptumService/ImportEnvVars # Apply script overlay grpcurl \ -H "authorization: Bearer $DODIL_TOKEN" \ -H "x-organization-id: $SCRIPTUM_ORG_ID" \ -d '{"name":"invoice-parser","set":{"MODEL":"gpt-4.1"},"delete":["LEGACY_FLAG"]}' \ rpc.dev.dodil.io:443 dodil.scriptum.v1.ScriptumService/UpdateScriptEnv

gRPC template discovery

grpcurl \ -H "authorization: Bearer $DODIL_TOKEN" \ -H "x-organization-id: $SCRIPTUM_ORG_ID" \ -d '{"category":"extraction","search":"invoice","page_size":20}' \ rpc.dev.dodil.io:443 dodil.scriptum.v1.ScriptumService/ListTemplates

HTTP management probes

curl -sS "https://api.dev.dodil.io:443/health" curl -sS "https://api.dev.dodil.io:443/ready"

7) Client Recommendations

  • Avoid printing env listings in shared logs.
  • Keep script overlays minimal and explicit to reduce configuration drift.
  • Cache template lists in UI clients, but always fetch template content by ID before bootstrap.
  • Treat UNIMPLEMENTED tool APIs as expected until server support is added.