Conversation
…cument-trust-boundaries-and-secure-defaults-for-host-provided-extension-points
…-defaults-for-host-provided-extension-points' of https://github.com/blindzero/IdentityLifecycleEngine into issues/24-Security-document-trust-boundaries-and-secure-defaults-for-host-provided-extension-points
8 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #24
Summary
This PR documents and enforces clear trust boundaries for IdLE and introduces secure-by-default guards around host-provided extension points and data inputs.
The main goal is to make the engine deterministic and safer by ensuring that workflow/request data stays data-only, while extension points remain explicit and validated.
What changed
Added/updated documentation describing:
ScriptBlocks are rejected in engine data paths:
Step handler resolution is hardened:
Execution path was aligned to the new contract:
Updated Pester tests to match the hardened behavior:
Breaking / behavioral changes
Why this is the right default
ScriptBlocks in “data” effectively mean “execute code from configuration”.
Enforcing data-only inputs keeps IdLE portable, testable, and predictable across hosts.
Clear separation between data and code makes future security reviews and extension work much easier.
How to test
Notes for reviewers
Please focus review on: