coolify/app/Http/Middleware
Andras Bacsai a2096c6f68 feat(observability): add structured audit log channel for API and webhook events
Introduce a dedicated `audit` log channel (daily rotation, configurable retention via
LOG_AUDIT_DAYS) and a small `auditLog()` / `auditLogWebhookFailure()` helper used to
record state-changing API operations and webhook events.

Instrumented:

- API mutation endpoints (create / update / delete / start / stop / restart) across
  applications, services, databases (incl. backups, env vars, storage), servers,
  projects + environments, scheduled tasks, private keys, GitHub apps, cloud provider
  tokens, Hetzner server provisioning, instance enable/disable.
- Webhook signature verification outcomes for GitHub, GitLab, Bitbucket, Gitea and
  Stripe, plus the Sentinel push endpoint.
- Authentication and authorization outcomes via the global exception handler and
  the `ApiAbility` middleware (unauthenticated, ability-denied, policy-denied).

The helper is wrapped in try/catch so logging failures never affect the request
path. Successful operations log at `info`; suspicious/denied requests log at
`warning`. Operators wanting a failures-only feed can set `LOG_AUDIT_LEVEL=warning`.

Includes a feature test suite covering the helper, the webhook providers and the
new auth/authorization log paths.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-28 14:50:37 +02:00
..
ApiAbility.php feat(observability): add structured audit log channel for API and webhook events 2026-04-28 14:50:37 +02:00
ApiAllowed.php refactor(dns-validation): rename DNS validation functions for consistency and clarity, and remove unused code 2025-09-09 09:00:35 +02:00
ApiSensitiveData.php fix: root + read:sensive could read senstive data with a middlewarew 2024-12-09 11:10:35 +01:00
Authenticate.php init of v4 🌮 2023-03-17 15:33:48 +01:00
CanAccessTerminal.php refactor(auth): simplify access control logic in CanAccessTerminal and ServerPolicy by allowing all users to perform actions 2025-08-28 10:48:24 +02:00
CanCreateResources.php feat(acl): Change views/backend code to able to use proper ACL's later on. Currently it is not enabled. 2025-08-26 10:27:38 +02:00
CanUpdateResource.php feat(acl): Change views/backend code to able to use proper ACL's later on. Currently it is not enabled. 2025-08-26 10:27:38 +02:00
CheckForcePasswordReset.php chore: prepare for PR 2026-02-24 10:17:16 +01:00
DecideWhatToDoWithUser.php fix(team): improve team retrieval and session handling for users 2025-12-28 14:50:59 +01:00
EncryptCookies.php init of v4 🌮 2023-03-17 15:33:48 +01:00
PreventRequestsDuringMaintenance.php Fix styling 2024-06-10 20:43:34 +00:00
RedirectIfAuthenticated.php Fix styling 2024-06-10 20:43:34 +00:00
TrimStrings.php init of v4 🌮 2023-03-17 15:33:48 +01:00
TrustHosts.php fix(subscription): harden quantity updates and proxy trust behavior 2026-03-03 12:28:16 +01:00
TrustProxies.php fix(subscription): harden quantity updates and proxy trust behavior 2026-03-03 12:28:16 +01:00
ValidateSignature.php init of v4 🌮 2023-03-17 15:33:48 +01:00
VerifyCsrfToken.php fix(webhooks): exclude webhook routes from CSRF protection (#6200) 2025-07-18 19:04:08 +02:00