Optional ConverseJS/XMPP web integration for chat and structured notification presentation in ShariX Open.
Опциональная веб-интеграция ConverseJS/XMPP для чатов и отображения структурированных уведомлений в ShariX Open.
|
|
1 month ago | |
|---|---|---|
| lib | 1 month ago | |
| services | 1 month ago | |
| static | 1 month ago | |
| templates | 1 month ago | |
| tests | 1 month ago | |
| transports | 1 month ago | |
| .gitignore | 1 month ago | |
| CODING_POLICY.md | 1 month ago | |
| LICENSE | 1 month ago | |
| README.md | 1 month ago | |
| RELEASE_POLICY.md | 1 month ago | |
| __init__.py | 5 months ago | |
| apps.py | 5 months ago | |
| sharix_health.py | 1 month ago | |
| sharix_pages.py | 1 month ago | |
| sharix_ui_smoke.py | 1 month ago | |
| tests_notification_backend.py | 1 month ago | |
| urls.py | 1 month ago | |
| views.py | 1 month ago |
Optional web integration for ConverseJS/XMPP in ShariX Open.
The module provides JID/settings helpers and embedded/standalone chat presentation. XMPP is a transport: Order/Ticket lifecycle and durable business state remain in their owning backend/runtime modules.
The module does not create parallel Stage, Participant, Correspondence or Artifact tables. Room lifecycle is controlled through backend/handler contracts; absence of the module must not prevent the core service from starting.
Configuration is supplied through the common EJ_/CONVERSE settings described by the deployment. Canonical migrations, if models are added in future, must be committed to this repository rather than generated by installation scripts.
/notifications/ is a presentation-only view over structured XMPP notification
messages. It uses the current user's Converse/XMPP session, queries personal MAM
history and MAM for rooms already known to Converse, and listens for live XMPP
messages. Only JSON envelopes with type=notification and version=1 are
rendered.
The web Notification Center does not publish business notifications, run workflow handlers or
store a canonical notification inbox. Business code may use the module's transient delivery facade described below. Read/unread state is presentation state in
the current browser (localStorage) and is not synchronized between devices.
Different domain processes may use different direct/MUC conversations; the page
aggregates matching notification envelopes without changing their room topology.
The notification page always uses the in-page Converse client because a
cross-origin external iframe cannot expose the user's MAM archive to the Django
page. CONVERSE_CLIENT_MODE=external therefore continues to control the support
chat only. If prebind is unavailable, the user logs into XMPP in the collapsible
connection panel.
Optional limits:
CONVERSE_NOTIFICATIONS_PAGE_SIZE — latest MAM messages requested per archive
query (default 100, range 10..500);CONVERSE_NOTIFICATIONS_MAX_ROOMS — maximum number of currently known Converse
rooms additionally queried through room MAM (default 20, range 1..100).The XMPP localpart follows the established ShariX account identity: phone_number
first, then uid, then username as compatibility fallbacks. The Converse-owned
XMPP domain remains CONVERSE_XMPP_HOST, which itself defaults to global EJ_HOST.
sharix_converse is not required to provide a browser notification inbox. Its
stable backend role is transient multi-channel delivery. Use
sharix_converse.services.dispatch_notification() for explicit XMPP/e-mail
delivery. There is no Notification database table or delivery inbox in this
contract; business workflows remain owners of retry/time semantics.
The historical Support Chat and MAM Notification Center URLs remain compatible web surfaces, but neither is present in the default PURE menu. A local menu configuration may explicitly enable a registered page when a deployment still needs it.