From 0c55c7cb7b6f1ab477b7ef81293943069b8aed3e Mon Sep 17 00:00:00 2001 From: rkreddyp Date: Thu, 28 May 2026 20:26:33 -0400 Subject: [PATCH 1/2] docs: add API keys + Use the API guide MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Document programmatic access to the platform via API keys: - concepts/api-keys.md — what keys are, where to find them, org binding, the shown-once secret, and revocation (with the API Keys UI screenshot). - workflows/use-the-api.md — authenticate with a bearer key and the core loop (list apps → run → poll → fetch files) with curl examples; how to point an AI agent at /llms.txt. - README router + glossary entries (API, API key, llms.txt). Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 2 + concepts/api-keys.md | 57 ++++++++++++++++++++++++ glossary.md | 3 ++ images/api-keys-profile-ui.jpg | Bin 0 -> 152080 bytes workflows/use-the-api.md | 79 +++++++++++++++++++++++++++++++++ 5 files changed, 141 insertions(+) create mode 100644 concepts/api-keys.md create mode 100644 images/api-keys-profile-ui.jpg create mode 100644 workflows/use-the-api.md diff --git a/README.md b/README.md index 7a6b0a8..fcfbd0c 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,7 @@ If you're brand new, read these in order: | [Artifacts](concepts/artifacts.md) | Saved outputs, organized into folders. | | [Threads](concepts/threads.md) | Chats where you ask questions about sessions and files. | | [Scheduling](concepts/scheduling.md) | Running an app on a recurring schedule or at a future time. | +| [API keys](concepts/api-keys.md) | Long-lived keys to call the API from a script or an AI agent. | ## Install @@ -45,6 +46,7 @@ If you're brand new, read these in order: | [Save an artifact](workflows/save-an-artifact.md) | Take an output from a session and save it into an artifact folder. | | [Ask about a session](workflows/ask-about-a-session.md) | Open a thread on one or more sessions and ask questions about the results. | | [Schedule an app](workflows/schedule-an-app.md) | Set an app to run on a recurring schedule or at a specific time. | +| [Use the API](workflows/use-the-api.md) | Drive the platform from a script or AI agent with an API key (curl examples). | ## Glossary diff --git a/concepts/api-keys.md b/concepts/api-keys.md new file mode 100644 index 0000000..eb65679 --- /dev/null +++ b/concepts/api-keys.md @@ -0,0 +1,57 @@ +# API keys + +## What they are + +An **API key** is a long-lived credential that lets a program — for example a coding agent like Claude Code, a script, or `curl` — call the Transilience.ai API on your behalf, without signing in through the browser. With a key, anything you can do from the app (run [apps](apps.md), read [sessions](sessions.md) and [outputs](outputs.md), browse [artifacts](artifacts.md), and more) can be done from the command line or an agent. + +Each key is **bound to one [organization](#org-binding)** — the org you were in when you created it. The key carries that org with it, so requests made with the key are automatically scoped to it. + +![The API Keys tab in Account settings](../images/api-keys-profile-ui.jpg) + +## Where to find them + +Open **Settings** from the bottom of the left sidebar, then the **API Keys** tab. You'll see: + +- A short "Use SOS from Claude Code" panel with the **documentation URL** to hand to an agent (a `/llms.txt` guide). +- A **Create key** button. +- The list of keys for the current organization, each with its name, when it was created, and when it was last used. + +## Creating a key + +1. Click **Create key** and give it a name (for example `claude-code-laptop`). +2. The **secret is shown once**, right after creation. Copy it immediately and store it somewhere safe (a password manager) — for security it is never shown again and cannot be retrieved later. +3. If you lose a secret, just **revoke** the key and create a new one. + +## Using a key + +Send the key as a bearer token on every request: + +``` +Authorization: Bearer +``` + +Because the key is bound to an organization, you do **not** send any organization header — the org comes from the key. For a full walkthrough with `curl`, see [use the API](../workflows/use-the-api.md). + +## Organization binding + +A key belongs to exactly one organization. If you work across several orgs, create one key per org. To act in a different org, switch organizations in the app first, then create a key there. + +## Revoking a key + +In the **API Keys** tab, click **Revoke** next to a key. Revoked keys stop working shortly afterward and cannot be restored. Revoke a key any time you suspect its secret has leaked, or when a script that used it is retired. + +## Common questions + +**"Where is the key after I create it?"** — The secret appears only in the one-time dialog right after creation. The list afterward shows the key's name and dates, never the secret. If you didn't copy it, revoke the key and create a new one. + +**"Do I need to send my organization with each request?"** — No. The key is tied to one org, so the org is implied. + +**"What can a key do?"** — The same things you can do in that org. Admin-only actions still require that you are an org admin. + +**"How do I point an AI agent at the API?"** — Give it the documentation URL shown in the API Keys panel (the `/llms.txt` guide) plus a key. See [use the API](../workflows/use-the-api.md). + +## Related + +- [Use the API](../workflows/use-the-api.md) — step-by-step with curl examples. +- [Sessions](sessions.md) — what a run is, and the IDs you'll see in API responses. +- [Outputs](outputs.md) — the files a run produces, which you can fetch over the API. diff --git a/glossary.md b/glossary.md index c2c671a..1ab6b1a 100644 --- a/glossary.md +++ b/glossary.md @@ -2,6 +2,8 @@ One-line definitions for the terms used across these docs. Each term links to its concept page where one exists. +- **[API](workflows/use-the-api.md)** — The HTTP interface that lets a script or AI agent do what you do in the app — run apps, read sessions and outputs — authenticated with an [API key](concepts/api-keys.md). +- **[API key](concepts/api-keys.md)** — A long-lived credential for calling the API on your behalf, sent as `Authorization: Bearer `. Created in **Settings → API Keys**, bound to one organization, and shown only once. - **[App](concepts/apps.md)** — A reusable security or compliance workflow you can run; the catalog lives on the **Apps** page in the sidebar. ("Project" is the internal name for the same thing.) - **[Apps page](concepts/apps.md)** — The page at the **Apps** sidebar entry where every app is listed as a card you can run, schedule, or open. - **[App detail](concepts/apps.md#app-detail)** — A per-app page that shows the app's description, what it does, and lets you launch it. @@ -16,6 +18,7 @@ One-line definitions for the terms used across these docs. Each term links to it - **[Data file](concepts/outputs.md#data-files)** — A structured output file (typically JSON or CSV) produced by an app — usually raw scan results before they are summarized into a report. - **Failed** — A [session status](concepts/sessions.md#statuses) meaning the app encountered an error and did not finish. - **Files tab** — The tab inside a [session detail](concepts/run-history.md#session-detail) that lists every output file the app produced. +- **llms.txt** — A machine-readable guide to the [API](workflows/use-the-api.md), served at `/llms.txt`. Hand its URL plus an [API key](concepts/api-keys.md) to an AI agent so it can call the platform for you. - **[Live Activity](concepts/live-activity.md)** — The page that shows a session while it is running, with the timeline and log streaming in real time. - **New Thread** — The sidebar button that starts a new empty [thread](concepts/threads.md). - **[Notifications](concepts/live-activity.md#notifications)** — The Notifications tab inside the chat area where running and recently-finished sessions appear. diff --git a/images/api-keys-profile-ui.jpg b/images/api-keys-profile-ui.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5739502bc9532287f01325853b150879e6da41de GIT binary patch literal 152080 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 literal 0 HcmV?d00001 diff --git a/workflows/use-the-api.md b/workflows/use-the-api.md new file mode 100644 index 0000000..0035619 --- /dev/null +++ b/workflows/use-the-api.md @@ -0,0 +1,79 @@ +# Use the API + +Drive Transilience.ai from a script or an AI agent (like Claude Code) instead of the browser, using an [API key](../concepts/api-keys.md). + +## Before you start + +- Create a key in **Settings → API Keys** and copy the secret (it's shown once). See [API keys](../concepts/api-keys.md). +- Know your **base URL** — the address of the API. The exact host is shown in the API Keys panel. + +## Authenticate + +Send the key as a bearer token on every request. The key is bound to one [organization](../concepts/api-keys.md#org-binding), so you do **not** send any organization header. + +``` +Authorization: Bearer +``` + +## The core loop + +The everyday path is: list apps → run one → poll until it finishes → read its outputs. + +```bash +BASE="https://" +KEY="" + +# 1. See which apps you can run +curl -s "$BASE/projects/" -H "Authorization: Bearer $KEY" + +# 2. Start a run — returns a session id +curl -s "$BASE/project/execute" \ + -H "Authorization: Bearer $KEY" \ + -H "Content-Type: application/json" \ + -d '{"project_id":"aws_public_resource_analyzer","query":"Run a compliance scan"}' + +# 3. Poll the run until status is COMPLETED (or INCOMPLETE / FAILED) +curl -s "$BASE/project/outputs/" -H "Authorization: Bearer $KEY" + +# 4. List the output files, then download one +curl -s "$BASE/project/files/" -H "Authorization: Bearer $KEY" +curl -s "$BASE/project/files/?file_path=reports/summary.md" \ + -H "Authorization: Bearer $KEY" -o summary.md +``` + +Other useful calls: + +```bash +# List your recent runs (defaults to the last 5 days) +curl -s "$BASE/project/sessions" -H "Authorization: Bearer $KEY" + +# Widen the date range +curl -s "$BASE/project/sessions?start_date=2026-01-01&end_date=2026-12-31" \ + -H "Authorization: Bearer $KEY" +``` + +Notes: + +- `/project/outputs/{session_id}` is a **polling** endpoint — call it on an interval until the status is terminal (`COMPLETED`, `INCOMPLETE`, or `FAILED`). +- `/project/files/{session_id}` returns a **file list** with no query parameter, or one file's **raw bytes** when you pass `?file_path=...`. + +## Point an AI agent at it + +Hand the agent two things: + +1. Your **API key**. +2. The **documentation URL** shown in the API Keys panel — a machine-readable guide at `/llms.txt` that explains auth and the core endpoints with examples. + +The agent reads the guide, then makes the same calls shown above on your behalf — running apps, polling them, and reading the results. + +## If something goes wrong + +- **`401`** — the key is missing, wrong, or revoked. Check the `Authorization` header and that the key still exists in **Settings → API Keys**. +- **`503` about API keys not being enabled** — the workspace administrator needs to enable the API Keys feature; ask them to turn it on. +- **Empty session list** — `/project/sessions` defaults to the last 5 days; widen it with `start_date` / `end_date`. + +## Related + +- [API keys](../concepts/api-keys.md) — creating, binding, and revoking keys. +- [Run an app](run-an-app.md) — the same flow from the web UI. +- [Sessions](../concepts/sessions.md) and [Outputs](../concepts/outputs.md) — what the responses contain. From 41c6fb03ad69b217b2a72baeeaa8551d93262c63 Mon Sep 17 00:00:00 2001 From: rkreddyp Date: Fri, 29 May 2026 11:37:01 -0400 Subject: [PATCH 2/2] docs: add transiliencectl (CLI) guide MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Companion to the API docs: a command-line tool that drives the platform with an API key. - concepts/cli.md — what transiliencectl is, install, config, command list. - workflows/use-the-cli.md — install → config → the agent loop (projects list → run --follow → files get), config reference, troubleshooting. - README router + glossary (transiliencectl); cross-links from the API key pages. Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 2 ++ concepts/api-keys.md | 1 + concepts/cli.md | 54 +++++++++++++++++++++++++++++ glossary.md | 1 + workflows/use-the-api.md | 1 + workflows/use-the-cli.md | 73 ++++++++++++++++++++++++++++++++++++++++ 6 files changed, 132 insertions(+) create mode 100644 concepts/cli.md create mode 100644 workflows/use-the-cli.md diff --git a/README.md b/README.md index fcfbd0c..fd65c58 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,7 @@ If you're brand new, read these in order: | [Threads](concepts/threads.md) | Chats where you ask questions about sessions and files. | | [Scheduling](concepts/scheduling.md) | Running an app on a recurring schedule or at a future time. | | [API keys](concepts/api-keys.md) | Long-lived keys to call the API from a script or an AI agent. | +| [transiliencectl (CLI)](concepts/cli.md) | The command-line tool for driving the platform with an API key. | ## Install @@ -47,6 +48,7 @@ If you're brand new, read these in order: | [Ask about a session](workflows/ask-about-a-session.md) | Open a thread on one or more sessions and ask questions about the results. | | [Schedule an app](workflows/schedule-an-app.md) | Set an app to run on a recurring schedule or at a specific time. | | [Use the API](workflows/use-the-api.md) | Drive the platform from a script or AI agent with an API key (curl examples). | +| [Use the CLI](workflows/use-the-cli.md) | Drive the platform from your terminal with transiliencectl. | ## Glossary diff --git a/concepts/api-keys.md b/concepts/api-keys.md index eb65679..93ea087 100644 --- a/concepts/api-keys.md +++ b/concepts/api-keys.md @@ -52,6 +52,7 @@ In the **API Keys** tab, click **Revoke** next to a key. Revoked keys stop worki ## Related +- [transiliencectl (CLI)](cli.md) — drive the platform from your terminal with a key. - [Use the API](../workflows/use-the-api.md) — step-by-step with curl examples. - [Sessions](sessions.md) — what a run is, and the IDs you'll see in API responses. - [Outputs](outputs.md) — the files a run produces, which you can fetch over the API. diff --git a/concepts/cli.md b/concepts/cli.md new file mode 100644 index 0000000..dc81ba2 --- /dev/null +++ b/concepts/cli.md @@ -0,0 +1,54 @@ +# transiliencectl (CLI) + +## What it is + +**transiliencectl** is a command-line tool that talks to the Transilience.ai [API](../workflows/use-the-api.md). It turns the everyday loop — list apps, run one, watch it, pull the outputs — into short commands, so you can drive the platform from a terminal or a script instead of writing `curl` by hand. + +It authenticates with an [API key](api-keys.md) you mint in the app. Because the key is bound to one [organization](api-keys.md#org-binding), the CLI always acts in that org — there's nothing extra to pass. + +## Install + +```bash +pipx install transiliencectl # recommended (isolated) +# or, for development from a checkout: +pip install -e . +``` + +## Configure it once + +```bash +transiliencectl config set base-url +transiliencectl auth login --api-key +transiliencectl auth status # → Authenticated. base_url=... +``` + +Settings live in `~/.transilience/config.json`. Values can also come from the environment +(`TRANSILIENCE_BASE_URL`, `TRANSILIENCE_API_KEY`) or per-command flags (`--base-url`, `--api-key`); +the order of precedence is **flag → environment → config file**. + +## Commands + +| Command | What it does | +|---|---| +| `config set ` | Store `base-url` or `api-key`. `config get` / `config path` to inspect. | +| `auth login --api-key ` | Save your key. `auth status` checks it; `auth logout` clears it. | +| `projects list` / `projects get ` | Browse the [apps](apps.md) you can run. | +| `run -q "..." [--follow]` | Start a [run](sessions.md); `--follow` waits for it to finish. | +| `sessions list` / `sessions get [--follow]` | List past runs; inspect one. | +| `files list ` / `files get -o out` | List a run's [outputs](outputs.md) and download one. | + +Add `--json` to any command for machine-readable output (handy for scripts and AI agents). + +## Common questions + +**"How is this different from the raw API?"** — It's a friendlier front-end to the same [API](../workflows/use-the-api.md): no `curl`, no headers to remember, tables instead of raw JSON (unless you ask for `--json`). + +**"Where do I get the key?"** — In the app under **Settings → API Keys**. See [API keys](api-keys.md). + +**"Which org does it use?"** — The one your key is bound to. To act in another org, create a key there and `auth login` with it. + +## Related + +- [Use the CLI](../workflows/use-the-cli.md) — step-by-step walkthrough. +- [API keys](api-keys.md) — minting and managing keys. +- [Use the API](../workflows/use-the-api.md) — the underlying HTTP endpoints. diff --git a/glossary.md b/glossary.md index 1ab6b1a..5f8dafd 100644 --- a/glossary.md +++ b/glossary.md @@ -37,5 +37,6 @@ One-line definitions for the terms used across these docs. Each term links to it - **[Schedule](concepts/scheduling.md)** — A rule that runs an app automatically — either repeatedly (recurring) or once at a future time (one-off). - **Status** — One of pending, running, completed, or failed. See [session statuses](concepts/sessions.md#statuses). - **[Thread](concepts/threads.md)** — A conversation in which you can ask questions about a session, an output file, or several of them. +- **[transiliencectl](concepts/cli.md)** — The command-line tool that drives the platform via the [API](workflows/use-the-api.md), authenticated with an [API key](concepts/api-keys.md). - **[Thread group](concepts/threads.md#thread-groups)** — A named collection of threads that helps you organize related conversations. - **Timeline tab** — The tab inside a [session detail](concepts/run-history.md#session-detail) that shows the step-by-step log of what the app did. diff --git a/workflows/use-the-api.md b/workflows/use-the-api.md index 0035619..9ffe877 100644 --- a/workflows/use-the-api.md +++ b/workflows/use-the-api.md @@ -74,6 +74,7 @@ The agent reads the guide, then makes the same calls shown above on your behalf ## Related +- [Use the CLI](use-the-cli.md) — the same loop via the `transiliencectl` command-line tool. - [API keys](../concepts/api-keys.md) — creating, binding, and revoking keys. - [Run an app](run-an-app.md) — the same flow from the web UI. - [Sessions](../concepts/sessions.md) and [Outputs](../concepts/outputs.md) — what the responses contain. diff --git a/workflows/use-the-cli.md b/workflows/use-the-cli.md new file mode 100644 index 0000000..b38aed7 --- /dev/null +++ b/workflows/use-the-cli.md @@ -0,0 +1,73 @@ +# Use the CLI + +Drive Transilience.ai from your terminal with **[transiliencectl](../concepts/cli.md)** — list apps, run one, follow it to completion, and pull the outputs. + +## 1. Install + +```bash +pipx install transiliencectl +``` + +## 2. Configure once + +Get an [API key](../concepts/api-keys.md) from the app (**Settings → API Keys**), then: + +```bash +transiliencectl config set base-url +transiliencectl auth login --api-key +transiliencectl auth status # → Authenticated. base_url=... +``` + +You don't pass an organization anywhere — the key is bound to one, and the CLI uses it automatically. + +## 3. The everyday loop + +```bash +# See which apps you can run +transiliencectl projects list + +# Start a run and wait for it to finish +transiliencectl run aws_public_resource_analyzer -q "Run a compliance scan" --follow + +# Or list past runs and inspect one +transiliencectl sessions list +transiliencectl sessions get + +# Browse and download the outputs +transiliencectl files list +transiliencectl files get reports/summary.md -o summary.md +``` + +- `run --follow` (and `sessions get --follow`) polls until the run reaches a terminal status + (**completed**, **incomplete**, or **failed**). +- `files get` without `-o` writes the file to stdout; with `-o PATH` it saves to disk. + +## 4. Scripting and agents + +Add `--json` to any command to get raw JSON instead of a table — easy to pipe into `jq` or hand to an AI agent: + +```bash +transiliencectl --json sessions list | jq '.sessions[].session_id' +``` + +## Configuration reference + +Resolution order is **flag → environment → config file**: + +| Source | Base URL | API key | +|---|---|---| +| Flag | `--base-url` | `--api-key` | +| Environment | `TRANSILIENCE_BASE_URL` | `TRANSILIENCE_API_KEY` | +| Config file | `base_url` in `~/.transilience/config.json` | `api_key` in the same file | + +## If something goes wrong + +- **"Invalid or expired API key"** — re-check the key, or set a fresh one: `transiliencectl auth login --api-key `. +- **"Cannot reach "** — verify `transiliencectl config get base-url` points at the right host. +- **Empty `sessions list`** — it defaults to recent sessions; widen with `--start 2026-01-01 --end 2026-12-31`. + +## Related + +- [transiliencectl](../concepts/cli.md) — what the CLI is and its full command list. +- [API keys](../concepts/api-keys.md) — creating and revoking keys. +- [Use the API](use-the-api.md) — the raw HTTP endpoints behind the CLI.