vyvoj-dash

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í.