Sandbox/Version demo/3.0: Difference between revisions
From OHC Network Wiki
More languages
More actions
Content deleted Content added
OHC identity seed |
OHC identity seed |
||
| Line 10: | Line 10: | ||
__NOINDEX__ |
__NOINDEX__ |
||
{{Warning|1=This is a '''sandbox demonstration''' of the wiki's versioning system |
{{Warning|1=This is a '''sandbox demonstration''' of the wiki's copy-on-write versioning system. See [[Sandbox/Version demo]] for the full comparison.}} |
||
== Notification system (v3.0) == |
== Notification system (v3.0) == |
||
Version 3.0 introduced '''templates''', '''delivery tracking''', and ''' |
Version 3.0 introduced '''templates''', '''delivery tracking''', and '''push notifications'''. |
||
=== Channels === |
=== Channels === |
||
| Line 31: | Line 31: | ||
| Webhook || '''3.0''' || For external integrations |
| Webhook || '''3.0''' || For external integrations |
||
|} |
|} |
||
=== Template engine === |
|||
Messages now use a Jinja2-like template language: |
|||
<syntaxhighlight lang="text"> |
|||
Hello {{ recipient.name }}, |
|||
Your appointment with Dr. {{ provider.name }} is confirmed for |
|||
{{ appointment.datetime | format_date }}. |
|||
{% if appointment.requires_fasting %} |
|||
⚠️ Please fast for 12 hours before your visit. |
|||
{% endif %} |
|||
</syntaxhighlight> |
|||
=== Delivery tracking === |
=== Delivery tracking === |
||
| Line 65: | Line 50: | ||
|} |
|} |
||
== What you're observing right now == |
|||
=== Batching === |
|||
Notifications to large groups now batch automatically: |
|||
* Email: up to 500 per SES API call |
|||
* Push: up to 1000 per FCM multicast |
|||
* Configurable batch window (default: 30 seconds) |
|||
Three frozen forks now exist. The version dropdown shows all of them. The system demonstrates: |
|||
== What improved over 2.0 == |
|||
'''Queryability.''' Unlike Docusaurus (where version data is just directory names), Cargo stores structured metadata about every version: |
|||
* Rich templates instead of hardcoded strings |
|||
* Full delivery lifecycle tracking |
|||
* Push notifications for mobile apps |
|||
* Webhook channel for third-party systems |
|||
* Batch sends for high-volume scenarios |
|||
{{#cargo_query:tables=Docs |
|||
== Still missing == |
|||
|fields=_pageName=Page,IntroducedIn=Since,DeprecatedIn=Until,Status |
|||
|where=_pageName LIKE 'Sandbox/Version demo%' |
|||
|order by=IntroducedIn |
|||
|format=table |
|||
}} |
|||
That table above is a '''live query''' — not hand-maintained. It updates automatically when pages are created or modified. Try doing that in Docusaurus without writing custom React components. |
|||
* No scheduling (send-at-time) |
|||
* No A/B testing of message variants |
|||
* No per-organization channel config (global only) |
|||
[[Category:Sandbox]] |
[[Category:Sandbox]] |
||
Latest revision as of 04:32, 5 July 2026
⚠️ Warning
This is a sandbox demonstration of the wiki's copy-on-write versioning system. See Sandbox/Version demo for the full comparison.
Notification system (v3.0)
Version 3.0 introduced templates, delivery tracking, and push notifications.
Channels
| Channel | Added in | Notes |
|---|---|---|
| 1.0 | Now supports HTML templates | |
| In-app | 2.0 | Now supports rich cards with actions |
| SMS | 2.0 | Template-based (character-count aware) |
| Push (mobile) | 3.0 | FCM / APNs via unified adapter |
| Webhook | 3.0 | For external integrations |
Delivery tracking
Every notification now records:
| Field | Type | Description |
|---|---|---|
status |
enum | queued → sent → delivered → read → failed
|
attempts |
int | Number of delivery attempts |
delivered_at |
datetime | When the channel confirmed receipt |
read_at |
datetime | When the user opened/acknowledged |
error |
text | Last failure reason (if any) |
What you're observing right now
Three frozen forks now exist. The version dropdown shows all of them. The system demonstrates:
Queryability. Unlike Docusaurus (where version data is just directory names), Cargo stores structured metadata about every version:
| Page | Since | Until | Status |
|---|---|---|---|
| Sandbox/Version demo/1.0 | 1.0 | 2.0 | frozen |
| Sandbox/Version demo/2.0 | 2.0 | 3.0 | frozen |
| Sandbox/Version demo/3.0 | 3.0 | 4.0 | frozen |
| Sandbox/Version demo | 4.0 | current |
That table above is a live query — not hand-maintained. It updates automatically when pages are created or modified. Try doing that in Docusaurus without writing custom React components.