Workflows: attach stored files to the Email action
- Dominant language
- C#
- Stars
- 6
- Forks
- 7
- Avg merge
- 4h 42m
- Merged PRs (30d)
- 307
Description
Found by simulating a Claude Code build of Color Me Fun 2026 through the barako CLI (epic #801) on 14 September 2026; the event registration app for the Rotary Club of Koronadal is the acceptance test. Simulation page: https://claude.ai/code/artifact/05afda1a-6461-431d-aff0-50b30d3b0778
The Email action takes `To`, `Subject` and `Body` and nothing else. A confirmation that carries a claim stub, a donation receipt or an invoice has to be a link the recipient opens later, and some recipients need the file itself.
## Change
An optional `Attachments` parameter naming stored files: a file field on the triggering entry (`{{data.Receipt}}`), or a document generated by #585 once it exists. Size and count are capped, only files the workflow's entry owns can be attached, and the provider (SMTP or Resend) sends them as real attachments.
## Done when
- A workflow on a confirmed registration emails a stored PDF as an attachment through both email modules.
- A reference to a file that belongs to another entry is refused on the run.
## Where it lives
Core: the `Email` action. Stored files are reached through a file store interface the core exposes, which the Files module implements; the core must not reference the Files module.
Contributor guide
Research direction
Start at the core Email action and trace the file store interface exposed by core, then inspect the Files module implementation and both SMTP and Resend email modules. Use the confirmed registration scenario as the acceptance test: a stored PDF is delivered through both providers, while a file owned by another entry is refused at runtime.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100