Skip to content

feat(github-app): use ssm manifest for extra apps - #5282

Open
guicaulada wants to merge 2 commits into
mainfrom
gc/feat/github-apps-manifest
Open

feat(github-app): use ssm manifest for extra apps#5282
guicaulada wants to merge 2 commits into
mainfrom
gc/feat/github-apps-manifest

Conversation

@guicaulada

@guicaulada guicaulada commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Description

Follow-up to #5269, as promised in the #5038 review (items 1, 3, 4, and 5). We run this design in production.

  • Deliver additional GitHub App credentials via an SSM manifest parameter instead of colon-joined parameter names in the lambda environment. Lambda's total environment limit is 4 KB, which the colon-joined lists hit at roughly 15–20 apps with typical parameter paths; the manifest keeps the environment constant regardless of app count (Intelligent-Tiering covers manifests beyond the 4 KB standard parameter tier).
  • Removes the positional list alignment between id/key/installation-id parameter names, which could silently shift installation ids across apps if the lists drifted.
  • Rate-limit metric reads app ids from already-loaded credentials (getLoadedAppId) instead of re-reading SSM per app index; out-of-range indexes no longer throw inside the swallowed catch.
  • Documents that additional apps must be installed on the same orgs/repos as the primary app, in a new "Distributing load across multiple GitHub Apps" section of the rate-limits guide.

Internal contract only: Terraform and the lambdas deploy together, so the env transport change is invisible to module users. additional_github_apps is unchanged.

Test Plan

  • control-plane: 346 tests passed, including rewritten manifest-based credential loading tests.
  • terraform fmt/validate clean on root, runners, multi-runner, ssm; terraform test in modules/runners passes.
  • ESLint + Prettier clean; READMEs regenerated with terraform-docs.

Related Issues

Follow-up to #5269 / #5038.

guicaulada and others added 2 commits August 19, 2026 14:54
Deliver additional GitHub App credentials to the lambdas through a
manifest SSM parameter listing the per-app credential parameter names,
instead of colon-joined parameter names in the environment. The lambda
environment size stays constant regardless of app count, avoiding the
4 KB Lambda environment limit (roughly 15-20 apps with typical paths).

The manifest also removes the positional alignment between the id, key,
and installation-id lists, which could silently shift installation ids
across apps if the lists drifted.

The rate-limit metric now reads app ids from the credentials already
loaded by the auth module instead of re-reading SSM per app index.

Document that additional apps must be installed on the same
organizations or repositories as the primary app.
@guicaulada
guicaulada requested review from a team as code owners August 19, 2026 18:01
@github-actions

Copy link
Copy Markdown
Contributor

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

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.

1 participant