You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/site/changelog.mdx
+38-28Lines changed: 38 additions & 28 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,56 +8,66 @@ keywords: ["authsome changelog", "authsome release notes", "authsome version his
8
8
9
9
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.
10
10
11
-
<Updatelabel="0.2.4"description="2026-05-08">
12
-
**Admin audit dashboard.**The local daemon serves an interactive audit dashboard.
11
+
<Updatelabel="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.
13
13
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>
17
16
18
-
**Notion DCR provider.** Added `notion_dcr` (Dynamic Client Registration) variant for the MCP endpoint at `mcp.notion.com`.
17
+
<Updatelabel="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.
19
19
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.
21
21
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.
23
23
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/`).
25
25
</Update>
26
26
27
-
<Updatelabel="0.2.3"description="2026-05-01">
28
-
Documentation pass. Added demo video to README.
29
-
</Update>
27
+
<Updatelabel="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.
30
29
31
-
<Updatelabel="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.
33
31
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.
35
33
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.
37
35
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.
39
37
</Update>
40
38
41
-
<Updatelabel="0.2.1"description="2026-04-28">
42
-
Fix: set connection `api_url` directly from the resolved provider definition.
39
+
<Updatelabel="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.
43
47
</Update>
44
48
45
-
<Updatelabel="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
+
<Updatelabel="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>
47
56
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
+
<Updatelabel="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.
49
59
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).
⚠ **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).
<Updatelabel="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.
61
71
</Update>
62
72
63
73
## Versioning
@@ -79,7 +89,7 @@ pip install --upgrade authsome
79
89
uvx authsome@latest --version
80
90
```
81
91
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.
Copy file name to clipboardExpand all lines: docs/site/concepts/provider-registry.mdx
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -46,7 +46,7 @@ For full templates and the field-by-field schema. For a worked OAuth example usi
46
46
47
47
## Bundled providers do not imply bundled credentials
48
48
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.
50
50
51
51
For services that support Dynamic Client Registration (DCR), the `dcr_pkce` flow registers a fresh OAuth client automatically, no `client_id` collection needed.
52
52
@@ -64,7 +64,7 @@ For services where the base URL varies per deployment (GitHub Enterprise, Okta,
64
64
}
65
65
```
66
66
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.
Copy file name to clipboardExpand all lines: docs/site/concepts/proxy-injection.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ The child process never sees the raw secret.
20
20
When the child makes an HTTP(S) call, mitmproxy decrypts and inspects the request. It looks at the destination host.
21
21
</Step>
22
22
<Steptitle="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.
24
24
</Step>
25
25
<Steptitle="The request is forwarded">
26
26
The authenticated request goes to the external API. The response streams back through the proxy unchanged.
Copy file name to clipboardExpand all lines: docs/site/concepts/the-daemon.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,7 +16,7 @@ Authentication flows hold state. They involve asynchronous steps like browser re
16
16
-**Session state:** Multi-step operations and token refresh logic need a place to live.
17
17
-**Secure injection:** The proxy needs an isolated component to fetch fresh tokens without exposing the Vault decryption keys to the proxy process itself.
18
18
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 persistentcoordinator that manages browser bridges, handles OAuth callbacks, serves the dashboard, and orchestrates vault access and credential lifecycle.
Copy file name to clipboardExpand all lines: docs/site/guides/custom-providers.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -169,7 +169,7 @@ authsome login acmecrm
169
169
authsome get acmecrm --field status # → connected
170
170
```
171
171
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.
Copy file name to clipboardExpand all lines: docs/site/guides/headless-device-code.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -68,7 +68,7 @@ In CI, you can capture the authorization URL and code from the command output an
68
68
authsome login github --flow device_code 2>&1| tee login.log
69
69
```
70
70
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).
Copy file name to clipboardExpand all lines: docs/site/guides/login-with-oauth.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -52,7 +52,7 @@ This is what happens:
52
52
53
53
<Steps>
54
54
<Steptitle="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.
56
56
</Step>
57
57
<Steptitle="Authorization redirect">
58
58
A second browser window opens to the provider's authorization page. Approve the requested scopes.
Copy file name to clipboardExpand all lines: docs/site/installation.mdx
+10-10Lines changed: 10 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -49,7 +49,7 @@ Authsome runs on Python 3.13 or newer. It ships as a single PyPI package with no
49
49
Pin a version:
50
50
51
51
```bash
52
-
uvx authsome@0.2.4 --version
52
+
uvx authsome@0.7 --version
53
53
```
54
54
55
55
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/`
87
87
88
88
```text
89
89
~/.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
94
95
server/
95
96
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
99
100
```
100
101
101
102
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
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
135
135
136
136
Re-run `authsome doctor` to confirm the backend is reachable. The trade-offs are covered in [Encryption at rest](/security/encryption).
137
137
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).
Copy file name to clipboardExpand all lines: docs/site/integrations/agents/anthropic-sdk.mdx
+12-16Lines changed: 12 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -49,21 +49,20 @@ authsome run -- python my_agent.py
49
49
50
50
The SDK initializes with `ANTHROPIC_API_KEY=authsome-proxy-managed`. Outbound requests to `api.anthropic.com` are intercepted and authenticated at the proxy layer.
51
51
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:
53
60
54
61
```python
55
-
from authsome.server.dependencies importcreate_auth_service
0 commit comments