From 03dc467e32a9ada342f8ef4b8a0555252af25725 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Mon, 22 Jun 2026 10:09:31 +1000 Subject: [PATCH] Updates to DEVELOPMENT.md re: manifest and validate --- DEVELOPMENT.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index adceb19..f4c74fd 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -788,6 +788,9 @@ SOPS mode: The renderers do not know about SOPS. +Note: Manifest deliberately hooks into validate() to make sure the harvest meets the schema and +doesn't contain dangerous tamperings before turning it into config management code. + --- ## 12. The renderer-neutral `CMModule` model @@ -1380,11 +1383,14 @@ This is intended to answer “what did Enroll collect and why?” 4. every `managed_file.src_rel` points to an artifact file, 5. firewall runtime generated artifacts exist, 6. there are no unreferenced artifact files, reported as warnings. +7. there are no malicious or unsafe bits such as symlinks/hardlinks etc traversing out of the artifact tree It returns a `ValidationResult` with `errors`, `warnings`, `ok()`, `to_dict()`, and `to_text()`. The CLI supports local schema override with `--schema`, warning failure with `--fail-on-warnings`, JSON/text output, and `--out`. +Note that manifest() hooks into validate() to make sure the harvest is safe before rendering it into config management code. + --- ## 19. Remote harvesting