feat(templates): add localized push templates and actions
Share template keys across email and push with independent editors and revisions. Render localized actions and preserve version-one delivery. Ref: IT-1627
This commit is contained in:
@@ -166,3 +166,28 @@ runtime validation remain separate pending work. TeamCity main triggers include
|
||||
checks, image publication, Contracts publication and production deployment. The owner
|
||||
explicitly authorized this automatic production consequence for the Notification Service
|
||||
delivery on 2026-10-24. It does not authorize delivery of the remaining Invemory repositories.
|
||||
|
||||
## Template action increment — 2026-10-31 (historical initial implementation)
|
||||
|
||||
The new template worker emits FCM data version 2 with localized buttons and a
|
||||
primary action, each carrying an opaque action key and objectId. This supersedes
|
||||
the ready-made title/body/route send format above for current Notification Service
|
||||
source. The owner explicitly chose no old-format compatibility branches. The
|
||||
installed Invemory client and its producers are not updated in this increment;
|
||||
version 2 action display/tap handling must be implemented before activating the new
|
||||
producer. See [channel templates](channel-template-model.md) for the full contract.
|
||||
|
||||
### Superseding compatibility decision
|
||||
|
||||
The owner subsequently required compatibility within the same Firebase channel.
|
||||
Requests with no version or version=1 again accept ready-made title/body and emit
|
||||
the original version=1, route=/home data envelope. Only explicit version=2 renders
|
||||
templates and action metadata; unknown versions fail. Section actions allow missing
|
||||
objectId. Android's current version=1 validator remains unchanged and supported.
|
||||
|
||||
Channel test-send now selects legacy simple notification or version 2 with one
|
||||
localized button. The latter requires a real installation binding and a
|
||||
consumer-supported section action key; it uses the new data-envelope format and
|
||||
does not claim old clients can show buttons. Both modes use the same saved or
|
||||
unsaved Firebase credentials and never modify the channel. Capability registration
|
||||
and installation-based producer routing are deferred to Invemory integration.
|
||||
|
||||
Reference in New Issue
Block a user