Skip to content

Commit 6204a47

Browse files
authored
Merge pull request #439 from agentrhq/chore/docs-site-v0.7-stale-cleanup
docs: refresh Mintlify site for v0.7 and remove stale references
2 parents 9253aa8 + 0a5126c commit 6204a47

77 files changed

Lines changed: 394 additions & 948 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/site/changelog.mdx

Lines changed: 38 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -8,56 +8,66 @@ keywords: ["authsome changelog", "authsome release notes", "authsome version his
88

99
A curated summary of authsome releases. For the full per-commit log, see [CHANGELOG.md](https://github.com/agentrhq/authsome/blob/main/CHANGELOG.md) in the repository.
1010

11-
<Update label="0.2.4" description="2026-05-08">
12-
**Admin audit dashboard.** The local daemon serves an interactive audit dashboard.
11+
<Update label="0.7" description="2026-06-16">
12+
**Documentation refresh.** Public Mintlify docs updated for the Principal / Vault / Identity model. Retired profile-based terminology, removed references to the old in-process `AuthService` library API, and aligned installation, doctor, and daemon API pages with the current storage layout.
1313

14-
**Browser SSO.** Support for browser SSO via Chrome cookie reading.
15-
16-
**Customizable home directory.** `AUTHSOME_HOME` overrides the default `~/.authsome/` location. Useful for per-project credential isolation and CI.
14+
**Current integration surface.** CLI commands, `authsome run` proxy injection, `authsome export`, and the daemon HTTP API (with PoP JWT auth) are the supported paths for agents and tooling.
15+
</Update>
1716

18-
**Notion DCR provider.** Added `notion_dcr` (Dynamic Client Registration) variant for the MCP endpoint at `mcp.notion.com`.
17+
<Update label="0.6.x" description="2026-06-06 to 2026-06-09">
18+
**Next.js dashboard.** Static dashboard served from the daemon root with provider and connection management UI.
1919

20-
**Improved error handling.** Custom error propagation between the daemon server and CLI client.
20+
**Self-hosting.** Docker Compose setup and self-hosting guide for running the daemon outside a laptop.
2121

22-
**Non-interactive register.** New `--yes` flag on `authsome register` skips the confirmation prompt in scripts.
22+
**Provider expansion.** Bundled providers for Google Workspace services, Jira, Confluence, YouTube, Vertex AI, Todoist, Cloudflare, Outlook, Word, Calendar, Zoom, Reddit, and more.
2323

24-
**Distinct exit code for cancelled credential entry** (exit code 8) so scripts can distinguish user cancellation from authentication failure.
24+
**Architecture cleanup.** Multi-server-compatible identities, cleaner UI auth flows, and client/server home directory split (`~/.authsome/client/` vs `~/.authsome/server/`).
2525
</Update>
2626

27-
<Update label="0.2.3" description="2026-05-01">
28-
Documentation pass. Added demo video to README.
29-
</Update>
27+
<Update label="0.5.0" description="2026-05-29">
28+
**Breaking:** Principal claim flow required for vault access. Existing local installs must register a Principal and accept the identity claim.
3029

31-
<Update label="0.2.2" description="2026-04-29">
32-
**Audit logging.** Structured JSON event log written to `~/.authsome/audit.log` for every significant action (login, logout, revoke, export, register). See [Audit log format](/reference/audit-log).
30+
**Breaking:** Vault encryption moved to Argon2id KEK/DEK model. Fernet-encrypted vaults cannot be read back; re-login required.
3331

34-
**List output rendered as a table.** `authsome list` shows providers, source (bundled / custom), auth type, default connection, and status in a single tabular view.
32+
**Audit events and principal roles.** Structured audit logging with admin/user roles. Admin audit dashboard.
3533

36-
**Expanded `whoami` context.** Reports the home directory, encryption mode, registered identity handle, and DID.
34+
**Browser SSO.** Chrome cookie reading for providers that support it.
3735

38-
**Regex proxy host URLs.** Provider definitions can declare `api_url: "regex:..."` to match multiple hosts behind a single provider (used by Google and Linear).
36+
**Anthropic and Gemini** bundled providers added.
3937
</Update>
4038

41-
<Update label="0.2.1" description="2026-04-28">
42-
Fix: set connection `api_url` directly from the resolved provider definition.
39+
<Update label="0.4.0" description="2026-05-25">
40+
**Breaking:** Principal, Vault, and Identity replace the old profile model. Credentials are namespaced under `vault:<vault_id>:...`. See [Principal, Vault, and Identity](/concepts/principal-vault-identity).
41+
42+
**Claim flow.** Identities must claim a Principal before accessing credentials.
43+
44+
**Master key rotation.** `rekey` command and API endpoint.
45+
46+
**CLI restructure.** Provider and admin command namespaces.
4347
</Update>
4448

45-
<Update label="0.2.0" description="2026-04-28">
46-
**Architectural restructure.** Vault and AuthLayer split into separate layers with a documented protocol boundary. Public Python API consolidated around `AuthService` and `AuthLayer` (re-exported from the top-level `authsome` package). CLI commands and flags are unchanged. See [Architecture](/concepts/architecture).
49+
<Update label="0.3.x" description="2026-05-20">
50+
**Configurable proxy scope.** `connected_allow` and related proxy modes in client config.
51+
52+
**Health checks.** Readiness validates connections for the active identity.
53+
54+
**Telemetry.** Opt-out PostHog analytics via environment variables.
55+
</Update>
4756

48-
**Browser bridge for sensitive input.** OAuth `client_secret` and API keys are now collected through a local browser form (or `getpass` fallback). Sensitive values are no longer accepted as command-line arguments.
57+
<Update label="0.2.x" description="2026-04-28 to 2026-05-08">
58+
**Browser bridge for sensitive input.** OAuth `client_secret` and API keys collected through a local browser form.
4959

50-
**`{base_url}` templating.** Multi-tenant providers (GitHub Enterprise, Okta, GitLab self-managed) declare a default `base_url` and `--base-url` overrides it at login time. See [Custom providers](/guides/custom-providers#multi-tenant-providers).
60+
**`{base_url}` templating.** Multi-tenant providers (GitHub Enterprise, Okta, GitLab self-managed).
5161

52-
**`--verbose` and `--log-file` flags.** loguru-backed file logging with `--verbose` for DEBUG to stderr.
62+
**Audit logging.** Structured JSON event log for login, logout, revoke, and export.
5363

54-
**mitmproxy CA injection.** Subprocesses started by `authsome run` get a combined system + mitmproxy CA bundle so SDKs trust the proxy by default.
64+
**Admin audit dashboard** and **Notion DCR** provider.
5565

56-
**Breaking:** the older `AuthClient` entry point is gone. Library users should switch to `from authsome.server.dependencies import create_auth_service`. See [Python library](/reference/python-library).
66+
**`AUTHSOME_HOME`** for per-project credential isolation.
5767
</Update>
5868

5969
<Update label="0.1.x" description="up to 2026-04-24">
60-
Initial public series. Established the CLI surface (`login`, `logout`, `revoke`, `remove`, `list`, `inspect`, `get`, `export`, `run`, `register`, `doctor`, `whoami`), the four flow types (PKCE, device code, DCR + PKCE, API key), and the bundled provider set. Major additions in this series include the proxy runner, RC publishing, OAuth scope support, the `--force` flag, and several bundled-provider additions (Ashby, Klaviyo, and others).
70+
Initial public series. Established the CLI surface, four flow types (PKCE, device code, DCR + PKCE, API key), bundled providers, and the proxy runner.
6171
</Update>
6272

6373
## Versioning
@@ -79,7 +89,7 @@ pip install --upgrade authsome
7989
uvx authsome@latest --version
8090
```
8191

82-
Stored credentials, providers, and `config.json` persist across upgrades. The `schema_version` field in `~/.authsome/config.json` and on every `ConnectionRecord` is reserved for forward-compatibility migrations.
92+
Stored credentials, providers, and client config persist across upgrades. Connection records carry a `schema_version` field reserved for forward-compatibility migrations.
8393

8494
## What's next
8595

docs/site/concepts/provider-registry.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ For full templates and the field-by-field schema. For a worked OAuth example usi
4646

4747
## Bundled providers do not imply bundled credentials
4848

49-
A bundled provider definition only describes how to talk to a service. It does not include OAuth client credentials. The first time you log in to an OAuth2 provider, authsome collects your `client_id` and `client_secret` through a secure browser bridge and stores them encrypted in your profile.
49+
A bundled provider definition only describes how to talk to a service. It does not include OAuth client credentials. The first time you log in to an OAuth2 provider, authsome collects your `client_id` and `client_secret` through a secure browser bridge and stores them encrypted in your vault.
5050

5151
For services that support Dynamic Client Registration (DCR), the `dcr_pkce` flow registers a fresh OAuth client automatically, no `client_id` collection needed.
5252

@@ -64,7 +64,7 @@ For services where the base URL varies per deployment (GitHub Enterprise, Okta,
6464
}
6565
```
6666

67-
During `authsome login`, the user is prompted for the base URL with the JSON value as the default. A custom base URL is saved to the profile and used for all future token refreshes on that connection.
67+
During `authsome login`, the user is prompted for the base URL with the JSON value as the default. A custom base URL is saved to the vault and used for all future token refreshes on that connection.
6868

6969
## Adding your own providers
7070

docs/site/concepts/proxy-injection.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ The child process never sees the raw secret.
2020
When the child makes an HTTP(S) call, mitmproxy decrypts and inspects the request. It looks at the destination host.
2121
</Step>
2222
<Step title="The proxy matches by api_url">
23-
Authsome iterates the registered providers and matches the request host against each provider's `api_url` field. On a match, it asks the AuthLayer for fresh credentials (refreshing if necessary) and injects the right `Authorization` header.
23+
Authsome iterates the registered providers and matches the request host against each provider's `api_url` field. On a match, it asks the daemon for fresh credentials (refreshing if necessary) and injects the right `Authorization` header.
2424
</Step>
2525
<Step title="The request is forwarded">
2626
The authenticated request goes to the external API. The response streams back through the proxy unchanged.

docs/site/concepts/the-daemon.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Authentication flows hold state. They involve asynchronous steps like browser re
1616
- **Session state:** Multi-step operations and token refresh logic need a place to live.
1717
- **Secure injection:** The proxy needs an isolated component to fetch fresh tokens without exposing the Vault decryption keys to the proxy process itself.
1818

19-
The daemon solves this. It runs a persistent, in-memory coordinator that manages browser bridges, handles OAuth callbacks, serves the dashboard, and orchestrates the Vault and Auth layers.
19+
The daemon solves this. It runs a persistent coordinator that manages browser bridges, handles OAuth callbacks, serves the dashboard, and orchestrates vault access and credential lifecycle.
2020

2121
## Trust boundary and authorization
2222

docs/site/guides/custom-providers.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ authsome login acmecrm
169169
authsome get acmecrm --field status # → connected
170170
```
171171

172-
For OAuth2 providers without DCR, authsome opens a local browser form on first login to collect `client_id` and `client_secret`. They are stored encrypted under the active profile and reused on every subsequent login. They are never accepted as command-line arguments.
172+
For OAuth2 providers without DCR, authsome opens a local browser form on first login to collect `client_id` and `client_secret`. They are stored encrypted in the active vault and reused on every subsequent login. They are never accepted as command-line arguments.
173173

174174
## Multi-tenant providers
175175

docs/site/guides/headless-device-code.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ In CI, you can capture the authorization URL and code from the command output an
6868
authsome login github --flow device_code 2>&1 | tee login.log
6969
```
7070

71-
The login command waits until the device flow either completes, expires, or is cancelled. For unattended CI you typically log in once on a developer machine and then commit the encrypted profile (or, more often, run the agent only on machines that already have an authenticated profile).
71+
The login command waits until the device flow either completes, expires, or is cancelled. For unattended CI you typically log in once on a developer machine and then copy the encrypted vault data (or, more often, run the agent only on machines that already have an authenticated vault).
7272

7373
## API key providers
7474

docs/site/guides/login-with-oauth.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ This is what happens:
5252

5353
<Steps>
5454
<Step title="Client credential collection (first time only)">
55-
Authsome opens a local form at `http://127.0.0.1:7998`. Paste your `client_id` and `client_secret`. They are encrypted and stored under your profile, then reused on every subsequent login.
55+
Authsome opens a local form at `http://127.0.0.1:7998`. Paste your `client_id` and `client_secret`. They are encrypted and stored in your vault, then reused on every subsequent login.
5656
</Step>
5757
<Step title="Authorization redirect">
5858
A second browser window opens to the provider's authorization page. Approve the requested scopes.

docs/site/guides/multiple-connections.mdx

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,13 +66,10 @@ authsome login github --connection work --force
6666
authsome run -- python my_agent.py
6767
```
6868

69-
Or use the library, which accepts `connection=` directly:
69+
Or export credentials for a specific connection:
7070

71-
```python
72-
from authsome.server.dependencies import create_auth_service
73-
74-
auth = create_auth_service()
75-
token = auth.get_access_token("github", connection="work")
71+
```bash
72+
eval "$(authsome export github --connection work --format env)"
7673
```
7774

7875
## Remove a connection

docs/site/installation.mdx

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ Authsome runs on Python 3.13 or newer. It ships as a single PyPI package with no
4949
Pin a version:
5050

5151
```bash
52-
uvx authsome@0.2.4 --version
52+
uvx authsome@0.7 --version
5353
```
5454

5555
Use `uvx` when you don't want a persistent install (sandboxed environments, one-off scripts). Every command shown in the rest of the docs as `authsome <subcommand>` works as `uvx authsome@latest <subcommand>` here.
@@ -87,15 +87,16 @@ On `authsome onboard`, authsome initializes its home directory at `~/.authsome/`
8787

8888
```text
8989
~/.authsome/
90-
config.json
91-
audit.log
92-
identities/<generated-handle>.json
93-
identities/<generated-handle>.key
90+
client/
91+
config.json active identity, proxy mode
92+
logs/authsome.log
93+
identities/<handle>.json
94+
identities/<handle>.key
9495
server/
9596
master.key mode 0600
96-
kv_store/
97-
identity_registry.json
98-
daemon/
97+
authsome.db identity/principal/vault registries
98+
kv_store/ encrypted credential blobs
99+
logs/authsome.log
99100
```
100101

101102
On a fresh `onboard`, authsome resolves the master key source in this order:
@@ -119,7 +120,6 @@ For a remote or self-hosted daemon, pass `--base-url` once; authsome saves it in
119120
authsome onboard --base-url https://authsome.example.com
120121
```
121122

122-
123123
## Choose the encryption backend
124124

125125
By default, authsome uses `encryption.mode = "auto"` and applies the precedence above. To pin the daemon to the local file or OS keychain instead, edit the Authsome config:
@@ -135,7 +135,7 @@ By default, authsome uses `encryption.mode = "auto"` and applies the precedence
135135

136136
Re-run `authsome doctor` to confirm the backend is reachable. The trade-offs are covered in [Encryption at rest](/security/encryption).
137137

138-
Older installs that used the implicit `default` profile must run `authsome onboard` again. This release does not migrate credentials under old `profile:default:*` keys.
138+
Upgrading from releases before 0.4 (the old profile model) requires a fresh `authsome onboard` and re-login. Credentials under `profile:*` keys are not migrated automatically. See [Changelog](/changelog).
139139

140140
## Optional: trust the proxy CA
141141

docs/site/integrations/agents/anthropic-sdk.mdx

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -49,21 +49,20 @@ authsome run -- python my_agent.py
4949

5050
The SDK initializes with `ANTHROPIC_API_KEY=authsome-proxy-managed`. Outbound requests to `api.anthropic.com` are intercepted and authenticated at the proxy layer.
5151

52-
## Alternative: pass the key explicitly
52+
## Alternative: export into the environment
53+
54+
```bash
55+
eval "$(authsome export anthropic --format env)"
56+
python my_agent.py
57+
```
58+
59+
Or read the key in Python after export:
5360

5461
```python
55-
from authsome.server.dependencies import create_auth_service
62+
import os
5663
from anthropic import Anthropic
5764

58-
auth = create_auth_service()
59-
client = Anthropic(api_key=auth.get_access_token("anthropic"))
60-
61-
resp = client.messages.create(
62-
model="claude-sonnet-4-5",
63-
max_tokens=1024,
64-
messages=[{"role": "user", "content": "ping"}],
65-
)
66-
print(resp.content[0].text)
65+
client = Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
6766
```
6867

6968
## Multi-account workflows
@@ -73,11 +72,8 @@ authsome login anthropic --connection personal
7372
authsome login anthropic --connection team
7473
```
7574

76-
In code:
77-
78-
```python
79-
key = auth.get_access_token("anthropic", connection="team")
80-
client = Anthropic(api_key=key)
75+
```bash
76+
eval "$(authsome export anthropic --connection team --format env)"
8177
```
8278

8379
## What's next

0 commit comments

Comments
 (0)