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
| Oblast | Plá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 cache | Plá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
/adminpř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_publishedapod.) - 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 |
|---|---|
AdminLayout | Společný layout po zapnutí Access |
HerbForm | CRUD bylin |
EvidenceForm | CRUD vědeckých důkazů |
SpiritualUseForm | CRUD spirituálních záznamů |
ProcessingMethodForm | CRUD vazeb bylina ↔ způsob zpracování |
ImageUploader | Upload do R2 |
RegionPicker | Sdílený kandidát s webovým výběrem regionu |
TopicPicker | Vazby na témata/symptomy |
PlantPartPicker | Číselník částí rostliny |
SafetyWarningForm | Strukturovaná editace safety_warnings |
PublishStatusBadge | Přehled is_published v seznamu /admin/byliny |
CachePurgeButton | Volá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_leveldnes často volný text). - Bezpečnost (§5–§6): strukturovaná evidence upozornění; mapování
warning_typena 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
| Dokument | Vztah |
|---|---|
| 10-product-spec.md | Produktové moduly a backlog bez detailu rout |
| tasks/done/stitky-tvrzeni-a-typy-dukazu.md | Claim labels, validace slovníčků v editoru |
| tasks/done/filtrace-a-vyhledavani-katalogu.md | Filtry katalogu — návaznost na publikované obsahové filtry |
| 20-tech-stack.md | Workers, D1, R2, Access ve stacku |
| 21-tech-spec.md | Veřejná architektura, KV klíče, obecný checklist první iterace |
| 23-api-and-routes.md | Veřejné routy, /__internal, stav /api/* |
| 24-engineering-roadmap.md | Fáze 1–8; odkaz na tento soubor pro Fázi 5 |
| 25-app-skeleton-plan.md | Historické řezy; návaznost na fázi „editor“ |
| 26-ui-components.md | Pouze veřejný web |
| 30-content-guidelines.md | Obsahová norma pro zápis z editoru |