From 60e1b567a3b5dfcef8ee84414bec6c2f2610c21a Mon Sep 17 00:00:00 2001 From: Andrii Kostenko Date: Fri, 24 Apr 2026 14:23:49 +0000 Subject: [PATCH] feat: render cassandra blob columns via binary widget MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Map cassandra `blob` to the Binary widget across table display, record view, record edit, and filter type maps — previously cassandra blob columns rendered empty since no default mapping existed. Also add a `Binary` entry to widget defaultParams so the Binary widget type is selectable in table settings without undefined widget_params. Include a fast-xml-parser>=5.7.0 override from pnpm audit --fix. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../db-table-widgets.component.ts | 1 + frontend/src/app/consts/filter-types.ts | 3 +++ frontend/src/app/consts/record-edit-types.ts | 3 +++ frontend/src/app/consts/record-view-types.ts | 3 +++ frontend/src/app/consts/table-display-types.ts | 3 +++ package.json | 3 ++- pnpm-lock.yaml | 15 +++++++++++---- 7 files changed, 26 insertions(+), 5 deletions(-) diff --git a/frontend/src/app/components/dashboard/db-table-view/db-table-widgets/db-table-widgets.component.ts b/frontend/src/app/components/dashboard/db-table-view/db-table-widgets/db-table-widgets.component.ts index e400409e9..291881a89 100644 --- a/frontend/src/app/components/dashboard/db-table-view/db-table-widgets/db-table-widgets.component.ts +++ b/frontend/src/app/components/dashboard/db-table-view/db-table-widgets/db-table-widgets.component.ts @@ -69,6 +69,7 @@ export class DbTableWidgetsComponent implements OnInit { }; // JSON5-formatted default params public defaultParams = { + Binary: `// No settings required`, Boolean: `// Display "Yes/No" buttons with configurable options: // - allow_null: Use "false" to require selection, "true" if field can be left unspecified // - invert_colors: Swap the color scheme (typically green=Yes, red=No becomes red=Yes, green=No) diff --git a/frontend/src/app/consts/filter-types.ts b/frontend/src/app/consts/filter-types.ts index bc33e9624..8c131e2b8 100644 --- a/frontend/src/app/consts/filter-types.ts +++ b/frontend/src/app/consts/filter-types.ts @@ -284,6 +284,9 @@ export const filterTypes = { ascii: TextFilterComponent, text: TextFilterComponent, + //binary + blob: BinaryFilterComponent, + list: JsonEditorFilterComponent, map: JsonEditorFilterComponent, set: JsonEditorFilterComponent, diff --git a/frontend/src/app/consts/record-edit-types.ts b/frontend/src/app/consts/record-edit-types.ts index 36a1f437e..6f88204e9 100644 --- a/frontend/src/app/consts/record-edit-types.ts +++ b/frontend/src/app/consts/record-edit-types.ts @@ -328,6 +328,9 @@ export const recordEditTypes = { ascii: TextEditComponent, text: TextEditComponent, + //binary + blob: BinaryEditComponent, + list: JsonEditorEditComponent, map: JsonEditorEditComponent, set: JsonEditorEditComponent, diff --git a/frontend/src/app/consts/record-view-types.ts b/frontend/src/app/consts/record-view-types.ts index 4f4f6e142..3f39a0fb4 100644 --- a/frontend/src/app/consts/record-view-types.ts +++ b/frontend/src/app/consts/record-view-types.ts @@ -304,6 +304,9 @@ export const recordViewFieldTypes = { ascii: TextRecordViewComponent, text: LongTextRecordViewComponent, + //binary + blob: BinaryRecordViewComponent, + list: JsonEditorRecordViewComponent, map: JsonEditorRecordViewComponent, set: JsonEditorRecordViewComponent, diff --git a/frontend/src/app/consts/table-display-types.ts b/frontend/src/app/consts/table-display-types.ts index 9808bded5..22b6c62b9 100644 --- a/frontend/src/app/consts/table-display-types.ts +++ b/frontend/src/app/consts/table-display-types.ts @@ -305,6 +305,9 @@ export const tableDisplayTypes = { ascii: TextDisplayComponent, text: LongTextDisplayComponent, + //binary + blob: BinaryDisplayComponent, + list: JsonEditorDisplayComponent, map: JsonEditorDisplayComponent, set: JsonEditorDisplayComponent, diff --git a/package.json b/package.json index 7d4cb7218..e5c0578e8 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,8 @@ "lodash@>=4.0.0 <=4.17.23": ">=4.18.0", "lodash@<=4.17.23": ">=4.18.0", "@nestjs/core@<=11.1.17": ">=11.1.18", - "uuid@<14.0.0": ">=14.0.0" + "uuid@<14.0.0": ">=14.0.0", + "fast-xml-parser@<5.7.0": ">=5.7.0" }, "packageExtensions": { "ibm_db": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 39e20f6a5..18f9391d0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,6 +14,7 @@ overrides: lodash@<=4.17.23: '>=4.18.0' '@nestjs/core@<=11.1.17': '>=11.1.18' uuid@<14.0.0: '>=14.0.0' + fast-xml-parser@<5.7.0: '>=5.7.0' packageExtensionsChecksum: sha256-qM/gPCDCAwbN43hScuRM/oThrQiWcAMxRCqJ3FQdbM0= @@ -1504,6 +1505,9 @@ packages: resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} engines: {node: ^14.21.3 || >=16} + '@nodable/entities@2.1.0': + resolution: {integrity: sha512-nyT7T3nbMyBI/lvr6L5TyWbFJAI9FTgVRakNoBqCD+PmID8DzFrrNdLLtHMwMszOtqZa8PAOV24ZqDnQrhQINA==} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -3420,8 +3424,8 @@ packages: fast-xml-builder@1.1.5: resolution: {integrity: sha512-4TJn/8FKLeslLAH3dnohXqE3QSoxkhvaMzepOIZytwJXZO69Bfz0HBdDHzOTOon6G59Zrk6VQ2bEiv1t61rfkA==} - fast-xml-parser@5.5.8: - resolution: {integrity: sha512-Z7Fh2nVQSb2d+poDViM063ix2ZGt9jmY1nWhPfHBOK2Hgnb/OW3P4Et3P/81SEej0J7QbWtJqxO05h8QYfK7LQ==} + fast-xml-parser@5.7.1: + resolution: {integrity: sha512-8Cc3f8GUGUULg34pBch/KGyPLglS+OFs05deyOlY7fL2MTagYPKrVQNmR1fLF/yJ9PH5ZSTd3YDF6pnmeZU+zA==} hasBin: true fastq@1.20.1: @@ -6416,7 +6420,7 @@ snapshots: '@aws-sdk/xml-builder@3.972.18': dependencies: '@smithy/types': 4.14.1 - fast-xml-parser: 5.5.8 + fast-xml-parser: 5.7.1 tslib: 2.8.1 '@aws/lambda-invoke-store@0.2.4': {} @@ -7260,6 +7264,8 @@ snapshots: '@noble/hashes@1.8.0': {} + '@nodable/entities@2.1.0': {} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -9392,8 +9398,9 @@ snapshots: dependencies: path-expression-matcher: 1.5.0 - fast-xml-parser@5.5.8: + fast-xml-parser@5.7.1: dependencies: + '@nodable/entities': 2.1.0 fast-xml-builder: 1.1.5 path-expression-matcher: 1.5.0 strnum: 2.2.3