datawell / tables
Schema-driven table UI and HTTP layer for Datawell data sources.
Package info
Language:TypeScript
pkg:composer/datawell/tables
Requires
- php: ^8.3
- datawell/datawell: ^0.1
- illuminate/support: ^12.0||^13.0
Requires (Dev)
- larastan/larastan: ^3.9
- laravel/pao: ^1.0
- laravel/pint: ^1.29
- orchestra/testbench: ^10.0||^11.0
- pestphp/pest: ^4.6||^5.0
- pestphp/pest-plugin-laravel: ^4.1||^5.0
- pestphp/pest-plugin-type-coverage: ^4.0||^5.0
- phpstan/extension-installer: ^1.4
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is not auto-updated.
Last update: 2026-11-07 08:11:24 UTC
README
Datawell Tables
Schema-driven table UI and HTTP layer for Datawell data sources.
Installation
You can install the package via Composer:
composer require datawell/tables
You may publish all of the package's resources at once:
php artisan vendor:publish --tag="tables"
Or, you may publish each resource individually:
Publishing the Configuration File
php artisan vendor:publish --tag="tables-config"
Usage
This package publishes a thin JSON layer over the core Datawell\\Executor — always on the
Direct channel, always as the authenticated user. Point tables.routes.middleware at
whatever authenticates people in your app.
| Method | URI | Purpose |
|---|---|---|
| GET | /datawell/sources |
Sources available to the user |
| GET | /datawell/sources/{source}/schema |
The published contract, as this user |
| POST | /datawell/sources/{source}/query |
Run a query (D05 wire shape in the body) |
| POST | /datawell/sources/{source}/validate |
Dry-run validation: {passes, errors} |
| POST | /datawell/sources/{source}/actions |
Execute an action (D40 wire shape) |
| GET | /datawell/runs/{run} |
A queued run's progress / final report |
| GET | /datawell/sources/{source}/entities/{id} |
One entity's reference |
| GET | /datawell/sources/{source}/entities/{id}/values/{field} |
Remainder of a many-valued field |
Validation failures return 422 with {message, errors}; anything unknown, hidden, or
out of scope is an indistinguishable 404.
The table component
The schema-driven React <DataTable> (D58: hand-rolled, no TanStack) ships as source
and publishes into your app Breeze-style — your app owns the copy and may edit it:
php artisan vendor:publish --tag="tables-frontend"
That copies data-table.tsx, group-view.tsx, cells.tsx, filters.tsx,
actions.tsx and lib.ts (the typed wire client) into resources/js/datawell/.
The components expect shadcn/ui primitives at @/components/ui/* and render entirely
from the published schema: columns by type and cardinality, filter chips from published
operators (including D52 relative dates), search, sorts, cursor and offset paging,
grouped buckets, row/bulk/query-scope actions with confirmation, and queued-run
progress polling.
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
This repository is a read-only copy of the tables package, published automatically from Datawell's development repository, so changes aren't merged here directly. Issues and pull requests are still welcome: accepted changes are applied upstream and published back here.
Thank you for considering contributing to Datawell Tables! Please review our contributing guide to get started.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
Datawell Tables is open-sourced software licensed under the MIT license.