Vzhled
Historie změn
Historie změn je vestavěný auditní protokol platformy Než zazvoní CMS, který automaticky zaznamenává každý zápis provedený v administraci: vytvoření, úpravu, publikování i smazání stránek, aktualit, kategorií, nastavení školy, přiřazení redaktorů a nahrání či smazání souborů v Knihovně médií. Přístup k historii změn má pouze hlavní správce platformy (Super Admin). Záznamy slouží ke zpětné kontrole při řešení dotazů škol a z bezpečnostních důvodů jsou v administraci určeny výhradně ke čtení.
Poznámka
Historie změn eviduje přehled událostí (kdo, kdy a jaký záznam změnil), nikoli předchozí verze textů k obnovení jedním kliknutím. Před zahozením rozpracovaných úprav nebo smazáním stránky si proto vždy zkontrolujte aktuální stav v Konceptech a publikování.
Kde to najdete
- Přihlaste se do administrace jako hlavní správce (Super Admin).
- V levém menu klikněte na Obsah webu.
- V levém panelu v části Obsah vyberte Historie změn.
Na snímku níže vidíte levý panel sekce Obsah webu, kde je Historie změn zařazená mezi typy obsahu.

Po otevření položky Historie změn se zobrazí tabulka seřazená od nejnovějších událostí po nejstarší se sloupci Vytvořeno, Akce, Název a Uživatel.

Postup krok za krokem
1. Dohledání konkrétní úpravy v administraci
- Otevřete Obsah webu → Historie změn.
- Pro rychlé vyhledání zadejte do vyhledávacího pole Hledat název stránky, nadpis článku, název souboru nebo e-mail redaktora.
- Potřebujete-li výpis zúžit (například jen na jednu školu, konkrétní akci nebo časové období), klikněte na tlačítko Filtry nad tabulkou.
- Kliknutím na vybraný řádek v tabulce otevřete detail záznamu, kde uvidíte i pole Škola, Typ obsahu, ID záznamu, IP adresa a Podrobnosti.
2. Pravidelné promazávání starých záznamů (uchovávání)
Protože záznamy obsahují osobní údaje (e-mailovou adresu v poli Uživatel a síťovou adresu v poli IP adresa), uchovávají se v souladu s pravidly ochrany osobních údajů po dobu 365 dní. V administraci ani přes HTTP rozhraní záznamy měnit ani mazat nelze; odstraňování starších položek spouští správce serveru pomocí skriptu scripts/audit-prune.js uvnitř kontejneru cms.
- Připojte se na server do adresáře platformy.
- Spusťte promazání záznamů starších než 365 dní:bash
docker compose exec -T cms node scripts/audit-prune.js --days 365 - Skript vypíše počet odstraněných položek a hraniční datum (např.
smazáno 142 záznamů starších než 2025-10-25). - V běžném provozu tento příkaz zařaďte do plánovače úloh (
cron) na serveru s frekvencí jednou za měsíc (viz Aktualizace a údržba).
Pozor
Parametr --days vyžaduje číslo s hodnotou nejméně 30. Při zadání kratší doby (např. --days 7) skript odmítne záznamy smazat a skončí chybou --days musí být číslo, nejméně 30, aby nedošlo k nechtěnému vymazání čerstvé historie. Pokud parametr --days neuvedete vůbec, použije se výchozích 365 dní.
Pole a nastavení
Pole záznamu v Historii změn
| Pole | K čemu slouží | Povinné | Tip |
|---|---|---|---|
Akce (action) | Druh provedené operace: create, update, delete, clone, publish, unpublish, discardDraft, upload.create nebo upload.delete. | Ano | Pro nahrávání a mazání souborů v knihovně médií začíná hodnota předponou upload.. |
Typ obsahu (uid) | Interní označení typu záznamu (api::page.page, api::post.post, api::category.category, api::school.school, api::editor.editor nebo plugin::upload.file). | Ano | Umožňuje odlišit, zda šlo o stránku, aktualitu, kategorii nebo soubor. |
ID záznamu (targetDocumentId) | Jedinečný identifikátor (documentId) upravovaného dokumentu. | Ne | U souborů v knihovně médií zůstává prázdné, u nich sledujte ID verze. |
ID verze (entryId) | Interní číselné ID konkrétní verze záznamu nebo ID souboru v Knihovně médií. | Ne | Hodí se při dohledávání konkrétního nahraného souboru. |
Název (title) | Název stránky, nadpis aktuality, název školy či kategorie, e-mail redaktora nebo jméno souboru (zkrácené nejvýše na 255 znaků). | Ne | Hlavní pole záznamu zobrazené přímo v přehledové tabulce. |
Škola (school) | Zkratka (slug) školy, které se změna týká. | Ne | U některých akcí hlavního správce a při smazání souboru (upload.delete) může být prázdné; složku smazaného souboru najdete v poli Podrobnosti. |
ID uživatele (userId) | Interní číselné ID účtu v administraci, který akci provedl. | Ne | Zůstává stejné i tehdy, když si uživatel později změní e-mail. |
Uživatel (userEmail) | E-mailová adresa přihlášeného redaktora nebo správce v okamžiku změny. | Ne | Zobrazuje se přímo jako sloupec v seznamu Historie změn. |
IP adresa (ip) | IP adresa zařízení, ze kterého požadavek přišel. | Ne | Za reverzní proxy vyžaduje zapnuté nastavení TRUST_PROXY=true. |
Podrobnosti (detail) | Doplňující údaje ve formátu JSON. | Ne | U upload.create obsahuje folderPath, mime a size, u upload.delete obsahuje folderPath. |
Každý záznam dále obsahuje systémové časové razítko Vytvořeno (createdAt), které udává přesné datum a čas provedení akce.
Hodnoty pole Akce
| Hodnota v poli Akce | Co událost znamená |
|---|---|
create | Založení nového záznamu (stránky, aktuality, kategorie, školy nebo přiřazení redaktora). |
update | Uložení změn v existujícím záznamu (tlačítko Uložit). |
delete | Smazání záznamu v administraci (volba Smazat záznam). |
clone | Vytvoření kopie (duplikátu) záznamu (volba Duplikovat). |
publish | Publikování rozpracované verze na veřejný web (tlačítko Publikovat). |
unpublish | Stažení publikovaného záznamu z veřejného webu zpět do konceptu (volba Zrušit publikaci). |
discardDraft | Zahození nepublikovaných úprav v konceptu (volba Zahodit změny). |
upload.create | Nahrání nového souboru do Knihovny médií (volba Nahrání souborů). |
upload.delete | Smazání souboru z Knihovny médií. |
Tipy a doporučení
- Hromadné importy ze skriptů se do historie nezapisují: dávkové skripty spouštěné na serveru (
nova-skola.sh,import-site.js,new-school.js) běží přímo nad databází mimo HTTP relaci administrace, takže Historie změn zůstává přehledná a obsahuje pouze ruční zásahy přihlášených uživatelů. - Zálohy mimo server chrání integritu záznamů: pravidelné denní zálohy databáze ukládejte mimo produkční server (viz Zálohy a obnova), abyste měli k dispozici neměnnou kopii historie i při řešení bezpečnostního incidentu.

