TypeScript SDK
The CRAFT TypeScript SDK provides fully typed clients for all platform APIs, with support for Node.js and browser environments.Installation
# Configure the @emergence-ai npm scope
echo "@emergence-ai:registry=https://us-central1-npm.pkg.dev/aip-artifacts-store/aip-npm/" >> .npmrc
# Install all SDKs
npm install @emergence-ai/em-runtime-governance-sdk \
@emergence-ai/em-runtime-assets-sdk \
@emergence-ai/em-runtime-utils-sdk
Quick Start
Configure the Client
import {
Configuration,
OrganizationsApi,
ProjectsApi,
} from '@emergence-ai/em-runtime-governance-sdk';
const config = new Configuration({
basePath: 'https://your-instance.emergence.ai/governance',
accessToken: 'your-jwt-token',
});
const orgsApi = new OrganizationsApi(config);
const projectsApi = new ProjectsApi(config);
List Organizations
const { data: orgs } = await orgsApi.listOrganizations();
orgs.data.forEach(org => {
console.log(`${org.id}: ${org.name}`);
});
Create a Project
const { data: project } = await projectsApi.createProject({
projectCreate: {
name: 'My Project',
description: 'Data analysis workspace',
},
});
console.log(`Created project: ${project.id}`);
Create a Data Connection
import {
Configuration as AssetsConfig,
DataApi,
} from '@emergence-ai/em-runtime-assets-sdk';
const assetsConfig = new AssetsConfig({
basePath: 'https://your-instance.emergence.ai/assets',
accessToken: 'your-jwt-token',
});
const dataApi = new DataApi(assetsConfig);
const { data: connection } = await dataApi.createDataConnection({
dataConnectionCreate: {
name: 'analytics-db',
connectionType: 'postgres',
description: 'Analytics PostgreSQL database',
},
});
Error Handling
import { AxiosError } from 'axios';
try {
const { data } = await orgsApi.listOrganizations();
} catch (error) {
if (error instanceof AxiosError) {
switch (error.response?.status) {
case 401:
console.error('Token expired — refresh and retry');
break;
case 403:
console.error('Insufficient permissions');
break;
default:
console.error(`API error: ${error.response?.status}`);
}
}
}
Token Refresh Pattern
import { Configuration } from '@emergence-ai/em-runtime-governance-sdk';
// Dynamic token provider
const config = new Configuration({
basePath: 'https://your-instance.emergence.ai/governance',
accessToken: async () => {
// Fetch fresh token from Keycloak
const token = await refreshKeycloakToken();
return token;
},
});
Package Reference
| Package | Covers | Scope |
|---|---|---|
@emergence-ai/em-runtime-governance-sdk | Organizations, Projects, Permissions | governance |
@emergence-ai/em-runtime-assets-sdk | Artifacts, Data Connections, Files, Models | assets |
@emergence-ai/em-runtime-utils-sdk | Data Catalog, Scheduling, Context Packs, Memories | utils |
Next Steps
Python SDK
Python client guide
API Reference
Interactive API playground

