Your customers run your software inside their own cloud accounts. You have no SSH keys, no kubectl context, no AWS credentials. When something goes wrong (a pod crash-looping, a disk filling up, a backfill that needs kicking) you cannot justDocumentation Index
Fetch the complete documentation index at: https://docs.tensor9.com/llms.txt
Use this file to discover all available pages before exploring further.
ssh in.
Operations is the surface that bridges that gap. You ship vetted
templates to your customers, submit a request to run one against
one of your customer’s appliances, and your customer reviews and
approves the request through a web link. The command runs inside
their appliance, the output is held encrypted in the appliance’s
secret store, and your customer signs a release before you see
anything.
The four entities
Operations works in terms of four objects. Knowing what each one is makes the rest of the docs much shorter.| Entity | What it is |
|---|---|
| Template | A small file you author (*.tensor9.tf, *.t9.sh, or *.t9.kubectl) describing one runnable operation: its body, declared data access, variables, and required permission tier. |
| Source | A Git repository whose templates are auto-imported into your control plane. You re-sync to pull new and modified templates as the repo evolves. |
| Ops command | A single submission of a template against a single customer appliance, with values bound for the template’s variables. Runs through a state machine from submission to released output. |
| Pre-approval | A customer-signed manifest that lets you run a specific template against a specific appliance up to N times within a validity window without per-command approval. |
The four-step lifecycle
Every ops command moves through the same shape, regardless of which template flavor it uses or which appliance it targets:Review
Your customer reads the template description, the declared data-access
tags, your justification reason, and the exact command body and
variable values. They pick Approve, Reject, or close.
Approve
On approval, the appliance prepares to execute. Pre-approved
templates skip Steps 1 and 2 silently.
Execute
The command body runs inside the appliance’s sandboxed working
directory. Output (stdout, stderr, exit code) is captured and
encrypted with a per-command key the appliance holds in its vault.
tensor9 ops command audit verify.
What your customer sees
When you submit an ops command, your customer is sent (via your existing notification channel) a unique/support/<token> web link
to your support portal. Clicking the link opens the four-step approval UI
described above. Approval and release happen there; the signed
release manifest is what authorizes the control plane to forward
plaintext output to you.
You never see your customer’s portal session. The only thing that
crosses the boundary is the plaintext output (and only after your
customer signs the release manifest).
Where to go next
| If you want to… | Read |
|---|---|
| Author a template (file format, variables, permission tiers, data-access tags) | Authoring templates |
Maintain a Git repo of templates as a re-syncable source (the cmdlib pattern) | Git template sources |
| Submit and track an ops command against your customer’s appliance | Running commands |
| Let your customer pre-approve a template once for repeated runs | Standing pre-approvals |
| Understand the keys, signatures, and audit guarantees underneath | Security model |