Skip to content

chore: finish the OAuth sweep across the demo loop - #9

Merged
jfrench9 merged 1 commit into
mainfrom
chore/oauth-connector-sweep
Aug 31, 2026
Merged

jfrench9 merged 1 commit into
mainfrom
chore/oauth-connector-sweep

Conversation

@jfrench9

Copy link
Copy Markdown
Member

What

The ?token= retirement landed in the code (#7) but left stale copy behind it. This finishes the sweep and moves two hand-rolled calls onto the SDK.

Stale copy fixed

  • .github/workflows/run.yml — the header comment told operators to "generate the connector URL from the app's Connect page". There is no connector URL any more, and that page mints a header key. The step also passed --no-connector, which has been a suppressed no-op since not-minting became the default.
  • README / justfile / package docstring — all still called the handoff a "connector URL".

The handoff, stated once

demo-up prints the per-graph MCP URL; the client adds it and signs in as the demo account. The URL pins the graph, so consent names this tenant instead of showing a picker, and the grant binds to that one resource. The URL is not a credential — so the CI summary now prints it in its own column rather than telling the operator to go mint something.

A new README section says this in one place, including what the retired ?token= URL was and why it went.

On dropping API keys entirely

Two different keys, only one of which OAuth touches:

  • ROBOSYSTEMS_API_KEY (the loop's own) — unaffected. OAuth covers MCP clients; provisioning, loading and teardown are ordinary REST with X-API-Key. It stays, and the README now says so explicitly so the question doesn't come back.
  • --connector-key (the minted graph-scoped key) — kept, opt-in. OAuth means signing in as the demo account, so a viewer without those credentials still needs a header key: Claude's "Additional request headers" field, or a Cursor/VS Code mcp.json. Off by default, printed once, revoked on teardown, never valid in a URL.

SDK

Client 1.12.0 carries graph_id on CreateAPIKeyRequest, so the escape hatch mint_connector_key documented no longer exists. Both it and revoke_key now use create_user_api_key / revoke_user_api_key — same endpoints, same error handling as the rest of the module. httpx is no longer imported here (still a dependency; src/integration/client.py uses it).

Test plan

just test-all green — 6 passed, ruff clean, basedpyright 0 errors. No behavior change to provisioning or teardown.

The `?token=` retirement landed in the code (#7) but left stale copy
behind it. The Demo workflow still told operators to "generate the
connector URL from the app's Connect page" — a page that now mints a
header key, not a URL — and passed the retired `--no-connector` no-op.
The README, justfile and package docstring still called the handoff a
connector URL.

The handoff is now stated once, consistently: `demo-up` prints the
per-graph MCP URL, the client adds it and signs in as the demo account,
and consent names the tenant because the URL pins the graph. The URL is
not a credential, so the CI summary prints it in its own column.

`--connector-key` stays. OAuth covers MCP clients only, so a viewer who
cannot sign in as the demo account still needs a header key (Claude's
"Additional request headers", a Cursor/VS Code mcp.json) — and the
loop's own ROBOSYSTEMS_API_KEY is untouched by OAuth either way, since
provisioning, loading and teardown are ordinary REST.

Both hand-rolled httpx calls move onto typed SDK ops: client 1.12.0
carries `graph_id` on CreateAPIKeyRequest, so the escape hatch that
mint_connector_key documented no longer exists. Same endpoints, same
error handling as the other calls in the module.
@jfrench9
jfrench9 merged commit 5c576da into main Aug 31, 2026
4 checks passed
@jfrench9
jfrench9 deleted the chore/oauth-connector-sweep branch August 31, 2026 04:53
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