Files
distributor/docs/internal/notify.md

36 lines
1.2 KiB
Markdown

# Notify
## Purpose
`internal/notify` defines the internal notification interface used by the application runner.
## Inputs and outputs
Input is a notification event containing pipeline id, destination id, bundle id, bundle path, action, and output metadata. The interface returns an error so app orchestration can treat notification failures as destination failures.
## Current behavior
The implemented notifier is a no-op. It is invoked only after a successful publish or replacement. Dry-run, skipped destinations, and failed destinations do not invoke it.
## Failure behavior
`notify.Noop` always succeeds unless the context is already canceled. If a configured notifier returns an error, `internal/app` records that destination as failed and continues with remaining destinations.
## Boundaries
External notification adapters and user-facing notification configuration are outside current behavior.
## Tests
Before changing notification behavior, inspect:
- `internal/notify`
- `internal/app/run_test.go`
## Invariants
- Notifications are emitted only after successful publish or replacement execution.
- Dry-run never notifies.
- Skipped and failed destinations never notify.
- The default app notifier is `notify.Noop`.