RSS/Atom-Feeds für Teiche und Seiten #149
Labels
No Label
area:auth
area:docs
area:export
area:ops
area:storage
area:supply-chain
auth
backend
blocked
collab
deployment
docs
effort:L
effort:M
effort:S
frontend
plugins
qa
vs-nfd
vs-nfd:blocker
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: stwaidele/dorfteich#149
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Ziel
Abonnierbare Feeds mit wiki-üblichen Informationen: (a) je Teich = neue/geänderte Seiten, (b) je Seite = Änderungshistorie. Öffentliche Teiche anonym; nicht-öffentliche authentifiziert.
Umsetzungsskizze
PublicModule(apps/api/src/public/):GET /public/:pondSlug/feed.xmlundGET /public/:pondSlug/:pageSlug/feed.xml; Atom-XML auspage.findMany({orderBy updatedAt desc, take N})bzw. der Versions-Tabelle. Einträge: Titel, Link, updated, Autor soweit vorhanden, Auszug (Plain-Text-Cache). Vorlage für Non-JSON-Responses: derhtml-Handler +html-shell.ts.?token=…) — PATs bewusst NICHT in URLs wiederverwenden (Leak-Gefahr). Neue kleine Tabelle analogapi_tokens(DB-Migration), Verwaltung in den Nutzer-Einstellungen, Permission-Check = canSeePond/canAccessPage des Token-Inhabers.<link rel="alternate" type="application/atom+xml">in die Public-HTML-Shell.Akzeptanzkriterien
Umgesetzt in PR #157 (
7252bd1): Atom-Feeds GET /api/v1/public/:pond/feed.xml (zuletzt geaenderte Seiten) und GET /api/v1/public/:pond/:page/feed.xml (Versions-Historie), @Public mit 404-Semantik. Oeffentliche Teiche anonym; nicht-oeffentliche via neuem read-only Feed-Token je Nutzer (?token=dt_feed_…, neue Tabelle feed_tokens als Migration, Verwaltung unter Einstellungen → Feed-Tokens). Oeffentliche HTML-Seiten annoncieren den Teich-Feed per link rel=alternate. 5 DB-Tests (anonym/privat/Token-Lifecycle/Permission/HTML-Shell) + User-Guide-Doku en+de.