Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Unattended refresh: exchange an API key without a browser and keep the token file fresh

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

Maintainers usually reply within 1 day

@alukach is already working on this.

Since Sep 25, 2026.

  • #20 by @alukach — open

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
68/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active
Tech stack
rust

Research direction

Start with expiry handling in src/main.rs and the STS request construction in src/sts.rs, especially append_pair("WebIdentityToken", …). Trace the existing credential exchange and the proxy's form-encoded /.sts path, including the dependency on source-cooperative/source.coop#548. Done means a daemon can refresh AWS_WEB_IDENTITY_TOKEN_FILE from an API key without a browser, and the token is absent from request URLs.

Written by the indexing model from the issue text.

Description

Phase 5 — API keys.

Today
The CLI caches credentials and checks their expiry — and when they have expired it stops: Cached credentials have expired. Run 'source-coop login' to refresh. (src/main.rs). That is interactive, so nothing keeps a token file fresh for a daemon.

The CLI also sends the token as a URL query parameter (src/sts.rs, append_pair("WebIdentityToken", …)), so bearer tokens land in access logs.

Do

  • Add a mode that reads an API key, exchanges it at /.sts without a browser, and keeps AWS_WEB_IDENTITY_TOKEN_FILE fresh.
  • Send the token in the request body. The proxy already accepts form-encoded bodies, so this is CLI-only.

Done when
A daemon holding a key and no browser runs across a credential expiry, and the token never appears in a request URL.

Depends on source-cooperative/source.coop#548.


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

Dominant language
Rust
Stars
1
Forks
0
Avg merge
18h 52m
Merged PRs (30d)
19

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

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.

More from source-cooperative/source-coop-cli

All issues in source-cooperative/source-coop-cli

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.