Skip to content

feat(client): add client.integrations.list() for the integrations registry (#56) - #84

Merged
nycomp merged 2 commits into
mainfrom
feat/integrations-list
Oct 4, 2026
Merged

nycomp merged 2 commits into
mainfrom
feat/integrations-list

Conversation

@nycomp

@nycomp nycomp commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

Summary

Add client.integrations.list() (#56): a read-only resource client for the integrations registry served by the auth service at GET /integrations/v1/ (campus#751).

  • New campus_python/integrations/v1/ package with IntegrationsRoot (mirrors api/v1, auth/v1 layout), mounted lazily as client.integrations on Campus.
  • Shares the auth service's CampusRequest, so it resolves CAMPUS_AUTH_URL/ENV the same as client.auth and works in device mode (the endpoint is public).
  • Entries deserialize to campus.model.Integration, added to campus weekly in campus#784 (from_resource/to_resource, catalog metadata only — no secrets).
  • campus-suite bumped to weekly 518a9fa in poetry.lock.

Schema note

The landed registry schema supersedes the sketch in #56: entries carry provider, slug, base_provider, title, description, scopes, connectable, authorize_path — not api_doc/capabilities (those did not survive the #733 lane; see campus#769 for the recorded schema decisions).

Read-only for now; if enable/disable flags are added server-side later, they surface behind this same resource.

Tests

8 new unit tests (path/endpoint, model deserialization, envelope tolerance, Campus mounting/sharing/caching); full suite: 158 passed.

…fields, Credentials.User.new

- Clients.Client.access.check(vault, permission): GET the
  /access/check leaf route with vault/permission query params
- Clients.new(): forward allowed_scopes, upstream_scopes,
  token_bridge (update() has supported them since PR #65)
- Credentials.Provider.User.new(scopes, expires_in): implement the
  stale NotImplementedError stub — POST /credentials/<provider>/
  <user_id> sends {scopes, expires_in}; the client_id comes from the
  request's auth context, not the body

Fixes #76
…istry (#56)

Read-only resource client for the public auth-service catalog at
/integrations/v1/ (campus#751), returning campus.model.Integration
entries (added to campus weekly in campus#784). The registry schema
supersedes the issue sketch: provider, slug, base_provider, title,
description, scopes, connectable, authorize_path (no api_doc/
capabilities). Shares the auth client so it works in device mode.

Closes #56
@nycomp
nycomp merged commit 9563443 into main Oct 4, 2026
2 checks passed
@nycomp
nycomp deleted the feat/integrations-list branch October 4, 2026 01:38
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.

2 participants