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
The feature in the specification · Read at
Requirements
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
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
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
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.
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
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
An invitation that lapsed unaccepted MUST be told apart from one the invitee declined.
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.
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
The front door MUST show what each address faces and why, and MUST say whether it was chosen or derived.
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
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).