Commit Graph

66 Commits

Author SHA1 Message Date
Manoj Bajaj e341d4ed3b Merge pull request #438 from agentrhq/feature/authsome-onboard
feat!: Add authsome onboard, remove init and scan
2026-06-16 21:33:28 +05:30
Manoj Bajaj 3a9f17e9bc fix: recover from 409 when concurrent agents register the same DID
When two processes with the same private key race to register, the loser
gets a 409 from the identity server. Re-resolve the handle by DID and
continue instead of failing startup.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-16 08:50:01 -07:00
Manoj Bajaj d9936d5699 feat!: replace init and scan with authsome onboard
Unifies first-run setup into a single idempotent command that registers
identity, completes claim, and imports API keys from env. Persists
--base-url in client config for remote daemon connections.

Closes #434

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-16 02:22:10 -07:00
rishabhraj36 8d94e4d37f fix: ruff check 2026-06-16 13:35:29 +05:30
rishabhraj36 d9d2c60563 feat: derive agent identity from a single private-key env var 2026-06-16 13:32:04 +05:30
Ankit Ranjan 972e00c575 refactor: rename identity to agent throughout CLI and UI for improved terminology consistency 2026-06-15 17:27:10 +05:30
beubax 0975ab82e0 feat: expose global connection CLI controls 2026-06-10 13:57:45 +05:30
Manoj Bajaj ad23d60754 feat: Simplify identity portability 2026-06-05 12:23:32 +05:30
Manoj Bajaj a033bfe93f chore: satisfy pylint ruff checks 2026-06-04 22:22:50 +05:30
Manoj Bajaj 10f6e8ae41 fix: Remove type checking hacks 2026-06-04 21:28:22 +05:30
Manoj Bajaj bfd84b5010 refactor: metadata doesnt need separate file 2026-06-04 19:34:26 +05:30
Manoj Bajaj 3aab2fbd48 chore: run ruff lint 2026-06-04 16:14:00 +05:30
Manoj Bajaj b96d593883 fix: resolve pre-commit failures 2026-06-04 11:50:56 +05:30
Manoj Bajaj 668f91a54a fix: cache identity registration per daemon 2026-06-03 15:26:33 +05:30
beubax c42da7293a refactor: replace audit log file with SQLite-backed audit storage and rename hosted session components to browser sessions 2026-05-29 15:28:47 +05:30
beubax 6f0f61c372 refactor: replace file-based registry storage with a unified SQL-backed ServerStore implementation 2026-05-27 16:02:24 +05:30
Ankit Ranjan af356d5f4f feat: move daemon management commands from admin module to main CLI 2026-05-26 16:24:02 +05:30
Ankit Ranjan cc3271da53 Merge remote-tracking branch 'origin/main' into feature/cli-command-grouping
# Conflicts:
#	src/authsome/cli/main.py
2026-05-25 17:54:01 +05:30
Ankit Ranjan a326e3f1c4 feat: restructure CLI commands under provider and admin namespaces 2026-05-25 17:24:37 +05:30
beubax 3ce32f9384 feat: support env-backed runtime identities 2026-05-25 15:23:17 +05:30
Manoj Bajaj e0ea86dc99 Merge pull request #315 from agentrhq/feat/login_flow
feat: login flow
2026-05-22 18:16:17 +05:30
beubax c161ab96d0 feat: implement HostedAccountService for email/password authentication and JWT session management 2026-05-22 18:13:06 +05:30
Ankit Ranjan 83709f4e37 fix: improve whoami robustness by handling connection failures gracefully and isolating keyring tests 2026-05-21 15:11:01 +05:30
Manoj Bajaj bb5a2a6152 refactor!: Create version 0.4 which adds support for principal, identity, vault key loading precedence and many more fixes 2026-05-20 21:29:50 +05:30
Manoj Bajaj 39c1370ec8 refactor: rename actors package to identity with semantic sub-modules
Replace authsome.actors with authsome.identity, splitting into four
focused sub-modules:
  identity/local.py     — IdentityMetadata, keys, DID helpers, create_identity
  identity/proof.py     — PoP JWT creation and validation
  identity/registry.py  — daemon IdentityRegistry (Handle → DID)
  identity/principal.py — ClaimStatus, PrincipalRegistry, VaultRegistry,
                          IdentityClaimRegistry, PrincipalVaultBindingRegistry

Update all imports across src/ and tests/. Move tests/actors/test_registry.py
to tests/identity/test_registry.py. Delete the actors/ package.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Entire-Checkpoint: 88222782ec3b
2026-05-20 19:27:13 +05:30
beubax 57f792ce04 Merge branch 'main' into feature/principal-vault-identity-design 2026-05-20 15:37:03 +05:30
beubax d4d180e565 Merge branch 'main' into feature/principal-vault-identity-design 2026-05-20 12:00:37 +05:30
Ankit Ranjan f1c74d299a test: update daemon CLI tests with required patches and mock return values 2026-05-19 17:20:28 +05:30
beubax 923cc93aca feat: scope connections to vault, add claim flow and principal concept, confine UI session to principal view, and make vault/identity/principal orthogonal 2026-05-19 14:25:57 +05:30
rishabhraj36 21e74cd99a Merge branch 'main' into 260-feat-configurable-proxy-mode-intercept-scope-unmatched-policy 2026-05-18 02:30:53 +05:30
rishabhraj36 98e3a9ecea refactor(proxy): move proxy.mode from ServerConfig to ClientConfig 2026-05-16 11:34:43 +05:30
Ankit Ranjan da185352b2 refactor: rename provider host_url configuration field to api_url throughout codebase and documentation 2026-05-15 19:01:55 +05:30
rishabhraj36 a929bea966 fix(proxy): use load_server_config after LocalAppStore.get_config removal 2026-05-15 16:12:23 +05:30
rishabhraj36 61025fc659 Merge branch 'main' into 260-feat-configurable-proxy-mode-intercept-scope-unmatched-policy 2026-05-15 15:40:13 +05:30
beubax 5f52807b68 fix: save library version in client config 2026-05-15 14:16:34 +05:30
beubax 378fa68a42 refactor: replace remote audit logging with local file-based audit and simplify daemon configuration management 2026-05-15 13:53:24 +05:30
rishabhraj36 255a2db2e3 feat(proxy): configurable mode CLI + provider hint in deny body 2026-05-14 19:01:00 +05:30
beubax 7e4d02197e tests: fix hosted deployment tests 2026-05-14 18:26:36 +05:30
beubax 1ddb61a9b2 Merge branch 'main' into feat/server-store-cleanup 2026-05-14 18:13:17 +05:30
beubax 5c98ea5412 refactor: transition to persistent storage backend for sessions, identities, and audit events with async support 2026-05-14 18:04:16 +05:30
beubax 9ed0714455 feat: implement hosted UI session management and multitenant provider visibility policy 2026-05-14 00:51:33 +05:30
beubax be78393d23 feat: make provider client credentials a global property of hosted deployment 2026-05-13 23:22:31 +05:30
beubax 46a981a448 feat: implement local client profile management and update error handling for session authentication 2026-05-13 15:45:04 +05:30
beubax ccc481058e Merge branch 'feature/did-identity-pop-auth' of https://github.com/agentrhq/authsome into feature/did-identity-pop-auth 2026-05-13 14:48:04 +05:30
beubax 79f0a96806 refactor: rename profile to identity 2026-05-13 14:45:51 +05:30
Manoj Bajaj d6958c8434 refactor!: unify Identity and Profile; remove profile management layer
Profile is now a pure credential namespace scoped by the Identity handle,
not an independently managed entity. The two were always 1:1 but modelled
as separate concepts; this commit makes that explicit.

Key changes:
- Add `active_identity` to GlobalConfig; `ensure_local_identity` reads it
  and errors hard if the configured handle is missing on disk (no silent
  re-creation)
- `authsome init` writes `active_identity` to config after registration
- Collapse `registered: bool` + `registration_status: str` on
  IdentityMetadata into a single `registered: bool`; add `mark_registered()`
- Remove vestigial `Identity` dataclass, `DEFAULT_IDENTITY`, `current()`
- Remove `name`, `description`, `owner_email` from IdentityMetadata (deferred
  to hosted version)
- Remove `ProfileMetadata`, `ProfileNotFoundError`, `create_profile`,
  `list_profiles`, `get_profile`, `set_default_profile`, `default_profile`
  shim in save_config — profile is a side-effect of identity registration
- Add hard-error test for missing configured identity
- Update UBIQUITOUS_LANGUAGE.md, AGENTS.md architecture section, and
  ADR 0002 to reflect current code (fix stale AuthsomeContext, AuthClient,
  config.json path, ProfileMetadata references)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Entire-Checkpoint: 614885258a45
2026-05-13 14:29:18 +05:30
Manoj Bajaj 019bdd11e8 feat!: require server-registered identities
Make the daemon identity registry authoritative for protected PoP requests and remove implicit default-profile identity behavior.

Store daemon-owned state under server/ while keeping CLI signing identity files under identities/.

BREAKING CHANGE: Existing implicit default-profile installs must run authsome init again; profile:default credentials are not migrated.

Entire-Checkpoint: 557455816515
2026-05-12 19:58:43 +05:30
Manoj Bajaj 7ad14f60a3 feat: add did pop daemon authorization
Entire-Checkpoint: a6b771e5077a
2026-05-12 19:18:25 +05:30
beubax 807f0250e8 refactor: centralize proxy route and credential resolution logic in AuthService and update async testing patterns 2026-05-12 16:02:32 +05:30
beubax 5b2a4fc845 refactor: convert synchronous API route handlers and service methods to asynchronous execution 2026-05-12 15:35:00 +05:30