collab-core — die Basis-Schicht der Collab-Suite.

collab-core liefert die gemeinsame Infrastruktur für Real-Time-Collaboration in TYPO3: Session-Management, Sync-Protokoll-Abstraktion und die Editor-übergreifenden Konventionen, auf denen collab-presence, collab-rte und hocuspocus aufsetzen. Coming soon — Inhalte und API-Dokumentation folgen, sobald das Paket für die öffentliche Bereitstellung freigegeben ist.

Verfügbarkeit: Coming soon — öffentliche Veröffentlichung in Vorbereitung

Die öffentliche Bereitstellung als Composer-Paket wird derzeit vorbereitet. Wenn Sie collab-core bereits in Ihrer TYPO3-Plattform einsetzen möchten, sprechen Sie uns über das Kontaktformular an — wir liefern aktuell im Rahmen von Plattform-Engagements aus.

Architektur und Komponenten

collab-core sitzt als TYPO3-Backend-Komponente zwischen dem Browser-Editor (CKEditor 5 mit Yjs) und dem externen WebSocket-Server (moselwal/hocuspocus). Der Browser verbindet sich per WebSocket zum Hocuspocus-Server, der wiederum per REST plus JWT gegen die TYPO3-Backend-Routen von collab-core spricht.

 

Browser (CKEditor 5 + Yjs)
   ↓ WebSocket
moselwal/hocuspocus (Node, Port 1234)
   ↓ REST + JWT
TYPO3-Backend (collab-core)
   ├─ /api/collab/auth                → AuthController::verifyAction
   ├─ /api/collab/doc/{load,store}    → DocController
   ├─ /api/collab/presence            → PresenceController::streamAction (SSE)
   └─ /api/collab/presence/push       → PresenceController::pushAction

 

Klassen-Inventar

KlasseAufgabe
Service\JwtServiceHS256-JWT-Issuance und -Validierung. Token-Payload {sub, name, docId, iat, exp} mit 5 min TTL
Service\DocIdServiceBaut und parst deterministische Doc-IDs im Format {table}:{uid}:{fieldName}
Service\PresenceServiceSession-Tracking (User-Color-Allocation, Heartbeat, Stale-Purge nach 30 s)
Repository\YdocRepositoryLONGBLOB-Persistenz für Yjs-State-Vector in tx_collab_ydoc
Controller\AuthControllerToken-Verifikation für den Hocuspocus-WebSocket-Handshake
Controller\DocControllerYjs-Document Load und Store für Hocuspocus
Controller\PresenceControllerSSE-Stream und Heartbeat-Push für die aktive Editor-Liste
EventListener\ProvideCollabTokenListenerInjectet JWT und docId in die CKEditor-Konfiguration via BeforePrepareConfigurationForEditorEvent

Datenbank-Schema

 

tx_collab_ydoc:    doc_id (PK), ydoc_binary (LONGBLOB), updated_at
tx_collab_session: doc_id, be_user_uid, color, display_name, connected_at, last_seen

 

Voraussetzungen

Nächster Schritt

Real-Time-Collaboration in TYPO3 jetzt diskutieren?

Wenn Sie collab-core früh evaluieren oder die Collab-Suite als Ganzes in einer TYPO3-Plattform betreiben möchten, sprechen Sie uns an — wir koordinieren Early-Access, Architektur-Beratung und Integrationsfragen.

Collab-Setup besprechen

Oder direkt schreiben: kontakt@moselwal.de