← The board

F2 Service catalogue

Area
F — Extensibility
Audience
operator
Kind
feature
Status
accepted
Maturity
shipped
Shipped in
0.15.0
Labels
extensibility
Relates to
B1F1G2

The feature in the specification · Read at

Requirements

  1. F2-R1acceptedMUST

    Every service MUST carry a plain-language description of what it does for the operator.

    locked by
    0.15.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/docker.rscrates/lemonfiber-core/src/model/catalogue.rscrates/lemonfiber/src/render/catalogue.rscrates/lemonfiber/src/render/stack.rs.docs/architecture/surface-parity.md
    recorded done
    lemonfiber-media-stackscripts/manifest_rules.py::describesscripts/test_validate_manifest.py::missing required field
    cited by
    lemonfiber@be01322365lemonfiber@ecd8ed52b2lemonfiber-media-stack@db1ea82a32lemonfiber-media-stack@d7a16ae419
  2. F2-R2acceptedMUST

    Every service MUST state the consequence of its absence.

    locked by
    0.15.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/engine/settling.rs
    recorded done
    lemonfiber-media-stackscripts/manifest_rules.py::without_itscripts/test_validate_manifest.py::missing required field
    cited by
    lemonfiber@ecd8ed52b2lemonfiber@990e67673flemonfiber-media-stack@aaabfbbbfd
  3. F2-R3acceptedMUST

    Every service MUST carry a criticality level.

    locked by
    0.15.0 met
    recorded done
    lemonfibercrates/lemonfiber-manifest/src/schema.rscrates/lemonfiber-manifest/src/recognising.rscrates/lemonfiber-core/src/health/observed.rscrates/lemonfiber/src/render/catalogue.rs
    recorded done
    lemonfiber-media-stackscripts/manifest_rules.py::criticalityscripts/test_validate_manifest.py::missing required field
    cited by
    lemonfiber@be01322365lemonfiber@ecd8ed52b2
  4. F2-R4acceptedMUST

    Every service MUST record its licence, upstream project, and pinned version.

    locked by
    0.15.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/model/provenance.rscrates/lemonfiber-core/src/app/engine.rscrates/lemonfiber-core/tests/integration/provenance.rs.docs/architecture/surface-parity.md
    recorded done
    lemonfiber-media-stackscripts/manifest_rules.py::upstreamscripts/test_validate_manifest.py::missing required field 'digest'
    cited by
    lemonfiber@24ddf47e24lemonfiber@ecd8ed52b2
  5. F2-R5acceptedMUST

    Every bundled service MUST be under an OSI-approved licence, except a service whose image lemonfiber builds from its own code, which MUST carry lemonfiber's own licence (Hippocratic-3.0); an upstream's image lemonfiber rebuilds MUST keep its upstream's licence.

    locked by
    0.15.0 met
    recorded done
    lemonfibercrates/lemonfiber-manifest/src/validate.rs
    recorded done
    lemonfiber-media-stackscripts/manifest_rules.pyscripts/spdx_osi.txtscripts/test_validate_manifest.py::not a recognised OSI identifier
    cited by
    lemonfiber@df20f0c10blemonfiber@c5f4e3c63blemonfiber@f00ef6a8fblemonfiber@ecd8ed52b2lemonfiber@ce320dfaf0lemonfiber-media-stack@4c7bc56170lemonfiber-media-stack@ebc22d27b9
  6. F2-R6acceptedMUST

    Every bundled service MUST publish native linux/arm64 and linux/amd64 images.

    locked by
    0.15.0 met
    recorded done
    lemonfiber-media-stackscripts/check_images.py
    cited by
    lemonfiber@ecd8ed52b2lemonfiber-media-stack@4c7bc56170lemonfiber-media-stack@216c0f1dbelemonfiber-media-stack@23678bee21lemonfiber-media-stack@c87a625a1clemonfiber-media-stack@4288cebf60lemonfiber-media-stack@bf0fb4ef30lemonfiber-media-stack@28467ba7ae
  7. F2-R7acceptedMUST

    Inclusion criteria MUST be stated explicitly.

    locked by
    0.15.0 met
    recorded done
    lemonfiberspec:10-functional/features/f-extensibility/f2-service-catalogue.mdcrates/lemonfiber-manifest/src/validate.rs
    recorded done
    lemonfiber-media-stackdocs/maintaining.md::OSI-approved licencescripts/check_candidate.py
    cited by
    lemonfiber@be01322365lemonfiber@ecd8ed52b2
  8. F2-R8acceptedMUST

    Notable exclusions MUST be recorded with reasons.

    locked by
    0.15.0 met
    recorded done
    lemonfiberspec:10-functional/features/f-extensibility/f2-service-catalogue.mdcrates/lemonfiber-manifest/src/validate.rs
    cited by
    lemonfiber@be01322365lemonfiber@ecd8ed52b2
  9. F2-R9acceptedMUST

    Service descriptions MUST be available inline where a service is referenced, not only in documentation.

    locked by
    0.15.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/docker.rscrates/lemonfiber-core/src/model/catalogue.rscrates/lemonfiber/src/render/catalogue.rscrates/lemonfiber/src/render/stack.rs.docs/architecture/surface-parity.mdspec:10-functional/features/f-extensibility/f2-service-catalogue.md
    cited by
    lemonfiber@be01322365lemonfiber@ecd8ed52b2
  10. F2-R10acceptedMUST

    The catalogue MUST be versioned with the manifests that declare its services: a bundled service's first-party plugin manifest, pinned by the bundle, or a stack manifest.

    locked by
    0.15.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/outbound/theirs.rs
    recorded done
    lemonfiber-media-stackstack.tomlscripts/manifest_rules.py::validate_versions
    cited by
    lemonfiber@759f65d1delemonfiber@468091e1dclemonfiber@ecd8ed52b2lemonfiber-media-stack@2990d0e4bclemonfiber-media-stack@c87a625a1c
  11. F2-R11acceptedMUST

    An unknown service MUST be displayed with an unknown description rather than hidden.

    locked by
    0.15.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/docker.rscrates/lemonfiber-core/src/model/catalogue.rscrates/lemonfiber/src/render/catalogue.rscrates/lemonfiber/src/render/stack.rs.docs/architecture/surface-parity.md
    cited by
    lemonfiber@be01322365lemonfiber@ecd8ed52b2
  12. F2-R12acceptedMUST

    An upstream licence change away from OSI approval MUST disqualify the service at pin-bump time.

    locked by
    0.15.0 met
    recorded done
    lemonfibercontract/web-api/index.jsoncrates/lemonfiber-api/src/read.rscrates/lemonfiber-core/src/app.rscrates/lemonfiber-core/src/app/command.rs
    recorded done
    lemonfiber-media-stackscripts/check_licences.py
    cited by
    lemonfiber@be01322365lemonfiber@ecd8ed52b2lemonfiber-media-stack@7f829aefcalemonfiber-media-stack@c87a625a1c
  13. F2-R13acceptedMUST

    Removal of a service MUST record the reason and any replacement.

    locked by
    0.15.0 met
    recorded done
    lemonfibercrates/lemonfiber-manifest/src/schema.rscrates/lemonfiber-manifest/src/validate.rscrates/lemonfiber-manifest/src/lib.rs
    recorded done
    lemonfiber-media-stackscripts/manifest_rules.py::validate_removalsscripts/test_validate_manifest.py::missing required field 'reason'
    cited by
    lemonfiber@be01322365lemonfiber@ecd8ed52b2lemonfiber-media-stack@c87a625a1c
  14. F2-R14acceptedMUST

    Each bundled service MUST have its last upstream release date recorded in the bundle beside its pin, kept by the reviewers who move the pin and refreshed whenever they move it; a stack manifest's service MUST record its own.

    locked by
    0.15.0 met
    recorded done
    lemonfibercontract/web-api/index.jsoncrates/lemonfiber-api/src/read.rscrates/lemonfiber-core/src/app.rscrates/lemonfiber-core/src/app/command.rs
    recorded done
    lemonfiber-media-stackscripts/check_releases.pyscripts/test_validate_manifest.py::missing required field 'last_release'
    cited by
    lemonfiber@be01322365lemonfiber@ecd8ed52b2lemonfiber@ce320dfaf0lemonfiber@6fdbc37e4elemonfiber-media-stack@a1d36db369lemonfiber-media-stack@57c78154bclemonfiber-media-stack@65fab1ba41lemonfiber-media-stack@ec253d72fclemonfiber-media-stack@67e7c43d66lemonfiber-media-stack@097228ff2alemonfiber-media-stack@fd952d6ed2lemonfiber-media-stack@f04d3f9ef6lemonfiber-media-stack@c1c758093dlemonfiber-media-stack@20702c4ddelemonfiber-media-stack@e071c636d5lemonfiber-media-stack@ad12175c11lemonfiber-media-stack@6bc02c5ea7lemonfiber-media-stack@4f40f42d53lemonfiber-media-stack@72249f5540lemonfiber-media-stack@229331955flemonfiber-media-stack@06d9b5cf6flemonfiber-media-stack@422ec85ed2lemonfiber-media-stack@5298e9b285lemonfiber-media-stack@4fc654fe88lemonfiber-media-stack@091492c9c1lemonfiber-media-stack@232a2ba48dlemonfiber-media-stack@7b9b03b746lemonfiber-media-stack@e275151608lemonfiber-media-stack@60ec00fb53lemonfiber-media-stack@605acfd884lemonfiber-media-stack@216c0f1dbelemonfiber-media-stack@57de36ff7flemonfiber-media-stack@623aa15c3clemonfiber-media-stack@b60ea04572lemonfiber-media-stack@02407bd4dflemonfiber-media-stack@23678bee21lemonfiber-media-stack@c87a625a1clemonfiber-media-stack@45b5545b95
  15. F2-R15acceptedMUST

    A candidate service's maintenance status MUST be established from its commit and release history, never from its own self-description.

    locked by
    0.15.0 met
    recorded done
    lemonfibercontract/web-api/index.jsoncrates/lemonfiber-api/src/read.rscrates/lemonfiber-core/src/app.rscrates/lemonfiber-core/src/app/command.rs
    recorded done
    lemonfiber-media-stackscripts/check_candidate.py
    cited by
    lemonfiber@be01322365lemonfiber@ecd8ed52b2lemonfiber-media-stack@ed18a0cd14lemonfiber-media-stack@c87a625a1c