All versions since 0.1.0
0.1.0
As it stood at this release: the repository · the docs · the knowledge bundle · the release
Added
- A LinkML schema of the structure of the CIS Critical Security Controls, Version 8.1, at its v8.1.2 revision. It holds the Controls, the Safeguards of each, and each Safeguard’s asset class, security function and Implementation Groups, names each element by its number, and carries no text of the Center for Internet Security (CIS).
- A weekly upstream watch, which reads CIS’s pages for the pinned version and reports a newer version, a missing pinned one, a moved page or a check that could not finish.
.lokf/cis-controls.yaml, the schema’slokf adaptcopy, rooted on the Control and the Safeguard. The knowledge release attaches it asschema-<tag>-cis-controls.yaml, and tests hold its names apart from those of the Linked Open Knowledge Format (LOKF) and of nine released lmodel copies.- An example of each class and a counter-example for each constraint, held to the validator by
just test. - The repository’s Knowledge Trust Ladder (KTL) knowledge bundle and its sidecar automation, from the KTL v0.59.0 templates with the lokf floor at 0.9.0, and a knowledge website that replaces the mkdocs site.
.github/release/package-lock.json, which pins semantic-release and every package it pulls in. The release job installs from it withnpm ci, and Dependabot keeps it current.
Changed
- Classes, enums and keys carry the schema’s own prefix, so none shares a name with LOKF or another lmodel schema:
CisControls,CisControl,CisSafeguard,CisImplementationGroup,CisAssetClass,CisSecurityFunction,cis_control_idandcis_safeguard_id. The identifiers are CIS’s own numbers, such as"4"and"4.1". - The schema’s name is
cis_controls, as its file and package are, and the Python project’s name iscis-controls-linkml. PyPI publishing stays off.
Removed
- CIS’s text, from the examples and the descriptions. The CIS Controls are licensed CC BY-NC-ND 4.0, and this repository is Apache-2.0.
- The
overview,why_criticalandprocedures_and_toolsslots and the three subsets. The slots held CIS’s text, and a subset marks schema elements, not a Safeguard’s Implementation Group. - The SSSOM mappings to lmodel/nist-csf-v2 and the
iso27001:mappings. Every SSSOM row named an element that nist-csf-v2 v0.1.0 no longer has, and lmodel/iso27001 is being rewritten. - The PyPI publishing workflow and the mkdocs site and its preview. The knowledge website replaces the site.
- The unused
yamllintruntime dependency. No code imports it, and the pre-commit hook installs its own copy.
0.2.0 Latest
As it stood at this release: the repository · the docs · the knowledge bundle · the release
Added
- The edition file,
src/cis_controls/data/cis-controls-8.1.2.yaml: the 18 Controls and 153 Safeguards as oneCisControlsdocument, with each Safeguard’s asset class, security function and Implementation Groups, and a title and description for every Control and Safeguard in this project’s own words.tests/test_edition.pyholds it to the schema, to CIS’s counts and to the rules no validator checks.
Changed
- NOTICE states the position on CIS’s text: the repository carries none of it, copied or paraphrased, and describes each Control and Safeguard in its own words, written from what each requires, under the stricter reading European law allows.