fix(auth): report safe credential inspection diagnostics #27
No reviewers
Labels
No labels
app-migration
bug
ci-cd
cluster
Documentation
duplicate
enhancement
gpu
invalid
networking
question
security
Storage
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Homelab/workflows!27
Loading…
Reference in a new issue
No description provided.
Delete branch "kiyi/credential-inspection-diagnostics"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Actual credential inspection run #77 stopped with only “Automatic credential issuance failed; deployment stopped.” The generic handler discarded the reason before any diagnostic claims were emitted, so the existing log cannot establish the root cause.
Add fixed, reviewed diagnostics for missing/empty OIDC configuration, endpoint-origin mismatch, HTTPS requirements, redirects, HTTP rejection, TLS/connectivity failures, invalid JSON, oversized responses and invalid token shape. Keep unknown validation errors generic. Never print variable values, request URLs, response bodies or arbitrary exception text. Reject non-object JWT payloads before attempting to use claims.
This is shared functionality for all app callers. Inspection still contacts Forgejo only and cannot issue OpenBao/Kubernetes credentials or deploy an app. Existing origin, TLS and permission checks remain enforced.
Validation: all 92 tests passed in WSL, including six new diagnostic tests covering missing variables, rejected origins, response shapes, transport failures, secret non-disclosure and successful inspection without deployment. The Windows full-suite attempt hit temporary-file permission failures; Linux validation passed. git diff --check passed.
Evidence: https://git.gitchegumi.com/Homelab/actual-budget/actions/runs/77/jobs/1/attempt/1
Related: #19. After merge, release a patch version and update the Actual caller pins before rerunning inspection. This improves diagnosis; it does not claim to fix the still-unknown runtime cause of run #77.