Files
summercms/.planning/phases/11-jobs-realtime-and-search-infrastructure/COVERAGE.md
2026-09-29 14:34:06 +02:00

3.7 KiB

API Coverage — Phase 11 (Centrifugo, Typesense, Web Push services)

Full coverage by default. Opt-outs are explicit, reasoned decisions. The PHP clients being ported (websockets CentrifugoClient, Scout TypesenseEngine, the websockets push block) define the baseline; D-12 and D-19 make both clients hand-rolled on net/http.

Centrifugo server HTTP API (outbound, plan 11-03 and 11-04)

capability decision reason
publish INTEGRATE
broadcast INTEGRATE
presence INTEGRATE
unsubscribe INTEGRATE
info INTEGRATE
presence_stats OPT-OUT not in the PHP CentrifugoClient contract and no Phase 11-15 consumer
history OPT-OUT not in the PHP CentrifugoClient contract; the Nuxt client does not use history recovery
history_remove OPT-OUT not in the PHP CentrifugoClient contract and no consumer
channels OPT-OUT not in the PHP CentrifugoClient contract and no consumer
disconnect OPT-OUT not in the PHP CentrifugoClient contract; token revocation is not part of the port
refresh OPT-OUT not in the PHP CentrifugoClient contract; connection tokens expire by exp as in PHP
subscribe (server-side) OPT-OUT not in the PHP CentrifugoClient contract; clients subscribe through the subscribe proxy
batch OPT-OUT not needed; PHP sends one request per publish or broadcast

Centrifugo proxy and token contract (inbound and signed, plan 11-03)

capability decision reason
subscribe proxy INTEGRATE
connection token (HS256) INTEGRATE
subscription token (HS256) INTEGRATE
anonymous and identifier tokens INTEGRATE
connect proxy OPT-OUT explicitly out of scope — PHP authenticates connections with JWTs, not a connect proxy
refresh proxy OPT-OUT explicitly out of scope — not configured on the existing Centrifugo server
publish proxy OPT-OUT explicitly out of scope — clients never publish; the server publishes through the HTTP API
sub_refresh proxy OPT-OUT explicitly out of scope — not configured on the existing Centrifugo server
rpc proxy OPT-OUT explicitly out of scope — the Nuxt client makes no Centrifugo RPC calls

Typesense API (outbound, plan 11-05)

capability decision reason
collection retrieve INTEGRATE
collection create INTEGRATE
collection delete (flush) INTEGRATE
documents import upsert INTEGRATE
document delete INTEGRATE
documents search INTEGRATE
multi_search OPT-OUT not needed — Scout issues single-collection searches
delete documents by filter OPT-OUT not needed yet — Phase 14 reindex (SRCH-02) decides its own flush strategy
collection update (schema alter) OPT-OUT not needed — schema changes go through reindex, as in PHP
aliases OPT-OUT not needed yet — the legacy-index drop belongs to Phase 14 SRCH-02
synonyms and curation overrides OPT-OUT not used by the PHP app
API keys management OPT-OUT explicitly out of scope — keys are operator-provisioned
health and metrics OPT-OUT not needed — sync failures are logged per request and never block writes

Web Push service protocol (outbound, plan 11-04)

capability decision reason
send notification (RFC 8030 push with RFC 8291 payload and RFC 8292 VAPID) INTEGRATE
message urgency and topic headers INTEGRATE
receipts (push message receipts) OPT-OUT not needed — PHP never requested receipts and push services rarely support them
subscription management (store and prune) OPT-OUT explicitly out of scope — subscriptions come from an app-provided SubscriptionSource (user decision 3); Płytarium has no store