Files
KanbanGit/docs/releases/v0.5-webhook-notification/02-project-notification-settings-ui.md
T

2.5 KiB

02 Project Notification Settings UI

Implementation guide: Ticket Implementation Guide

Branch

codex/v0.5-webhook-notification/02-project-notification-settings-ui

Start this branch from codex/v0.5-webhook-notification/01-notification-action-foundation.

Goal

Add project settings UI for managing notification actions.

Requirements

  • Add a project settings page at projects/{project}/settings/notifications.
  • Add a settings navigation link alongside general, board, ticket, and repository settings.
  • Project admins can list, create, update, enable, disable, and delete project notification actions.
  • The create and update forms support:
    • name
    • event type
    • channel
    • enabled flag
    • delivery URL
    • message template for Discord
  • Existing secret URLs stay hidden after save.
  • Updating an action only replaces the secret URL when a new URL is submitted.
  • Show the fixed template variables in the UI: $url, $ticket_key, $ticket_title, $project_name, $status_from, $status_to, and $actor_name.
  • Add frontend types under resources/js/types.
  • Generate Wayfinder output for the new routes and controller methods.

Acceptance Criteria

  • Project admins can manage notification actions from project settings.
  • Non-admin project users cannot access the notification settings page or mutate notification actions.
  • Validation errors are shown next to the relevant form fields.
  • Saved notification actions show their name, event type, channel, enabled state, and created or updated date without exposing the secret URL.
  • Existing project settings pages continue to work.

Tests

  • Feature tests for page access, create, update, enable/disable, delete, validation, and authorization.
  • Inertia prop assertions for the notification action list and template variable metadata.
  • Regression test that secret URLs are not rendered back in page props.

Verification

  • php artisan wayfinder:generate --with-form --no-interaction
  • vendor/bin/pint --dirty --format agent
  • php artisan test --compact tests/Feature/Projects
  • npm run types:check
  • git diff --check

Commit And Push

  • Commit only this ticket's changes.
  • Push with git push origin codex/v0.5-webhook-notification/02-project-notification-settings-ui.

Out of Scope

  • Ticket status changed event dispatch
  • Actual webhook or Discord HTTP delivery
  • Delivery attempt screens
  • User bell notifications
  • Unread counters
  • Slack, Teams, email, or other channels
  • Incoming webhooks
  • API or MCP management endpoints