N17 Where a message goes
- Area
- N — Companion
- Audience
- operator
- Kind
- feature
- Status
- accepted
- Maturity
- building
- Labels
- mobile, notifications, network, ux
The feature in the specification · Read at
Requirements
The app MUST NOT operate, require or ship a notification service, relay or push identity of its own; what delivers a message MUST be the back-end the operator configured.
- locked by
- no version locks it yet
- recorded done
- lemonfiber-companionapp-modules/kernel/src/Api/Notifier.phpapp-modules/device/src/Api/PlatformNotifier.phptests/Feature/NothingButTheStackDeliversAMessageTest.php
Where the app subscribes to a back-end, it MUST state what that subscription can and cannot deliver while the app is not running, and MUST NOT imply delivery it cannot provide.
- locked by
- no version locks it yet
- recorded done
- lemonfiber-companionapp-modules/kernel/src/Api/Notifier.phptests/Arch/NothingOpensAConnectionByHandTest.phptests/Feature/NothingButTheStackDeliversAMessageTest.php
A message MUST be shown as delivered only where the contract carries a confirmation, and an unconfirmed message MUST NOT be rendered as sent.
- locked by
- no version locks it yet
- recorded open
- lemonfiber-companion
A back-end that is configured and has never delivered MUST be told apart from one that is delivering.
- locked by
- no version locks it yet
- recorded open
- lemonfiber-companion
Each back-end MUST be shown with what it is, where it delivers, and whether the operator or the household chose it.
- locked by
- no version locks it yet
- recorded open
- lemonfiber-companion
The app MUST NOT set or change a back-end's credential (N2-R12), and MUST NOT render its value.
- locked by
- no version locks it yet
- recorded done
- lemonfiber-companiontests/Arch/TheAppOpensOnlyTheseDoorsTest.phptests/Arch/WhatTheContractDoesNotCarryTest.php
Where a back-end is a hosted service, the app MUST state what leaves the device to use it, and MUST NOT list it among the connections lemonfiber itself makes (N10-R1).
- locked by
- no version locks it yet
- recorded open
- lemonfiber-companion
A notification the app displays MUST carry no credential, no household member's name and no requested title (N4-R10).
The app MUST NOT raise a notification of its own; every one MUST originate in the core's decisions (N4-R11).
A delivery that failed MUST carry the reason the back-end gave, and MUST NOT be rendered as a generic failure to retry.
- locked by
- no version locks it yet
- recorded open
- lemonfiber-companion
Back-ends or delivery records that could not be read MUST be told apart from there being none.
- locked by
- no version locks it yet
- recorded open
- lemonfiber-companion