@dynamic-widget/enterprise
v1.2.0
Published
Enterprise licensing and feature APIs for Dynamic Widget.
Maintainers
Readme
@dynamic-widget/enterprise
Enterprise licensing, feature flags, and gated APIs for Dynamic Widget — charts, branching wizard, rules engine, designer patches, plugins, and AI toolkit hooks. Built on @dynamic-widget/core.
i18n (labelKey, schema.locales, [locale], RTL), markdown, file upload, and async binding (optionsFrom + host dataProvider) ship in Community via core — no enterprise module required. Virtual tables (props.virtualize on large tables) and multi-file upload require enterprise flags (canDesigner). Advanced ICU/pluralization is on the roadmap.
Current release: 1.2.0 — See CHANGELOG and monorepo CHANGELOG.
Live demo & docs: https://dynamic-widget-app.vercel.app/ — read the enterprise guide and licence pricing.
Requires
@dynamic-widget/core^1.2.0. Used as an optional peer by@dynamic-widget/react,@dynamic-widget/angular, and@dynamic-widget/js.
What's new in 1.2.0
- Charts in editable tabs and designer preview use
canChart(moduleintegrated-charting). - Plugin palette entries in the packaged form designer preview require
canPlugins. - Visual form schema designer (
dw-schema-designer,SchemaDesigner,createSchemaDesigner) mounts without a licence; enterprise flags only gate preview features (charts, plugins, etc.).
Keywords: dynamic-widget enterprise licensing charts rules-engine designer virtual-table plugins ai-toolkit
Install
npm install @dynamic-widget/enterprise @dynamic-widget/coreUsage
import {
registerEnterpriseLicense,
getEnterpriseFeatureFlags,
assertEnterpriseFeature,
} from "@dynamic-widget/enterprise";
registerEnterpriseLicense({
key: "issued-by-your-server",
modules: ["integrated-charting", "designer", "rules-engine"]
});
const flags = getEnterpriseFeatureFlags();
assertEnterpriseFeature("integrated-charting"); // throws if not licensedFor local demos, use registerEnterpriseLicenseFromPredefinedKey with the key from the demo workbench (do not hard-code in production apps).
Pass your entitlement key to framework adapters:
<DynamicWidget enterpriseLicenseKey={licenseFromServer} schema={schema} /><dynamic-widget [enterpriseLicenseKey]="licenseFromServer" [schema]="schema" />API
License registration
| Function | Description |
| --- | --- |
| registerEnterpriseLicense(license) | Set a custom EnterpriseLicense object. |
| registerEnterpriseLicenseFromPredefinedKey(key) | Lookup built-in demo keys; returns boolean. |
| clearEnterpriseLicense() | Reset to community-only flags. |
| getEnterpriseLicense() | Active license or null. |
| isEnterpriseLicenseActive() | Key present and not expired. |
Feature flags
| Function / export | Description |
| --- | --- |
| getEnterpriseFeatureFlags() | Snapshot of enabled modules. |
| isFeatureAllowed(flags, feature) | Check a single EnterpriseFeature. |
| flagsFromLicenseModules(modules) | Build flags from licence module list. |
| ALL_ENTERPRISE_FLAGS / NO_ENTERPRISE_FLAGS | Flag presets. |
Gated capabilities
EnterpriseFeatures bundles:
ai—createAiWidgetInsightcharting—{ createChartSpec, renderChartToSvg }rules—applyRulesdesigner—{ applyDesignerPatch, createEmptySchema }(also enables virtual table scrolling whenprops.virtualizeis set)
Also re-exports registerWidgetPlugin, listRegisteredPlugins, BUILTIN_WIDGET_TYPES, and designer helpers from core.
Community vs enterprise surfaces
| Surface | Licence to mount | Enterprise flags used in preview |
| --- | --- | --- |
| Form schema designer (/designer) — dw-schema-designer / SchemaDesigner / createSchemaDesigner | None (Community) | canChart, canPlugins, etc. for live preview widgets |
| Editable tabs dashboard designer (demo workbench, canDesigner) | designer module | Charts, virtual tables, full tab chrome |
Pass enterpriseLicenseKey on adapters so preview and runtime widgets respect your modules.
Browser support
Licensing and flags are in-memory and work in any JS environment. Chart SVG and AI features run in the browser when used through renderDomTree or framework adapters.
Related packages
@dynamic-widget/core— schema engine (required dependency).@dynamic-widget/themes— shared CSS.@dynamic-widget/react— optional peer; passesenterpriseLicenseKey.@dynamic-widget/angular— optional peer; passesenterpriseLicenseKey.@dynamic-widget/js— optional peer; passesenterpriseLicenseKey.
