🤖 Generated by the Daily AI Engineer (Codex instance)
Evidence
At cde05878304d77df263679ca17653dc25ff7573b, actionlint reports four findings in .github/workflows/bootstrap.yaml:
vars.GITHUB_APP_CLIENT_ID uses the reserved GITHUB_ prefix.
- The three generated-secret assignments mask
openssl failures behind export (SC2155).
The bootstrap contract also requires secrets.GITHUB_APP_CLIENT_SECRET. GitHub forbids the GITHUB_ prefix for both configuration variables and Actions secrets, so neither documented SSO credential can be created as named.
GitHub resolves unset vars and secrets references to empty strings. The workflow then writes those empty values into both local and production bootstrap payloads, leaving Dex without usable GitHub connector credentials.
A Bash negative control replacing openssl with a command that exits 7 still continued under set -euo pipefail and produced three zero-length secret values, confirming that the current export VAR="$(openssl ...)" form fails open.
The Bootstrap workflow has no recorded runs, so this is static analysis plus an executed negative control rather than an observed live failure. No matching report exists among the repository's issues or pull requests.
Impact
A new template consumer cannot configure bootstrap as documented. Dispatch may proceed with empty SSO credentials, potentially provisioning infrastructure before authentication fails and leaving a partial or unusable platform.
Expected behavior
Bootstrap accepts valid, documented SSO credential names and stops before rendering, encryption, commit-back, or provisioning whenever a required credential or generated secret is missing.
Acceptance criteria
Rough size: S.
Evidence
At
cde05878304d77df263679ca17653dc25ff7573b, actionlint reports four findings in.github/workflows/bootstrap.yaml:vars.GITHUB_APP_CLIENT_IDuses the reservedGITHUB_prefix.opensslfailures behindexport(SC2155).The bootstrap contract also requires
secrets.GITHUB_APP_CLIENT_SECRET. GitHub forbids theGITHUB_prefix for both configuration variables and Actions secrets, so neither documented SSO credential can be created as named.GitHub resolves unset
varsandsecretsreferences to empty strings. The workflow then writes those empty values into both local and production bootstrap payloads, leaving Dex without usable GitHub connector credentials.A Bash negative control replacing
opensslwith a command that exits 7 still continued underset -euo pipefailand produced three zero-length secret values, confirming that the currentexport VAR="$(openssl ...)"form fails open.The Bootstrap workflow has no recorded runs, so this is static analysis plus an executed negative control rather than an observed live failure. No matching report exists among the repository's issues or pull requests.
Impact
A new template consumer cannot configure bootstrap as documented. Dispatch may proceed with empty SSO credentials, potentially provisioning infrastructure before authentication fails and leaving a partial or unusable platform.
Expected behavior
Bootstrap accepts valid, documented SSO credential names and stops before rendering, encryption, commit-back, or provisioning whenever a required credential or generated secret is missing.
Acceptance criteria
opensslfailure terminates the step.github_app_client_idandgithub_app_client_secretunchanged.Rough size: S.