v1.5.0
Added
- Multi-row selection.
bc_execute_actionacceptsbookmarks: string[]to
select N rows and invoke a selection-consuming action (Delete) over the whole
set atomically (SetCurrentRowAndRowsSelection+InvokeActionin one queue
entry). The anchor isbookmarks[0]and must be a member of the set. Only
selection-consuming actions act on all rows; Edit/View/DrillDown/New are
current-row-only and are rejected withbookmarks[]. A stale anchor returns
INVALID_BOOKMARK;BC_MAX_SELECTION(default 100) caps the set. - Generic file download capture.
bc_execute_action,bc_respond_dialog,
bc_wizard_navigate, andbc_run_reportnow returndownloads: Download[]
(inline base64 + optional disk write) andexternalUris[]via a shared
DownloadService. Only same-origin URLs under an allowlisted BC file path are
fetched (SSRF/credential-leak guard); external andmailto:URIs are surfaced
but never dereferenced. Per-file/aggregate/count caps andBC_DOWNLOAD_DIR
are configurable. - Config.
BC_MAX_SELECTION; download limitsBC_MAX_DOWNLOAD_BYTES,
BC_MAX_DOWNLOAD_TOTAL_BYTES,BC_MAX_DOWNLOADS,BC_DOWNLOAD_DIR
(falls back toBC_REPORT_DIR).
Changed
- BREAKING (
bc_run_report): the singulardownloadfield is replaced by
downloads: Download[]for parity with the other download-capturing tools. - Default client version / serverMajor now default to BC28.
Fixed
- BC 28.3
/csh403. The WebSocket upgrade now sends anOriginheader, so
BC 28.3'sRequestOriginValidationMiddlewareno longer rejects the connection.
Same-origin only; a no-op on BC 28.0. - Multi-row action silent no-op. A multi-row Delete on a page that forbids it
(e.g. the Customer list) previously returned success with nothing deleted. BC
disables such actions server-side (Enabled=false);bc_execute_actionnow
detects that and returnsMULTI_ROW_ACTION_UNAVAILABLEinstead of a lying
success. Where BC keeps the action enabled it deletes all selected rows. - Download disk-write filenames are sanitized against path traversal.
Full Changelog: v1.4.0...v1.5.0