Changelog voor SideKick: view serverchangelog bovenop version_history
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014MGLqt1uKfNARQHut9ifcx
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
-- MijnBesluit - de versiehistorie als changelog voor SideKick
|
||||
--
|
||||
-- SideKick toont op het tabblad Changelog de regels van een tabel of view met een vast formaat
|
||||
-- (zie de SideKick-handleiding, sectie 5: Datum, Versie, Product, Soort, Onderwerp, Inhoud, Actief,
|
||||
-- Aanmaakdatum, Updatedatum). MijnBesluit heeft geen tweede changelog: de versiehistorie
|
||||
-- (version_history, onderhouden op de website onder Beheer > Versiehistorie) IS de changelog.
|
||||
-- Deze view geeft haar in dat formaat. SideKick bewerkt niets; de agent op de server leest alleen.
|
||||
--
|
||||
-- Datum datum
|
||||
-- Versie versie, leeg als het alleen de website betreft
|
||||
-- Product vast: MijnBesluit (app en website samen)
|
||||
-- Soort vast: Nieuw (de versiehistorie bevat alleen nieuwe of wezenlijk gewijzigde
|
||||
-- functies, geen bugfixes)
|
||||
-- Onderwerp de kop (per datum uniek, daar zorgt version_history voor)
|
||||
-- Inhoud de uitleg, platte tekst
|
||||
-- Actief zichtbaar (0 = verborgen)
|
||||
-- Aanmaakdatum aangemaakt_op (UTC)
|
||||
-- Updatedatum gewijzigd_op (UTC); de website zet hem bij elke wijziging opnieuw, ook bij
|
||||
-- verbergen of tonen. Een verwijderde regel valt weg; SideKick merkt dat aan het
|
||||
-- afwijkende aantal en leest dan alles opnieuw.
|
||||
--
|
||||
-- De view draait met de rechten van wie hem maakt (root, SQL SECURITY DEFINER). Wie hem leest hoeft
|
||||
-- dus alleen SELECT op de view te hebben, niet op version_history.
|
||||
--
|
||||
-- Eenmalig te draaien als root, ná db\22_versiehistorie.sql:
|
||||
-- mysql -u root -p mijnbesluit < db\handmatig\22c_serverchangelog_view.sql
|
||||
--
|
||||
-- Opnieuw draaien mag (CREATE OR REPLACE). Het staat in handmatig\ omdat het uitrolaccount wel
|
||||
-- tabellen maar niet per se views mag maken, en geen rechten mag geven.
|
||||
--
|
||||
-- Daarna in SideKick bij de agent van MijnBesluit: "Changelog: tabel" = serverchangelog, met
|
||||
-- DbNaam = mijnbesluit en een gebruiker die de view mag lezen (zie onderaan).
|
||||
|
||||
USE `mijnbesluit`;
|
||||
|
||||
CREATE OR REPLACE
|
||||
SQL SECURITY DEFINER
|
||||
VIEW `serverchangelog` AS
|
||||
SELECT
|
||||
`datum` AS `Datum`,
|
||||
COALESCE(`versie`, '') AS `Versie`,
|
||||
'MijnBesluit' AS `Product`,
|
||||
'Nieuw' AS `Soort`,
|
||||
`kop` AS `Onderwerp`,
|
||||
`tekst` AS `Inhoud`,
|
||||
`zichtbaar` AS `Actief`,
|
||||
`aangemaakt_op` AS `Aanmaakdatum`,
|
||||
`gewijzigd_op` AS `Updatedatum`
|
||||
FROM `version_history`;
|
||||
|
||||
-- De gebruiker die de agent gebruikt om te lezen. Dit geeft de bestaande applicatiegebruiker leesrecht
|
||||
-- op alleen de view. Liever een eigen leesgebruiker? Maak die zelf aan met een wachtwoord dat alleen
|
||||
-- jij kent en geef hem hetzelfde recht, bijvoorbeeld:
|
||||
-- CREATE USER 'mijnbesluit_changelog'@'localhost' IDENTIFIED BY '<kies-zelf-een-wachtwoord>';
|
||||
-- GRANT SELECT ON `mijnbesluit`.`serverchangelog` TO 'mijnbesluit_changelog'@'localhost';
|
||||
GRANT SELECT ON `mijnbesluit`.`serverchangelog` TO 'mijnbesluit_app'@'localhost';
|
||||
FLUSH PRIVILEGES;
|
||||
|
||||
-- Controle: de regels van de versiehistorie, nieuwste bovenaan.
|
||||
SELECT `Datum`, `Versie`, `Product`, `Soort`, `Onderwerp`, `Actief`, `Updatedatum`
|
||||
FROM `serverchangelog` ORDER BY `Datum` DESC, `Aanmaakdatum` DESC LIMIT 20;
|
||||
Reference in New Issue
Block a user