Bulk editing
Grid kinds and stable keys
The bulk grids expose entities, attributes, columns, relationships and typed properties. Keys are stable selector paths and are read-only.
Sorting and filters
Headers cycle ascending, descending and original order. Filters use whitespace-AND terms, with column:value, -column:value, or a free-text value.
Multi-cell paste and fill-down
Shift-click selects a rectangle. Tab/newline clipboard cells fill the selection, while fill-down copies editable values from its first row.
Inline validation
Changed cells are validated after a short delay and display accessible error text.
CSV schemas
Each grid has the same exact headers as its CSV export. Imports are complete snapshots, so omitted rows are planned as deletions.
Quoting and value encoding
CSV uses RFC 4180 quoting and LF records. Typed property values use canonical JSON scalar or array text.
Review plans
Imports produce a deterministic plan with stable row numbers, before/after rows, rejected rows and a model fingerprint.
Apply and rejected rows
Apply is explicit and checks the fingerprint. Rejected rows are reported without preventing independent valid rows from applying.
Minimal writes and undo
Only changed model files are rewritten. Browser edits participate in the operation history for undo and redo.
CLI examples
bluep export csv model --kind entities writes canonical CSV. bluep import csv model --kind entities --file edits.csv --plan plan.json creates a review plan, and bluep import csv model --apply plan.json --yes applies it.