Add optional expiration to personal API tokens. Users pick a duration (1/7/30/60/90 days or Never) at creation time. Expired tokens are rejected by Sanctum, pruned hourly by sanctum:prune-expired, and a team notification fires ~24h before expiry so owners can rotate before API calls start failing. - ApiTokens Livewire component stores expires_at from expiresInDays - Rework issued-tokens UI from card grid to table (matches other views) - New ApiTokenExpirationWarningJob scheduled hourly (idempotent via RateLimiter) - New ApiTokenExpiringNotification (email/discord/telegram/slack/pushover) - api_token_expiring added to alwaysSendEvents so users cannot silence expiry warnings from the per-event notification toggle UI - sanctum:prune-expired cadence moved from daily to hourly Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| admin | ||
| boarding | ||
| destination | ||
| notifications | ||
| profile | ||
| project | ||
| security | ||
| server | ||
| settings | ||
| shared-variables | ||
| source/github | ||
| storage | ||
| subscription | ||
| tags | ||
| team | ||
| terminal | ||
| activity-monitor.blade.php | ||
| dashboard.blade.php | ||
| deployments-indicator.blade.php | ||
| force-password-reset.blade.php | ||
| global-search.blade.php | ||
| help.blade.php | ||
| layout-popups.blade.php | ||
| navbar-delete-team.blade.php | ||
| settings-backup.blade.php | ||
| settings-dropdown.blade.php | ||
| settings-email.blade.php | ||
| settings-oauth.blade.php | ||
| switch-team.blade.php | ||
| upgrade.blade.php | ||
| verify-email.blade.php | ||