Credentials Streamtime holds for you (cloud account keys, kubeconfigs, SSH keys, DNS and monitoring credentials, Kafka passwords) live in a secret store, never in plain configuration.
Store
What it is
Built-in vault (default)
An encrypted store inside Streamtime. Nothing to set up
HashiCorp Vault (AppRole sign-in)
Your own Vault server keeps the secrets and Streamtime’s encryption keys, with automatic key rotation
The store is chosen in first-time setup, at the Secrets Vault step. Settings → Secrets Management then lists the secrets Streamtime holds, and lets you add your own and choose which store each one goes to.
Before you start: HashiCorp Vault
From your Vault administrator:
The Vault URL. The Streamtime server must be able to reach it.
The Namespace, if you use Vault Enterprise namespaces.
An AppRole Role ID and Secret ID for Streamtime. Treat both as credentials.
Where AppRole sign-in is mounted (Auth Mount Path) and where the secrets go (Secrets Mount Path, a KV version 2 engine), if not at Vault’s usual paths.
Use HashiCorp Vault
In first-time setup, at the Secrets Vault step, choose HashiCorp Vault (AppRole sign-in).
Enter Vault URL, Namespace (optional), Role ID and Secret ID. Change Auth Mount Path and Secrets Mount Path only if your administrator mounted them elsewhere.
Select Test Connection, then continue.
The store is set during first-time setup only; there is no published API for it yet.
packagemainimport("bytes""crypto/rand""encoding/hex""encoding/json""net/http""os")constapi="https://api.example.com/organizations/<org>"// newKey returns a random idempotency key.funcnewKey()string{b:=make([]byte,16)rand.Read(b)returnhex.EncodeToString(b)}// call sends one request with the access token and a JSON body (or none).// An optional idempotency key is sent as the Idempotency-Key header.funccall(method,pathstring,bodyany,idempotencyKey...string)(*http.Response,error){varbufbytes.Bufferifbody!=nil{iferr:=json.NewEncoder(&buf).Encode(body);err!=nil{returnnil,err}}req,err:=http.NewRequest(method,api+path,&buf)iferr!=nil{returnnil,err}req.Header.Set("Authorization","Bearer "+os.Getenv("STREAMTIME_TOKEN"))req.Header.Set("Content-Type","application/json")iflen(idempotencyKey)>0{req.Header.Set("Idempotency-Key",idempotencyKey[0])}returnhttp.DefaultClient.Do(req)}
Add a secret
Store a value under a path, for example for a workload setting that refers to a secret.
Go to Settings → Secrets Management and select Create Secret.
Choose the Provider (where to store it; it can’t be changed later), enter a unique Path such as apps/db-password, and the Content as plain text or JSON.
provider is builtin or vault. List secrets with GET $API/secrets/ (values are not returned), and the stores available with GET $API/secrets/providers/.