Node.js / TypeScript client library for IQMS / DELMIAworks (EnterpriseIQ), the manufacturing ERP from Dassault Systèmes.
Status: Scaffolding. Oracle queries are written from public partner documentation and have not been validated against a live EnterpriseIQ instance. The WebAPI driver is a stub. See CONTRIBUTING.md.
EnterpriseIQ has two realistic integration surfaces, and most shops need both:
| Driver | Capability | Availability |
|---|---|---|
| Oracle | Read-only queries against the EIQ schema | Universal — every install has it |
| WebAPI | Transactional writes (create work orders, post production, inventory adjustments) | Licensed add-on; not every customer owns it |
IqmsClient exposes a single resource surface and routes each call to the
appropriate driver. If a write is attempted without WebAPI configured, the
client throws a clear DriverNotConfiguredError.
npm install @wyre-ai/node-iqms
Configure .npmrc so npm can resolve the @wyre-ai scope from
GitHub Packages:
@wyre-ai:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}
The oracledb package requires the Oracle Instant Client to be installed
on the host running the SDK. See Oracle's installation guide.
import { IqmsClient } from '@wyre-ai/node-iqms'; const client = new IqmsClient({ oracle: { user: 'eiq_readonly', password: process.env.IQMS_ORACLE_PASSWORD!, connectString: 'eiq-db.example.com:1521/EIQ', }, // Optional — omit to run in read-only mode webapi: { baseUrl: 'https://eiq-app.example.com/webapi', username: 'integration-svc', password: process.env.IQMS_WEBAPI_PASSWORD!, }, }); const openWorkOrders = await client.workorders.list({ status: 'open', limit: 50 }); const wo = await client.workorders.get(12345);
import { IqmsError, AuthenticationError, NotFoundError, DriverNotConfiguredError, NotImplementedError, OracleError, } from '@wyre-ai/node-iqms';
Apache-2.0