57 Commits

Author SHA1 Message Date
Manoj Bajaj 679fa77762 fix: prefer specific proxy route prefixes 2026-04-28 17:50:31 +05:30
Manoj Bajaj 946576a652 fix: keep proxy routing on default connections 2026-04-28 17:44:47 +05:30
Manoj Bajaj 0fd02c6530 fix: harden auth proxy routing 2026-04-28 17:36:22 +05:30
Tejas b5d042b5c9 feat: inject combined system and mitmproxy CA bundle into subprocess … (#90)
* feat: inject combined system and mitmproxy CA bundle into subprocess environments to support HTTPS interception

* refactor: improve CA bundle creation and fix tests
2026-04-28 16:09:32 +05:30
beubax 0499c70a4f refactor: consolidate initialization logic into AuthsomeContext and remove legacy init command 2026-04-27 14:32:19 +05:30
Manoj Bajaj 02d1acfc50 refactor: Organize bundled providers 2026-04-26 14:13:21 +05:30
Manoj Bajaj bfd75eeae0 feat!: v0.2.0 — Vault + AuthLayer architecture, InputProvider, FlowResult
BREAKING CHANGE: Complete internal restructuring. All public Python API
has moved; CLI commands and flags are unchanged.

Architecture changes:
- Introduce Vault layer (vault/) — generic encrypted KV store; replaces
  store/ + crypto/ monolith. Compact AES-256-GCM format, LocalFile and
  Keyring backends.
- Introduce AuthLayer (auth/) — owns flows, token refresh, login/logout/
  revoke. Receives Vault + ProviderRegistry as deps; no direct crypto.
- Introduce AuthsomeContext (context.py) — thin wiring container
  replacing AuthClient as the CLI entry point.
- Move flows/ → auth/flows/, models/ → auth/models/,
  providers/ → auth/providers/. Delete store/, crypto/, client.py.

New features:
- InputProvider protocol: BridgeInputProvider, InteractiveInputProvider,
  MockInputProvider — replaces ad-hoc secure_input_bridge calls and
  simplifies test setup.
- FlowResult dataclass: flows now return FlowResult(connection,
  client_record) instead of a bare ConnectionRecord. DCR flow populates
  client_record only when it actually registered a new client.
- RequestRouter class removed; routing inlined as _route() module-level
  function in proxy/server.py. AuthProxyAddon takes only auth: AuthLayer.
- ConnectionRecord v2: tokens are plaintext str (Vault handles
  encryption at rest). Sensitive annotation marks fields for redaction.

Docs:
- docs/UBIQUITOUS_LANGUAGE.md: added Architecture Layers section (Vault,
  AuthLayer, AuthsomeContext, Sensitive); deprecated CredentialStore,
  CryptoBackend, EncryptedField.
- docs/manual-testing.md: end-to-end manual testing guide.

Tests reorganized under tests/auth/, tests/vault/, tests/proxy/,
tests/common/. 262 tests pass.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 13:15:05 +05:30