whiteducksoftware / whiteducksoftware/flock
[1.0] Keep private input data out of public WorkflowError artifacts
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 120
- Forks
- 14
- Avg merge
- 19h 32m
- Merged PRs (30d)
- 8
Description
Task failures currently copy str(exc) into a WorkflowError artifact without an explicit restrictive visibility policy. An exception can therefore turn a private input into a public error payload.
Scope
- Publish a content-minimal public error code and keep detailed diagnostics behind the appropriate reader permissions.
- For multiple inputs, derived diagnostics require their common permitted readership; unknown or ambiguous attribution must not broaden access.
- Cover context construction, execution and output/consumption persistence failures without losing the failure's run association.
Acceptance criteria
- A deterministic engine raises a synthetic private input value; foreign and anonymous readers cannot retrieve it from error artifacts or exposed diagnostics.
- The authorized operator can identify the failed run and inspect the permitted details.
- Mixed-visibility inputs do not widen diagnostic readership, and failure handling cannot itself publish raw exception content publicly.
Boundaries
Automatic retries, durable approvals and a new general policy framework are deferred.
References
- Parent topic: #280.
- src/flock/core/orchestrator.py
- src/flock/core/artifacts.py
- src/flock/core/visibility.py
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading src/flock/core/orchestrator.py, src/flock/core/artifacts.py, and src/flock/core/visibility.py, then trace context construction, execution, and output or consumption persistence failures. Done means public artifacts expose only a deterministic minimal error code, permitted operators retain run association and authorized details, and foreign or anonymous readers cannot retrieve private exception content, including for mixed-visibility inputs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend, security
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100