AGENTS.md@pkg/providers · diff
git:20260724.87ce252 to git:20260802.0834ab9
2 added, 0 removed. Audit A to A.
# Providers Guide
Third-party API/OAuth clients. Configure under `flowbot.yaml` → `providers.<name>`.
## Entry points
- Shared: `providers.go` (`GetConfig`, `RegisterOAuthProvider`, …)
- Reference: `example/` (`GetClient` / `NewXxx`, OAuth methods, httptest tests)
- Per service: `<service>/` — preferred `<service>.go` + optional `types.go`
## Boundaries
- OAuth production providers export `Register()` and wire via `fx.Invoke` in `internal/server/providers.go` (github, slack, dropbox). `example` shows OAuth methods but does **not** export `Register()`
- Token/API-key providers skip OAuth `Register` / fx wiring
- Never hardcode credentials; respect rate limits; use context timeouts
- Never call hub / pipeline / emit DataEvent from inside a provider — orchestration stays outside this package
+ - Never import `internal/store` or `ent/gen` — persist OAuth tokens via injected `OAuthTokenStore` (`SetOAuthTokenStore` from `internal/server`)
+ - `GetOrRefreshToken` must not touch `gen.OAuth`; mapping belongs in the server adapter
## Testing
Mock with `httptest`; separate auth flows from API calls.