← The board

F7 Plugin provenance

Area
F — Extensibility
Audience
operator
Kind
feature
Status
accepted
Maturity
shipped
Shipped in
0.16.0
Labels
extensibility, ux, verification
Requires
F3F6E4
Relates to
F4F5C9G2

The feature in the specification · Read at

Requirements

  1. F7-R1acceptedMUST

    Every change a plugin makes MUST be journalled in the same record as any other change, with the plugin named as the operation.

    locked by
    0.16.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/rollback.rscrates/lemonfiber-core/src/plugin/placing.rscrates/lemonfiber-core/src/app/plugins.rs
    cited by
    lemonfiber@604aa970e0
  2. F7-R2acceptedMUST

    A plugin's changes MUST appear in the change history and MUST be classified by the rollback layer like any other change.

    locked by
    0.16.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/rollback.rscrates/lemonfiber-core/src/plugin/placing.rscrates/lemonfiber-core/src/app/plugins.rs
    cited by
    lemonfiber@604aa970e0
  3. F7-R3acceptedMUST

    Wherever a setting, wiring or check is shown, its origin — bundled, operator, or a named plugin — MUST be shown beside it.

    locked by
    0.16.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/wiring.rscrates/lemonfiber-core/src/wiring/settling.rscrates/lemonfiber-core/src/doctor.rs
    recorded partial
    lemonfiber-companionapp-modules/kernel/src/Api/Finding.phpapp-modules/kernel/src/Api/Setting.phptests/Feature/SeeingWhatAStackIsSetToTest.php
    cited by
    lemonfiber@599816ca1dlemonfiber-web@77c956d903
  4. F7-R4acceptedMUST

    A value a plugin has overridden MUST expose both the value in force and the bundled value it replaced.

    locked by
    0.16.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/origin/journalled.rscrates/lemonfiber-core/src/app/configuring.rscrates/lemonfiber-core/src/origin.rs
    recorded partial
    lemonfiber-companionapp-modules/kernel/src/Api/WhatItReplaced.phpapp-modules/kernel/src/Api/WhoPutItThere.phpapp-modules/kernel/tests/Api/WhatItReplacedTest.phpapp-modules/kernel/tests/Api/WhoPutItThereTest.php
    cited by
    lemonfiber@c155500c23lemonfiber@f2519ad9cclemonfiber-web@7a406ebeab
  5. F7-R5acceptedMUST

    A single read MUST list every installed plugin with its origin, whether it was reviewed, what it claims and fills, what it added, substituted and overrides, the hosts it reaches, the secrets it holds, and when it was installed.

    locked by
    0.16.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/plugin/declared.rscrates/lemonfiber-core/src/plugin/register.rs
    cited by
    lemonfiber@2f32817737
  6. F7-R6acceptedMUST

    A plugin MUST declare every bundled thing it will override, and the rehearsal MUST state the full extent before anything is written.

    locked by
    0.16.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/plugin/stating.rscrates/lemonfiber-plugin/src/refusing/reaching.rs
    cited by
    lemonfiber@becca9b0c3
  7. F7-R7acceptedMUST

    Changing anything a plugin did not declare MUST fail validation.

    locked by
    0.16.0 uncited
    recorded done
    lemonfibercrates/lemonfiber-core/src/plugin/stating.rscrates/lemonfiber-plugin/src/refusing/reaching.rs
  8. F7-R8acceptedMUST

    A plugin's secrets MUST appear on the credentials surface attributed to the plugin, and MUST NOT expose their values.

    locked by
    0.16.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/credentials/reading.rscrates/lemonfiber-core/src/credential.rs
    cited by
    lemonfiber@7021f08143
  9. F7-R9acceptedMUST

    A plugin's declared hosts MUST appear in the account of what leaves this machine, attributed to the plugin.

    locked by
    0.16.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/outbound/theirs.rs
    recorded partial
    lemonfiber-companionapp-modules/kernel/src/Api/ARequestOfTheirs.phpapp-modules/sdk/src/Api/WhatLeaves.phpapp-modules/sdk/tests/Api/WhatLeavesTest.phptests/Feature/SeeingWhatLeavesTest.php
    cited by
    lemonfiber@7021f08143
  10. F7-R10acceptedMUST

    A value left in force by a removed plugin MUST be reported as orphaned, naming the plugin that set it.

    locked by
    0.16.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/origin/journalled.rscrates/lemonfiber-core/src/app/configuring.rscrates/lemonfiber-core/src/origin.rs
    recorded partial
    lemonfiber-companionapp-modules/kernel/src/Api/WhoPutItThere.phpapp-modules/health/tests/Api/Queries/InCategoryTest.phpapp-modules/health/tests/Api/Queries/TheCauseBeforeItsSymptomsTest.php
    cited by
    lemonfiber@c155500c23lemonfiber@f2519ad9cclemonfiber-web@7a406ebeab
  11. F7-R11acceptedMUST

    An origin that cannot be determined MUST be reported as unknown and MUST NOT be reported as bundled.

    locked by
    0.16.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/origin.rscrates/lemonfiber-core/src/wiring.rscrates/lemonfiber-core/src/wiring/settling.rscrates/lemonfiber-core/src/doctor.rs
    recorded partial
    lemonfiber-companionapp-modules/kernel/src/Api/AnOriginIsUnnamed.phpapp-modules/kernel/src/Api/WhoPutItThere.phptests/Feature/SeeingWhatLeavesTest.phptests/Feature/SeeingWhoPutACheckThereTest.php
    cited by
    lemonfiber@d3e6b53cfclemonfiber-web@77c956d903
  12. F7-R12acceptedMUST

    Plugins MUST NOT have parallel surfaces of their own for secrets, outbound traffic or settings; they MUST appear on the existing ones.

    locked by
    0.16.0 met
    recorded done
    lemonfibercrates/lemonfiber/tests/architecture/nothing_a_plugin_brings_gets_its_own_account.rs
    recorded partial
    lemonfiber-companionapp-modules/kernel/src/Api/Provenance.phptests/Contract/ProvenanceContractTest.php
    cited by
    lemonfiber@caed98fdb4