Repository navigation
0.9.0
0.9.0 — Rule review dates and ATT&CK 1.1
5 October 2026. Minor on 0.8.2.
Upgrade and regenerate schemas with opentide generate so rule::1.1 can record metadata.reviewed and technique and logsource checks use att&ck::1.1 and datasources::1.1. opentide rules unreviewed lists rules with no review, or a review older than the window. It does not require regenerating CI.
Install
pip install opentide==0.9.0
export OPENTIDE_REPO_ROOT=/path/to/detection-repo
opentide validate --strictRegenerate editor schemas and templates with opentide generate. rule::1.0 still rejects metadata.reviewed.
Added
rule::1.1accepts optionalmetadata.reviewed(ISO 8601 date or datetime).rule::1.0, threats, and objectives still reject the field. Validate, deploy, share, and template generation do not write it (#437, #438).opentide rules unreviewed --older-than 90d(also12h,30m, or a bare positive day count) listsrule::1.0asschema, arule::1.1with no review asabsent, and a review strictly earlier than now minus the window asstale. A review equal to the window boundary is fresh. Exit code is 0 when the window parses (#437).
Changed
- Technique pins are
att&ck::1.1on threats, objectives,rule::1.0, andrule::1.1. Objective logsources pindatasources::1.1. Bundled ATT&CK, groups, datasources, and mitigations match upstream 19.2 (#392, #445). orjson3.12.0 (#443),azure-identity1.26.0 (#444), andmcp1.30.0 inside the existing<2pin (#442). Transitiveoauthlib4.0.0,urllib32.8.0, andvirtualenv21.14.5 (#435).
Fixed
- CrowdStrike auth no longer logs the token response. Defender no longer logs the bearer token or a client-secret prefix (#441).
share pushpublishes a retracted object again. A matching content hash skips the push only when the ledger line issynced(#385).- Deploy commit loading records the immediate parent, so a deep history no longer raises
RecursionErrorduring the diff (#369).
Verify
python -c "import opentide; print(opentide.__version__)"
opentide rules unreviewed --helpExpect 0.9.0.