Skip to content

docs(2.7): downgrade on measurement; fix a recovery path that pointed at nothing - #575

Merged
swares merged 1 commit into
mainfrom
docs/2-7-downgrade-and-fix-immich-secret-path
Sep 6, 2026
Merged

docs(2.7): downgrade on measurement; fix a recovery path that pointed at nothing#575
swares merged 1 commit into
mainfrom
docs/2-7-downgrade-and-fix-immich-secret-path

Conversation

@swares

Copy link
Copy Markdown
Owner

The entry read 'offline-crackable, and the only credential for those clients'. Both halves are wrong, and it was ranked Tier 1 on that basis earlier the same day.

Not offline-crackable: the committed values are argon2id hashes at m=65536,t=3,p=4 over 256-bit random plaintexts. Measured by length without reading any value -- four at len=64 (openssl rand -hex 32) and grafana at len=44 (openssl rand -base64 32). minio/externalsecret.yaml documents the command. Not the only credential either: the plaintexts are in Vault under access control and the committed value is the digest. Storing the hash in config is Authelia's documented design.

Not migrating them: moving the hashes into Vault needs Authelia's config-templating filter, which adds a dependency and a failure mode where a templating mistake breaks SSO -- including access to Grafana and ArgoCD, the tools you would use to diagnose it. Real cost, no meaningful gain.

The one real defect, found while checking: authelia/external-secret.yaml said the immich plaintext lives at secret/lab/authelia/immich_client_secret. It has never been there -- that path holds seven keys and this is not one. The secret is at secret/lab/immich -> oidc-client-secret, following the same convention as the other four. That comment is a recovery instruction, so anyone needing to re-enter the secret would have checked the documented path, found nothing, and reasonably concluded the credential was lost. Corrected, with all five paths and measured lengths recorded in one place.

Immich having no ExternalSecret for its OIDC secret is correct rather than an omission: it keeps OIDC settings in its own Postgres via the admin UI, so there is no k8s Secret for ESO to populate. The plaintext exists in Vault and in the Immich database, which is backed up nightly.

… at nothing
The entry read 'offline-crackable, and the only credential for those clients'. Both halves are wrong, and it was ranked Tier 1 on that basis earlier the same day.
Not offline-crackable: the committed values are argon2id hashes at m=65536,t=3,p=4 over 256-bit random plaintexts. Measured by length without reading any value -- four at len=64 (openssl rand -hex 32) and grafana at len=44 (openssl rand -base64 32). minio/externalsecret.yaml documents the command. Not the only credential either: the plaintexts are in Vault under access control and the committed value is the digest. Storing the hash in config is Authelia's documented design.
Not migrating them: moving the hashes into Vault needs Authelia's config-templating filter, which adds a dependency and a failure mode where a templating mistake breaks SSO -- including access to Grafana and ArgoCD, the tools you would use to diagnose it. Real cost, no meaningful gain.
The one real defect, found while checking: authelia/external-secret.yaml said the immich plaintext lives at secret/lab/authelia/immich_client_secret. It has never been there -- that path holds seven keys and this is not one. The secret is at secret/lab/immich -> oidc-client-secret, following the same convention as the other four. That comment is a recovery instruction, so anyone needing to re-enter the secret would have checked the documented path, found nothing, and reasonably concluded the credential was lost. Corrected, with all five paths and measured lengths recorded in one place.
Immich having no ExternalSecret for its OIDC secret is correct rather than an omission: it keeps OIDC settings in its own Postgres via the admin UI, so there is no k8s Secret for ESO to populate. The plaintext exists in Vault and in the Immich database, which is backed up nightly.
@swares
swares merged commit f033ccd into mainSep 6, 2026
4 checks passed
@swares
swares deleted the docs/2-7-downgrade-and-fix-immich-secret-path branch September 6, 2026 17:04
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@swares