Skip to content

fix: mask GCP credential paths and migrate app-id to client-id - #318

Merged
ralphbean merged 3 commits into
mainfrom
fix-cred-mask-and-app-id
Apr 22, 2026
Merged

fix: mask GCP credential paths and migrate app-id to client-id#318
ralphbean merged 3 commits into
mainfrom
fix-cred-mask-and-app-id

Conversation

@waynesun09

Copy link
Copy Markdown
Member

Summary

  • Mask GCP credential file paths (GOOGLE_GHA_CREDS_PATH, GOOGLE_APPLICATION_CREDENTIALS, CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE) in all agent workflow logs using ::add-mask:: after google-github-actions/auth@v3
  • Migrate from deprecated app-id to client-id input in actions/create-github-app-token@v3 across all scaffold workflows
  • Update Go admin install flow to store the GitHub App Client ID (Iv23_... string) instead of the numeric App ID, with a new GetAppClientID forge method for existing app reuse

Motivation

  • Observed in job run: credential file paths with hashes were visible in "Run agent" and "Cleanup" step logs
  • actions/create-github-app-token@v3.1.0 deprecated the app-id input in favor of client-id (2026-04-11); the numeric App ID still works today but GitHub may stop accepting it as a JWT issuer in the future

Breaking changes

  • Repository variable renamed: FULLSEND_<ROLE>_APP_IDFULLSEND_<ROLE>_CLIENT_ID
  • Existing installations need a re-run of fullsend admin install to create the new CLIENT_ID variables (not yet rolled out to production)

Test plan

  • go vet ./... passes
  • go test ./... — all unit tests pass (layers, appsetup, forge, scaffold, cli)
  • make lint passes
  • E2E: run fullsend admin install on a test org to verify Client ID is stored correctly
  • E2E: trigger a workflow run and confirm credential paths are masked in logs

The google-github-actions/auth action exposes credential file paths
(GOOGLE_GHA_CREDS_PATH, GOOGLE_APPLICATION_CREDENTIALS, etc.) in job
logs. Add ::add-mask:: steps after GCP auth in all agent workflows.

Migrate from deprecated app-id input to client-id in
actions/create-github-app-token@v3. This changes the stored variable
from FULLSEND_<ROLE>_APP_ID (numeric) to FULLSEND_<ROLE>_CLIENT_ID
(GitHub App Client ID string). Adds GetAppClientID to forge interface
so existing app reuse can look up the Client ID.

Existing installations need a re-run of fullsend admin install to
create the new CLIENT_ID variables.

Signed-off-by: Wayne Sun <gsun@redhat.com>
@github-actions

github-actions Bot commented Apr 21, 2026

Copy link
Copy Markdown

Site preview

Preview: https://7aec77d9-site.fullsend-ai.workers.dev

Commit: 6e60e348fb3e20fa87b66bfdca8421ef6d29012d

Signed-off-by: Wayne Sun <gsun@redhat.com>
Address review findings:

- GetAppClientID now returns an error if the API response lacks a
  client_id field instead of silently returning an empty string
- Add test for GetAppClientID error path in handleExistingApp
- Add FakeClient.GetAppClientID tests (found, not found, error injection)
- Update 7 docs (SPECs, ADRs, plans) from APP_ID to CLIENT_ID per
  GitHub's official recommendation to use Client ID as the canonical
  app identifier

Signed-off-by: Wayne Sun <gsun@redhat.com>
@ralphbean
ralphbean added this pull request to the merge queue Apr 22, 2026
Merged via the queue into main with commit 5b6bdc8 Apr 22, 2026
3 checks passed
@ralphbean
ralphbean deleted the fix-cred-mask-and-app-id branch April 22, 2026 11:49
Sign up for free to 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.

3 participants