This boilerplate code simplifies setting up and managing ArcXP IFX in an imperative way. It comes with standard commands to manage your integrations, deliver your code, and utilities for faster development.
You can start a new project by forking this repository directly. Alternatively, copy the code into a new repo and later add this boilerplate as a remote to stay in sync. To sync changes from the boilerplate, run:
git remote add boilerplate https://github.com/code-store-platform/arcxp-ifx-boilerplate.git
git fetch boilerplate
git merge boilerplate/main
./integrations/
– All integrations live here../packages/commands
– Command implementations../packages/shared
– Shared utilities (logger, ArcAPI, etc)../packages/tsconfig
– Centralized TypeScript configs.
- Node.js 22.x or higher
- pnpm 8.x
- Run
pnpm install
to install dependencies - Create
.env.sandbox
from.env.example
and fill in required values
-
Run:
pnpm ifx init
- Creates a new integration folder under
./integrations/
. - Installs dependencies and provisions it in IFX.
- Creates a new integration folder under
-
Add event handlers:
- Implement handlers in
eventsHandlers/
and export them ineventsHandlers.ts
. - Wire them up in
eventsRouter.json
.
- Implement handlers in
-
Deploy:
pnpm ifx deploy
-
Update IFX definition:
pnpm ifx provision
Example handler:
./integrations/hello/src/eventsHandlers/example.ts
.
-
Commands default to the sandbox environment. Use
--env=prod
for production. -
You can run commands for a specific integration using:
pnpm ifx <command> --integration=my-integration
-
Or run them for all integrations by omitting
--integration
.
Initialize a new integration.
Create or update the integration in IFX using ifx-definition.yml
.
Build and deploy the integration bundle to IFX.
Build the integration and validate with the health
handler.
Promote a deployed bundle to LIVE.
Delete an integration.
Show latest logs for integrations.
Show detailed integration information (bundles, subscriptions, secrets, etc).
Run the integration locally in watch mode.
- Default: random port.
- Override with
PORT
env.
Example request:
curl --location 'http://localhost:54265/' \
--header 'Content-Type: application/json' \
--data '{
"key": "story:create",
"body": { "id": "test" }
}'
- Always specify
--env
(sandbox
orprod
) when needed. - Use
--integration=<name>
to scope commands to a single integration.
This CLI streamlines the workflow for managing ArcXP IFX integrations.