Add v0.5 webhook notification release tickets
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user