Skip to content

feat: add secure origin-bound credential vault - #176

Merged
SarthakWade merged 3 commits into
mainfrom
feat/credential-vault-156
Sep 11, 2026
Merged

feat: add secure origin-bound credential vault#176
SarthakWade merged 3 commits into
mainfrom
feat/credential-vault-156

Conversation

@SarthakWade

Copy link
Copy Markdown
Collaborator

Summary

  • add local credential management commands backed by a dedicated broker
  • bind aliases and approved username metadata to canonical exact origins
  • store secrets in the macOS login Keychain or Linux Secret Service with no plaintext fallback
  • read passwords only from an attached foreground terminal with echo disabled and signal-safe restoration
  • keep credential commands outside the browser protocol and reject them over MCP
  • add atomic private metadata, bounded output, and crash-recovery transactions
  • package the broker in macOS, Linux, release, installer, and npm distributions

Security boundaries

  • passwords are rejected in arguments, environment variables, MCP parameters, output, logs, and metadata
  • public HTTP origins, unsafe aliases, symlinked or permissive metadata, and caller-selected Linux D-Bus sockets fail closed
  • macOS reports the local/unnotarized tier and uses no shared access group
  • private contexts cannot access the normal vault
  • retrieval and autofill remain intentionally deferred to Authentication orchestration: challenges, account selection, login, and save consent #157, where mandatory user presence is enforced

Verification

  • pnpm test
  • pnpm test:runtime
  • pnpm test:npm
  • pnpm --filter @headless/web lint
  • pnpm build
  • pnpm test:e2e:linux
  • macOS Keychain add, list, rename, and remove smoke test
  • piped-input, password-argument, insecure-origin, terminal-signal, rollback, and interrupted-transaction negative paths
  • shell syntax and git diff checks

Stacked on #175, which is stacked on #171.

Closes #156.

Base automatically changed from feat/durable-auth-profiles-155 to main September 11, 2026 20:15
@SarthakWade
SarthakWade merged commit 1550d3f into main Sep 11, 2026
16 checks passed
@SarthakWade
SarthakWade deleted the feat/credential-vault-156 branch September 11, 2026 20:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Credential vault: secure storage and origin-bound account aliases

1 participant