Vulcan supports two categories of APIs accessible directly through the Vulcan node layer and those available through Arya APIs.
Types of APIs Supported on Vulcan
Type 1
APIs supported on the Vulcan node layer (whitelisted)
- Intouch
- XAJA
- Extension (avengers API extension.)
- Neo Extensions
- Shield / Workflow Management APIs
- Cortex APIs
Sample Method for Services/API.js:
export const methodName = (param) => {
const url = `${endpoints.vulcan_endpoint}/<intouch|neo|extensions|xaja/AjaxService>/<URL path of svc>`;
return httpRequest(url, getVulcanAPICallObject('GET'));
};
Note:
Always use
getVulcanAPICallObject
in the api.js method
Type 2
APIs supported on Arya (Node APIs and Whitelisted BE APIs):
- EMF (/loyalty/emf/v1)
- File service (/v1/file-service)
- Promo engine (/v1/promotion-management)
- Observability engine (/v1/observability)
- Rewards core (/core)
- Gamification (/gamification)
- Badges (/v1/badges)
- Any node API (loyalty/api/v1, member-care/api/v1, arya/api/v1/org-settings, arya/api/v1/creatives, any other Arya APIs)
Note:
For all the above APIs, if the endpoint has "arya/api/v1" then use
endpoints.arya_endpoint
.
Else define an endpoint in theendpoints.js
file.
Sample:
fileservice_endpoint:"https://north-america.intouch.capillarytech.com/v1/file-service"
Sample Method for Services/API.js:
export const methodName = (param) => {
const url = `${endpoints.fileservice_endpoint}/<URL path of svc>/<param>`;
return httpRequest(url, getAryaAPICallObject("GET"));
};
Note:
Always use
getAryaAPICallObject
in the api.js method.
Whitelisted Endpoints
The endpoint.js
file contains all the possible whitelisted endpoints callable from Vulcan (Type 1 and Type 2). These are based on the InTouch cluster specified during the project setup
Making Vulcan endpoint calls for OAuth APIs
To make Vulcan endpoint calls for OAuth APIs, follow these steps:
- Register the OAuth client key, secret, and till ID using the
metadata/oauth-clients
API.curl --location 'https://{host}/vulcan/api/v1/metadata/oauth-clients' \ --header 'x-cap-api-auth-org-id: <orgId>' \ --header 'x-cap-remote-user: <userId>' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <ct_token>' \ --data '{ "key": "<client_key>", "secret": "<client_secret>", "defaultTillId": <till_id_number> }'
- After you register the OAuth client, make the necessary API calls, and ensure that the
x-cap-api-auth-type: oauth
header is included in the request.