Secret Entity

A Secret is a flat entity with three fields: ID, Name, and Value. One secret holds one value. If you need a cert, a key, and a CA — that’s three secrets.

Creating a secret

curl -X POST localhost:8080/api/v1/secrets \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "prod-tls-cert",
    "value": "-----BEGIN CERTIFICATE-----\nMIID..."
  }'

The response returns a SecretSummary (ID + Name only, no Value):

{"id": "abc-123", "name": "prod-tls-cert"}

Reading a secret

# Full secret including value
curl localhost:8080/api/v1/secrets/abc-123

# List all secrets (summaries only, no values)
curl localhost:8080/api/v1/secrets

The list endpoint never returns values — only ID and Name.

Updating a secret

curl -X PUT localhost:8080/api/v1/secrets/abc-123 \
  -H 'Content-Type: application/json' \
  -d '{"name": "prod-tls-cert", "value": "-----BEGIN CERTIFICATE-----\nNEW..."}'

Existing activated snapshots are not affected. To push the new value to proxies, create and activate a new snapshot.

Deleting a secret

curl -X DELETE localhost:8080/api/v1/secrets/abc-123

Entities that reference a deleted secret will fail at the next snapshot build.

All fields

FieldTypeDescription
idstringAuto-generated UUID
namestringHuman-readable label
valuestringThe sensitive content (PEM, token, password, etc.)