Secrets expiry report 2026-10 #112

Open
opened 2026-10-13 13:46:00 -04:00 by jfraeys · 1 comment
Owner

Secrets expiry report, 2026-10-13

Generated from secrets/secrets-manifest.yml; no secret value was read.

expired overdue approaching unknown documented ok
0 0 0 48 1 13
UNKNOWN (neither expired nor known safe) (48)
  • ALERTMANAGER_DISCORD_WEBHOOK_URL: rotation date not recorded (schedule: every 180d)
  • ALERTMANAGER_SLACK_WEBHOOK_URL: rotation date not recorded (schedule: every 180d)
  • AUTHELIA_IDENTITY_VALIDATION_RESET_PASSWORD_JWT_SECRET: rotation date not recorded (schedule: every 90d)
  • AUTHELIA_LDAP_SERVICE_PASSWORD: no expiry and no rotation schedule recorded
  • AUTHELIA_OIDC_FORGEJO_CLIENT_SECRET: rotation date not recorded (schedule: every 90d)
  • AUTHELIA_OIDC_GRAFANA_CLIENT_SECRET: rotation date not recorded (schedule: every 90d)
  • AUTHELIA_OIDC_HEADSCALE_CLIENT_SECRET: rotation date not recorded (schedule: every 90d)
  • AUTHELIA_OIDC_HMAC_SECRET: rotation date not recorded (schedule: every 90d)
  • AUTHELIA_OIDC_PRIVATE_KEY_PEM: rotated 2026-10-10; no expiry and no rotation schedule recorded
  • AUTHELIA_SESSION_SECRET: rotation date not recorded (schedule: every 90d)
  • AUTHELIA_SMTP_PASSWORD: rotation date not recorded (schedule: every 180d)
  • AUTHELIA_SMTP_USERNAME: rotation date not recorded (schedule: every 180d)
  • AUTHELIA_STORAGE_ENCRYPTION_KEY: no expiry and no rotation schedule recorded
  • BACKUP_HEARTBEAT_URL: no expiry and no rotation schedule recorded
  • BACKUP_RESTORE_TEST_HEARTBEAT_URL: no expiry and no rotation schedule recorded
  • BACKUP_VERIFY_HEARTBEAT_URL: no expiry and no rotation schedule recorded
  • CI_EPHEMERAL_ANSIBLE_SSH_KEY: rotated 2026-10-10; no expiry and no rotation schedule recorded
  • CI_EPHEMERAL_FORGEJO_REPO_TOKEN: rotation date not recorded (schedule: every 90d)
  • CI_EPHEMERAL_WAKEUP_SECRET: rotation date not recorded (schedule: every 90d)
  • FORGEJO_ADMIN_TOKEN: rotation date not recorded (schedule: every 90d)
  • FORGEJO_API_TOKEN: rotation date not recorded (schedule: every 90d)
  • FORGEJO_METRICS_TOKEN: rotation date not recorded (schedule: every 90d)
  • FORGEJO_RUNNER_APP_SKELETON_DEPLOY_KEY: no expiry and no rotation schedule recorded
  • FORGEJO_RUNNER_REGISTRATION_TOKEN: rotation date not recorded (schedule: every 90d)
  • GRAFANA_ADMIN_PASSWORD: rotation date not recorded (schedule: every 90d)
  • HEADSCALE_OIDC_CLIENT_SECRET: rotation date not recorded (schedule: every 90d)
  • LLDAP_ADMIN_PASSWORD: rotation date not recorded (schedule: every 90d)
  • LLDAP_JWT_SECRET: rotation date not recorded (schedule: every 90d)
  • LLDAP_KEY_SEED: rotation date not recorded (schedule: every 90d)
  • OS_PASSWORD: no expiry and no rotation schedule recorded
  • OVH_APPLICATION_SECRET: no expiry and no rotation schedule recorded
  • OVH_OBJECT_STORAGE_ACCESS_KEY_ID: rotated 2026-09-23; no expiry and no rotation schedule recorded
  • POSTFIX_SENDER_ALERTS_APIKEY: no expiry and no rotation schedule recorded
  • POSTFIX_SENDER_BOOKING_APIKEY: no expiry and no rotation schedule recorded
  • POSTFIX_SENDER_CONTACT_APIKEY: no expiry and no rotation schedule recorded
  • POSTFIX_SENDER_NOREPLY_APIKEY: no expiry and no rotation schedule recorded
  • POSTGRES_PASSWORD: no expiry and no rotation schedule recorded
  • REBOOT_ALERT_HEARTBEAT_URL: no expiry and no rotation schedule recorded
  • RESTIC_PASSWORD: rotated 2026-09-13; no expiry and no rotation schedule recorded
  • RESTIC_SECONDARY_REPOSITORY: rotated 2026-09-23; no expiry and no rotation schedule recorded
  • STAGING_SOPS_AGE_KEY: rotation date not recorded (schedule: every 365d)
  • TF_VAR_cloudflare_api_token: no expiry and no rotation schedule recorded
  • TF_VAR_desec_api_token: no expiry and no rotation schedule recorded
  • TF_VAR_linode_token: no expiry and no rotation schedule recorded
  • TF_VAR_root_pass: no expiry and no rotation schedule recorded
  • TF_VAR_user_password: no expiry and no rotation schedule recorded
  • VAULT_DEPLOY_TOKEN: no expiry and no rotation schedule recorded
  • ZEDMAIL_API_KEY: no expiry and no rotation schedule recorded

Fix by recording expiry, rotate_every_days and rotated_at in the manifest when the provider's real values are known.

# Secrets expiry report, 2026-10-13 Generated from `secrets/secrets-manifest.yml`; no secret value was read. | expired | overdue | approaching | unknown | documented | ok | |---|---|---|---|---|---| | 0 | 0 | 0 | 48 | 1 | 13 | <details><summary>UNKNOWN (neither expired nor known safe) (48)</summary> - `ALERTMANAGER_DISCORD_WEBHOOK_URL`: rotation date not recorded (schedule: every 180d) - `ALERTMANAGER_SLACK_WEBHOOK_URL`: rotation date not recorded (schedule: every 180d) - `AUTHELIA_IDENTITY_VALIDATION_RESET_PASSWORD_JWT_SECRET`: rotation date not recorded (schedule: every 90d) - `AUTHELIA_LDAP_SERVICE_PASSWORD`: no expiry and no rotation schedule recorded - `AUTHELIA_OIDC_FORGEJO_CLIENT_SECRET`: rotation date not recorded (schedule: every 90d) - `AUTHELIA_OIDC_GRAFANA_CLIENT_SECRET`: rotation date not recorded (schedule: every 90d) - `AUTHELIA_OIDC_HEADSCALE_CLIENT_SECRET`: rotation date not recorded (schedule: every 90d) - `AUTHELIA_OIDC_HMAC_SECRET`: rotation date not recorded (schedule: every 90d) - `AUTHELIA_OIDC_PRIVATE_KEY_PEM`: rotated 2026-10-10; no expiry and no rotation schedule recorded - `AUTHELIA_SESSION_SECRET`: rotation date not recorded (schedule: every 90d) - `AUTHELIA_SMTP_PASSWORD`: rotation date not recorded (schedule: every 180d) - `AUTHELIA_SMTP_USERNAME`: rotation date not recorded (schedule: every 180d) - `AUTHELIA_STORAGE_ENCRYPTION_KEY`: no expiry and no rotation schedule recorded - `BACKUP_HEARTBEAT_URL`: no expiry and no rotation schedule recorded - `BACKUP_RESTORE_TEST_HEARTBEAT_URL`: no expiry and no rotation schedule recorded - `BACKUP_VERIFY_HEARTBEAT_URL`: no expiry and no rotation schedule recorded - `CI_EPHEMERAL_ANSIBLE_SSH_KEY`: rotated 2026-10-10; no expiry and no rotation schedule recorded - `CI_EPHEMERAL_FORGEJO_REPO_TOKEN`: rotation date not recorded (schedule: every 90d) - `CI_EPHEMERAL_WAKEUP_SECRET`: rotation date not recorded (schedule: every 90d) - `FORGEJO_ADMIN_TOKEN`: rotation date not recorded (schedule: every 90d) - `FORGEJO_API_TOKEN`: rotation date not recorded (schedule: every 90d) - `FORGEJO_METRICS_TOKEN`: rotation date not recorded (schedule: every 90d) - `FORGEJO_RUNNER_APP_SKELETON_DEPLOY_KEY`: no expiry and no rotation schedule recorded - `FORGEJO_RUNNER_REGISTRATION_TOKEN`: rotation date not recorded (schedule: every 90d) - `GRAFANA_ADMIN_PASSWORD`: rotation date not recorded (schedule: every 90d) - `HEADSCALE_OIDC_CLIENT_SECRET`: rotation date not recorded (schedule: every 90d) - `LLDAP_ADMIN_PASSWORD`: rotation date not recorded (schedule: every 90d) - `LLDAP_JWT_SECRET`: rotation date not recorded (schedule: every 90d) - `LLDAP_KEY_SEED`: rotation date not recorded (schedule: every 90d) - `OS_PASSWORD`: no expiry and no rotation schedule recorded - `OVH_APPLICATION_SECRET`: no expiry and no rotation schedule recorded - `OVH_OBJECT_STORAGE_ACCESS_KEY_ID`: rotated 2026-09-23; no expiry and no rotation schedule recorded - `POSTFIX_SENDER_ALERTS_APIKEY`: no expiry and no rotation schedule recorded - `POSTFIX_SENDER_BOOKING_APIKEY`: no expiry and no rotation schedule recorded - `POSTFIX_SENDER_CONTACT_APIKEY`: no expiry and no rotation schedule recorded - `POSTFIX_SENDER_NOREPLY_APIKEY`: no expiry and no rotation schedule recorded - `POSTGRES_PASSWORD`: no expiry and no rotation schedule recorded - `REBOOT_ALERT_HEARTBEAT_URL`: no expiry and no rotation schedule recorded - `RESTIC_PASSWORD`: rotated 2026-09-13; no expiry and no rotation schedule recorded - `RESTIC_SECONDARY_REPOSITORY`: rotated 2026-09-23; no expiry and no rotation schedule recorded - `STAGING_SOPS_AGE_KEY`: rotation date not recorded (schedule: every 365d) - `TF_VAR_cloudflare_api_token`: no expiry and no rotation schedule recorded - `TF_VAR_desec_api_token`: no expiry and no rotation schedule recorded - `TF_VAR_linode_token`: no expiry and no rotation schedule recorded - `TF_VAR_root_pass`: no expiry and no rotation schedule recorded - `TF_VAR_user_password`: no expiry and no rotation schedule recorded - `VAULT_DEPLOY_TOKEN`: no expiry and no rotation schedule recorded - `ZEDMAIL_API_KEY`: no expiry and no rotation schedule recorded </details> Fix by recording `expiry`, `rotate_every_days` and `rotated_at` in the manifest when the provider's real values are known.
Author
Owner

Next steps for this report, now tracked:

  • P8 close-out (rotation drill, triage of the unknown entries below, the AUTHELIA_OIDC_PRIVATE_KEY_PEM date mismatch: manifest says 2026-10-10, remediation register says 2026-10-13): #117
  • Vaultwarden was rotated on 2026-10-13 but not yet deployed to the host; the Bitwarden copy needs a verified re-save with the fixed script (#114): #116
  • CI_EPHEMERAL_TAILSCALE_AUTHKEY expires 2026-10-20; re-run scripts/deploy-services.sh before then: #116
  • Ansible Vault retirement waits on all of the above: #120

This issue's body is regenerated by the monthly workflow; keep follow-ups in the issues above.

Next steps for this report, now tracked: - P8 close-out (rotation drill, triage of the unknown entries below, the `AUTHELIA_OIDC_PRIVATE_KEY_PEM` date mismatch: manifest says 2026-10-10, remediation register says 2026-10-13): #117 - Vaultwarden was rotated on 2026-10-13 but not yet deployed to the host; the Bitwarden copy needs a verified re-save with the fixed script (#114): #116 - `CI_EPHEMERAL_TAILSCALE_AUTHKEY` expires 2026-10-20; re-run `scripts/deploy-services.sh` before then: #116 - Ansible Vault retirement waits on all of the above: #120 This issue's body is regenerated by the monthly workflow; keep follow-ups in the issues above.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jfraeys/infra#112
No description provided.