All versions since 0.4.0
0.4.0
As it stood at this release: the repository · the docs · the knowledge bundle · the release
Changed
- The schema is rebuilt to LinkML conventions, and every data key changes. Classes carry a prefix (
InTotoStatement,SlsaPackage), and slots are snake_case attributes of their class. A statement nests its predicate as in-toto does, build parameters and component versions are lists of named values, references between classes go through identifiers, and the paper’s citations move from descriptions into comments. Data written for the old schema does not validate. - The schema is modular.
slsa_coreand one module per track or predicate sit underslsa.yaml, so an importer can take one module;docs/schema/slsa.yamlstays the merged file. .lokf/slsa.yamlis regenerated, andjust lokf-adaptandjust lokf-adapt-checkwrite and check it. The README lists the classes a concept may use as itstype.- The specification copy is exactly
docs/spec/draft/at tagv1.2:build-requirements.mdis upstream’s text again, and three pages that were not in that tree are gone.
Removed
Builderis folded intoSlsaBuildPlatform, which the specification calls the same thing;versionTaggoes with it.SlsaDocument.verifierand the other provenance fields on the root go too; the root holds attestations and entities.
0.5.0
As it stood at this release: the repository · the docs · the knowledge bundle · the release
Changed
- The knowledge site replaces the mkdocs site at the same address. It is built from
website/by the Knowledge website workflow, and the old/elements/pages redirect to/schema/.
0.5.1
As it stood at this release: the repository · the docs · the knowledge bundle · the release
Fixed
- The old mkdocs addresses still reach their pages once the website is at Knowledge Trust Ladder v0.56.0.
site.config.mjsnames them inREDIRECTSand keepsdocs/templates-linkml/off the site withDOCS.exclude, since v0.56.0 no longer readsMKDOCS. The two schema files and the whitepaper are linked on GitHub, not served by the site.
0.5.2
As it stood at this release: the repository · the docs · the knowledge bundle · the release
Security
- The sidecar copies and the skills pin are at Knowledge Trust Ladder v0.56.1. The release changed
.github/workflows/knowledge-registrar.yaml,.github/workflows/knowledge-librarian.yaml,.github/workflows/knowledge-release.yaml,.lokf/scripts/knowledge-preflight.sh,.lokf/scripts/knowledge-sync.sh,website/astro.config.mjs,website/scripts/check-links.mjs,website/scripts/config.mjs,website/scripts/markdown-ktl.mjs,website/scripts/raw-html.mjs,website/scripts/routes.mjs,website/scripts/sync.mjs,website/src/components/ConceptCard.astro,website/src/components/ConceptPreviews.astro,website/src/components/KnowledgeGraph.astro,website/src/components/Mermaid.astro,website/src/components/Neighbourhood.astro,website/src/components/TrustChart.astro,website/src/content.config.ts,website/src/pages/og/[...route].ts,website/src/styles/catalogue.cssand.github/workflows/knowledge-website.yamlhere.
0.5.3
As it stood at this release: the repository · the docs · the knowledge bundle · the release
Security
- The sidecar copies and the skills pin are at Knowledge Trust Ladder v0.56.2. The release changed
.lokf/.gitignorehere.
0.6.0
As it stood at this release: the repository · the docs · the knowledge bundle · the release
Added
- The digest set names every algorithm in-toto defines, and
additional_digestsholds any other, such as an SCS’s ownsvn_revision_id. A resource descriptor can also carry itscontent, base64-encoded, andSlsaDocumentholdscontrol_planes, the one class its root could not reach. verified_levelsand the dependency counts take an issuer’s own results beside SLSA’s, through theslsa_result_valuetype. An issuer’s own result is printable ASCII and never starts withSLSA_, in any letter case.docs/index.mdsays what each validator checks, and a test keeps the rules the schema states twice in step.
Changed
- Validation enforces the in-toto and SLSA rules the descriptions stated, and data that breaks them no longer validates. A descriptor needs a URI, a digest or its content, a digest set at least one digest, each statement subject and input attestation a digest, a VSA’s policy a URI, and build provenance its
external_parameters; a null value counts as absent. - A required list may not be empty, and a digest has its algorithm’s length.
dir_hashtakes 64 hexadecimal digits, and a SHAKE or BLAKE2 digest at least 32 bytes.
Deprecated
organization_properties: itsORG_SOURCE_values go inverified_levels, where the attestation’s JSON puts them.
Fixed
- Descriptions and comments match the v1.2 specification and the adoption study. Hermetic builds are not a Build L3 aim, an automated review is not two-party review, the storage comment names SLSA’s preferred places, and the study’s claims and sub-theme names follow the paper.
project/java/drops the 23 classes left over from the names used before 0.4.0.- The README’s KTL section gives the right reason the copy renames no key.
- codespell and typos accept
gostandintoto, and skip the KTL scripts andwebsite/package-lock.json.
0.7.0
As it stood at this release: the repository · the docs · the knowledge bundle · the release
Added
- The documentation site’s home page has a Schema button, which opens the schema’s pages.
- The build checks that
.lokf/slsa.yamlmatches the schema and.lokf/lokf.yaml. - The README says what the schema models, what shaped it and what it maps to.
Changed
- The knowledge bundle needs lokf 0.9.0, and
.lokf/slsa.yaml, the release’s schema asset, is regenerated by its releasedadapt. The slotrevisionisslsa_revisionin the copy, with its IRI unchanged, because LOKF 0.9.0 definesrevision; a host concept that writesrevisionfor an SLSA source revision renames the key.
0.7.1
As it stood at this release: the repository · the docs · the knowledge bundle · the release
Security
- The sidecar copies and the skills pin are at Knowledge Trust Ladder v0.59.0. The release changed
.github/workflows/knowledge-registrar.yaml,.github/workflows/knowledge-librarian.yaml,.github/workflows/knowledge-release.yaml,.github/workflows/knowledge-sync.yaml,.lokf/scripts/knowledge-conventions.sh,.lokf/scripts/knowledge-conventions.py,.lokf/scripts/knowledge-preflight.sh,.lokf/scripts/knowledge-apply.sh,.lokf/scripts/knowledge-apply.py,.lokf/scripts/knowledge-report.sh,.lokf/m365/ktl-docent-m365.md,website/package-lock.json,website/package.json,website/scripts/config.mjsand.github/workflows/knowledge-website.yamlhere.
0.8.0 Latest
As it stood at this release: the repository · the docs · the knowledge bundle · the release
Changed
- The in-toto layer comes from lmodel/in-toto’s core module at v0.1.0, vendored at
src/slsa/schema/in_toto/in_toto_core.yaml, and the schema’s own copy is gone. The class names stay, and the six classes and their keys take in-toto’s IRIs;media_typeandalgorithmtake the IRIs LOKF gives them. SlsaPredicateextends in-toto’sInTotoPredicate. A statement keeps itspredicatekey, which the adapt copy callsslsa_predicate, because LOKF’spredicateis a relation’s type.attestation_storage_uri,signing_toolandtransparency_log_entrymoved toSlsaStatement, a subclass ofInTotoStatementthatSlsaDocumentholds, since in-toto’s statement carries only what its specification defines.build_type,builder_idandverifier_idtake in-toto’sin_toto_type_uri, andstarted_on,finished_onandtime_verifiedtakein_toto_timestamp, the field types the SLSA specification gives them. A timestamp now ends in Z, and a type URI keeps its scheme and host in lowercase.