For connectors built with JSON, ConnectorBuilder, or Postman:
Option A: CLI script#
FLOSYNC_API_KEY=xxx FLOSYNC_API_SECRET=yyy node scripts/push-connector.js my-api "My API"
See node scripts/push-connector.js --help for usage.
Option B: SDK#
const { FlosyncClient, connector } = require('cliodot-flosync');
const client = new FlosyncClient({ baseUrl, apiKey, apiSecret });
await client.authenticate();
const myConnector = connector('my-api', 'My API')
.baseUrl('https://api.example.com')
.bearer('')
.get('List Items', '/items')
.post('Create Item', '/items', { body_schema: { name: 'string' } })
.build();
await client.connectors.push(myConnector);
push() creates or updates by _id or slug.
Option C: cURL#
curl -X POST https://your-api-domain.com/api-core/cliodot/connectors \
-H "Authorization: Bearer YOUR_JWT" \
-H "Content-Type: application/json" \
-d @connector.json
Update: PUT /connectors/:connectorId. With logo: use -F "connector=@connector.json" -F "logo=@logo.png".
Installing the Connector#
After pushing, install the connector for your tenant with credentials:
await client.connectors.install('my-api', {
auth: { token: 'YOUR_CONNECTOR_TOKEN' },
base_url: 'https://custom-api.example.com'
});
For DB connectors, omit auth and pass connection_id instead.
curl -X POST https://api.your-domain.com/api-core/cliodot/connectors \
-H "Authorization: Bearer <FLOW_SYNC_JWT>" \
-H "Content-Type: application/json" \
-d @connector.json
Remember to:
- Replace placeholder values (IDs, secrets, URLs).
- Omit optional sections you do not need.
- When including
meta, providecategory,logo,status,visibility_settings(withvisibilityandpublic_access).last_updateddefaults to the current date if omitted. - Keep the request body under control; validation will fail if extra properties are present where
additionalPropertiesis false.
See Building and Pushing Custom Connectors for full build-and-push guide including CLI script and SDK.