provider-puller is OpenLeash's small, deployable scheduler for SaaS and cloud agent platforms that expose activity through provider APIs instead of a local model connection. It asks client-api to synchronize configured providers on a fixed interval; provider connectors fetch, normalize, deduplicate, and process the actual activity.
Salesforce Agentforce ─┐
Google Vertex AI ──────┼─► client-api connectors ─► normalized event pipeline
Copilot Studio ────────┘ ▲
│
provider-puller
scheduled trigger
Keeping scheduling separate makes the worker stateless and horizontally disposable while client-api remains the source of truth for credentials, checkpoints, normalization, policy, and audit data.
- Trigger configured provider synchronizations on startup and on a fixed interval
- Synchronize providers concurrently so a slow platform does not serialize the cycle
- Emit structured JSON success and failure logs per provider
- Authenticate to the administrative sync surface of
client-api - Apply bounded request timeouts and continue future cycles after individual failures
The default provider set is:
- Salesforce Agentforce
- Google Vertex AI
- Microsoft Copilot Studio
| Mode | Role |
|---|---|
| 🏢 Private Cloud | Optional worker beside the customer-hosted client-api. |
| ☁️ OpenLeash Cloud | Hosted scheduler for enabled SaaS connectors. |
| 🧑💻 Individual Open Source | Optional; useful only when the user configures a supported hosted provider connector. |
Requirements: Node.js 22 or newer and a running OpenLeash client-api with an administrative token.
npm install
npm run build
OPENLEASH_CLIENT_API_URL=http://127.0.0.1:9318 \
OPENLEASH_ADMIN_TOKEN=replace-me \
npm startThe first synchronization runs immediately. Subsequent cycles use OPENLEASH_PULL_INTERVAL_MS.
| Variable | Required | Purpose |
|---|---|---|
OPENLEASH_CLIENT_API_URL |
No | client-api base URL. Defaults to http://127.0.0.1:9318. |
OPENLEASH_ADMIN_TOKEN |
Yes* | Administrative bearer token used for sync requests. |
OPENLEASH_DASHBOARD_TOKEN |
Yes* | Backward-compatible token fallback. |
OPENLEASH_PULL_INTERVAL_MS |
No | Interval between cycles. Minimum 30 seconds; default 5 minutes. |
OPENLEASH_PULL_PROVIDERS |
No | Comma-separated provider IDs to synchronize. |
*Set one of the two token variables. Prefer OPENLEASH_ADMIN_TOKEN.
Provider credentials and checkpoints belong in client-api; do not place them in this worker's environment.
docker build -t openleash-provider-puller .
docker run --rm \
-e OPENLEASH_CLIENT_API_URL=https://api.example.com \
-e OPENLEASH_ADMIN_TOKEN=replace-me \
openleash-provider-pullerThe image builds TypeScript in a dedicated stage and runs as the unprivileged Node user.
npm run typecheck
npm run build
docker build -t openleash-provider-puller:test .Please report vulnerabilities according to SECURITY.md. Do not include provider credentials, administrative tokens, or customer event data in public issues.