Run 01-01: Effect 4 setup + D1 schema + Db/Session services
Dokončeno
Pokladaj foundation: install Effect 4 beta + Drizzle, vytvor D1 schema (users, sessions, oauth_accounts, password_resets), napis Db + Session services a Astro runtime adapter
Od: 2026-05-18 Do: 2026-05-18 Vytvořeno 18. 5. 2026
7/7
100%
Tasky v runu
Otevřít kanban →| ID | Název | Status | Priorita | Vytvořeno |
|---|---|---|---|---|
| 149 | Instalace Effect 4 beta + Drizzle a konfigurace wrangleru Projekt nemel auth deps ani D1. Pridany effect@4.0.0-beta.67, drizzle-orm, drizzle-kit; vytvorena D1 databaze oskar-db s bindingem DB v wrangler.jsonc; pridany scripty db:generate, db:migrate:local/remote. | Hotovo | Střední | 18. 5. 2026 |
| 150 | Drizzle schema pro auth (users, sessions, oauth_accounts, password_resets) Auth potreboval persistent storage. Drizzle schema definuje 4 tabulky (users, sessions, oauth_accounts s composite PK, password_resets) vcetne FK cascade a indexu. Tabulky pro Sprint 002 jsou pridane preventivne aby nebyla druha migrace. Migrace aplikovana lokalne. | Hotovo | Střední | 18. 5. 2026 |
| 151 | AuthError ADT Auth flow potreboval typove vsechny failure mody. AuthError ADT v errors.ts pres Data.TaggedError pokryva 9 tagu (UserAlreadyExists, UserNotFound, InvalidCredentials, SessionNotFound/Expired, DbError, ValidationError, ConfigMissing, TokenInvalid). Runtime adapter pres ne exhaustive switchuje na HTTP statusy. | Hotovo | Střední | 18. 5. 2026 |
| 152 | Db service nad D1 Effect services potrebovaly D1 abstrakci. Db service (Context.Service v Effect 4) drzi drizzle handle + raw D1Database a expose run(operation, fn) helper co maps Promise na Effect s DbError. D1Binding je separatni service co se providuje z env.DB v runtime adapteru. | Hotovo | Střední | 18. 5. 2026 |
| 153 | Session service Login flow potrebuje session management. Session service (zavislost na Db) expose create/findByCookie/revoke/revokeAllForUser. Session ID = 32B random bytes base64url, default TTL 30 dni, findByCookie kontroluje expiry + maze expired session + touchuje lastUsedAt. K tomu cookie helpers (serialize/clear/parse) pro Run 01-03. | Hotovo | Střední | 18. 5. 2026 |
| 154 | Astro runtime adapter pro Effect Astro endpointy potrebovaly entrypoint do Effect. Runtime.ts ma module-level ManagedRuntime (cached per Worker isolate) co builds Layer z DbLive + SessionLive + provideD1(env.DB) z cloudflare:workers. Export runAuth() a runAuthToResponse() (druha mapuje AuthError tagy na 400/401/409/500 Response). | Hotovo | Střední | 18. 5. 2026 |
| 155 | Typy a smoke test Astro middleware potrebuje typed locals. env.d.ts deklaruje App.Locals.user a App.Locals.session jako nullable. Smoke endpoint /api/smoke overuje runtime+D1 connect (vraci pocet useru), v dev serveru vratil {ok:true,users:0}, pred commitem smazan. | Hotovo | Střední | 18. 5. 2026 |
Screenshoty
0
Žádné screenshoty. Nahraj první.