source-cooperative / source-cooperative/data.source.coop

Trust GitHub Actions alongside the Source issuer

Open
#223 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
24
Forks
6
Avg merge
1h 32m
Merged PRs (30d)
1

Description

Phase 4 — First shippable milestone.

Today
CI already exchanges real GitHub Actions tokens at /.sts on every same-repo run — but by swapping the trusted issuer, never running GitHub alongside our own. AUTH_ISSUER is a single String, while AUTH_AUDIENCE is already a list.

Do

  • Trust both issuers at once.
  • Pin subjects to a repository and ref. No organization-wide wildcards.
  • Wire GitHub up as an Integration type end to end.

Done when
A workflow in an unrelated repository writes to a product using only its ambient OIDC token, with no stored secret.

Watch

  • aws-actions/configure-aws-credentials will not work: it calls GetCallerIdentity after the exchange, which is unimplemented upstream (developmentseed/multistore#126). The SDKs' built-in web-identity credential providers do work. This is the way most people will first try it, so it needs saying in the docs.
  • Config plumbing spans three environments (wrangler.toml production and staging, plus wrangler.preview.toml).

Reconcile with source-cooperative/source.coop#432 before starting — that epic covers the same ground from the source.coop side. One of the two should absorb the other.

See ADR-009.

Depends on source-cooperative/source.coop#546, source-cooperative/data.source.coop#221 and source-cooperative/data.source.coop#222.


Part of source-cooperative/source.coop#491.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading ADR-009 and reconciling this issue with source-cooperative/source.coop#432 before examining the configuration in wrangler.toml for production and staging and wrangler.preview.toml. Confirm the dependent issues are resolved, then trace the existing /.sts exchange and Integration handling. Done means both issuers are trusted with repository/ref-pinned subjects, GitHub works end to end without a stored secret, and the configure-aws-credentials limitation is documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, github-actions, rust
Domain
authentication, cloud, devops, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.