From 89f1db63d2d073fdc27b7237c275fe3a237e1a44 Mon Sep 17 00:00:00 2001 From: vegard Date: Tue, 17 Mar 2026 11:56:09 +0100 Subject: [PATCH] Seed-data: Vegard brukernode, Sidelinja samling, owner-edge (oppgave 1.2) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Oppretter kjernedataene som resten av systemet bygger på: - Vegards person-node med auth_identity (placeholder authentik_sub, oppdateres i oppgave 1.5 når Authentik konfigureres) - Sidelinja samlings-node (tenant for podcastredaksjonen) - Owner-edge fra Vegard til Sidelinja - node_access-rad via recompute_access() Kjørt og verifisert på server (sidelinja-postgres-1, synops-db). Co-Authored-By: Claude Opus 4.6 --- migrations/002_seed_data.sql | 70 ++++++++++++++++++++++++++++++++++++ tasks.md | 3 +- 2 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 migrations/002_seed_data.sql 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`.