server/web/src/routes/api/channels/+server.ts
vegard ca27a8077b SvelteKit-app, SpacetimeDB-modul og chat med sanntid
SvelteKit (web/):
- Komplett app-skjelett med Authentik SSO (dev-bypass lokalt)
- Workspace-modell med cookie-basert switching og RLS-kontekst
- Komponerbare sider (PageGrid + BlockShell + block registry)
- Chat med adapter-mønster: PG-polling og SpacetimeDB hybrid-adapter
- Brukeridentitet fra Authentik/dev-login flyter til chat-meldinger
- API-ruter for channels, messages og health

SpacetimeDB (spacetimedb/):
- Rust WASM-modul med ChatMessage og SyncOutbox-tabeller
- send_message reducer med sync outbox for fremtidig PG-persistering
- Genererte TypeScript-bindings for klient-integrasjon

Infra:
- SpacetimeDB lagt til i docker-compose.dev.yml

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 01:40:55 +01:00

17 lines
451 B
TypeScript

import { json, error } from '@sveltejs/kit';
import type { RequestHandler } from './$types';
import { sql } from '$lib/server/db';
export const GET: RequestHandler = async ({ locals }) => {
if (!locals.workspace || !locals.user) error(401);
const channels = await sql`
SELECT c.id, c.name, c.config
FROM channels c
JOIN nodes n ON n.id = c.id
WHERE n.workspace_id = ${locals.workspace.id}
ORDER BY c.name
`;
return json(channels);
};