OSS Inventory
OSS Inventory Version Truth
Scope
jhf-keystore is owner/producer for repo-local OSS inventory and upgrade readiness truth for build/runtime components required for delivery readiness.
Canonical machine-readable truth:
contracts/oss-version-inventory-readiness.jsoncontracts/oss_inventory.jsoncontracts/oss_version_truth.jsoncontracts/oss_upgrade_governance.jsoncontracts/oss_upgrade_evidence_posture.json
Canonical upstream Fabric source-of-truth consumed read-only:
contracts/platform/platform_version_truth.jsoncontracts/platform/platform_projection_catalog.jsoncontracts/platform/platform_oss_upgrade_governance_v1.jsoncontracts/platform/platform_oss_upgrade_compatibility_matrix_v1.jsoncontracts/platform/platform_oss_upgrade_evidence_contract_v1.jsoncontracts/platform/helpifyr_stack_module_identity_v1.jsoncontracts/platform/stack_tool_oss_inventory_directory.jsondocs/contracts/HELPIFYR_PLATFORM_OSS_UPGRADE_GOVERNANCE.mddocs/contracts/HELPIFYR_STACK_MODULE_IDENTITY.mddocs/contracts/HELPIFYR_STACK_TOOL_OSS_INVENTORY_DIRECTORY.md
Required Verify Lane
- Local:
python3 scripts/validate-oss-version-inventory.py --jsonbash scripts/verify-oss-version-inventory.sh
- CI:
.gitea/workflows/ci.ymlrunsbash scripts/verify-oss-version-inventory.sh
The verifier is fail-closed on missing component coverage, missing external owner classification, or source-truth drift.
The verifier is also fail-closed when required Fabric upstream surfaces are missing from the consumer contract binding or from this repo-local consumer docs.
The verifier is owner-fail-closed when required version/evidence/rollback fields are missing per component.
It also fails closed when a component lacks license metadata, when an unreviewed component is not recorded as NOASSERTION / unknown_blocked, or when a non-blocked license classification lacks component-specific evidence and an approved Fabric policy decision.
License Metadata Boundary
contracts/oss_inventory.json records three fields for every component:
licenselicense_classlicense_evidence_url
This repository does not make a legal approval, redistribution, managed-hosting, public-publication, or runtime decision. Unreviewed components remain blocked as NOASSERTION / unknown_blocked with https://anyfer.com/legal as the owner review route. A non-blocked classification requires component-specific evidence and an approved Fabric policy-decision reference.
Required Owner Fields Per Component
Each relevant component in contracts/oss_version_truth.json must define:
current_versiontarget_versionor explicittarget_postureallowed_version_rangepinning_posturecompatibility_window_refpreflight_assertion_refspostdeploy_assertion_refsrollback_contract_refevidence_contract_ref
Pinning Posture
vaultwarden/server:1.35.7remains the pinned upstream runtime base.- the example compose references
vaultwarden/server:1.35.7directly, while the hardened profile materializes the repo-builtjhf-keystore-vaultwarden:localimage fromdeploy/hasicloud-vaultwarden/Dockerfile. - components are either pinned (
pinned-exact,pinned-tag,pinned-range) or external-classified with owner issue references. latesttags are not accepted in repo-owned runtime truth unless explicitly owner-justified and documented.
Dependency Ownership
JaddaHelpifyr/helpifyr-fabric#289: stackwide Fabric contract/version catalog ownership (consumed read-only).JaddaHelpifyr/jhf-openclaw-env#209: environment-owned runtime materialization and host-level pinning policy.JaddaHelpifyr/jhf-deployment#270: deployment-owned coordinated upgrade rollout catalog.
AGPLv3. See LICENSE (LICENSE).
Learn more at helpifyr.com.