Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Document the admin real-time channel (POST /_/realtime) and X-CWA-Client-Id

Chiusa
#294 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
67/100
Tipo di issue
Documentazione
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
typescript

Direzione di ricerca

Start in the bundle's content/4.api/ documentation and identify the endpoint and writer sections to update; check the linked bundle issue and PR for implementation details. Then find the template deployment guidance for Nelmio allow_headers and Mercure history settings. Done when the docs cover the endpoint behavior, payload, limits, writer echo, configuration, and deployment settings listed in this issue.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

The bundle is adding an admin real-time channel (api-components-bundle#559, PR #560). Please document the following.

Bundle (content/4.api/)

  • Endpoint: POST /_/realtime (/_api/_/realtime under the template).
    • ROLE_ADMIN.
    • Body: {clientId, event, iri?, data?}, 16 KB at most.
    • Responds 202, and stores nothing.
  • Content types:
    • JSON accepts any event.
    • text/plain (navigator.sendBeacon) is accepted only for event: "presence" with data.state: "left".
    • Anything else is 415.
    • A cross-site request (Sec-Fetch-Site) is 403.
  • Payload, published privately on one site-wide topic that only admins' subscriber cookies grant:
    {"@type": "CwaRealtimeEvent", "v": 1, clientId, user: {id, name}, event, iri, data, sentAt, expiresAt}
  • Rate limits:
    • 20 burst / 10 a second per user and clientId.
    • 60 burst / 30 a second per user across all their clients.
    • Above either: 429 with Retry-After.
    • The limiter pool silverback.api_components.realtime.rate_limiter_cache uses cache.app by default, so the limits apply per pod. Point it at a shared adapter in framework.cache.pools to make them exact.
  • Publishing: bounded at 1 s. A failed or timed-out publish is logged and still answers 202.
  • Config: silverback_api_components.realtime.enabled (default true). When false, the endpoint is a 404 and no cookie grants the topic.
  • Writer echo: a write carrying X-CWA-Client-Id gets _metadata.lastWrite: {clientId, userId, at} in the writer's response and in the private ?draft=1 update.
    • at is server time, RFC 3339 with milliseconds.
    • Use at, not modifiedAt, to order draft updates.

Deployment

  • The front end must be allowed to send X-CWA-Client-Id. In the template, add it to nelmio's allow_headers. The bundle has no Flex recipe yet (#259).
  • Presence events stay in the Mercure hub's replay history, so mention the hub's history size and retention settings.
Lingua principale
TypeScript
Stelle
0
Fork
0
Merge medio
1h 20m
PR unite (30g)
1

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di components-web-app/docs

Tutte le issue di components-web-app/docs

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.