directus-extension-csi-dimensional-table
v0.1.2
Published
Spreadsheet-style Directus interface for CSI dimensional tables stored as TSV.
Maintainers
Readme
CSI Dimensional Table interface
A deliberately small Directus App interface for editing the existing
dimensional_data.table_tsv field as a spreadsheet-style grid. The editor
uses Directus's form context to keep the sibling header_rows field in sync,
so editors can model one-, two-, or three-row headers without leaving the grid.
Why this is a proof of concept
The interface does not change the database or storefront contract. It reads and writes the same tab-separated text currently consumed by Catalyst. Editors can:
- edit cells directly;
- add and remove rows or columns;
- paste a rectangular range into any cell;
- replace the full table from Excel, Google Sheets, CSV, or TSV;
- copy the normalized table for reuse or troubleshooting.
The editor keeps the technical column controls in a compact spreadsheet-style header, labels the first row as the shopper-facing table header, and numbers only the actual data rows. TSV remains an implementation detail rather than editor-facing terminology.
This is intentionally smaller than a full spreadsheet. It has no formulas, merged cells, rich formatting, or data-type inference.
Build and test
pnpm --filter directus-extension-csi-dimensional-table test
pnpm --filter directus-extension-csi-dimensional-table typecheck
pnpm --filter directus-extension-csi-dimensional-table buildThe build creates dist/index.js.
Installation boundary
The hosted CSI Directus project must have the extension installed and enabled
before the field metadata is changed to interface=csi-dimensional-table.
Directus Cloud installs App extensions through its Marketplace; a locally built
artifact cannot simply be copied into the hosted project as it could on a
self-hosted instance.
Trying it in CSI's hosted project requires publishing the package to npm so it can be discovered through Directus Marketplace.
After installation, run the guarded activation script from the repository root:
python3 scripts/directus/activate_dimensional_table_interface.py
python3 scripts/directus/activate_dimensional_table_interface.py --applyThe script refuses to change the field until Directus reports the interface as installed and enabled.
For subsequent Marketplace releases, use the guarded replacement script. It backs up the installed extension, field metadata, and all dimensional records, then verifies that the content is unchanged after the Directus 12.2 uninstall/install swap:
python3 scripts/directus/upgrade_dimensional_table_extension.py \
--version 0.1.2 --apply