Administrace — rozsah, routy a odpovědnosti

Stav dokumentu: Kanonický přehled — veškerá evidence editorského / administrátorského rozhraní, chráněných rout /admin, uploadu médií a souvisejících API je jen zde. Veřejný katalog a jeho routy jsou v 23-api-and-routes.md; samotná /admin* implementace v repu zatím chybí.

Technický stack a nasazení: 20-tech-stack.md. Architektura RR7 + Workers (včetně veřejné KV cache a klíčů): 21-tech-spec.md. Datový model: 22-data-model.md.


1. Produktový kontext

  • Správa obsahu — centrální nástroj místo ručních změn v DB / migracích; v produktovém checklistu zůstává nehotové (souhrn modulů: 10-product-spec.md).
  • Obrazová knihovna — veřejná galerie na kartě už existuje; plná správa a upload přijde přes chráněné rozhraní + R2 (zápis do úložiště, metadata v D1).
  • Štítky a pole závislá na rozšířených datech — další sjednocení UI podle nových polí souvisí s editací v tomto rozhraní (návaznost na tasks/done/stitky-tvrzeni-a-typy-dukazu.md).

2. Přístup a infrastruktura

OblastPlán / stav
Ochrana rozhraníCloudflare Access — vstupní vrstva před /admin.
R2Čtení přes Worker (/media/…) je v repu; upload přes editor až po dodání UI — dosud lze objekty nahrávat ručně (dashboard Cloudflare / CLI); viz také 20-tech-stack.md.
KV cachePlánovaná ve stacku; invalidace po publikaci je součástí checklistu níže. Klíče sdílené s veřejnou cache: 21-tech-spec.md §10.

3. Routy (IA)

Plánované cesty — v repu zatím neexistují:

/admin                      — rozcestník / dashboard
/admin/byliny               — seznam bylin
/admin/byliny/new           — nová bylina
/admin/byliny/:id           — editace byliny
/admin/studie               — vědecké důkazy (scientific_evidence)
/admin/spiritualni-pouziti  — spirituální / tradiční záznamy
/admin/zpracovani           — správa způsobů zpracování / vazeb (viz encyklopedický výčet v [10-product-spec.md](./10-product-spec.md) §7)
/admin/obrazky              — knihovna médií (R2 + metadata)
/admin/import               — hromadný import (zápis do D1 podle strategie projektu)
/admin/cache                — nástroje k invalidaci / údržbě cache

4. API pod /api/admin/ a údržba

/api/admin/cache-purge   — vyprázdnění / invalidace cache (např. po publikaci)
/api/admin/reindex       — znovustavení vyhledávacího indexu (až bude vyhledávání)

Veřejné REST /api/herbs, /api/search, … jsou v dokumentaci plán (21-tech-spec.md §7) — rozhraní editoru je může později spotřebovat nebo překrývat loaders/actions.

Údržba D1 mimo UI editoru: POST /__internal/herb-maintenance — cron nebo ruční volání s Authorization: Bearer <HERB_CRON_SECRET> (23-api-and-routes.md §3, 20-tech-stack.md). Provozní nástroj, ne náhrada editorských formulářů.


5. Tok uploadu obrázků

Editor nahraje obrázek
  → React Router action přijme upload
  → soubor do R2
  → metadata do D1
  → invalidace cache detailu byliny

Metadata mají odpovídat 30-content-guidelines.md §7 (typ, alt, popisek, autor, licence, zdroj, vazba na bylinu, pořadí).


6. Cache a invalidace

Po změně obsahu je typicky potřeba invalidovat relevantní KV klíče (např. herb-detail:v1:{slug}:{language}, případně seznamy a sitemap:v1). Úplný výčet klíčů: 21-tech-spec.md §10. Konkrétní politika a tlačítka budou u /admin/cache a /api/admin/cache-purge.


7. Checklist implementace

  • ochránit /admin přes Cloudflare Access
  • dashboard (/admin)
  • CRUD bylin
  • CRUD vědeckých důkazů
  • CRUD spirituálního použití
  • CRUD zpracování (vazby / encyklopedické texty podle modelu)
  • upload obrázků (R2)
  • publikování / drafty (is_published apod.)
  • cache invalidace v UI nebo přes API

Související později: KV cache pro detail, filtry, homepage + invalidace — 24-engineering-roadmap.md Fáze 7; AI asistence pro editory — stejný dokument, Fáze 8. Položky stacku (Access, upload, KV jako takové) jsou shrnuté v 21-tech-spec.md §11 vedle obecného rozsahu první iterace — detail rozhraní editoru je jen tento soubor.


8. Plánované React komponenty

KomponentaÚčel
AdminLayoutSpolečný layout po zapnutí Access
HerbFormCRUD bylin
EvidenceFormCRUD vědeckých důkazů
SpiritualUseFormCRUD spirituálních záznamů
ProcessingMethodFormCRUD vazeb bylina ↔ způsob zpracování
ImageUploaderUpload do R2
RegionPickerSdílený kandidát s webovým výběrem regionu
TopicPickerVazby na témata/symptomy
PlantPartPickerČíselník částí rostliny
SafetyWarningFormStrukturovaná editace safety_warnings
PublishStatusBadgePřehled is_published v seznamu /admin/byliny
CachePurgeButtonVolání /api/admin/cache-purge

Inventář veřejných komponent zůstává v 26-ui-components.md.


9. Obsahová odpovědnost editorů

Co má rozhraní umožnit hlídat nebo validovat (norma: 30-content-guidelines.md):

  • Typy vědeckých důkazů (§4): číselník / validace při zápisu nebo enum v DB; nápověda ve formuláři, aby hodnoty odpovídaly výčtu v §4 (study_type, evidence_level dnes často volný text).
  • Bezpečnost (§5–§6): strukturovaná evidence upozornění; mapování warning_type na témata z §5 (část zbývá).
  • Obrázky (§7): řízený slovníček image_type; doplnění metadat (autor, licence, zdroj) — viz §8.7 tamtéž.

10. Jednou větou

Editor přes chráněné /admin spravuje byliny a navázané záznamy (věda, tradice, zpracování, média), řídí publikování, spouští invalidaci cache a v budoucnu import či reindex; infrastruktura: D1 + R2 + (plánované) KV, vstup přes Cloudflare Access.


Související dokumenty

DokumentVztah
10-product-spec.mdProduktové moduly a backlog bez detailu rout
tasks/done/stitky-tvrzeni-a-typy-dukazu.mdClaim labels, validace slovníčků v editoru
tasks/done/filtrace-a-vyhledavani-katalogu.mdFiltry katalogu — návaznost na publikované obsahové filtry
20-tech-stack.mdWorkers, D1, R2, Access ve stacku
21-tech-spec.mdVeřejná architektura, KV klíče, obecný checklist první iterace
23-api-and-routes.mdVeřejné routy, /__internal, stav /api/*
24-engineering-roadmap.mdFáze 1–8; odkaz na tento soubor pro Fázi 5
25-app-skeleton-plan.mdHistorické řezy; návaznost na fázi „editor“
26-ui-components.mdPouze veřejný web
30-content-guidelines.mdObsahová norma pro zápis z editoru