← The board

N9 Who gets in, and what the stack holds for them

Area
N — Companion
Audience
operator
Kind
feature
Status
accepted
Maturity
built
Labels
mobile, household, security, ux
Requires
N1D6
Relates to
A7G5G6N2N3

The feature in the specification · Read at

Requirements

  1. N9-R1acceptedMUST

    A credential MUST be shown with the state the contract gives, and stale, invalid and rotating MUST NOT be flattened into a single warning.

    locked by
    no version locks it yet
    recorded done
    lemonfiber-companionapp-modules/kernel/src/Api/WhereACredentialStands.phpapp-modules/kernel/tests/Api/ACredentialHeldTest.phpapp-modules/kernel/tests/Api/TheCredentialsHeldTest.php
  2. N9-R2acceptedMUST

    A credential MUST name the services that consume it.

    locked by
    no version locks it yet
    recorded done
    lemonfiber-companionapp-modules/sdk/src/Api/CredentialsKept.phpapp-modules/sdk/tests/Api/CredentialsKeptTest.phptests/Contract/SafekeepingContractTest.php
  3. N9-R3acceptedMUST

    A credential's origin MUST be shown beside it.

    locked by
    no version locks it yet
    recorded done
    lemonfiber-companionapp-modules/kernel/src/Api/WhoMadeACredential.phpapp-modules/kernel/tests/Api/ACredentialHeldTest.phpapp-modules/kernel/tests/Api/TheCredentialsHeldTest.php
  4. N9-R4acceptedMUST

    The app MUST NOT offer to set or change a credential's value (N2-R12), and MUST NOT render its value where the contract carries one.

    locked by
    no version locks it yet
    recorded done
    lemonfiber-companionapp-modules/kernel/src/Api/ACredentialHeld.phpapp-modules/sdk/src/Api/CredentialsKept.phpapp-modules/kernel/tests/Api/ACredentialHeldTest.phpapp-modules/kernel/tests/Api/TheCredentialsHeldTest.php
  5. N9-R5acceptedMUST

    An invitation MUST state what it grants — libraries, filtering, unrated material and whether requests may be made — before it is sent.

    locked by
    no version locks it yet
    recorded partial
    lemonfibercrates/lemonfiber-core/src/app/invite.rs
    recorded done
    lemonfiber-companionapp-modules/kernel/src/Api/AnInvitationAgreed.phpapp-modules/kernel/src/Api/WhatWasGranted.phpapp-modules/kernel/tests/Api/AnInvitationAgreedTest.phpapp-modules/sdk/tests/Api/UshersTest.php
  6. N9-R6acceptedMUST

    An invitation MUST state when it lapses.

    locked by
    no version locks it yet
    recorded done
    lemonfiber-companionapp-modules/sdk/src/Api/Ushers.phpapp-modules/sdk/tests/Api/UshersTest.phptests/Contract/InvitingContractTest.php
  7. N9-R7acceptedMUST

    An invitation that lapsed unaccepted MUST be told apart from one the invitee declined.

    locked by
    no version locks it yet
    recorded done
    lemonfiber-companionapp-modules/kernel/src/Api/WhereAMemberStands.phpapp-modules/sdk/src/Api/Households.phpapp-modules/sdk/tests/Api/HouseholdsTest.phptests/Feature/AskingSomebodyInTest.php
  8. N9-R8acceptedMUST

    A client recommendation MUST be for a named device, MUST carry its rating, and where the rating is poor MUST carry what to use instead.

    locked by
    no version locks it yet
    recorded done
    lemonfiber-companionapp-modules/kernel/src/Api/ADeviceToWatchOn.phpapp-modules/kernel/src/Api/HowWellADeviceIsServed.phpapp-modules/kernel/tests/Api/ADeviceToWatchOnTest.phptests/Contract/AdvisingContractTest.php
  9. N9-R9acceptedMUST

    Where something only works on the household network, the app MUST say so.

    locked by
    no version locks it yet
    recorded done
    lemonfiber-companionapp-modules/operator/src/Internal/Screens/WhichAppToWatchOn.phptests/Feature/SeeingWhichAppToWatchOnTest.phptests/Contract/AdvisingContractTest.php
  10. N9-R10acceptedMUST

    The front door MUST show what each address faces and why, and MUST say whether it was chosen or derived.

    locked by
    no version locks it yet
    recorded done
    lemonfiber-companionapp-modules/kernel/src/Api/AnAddressToHand.phpapp-modules/kernel/src/Api/HowTheDoorWasChosen.phpapp-modules/codes/tests/Api/QrCodesTest.phpapp-modules/kernel/tests/Api/AHandoffTest.php
  11. N9-R11acceptedMUST

    Credentials or a door that could not be read MUST be told apart from there being none.

    locked by
    no version locks it yet
    recorded done
    lemonfiber-companionapp-modules/sdk/src/Api/CredentialsKept.phptests/Contract/EveryAdapterAnswersWhatItCannotReadTest.phptests/Contract/SafekeepingContractTest.php
  12. N9-R12acceptedMUST

    The credentials screen MUST list every grant beside the credential it crosses, with the plugin it is granted to, the capability it is for and when it was approved, and never a value (ARCH-R325, F14-R20).

    locked by
    1.0.0 met
    recorded done
    lemonfiber-companionapp-modules/operator/src/Internal/Presenters/HowTheCredentialsRead.phpapp-modules/operator/resources/views/what-it-holds-to-let-them-in.blade.phptests/Feature/EndingAGrantTest.php
    cited by
    lemonfiber-companion@168bfe915b