M21: API & Feeds — me-Doku (#147), since-Filter (#148), Atom-Feeds (#149) #157

Merged
fable-5 merged 3 commits from m21-api-feeds into main 2026-07-20 01:06:20 +02:00
Collaborator

Implementiert Milestone M21:

  • #148 ?createdSince=/?updatedSince= auf beiden Seitenlisten-Endpoints, neue Indizes (pondId, createdAt/updatedAt) als Migration, OpenAPI + MCP-Paritaet + Doku, DB-Test.
  • #147 GET /api/public/v1/me existierte bereits — OpenAPI-Summary + api-guide (en+de) nennen jetzt ausdruecklich die User-ID.
  • #149 Atom-Feeds je Teich (zuletzt geaenderte Seiten) und je Seite (Versions-Historie); oeffentliche Teiche anonym, private via neuem read-only Feed-Token (dt_feed_…, neue Tabelle = Migration, Verwaltung in den Nutzer-Einstellungen); Public-HTML annonciert den Feed per link rel=alternate. DB-Tests + Doku.

Lokal gruen: typecheck, lint, i18n:check, api-Vollsuite gegen frische DB (417 Tests inkl. neuer Feed-/Filter-Tests).

Implementiert Milestone M21: - **#148** `?createdSince=`/`?updatedSince=` auf beiden Seitenlisten-Endpoints, neue Indizes (pondId, createdAt/updatedAt) als **Migration**, OpenAPI + MCP-Paritaet + Doku, DB-Test. - **#147** `GET /api/public/v1/me` existierte bereits — OpenAPI-Summary + api-guide (en+de) nennen jetzt ausdruecklich die User-ID. - **#149** Atom-Feeds je Teich (zuletzt geaenderte Seiten) und je Seite (Versions-Historie); oeffentliche Teiche anonym, private via neuem read-only Feed-Token (`dt_feed_…`, neue Tabelle = **Migration**, Verwaltung in den Nutzer-Einstellungen); Public-HTML annonciert den Feed per link rel=alternate. DB-Tests + Doku. Lokal gruen: typecheck, lint, i18n:check, api-Vollsuite gegen frische DB (417 Tests inkl. neuer Feed-/Filter-Tests).
fable-5 added 3 commits 2026-07-20 00:51:21 +02:00
Neues pageListQuerySchema (ISO 8601, Kulanz für Datum ohne Zeit),
Query-Parameter auf interner und Public-API-Seitenliste, Prisma-where
mit gte; neue Indizes (pondId, createdAt)/(pondId, updatedAt) als
Migration. OpenAPI-Parameter, MCP-Parität (list_pages
created_since/updated_since), Doku (api-guide, mcp-guide,
public-api.md), DB-Test inkl. 400 bei ungültigem Datum.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0155v2aT8AG1kZDQEZiCLBWC
GET /api/public/v1/me existiert bereits — OpenAPI-Summary nennt jetzt
ausdrücklich die User-ID, api-guide (en+de) ebenso. MCP war bereits
paritätisch (list_ponds + Token-Identität); kein neuer Endpoint nötig.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0155v2aT8AG1kZDQEZiCLBWC
#149: Atom-Feeds für Teiche und Seiten, privat via Feed-Token
Some checks failed
CI / Lint, typecheck, test (pull_request) Successful in 4m53s
CI / Build container images (pull_request) Successful in 4m1s
CI / Auth e2e pack (pull_request) Successful in 7m12s
CI / Import/export fidelity gate (pull_request) Successful in 1m0s
CD / Build and push images (push) Successful in 14s
CD / Deploy to Test (push) Successful in 16s
CD / Smoke tests against Test (push) Successful in 1m13s
CD / Promote to Int (push) Successful in 12s
CI / Lint, typecheck, test (push) Successful in 4m35s
CI / Build container images (push) Has been skipped
CI / Auth e2e pack (push) Failing after 5m14s
CI / Import/export fidelity gate (push) Has been skipped
7252bd16e0
GET /public/:pond/feed.xml (zuletzt geänderte Seiten) und
GET /public/:pond/:page/feed.xml (Versions-Historie), @Public mit
404-Semantik; öffentliche Teiche anonym, nicht-öffentliche über neues
read-only Feed-Token je Nutzer als ?token=dt_feed_… (neue Tabelle
feed_tokens + Migration, Verwaltung in den Nutzer-Einstellungen,
FeedTokensSection). Öffentliche HTML-Seiten annoncieren den Teich-Feed
per link rel=alternate. DB-Tests (anonym/privat/Token-Lifecycle) und
User-Guide-Doku en+de.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0155v2aT8AG1kZDQEZiCLBWC
fable-5 merged commit 7252bd16e0 into main 2026-07-20 01:06:20 +02:00
Sign in to join this conversation.
No description provided.