63 lines
2.5 KiB
Markdown
63 lines
2.5 KiB
Markdown
# 01 Notification Action Foundation
|
|
|
|
Implementation guide: [Ticket Implementation Guide](../ticket-implementation-guide.md)
|
|
|
|
## Branch
|
|
|
|
`codex/v0.5-webhook-notification/01-notification-action-foundation`
|
|
|
|
Start this branch from the chosen release base branch.
|
|
|
|
## Goal
|
|
|
|
Create the backend foundation for project-scoped notification actions and delivery logs.
|
|
|
|
## Requirements
|
|
|
|
- Add database tables for configured notification actions and delivery attempts.
|
|
- Add models, factories, resources, enums, and reusable actions or services for notification action management.
|
|
- A notification action belongs to a project.
|
|
- A notification action has a name, enabled flag, event type, channel, channel configuration, optional message template, and secret delivery URL.
|
|
- Supported event type for this release: `ticket_status_changed`.
|
|
- Supported channels for this release: `webhook` and `discord`.
|
|
- Store webhook and Discord URLs encrypted and hide them from serialized model/resource output.
|
|
- Add delivery logs that can record action, event type, channel, delivery status, attempt count, HTTP status, response or error excerpt, payload metadata, and timestamps.
|
|
- Keep the schema extensible for later event types and channels.
|
|
|
|
## Acceptance Criteria
|
|
|
|
- Notification action records can be created, updated, listed, and deleted through backend actions or services.
|
|
- Secret URLs are encrypted at rest and are not exposed by resources.
|
|
- Delivery log records can represent pending, succeeded, failed, and retryable attempts.
|
|
- The foundation does not dispatch external HTTP requests yet.
|
|
- Existing ticket, project, API, and MCP behavior is unchanged.
|
|
|
|
## Tests
|
|
|
|
- Model tests for relationships, casts, enum handling, and hidden secret URL output.
|
|
- Factory tests or feature-backed assertions proving webhook and Discord action records can be created.
|
|
- Action/service tests for create, update, delete, and project ownership behavior.
|
|
- Delivery log tests for supported statuses and relationship integrity.
|
|
|
|
## Verification
|
|
|
|
- `vendor/bin/pint --dirty --format agent`
|
|
- `php artisan test --compact tests/Feature/Models tests/Feature/Notifications`
|
|
- `git diff --check`
|
|
|
|
## Commit And Push
|
|
|
|
- Commit only this ticket's changes.
|
|
- Push with `git push origin codex/v0.5-webhook-notification/01-notification-action-foundation`.
|
|
|
|
## Out of Scope
|
|
|
|
- Project settings UI
|
|
- Ticket status changed event dispatch
|
|
- Actual webhook or Discord HTTP delivery
|
|
- User bell notifications
|
|
- Unread counters
|
|
- Slack, Teams, email, or other channels
|
|
- Incoming webhooks
|
|
- API or MCP management endpoints
|