Problem Description
External teams send CSV files as SQS message bodies (generated by third-party monitoring tools). Junando currently expects a structured JSON Alert format. There is no way to onboard these teams without writing custom glue code outside the project.
Proposed Solution
Add a CSV input adapter that implements the existing `InputPort` interface. The adapter parses CSV rows into the internal `Alert` model before they reach the core use case.
- Auto-detect CSV body in SQS messages (vs JSON)
- Configurable column mapping via env vars or config (e.g. `JUNANDO_CSV_SERVICE_COL`, `JUNANDO_CSV_MESSAGE_COL`, `JUNANDO_CSV_SEVERITY_COL`)
- Falls back to JSON adapter if body is not valid CSV
- Ships as part of `@junando/worker`
Alternatives Considered
Teams could transform the CSV before sending to SQS, but that requires them to own the transformation — the opposite of what Junando promises.
Problem Description
External teams send CSV files as SQS message bodies (generated by third-party monitoring tools). Junando currently expects a structured JSON Alert format. There is no way to onboard these teams without writing custom glue code outside the project.
Proposed Solution
Add a CSV input adapter that implements the existing `InputPort` interface. The adapter parses CSV rows into the internal `Alert` model before they reach the core use case.
Alternatives Considered
Teams could transform the CSV before sending to SQS, but that requires them to own the transformation — the opposite of what Junando promises.