diff --git a/migrations/002_seed_data.sql b/migrations/002_seed_data.sql new file mode 100644 index 0000000..613edd1 --- /dev/null +++ b/migrations/002_seed_data.sql @@ -0,0 +1,70 @@ +-- 002_seed_data.sql +-- Seed-data: Vegards brukernode, auth_identity, Sidelinja samlings-node, og owner-edge. +-- Ref: docs/primitiver/nodes.md, docs/primitiver/edges.md + +BEGIN; + +-- ============================================================================= +-- Vegards brukernode +-- ============================================================================= + +INSERT INTO nodes (id, node_kind, title, visibility, metadata) +VALUES ( + 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', + 'person', + 'Vegard', + 'discoverable', + '{"display_name": "Vegard"}'::jsonb +); + +-- ============================================================================= +-- Auth-identitet (bro mellom Authentik-sesjon og Vegards node) +-- authentik_sub oppdateres når Authentik konfigureres i oppgave 1.5. +-- ============================================================================= + +INSERT INTO auth_identities (node_id, authentik_sub, email) +VALUES ( + 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', + 'placeholder-will-be-updated-in-task-1.5', + 'vnotnes@pm.me' +); + +-- ============================================================================= +-- Sidelinja samlings-node +-- ============================================================================= + +INSERT INTO nodes (id, node_kind, title, visibility, metadata, created_by) +VALUES ( + 'b1eebc99-9c0b-4ef8-bb6d-6bb9bd380a22', + 'collection', + 'Sidelinja', + 'readable', + '{}'::jsonb, + 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11' +); + +-- ============================================================================= +-- Owner-edge: Vegard eier Sidelinja +-- ============================================================================= + +INSERT INTO edges (id, source_id, target_id, edge_type, created_by) +VALUES ( + 'c2eebc99-9c0b-4ef8-bb6d-6bb9bd380a33', + 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', -- Vegard + 'b1eebc99-9c0b-4ef8-bb6d-6bb9bd380a22', -- Sidelinja + 'owner', + 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11' -- Vegard +); + +-- ============================================================================= +-- Oppdater tilgangsmatrisen: Vegard har owner-tilgang til Sidelinja +-- ============================================================================= + +SELECT recompute_access( + 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', -- subject: Vegard + 'b1eebc99-9c0b-4ef8-bb6d-6bb9bd380a22', -- object: Sidelinja + 'owner', + 'c2eebc99-9c0b-4ef8-bb6d-6bb9bd380a33' -- via: owner-edge +); + +COMMIT; diff --git a/tasks.md b/tasks.md index d42097e..25e6013 100644 --- a/tasks.md +++ b/tasks.md @@ -44,8 +44,7 @@ Uavhengige faser kan fortsatt plukkes. ## Fase 1: Infrastruktur-fundament - [x] 1.1 PostgreSQL schema: opprett database `synops`, enums (`visibility`, `access_level`), tabeller (`nodes`, `edges`, `node_access`, `auth_identities`) med indekser. Kjør på server via SSH. Ref: `docs/primitiver/nodes.md`, `docs/primitiver/edges.md`, `docs/retninger/bruker_ikke_workspace.md`. -- [~] 1.2 Seed-data: opprett Vegards brukernode (`node_kind='person'`, `title='Vegard'`) og `auth_identities`-rad. Opprett Sidelinja samlings-node og `owner`-edge fra Vegard. - > Påbegynt: 2026-03-17T11:54 +- [x] 1.2 Seed-data: opprett Vegards brukernode (`node_kind='person'`, `title='Vegard'`) og `auth_identities`-rad. Opprett Sidelinja samlings-node og `owner`-edge fra Vegard. - [ ] 1.3 SpacetimeDB modul: opprett Rust-modul med `nodes` og `edges`-tabeller som speiler PG-skjema. Grunnleggende reducers for CRUD. Deploy til server. Ref: `docs/retninger/datalaget.md`, `docs/erfaringer/spacetimedb_integrasjon.md`. - [ ] 1.4 Caddy-config: reverse proxy for maskinrommet (api.sidelinja.org), SpacetimeDB, og SvelteKit. Auto-TLS. Ref: `docs/setup/produksjon.md`. - [ ] 1.5 Authentik: opprett OIDC-provider og applikasjon for Synops. Konfigurer redirect URIs. Ref: `docs/erfaringer/authentik_oppsett.md`.