TeamVis Self-Host-Bundle v0.31.0
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
-- ====================================================================
|
||||
-- 0051_organigram_versions — Versionierung des Organigramms
|
||||
-- ====================================================================
|
||||
-- Audit-Anforderung: Prüfer wollen jederzeit die aktuelle, datierte
|
||||
-- Version sehen und ältere Stände nachvollziehen können.
|
||||
--
|
||||
-- Modell (Hybrid):
|
||||
-- 1) organigram_versions: nummerierte, UNVERÄNDERLICHE Snapshots des
|
||||
-- kompletten Organigramm-Stands (JSONB), erzeugt bei „Version
|
||||
-- veröffentlichen". Analog job_description_versions (0048).
|
||||
-- 2) change_log (0022): erfasst zusätzlich jede Einzeländerung an
|
||||
-- positions/org_units/assignments/deputies/external_parties/
|
||||
-- service_relations (Hash-gesichert) — für die lückenlose
|
||||
-- Nachvollziehbarkeit der Änderungen zwischen zwei Versionen.
|
||||
|
||||
create table if not exists public.organigram_versions (
|
||||
id uuid primary key default gen_random_uuid(),
|
||||
version_number integer not null,
|
||||
-- Vollständiger OrganigramSnapshot (lib/organigram-tree.ts) als JSON,
|
||||
-- inkl. zum Zeitpunkt der Freigabe aufgelöster Personennamen — so ist
|
||||
-- der Stand reproduzierbar, auch wenn Stammdaten sich später ändern.
|
||||
snapshot jsonb not null,
|
||||
published_at timestamptz not null default now(),
|
||||
published_by text not null,
|
||||
note text,
|
||||
created_at timestamptz not null default now()
|
||||
);
|
||||
|
||||
create unique index if not exists organigram_versions_number_idx
|
||||
on public.organigram_versions (version_number desc);
|
||||
|
||||
-- RLS: admin-only (Default deny, kein anon-Grant) — wie 0048.
|
||||
alter table public.organigram_versions enable row level security;
|
||||
|
||||
-- Service-Role umgeht RLS, braucht auf Self-Host aber explizite Grants.
|
||||
grant select, insert, update, delete on
|
||||
public.organigram_versions
|
||||
to service_role;
|
||||
Reference in New Issue
Block a user