Documentation

Enterprise & licensing

The Community package is a complete, fast grid: a million rows, sorting, filtering, selection, pagination, themes, twelve languages and CSV export.

@kanunilabs/datagrid-react-enterprise starts where you change the data and where you take it out: the four editing modes, range selection and the fill handle, server-side data, Excel and PDF export, the chart panel, the nested filter builder, and the docked side and status bars.

EnterpriseDataGrid is a drop-in replacement for DataGrid — same props, plus these.

One key opens both products. A KanuniLabs license unlocks the Enterprise edition of DataGrid and PivotGrid. If you already bought for one, you do not buy again for the other.

1. Install from the private registry

The Enterprise package is not on public npm. It comes from our private registry with credentials issued per license — you receive a ready-to-paste .npmrc by email, and can always fetch it again from your dashboard.

@kanunilabs:registry=https://registry.kanunilabs.com/
//registry.kanunilabs.com/:_auth=<value from your email or dashboard>
//registry.kanunilabs.com/:always-auth=true
npm i @kanunilabs/datagrid-react-enterprise

CI usage, keeping the token out of git and rotating a leaked password are all covered in the Private registry access guide.

2. Set the license key

Set it once, at startup, before the first grid renders:

import {
  EnterpriseDataGrid,
  LicenseManager,
} from '@kanunilabs/datagrid-react-enterprise';

LicenseManager.setLicenseKey('KLAB1....');

export function OrdersGrid({ rows }) {
  return (
    <EnterpriseDataGrid
      dataSource={rows}
      rowKey="id"
      columns={[
        { field: 'id', headerName: 'ID', dataType: 'number' },
        { field: 'customer', headerName: 'Customer' },
        { field: 'total', headerName: 'Total', dataType: 'number' },
      ]}
      editing={{ mode: 'cell' }}
    />
  );
}

Both stylesheets are needed — the Enterprise one only adds what it introduces:

import '@kanunilabs/datagrid-react/styles.css';
import '@kanunilabs/datagrid-react-enterprise/styles.css';

Without a valid key

The grid keeps working. It is watermarked, not crippled: an "Unlicensed" badge appears and a notice is logged. This is deliberate — an evaluation, a staging box with a stale key or an expired card should never take your application down.

Keys are verified offline (they are signed), and can optionally be checked online for revocation:

<EnterpriseDataGrid
  licenseKey="KLAB1...."
  licenseOptions={{ validateUrl: 'https://www.kanunilabs.com/api/license/validate' }}
/>

On localhost the key is still required — what local development skips is the domain check, so one key works from localhost, 127.0.0.1 and *.local without listing them as domains. The signature is verified everywhere; a grid with no key is watermarked on your machine exactly as it would be in production, which is deliberate: you should see what your users would.

What Enterprise unlocks

Each entry links to the guide that shows it working. Everything not in this list is in Community and needs no license.

Data & performance

  • Server-side dataFiltering, sorting, paging, distinct values and totals run on your server.

Columns

Filtering

Grouping & hierarchy

Totals

Selection & keyboard

Editing

Export & import

  • Excel exportReal .xlsx, with the grid’s formatting carried over.
  • PDF exportPaginated, with repeated headers; streams for large results.
  • Styled exportNumber formats, banded rows, outline levels, totals.
  • Import wizardFile → column mapping → commit.

Presentation

Charts

What happens if you use one without the license

The boundary is enforced in two places, and both explain themselves rather than failing silently:

  • Configuration (grouping depth, group summaries, master-detail, tree data, footer totals, cell span, notes) is dropped, and the reason is logged when you render with debugMode.
  • Calls (exportToExcel, exportToPdf) throw an error naming the feature.
  • A server-side DataSource throws immediately, because silently dropping it would leave a grid with no data and send you looking in your backend.

Community keeps single-level grouping and CSV export, so a Community grid is never a demo — it is a grid.