What is an integration?
An integration is a single call todefineIntegration() that declares everything your package can do:
- Widgets — dashboard cards that display data and interact with users
- Tools — assistant-callable functions that perform actions or fetch information
- Webhooks — inbound event handlers from external services
- Schedules — cron-driven background jobs
- OAuth — secure third-party authentication and token management
- Storage — schema-validated per-account and per-user state
- Actions — widget-invoked server handlers
- Activation hook —
onActivate, run after an account connects
ctx.secrets. The whole definition is validated by defineIntegration() and re-validated by the host against the same schema.
The three layers
You can define, validate, and unit-test an integration against the SDK alone. Seeing widgets and other surfaces rendered locally takes the harness (
ekanos dev).
Your first integration
defineIntegration() and the SDK validates the entire definition at import time. If anything is wrong, you get a remediation message immediately — no separate validation step needed.
Documentation structure
Fundamentals cover the core concepts:- The shape of an integration definition
- The capability context (
ctx) every handler receives - The six published entrypoints (plus one workspace-only entrypoint) and what each exports
- Storage schemas, egress allowlists, secrets
- Tools, widgets, forms, marketplace tiles
- Webhooks, schedules, OAuth, activation hooks
- Capability declarations and workspace targets
Getting help
Errors and validation:defineIntegration() throws immediately with a remediation message. The schema is strict — unrecognized keys and malformed values are hard errors, not silent skips.
Support: Questions or bugs? Email npm@govastly.com.