Specta Licenses
CONSTELLATION_SPECTA_LICENSE_PRIV_PEM (base64-encoded PKCS#8
PEM, paired with priv/specta_license_public.pem) for local dev,
or CONSTELLATION_SPECTA_LICENSE_PRIV_PEM_SM to a Secrets Manager
name/ARN holding the same value. Run
python scripts/gen_specta_signing_key.py if you need to
generate a dev keypair. Issuance is disabled until one of these is set.
Issue offline license blobs for Specta. Customers paste the blob into
Specta's admin UI at #/admin/llm-profile → Activate license;
Specta verifies an RSA signature against the bundled public key, writes
var/specta/llm-license.json, and the heartbeat picks it up
within 60s. The signed envelope enforces only expiry. Licenses
carry no model claims — model access is scoped on the gateway virtual key,
and the models field below is a kW-internal note.
Issue a license
RSA-SHA256-PKCS1v15 envelope, 60s heartbeatPast issuances
Show to re-display the snippet, ✕ to remove the record| License ID | Customer | Issued | Expires | Route | Models note | By | |
|---|---|---|---|---|---|---|---|
| No licenses issued yet. | |||||||
For instances in signed access mode (accessMode:"signed") — every user
needs a kW-signed access grant on their spectaAuth tag. The deployer
generates an access request on the instance's Settings → Users tab
(any ungranted user can generate their own from the refusal page) and sends it to kW.
Paste it below, review who is being let in, and sign. Grants are individually signed
with the same key as licenses; the term is the revocation lever, so offboarding is
"don't renew".
Sign access grants
access request in → roster review → signed bundle out
Specta's in-app feedback files a GitHub issue on the private
kW-Labs/kw.specta repo. Client hosts can't hold that credential,
so their instance POSTs the finished issue to
/api/feedback/ingest authenticated by its license blob, and
Constellation — the one kW-controlled box with the token — files it. The
client is taken from the signed license, never the request body.
Relay status
kW-Labs/kw.spectaCONSTELLATION_FEEDBACK_GITHUB_TOKEN (a PAT with issues:write on
kW-Labs/kw.specta), or CONSTELLATION_FEEDBACK_GITHUB_TOKEN_SM
to a Secrets Manager name/ARN. Until one is set, ingest still verifies and
rate-limits but returns a retryable 5xx instead of filing — clients keep
their queued feedback and retry, so nothing is lost.
Disabled clients
a denied org gets a permanent 403 — no change needed on their boxNo clients disabled. Feedback is on for every licensed client.
Recent deliveries
last 0 ingest attemptsNo feedback received yet.