coolify/app/Actions
Andras Bacsai 00d6e83e7f fix(sentinel): auto-regenerate invalid or undecryptable tokens
Replace hard validation error with self-healing token logic. Tokens that
are null, empty, or fail decryption are now regenerated automatically
rather than crashing sentinel startup or metrics reads.

Token format changed from encrypted JSON payload to a plain 64-char
random string (Str::random), eliminating double-encryption issues and
simplifying the validation regex to cover the new character set.

New `ensureValidSentinelToken()` method on ServerSetting centralises
the get-or-regenerate contract; both StartSentinel and HasMetrics now
delegate to it. HasMetrics logs a warning when regeneration occurs so
operators know a sentinel container restart is required.

`isValidSentinelToken()` now accepts `?string` (null → false).

Adds feature tests covering: null/empty/undecryptable stored values,
idempotent return of valid tokens, RuntimeException only when
regeneration itself produces an invalid token, no double-encryption of
newly generated tokens, and cast round-trip consistency.
2026-04-29 16:44:12 +02:00
..
Application fix(restart): reset restart count when resource is manually stopped 2025-12-27 15:21:19 +01:00
CoolifyTask refactor: simplify remote process chain and harden ActivityMonitor 2026-03-26 13:26:16 +01:00
Database refactor(database): escape postgres_user in SSL chown command 2026-04-20 21:41:48 +02:00
Docker chore: prepare for PR 2026-03-10 18:34:37 +01:00
Fortify fix(models): replace forceFill/forceCreate with fill/create and add fillable guards 2026-03-31 13:45:31 +02:00
Proxy feat(proxy): validate stored config matches current proxy type 2026-03-24 21:32:34 +01:00
Server fix(sentinel): auto-regenerate invalid or undecryptable tokens 2026-04-29 16:44:12 +02:00
Service fix: add validation and escaping for Docker network names 2026-03-28 12:28:59 +01:00
Shared
Stripe feat(subscription): add billing interval to price preview 2026-03-27 19:05:13 +01:00
User