coolify/resources/views/livewire
Andras Bacsai 90ddbb3572 feat(security): support expiration on API tokens with warning notifications
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>
2026-04-20 14:28:38 +02:00
..
admin
boarding
destination chore(swarm): mark docker swarm as deprecated 2026-04-17 23:41:39 +02:00
notifications fix(ui): improve responsive project headings and controls 2026-04-09 19:51:31 +02:00
profile
project style(database): wrap public port inputs in flex-col gap-2 container 2026-04-20 13:17:15 +02:00
security feat(security): support expiration on API tokens with warning notifications 2026-04-20 14:28:38 +02:00
server chore(swarm): mark docker swarm as deprecated 2026-04-17 23:41:39 +02:00
settings
shared-variables feat(forms): make textarea monospace opt-in and improve multiline toggle 2026-03-31 15:37:42 +02:00
source/github fix(ui): improve responsive project headings and controls 2026-04-09 19:51:31 +02:00
storage
subscription
tags
team
terminal
activity-monitor.blade.php fix(database): refresh SSL/status state and harden clone writes 2026-03-31 09:29:36 +02:00
dashboard.blade.php fix(ui): make dashboard add buttons visible in light mode 2026-04-06 15:09:54 -04:00
deployments-indicator.blade.php
force-password-reset.blade.php
global-search.blade.php Resolve remaining merge conflicts 2026-04-14 11:14:22 +02:00
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