Extensions
Anatomy of an extension — the manifest, file layout, and one article per global and script type.
- File structure
The anatomy of a Backfill integration and how the platform finds what each file does.
- Configuration
Learn about backfill.config.ts permissions, settings defaults, page declarations, UI contributions.
- Hooks
React to entity lifecycle events with side effects, mutations, or rejected writes.
- Entities
CRUD against the platform's entities — Invoice, Customer, Payment, and the rest.
- Custom entities
Declare your own entity types with defineEntity.
- Custom fields
Store custom field values from your extension on entity records and lines.
- Logging
How to use Log.debug, info, warn, error for structured logging that surfaces in the Backfill dashboard and `backfill logs`.
- Outbound HTTP
Learn about Http.get / post / put / patch / delete to reach external services.
- Company settings
Learn about Settings.get / getAll for company-configurable settings in your extension.
- Company secrets
Learn about encrypted credentials for companies, scoped per extension, accessed via Secrets.get / set / delete.
- API routes
Learn about HTTP endpoints under your extension's namespace.
- Scheduled jobs
Learn about scheduled work that runs on a cron expression.
- Extension UI
Build dashboard surfaces — full pages, contributions to existing entity pages, and the JSX component library that renders them.