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;
|
||||
+18
-1
@@ -31,9 +31,26 @@ geen tekstuele correcties, geen opmaak die is rechtgezet.
|
||||
2. Als root: `mysql -u root -p < db\02_applicatiegebruiker.sql` (rechten voor `mijnbesluit_app`
|
||||
op de nieuwe tabel) en `mysql -u root -p mijnbesluit < db\handmatig\22b_versiehistorie_startrijen.sql`
|
||||
(de bestaande regels; `INSERT IGNORE`, dus opnieuw draaien is veilig).
|
||||
3. Daarna pas de website en de SocketServer uitrollen. Andersom leest de nieuwe code een tabel
|
||||
3. Voor de changelog in SideKick (optioneel, kan ook later): als root
|
||||
`mysql -u root -p mijnbesluit < db\handmatig\22c_serverchangelog_view.sql` (zie hieronder).
|
||||
4. Daarna pas de website en de SocketServer uitrollen. Andersom leest de nieuwe code een tabel
|
||||
die er nog niet is, of waar de applicatiegebruiker nog niet bij mag.
|
||||
|
||||
## Changelog in SideKick
|
||||
|
||||
Het tabblad Changelog van SideKick leest een tabel of view `serverchangelog` met vaste kolommen. De
|
||||
versiehistorie is de changelog van MijnBesluit, dus er is geen tweede lijst: de view
|
||||
`serverchangelog` (script `db\handmatig\22c_serverchangelog_view.sql`, als root) geeft
|
||||
`version_history` in dat formaat terug. `Product` is vast "MijnBesluit", `Soort` vast "Nieuw" (de
|
||||
lijst bevat geen bugfixes), `Actief` is `zichtbaar` en `Updatedatum` is `gewijzigd_op`, dat de site
|
||||
bij elke wijziging opnieuw zet. De agent leest de view alleen.
|
||||
|
||||
Instellen in SideKick bij de agent van MijnBesluit: "Changelog: tabel" = `serverchangelog`, `DbNaam` =
|
||||
`mijnbesluit`, en een gebruiker met SELECT op de view (het script geeft dat aan `mijnbesluit_app`;
|
||||
een aparte leesgebruiker kan ook, het voorbeeld staat in het script). Het wachtwoord alleen op de
|
||||
server invullen. Voorwaarden: de agent kent de actie `ChangelogLezen` en het project staat op Weg hub.
|
||||
De inhoud gaat naar het SideKick-scherm van de beheerder: geen persoonsgegevens in een regel.
|
||||
|
||||
## Oudere apps
|
||||
|
||||
De tekst van de versiehistorie zat tot en met appversie 1.1 (versiecode 3) in de app zelf. Die
|
||||
|
||||
Reference in New Issue
Block a user