Manage a tenant's connections to external services in Go: provider definitions, connections, encrypted credentials, grants and bindings, and a broker that hands out authenticated HTTP clients so callers never handle a raw secret.
Status: in development. Static-token connections work end to end: the model, the in-memory and SQL stores, the egress policy, the broker and the service. GitHub App and OAuth follow. See the specifications.
- One model for every connection: provider, connection, credential, grant, binding, with a lifecycle that separates what was decided from what was observed.
- Owns the credential lifecycle, not the API clients. Provider SDKs stay in
their own modules and receive an authenticated
http.Client. - Safe refresh and rotation: single-flight refresh that persists a rotated refresh token atomically.
- Tested connections: validation with account discovery on create, on demand and on a schedule.
- Ports and adapters: storage, encryption, authorization, audit and egress policy are interfaces the host supplies.
- Declarative provider manifests so a UI or an agent can render and repair a connection.
- Not a provider API client library.
- Not a cryptography library or a secret manager; encryption and secret retrieval are ports.
- Not a workflow engine.
MIT