vyvoj-dash

Run 006: Token management UI

Dokončeno

List/create/delete tokenů s Svelte 5 islandem

Od: 2026-05-10 Do: 2026-05-10 Vytvořeno 10. 5. 2026

5/5

100%

Tasky v runu

Otevřít kanban →
ID Název Status Priorita Vytvořeno
77 Helper listTokens + masking
Tokens stránky neměly query helper, pattern stejný jako u packages. Přidán listTokens v dashboard-queries (findMany ordered desc by createdAt) + samostatný mask-token util pro UI display ve formátu xxxx…yyyy bez plaintextu.
Hotovo
Střední
10. 5. 2026
78 Create token endpoint
Bez Astro endpointu by Svelte island neměl kam fetchnout. Hono /-/npm/v1/tokens potřebuje bearer token (assertTokenAccess) — CF Access user ho nemá. Vytvořen create.ts: POST endpoint pod /dashboard/tokens/create (uvnitř middleware gate), zod validace + delegace na tokenService.createToken, vrací 201 s plaintext tokenem.
Hotovo
Střední
10. 5. 2026
79 Delete token endpoint
Form delete potřeboval endpoint pod /dashboard/* (NE /api/*) jinak middleware skipne a Hono catch-all vrátí 404. Vytvořen [token]/delete.ts: POST handler, deleteToken + 303 redirect zpět na list. CF Access JWT funguje jako de facto CSRF token (cross-origin requesty bez něj dostanou 403).
Hotovo
Střední
10. 5. 2026
80 Tokens list stránka
Pod /dashboard/tokens neexistovala žádná stránka. Vytvořen tokens/index.astro: SSR fetch tokenů, masked display (jen xxxx…yyyy, plaintext nikdy v listu), scope summary, formátované createdAt, delete form per řádek + mount Svelte create islandu nahoře.
Hotovo
Střední
10. 5. 2026
81 Svelte 5 island na create form
Form pro create token potřebuje JS pro one-shot reveal plaintext tokenu (no-JS fallback by chtěl session storage flash). CreateTokenForm.svelte: Svelte 5 island s runes ( pro inputs/loading/error/copied, pro canSubmit), fetch POST → success render token + Copy button (navigator.clipboard) s 2s flash 'Zkopírováno'.
Hotovo
Střední
10. 5. 2026

Screenshoty

0

Žádné screenshoty. Nahraj první.