docs(tasks): enrich Prompt 4.1 for Jules with comprehensive Tier 1 bypass and allowlist architecture
This commit is contained in:
parent
7420401147
commit
2e30c5ad3e
@ -9,14 +9,14 @@ and
|
||||
|
||||
## Progress & Execution Roadmap
|
||||
|
||||
| Prompt ID | Task Scope | Status | Target File |
|
||||
| :------------- | :----------------------------------------------------- | :-------------- | :-------------------------------------------- |
|
||||
| **Prompt 1.1** | Ingress Grant Vector Injection (`/api/forward-auth`) | ✅ **COMPLETE** | `server/main.ts`, `server/auth-session.ts` |
|
||||
| **Prompt 1.2** | SDK Real-Time Invalidation Event Bus (`@auth-yes/sdk`) | ✅ **COMPLETE** | `sdk/mod.ts` |
|
||||
| **Prompt 3.2** | Native SIMD Argon2id Derivation in `spire_ffi` | ✅ **COMPLETE** | `spire_ffi/src/lib.rs`, `server/spire_ffi.ts` |
|
||||
| **Prompt 2.2** | Ghost Cockpit Protocol & WebSocket Freeze/Re-Auth | ✅ **COMPLETE** | `docs/GHOST_COCKPIT_SPEC.md`, `sdk/hono.ts` |
|
||||
| **Prompt 2.1** | RFC 9421 HTTP Signatures & `Signature-Key` (`hwk`) | ✅ **COMPLETE** | `server/http_signatures.ts`, `server/main.ts` |
|
||||
| **Prompt 3.1** | WebAuthn PRF Extension & Progressive Fallback | ✅ **COMPLETE** | `server/main.ts`, `ui/public/auth-client.js` |
|
||||
| Prompt ID | Task Scope | Status | Target File |
|
||||
| :------------- | :----------------------------------------------------- | :------------------------------ | :-------------------------------------------- |
|
||||
| **Prompt 1.1** | Ingress Grant Vector Injection (`/api/forward-auth`) | ✅ **COMPLETE** | `server/main.ts`, `server/auth-session.ts` |
|
||||
| **Prompt 1.2** | SDK Real-Time Invalidation Event Bus (`@auth-yes/sdk`) | ✅ **COMPLETE** | `sdk/mod.ts` |
|
||||
| **Prompt 3.2** | Native SIMD Argon2id Derivation in `spire_ffi` | ✅ **COMPLETE** | `spire_ffi/src/lib.rs`, `server/spire_ffi.ts` |
|
||||
| **Prompt 2.2** | Ghost Cockpit Protocol & WebSocket Freeze/Re-Auth | ✅ **COMPLETE** | `docs/GHOST_COCKPIT_SPEC.md`, `sdk/hono.ts` |
|
||||
| **Prompt 2.1** | RFC 9421 HTTP Signatures & `Signature-Key` (`hwk`) | ✅ **COMPLETE** | `server/http_signatures.ts`, `server/main.ts` |
|
||||
| **Prompt 3.1** | WebAuthn PRF Extension & Progressive Fallback | ✅ **COMPLETE** | `server/main.ts`, `ui/public/auth-client.js` |
|
||||
| **Prompt 3.3** | 2-of-3 SSS Recovery Matrix (Wasm/Rust) | ✅ **COMPLETE** | `ui/components/RecoveryPage.tsx`, `wasm/` |
|
||||
| **Prompt 3.4** | RFC 6962 Merkle Tree Audit Ledger & STH | ✅ **COMPLETE** | `server/audit_merkle.ts`, `server/audit.ts` |
|
||||
| **Prompt 4.1** | Traefik Tier 1 Global Ingress Hardening & Discovery | ⏳ **PENDING (Next Milestone)** | `infra/`, Host Traefik Config |
|
||||
@ -174,22 +174,46 @@ _Completed task:
|
||||
|
||||
## Phase 4 Prompts
|
||||
|
||||
### Prompt 4.1: Traefik Tier 1 Global Ingress Hardening & Infrastructure Discovery
|
||||
### Prompt 4.1: Traefik Tier 1 Universal Global Ingress Control & Multi-Tier Bypass/Allowlist Matrix
|
||||
|
||||
```text
|
||||
**Role:** Act as a System Analyst and Solutions Architect. Do not execute code or modify the codebase during this session. Your sole deliverable is to generate a task file in tasks/new/.
|
||||
|
||||
**The Objective:** Perform infrastructure discovery and architectural specification for Tier 1 Global Edge Ingress Protection on the Traefik proxy, ensuring all untagged/pre-release containers across *.atyg.org default to ForwardAuth interception with proper public-bypass exemptions.
|
||||
**The Objective:** Architect and formalize the Tier 1 Universal Global Edge Ingress Protection protocol for the central Traefik proxy. This system must enforce universal zero-trust ForwardAuth default-deny across all *.atyg.org domains while providing a comprehensive, user-friendly, and bulletproof multi-tier allowlist/bypass matrix for public applications, standard sub-paths, webhooks, and guest sandboxes.
|
||||
|
||||
**Scope & Exploration Targets:**
|
||||
* Traefik host configuration discovery (dynamic/static file location on Synology host, entrypoint definition, middleware chaining).
|
||||
* Configuring `authyes-forwardauth` on `entryPoints.websecure.http.middlewares` as the default global fallback.
|
||||
* Bypass rules & path exemptions for public static assets (`/public/*`, `/.well-known/webauthn`, `/health`).
|
||||
* End-to-end verification of zero-touch default-deny for untagged / unauthenticated containers across the network.
|
||||
**Core Scope & Architectural Requirements to Explore:**
|
||||
|
||||
1. **Universal Edge Perimeter Default-Deny:**
|
||||
* Configure Traefik's `entryPoints.websecure.http.middlewares` to apply ForwardAuth (`auth-forward@docker` / `authyes-forwardauth`) globally.
|
||||
* Any new container or service spun up on the network is secure by default on first boot without requiring manual per-service Docker label configuration.
|
||||
|
||||
2. **Self-Exemption & Infinite Loop Prevention:**
|
||||
* `auth-api` (`auth.atyg.org`) must be explicitly exempt from the global entrypoint middleware chain to eliminate recursive self-interception deadlocks.
|
||||
* Document the exact Traefik static/dynamic provider configuration or router priority overrides to guarantee clean self-exemption.
|
||||
|
||||
3. **Multi-Tier Bypass & Allowlist Matrix:**
|
||||
* **A. Host-Level Application Bypass (Opt-Out Labels):**
|
||||
- Allow public apps (e.g. `public.atyg.org`, landing pages, open trial sandboxes) to opt out of ForwardAuth via explicit Docker labels (e.g., overriding router middlewares to empty string or attaching a bypass middleware).
|
||||
* **B. Universal Path-Level Exemptions (Prefix & Regex Rules):**
|
||||
- Common public paths must always bypass authentication across ALL applications without per-app custom rules:
|
||||
- `/.well-known/*` (WebAuthn, ACME/Let's Encrypt challenge, RFC 7638 JWK thumbprints, OIDC metadata).
|
||||
- `/health`, `/healthz`, `/livez`, `/readyz` (Traefik, Portainer, and orchestrator liveness probes).
|
||||
- `/api/public/*`, `/public/*` (Public assets, favicons, open fonts).
|
||||
- `/webhooks/*` (GitHub, Gitea, Stripe incoming webhooks authenticated via HMAC signature rather than session cookies).
|
||||
- `raw/branch/main/sdk/*` (Unauthenticated SDK consumption by external agents and microservices).
|
||||
* **C. Database-Driven Dynamic Bypass Matrix (Management Console Controlled):**
|
||||
- In Auth-Yes database schema (`apps` table), support dynamic `is_public` booleans and `bypass_paths: text[]` array so administrators can add or remove public paths via the Auth-Yes UI/REST API without restarting Traefik or editing Docker compose labels.
|
||||
* **D. Network / CIDR Allowlists (Trusted Private Mesh):**
|
||||
- Support CIDR-based bypasses (e.g. local Docker networks, WireGuard/Tailscale VPN subnets, or specific management IPs).
|
||||
* **E. Ephemeral Guest Sandboxes (Use Case 11 Alignment):**
|
||||
- Support open trial / guest exploration with temporary tokens and in-flight passkey promotion.
|
||||
|
||||
4. **User-Friendly Error Handling & UX (No Cryptic Errors):**
|
||||
* **Unregistered App Handling:** If an unregistered domain hits Traefik ForwardAuth, render a polished Hono SSR "Application Unregistered" page with guidance rather than a raw plaintext 403 error.
|
||||
* **Dual-Response Protocol Compliance:** Ensure all interactive browser flows receive HTTP 302 Redirect with full deep-link preservation (`?redirect=...`), while API/cURL calls receive clean HTTP 401 Unauthorized without HTML redirect loops.
|
||||
|
||||
**Your Task:**
|
||||
1. Research the Traefik infrastructure conventions in `COMPOSE_CONVENTIONS.md`, `ONBOARDING.md`, and `server/main.ts`.
|
||||
2. Map out the `Target Files`, host configuration requirements, prerequisites, and potential architectural risks (e.g. infinite redirect loops on auth-api itself).
|
||||
3. Draft the task file in `tasks/new/` strictly adhering to the naming conventions and structure defined in `tasks/GUIDELINES.md`.
|
||||
1. Research the Traefik infrastructure conventions in `COMPOSE_CONVENTIONS.md`, `ONBOARDING.md`, `docs/FORWARDAUTH_REDIRECT_SPEC.md`, and `server/main.ts`.
|
||||
2. Map out the `Target Files`, host configuration requirements, database migrations, and potential architectural risks.
|
||||
3. Draft the task file in `tasks/new/` strictly adhering to the naming conventions, header metadata, and mandatory structure defined in `tasks/GUIDELINES.md`.
|
||||
```
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user