:idprefix:
:idseparator: -
ifndef::env-github[:icons: font]
ifdef::env-github[]
:status:
//:outfilesuffix: .adoc
:caution-caption: :fire:
:important-caption: :exclamation:
:note-caption: :paperclip:
:tip-caption: :bulb:
:warning-caption: :warning:
endif::[]
:uri-org: https://github.com/usnistgov
:uri-repo: {uri-org}/macos_security

= Changelog

This document provides a high-level view of the changes to the macOS Security Compliance Project.

== [Unreleased]

=== Scripts
* Add `--markdown-tree` flag to `mscp guidance` - generates a paginated Markdown directory tree (one page per rule, `NN-` ordered filenames, `index.md` per section) ready to use with Docusaurus, Starlight, MkDocs, VitePress, or any CommonMark-based static site generator. Drop the output directory into a docs folder - no post-processing required. Also included in `--all`.

=== Bug Fixes
* Fix crash in `adoc/rule.adoc.jinja` when `rule.references.hhs` is absent - rules predating the HICP framework do not carry this key.

== [mSCP 2.x] - 2025-02-28
IMPORTANT: This release is a major update and includes breaking changes. Please review the documentation before upgrading.

=== Scripts
* All scripts have been moved from individual files to a single API
* All Apple Operating Systems have been consolidated into a single API
* All document creation has been moved to a Jinja template
* Add debug and version switch to CLI
* Add markdown switch to guidance CLI
* Add generate_documents function for handleing markdown and asciidoc guidance generation
* Add render_template function for rendering Jinja templates for document generation

=== Rules
* All rules updated to support the new API
* All ios_stig rules have been modified to be just disa_stig with baseline logic to support the correct OS

=== Baselines
* All baselines updated to support the new API

=== Templates
* Created shell script Jinja templates for compliance checking
* Created markdown and asciidoc Jinja templates for guidance generation
* Created checklist Jinja templates for compliance checking
* Created local report Jinja templates for compliance checking

=== Miscellaneous
* Refactored mscp-data to support better baseline generation
* Created a mscp_data variable to store throughout the codebase

== [Sequoia, Revision 1.1] - 2024-12-16
* Rules
** Added Rules
*** os_iphone_mirroring_disable
*** os_mail_summary_disable
*** os_photos_enhanced_search_disable
*** system_settings_external_intelligence_disable
*** system_settings_external_intelligence_sign_in_disable
** Modified Rules
*** os_sleep_and_display_sleep_apple_silicon_enable
*** os_sudo_log_enforce
*** os_world_writable_library_folder_configure
*** os_password_autofill_disable
*** pwpolicy_alpha_numeric_enforce
*** pwpolicy_custom_regex_enforce
*** pwpolicy_lower_case_character_enforce.yaml
*** pwpolicy_max_lifetime_enforce
*** pwpolicy_minimum_lifetime_enforce
*** pwpolicy_history_enforce
*** pwpolicy_account_lockout_timeout_enforce
*** pwpolicy_account_lockout_enforce
*** pwpolicy_prevent_dictionary_words
*** pwpolicy_simple_sequence_disable
*** pwpolicy_special_character_enforce
*** pwpolicy_upper_case_character_enforce.yaml
*** system_settings_improve_assistive_voice_disable
** Removed Rules
*** system_settings_cd_dvd_sharing_disable
** Bug Fixes
* Baselines
** Added DISA STIG v1r1
** Added CIS Level (Draft -> Final)
** Updated CNSSI-1253

== [Sequoia, Revision 1.0] - 2024-09-12

* Rules
** Added Rules
*** os_genmoji_disable
*** os_image_generation_disable
*** os_iphone_mirroring_disable
*** os_sudo_log_enforce
*** os_writing_tools_disable
** Modified Rules
*** os_anti_virus_installed
*** os_gatekeeper_enable
*** os_ssh_fips_compliant
*** system_settings_firewall_enable
*** system_settings_firewall_stealth_mode_enable
*** system_settings_gatekeeper_identified_developers_allowed
*** system_settings_media_sharing_disabled
*** DDM Support
**** auth_pam_login_smartcard_enforce
**** auth_pam_su_smartcard_enforce
**** auth_pam_sudo_smartcard_enforce
**** auth_ssh_password_authentication_disable
**** os_external_storage_restriction
**** os_network_storage_restriction
**** os_policy_banner_ssh_enforce
**** os_sshd_channel_timeout_configure
**** os_sshd_client_alive_count_max_configure
**** os_sshd_client_alive_interval_configure
**** os_sshd_fips_compliant
**** os_sshd_login_grace_time_configure
**** os_sshd_permit_root_login_configure
**** os_sshd_unused_connection_timeout_configure
**** os_sudo_timeout_configure
**** pwpolicy_account_lockout_enforce
**** pwpolicy_account_lockout_timeout_enforce
**** pwpolicy_alpha_numeric_enforce
**** pwpolicy_custom_regex_enforce
**** pwpolicy_history_enforce
**** pwpolicy_max_lifetime_enforce
**** pwpolicy_minimum_length_enforce
**** pwpolicy_simple_sequence_disable
**** pwpolicy_special_character_enforce
** Removed Rules
*** os_firewall_log_enable
*** os_gatekeeper_rearm
*** os_safari_popups_disabled
** Bug Fixes
* Baselines
** Modified existing baselines
** Updated 800-171 to Revision 3
* Scripts
** generate_guidance
*** Support for Declarative Device Management (DDM)
*** Added support for severity
** generate_baseline
** generate_mappings
** generate_scap
*** Added support for severity
