Skip to content

Standalone dev mint server (no GCP required) #1963

Description

@ggallen

Problem

Evaluating fullsend requires provisioning GCP infrastructure (Cloud Functions, Secret Manager, WIF) before the platform can be tested. This creates a significant barrier to adoption — teams cannot try fullsend without first committing to a cloud provider.

Solution

Add a standalone development token mint (fullsend mint run) that replaces GCP infrastructure with local equivalents:

  • Secret Manager → disk: PEM files stored in a local data directory
  • WIF → JWKS: OIDC tokens verified directly via GitHub's JWKS endpoint
  • Cloud Functions → HTTP server: Plain HTTP server on localhost, optionally exposed via cloudflared tunnel

Security trade-offs

  • OIDC verification is enabled by default; --insecure-no-auth is available for local-only testing and cannot be combined with --tunnel
  • Permissive workflow defaults (*) are an accepted risk for short-lived development use; --allowed-workflows provides tighter controls
  • PEM files are stored unencrypted on disk, protected by filesystem permissions

Acceptance criteria

  • fullsend mint run --data-dir <dir> starts a local mint that serves real GitHub App installation tokens
  • fullsend admin install --skip-mint-check --mint-url http://localhost:8321 --mint-data-dir <dir> writes PEMs to disk
  • Optional --tunnel flag creates a cloudflared quick tunnel for GitHub Actions access
  • OIDC verification works without GCP (direct JWKS validation)
  • Documentation covers setup, security model, and limitations

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

component/installCLI install and app setupcomponent/mintToken mint and cross-boundary credentialsfeatureFeature-category issue awaiting human prioritizationpr-openAn open PR already addresses this issuetriagedTriaged but awaiting human prioritization

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions