89 Commits

Author SHA1 Message Date
cd1d866077 docs(tasks): standardize and upgrade Task 4.1 and Task 4.2 to 100% rubric compliance 2026-08-24 14:15:38 -07:00
226d04228b
Merge pull request #21 from mrteye/feat/auth-api-traefik-ingress-control-task-6742583984777370201
feat(tasks): create Traefik Universal Edge Ingress task file
2026-08-24 14:13:08 -07:00
google-labs-jules[bot]
5f31989137 feat(tasks): create Traefik Universal Edge Ingress task file
Generates `tasks/new/2026-0824.01.jul.feat.auth-api.traefik-ingress-control-2105.md` outlining the architecture and implementation steps for:
- Traefik global default-deny ForwardAuth setup
- Valkey-cached dynamic database bypass matrix (`is_public`, `bypass_paths`)
- Hybrid universal path and CIDR exemptions
- Dual-response error handling (302 vs 403) for unregistered apps
- Ephemeral guest sandbox flow with passkey promotion

Co-authored-by: mrteye <1945243+mrteye@users.noreply.github.com>
2026-08-24 21:12:30 +00:00
google-labs-jules[bot]
b0dd2d098c docs: draft phase 4 sso launchpad and logout spec
Drafted the task markdown file for Phase 4 covering Central SSO Application Launchpad, Logout Return-Path Preservation, Hybrid Ingress Gateway Protocol, and Strict Additive Security Audit.

Co-authored-by: mrteye <1945243+mrteye@users.noreply.github.com>
2026-08-24 21:10:17 +00:00
a0a05da03c
Merge pull request #19 from mrteye/feat-sss-recovery-matrix-4307830478024114673
feat: 2-of-3 Shamir's Secret Sharing Recovery Matrix
2026-08-24 00:50:26 -07:00
google-labs-jules[bot]
f63d0c9afe feat: implement 2-of-3 SSS recovery matrix using Wasm/Rust
- Scaffolds a new Rust crate `wasm/sss_recovery` for constant-time Shamir's Secret Sharing over GF(256) with strict Wasm `zeroize`
- Implements purely typed BIP-39 fallback mapped via Deno WebCrypto in `ui/utils/bip39.ts`
- Migrates `server/recovery.ts` logic mapping Device/Voucher + Server shares with Valkey rate-limiting
- Applies mandatory in-memory JS zeroization on all reconstructed buffers

Co-authored-by: mrteye <1945243+mrteye@users.noreply.github.com>
2026-08-24 07:49:34 +00:00
4ed20be4a2
Merge pull request #18 from mrteye/feat-webauthn-prf-8747559092824518798
feat: WebAuthn PRF Extension for KEK Derivation
2026-08-24 00:46:51 -07:00
google-labs-jules[bot]
e1555f14fc feat: implement WebAuthn PRF extension for client-side HKDF key derivation
* Added `prf_enabled` and `prf_salt` columns to the `passkeys` table.
* Updated registration API endpoints to request and store the PRF extension capability and generate a secure salt.
* Updated the login API endpoints to map stored PRF salts into the `evalByCredential` array for the WebAuthn challenge.
* Enhanced the client-side WebAuthn SDK (`auth-client.js`) to extract the PRF Base64URL string output, decode it into a `Uint8Array`, and securely derive a 256-bit AES-GCM Key Encryption Key (KEK) via `crypto.subtle.deriveKey` using the `auth-yes:prf:device-share:v1` info string.
* Implemented graceful fallbacks throughout the stack to ensure registration and standard logins proceed if PRF is unsupported.
* Added corresponding unit tests to verify PRF flow and rejection logic.
* Verified visual and functional changes for the optional username input on the login page via Playwright scripts.

Co-authored-by: mrteye <1945243+mrteye@users.noreply.github.com>
2026-08-24 07:46:22 +00:00
google-labs-jules[bot]
97336a95be feat(server): add RFC 6962 Merkle Tree Audit Ledger
- Expanded database schema to include `leaf_hash` in `audit_records` and added `audit_sths` table.
- Implemented `server/audit_merkle.ts` for native WebCrypto RFC 6962 tree computations and inclusion proofs.
- Created asynchronous micro-batcher in `server/audit.ts` to compute STH, sign with SPIFFE key, save to DB, and broadcast via Valkey.
- Refactored `auditLog` to compute leaf hashes synchronously before database inserts.
- Added hermetic unit tests with mock fallback patterns for SPIFFE/FFI in `server/audit_merkle.test.ts`.

Co-authored-by: mrteye <1945243+mrteye@users.noreply.github.com>
2026-08-24 06:19:23 +00:00
b34475b4fb
Merge pull request #14 from mrteye/feat-webauthn-prf-task-9777533714682100655
feat(docs): Add task for WebAuthn PRF extension
2026-08-23 22:52:43 -07:00
792ed141d2
Merge pull request #15 from mrteye/feat-recovery-sss-matrix-task-4186155517714950179
Add task file for 2-of-3 SSS Wasm recovery matrix
2026-08-23 22:52:36 -07:00
google-labs-jules[bot]
7ae19b1033 feat(planning): add task file for RFC 6962 Merkle Tree Ledger
Co-authored-by: mrteye <1945243+mrteye@users.noreply.github.com>
2026-08-24 05:52:16 +00:00
google-labs-jules[bot]
4b6001a646 Add task file for 2-of-3 SSS Wasm recovery matrix
Co-authored-by: mrteye <1945243+mrteye@users.noreply.github.com>
2026-08-24 05:52:11 +00:00
google-labs-jules[bot]
dcecbd3edd feat(docs): add task for WebAuthn PRF extension
Added a new task markdown file `2026-0824.01.jul.feat.webauthn.prf-extension-1200.md` detailing the plan for integrating the WebAuthn PRF extension. It outlines the schema updates, client and server flow implementations, and progressive fallback logic as per Kanban guidelines.

Co-authored-by: mrteye <1945243+mrteye@users.noreply.github.com>
2026-08-24 05:52:03 +00:00
95ef596407
Merge pull request #13 from mrteye/feat-http-sigs-7822098764133354425
feat: implement RFC 9421 HTTP message signatures
2026-08-23 22:36:13 -07:00
google-labs-jules[bot]
182c789e05 feat(auth): implement RFC 9421 HTTP Message Signatures
- Added native Deno WebCrypto Ed25519 signature verification middleware for headless edge workloads.
- Integrated dual authentication path to `/api/forward-auth` processing signatures and session cookies.
- Added dual storage Admin Management routes (`/api/admin/hwk`) securely inserting directly to PostgreSQL and pushing to $O(1)$ Valkey verification set.
- Completed all quality gates checks and hermetic mocked tests successfully.

Co-authored-by: mrteye <1945243+mrteye@users.noreply.github.com>
2026-08-24 05:36:01 +00:00
google-labs-jules[bot]
b919c66cbc feat(sdk): Implement Ghost Cockpit Protocol WebSocket guard helper
- Formalized Ghost Cockpit Protocol in docs/GHOST_COCKPIT_SPEC.md.
- Added `GhostCockpitClient` reference implementation.
- Implemented `createWebSocketGuard` in `sdk/hono.ts` to seamlessly terminate invalidated user sessions with code 1008.
- Added robust lifecycle cleanups and error checking for WebSocket frame deliveries on socket close.
- Added comprehensive integration tests in `sdk/hono.test.ts`.
- Cleaned unused imports and fixed all linting warnings.
- Moved task definition to complete.

Co-authored-by: mrteye <1945243+mrteye@users.noreply.github.com>
2026-08-24 04:53:51 +00:00
e15e5a8038
Merge pull request #11 from mrteye/http-sigs-rfc9421-task-8607209458702274605
feat: add RFC 9421 task file
2026-08-23 21:41:21 -07:00
google-labs-jules[bot]
a0989a3bed Add task for RFC 9421 HTTP Message Signatures verification
Adds a detailed markdown task file in `tasks/new/` following the Kanban guidelines to outline the architectural implementation plan for RFC 9421 HTTP Message Signatures verification at edge nodes using native Deno WebCrypto.

Co-authored-by: mrteye <1945243+mrteye@users.noreply.github.com>
2026-08-24 04:41:05 +00:00
google-labs-jules[bot]
d100495ead feat: draft ghost cockpit protocol task
Created the task file for formalizing the Ghost Cockpit Protocol and its corresponding WebSocket guard helper in the SDK, adhering strictly to the required guidelines.

Co-authored-by: mrteye <1945243+mrteye@users.noreply.github.com>
2026-08-24 04:39:44 +00:00
8390dcac3d
Merge pull request #9 from mrteye/feat-ingress-grant-vector-injection-17171143789522307350
feat: Ingress Grant Vector Injection (/api/forward-auth)
2026-08-23 21:23:16 -07:00
google-labs-jules[bot]
8ff5090ffa feat: Implement Ingress Grant Vector Injection for ForwardAuth
- Add `domain` column to `apps` table.
- Create Valkey caching layers for app resolution by host (`auth:app_by_host:<host>`) and user grants (`auth:grants:<userId>:<appId>`) with PostgreSQL fallback in `server/auth-session.ts`.
- Update `/api/forward-auth` endpoint to resolve `X-Forwarded-Host`, enforce Default-Deny, check RBAC grants, and inject `X-Forwarded-*` scopes.
- Update relevant unit tests to cover missing and invalid scenarios with correct Mock stubs.

Co-authored-by: mrteye <1945243+mrteye@users.noreply.github.com>
2026-08-24 04:23:04 +00:00
57570a0976
Merge pull request #8 from mrteye/feat-spire-ffi-argon2id-7776325516155569495
feat: Native Argon2id in spire_ffi
2026-08-23 21:20:43 -07:00
google-labs-jules[bot]
9da28a6416 feat(spire-ffi): implement native Argon2id derivation
- Added `argon2` v0.5 dependency to `spire_ffi/Cargo.toml`
- Implemented `argon2id_derive` FFI function in `spire_ffi/src/lib.rs` with C-ABI.
- Added Deno FFI binding `deriveArgon2idKey` in `server/spire_ffi.ts` with `nonblocking: true` to prevent stalling the event loop.
- Pre-allocates output buffer on the Deno side as the standard FFI pattern.
- Included fallback mock behavior when `libspire_ffi.so` is not loaded, returning a 32-byte 0xaa filled array.
- Updated unit tests in `server/spire_ffi.test.ts` to test mock usage and successful generation.

Co-authored-by: mrteye <1945243+mrteye@users.noreply.github.com>
2026-08-24 04:19:48 +00:00
google-labs-jules[bot]
3d66535889 feat: implement zero-dependency real-time event bus in AuthSdk
Added a lightweight, zero-dependency event bus to the `AuthSdk` to listen for Valkey RESP3 push invalidation events and emit them to registered listeners.
The implementation properly captures errors from synchronous and asynchronous listeners, ensuring they do not crash the primary SDK listener loop. Extracted the Valkey event processor to improve hermetic testability.

Co-authored-by: mrteye <1945243+mrteye@users.noreply.github.com>
2026-08-24 04:19:40 +00:00
a938b8c305 docs(tasks): add Task Critique & Plan Review Template to tasks/META_PROMPT.md 2026-08-23 20:59:48 -07:00
11786de7e4
Merge pull request #6 from mrteye/feat-spire-ffi-native-argon2-task-4427490188496264791
feat(spire-ffi): task plan for native Argon2id derivation
2026-08-23 20:57:41 -07:00
4b72d491bf
Merge pull request #4 from mrteye/feat-sdk-realtime-invalidation-bus-task-2670591133327528715
docs(tasks): draft realtime invalidation bus task for SDK
2026-08-23 20:57:34 -07:00
google-labs-jules[bot]
2b3b6f9636 feat(spire-ffi): create planning task for native Argon2id FFI
- Generated Kanban markdown file adhering to tasks/GUIDELINES.md.
- Documented requirements for SIMD, Deno FFI non-blocking bindings, and `hash-wasm` alternatives.
- Specified development/production fallback strategies.

Co-authored-by: mrteye <1945243+mrteye@users.noreply.github.com>
2026-08-24 03:57:17 +00:00
google-labs-jules[bot]
38310f4ead docs: draft task file for Ingress Grant Injection in forward-auth
Creates a new task markdown file in `tasks/new` detailing the
architecture and implementation steps required to inject
flattened RBAC grants via Valkey caching for `/api/forward-auth`.

Co-authored-by: mrteye <1945243+mrteye@users.noreply.github.com>
2026-08-24 03:56:04 +00:00
google-labs-jules[bot]
2753b6b757 docs(tasks): draft realtime invalidation bus task for SDK
Creates a Kanban task file outlining the architectural plan and
implementation steps for adding a zero-dependency real-time event
bus to `@auth-yes/sdk`. This bus will listen for Valkey RESP3 push
invalidation events and emit raw token strings to registered
listeners, ensuring safe and isolated execution to prevent downstream
crashes.

Co-authored-by: mrteye <1945243+mrteye@users.noreply.github.com>
2026-08-24 03:54:55 +00:00
8a6cd6f72e docs(tasks): groom backlog and move completed extraction task to complete/ 2026-08-23 10:31:11 -07:00
google-labs-jules[bot]
4360d67064 feat: Package generic SPIRE images and simplify compose volume
This implements custom Alpine-based Smart SPIRE Server and Agent Docker
images with self-seeding configuration entrypoints. It also updates
the docker-compose configuration to utilize a single host storage volume
and a dedicated named socket volume. Setup build pipelines are expanded to
compile and push these custom SPIRE images.

Co-authored-by: mrteye <1945243+mrteye@users.noreply.github.com>
2026-08-23 17:20:11 +00:00
1f03cfc85f docs(tasks): add smart SPIRE image packaging and single-volume bootstrap task 2026-08-23 09:41:35 -07:00
google-labs-jules[bot]
9988df3218 audit: verify 3-tier auth, rbac, and decouple server side effects
- Add `app` export and wrap startup logic behind `if (import.meta.main)`
- Extract `hono` middleware into `sdk/hono.ts` for clean separation
- Refactor module imports slightly to support in-memory native mocking (`db`, `valkey`, `spire_ffi`, `ratelimit`, `audit`)
- Implement comprehensive native Deno mock tests in `server/main.test.ts`
- Fix type checking across project files

Co-authored-by: mrteye <1945243+mrteye@users.noreply.github.com>
2026-08-22 00:29:19 +00:00
3ae77473a9 docs(tasks): refine layered-security test harness with modular sdk and entrypoint decoupling 2026-08-21 16:47:20 -07:00
google-labs-jules[bot]
80b9d3bbe6 audit(tests): Draft comprehensive test harness architecture plan
Creates a task file outlining the automated testing strategy for the
Auth-Yes platform. The plan covers testing strategies for Tier 1 & 2
(Traefik ForwardAuth), Tier 3 (ConnectRPC with SPIFFE/mTLS), RBAC
Default-Deny, and the @auth-yes/sdk Hono middleware using Deno native
mocking capabilities, strictly avoiding external Docker dependencies.

Co-authored-by: mrteye <1945243+mrteye@users.noreply.github.com>
2026-08-21 23:37:21 +00:00
474cc177ce chore: adopt dual licensing and import task history & scaffolding
- Add LICENSE-MIT and LICENSE-APACHE for dual MIT / Apache-2.0 distribution
- Update root LICENSE pointer, README.md, Deno workspace manifests, and Cargo.toml
- Add deno.lock dependency lockfile
- Format AGENTS.md system guidelines
- Import task lifecycle scaffolding and historical story specifications (extract-auth-yes, setup-ts architecture, modular workspace)
2026-08-21 15:20:36 -07:00
9b2367e2aa docs: add AGENTS.md guidelines and initial task kanban 2026-08-21 14:33:42 -07:00