OWASP / OWASP/openshield

feat: Add “Dry-Run Mode” for workflows to safely simulate execution without making changes

Open
#337 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Python
Stars
57
Forks
68
Avg merge
3d 15h
Merged PRs (30d)
17

Description

What problem does this solve?

OpenShield workflows (scanning, remediation, verification, and background work) often interact with cloud resources or generate findings that may trigger remediation actions. However, there is currently no safe way to simulate a workflow end‑to‑end without making actual changes or producing persistent artifacts.

This makes it difficult for developers and contributors to:

  • test workflow logic safely,
  • validate agent decisions,
  • inspect evidence and findings generation,
  • debug remediation proposals,
  • and iterate on workflow development without impacting real environments.

A safe simulation mode would significantly improve developer experience and reduce risk during testing.

Describe the solution

I propose adding a dry_run=True mode to the workflow execution engine.

When enabled, this mode would:

  • execute the workflow normally,
  • generate evidence, findings, and proposals in memory,
  • log all agent decisions and steps,
  • but not apply any remediation actions,
  • and not write any persistent artifacts.

This allows contributors and users to safely test workflows, understand execution flow, and debug agent behavior without modifying cloud resources or producing real findings.

Alternatives considered

  • Manually mocking workflow components (too complex and inconsistent).
  • Running workflows in isolated test environments (requires cloud setup and is not accessible to all contributors).
  • Adding debug logs only (does not prevent real actions from being executed).

A built‑in dry‑run mode is the simplest, safest, and most developer‑friendly solution.

Additional context

I am interested in working on this feature and would like to take ownership of the implementation.
Please let me know if there are any preferred architectural patterns or guidelines I should follow before starting.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue does not name files or tests; start by locating the workflow execution engine and the paths that apply remediation or persist artifacts. Trace scanning, remediation, verification, and background workflows to define how dry-run state propagates. Done means workflows can execute with in-memory evidence, findings, and proposals while logging decisions without changes or persistent artifacts.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cloud, devops, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.