Browse documentation
Developer guide1 min read

Server packages

The browser package defines transport contracts; @wts-data-table/server supplies backend handlers and adapters without coupling the UI to a database.

Shared protocol

#

Rows, facets, cursor pages, editor options, and uploads use structured request/response contracts. serializeRequest and parseResponse adapt existing APIs or GraphQL envelopes.

Supported server surfaces

#

Use Express, Fetch, or GraphQL handlers and inject your own database client. Set maximum page sizes, timeouts, and allowlists at the server boundary.

Security responsibilities

#

Authentication, authorization, tenant isolation, field allowlists, rate limits, and mutation validation always remain server responsibilities.

Express handler

#

This recipe focuses on the integration pattern. Replace application-specific values and callbacks with your own data and services.

Express handler
TypeScript
app.post('/api/data-table', createDataTableExpressHandler({
  adapter: database,
  maxPageSize: 100,
  authorize: ({ principal }) => principal.can('people:read')
}));
Need a complete starting point?

The framework quick start includes install commands, a typed data file, and the component that renders it.

Go to the quick start →

Ready to try it with real data?

Explore configurable examples ↗