logaritmisk
|
345073b130
|
test(db): cover zero-label term and duplicate vocabulary key; use try_get in vocabulary_by_key
|
2026-06-02 08:52:58 +02:00 |
|
logaritmisk
|
5dc07ddf4c
|
feat(db): add vocabulary/term repository with multilingual labels
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-06-02 08:48:51 +02:00 |
|
logaritmisk
|
cc1fbf5b7d
|
feat(db): RESTRICT vocabulary deletes; non-empty label/lang constraints
|
2026-06-02 08:46:34 +02:00 |
|
logaritmisk
|
93d54d7783
|
feat(db): add vocabulary, term, and authority tables
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-06-02 08:43:23 +02:00 |
|
logaritmisk
|
86a3a8a47c
|
test(db): assert audit_log mutations fail via the immutability trigger
|
2026-06-02 08:01:28 +02:00 |
|
logaritmisk
|
45aea6b702
|
test(db): enforce audit_log immutability and transactional atomicity
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-06-02 07:58:10 +02:00 |
|
logaritmisk
|
c67b588188
|
test(db): cover delete/empty-changes/empty-history; clarify map_row naming
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-06-02 07:56:05 +02:00 |
|
logaritmisk
|
87b016a56c
|
feat(db): add append-only audit repository (record, history_for)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-06-02 07:52:16 +02:00 |
|
logaritmisk
|
01c42837d1
|
feat(db): also reject TRUNCATE on audit_log (statement-level trigger)
|
2026-06-02 07:49:47 +02:00 |
|
logaritmisk
|
152fc30116
|
feat(db): schema bootstrap with append-only audit_log table
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-06-02 07:46:39 +02:00 |
|
logaritmisk
|
8da3eefdce
|
feat(db): add Db handle with pool connect and readiness ping
|
2026-06-02 00:54:17 +02:00 |
|
logaritmisk
|
b97c950f77
|
chore: replace placeholder package with role-named workspace
|
2026-06-02 00:38:53 +02:00 |
|