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.