← The board

N17 Where a message goes

Area
N — Companion
Audience
operator
Kind
feature
Status
accepted
Maturity
building
Labels
mobile, notifications, network, ux
Requires
N1B9
Relates to
B5N4N10N16

The feature in the specification · Read at

Requirements

  1. N17-R1acceptedMUST

    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
  2. N17-R2acceptedMUST

    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
  3. N17-R3acceptedMUST

    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
  4. N17-R4acceptedMUST

    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
  5. N17-R5acceptedMUST

    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
  6. N17-R6acceptedMUST

    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
  7. N17-R7acceptedMUST

    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
  8. N17-R8acceptedMUST

    A notification the app displays MUST carry no credential, no household member's name and no requested title (N4-R10).

    locked by
    no version locks it yet
    recorded done
    lemonfiber-companionapp-modules/kernel/src/Api/Notification.phpapp-modules/device/src/Api/PlatformNotifier.phpapp-modules/kernel/tests/Api/NotificationTest.phptests/Contract/NotifierContractTest.php
  9. N17-R9acceptedMUST

    The app MUST NOT raise a notification of its own; every one MUST originate in the core's decisions (N4-R11).

    locked by
    no version locks it yet
    recorded done
    lemonfiber-companionapp-modules/kernel/src/Api/Notification.phpapp-modules/kernel/src/Api/WhatTheCoreDecided.phpapp-modules/kernel/tests/Api/NotificationTest.phptests/Feature/EveryNotificationIsTheCoresTest.php
  10. N17-R10acceptedMUST

    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
  11. N17-R11acceptedMUST

    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