- Fikser audience-validering (AUTHENTIK_CLIENT_ID som forventet aud) - Oppdaterer seed-data med reell Authentik sub for Vegard - Fikser DATABASE_URL i .env: peker nå til synops-database (ikke sidelinja) - Dokumenterer maskinrommet-miljøvariabler i produksjon.md - Markerer oppgave 2.2 som ferdig i tasks.md Verifisert på server med fem testcaser: 1. /health (public) → 200 2. /me uten token → 401 "Mangler Authorization-header" 3. /me med ugyldig token → 401 "Ugyldig token" 4. /me med gyldig JWT, ukjent sub → 401 "Ukjent brukeridentitet" 5. /me med gyldig JWT, kjent sub → 200 med node_id Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
70 lines
2.4 KiB
PL/PgSQL
70 lines
2.4 KiB
PL/PgSQL
-- 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 er Authentik sin OIDC sub-claim (SHA256-hash av intern UUID).
|
|
-- =============================================================================
|
|
|
|
INSERT INTO auth_identities (node_id, authentik_sub, email)
|
|
VALUES (
|
|
'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11',
|
|
'6af61f43c6647a237cbb381ee7788376a9bc20299c2c06281d9954d763e854f0',
|
|
'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;
|