From 2dcfa9e6c32719577a6cc72385a933e4b9851bf7 Mon Sep 17 00:00:00 2001 From: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> Date: Fri, 26 Apr 2024 15:12:55 -0400 Subject: [PATCH 01/13] HPCC-31674 ECL Watch v9 change permissions tab label Change the label of the Permissions tab (under Operations > Security) based upon the item selected. Signed-off-by: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> --- esp/src/src-react/components/Security.tsx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/esp/src/src-react/components/Security.tsx b/esp/src/src-react/components/Security.tsx index debe5089863..fac4c8ed7a6 100644 --- a/esp/src/src-react/components/Security.tsx +++ b/esp/src/src-react/components/Security.tsx @@ -28,6 +28,20 @@ export const Security: React.FunctionComponent = ({ const [, { opsCategory }] = useBuildInfo(); + const [permissionTabTitle, setPermissionTabTitle] = React.useState(nlsHPCC.Permissions); + + React.useEffect(() => { + setPermissionTabTitle(nlsHPCC.Permissions); + if (name === "_") { + if (baseDn === "File Scopes") setPermissionTabTitle(nlsHPCC.FileScopeDefaultPermissions); + else if (baseDn === "Workunit Scopes") setPermissionTabTitle(nlsHPCC.WorkUnitScopeDefaultPermissions); + } else if (name === "file") { + if (baseDn === "File Scopes") setPermissionTabTitle(nlsHPCC.PhysicalFiles); + } else if (name) { + setPermissionTabTitle(name); + } + }, [name, baseDn]); + return <> {({ size }) => = ({ - + {!name && !baseDn && } From c4ea62d6306a4783940c546108024b21824a902f Mon Sep 17 00:00:00 2001 From: Gordon Smith Date: Mon, 29 Apr 2024 13:00:03 +0100 Subject: [PATCH 02/13] Split off 9.4.56 Signed-off-by: Gordon Smith --- helm/hpcc/Chart.yaml | 4 ++-- helm/hpcc/templates/_helpers.tpl | 2 +- helm/hpcc/templates/dafilesrv.yaml | 2 +- helm/hpcc/templates/dali.yaml | 2 +- helm/hpcc/templates/dfuserver.yaml | 2 +- helm/hpcc/templates/eclagent.yaml | 4 ++-- helm/hpcc/templates/eclccserver.yaml | 4 ++-- helm/hpcc/templates/eclscheduler.yaml | 2 +- helm/hpcc/templates/esp.yaml | 2 +- helm/hpcc/templates/localroxie.yaml | 2 +- helm/hpcc/templates/roxie.yaml | 8 ++++---- helm/hpcc/templates/sasha.yaml | 2 +- helm/hpcc/templates/thor.yaml | 10 +++++----- version.cmake | 4 ++-- 14 files changed, 25 insertions(+), 25 deletions(-) diff --git a/helm/hpcc/Chart.yaml b/helm/hpcc/Chart.yaml index f702294b31e..f7030a2510e 100644 --- a/helm/hpcc/Chart.yaml +++ b/helm/hpcc/Chart.yaml @@ -6,9 +6,9 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. -version: 9.4.55-closedown0 +version: 9.4.57-closedown0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. -appVersion: 9.4.55-closedown0 +appVersion: 9.4.57-closedown0 diff --git a/helm/hpcc/templates/_helpers.tpl b/helm/hpcc/templates/_helpers.tpl index cdf94da836b..c4ed720be71 100644 --- a/helm/hpcc/templates/_helpers.tpl +++ b/helm/hpcc/templates/_helpers.tpl @@ -1505,7 +1505,7 @@ kind: Service metadata: name: {{ $lvars.serviceName | quote }} labels: - helmVersion: 9.4.55-closedown0 + helmVersion: 9.4.57-closedown0 {{- include "hpcc.addStandardLabels" (dict "root" $.root "instance" $lvars.serviceName ) | indent 4 }} {{- if $lvars.labels }} {{ toYaml $lvars.labels | indent 4 }} diff --git a/helm/hpcc/templates/dafilesrv.yaml b/helm/hpcc/templates/dafilesrv.yaml index 93fc12aac7c..74fedcbf521 100644 --- a/helm/hpcc/templates/dafilesrv.yaml +++ b/helm/hpcc/templates/dafilesrv.yaml @@ -51,7 +51,7 @@ spec: labels: {{- include "hpcc.addStandardLabels" (dict "root" $ "component" "dafilesrv" "name" "dafilesrv" "instance" .name) | indent 8 }} server: {{ .name | quote }} - helmVersion: 9.4.55-closedown0 + helmVersion: 9.4.57-closedown0 annotations: checksum/config: {{ $configSHA }} {{- include "hpcc.generateAnnotations" $commonCtx | indent 8 }} diff --git a/helm/hpcc/templates/dali.yaml b/helm/hpcc/templates/dali.yaml index e73295a86c2..be7a50ccd27 100644 --- a/helm/hpcc/templates/dali.yaml +++ b/helm/hpcc/templates/dali.yaml @@ -84,7 +84,7 @@ spec: run: {{ $dali.name | quote }} server: {{ $dali.name | quote }} app: dali - helmVersion: 9.4.55-closedown0 + helmVersion: 9.4.57-closedown0 {{- if hasKey $.Values.global "metrics" }} {{- include "hpcc.generateMetricsReporterLabel" $.Values.global.metrics | nindent 8 }} {{- end }} diff --git a/helm/hpcc/templates/dfuserver.yaml b/helm/hpcc/templates/dfuserver.yaml index 733bd9a8309..1920fa93bf3 100644 --- a/helm/hpcc/templates/dfuserver.yaml +++ b/helm/hpcc/templates/dfuserver.yaml @@ -57,7 +57,7 @@ spec: {{- include "hpcc.addStandardLabels" (dict "root" $ "component" "dfuserver" "name" "dfuserver" "instance" .name) | indent 8 }} run: {{ .name | quote }} accessDali: "yes" - helmVersion: 9.4.55-closedown0 + helmVersion: 9.4.57-closedown0 {{- if hasKey . "labels" }} {{ toYaml .labels | indent 8 }} {{- end }} diff --git a/helm/hpcc/templates/eclagent.yaml b/helm/hpcc/templates/eclagent.yaml index d74cdefae34..e7c78cc43aa 100644 --- a/helm/hpcc/templates/eclagent.yaml +++ b/helm/hpcc/templates/eclagent.yaml @@ -60,7 +60,7 @@ data: {{- include "hpcc.addStandardLabels" (dict "root" $ "component" $apptype "name" "eclagent" "instance" $appJobName "instanceOf" (printf "%s-job" .me.name)) | indent 12 }} accessDali: "yes" accessEsp: "yes" - helmVersion: 9.4.55-closedown0 + helmVersion: 9.4.57-closedown0 {{- if hasKey .me "labels" }} {{ toYaml .me.labels | indent 12 }} {{- end }} @@ -140,7 +140,7 @@ spec: run: {{ .name | quote }} accessDali: "yes" accessEsp: {{ .useChildProcesses | default false | ternary "yes" "no" | quote }} - helmVersion: 9.4.55-closedown0 + helmVersion: 9.4.57-closedown0 {{- if hasKey . "labels" }} {{ toYaml .labels | indent 8 }} {{- end }} diff --git a/helm/hpcc/templates/eclccserver.yaml b/helm/hpcc/templates/eclccserver.yaml index ff03688c5b2..4f565f687bb 100644 --- a/helm/hpcc/templates/eclccserver.yaml +++ b/helm/hpcc/templates/eclccserver.yaml @@ -58,7 +58,7 @@ data: {{- include "hpcc.addStandardLabels" (dict "root" $ "component" "eclccserver" "name" "eclccserver" "instance" $compileJobName "instanceOf" (printf "%s-job" .me.name)) | indent 12 }} accessDali: "yes" accessEsp: "yes" - helmVersion: 9.4.55-closedown0 + helmVersion: 9.4.57-closedown0 {{- if hasKey .me "labels" }} {{ toYaml .me.labels | indent 12 }} {{- end }} @@ -146,7 +146,7 @@ spec: run: {{ .name | quote }} accessDali: "yes" accessEsp: {{ .useChildProcesses | default false | ternary "yes" "no" | quote }} - helmVersion: 9.4.55-closedown0 + helmVersion: 9.4.57-closedown0 {{- if hasKey . "labels" }} {{ toYaml .labels | indent 8 }} {{- end }} diff --git a/helm/hpcc/templates/eclscheduler.yaml b/helm/hpcc/templates/eclscheduler.yaml index 32a65f2778e..506fc7b669b 100644 --- a/helm/hpcc/templates/eclscheduler.yaml +++ b/helm/hpcc/templates/eclscheduler.yaml @@ -65,7 +65,7 @@ spec: run: {{ .name | quote }} accessDali: "yes" accessEsp: "no" - helmVersion: 9.4.55-closedown0 + helmVersion: 9.4.57-closedown0 {{- if hasKey . "labels" }} {{ toYaml .labels | indent 8 }} {{- end }} diff --git a/helm/hpcc/templates/esp.yaml b/helm/hpcc/templates/esp.yaml index 0583cdb8f1e..1a721012a07 100644 --- a/helm/hpcc/templates/esp.yaml +++ b/helm/hpcc/templates/esp.yaml @@ -122,7 +122,7 @@ spec: accessSasha: "yes" {{- end }} app: {{ $application }} - helmVersion: 9.4.55-closedown0 + helmVersion: 9.4.57-closedown0 {{- include "hpcc.addStandardLabels" (dict "root" $ "name" $application "component" "esp" "instance" .name) | indent 8 }} {{- if hasKey $.Values.global "metrics" }} {{- include "hpcc.generateMetricsReporterLabel" $.Values.global.metrics | nindent 8 }} diff --git a/helm/hpcc/templates/localroxie.yaml b/helm/hpcc/templates/localroxie.yaml index 6701077779d..491236a79fb 100644 --- a/helm/hpcc/templates/localroxie.yaml +++ b/helm/hpcc/templates/localroxie.yaml @@ -73,7 +73,7 @@ spec: server: {{ $servername | quote }} accessDali: "yes" accessEsp: "yes" - helmVersion: 9.4.55-closedown0 + helmVersion: 9.4.57-closedown0 {{- include "hpcc.addStandardLabels" (dict "root" $ "component" "roxie-server" "name" "roxie" "instance" $roxie.name) | indent 8 }} {{- if hasKey . "labels" }} {{ toYaml .labels | indent 8 }} diff --git a/helm/hpcc/templates/roxie.yaml b/helm/hpcc/templates/roxie.yaml index c1e6ccd8bd3..3d71f478863 100644 --- a/helm/hpcc/templates/roxie.yaml +++ b/helm/hpcc/templates/roxie.yaml @@ -125,7 +125,7 @@ spec: {{- include "hpcc.addStandardLabels" (dict "root" $ "component" "topology-server" "name" "roxie" "instance" $commonCtx.toponame) | indent 8 }} run: {{ $commonCtx.toponame | quote }} roxie-cluster: {{ $roxie.name | quote }} - helmVersion: 9.4.55-closedown0 + helmVersion: 9.4.57-closedown0 {{- if hasKey $.Values.global "metrics" }} {{- include "hpcc.generateMetricsReporterLabel" $.Values.global.metrics | nindent 8}} {{- end }} @@ -185,7 +185,7 @@ kind: Service metadata: name: {{ $commonCtx.toponame | quote }} labels: - helmVersion: 9.4.55-closedown0 + helmVersion: 9.4.57-closedown0 {{- include "hpcc.addStandardLabels" (dict "root" $ "component" "topology-server" "name" "roxie" "instance" $commonCtx.toponame) | indent 4 }} spec: ports: @@ -247,7 +247,7 @@ spec: roxie-cluster: {{ $roxie.name | quote }} accessDali: "yes" accessEsp: "yes" - helmVersion: 9.4.55-closedown0 + helmVersion: 9.4.57-closedown0 {{- include "hpcc.addStandardLabels" (dict "root" $ "component" "roxie-server" "name" "roxie" "instance" $servername) | indent 8 }} {{- if hasKey $.Values.global "metrics" }} {{- include "hpcc.generateMetricsReporterLabel" $.Values.global.metrics | nindent 8}} @@ -358,7 +358,7 @@ spec: roxie-cluster: {{ $roxie.name | quote }} accessDali: "yes" accessEsp: "yes" - helmVersion: 9.4.55-closedown0 + helmVersion: 9.4.57-closedown0 {{- if hasKey $.Values.global "metrics" }} {{- include "hpcc.generateMetricsReporterLabel" $.Values.global.metrics | nindent 8}} {{- end }} diff --git a/helm/hpcc/templates/sasha.yaml b/helm/hpcc/templates/sasha.yaml index ded5d91fcfb..1af852c7c08 100644 --- a/helm/hpcc/templates/sasha.yaml +++ b/helm/hpcc/templates/sasha.yaml @@ -53,7 +53,7 @@ spec: server: {{ $serviceName | quote }} app: sasha accessDali: {{ (has "dali" $sasha.access) | ternary "yes" "no" | quote }} - helmVersion: 9.4.55-closedown0 + helmVersion: 9.4.57-closedown0 {{- if hasKey $sasha "labels" }} {{ toYaml $sasha.labels | indent 8 }} {{- end }} diff --git a/helm/hpcc/templates/thor.yaml b/helm/hpcc/templates/thor.yaml index 5b2f94e7be3..3ff44235d4b 100644 --- a/helm/hpcc/templates/thor.yaml +++ b/helm/hpcc/templates/thor.yaml @@ -86,7 +86,7 @@ data: labels: accessDali: "yes" accessEsp: "yes" - helmVersion: 9.4.55-closedown0 + helmVersion: 9.4.57-closedown0 {{- include "hpcc.addStandardLabels" (dict "root" $ "component" "eclagent" "name" "thor" "instance" $eclAgentJobName "instanceOf" (printf "%s-job" .eclAgentName)) | indent 8 }} {{- if hasKey .me "labels" }} {{ toYaml .me.labels | indent 12 }} @@ -154,7 +154,7 @@ data: accessEsp: "yes" app: "thor" component: "thormanager" - helmVersion: 9.4.55-closedown0 + helmVersion: 9.4.57-closedown0 instance: "_HPCC_JOBNAME_" job: "_HPCC_JOBNAME_" {{- include "hpcc.addStandardLabels" (dict "root" $ "component" "thormanager" "name" "thor" "instance" $thorManagerJobName "instanceOf" (printf "%s-thormanager-job" .me.name)) | indent 12 }} @@ -224,7 +224,7 @@ data: accessEsp: "yes" app: "thor" component: "thorworker" - helmVersion: 9.4.55-closedown0 + helmVersion: 9.4.57-closedown0 instance: "_HPCC_JOBNAME_" job: "_HPCC_JOBNAME_" {{- include "hpcc.addStandardLabels" (dict "root" $ "component" "thorworker" "name" "thor" "instance" $thorWorkerJobName "instanceOf" (printf "%s-thorworker-job" .me.name)) | indent 12 }} @@ -360,7 +360,7 @@ spec: accessEsp: {{ $commonCtx.eclAgentUseChildProcesses | ternary "yes" "no" | quote }} app: "thor" component: "thor-eclagent" - helmVersion: 9.4.55-closedown0 + helmVersion: 9.4.57-closedown0 instance: {{ $commonCtx.eclAgentName | quote }} {{- include "hpcc.addStandardLabels" (dict "root" $ "component" "eclagent" "name" "thor" "instance" $commonCtx.eclAgentName ) | indent 8 }} {{- if hasKey $commonCtx.me "labels" }} @@ -428,7 +428,7 @@ spec: accessEsp: "no" app: "thor" component: "thor-thoragent" - helmVersion: 9.4.55-closedown0 + helmVersion: 9.4.57-closedown0 instance: {{ $commonCtx.thorAgentName | quote }} {{- include "hpcc.addStandardLabels" (dict "root" $ "component" "eclagent" "name" "thor" "instance" $commonCtx.thorAgentName ) | indent 8 }} {{- if hasKey $commonCtx.me "labels" }} diff --git a/version.cmake b/version.cmake index bfae8490374..cd9941dae9a 100644 --- a/version.cmake +++ b/version.cmake @@ -5,8 +5,8 @@ set ( HPCC_NAME "Community Edition" ) set ( HPCC_PROJECT "community" ) set ( HPCC_MAJOR 9 ) set ( HPCC_MINOR 4 ) -set ( HPCC_POINT 55 ) +set ( HPCC_POINT 57 ) set ( HPCC_MATURITY "closedown" ) set ( HPCC_SEQUENCE 0 ) -set ( HPCC_TAG_TIMESTAMP "2024-04-18T15:56:24Z" ) +set ( HPCC_TAG_TIMESTAMP "2024-04-29T12:00:02Z" ) ### From 3726170feb03a178d14a1a57069aac8ccf824208 Mon Sep 17 00:00:00 2001 From: Gordon Smith Date: Mon, 29 Apr 2024 13:01:18 +0100 Subject: [PATCH 03/13] Split off 9.2.82 Signed-off-by: Gordon Smith --- helm/hpcc/Chart.yaml | 4 ++-- helm/hpcc/templates/_helpers.tpl | 2 +- helm/hpcc/templates/dafilesrv.yaml | 2 +- helm/hpcc/templates/dali.yaml | 2 +- helm/hpcc/templates/dfuserver.yaml | 2 +- helm/hpcc/templates/eclagent.yaml | 4 ++-- helm/hpcc/templates/eclccserver.yaml | 4 ++-- helm/hpcc/templates/eclscheduler.yaml | 2 +- helm/hpcc/templates/esp.yaml | 2 +- helm/hpcc/templates/localroxie.yaml | 2 +- helm/hpcc/templates/roxie.yaml | 8 ++++---- helm/hpcc/templates/sasha.yaml | 2 +- helm/hpcc/templates/thor.yaml | 10 +++++----- version.cmake | 4 ++-- 14 files changed, 25 insertions(+), 25 deletions(-) diff --git a/helm/hpcc/Chart.yaml b/helm/hpcc/Chart.yaml index 3d09b29334e..dff8f777966 100644 --- a/helm/hpcc/Chart.yaml +++ b/helm/hpcc/Chart.yaml @@ -6,9 +6,9 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. -version: 9.2.81-closedown0 +version: 9.2.83-closedown0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. -appVersion: 9.2.81-closedown0 +appVersion: 9.2.83-closedown0 diff --git a/helm/hpcc/templates/_helpers.tpl b/helm/hpcc/templates/_helpers.tpl index 79ec852c427..6b0b89fc9d0 100644 --- a/helm/hpcc/templates/_helpers.tpl +++ b/helm/hpcc/templates/_helpers.tpl @@ -1405,7 +1405,7 @@ kind: Service metadata: name: {{ $lvars.serviceName | quote }} labels: - helmVersion: 9.2.81-closedown0 + helmVersion: 9.2.83-closedown0 {{- include "hpcc.addStandardLabels" (dict "root" $.root "instance" $lvars.serviceName ) | indent 4 }} {{- if $lvars.labels }} {{ toYaml $lvars.labels | indent 4 }} diff --git a/helm/hpcc/templates/dafilesrv.yaml b/helm/hpcc/templates/dafilesrv.yaml index 5004b29a224..6daa218d767 100644 --- a/helm/hpcc/templates/dafilesrv.yaml +++ b/helm/hpcc/templates/dafilesrv.yaml @@ -50,7 +50,7 @@ spec: labels: {{- include "hpcc.addStandardLabels" (dict "root" $ "component" "dafilesrv" "name" "dafilesrv" "instance" .name) | indent 8 }} server: {{ .name | quote }} - helmVersion: 9.2.81-closedown0 + helmVersion: 9.2.83-closedown0 annotations: checksum/config: {{ $configSHA }} {{- include "hpcc.generateAnnotations" $commonCtx | indent 8 }} diff --git a/helm/hpcc/templates/dali.yaml b/helm/hpcc/templates/dali.yaml index 589abe8e84b..a17e4bbb1f5 100644 --- a/helm/hpcc/templates/dali.yaml +++ b/helm/hpcc/templates/dali.yaml @@ -82,7 +82,7 @@ spec: run: {{ $dali.name | quote }} server: {{ $dali.name | quote }} app: dali - helmVersion: 9.2.81-closedown0 + helmVersion: 9.2.83-closedown0 {{- if hasKey $.Values.global "metrics" }} {{- include "hpcc.generateMetricsReporterLabel" $.Values.global.metrics | nindent 8 }} {{- end }} diff --git a/helm/hpcc/templates/dfuserver.yaml b/helm/hpcc/templates/dfuserver.yaml index c266342fec5..4ef82d8cc45 100644 --- a/helm/hpcc/templates/dfuserver.yaml +++ b/helm/hpcc/templates/dfuserver.yaml @@ -56,7 +56,7 @@ spec: {{- include "hpcc.addStandardLabels" (dict "root" $ "component" "dfuserver" "name" "dfuserver" "instance" .name) | indent 8 }} run: {{ .name | quote }} accessDali: "yes" - helmVersion: 9.2.81-closedown0 + helmVersion: 9.2.83-closedown0 {{- if hasKey . "labels" }} {{ toYaml .labels | indent 8 }} {{- end }} diff --git a/helm/hpcc/templates/eclagent.yaml b/helm/hpcc/templates/eclagent.yaml index c4deb3d7af1..dcda7f82b8a 100644 --- a/helm/hpcc/templates/eclagent.yaml +++ b/helm/hpcc/templates/eclagent.yaml @@ -58,7 +58,7 @@ data: {{- include "hpcc.addStandardLabels" (dict "root" $ "component" $apptype "name" "eclagent" "instance" $appJobName "instanceOf" (printf "%s-job" .me.name)) | indent 12 }} accessDali: "yes" accessEsp: "yes" - helmVersion: 9.2.81-closedown0 + helmVersion: 9.2.83-closedown0 {{- if hasKey .me "labels" }} {{ toYaml .me.labels | indent 12 }} {{- end }} @@ -133,7 +133,7 @@ spec: run: {{ .name | quote }} accessDali: "yes" accessEsp: {{ .useChildProcesses | default false | ternary "yes" "no" | quote }} - helmVersion: 9.2.81-closedown0 + helmVersion: 9.2.83-closedown0 {{- if hasKey . "labels" }} {{ toYaml .labels | indent 8 }} {{- end }} diff --git a/helm/hpcc/templates/eclccserver.yaml b/helm/hpcc/templates/eclccserver.yaml index 14c8b4e647c..0a6373d731e 100644 --- a/helm/hpcc/templates/eclccserver.yaml +++ b/helm/hpcc/templates/eclccserver.yaml @@ -57,7 +57,7 @@ data: {{- include "hpcc.addStandardLabels" (dict "root" $ "component" "eclccserver" "name" "eclccserver" "instance" $compileJobName "instanceOf" (printf "%s-job" .me.name)) | indent 12 }} accessDali: "yes" accessEsp: "yes" - helmVersion: 9.2.81-closedown0 + helmVersion: 9.2.83-closedown0 {{- if hasKey .me "labels" }} {{ toYaml .me.labels | indent 12 }} {{- end }} @@ -140,7 +140,7 @@ spec: run: {{ .name | quote }} accessDali: "yes" accessEsp: {{ .useChildProcesses | default false | ternary "yes" "no" | quote }} - helmVersion: 9.2.81-closedown0 + helmVersion: 9.2.83-closedown0 {{- if hasKey . "labels" }} {{ toYaml .labels | indent 8 }} {{- end }} diff --git a/helm/hpcc/templates/eclscheduler.yaml b/helm/hpcc/templates/eclscheduler.yaml index a4b3b7c7d04..e9b9b2b025a 100644 --- a/helm/hpcc/templates/eclscheduler.yaml +++ b/helm/hpcc/templates/eclscheduler.yaml @@ -64,7 +64,7 @@ spec: run: {{ .name | quote }} accessDali: "yes" accessEsp: "no" - helmVersion: 9.2.81-closedown0 + helmVersion: 9.2.83-closedown0 {{- if hasKey . "labels" }} {{ toYaml .labels | indent 8 }} {{- end }} diff --git a/helm/hpcc/templates/esp.yaml b/helm/hpcc/templates/esp.yaml index c5cfb8369b9..057c7c1905f 100644 --- a/helm/hpcc/templates/esp.yaml +++ b/helm/hpcc/templates/esp.yaml @@ -120,7 +120,7 @@ spec: accessSasha: "yes" {{- end }} app: {{ $application }} - helmVersion: 9.2.81-closedown0 + helmVersion: 9.2.83-closedown0 {{- include "hpcc.addStandardLabels" (dict "root" $ "name" $application "component" "esp" "instance" .name) | indent 8 }} {{- if hasKey $.Values.global "metrics" }} {{- include "hpcc.generateMetricsReporterLabel" $.Values.global.metrics | nindent 8 }} diff --git a/helm/hpcc/templates/localroxie.yaml b/helm/hpcc/templates/localroxie.yaml index d1968e4f0a1..f6ee122a411 100644 --- a/helm/hpcc/templates/localroxie.yaml +++ b/helm/hpcc/templates/localroxie.yaml @@ -70,7 +70,7 @@ spec: server: {{ $servername | quote }} accessDali: "yes" accessEsp: "yes" - helmVersion: 9.2.81-closedown0 + helmVersion: 9.2.83-closedown0 {{- include "hpcc.addStandardLabels" (dict "root" $ "component" "roxie-server" "name" "roxie" "instance" $roxie.name) | indent 8 }} {{- if hasKey . "labels" }} {{ toYaml .labels | indent 8 }} diff --git a/helm/hpcc/templates/roxie.yaml b/helm/hpcc/templates/roxie.yaml index b76c11fbb7f..8e76e44d3eb 100644 --- a/helm/hpcc/templates/roxie.yaml +++ b/helm/hpcc/templates/roxie.yaml @@ -120,7 +120,7 @@ spec: {{- include "hpcc.addStandardLabels" (dict "root" $ "component" "topology-server" "name" "roxie" "instance" $commonCtx.toponame) | indent 8 }} run: {{ $commonCtx.toponame | quote }} roxie-cluster: {{ $roxie.name | quote }} - helmVersion: 9.2.81-closedown0 + helmVersion: 9.2.83-closedown0 {{- if hasKey $.Values.global "metrics" }} {{- include "hpcc.generateMetricsReporterLabel" $.Values.global.metrics | nindent 8}} {{- end }} @@ -178,7 +178,7 @@ kind: Service metadata: name: {{ $commonCtx.toponame | quote }} labels: - helmVersion: 9.2.81-closedown0 + helmVersion: 9.2.83-closedown0 {{- include "hpcc.addStandardLabels" (dict "root" $ "component" "topology-server" "name" "roxie" "instance" $commonCtx.toponame) | indent 4 }} spec: ports: @@ -240,7 +240,7 @@ spec: roxie-cluster: {{ $roxie.name | quote }} accessDali: "yes" accessEsp: "yes" - helmVersion: 9.2.81-closedown0 + helmVersion: 9.2.83-closedown0 {{- include "hpcc.addStandardLabels" (dict "root" $ "component" "roxie-server" "name" "roxie" "instance" $servername) | indent 8 }} {{- if hasKey $.Values.global "metrics" }} {{- include "hpcc.generateMetricsReporterLabel" $.Values.global.metrics | nindent 8}} @@ -346,7 +346,7 @@ spec: roxie-cluster: {{ $roxie.name | quote }} accessDali: "yes" accessEsp: "yes" - helmVersion: 9.2.81-closedown0 + helmVersion: 9.2.83-closedown0 {{- if hasKey $.Values.global "metrics" }} {{- include "hpcc.generateMetricsReporterLabel" $.Values.global.metrics | nindent 8}} {{- end }} diff --git a/helm/hpcc/templates/sasha.yaml b/helm/hpcc/templates/sasha.yaml index 1a425ab70a5..cb3220416ba 100644 --- a/helm/hpcc/templates/sasha.yaml +++ b/helm/hpcc/templates/sasha.yaml @@ -53,7 +53,7 @@ spec: server: {{ $serviceName | quote }} app: sasha accessDali: {{ (has "dali" $sasha.access) | ternary "yes" "no" | quote }} - helmVersion: 9.2.81-closedown0 + helmVersion: 9.2.83-closedown0 {{- if hasKey $sasha "labels" }} {{ toYaml $sasha.labels | indent 8 }} {{- end }} diff --git a/helm/hpcc/templates/thor.yaml b/helm/hpcc/templates/thor.yaml index 6e8c89e7d8a..5ab2e59f417 100644 --- a/helm/hpcc/templates/thor.yaml +++ b/helm/hpcc/templates/thor.yaml @@ -82,7 +82,7 @@ data: labels: accessDali: "yes" accessEsp: "yes" - helmVersion: 9.2.81-closedown0 + helmVersion: 9.2.83-closedown0 {{- include "hpcc.addStandardLabels" (dict "root" $ "component" "eclagent" "name" "thor" "instance" $eclAgentJobName "instanceOf" (printf "%s-job" .eclAgentName)) | indent 8 }} {{- if hasKey .me "labels" }} {{ toYaml .me.labels | indent 12 }} @@ -145,7 +145,7 @@ data: accessEsp: "yes" app: "thor" component: "thormanager" - helmVersion: 9.2.81-closedown0 + helmVersion: 9.2.83-closedown0 instance: "_HPCC_JOBNAME_" job: "_HPCC_JOBNAME_" {{- include "hpcc.addStandardLabels" (dict "root" $ "component" "thormanager" "name" "thor" "instance" $thorManagerJobName "instanceOf" (printf "%s-thormanager-job" .me.name)) | indent 12 }} @@ -210,7 +210,7 @@ data: accessEsp: "yes" app: "thor" component: "thorworker" - helmVersion: 9.2.81-closedown0 + helmVersion: 9.2.83-closedown0 instance: "_HPCC_JOBNAME_" job: "_HPCC_JOBNAME_" {{- include "hpcc.addStandardLabels" (dict "root" $ "component" "thorworker" "name" "thor" "instance" $thorWorkerJobName "instanceOf" (printf "%s-thorworker-job" .me.name)) | indent 12 }} @@ -341,7 +341,7 @@ spec: accessEsp: {{ $commonCtx.eclAgentUseChildProcesses | ternary "yes" "no" | quote }} app: "thor" component: "thor-eclagent" - helmVersion: 9.2.81-closedown0 + helmVersion: 9.2.83-closedown0 instance: {{ $commonCtx.eclAgentName | quote }} {{- include "hpcc.addStandardLabels" (dict "root" $ "component" "eclagent" "name" "thor" "instance" $commonCtx.eclAgentName ) | indent 8 }} {{- if hasKey $commonCtx.me "labels" }} @@ -404,7 +404,7 @@ spec: accessEsp: "no" app: "thor" component: "thor-thoragent" - helmVersion: 9.2.81-closedown0 + helmVersion: 9.2.83-closedown0 instance: {{ $commonCtx.thorAgentName | quote }} {{- include "hpcc.addStandardLabels" (dict "root" $ "component" "eclagent" "name" "thor" "instance" $commonCtx.thorAgentName ) | indent 8 }} {{- if hasKey $commonCtx.me "labels" }} diff --git a/version.cmake b/version.cmake index e16620e573f..d89f18aba25 100644 --- a/version.cmake +++ b/version.cmake @@ -5,8 +5,8 @@ set ( HPCC_NAME "Community Edition" ) set ( HPCC_PROJECT "community" ) set ( HPCC_MAJOR 9 ) set ( HPCC_MINOR 2 ) -set ( HPCC_POINT 81 ) +set ( HPCC_POINT 83 ) set ( HPCC_MATURITY "closedown" ) set ( HPCC_SEQUENCE 0 ) -set ( HPCC_TAG_TIMESTAMP "2024-04-18T15:55:36Z" ) +set ( HPCC_TAG_TIMESTAMP "2024-04-29T12:01:17Z" ) ### From 2c51b0d010063ed149999ae7005f1a8cce6337d9 Mon Sep 17 00:00:00 2001 From: Jack Del Vecchio Date: Thu, 18 Apr 2024 20:09:15 +0000 Subject: [PATCH 04/13] HPCC-31643 Parquet Plugin does not support VARUNICODE --- plugins/parquet/parquetembed.cpp | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/plugins/parquet/parquetembed.cpp b/plugins/parquet/parquetembed.cpp index e247c3fb07c..fbca95cff2b 100644 --- a/plugins/parquet/parquetembed.cpp +++ b/plugins/parquet/parquetembed.cpp @@ -722,24 +722,13 @@ arrow::Status ParquetWriter::fieldToNode(const std::string &name, const RtlField case type_real: arrowFields.push_back(std::make_shared(name, arrow::float64())); break; - case type_string: - arrowFields.push_back(std::make_shared(name, arrow::utf8())); - break; case type_char: - arrowFields.push_back(std::make_shared(name, arrow::utf8())); - break; + case type_string: case type_varstring: - arrowFields.push_back(std::make_shared(name, arrow::utf8())); - break; case type_qstring: - arrowFields.push_back(std::make_shared(name, arrow::utf8())); - break; - case type_unicode: - arrowFields.push_back(std::make_shared(name, arrow::utf8())); - break; case type_utf8: - arrowFields.push_back(std::make_shared(name, arrow::utf8())); - break; + case type_unicode: + case type_varunicode: case type_decimal: arrowFields.push_back(std::make_shared(name, arrow::utf8())); //TODO add decimal encoding break; From 988957bb56c4a22a9ff7b316559e632d00ef341d Mon Sep 17 00:00:00 2001 From: Gavin Halliday Date: Mon, 29 Apr 2024 15:57:37 +0100 Subject: [PATCH 05/13] HPCC-31700 Remove internal requirement to supply password sometimes Signed-off-by: Gavin Halliday --- common/pkgfiles/referencedfilelist.cpp | 2 +- esp/services/ws_packageprocess/ws_packageprocessService.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/common/pkgfiles/referencedfilelist.cpp b/common/pkgfiles/referencedfilelist.cpp index f7c1b0884bd..837a1ee1e4f 100644 --- a/common/pkgfiles/referencedfilelist.cpp +++ b/common/pkgfiles/referencedfilelist.cpp @@ -228,7 +228,7 @@ class ReferencedFileList : implements IReferencedFileList, public CInterface ReferencedFileList(const char *username, const char *pw, bool allowForeignFiles, bool allowFileSizeCalc, const char *_jobname) : jobName(_jobname), allowForeign(allowForeignFiles), allowSizeCalc(allowFileSizeCalc) { - if (username && pw) + if (username) { user.setown(createUserDescriptor()); user->set(username, pw); diff --git a/esp/services/ws_packageprocess/ws_packageprocessService.cpp b/esp/services/ws_packageprocess/ws_packageprocessService.cpp index 442896cd7a0..3fc6110b5d9 100644 --- a/esp/services/ws_packageprocess/ws_packageprocessService.cpp +++ b/esp/services/ws_packageprocess/ws_packageprocessService.cpp @@ -319,7 +319,7 @@ class PackageMapUpdater } void setUser(const char *user, const char *password, IEspContext *context) { - if (user && *user && password && *password) + if (user && *user) { userdesc.setown(createUserDescriptor()); userdesc->set(user, password); From dba56f8f30b212fe0a093246882501b3faef2751 Mon Sep 17 00:00:00 2001 From: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> Date: Mon, 29 Apr 2024 16:56:44 -0400 Subject: [PATCH 06/13] HPCC-29961 ECL Watch v5 fix recent filter links Fix conflicts between quite old PRs HPCC-23619 (added Recent Filters) and HPCC-24795 (partially removed them). The net result for this PR is that "Recent Filters" links now open with the correct data, while other "Open in New Window" links will not do so with unnecessarily long URLs Signed-off-by: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> --- esp/src/eclwatch/_Widget.js | 8 ++++---- esp/src/src/react/recentFilters.tsx | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/esp/src/eclwatch/_Widget.js b/esp/src/eclwatch/_Widget.js index cdcb068b575..6b807662b8a 100644 --- a/esp/src/eclwatch/_Widget.js +++ b/esp/src/eclwatch/_Widget.js @@ -130,13 +130,13 @@ define([ return retVal; }, - getURL: function () { + getURL: function (componentFilterParams) { var baseUrl = document.URL.split("#")[0].replace("index.html", "stub.htm"); var baseUrlParts = baseUrl.split("?"); baseUrl = baseUrlParts[0]; var args = baseUrlParts[1]; delete this.params.__filter; - var filterParams = this.getFilterParams(); + var filterParams = componentFilterParams ? componentFilterParams : this.getFilterParams(); if (filterParams) { this.params.__filter = ioQuery.objectToQuery(filterParams); } @@ -144,8 +144,8 @@ define([ return baseUrl + "?" + paramsString; }, - _onNewPage: function (event) { - var win = window.open(this.getURL(), "_blank"); + _onNewPage: function (_event, componentFilterParams) { + var win = window.open(this.getURL(componentFilterParams), "_blank"); if (win) { win.focus(); } diff --git a/esp/src/src/react/recentFilters.tsx b/esp/src/src/react/recentFilters.tsx index f9625e243e2..2a6d70e1a1b 100644 --- a/esp/src/src/react/recentFilters.tsx +++ b/esp/src/src/react/recentFilters.tsx @@ -37,7 +37,7 @@ export const RecentFilters: React.FunctionComponent = ({ const handleClick = (e) => { const tempObj = JSON.parse(decodeURIComponent(e.currentTarget.value)); - widget.NewPage.onClick(tempObj); + widget.NewPage.onClick(e, tempObj); }; const shimmerElements = React.useMemo(() => [ From 97fbfa556533f65b67ff51f544630f0f2c5f78c6 Mon Sep 17 00:00:00 2001 From: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> Date: Tue, 30 Apr 2024 13:52:04 -0400 Subject: [PATCH 07/13] HPCC-31708 ECL Watch v9 ZAP Dialog containerized log options The ZAP dialog should display the "Include worker logs" checkbox on bare-metal; the "Include related logs" & "Include per-component logs" checkboxes on containerized envs. Signed-off-by: Jeremy Clements <79224539+jeclrsg@users.noreply.github.com> --- .../src-react/components/forms/ZAPDialog.tsx | 52 ++++++++++--------- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/esp/src/src-react/components/forms/ZAPDialog.tsx b/esp/src/src-react/components/forms/ZAPDialog.tsx index 2ee5225dd60..74574bdf4a2 100644 --- a/esp/src/src-react/components/forms/ZAPDialog.tsx +++ b/esp/src/src-react/components/forms/ZAPDialog.tsx @@ -376,30 +376,34 @@ export const ZAPDialog: React.FunctionComponent = ({ />} />
-
- } - /> -
-
- } - /> -
-
- } - /> -
+ {!isContainer + ?
+ } + /> +
+ :
+
+ } + /> +
+
+ } + /> +
+
+ }
Date: Tue, 30 Apr 2024 20:07:50 -0500 Subject: [PATCH 08/13] HPCC-31452 Fix coverity-flagged move semantics defect Use result.get() to force the ternary operator to see its args as const char*. Defect appeared to be a false positive until Gavin pointed out that the StringAttr conversion constructor for const char* may be causing the ternary operator to use StringAttr temporaries. Coverity likely saw that as an opportunity for optimization with move. However, the ambiguous multiple paths for implicit type conversion is the true problem which may have raised an error in the future. Signed-off-by: Terrence Asselin --- esp/services/ws_dali/ws_daliservice.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/esp/services/ws_dali/ws_daliservice.cpp b/esp/services/ws_dali/ws_daliservice.cpp index 5382963ea1f..22bf64346bc 100644 --- a/esp/services/ws_dali/ws_daliservice.cpp +++ b/esp/services/ws_dali/ws_daliservice.cpp @@ -718,7 +718,7 @@ bool CWSDaliEx::onSetTraceSlowTransactions(IEspContext& context, IEspSetTraceSlo StringAttr result; mb.read(result); - resp.setResult(result.isEmpty() ? "SetTraceSlowTransactions called." : result); + resp.setResult(result.isEmpty() ? "SetTraceSlowTransactions called." : result.get()); } catch(IException* e) { From 78502b883accc96c01304f5a8d0637c516748b59 Mon Sep 17 00:00:00 2001 From: Gordon Smith Date: Thu, 18 Apr 2024 08:41:45 +0100 Subject: [PATCH 09/13] HPCC-31629 Bump WsWorkunits to latest version Signed-off-by: Gordon Smith --- esp/src/package-lock.json | 470 +++--------------- esp/src/package.json | 26 +- esp/src/src-react/components/ECLArchive.tsx | 10 +- esp/src/src-react/components/Metrics.tsx | 6 +- .../src-react/components/WorkunitSummary.tsx | 8 +- .../components/WorkunitsDashboard.tsx | 6 +- esp/src/src-react/hooks/metrics.ts | 36 +- esp/src/src-react/hooks/workunit.ts | 22 +- esp/src/src/ECLArchiveWidget.ts | 10 +- esp/src/src/ESPWorkunit.ts | 12 +- esp/src/src/Timings.ts | 12 +- esp/src/src/WUScopeController.ts | 12 +- 12 files changed, 152 insertions(+), 478 deletions(-) diff --git a/esp/src/package-lock.json b/esp/src/package-lock.json index 49af70f060a..84c45e73947 100644 --- a/esp/src/package-lock.json +++ b/esp/src/package-lock.json @@ -15,21 +15,21 @@ "@fluentui/react-hooks": "8.7.0", "@fluentui/react-icons-mdl2": "1.3.59", "@fluentui/react-migration-v8-v9": "9.6.3", - "@hpcc-js/chart": "2.83.1", - "@hpcc-js/codemirror": "2.61.2", - "@hpcc-js/common": "2.71.15", - "@hpcc-js/comms": "2.91.3", + "@hpcc-js/chart": "2.83.2", + "@hpcc-js/codemirror": "2.61.3", + "@hpcc-js/common": "2.71.16", + "@hpcc-js/comms": "2.92.0", "@hpcc-js/dataflow": "8.1.6", "@hpcc-js/eclwatch": "2.74.2", - "@hpcc-js/graph": "2.85.13", - "@hpcc-js/html": "2.42.18", - "@hpcc-js/layout": "2.49.20", - "@hpcc-js/map": "2.77.19", - "@hpcc-js/other": "2.15.20", - "@hpcc-js/phosphor": "2.18.6", - "@hpcc-js/react": "2.53.14", - "@hpcc-js/tree": "2.40.15", - "@hpcc-js/util": "2.50.6", + "@hpcc-js/graph": "2.85.14", + "@hpcc-js/html": "2.42.19", + "@hpcc-js/layout": "2.49.21", + "@hpcc-js/map": "2.77.20", + "@hpcc-js/other": "2.15.21", + "@hpcc-js/phosphor": "2.18.7", + "@hpcc-js/react": "2.53.15", + "@hpcc-js/tree": "2.40.16", + "@hpcc-js/util": "2.51.0", "@kubernetes/client-node": "0.20.0", "clipboard": "2.0.11", "d3-dsv": "3.0.1", @@ -1813,61 +1813,30 @@ "@hpcc-js/common": "^2.71.16" } }, - "node_modules/@hpcc-js/api/node_modules/@hpcc-js/common": { - "version": "2.71.16", - "resolved": "https://registry.npmjs.org/@hpcc-js/common/-/common-2.71.16.tgz", - "integrity": "sha512-hz5i9zUXBJrXW5tl30XwgFXwJ2nipzLD9pXQrg1Rw8zfXkQ1Xax22RvGZdASAGPsmHxefyWTK7fpcJd+ipOGOg==", - "dependencies": { - "@hpcc-js/util": "^2.51.0", - "@types/d3-array": "1.2.12", - "@types/d3-brush": "1.1.8", - "@types/d3-collection": "1.0.13", - "@types/d3-color": "1.4.5", - "@types/d3-dispatch": "1.0.12", - "@types/d3-drag": "1.2.8", - "@types/d3-dsv": "1.2.8", - "@types/d3-ease": "1.0.13", - "@types/d3-format": "1.4.5", - "@types/d3-interpolate": "1.4.5", - "@types/d3-scale": "1.0.22", - "@types/d3-selection": "1.4.6", - "@types/d3-time-format": "2.3.4", - "@types/d3-transition": "1.3.5", - "@types/d3-zoom": "1.8.7" - } - }, - "node_modules/@hpcc-js/api/node_modules/@hpcc-js/util": { - "version": "2.51.0", - "resolved": "https://registry.npmjs.org/@hpcc-js/util/-/util-2.51.0.tgz", - "integrity": "sha512-xTcU3JhXA0OZQgu2LBLt7rh2O+107IILlEzUIBSS/rR/hVaVOKZK/Jtm5aMIevoAqD/XvKLf8RzurwCF7j/ccw==", - "dependencies": { - "tslib": "2.6.2" - } - }, "node_modules/@hpcc-js/chart": { - "version": "2.83.1", - "resolved": "https://registry.npmjs.org/@hpcc-js/chart/-/chart-2.83.1.tgz", - "integrity": "sha512-Ns8IHPIbtg5diEDiUEBqeNfIfs23k7RppJbAt8ydLaNLh8pN0/sjZBNf7IApgZHwZlI0SpNYRFtLE+cHJ+lNSg==", + "version": "2.83.2", + "resolved": "https://registry.npmjs.org/@hpcc-js/chart/-/chart-2.83.2.tgz", + "integrity": "sha512-PePaV/68if4dp+iBDpmBwRbTfOsKht8DkZ7B8NafKfGxL1+khCXf4p4Q/Dlgqig1OfVt35z1eR4lbEUrARhVJw==", "dependencies": { - "@hpcc-js/api": "^2.12.15", - "@hpcc-js/common": "^2.71.15", - "@hpcc-js/util": "^2.50.6" + "@hpcc-js/api": "^2.12.16", + "@hpcc-js/common": "^2.71.16", + "@hpcc-js/util": "^2.51.0" } }, "node_modules/@hpcc-js/codemirror": { - "version": "2.61.2", - "resolved": "https://registry.npmjs.org/@hpcc-js/codemirror/-/codemirror-2.61.2.tgz", - "integrity": "sha512-gwbskqoo0iZpdv4E9onqxMqLQW6nj5b3llL/4yPaT1XJVilC57eh394iQF+qt86H39VRSh/OWmTEzJIHNoLnYw==", + "version": "2.61.3", + "resolved": "https://registry.npmjs.org/@hpcc-js/codemirror/-/codemirror-2.61.3.tgz", + "integrity": "sha512-GKLuro8GiMUKu9sCoIsyIXMRbTogG3xGb/yvAuoAKcJQRyJsVamLB7ohyjZkcgY7/JWa3+UBUcABOxiWqG8M/Q==", "dependencies": { - "@hpcc-js/common": "^2.71.15" + "@hpcc-js/common": "^2.71.16" } }, "node_modules/@hpcc-js/common": { - "version": "2.71.15", - "resolved": "https://registry.npmjs.org/@hpcc-js/common/-/common-2.71.15.tgz", - "integrity": "sha512-uosRQo3DVGAKsCyYVqCk88n44E0TXbkKGViOtsinBYHDuwqUMihWAiXcaVnRTOeu3H57pA43kC8NdYq9JeEjaA==", + "version": "2.71.16", + "resolved": "https://registry.npmjs.org/@hpcc-js/common/-/common-2.71.16.tgz", + "integrity": "sha512-hz5i9zUXBJrXW5tl30XwgFXwJ2nipzLD9pXQrg1Rw8zfXkQ1Xax22RvGZdASAGPsmHxefyWTK7fpcJd+ipOGOg==", "dependencies": { - "@hpcc-js/util": "^2.50.6", + "@hpcc-js/util": "^2.51.0", "@types/d3-array": "1.2.12", "@types/d3-brush": "1.1.8", "@types/d3-collection": "1.0.13", @@ -1886,18 +1855,18 @@ } }, "node_modules/@hpcc-js/comms": { - "version": "2.91.3", - "resolved": "https://registry.npmjs.org/@hpcc-js/comms/-/comms-2.91.3.tgz", - "integrity": "sha512-1LN1C7HihX+rPUMOcpBObd2BkQk8OpJZO+8YlYEOrbbs3diaNT1HJN1Q6rV7bnXDu4jZN3lZrAxwsDVJqK8w8A==", + "version": "2.92.0", + "resolved": "https://registry.npmjs.org/@hpcc-js/comms/-/comms-2.92.0.tgz", + "integrity": "sha512-hGWFUIywb/DHR/yk43C911JY9mwNrion/wt71adfjbckjQJ267GjPkw4tyz8K1YGt5NgCCW+njnR6lAkpjYGfw==", "dependencies": { "@hpcc-js/ddl-shim": "^2.20.6", - "@hpcc-js/util": "^2.50.6", + "@hpcc-js/util": "^2.51.0", "@xmldom/xmldom": "0.8.10", "abort-controller": "3.0.0", "node-fetch": "2.7.0", "safe-buffer": "5.2.1", "tmp": "0.2.3", - "undici": "5.28.3" + "undici": "5.28.4" } }, "node_modules/@hpcc-js/comms/node_modules/safe-buffer": { @@ -1952,37 +1921,6 @@ "resolved": "https://registry.npmjs.org/@hpcc-js/dgrid-shim/-/dgrid-shim-2.24.10.tgz", "integrity": "sha512-4PD4GvKn2/HQvgzeP+Gd0Halj4KySk0QW1C7dqfyNWV8AUaseT9SSUvyu2ftGPUrzq65sJ0fSaq4zh3Js9dbaQ==" }, - "node_modules/@hpcc-js/dgrid/node_modules/@hpcc-js/common": { - "version": "2.71.16", - "resolved": "https://registry.npmjs.org/@hpcc-js/common/-/common-2.71.16.tgz", - "integrity": "sha512-hz5i9zUXBJrXW5tl30XwgFXwJ2nipzLD9pXQrg1Rw8zfXkQ1Xax22RvGZdASAGPsmHxefyWTK7fpcJd+ipOGOg==", - "dependencies": { - "@hpcc-js/util": "^2.51.0", - "@types/d3-array": "1.2.12", - "@types/d3-brush": "1.1.8", - "@types/d3-collection": "1.0.13", - "@types/d3-color": "1.4.5", - "@types/d3-dispatch": "1.0.12", - "@types/d3-drag": "1.2.8", - "@types/d3-dsv": "1.2.8", - "@types/d3-ease": "1.0.13", - "@types/d3-format": "1.4.5", - "@types/d3-interpolate": "1.4.5", - "@types/d3-scale": "1.0.22", - "@types/d3-selection": "1.4.6", - "@types/d3-time-format": "2.3.4", - "@types/d3-transition": "1.3.5", - "@types/d3-zoom": "1.8.7" - } - }, - "node_modules/@hpcc-js/dgrid/node_modules/@hpcc-js/util": { - "version": "2.51.0", - "resolved": "https://registry.npmjs.org/@hpcc-js/util/-/util-2.51.0.tgz", - "integrity": "sha512-xTcU3JhXA0OZQgu2LBLt7rh2O+107IILlEzUIBSS/rR/hVaVOKZK/Jtm5aMIevoAqD/XvKLf8RzurwCF7j/ccw==", - "dependencies": { - "tslib": "2.6.2" - } - }, "node_modules/@hpcc-js/dgrid2": { "version": "2.3.18", "resolved": "https://registry.npmjs.org/@hpcc-js/dgrid2/-/dgrid2-2.3.18.tgz", @@ -1993,37 +1931,6 @@ "@hpcc-js/util": "^2.51.0" } }, - "node_modules/@hpcc-js/dgrid2/node_modules/@hpcc-js/common": { - "version": "2.71.16", - "resolved": "https://registry.npmjs.org/@hpcc-js/common/-/common-2.71.16.tgz", - "integrity": "sha512-hz5i9zUXBJrXW5tl30XwgFXwJ2nipzLD9pXQrg1Rw8zfXkQ1Xax22RvGZdASAGPsmHxefyWTK7fpcJd+ipOGOg==", - "dependencies": { - "@hpcc-js/util": "^2.51.0", - "@types/d3-array": "1.2.12", - "@types/d3-brush": "1.1.8", - "@types/d3-collection": "1.0.13", - "@types/d3-color": "1.4.5", - "@types/d3-dispatch": "1.0.12", - "@types/d3-drag": "1.2.8", - "@types/d3-dsv": "1.2.8", - "@types/d3-ease": "1.0.13", - "@types/d3-format": "1.4.5", - "@types/d3-interpolate": "1.4.5", - "@types/d3-scale": "1.0.22", - "@types/d3-selection": "1.4.6", - "@types/d3-time-format": "2.3.4", - "@types/d3-transition": "1.3.5", - "@types/d3-zoom": "1.8.7" - } - }, - "node_modules/@hpcc-js/dgrid2/node_modules/@hpcc-js/util": { - "version": "2.51.0", - "resolved": "https://registry.npmjs.org/@hpcc-js/util/-/util-2.51.0.tgz", - "integrity": "sha512-xTcU3JhXA0OZQgu2LBLt7rh2O+107IILlEzUIBSS/rR/hVaVOKZK/Jtm5aMIevoAqD/XvKLf8RzurwCF7j/ccw==", - "dependencies": { - "tslib": "2.6.2" - } - }, "node_modules/@hpcc-js/eclwatch": { "version": "2.74.2", "resolved": "https://registry.npmjs.org/@hpcc-js/eclwatch/-/eclwatch-2.74.2.tgz", @@ -2041,63 +1948,7 @@ "@hpcc-js/util": "^2.51.0" } }, - "node_modules/@hpcc-js/eclwatch/node_modules/@hpcc-js/chart": { - "version": "2.83.2", - "resolved": "https://registry.npmjs.org/@hpcc-js/chart/-/chart-2.83.2.tgz", - "integrity": "sha512-PePaV/68if4dp+iBDpmBwRbTfOsKht8DkZ7B8NafKfGxL1+khCXf4p4Q/Dlgqig1OfVt35z1eR4lbEUrARhVJw==", - "dependencies": { - "@hpcc-js/api": "^2.12.16", - "@hpcc-js/common": "^2.71.16", - "@hpcc-js/util": "^2.51.0" - } - }, - "node_modules/@hpcc-js/eclwatch/node_modules/@hpcc-js/codemirror": { - "version": "2.61.3", - "resolved": "https://registry.npmjs.org/@hpcc-js/codemirror/-/codemirror-2.61.3.tgz", - "integrity": "sha512-GKLuro8GiMUKu9sCoIsyIXMRbTogG3xGb/yvAuoAKcJQRyJsVamLB7ohyjZkcgY7/JWa3+UBUcABOxiWqG8M/Q==", - "dependencies": { - "@hpcc-js/common": "^2.71.16" - } - }, - "node_modules/@hpcc-js/eclwatch/node_modules/@hpcc-js/common": { - "version": "2.71.16", - "resolved": "https://registry.npmjs.org/@hpcc-js/common/-/common-2.71.16.tgz", - "integrity": "sha512-hz5i9zUXBJrXW5tl30XwgFXwJ2nipzLD9pXQrg1Rw8zfXkQ1Xax22RvGZdASAGPsmHxefyWTK7fpcJd+ipOGOg==", - "dependencies": { - "@hpcc-js/util": "^2.51.0", - "@types/d3-array": "1.2.12", - "@types/d3-brush": "1.1.8", - "@types/d3-collection": "1.0.13", - "@types/d3-color": "1.4.5", - "@types/d3-dispatch": "1.0.12", - "@types/d3-drag": "1.2.8", - "@types/d3-dsv": "1.2.8", - "@types/d3-ease": "1.0.13", - "@types/d3-format": "1.4.5", - "@types/d3-interpolate": "1.4.5", - "@types/d3-scale": "1.0.22", - "@types/d3-selection": "1.4.6", - "@types/d3-time-format": "2.3.4", - "@types/d3-transition": "1.3.5", - "@types/d3-zoom": "1.8.7" - } - }, - "node_modules/@hpcc-js/eclwatch/node_modules/@hpcc-js/comms": { - "version": "2.92.0", - "resolved": "https://registry.npmjs.org/@hpcc-js/comms/-/comms-2.92.0.tgz", - "integrity": "sha512-hGWFUIywb/DHR/yk43C911JY9mwNrion/wt71adfjbckjQJ267GjPkw4tyz8K1YGt5NgCCW+njnR6lAkpjYGfw==", - "dependencies": { - "@hpcc-js/ddl-shim": "^2.20.6", - "@hpcc-js/util": "^2.51.0", - "@xmldom/xmldom": "0.8.10", - "abort-controller": "3.0.0", - "node-fetch": "2.7.0", - "safe-buffer": "5.2.1", - "tmp": "0.2.3", - "undici": "5.28.4" - } - }, - "node_modules/@hpcc-js/eclwatch/node_modules/@hpcc-js/graph": { + "node_modules/@hpcc-js/graph": { "version": "2.85.14", "resolved": "https://registry.npmjs.org/@hpcc-js/graph/-/graph-2.85.14.tgz", "integrity": "sha512-grofTqK944A8b/LgigDJHBuM9R9+JIDYfqA5wBssbvty3MtLAuN2seoGFn+I7UEojrCggQllKSxNyi/OXoJrCQ==", @@ -2109,7 +1960,7 @@ "@hpcc-js/util": "^2.51.0" } }, - "node_modules/@hpcc-js/eclwatch/node_modules/@hpcc-js/html": { + "node_modules/@hpcc-js/html": { "version": "2.42.19", "resolved": "https://registry.npmjs.org/@hpcc-js/html/-/html-2.42.19.tgz", "integrity": "sha512-qocVJXQvwUVaHVXQvn8gIZCXfNHiQOVuMai5wyegYH9KgWJUX3MjUNGHCEYpMsBkk6LBX+D+3myC+VFGlLSgjg==", @@ -2119,7 +1970,7 @@ "@hpcc-js/util": "^2.51.0" } }, - "node_modules/@hpcc-js/eclwatch/node_modules/@hpcc-js/layout": { + "node_modules/@hpcc-js/layout": { "version": "2.49.21", "resolved": "https://registry.npmjs.org/@hpcc-js/layout/-/layout-2.49.21.tgz", "integrity": "sha512-gZSqCBrLDriWW9mhw1bqUL/dzNCsf372CnPjsMLEuMdln7TOOTQm5L0BCjMPVf5kMgyZeT2xRZGr7YURPJIw+g==", @@ -2130,116 +1981,6 @@ "@hpcc-js/dgrid2": "^2.3.18" } }, - "node_modules/@hpcc-js/eclwatch/node_modules/@hpcc-js/other": { - "version": "2.15.21", - "resolved": "https://registry.npmjs.org/@hpcc-js/other/-/other-2.15.21.tgz", - "integrity": "sha512-QUIlQv7nP9+fKNdE8458pqy/cYrEZnVYXBne8uSu2h5q64VSSreCZmO7XY/Rjxf822RigYlZ+fC8K2fZiDOULw==", - "dependencies": { - "@hpcc-js/api": "^2.12.16", - "@hpcc-js/common": "^2.71.16", - "@hpcc-js/layout": "^2.49.21" - } - }, - "node_modules/@hpcc-js/eclwatch/node_modules/@hpcc-js/phosphor": { - "version": "2.18.7", - "resolved": "https://registry.npmjs.org/@hpcc-js/phosphor/-/phosphor-2.18.7.tgz", - "integrity": "sha512-iSQX6vIpawQPbDVhc/CbH8Z4ysSzb+uFjeasd1zIfE77Km5ImH9IiI9OZMOoFYi1zCTCfce/Y7NLC8ADOgg2XQ==", - "dependencies": { - "@hpcc-js/common": "^2.71.16", - "@hpcc-js/other": "^2.15.21", - "@hpcc-js/phosphor-shim": "^2.14.6", - "@hpcc-js/util": "^2.51.0" - } - }, - "node_modules/@hpcc-js/eclwatch/node_modules/@hpcc-js/react": { - "version": "2.53.15", - "resolved": "https://registry.npmjs.org/@hpcc-js/react/-/react-2.53.15.tgz", - "integrity": "sha512-X8e1lIk4oRXFNTFxrcZ1YbJDi6t7IU431Lzq0nTIFJqWIDRZgjJ3gKxSGcjtjNYzhUqq4A9KfcdvKNE+wHrdjw==", - "dependencies": { - "@hpcc-js/common": "^2.71.16", - "@hpcc-js/preact-shim": "^2.16.10" - } - }, - "node_modules/@hpcc-js/eclwatch/node_modules/@hpcc-js/tree": { - "version": "2.40.16", - "resolved": "https://registry.npmjs.org/@hpcc-js/tree/-/tree-2.40.16.tgz", - "integrity": "sha512-UCFA3ky9aB0XqrN4PyNmwkY3zl3VSc4araEfHpjtOcT7r7pUVJNEG+KjYPkCTUvvKYoPIuE2FBGtr6ec0bM5Aw==", - "dependencies": { - "@hpcc-js/api": "^2.12.16", - "@hpcc-js/common": "^2.71.16" - } - }, - "node_modules/@hpcc-js/eclwatch/node_modules/@hpcc-js/util": { - "version": "2.51.0", - "resolved": "https://registry.npmjs.org/@hpcc-js/util/-/util-2.51.0.tgz", - "integrity": "sha512-xTcU3JhXA0OZQgu2LBLt7rh2O+107IILlEzUIBSS/rR/hVaVOKZK/Jtm5aMIevoAqD/XvKLf8RzurwCF7j/ccw==", - "dependencies": { - "tslib": "2.6.2" - } - }, - "node_modules/@hpcc-js/eclwatch/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/@hpcc-js/eclwatch/node_modules/undici": { - "version": "5.28.4", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", - "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", - "dependencies": { - "@fastify/busboy": "^2.0.0" - }, - "engines": { - "node": ">=14.0" - } - }, - "node_modules/@hpcc-js/graph": { - "version": "2.85.13", - "resolved": "https://registry.npmjs.org/@hpcc-js/graph/-/graph-2.85.13.tgz", - "integrity": "sha512-B1KVWkCPq5J0DzU4WAezbJ/ZkbjlzHB7LMG7o9nvdG71Li6N8uETP97D5QVMgDWLDMLycAeOw3VrbghDAunQmA==", - "dependencies": { - "@hpcc-js/api": "^2.12.15", - "@hpcc-js/common": "^2.71.15", - "@hpcc-js/html": "^2.42.18", - "@hpcc-js/react": "^2.53.14", - "@hpcc-js/util": "^2.50.6" - } - }, - "node_modules/@hpcc-js/html": { - "version": "2.42.18", - "resolved": "https://registry.npmjs.org/@hpcc-js/html/-/html-2.42.18.tgz", - "integrity": "sha512-zhVVtjGykWRDVyw3NRQ31SaD6i3Ml69SXNvqhDWRjZ/CKL0CXFGYj0ki8xS9MzBofRznAGK0ijNJY8JMWX7T7Q==", - "dependencies": { - "@hpcc-js/common": "^2.71.15", - "@hpcc-js/preact-shim": "^2.16.10", - "@hpcc-js/util": "^2.50.6" - } - }, - "node_modules/@hpcc-js/layout": { - "version": "2.49.20", - "resolved": "https://registry.npmjs.org/@hpcc-js/layout/-/layout-2.49.20.tgz", - "integrity": "sha512-Dad5R/fJVtMQsWsDOakN8qehkSLgTv1teQpKs18m6+pIIx1p20JeLTLW1Y3Epz92tqrZEHYigs09GpUZw87r7g==", - "dependencies": { - "@hpcc-js/api": "^2.12.15", - "@hpcc-js/chart": "^2.83.1", - "@hpcc-js/common": "^2.71.15", - "@hpcc-js/dgrid2": "^2.3.17" - } - }, "node_modules/@hpcc-js/leaflet-shim": { "version": "2.3.5", "resolved": "https://registry.npmjs.org/@hpcc-js/leaflet-shim/-/leaflet-shim-2.3.5.tgz", @@ -2250,38 +1991,38 @@ } }, "node_modules/@hpcc-js/map": { - "version": "2.77.19", - "resolved": "https://registry.npmjs.org/@hpcc-js/map/-/map-2.77.19.tgz", - "integrity": "sha512-cWNtIZMaYK3tFh1PXlS+hKwUB2n5OlXbVtlaSiISrogTUl+224VFc7XCXxoKvblDoYxaeIhkjnOHX4PHyFKcOA==", - "dependencies": { - "@hpcc-js/api": "^2.12.15", - "@hpcc-js/common": "^2.71.15", - "@hpcc-js/graph": "^2.85.13", - "@hpcc-js/layout": "^2.49.20", + "version": "2.77.20", + "resolved": "https://registry.npmjs.org/@hpcc-js/map/-/map-2.77.20.tgz", + "integrity": "sha512-smA6i2viO/DsEaNGIbRKLxHTLWEO8qd7nBgtEFOYugyiiIeyZaBtHVEeTEpOMJAv672L+SxbxAteSbfbdTdd/w==", + "dependencies": { + "@hpcc-js/api": "^2.12.16", + "@hpcc-js/common": "^2.71.16", + "@hpcc-js/graph": "^2.85.14", + "@hpcc-js/layout": "^2.49.21", "@hpcc-js/leaflet-shim": "^2.3.5", - "@hpcc-js/other": "^2.15.20", - "@hpcc-js/util": "^2.50.6" + "@hpcc-js/other": "^2.15.21", + "@hpcc-js/util": "^2.51.0" } }, "node_modules/@hpcc-js/other": { - "version": "2.15.20", - "resolved": "https://registry.npmjs.org/@hpcc-js/other/-/other-2.15.20.tgz", - "integrity": "sha512-UVjZrCbNertvTtdj4icGlTPmA+OowoMPFxT4vXVfKgiGsjYnESe4jrJv9bPpzuPrECiGl7xhzQiqTLTERmzLFw==", + "version": "2.15.21", + "resolved": "https://registry.npmjs.org/@hpcc-js/other/-/other-2.15.21.tgz", + "integrity": "sha512-QUIlQv7nP9+fKNdE8458pqy/cYrEZnVYXBne8uSu2h5q64VSSreCZmO7XY/Rjxf822RigYlZ+fC8K2fZiDOULw==", "dependencies": { - "@hpcc-js/api": "^2.12.15", - "@hpcc-js/common": "^2.71.15", - "@hpcc-js/layout": "^2.49.20" + "@hpcc-js/api": "^2.12.16", + "@hpcc-js/common": "^2.71.16", + "@hpcc-js/layout": "^2.49.21" } }, "node_modules/@hpcc-js/phosphor": { - "version": "2.18.6", - "resolved": "https://registry.npmjs.org/@hpcc-js/phosphor/-/phosphor-2.18.6.tgz", - "integrity": "sha512-YzcR3TiwnXapPKq3PHe+tUKr5DcF/MN2F7au/TdqXlyJ7/gptPx5qZvh9VHqnivVSqDuTdlaxA6Iw7Wh1zikCw==", + "version": "2.18.7", + "resolved": "https://registry.npmjs.org/@hpcc-js/phosphor/-/phosphor-2.18.7.tgz", + "integrity": "sha512-iSQX6vIpawQPbDVhc/CbH8Z4ysSzb+uFjeasd1zIfE77Km5ImH9IiI9OZMOoFYi1zCTCfce/Y7NLC8ADOgg2XQ==", "dependencies": { - "@hpcc-js/common": "^2.71.15", - "@hpcc-js/other": "^2.15.20", + "@hpcc-js/common": "^2.71.16", + "@hpcc-js/other": "^2.15.21", "@hpcc-js/phosphor-shim": "^2.14.6", - "@hpcc-js/util": "^2.50.6" + "@hpcc-js/util": "^2.51.0" } }, "node_modules/@hpcc-js/phosphor-shim": { @@ -2304,11 +2045,11 @@ } }, "node_modules/@hpcc-js/react": { - "version": "2.53.14", - "resolved": "https://registry.npmjs.org/@hpcc-js/react/-/react-2.53.14.tgz", - "integrity": "sha512-IUER5VbUaqc12jK5PMDNYGSNK3y7SY/98CVO6KRxudsMQb/816E0YPxTXnYoWbSxtKgO9PgCAhqwyC96Q8RqCg==", + "version": "2.53.15", + "resolved": "https://registry.npmjs.org/@hpcc-js/react/-/react-2.53.15.tgz", + "integrity": "sha512-X8e1lIk4oRXFNTFxrcZ1YbJDi6t7IU431Lzq0nTIFJqWIDRZgjJ3gKxSGcjtjNYzhUqq4A9KfcdvKNE+wHrdjw==", "dependencies": { - "@hpcc-js/common": "^2.71.15", + "@hpcc-js/common": "^2.71.16", "@hpcc-js/preact-shim": "^2.16.10" } }, @@ -2325,70 +2066,16 @@ "@hpcc-js/react": "^2.53.15" } }, - "node_modules/@hpcc-js/timeline/node_modules/@hpcc-js/chart": { - "version": "2.83.2", - "resolved": "https://registry.npmjs.org/@hpcc-js/chart/-/chart-2.83.2.tgz", - "integrity": "sha512-PePaV/68if4dp+iBDpmBwRbTfOsKht8DkZ7B8NafKfGxL1+khCXf4p4Q/Dlgqig1OfVt35z1eR4lbEUrARhVJw==", - "dependencies": { - "@hpcc-js/api": "^2.12.16", - "@hpcc-js/common": "^2.71.16", - "@hpcc-js/util": "^2.51.0" - } - }, - "node_modules/@hpcc-js/timeline/node_modules/@hpcc-js/common": { - "version": "2.71.16", - "resolved": "https://registry.npmjs.org/@hpcc-js/common/-/common-2.71.16.tgz", - "integrity": "sha512-hz5i9zUXBJrXW5tl30XwgFXwJ2nipzLD9pXQrg1Rw8zfXkQ1Xax22RvGZdASAGPsmHxefyWTK7fpcJd+ipOGOg==", - "dependencies": { - "@hpcc-js/util": "^2.51.0", - "@types/d3-array": "1.2.12", - "@types/d3-brush": "1.1.8", - "@types/d3-collection": "1.0.13", - "@types/d3-color": "1.4.5", - "@types/d3-dispatch": "1.0.12", - "@types/d3-drag": "1.2.8", - "@types/d3-dsv": "1.2.8", - "@types/d3-ease": "1.0.13", - "@types/d3-format": "1.4.5", - "@types/d3-interpolate": "1.4.5", - "@types/d3-scale": "1.0.22", - "@types/d3-selection": "1.4.6", - "@types/d3-time-format": "2.3.4", - "@types/d3-transition": "1.3.5", - "@types/d3-zoom": "1.8.7" - } - }, - "node_modules/@hpcc-js/timeline/node_modules/@hpcc-js/html": { - "version": "2.42.19", - "resolved": "https://registry.npmjs.org/@hpcc-js/html/-/html-2.42.19.tgz", - "integrity": "sha512-qocVJXQvwUVaHVXQvn8gIZCXfNHiQOVuMai5wyegYH9KgWJUX3MjUNGHCEYpMsBkk6LBX+D+3myC+VFGlLSgjg==", - "dependencies": { - "@hpcc-js/common": "^2.71.16", - "@hpcc-js/preact-shim": "^2.16.10", - "@hpcc-js/util": "^2.51.0" - } - }, - "node_modules/@hpcc-js/timeline/node_modules/@hpcc-js/layout": { - "version": "2.49.21", - "resolved": "https://registry.npmjs.org/@hpcc-js/layout/-/layout-2.49.21.tgz", - "integrity": "sha512-gZSqCBrLDriWW9mhw1bqUL/dzNCsf372CnPjsMLEuMdln7TOOTQm5L0BCjMPVf5kMgyZeT2xRZGr7YURPJIw+g==", + "node_modules/@hpcc-js/tree": { + "version": "2.40.16", + "resolved": "https://registry.npmjs.org/@hpcc-js/tree/-/tree-2.40.16.tgz", + "integrity": "sha512-UCFA3ky9aB0XqrN4PyNmwkY3zl3VSc4araEfHpjtOcT7r7pUVJNEG+KjYPkCTUvvKYoPIuE2FBGtr6ec0bM5Aw==", "dependencies": { "@hpcc-js/api": "^2.12.16", - "@hpcc-js/chart": "^2.83.2", - "@hpcc-js/common": "^2.71.16", - "@hpcc-js/dgrid2": "^2.3.18" - } - }, - "node_modules/@hpcc-js/timeline/node_modules/@hpcc-js/react": { - "version": "2.53.15", - "resolved": "https://registry.npmjs.org/@hpcc-js/react/-/react-2.53.15.tgz", - "integrity": "sha512-X8e1lIk4oRXFNTFxrcZ1YbJDi6t7IU431Lzq0nTIFJqWIDRZgjJ3gKxSGcjtjNYzhUqq4A9KfcdvKNE+wHrdjw==", - "dependencies": { - "@hpcc-js/common": "^2.71.16", - "@hpcc-js/preact-shim": "^2.16.10" + "@hpcc-js/common": "^2.71.16" } }, - "node_modules/@hpcc-js/timeline/node_modules/@hpcc-js/util": { + "node_modules/@hpcc-js/util": { "version": "2.51.0", "resolved": "https://registry.npmjs.org/@hpcc-js/util/-/util-2.51.0.tgz", "integrity": "sha512-xTcU3JhXA0OZQgu2LBLt7rh2O+107IILlEzUIBSS/rR/hVaVOKZK/Jtm5aMIevoAqD/XvKLf8RzurwCF7j/ccw==", @@ -2396,23 +2083,6 @@ "tslib": "2.6.2" } }, - "node_modules/@hpcc-js/tree": { - "version": "2.40.15", - "resolved": "https://registry.npmjs.org/@hpcc-js/tree/-/tree-2.40.15.tgz", - "integrity": "sha512-tOl0dfKDmZlpstwndVbnXF+OYI/K+rBbCzXWNQkRoh2UdGbYpRYQfx/d0hgnLTIgbeoqWVlIG8QL1FVTIF6dPA==", - "dependencies": { - "@hpcc-js/api": "^2.12.15", - "@hpcc-js/common": "^2.71.15" - } - }, - "node_modules/@hpcc-js/util": { - "version": "2.50.6", - "resolved": "https://registry.npmjs.org/@hpcc-js/util/-/util-2.50.6.tgz", - "integrity": "sha512-k4yDXdYX5h2RcccVy9sW1djcOP1w6G/GYAAs7duEPbx0TyvpMuK/Bo/gKW6Wq89Ce46moOtEq+7WyOqvLXsQgg==", - "dependencies": { - "tslib": "2.6.2" - } - }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", @@ -11417,9 +11087,9 @@ } }, "node_modules/undici": { - "version": "5.28.3", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.3.tgz", - "integrity": "sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==", + "version": "5.28.4", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", + "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", "dependencies": { "@fastify/busboy": "^2.0.0" }, diff --git a/esp/src/package.json b/esp/src/package.json index 245072a1ddd..a7685259e97 100644 --- a/esp/src/package.json +++ b/esp/src/package.json @@ -41,21 +41,21 @@ "@fluentui/react-hooks": "8.7.0", "@fluentui/react-icons-mdl2": "1.3.59", "@fluentui/react-migration-v8-v9": "9.6.3", - "@hpcc-js/chart": "2.83.1", - "@hpcc-js/codemirror": "2.61.2", - "@hpcc-js/common": "2.71.15", - "@hpcc-js/comms": "2.91.3", + "@hpcc-js/chart": "2.83.2", + "@hpcc-js/codemirror": "2.61.3", + "@hpcc-js/common": "2.71.16", + "@hpcc-js/comms": "2.92.0", "@hpcc-js/dataflow": "8.1.6", "@hpcc-js/eclwatch": "2.74.2", - "@hpcc-js/graph": "2.85.13", - "@hpcc-js/html": "2.42.18", - "@hpcc-js/layout": "2.49.20", - "@hpcc-js/map": "2.77.19", - "@hpcc-js/other": "2.15.20", - "@hpcc-js/phosphor": "2.18.6", - "@hpcc-js/react": "2.53.14", - "@hpcc-js/tree": "2.40.15", - "@hpcc-js/util": "2.50.6", + "@hpcc-js/graph": "2.85.14", + "@hpcc-js/html": "2.42.19", + "@hpcc-js/layout": "2.49.21", + "@hpcc-js/map": "2.77.20", + "@hpcc-js/other": "2.15.21", + "@hpcc-js/phosphor": "2.18.7", + "@hpcc-js/react": "2.53.15", + "@hpcc-js/tree": "2.40.16", + "@hpcc-js/util": "2.51.0", "@kubernetes/client-node": "0.20.0", "clipboard": "2.0.11", "d3-dsv": "3.0.1", diff --git a/esp/src/src-react/components/ECLArchive.tsx b/esp/src/src-react/components/ECLArchive.tsx index 469b6ba4e30..7f43a368726 100644 --- a/esp/src/src-react/components/ECLArchive.tsx +++ b/esp/src/src-react/components/ECLArchive.tsx @@ -1,6 +1,6 @@ import * as React from "react"; import { CommandBar, ContextualMenuItemType, ICommandBarItemProps } from "@fluentui/react"; -import { Workunit, WUDetails, IScope } from "@hpcc-js/comms"; +import { Workunit, WsWorkunits, IScope } from "@hpcc-js/comms"; import { scopedLogger } from "@hpcc-js/util"; import nlsHPCC from "src/nlsHPCC"; import { useWorkunitArchive } from "../hooks/workunit"; @@ -15,14 +15,14 @@ import { MetricsPropertiesTables } from "./MetricsPropertiesTables"; const logger = scopedLogger("src-react/components/ECLArchive.tsx"); -const scopeFilterDefault: WUDetails.RequestNS.ScopeFilter = { +const scopeFilterDefault: Partial = { MaxDepth: 999999, - ScopeTypes: ["graph"] + ScopeTypes: { ScopeType: ["graph"] } }; -const nestedFilterDefault: WUDetails.RequestNS.NestedFilter = { +const nestedFilterDefault: WsWorkunits.NestedFilter = { Depth: 999999, - ScopeTypes: ["activity"] + ScopeTypes: { ScopeType: ["activity"] } }; interface ECLArchiveProps { diff --git a/esp/src/src-react/components/Metrics.tsx b/esp/src/src-react/components/Metrics.tsx index 5373bb6ab59..a4c43170dac 100644 --- a/esp/src/src-react/components/Metrics.tsx +++ b/esp/src/src-react/components/Metrics.tsx @@ -198,17 +198,17 @@ export const Metrics: React.FunctionComponent = ({ .request({ ScopeFilter: { MaxDepth: 3, - ScopeTypes: [] + ScopeTypes: { ScopeType: [] } }, NestedFilter: { Depth: 0, - ScopeTypes: [] + ScopeTypes: { ScopeType: [] } }, PropertiesToReturn: { AllProperties: false, AllStatistics: true, AllHints: false, - Properties: ["WhenStarted", "TimeElapsed", "TimeLocalExecute"] + Properties: { Property: ["WhenStarted", "TimeElapsed", "TimeLocalExecute"] } }, ScopeOptions: { IncludeId: true, diff --git a/esp/src/src-react/components/WorkunitSummary.tsx b/esp/src/src-react/components/WorkunitSummary.tsx index f168fd8a930..30001f43008 100644 --- a/esp/src/src-react/components/WorkunitSummary.tsx +++ b/esp/src/src-react/components/WorkunitSummary.tsx @@ -1,6 +1,6 @@ import * as React from "react"; import { CommandBar, ContextualMenuItemType, ICommandBarItemProps, MessageBar, MessageBarType, ScrollablePane, ScrollbarVisibility, Sticky, StickyPositionType } from "@fluentui/react"; -import { WUQuery, WorkunitsService } from "@hpcc-js/comms"; +import { WsWorkunits, WorkunitsService } from "@hpcc-js/comms"; import { scopedLogger } from "@hpcc-js/util"; import nlsHPCC from "src/nlsHPCC"; import { WUStatus } from "src/react/index"; @@ -84,7 +84,7 @@ export const WorkunitSummary: React.FunctionComponent = ({ }, [workunit]) }); - const nextWuid = React.useCallback((wuids: WUQuery.ECLWorkunit[]) => { + const nextWuid = React.useCallback((wuids: WsWorkunits.ECLWorkunit[]) => { let found = false; for (const wu of wuids) { if (wu.Wuid !== wuid) { @@ -104,7 +104,7 @@ export const WorkunitSummary: React.FunctionComponent = ({ onClick: () => { const now = new Date(Date.now()); const tomorrow = new Date(now.getTime() + (24 * 60 * 60 * 1000)); - workunitService.WUQuery({ StartDate: `${wuidToDate(wuid)}T${wuidToTime(wuid)}Z`, EndDate: tomorrow.toISOString(), Sortby: "Wuid", Descending: false, Count: 2 } as WUQuery.Request).then(response => { + workunitService.WUQuery({ StartDate: `${wuidToDate(wuid)}T${wuidToTime(wuid)}Z`, EndDate: tomorrow.toISOString(), Sortby: "Wuid", Descending: false, Count: 2 } as WsWorkunits.WUQuery).then(response => { nextWuid(response?.Workunits?.ECLWorkunit || []); }).catch(err => logger.error(err)); } @@ -112,7 +112,7 @@ export const WorkunitSummary: React.FunctionComponent = ({ { key: "previous", iconOnly: true, tooltipHostProps: { content: nlsHPCC.PreviousWorkunit }, iconProps: { iconName: "Next" }, onClick: () => { - workunitService.WUQuery({ EndDate: `${wuidToDate(wuid)}T${wuidToTime(wuid)}Z`, Count: 2 } as WUQuery.Request).then(response => { + workunitService.WUQuery({ EndDate: `${wuidToDate(wuid)}T${wuidToTime(wuid)}Z`, Count: 2 } as WsWorkunits.WUQuery).then(response => { nextWuid(response?.Workunits?.ECLWorkunit || []); }).catch(err => logger.error(err)); } diff --git a/esp/src/src-react/components/WorkunitsDashboard.tsx b/esp/src/src-react/components/WorkunitsDashboard.tsx index e7821553827..b3cced2aafb 100644 --- a/esp/src/src-react/components/WorkunitsDashboard.tsx +++ b/esp/src/src-react/components/WorkunitsDashboard.tsx @@ -2,7 +2,7 @@ import * as React from "react"; import { Dropdown, IStackItemStyles, IStackStyles, IStackTokens, Overlay, Spinner, SpinnerSize, Stack, Text } from "@fluentui/react"; import { useConst } from "@fluentui/react-hooks"; import { Card, CardHeader, CardPreview } from "@fluentui/react-components"; -import { WorkunitsService, WUQuery } from "@hpcc-js/comms"; +import { WorkunitsService, WsWorkunits } from "@hpcc-js/comms"; import { Area, Column, Pie, Bar } from "@hpcc-js/chart"; import { chain, filter, group, map, sort } from "@hpcc-js/dataflow"; import * as Observable from "dojo/store/Observable"; @@ -33,7 +33,7 @@ const innerStackTokens: IStackTokens = { const service = new WorkunitsService({ baseUrl: "" }); -interface WorkunitEx extends WUQuery.ECLWorkunit { +interface WorkunitEx extends WsWorkunits.ECLWorkunit { Day: string; } @@ -72,7 +72,7 @@ export const WorkunitsDashboard: React.FunctionComponent { - setWorkunits([...map(response.Workunits.ECLWorkunit, (row: WUQuery.ECLWorkunit) => ({ ...row, Day: wuidToDate(row.Wuid) }))]); + setWorkunits([...map(response.Workunits.ECLWorkunit, (row: WsWorkunits.ECLWorkunit) => ({ ...row, Day: wuidToDate(row.Wuid) }))]); setLoading(false); }); }, [filterProps.lastNDays]); diff --git a/esp/src/src-react/hooks/metrics.ts b/esp/src/src-react/hooks/metrics.ts index 10f6d8b44b4..efdfa3da2ea 100644 --- a/esp/src/src-react/hooks/metrics.ts +++ b/esp/src/src-react/hooks/metrics.ts @@ -1,6 +1,6 @@ import * as React from "react"; import { useConst, useForceUpdate } from "@fluentui/react-hooks"; -import { WUDetails, WUDetailsMeta, WorkunitsService, IScope } from "@hpcc-js/comms"; +import { WsWorkunits, WorkunitsService, IScope } from "@hpcc-js/comms"; import { scopedLogger } from "@hpcc-js/util"; import { userKeyValStore } from "src/KeyValStore"; import { useWorkunit } from "./workunit"; @@ -102,27 +102,27 @@ export enum FetchStatus { COMPLETE } -const scopeFilterDefault: WUDetails.RequestNS.ScopeFilter = { +const scopeFilterDefault: Partial = { MaxDepth: 999999, - ScopeTypes: [] + ScopeTypes: { ScopeType: [] } }; -const nestedFilterDefault: WUDetails.RequestNS.NestedFilter = { +const nestedFilterDefault: WsWorkunits.NestedFilter = { Depth: 0, - ScopeTypes: [] + ScopeTypes: { ScopeType: [] } }; export function useWorkunitMetrics( wuid: string, - scopeFilter: WUDetails.RequestNS.ScopeFilter = scopeFilterDefault, - nestedFilter: WUDetails.RequestNS.NestedFilter = nestedFilterDefault -): [IScope[], { [id: string]: any }, WUDetailsMeta.Activity[], WUDetailsMeta.Property[], string[], string[], FetchStatus, () => void] { + scopeFilter: Partial = scopeFilterDefault, + nestedFilter: WsWorkunits.NestedFilter = nestedFilterDefault +): [IScope[], { [id: string]: any }, WsWorkunits.Activity2[], WsWorkunits.Property2[], string[], string[], FetchStatus, () => void] { const [workunit, state] = useWorkunit(wuid); const [data, setData] = React.useState([]); const [columns, setColumns] = React.useState<{ [id: string]: any }>([]); - const [activities, setActivities] = React.useState([]); - const [properties, setProperties] = React.useState([]); + const [activities, setActivities] = React.useState([]); + const [properties, setProperties] = React.useState([]); const [measures, setMeasures] = React.useState([]); const [scopeTypes, setScopeTypes] = React.useState([]); const [status, setStatus] = React.useState(FetchStatus.COMPLETE); @@ -175,15 +175,15 @@ export function useWorkunitMetrics( export function useQueryMetrics( querySet: string, queryId: string, - scopeFilter: WUDetails.RequestNS.ScopeFilter = scopeFilterDefault, - nestedFilter: WUDetails.RequestNS.NestedFilter = nestedFilterDefault -): [IScope[], { [id: string]: any }, WUDetailsMeta.Activity[], WUDetailsMeta.Property[], string[], string[], FetchStatus, () => void] { + scopeFilter: Partial = scopeFilterDefault, + nestedFilter: WsWorkunits.NestedFilter = nestedFilterDefault +): [IScope[], { [id: string]: any }, WsWorkunits.Activity2[], WsWorkunits.Property2[], string[], string[], FetchStatus, () => void] { const [query, state, _refresh] = useQuery(querySet, queryId); const [data, setData] = React.useState([]); const [columns, setColumns] = React.useState<{ [id: string]: any }>([]); - const [activities, setActivities] = React.useState([]); - const [properties, setProperties] = React.useState([]); + const [activities, setActivities] = React.useState([]); + const [properties, setProperties] = React.useState([]); const [measures, setMeasures] = React.useState([]); const [scopeTypes, setScopeTypes] = React.useState([]); const [status, setStatus] = React.useState(FetchStatus.COMPLETE); @@ -237,9 +237,9 @@ export function useWUQueryMetrics( wuid: string, querySet: string, queryId: string, - scopeFilter: WUDetails.RequestNS.ScopeFilter = scopeFilterDefault, - nestedFilter: WUDetails.RequestNS.NestedFilter = nestedFilterDefault -): [IScope[], { [id: string]: any }, WUDetailsMeta.Activity[], WUDetailsMeta.Property[], string[], string[], FetchStatus, () => void] { + scopeFilter: Partial = scopeFilterDefault, + nestedFilter: WsWorkunits.NestedFilter = nestedFilterDefault +): [IScope[], { [id: string]: any }, WsWorkunits.Activity2[], WsWorkunits.Property2[], string[], string[], FetchStatus, () => void] { const wuMetrics = useWorkunitMetrics(wuid, scopeFilter, nestedFilter); const queryMetrics = useQueryMetrics(querySet, queryId, scopeFilter, nestedFilter); return querySet && queryId ? [...queryMetrics] : [...wuMetrics]; diff --git a/esp/src/src-react/hooks/workunit.ts b/esp/src/src-react/hooks/workunit.ts index 9faff42ea3f..662b44dccdb 100644 --- a/esp/src/src-react/hooks/workunit.ts +++ b/esp/src/src-react/hooks/workunit.ts @@ -1,6 +1,6 @@ import * as React from "react"; import { useConst } from "@fluentui/react-hooks"; -import { Workunit, DFUWorkunit, Result, WUDetails, WUStateID, WUInfo, WorkunitsService } from "@hpcc-js/comms"; +import { Workunit, DFUWorkunit, Result, WsWorkunits, WUStateID, WorkunitsService } from "@hpcc-js/comms"; import { scopedLogger } from "@hpcc-js/util"; import nlsHPCC from "src/nlsHPCC"; import * as Utility from "src/Utility"; @@ -122,7 +122,7 @@ export function useWorkunitVariables(wuid: string): [Variable[], Workunit, WUSta return [variables, workunit, state, inc]; } -export interface SourceFile extends WUInfo.ECLSourceFile { +export interface SourceFile extends WsWorkunits.ECLSourceFile { __hpcc_parentName: string; } @@ -159,10 +159,10 @@ export function useWorkunitSourceFiles(wuid: string): [SourceFile[], Workunit, W return [sourceFiles, workunit, state, inc]; } -export function useWorkunitWorkflows(wuid: string): [WUInfo.ECLWorkflow[], Workunit, () => void] { +export function useWorkunitWorkflows(wuid: string): [WsWorkunits.ECLWorkflow[], Workunit, () => void] { const [workunit, state] = useWorkunit(wuid); - const [workflows, setWorkflows] = React.useState([]); + const [workflows, setWorkflows] = React.useState([]); const [count, increment] = useCounter(); React.useEffect(() => { @@ -186,7 +186,7 @@ export function useWorkunitXML(wuid: string): [string] { const [xml, setXML] = React.useState(""); React.useEffect(() => { - service.WUFile({ + service.WUFileEx({ Wuid: wuid, Type: "XML" }).then(response => { @@ -197,10 +197,10 @@ export function useWorkunitXML(wuid: string): [string] { return [xml]; } -export function useWorkunitExceptions(wuid: string): [WUInfo.ECLException[], Workunit, () => void] { +export function useWorkunitExceptions(wuid: string): [WsWorkunits.ECLException[], Workunit, () => void] { const [workunit, state] = useWorkunit(wuid); - const [exceptions, setExceptions] = React.useState([]); + const [exceptions, setExceptions] = React.useState([]); const [count, increment] = useCounter(); React.useEffect(() => { @@ -285,7 +285,7 @@ export interface HelperRow { workunit: Workunit; } -function mapHelpers(workunit: Workunit, helpers: WUInfo.ECLHelpFile[] = []): HelperRow[] { +function mapHelpers(workunit: Workunit, helpers: WsWorkunits.ECLHelpFile[] = []): HelperRow[] { return helpers.map((helper, i): HelperRow => { return { id: "H:" + i, @@ -298,7 +298,7 @@ function mapHelpers(workunit: Workunit, helpers: WUInfo.ECLHelpFile[] = []): Hel }); } -function mapThorLogInfo(workunit: Workunit, thorLogInfo: WUInfo.ThorLogInfo[] = []): HelperRow[] { +function mapThorLogInfo(workunit: Workunit, thorLogInfo: WsWorkunits.ThorLogInfo[] = []): HelperRow[] { const retVal: HelperRow[] = []; for (let i = 0; i < thorLogInfo.length; ++i) { for (let j = 0; j < thorLogInfo[i].NumberSlaves; ++j) { @@ -352,9 +352,9 @@ export function useWorkunitHelpers(wuid: string): [HelperRow[], () => void] { return [helpers, incCounter]; } -export function useGlobalWorkunitNotes(): [WUDetails.Note[]] { +export function useGlobalWorkunitNotes(): [WsWorkunits.Note[]] { - const [notes, setNotes] = React.useState([]); + const [notes, setNotes] = React.useState([]); React.useEffect(() => { const workunit = Workunit.attach({ baseUrl: "" }, ""); diff --git a/esp/src/src/ECLArchiveWidget.ts b/esp/src/src/ECLArchiveWidget.ts index e1ac7eb193b..2f5efaa752a 100644 --- a/esp/src/src/ECLArchiveWidget.ts +++ b/esp/src/src/ECLArchiveWidget.ts @@ -1,11 +1,11 @@ /* eslint-disable @typescript-eslint/no-unsafe-declaration-merging */ import { ECLEditor } from "@hpcc-js/codemirror"; import { extent, Palette } from "@hpcc-js/common"; -import { Workunit } from "@hpcc-js/comms"; +import { Workunit, WsWorkunits } from "@hpcc-js/comms"; import { Table } from "@hpcc-js/dgrid"; import { SplitPanel } from "@hpcc-js/phosphor"; import { DirectoryTree } from "@hpcc-js/tree"; -import { xml2json } from "@hpcc-js/util"; +import { RecursivePartial, xml2json } from "@hpcc-js/util"; import "dijit/form/Button"; import "dijit/layout/BorderContainer"; import "dijit/layout/ContentPane"; @@ -168,10 +168,10 @@ export class ECLArchiveWidget { .relativeSizes([0.2, 0.8]) .lazyRender() ; - const scopesOptions = { + const scopesOptions: RecursivePartial = { ScopeFilter: { MaxDepth: 999999, - ScopeTypes: ["graph"] + ScopeTypes: { ScopeType: ["graph"] } }, ScopeOptions: { IncludeMatchedScopesInResults: true, @@ -189,7 +189,7 @@ export class ECLArchiveWidget { }, NestedFilter: { Depth: 999999, - ScopeTypes: ["activity"] + ScopeTypes: { ScopeType: ["activity"] } }, PropertiesToReturn: { AllStatistics: true, diff --git a/esp/src/src/ESPWorkunit.ts b/esp/src/src/ESPWorkunit.ts index 124dabbf137..472105a6a16 100644 --- a/esp/src/src/ESPWorkunit.ts +++ b/esp/src/src/ESPWorkunit.ts @@ -6,7 +6,7 @@ import * as all from "dojo/promise/all"; import * as Observable from "dojo/store/Observable"; import * as topic from "dojo/topic"; -import { Workunit as HPCCWorkunit, WorkunitsService, WUQuery, WUUpdate } from "@hpcc-js/comms"; +import { Workunit as HPCCWorkunit, WorkunitsService, WsWorkunits as WsWorkunitsNS, WUUpdate } from "@hpcc-js/comms"; import { IEvent } from "@hpcc-js/util"; import * as ESPRequest from "./ESPRequest"; @@ -888,7 +888,7 @@ const Workunit = declare([ESPUtil.Singleton], { // jshint ignore:line return (this._hpccWU as HPCCWorkunit).fetchDetails({ ScopeFilter: { MaxDepth: 999999, - ScopeTypes: ["graph"] + ScopeTypes: { ScopeType: ["graph"] } }, ScopeOptions: { IncludeMatchedScopesInResults: true, @@ -906,7 +906,7 @@ const Workunit = declare([ESPUtil.Singleton], { // jshint ignore:line }, NestedFilter: { Depth: 999999, - ScopeTypes: ["activity"] + ScopeTypes: { ScopeType: ["activity"] } }, PropertiesToReturn: { AllStatistics: false, @@ -1043,10 +1043,10 @@ export function CreateWUQueryStoreLegacy(options) { const service = new WorkunitsService({ baseUrl: "" }); -export type WUQueryStore = BaseStore; +export type WUQueryStore = BaseStore; -export function CreateWUQueryStore(): BaseStore { - const store = new Paged({ +export function CreateWUQueryStore(): BaseStore { + const store = new Paged({ start: "PageStartFrom", count: "PageSize", sortBy: "Sortby", diff --git a/esp/src/src/Timings.ts b/esp/src/src/Timings.ts index a420927bf77..fc26677955b 100644 --- a/esp/src/src/Timings.ts +++ b/esp/src/src/Timings.ts @@ -71,17 +71,17 @@ export class Timings { .request({ ScopeFilter: { MaxDepth: 3, - ScopeTypes: [] + ScopeTypes: { ScopeType: [] } }, NestedFilter: { Depth: 0, - ScopeTypes: [] + ScopeTypes: { ScopeType: [] } }, PropertiesToReturn: { AllProperties: false, AllStatistics: true, AllHints: false, - Properties: ["WhenStarted", "TimeElapsed"] + Properties: { Property: ["WhenStarted", "TimeElapsed"] } }, ScopeOptions: { IncludeId: true, @@ -212,17 +212,17 @@ export class Timings { this.fetchDetailsNormalizedPromise = Promise.all([this.wu.fetchDetailsMeta(), this.wu.fetchDetailsRaw({ ScopeFilter: { MaxDepth: 999999, - ScopeTypes: [] + ScopeTypes: { ScopeType: [] } }, NestedFilter: { Depth: 0, - ScopeTypes: [] + ScopeTypes: { ScopeType: [] } }, PropertiesToReturn: { AllProperties: false, AllStatistics: true, AllHints: false, - Properties: [] + Properties: { Property: [] } }, ScopeOptions: { IncludeId: true, diff --git a/esp/src/src/WUScopeController.ts b/esp/src/src/WUScopeController.ts index b32efdf5a03..d72a6689e3a 100644 --- a/esp/src/src/WUScopeController.ts +++ b/esp/src/src/WUScopeController.ts @@ -225,7 +225,8 @@ export abstract class WUScopeControllerBase Date: Wed, 1 May 2024 12:02:08 +0000 Subject: [PATCH 10/13] HPCC-31496 Allow field translation that only removes fields - and does not add blank values --- common/thorhelper/thorcommon.cpp | 3 +++ common/thorhelper/thorread.cpp | 3 +++ ecl/hthor/hthorkey.cpp | 12 ++++++++++++ roxie/ccd/ccdfile.cpp | 2 ++ rtl/eclrtl/rtldynfield.cpp | 11 +++++++++++ rtl/eclrtl/rtldynfield.hpp | 4 +++- thorlcr/slave/slavmain.cpp | 2 ++ 7 files changed, 36 insertions(+), 1 deletion(-) diff --git a/common/thorhelper/thorcommon.cpp b/common/thorhelper/thorcommon.cpp index 6c9668cfcb8..38f29328615 100644 --- a/common/thorhelper/thorcommon.cpp +++ b/common/thorhelper/thorcommon.cpp @@ -2148,6 +2148,9 @@ static bool getTranslators(Owned &translator, OwnedcanTranslate()) throw MakeStringException(0, "Untranslatable record layout mismatch detected for file %s", tracing); + if (mode == RecordTranslationMode::PayloadRemoveOnly && translator->hasNewFields()) + throw MakeStringException(0, "Translatable file layout mismatch reading file %s but translation disabled when expected fields are missing from source.", tracing); + if (translator->needsTranslate()) { if (keyedTranslator && (sourceFormat != expectedFormat)) diff --git a/common/thorhelper/thorread.cpp b/common/thorhelper/thorread.cpp index d552b78d154..2771f68f720 100644 --- a/common/thorhelper/thorread.cpp +++ b/common/thorhelper/thorread.cpp @@ -176,6 +176,9 @@ void DiskReadMapping::ensureTranslators() const if (!translator->canTranslate()) throw MakeStringException(0, "Untranslatable record layout mismatch detected for file %s", filename); + if (mode == RecordTranslationMode::PayloadRemoveOnly && translator->hasNewFields()) + throw MakeStringException(0, "Translatable file layout mismatch reading file %s but translation disabled when expected fields are missing from source.", filename); + if (translator->needsTranslate()) { if (sourceMeta != expectedMeta) diff --git a/ecl/hthor/hthorkey.cpp b/ecl/hthor/hthorkey.cpp index 7fb6c7952ef..1c9094a3a63 100644 --- a/ecl/hthor/hthorkey.cpp +++ b/ecl/hthor/hthorkey.cpp @@ -700,6 +700,8 @@ const IDynamicTransform * CHThorIndexReadActivityBase::getLayoutTranslator(IDist Owned payloadTranslator = createRecordTranslator(projectedFormat->queryRecordAccessor(true), actualFormat->queryRecordAccessor(true)); if (!payloadTranslator->canTranslate()) throw MakeStringException(0, "Untranslatable key layout mismatch reading index %s", f->queryLogicalName()); + if (getLayoutTranslationMode() == RecordTranslationMode::PayloadRemoveOnly && payloadTranslator->hasNewFields()) + throw MakeStringException(0, "Translatable file layout mismatch reading file %s but translation disabled when expected fields are missing from source.", f->queryLogicalName()); if (payloadTranslator->needsTranslate()) return payloadTranslator.getClear(); return nullptr; @@ -715,6 +717,8 @@ void CHThorIndexReadActivityBase::verifyIndex(IKeyIndex * idx) { if (!layoutTrans->canTranslate()) throw MakeStringException(0, "Untranslatable key layout mismatch reading index %s", df->queryLogicalName()); + if (getLayoutTranslationMode() == RecordTranslationMode::PayloadRemoveOnly && layoutTrans->hasNewFields()) + throw MakeStringException(0, "Translatable file layout mismatch reading file %s but translation disabled when expected fields are missing from source.", df->queryLogicalName()); } else { @@ -2462,6 +2466,8 @@ class CHThorFlatFetchActivity : public CHThorFetchActivityBase, public IFlatFetc translator->describe(); if (translator->canTranslate()) { + if (getLayoutTranslationMode()==RecordTranslationMode::PayloadRemoveOnly && translator->hasNewFields()) + throw MakeStringException(0, "Translatable file layout mismatch reading file %s but translation disabled when expected fields are missing from source.", f->queryLogicalName()); if (getLayoutTranslationMode()==RecordTranslationMode::None) throw MakeStringException(0, "Translatable file layout mismatch reading file %s but translation disabled", f->queryLogicalName()); VStringBuffer msg("Record layout translation required for %s", f->queryLogicalName()); @@ -4102,6 +4108,8 @@ class CHThorKeyedJoinActivity : public CHThorThreadedActivityBase, implements I throw MakeStringException(0, "Untranslatable key layout mismatch reading index %s", f->queryLogicalName()); if (payloadTranslator->keyedTranslated()) throw MakeStringException(0, "Untranslatable key layout mismatch reading index %s - keyed fields do not match", f->queryLogicalName()); + if (getLayoutTranslationMode()==RecordTranslationMode::PayloadRemoveOnly && payloadTranslator->hasNewFields()) + throw MakeStringException(0, "Translatable file layout mismatch reading file %s but translation disabled when expected fields are missing from source.", f->queryLogicalName()); if (getLayoutTranslationMode()==RecordTranslationMode::None) throw MakeStringException(0, "Translatable file layout mismatch reading file %s but translation disabled", f->queryLogicalName()); VStringBuffer msg("Record layout translation required for %s", f->queryLogicalName()); @@ -4119,6 +4127,8 @@ class CHThorKeyedJoinActivity : public CHThorThreadedActivityBase, implements I { if (!trans->canTranslate()) throw MakeStringException(0, "Untranslatable key layout mismatch reading index %s", f->queryLogicalName()); + if (getLayoutTranslationMode() == RecordTranslationMode::PayloadRemoveOnly && trans->hasNewFields()) + throw MakeStringException(0, "Translatable file layout mismatch reading file %s but translation disabled when expected fields are missing from source.", f->queryLogicalName()); } else { @@ -4149,6 +4159,8 @@ class CHThorKeyedJoinActivity : public CHThorThreadedActivityBase, implements I translator.setown(createRecordTranslator(helper.queryProjectedDiskRecordSize()->queryRecordAccessor(true), actualDiskMeta->queryRecordAccessor(true))); if (translator->canTranslate()) { + if (getLayoutTranslationMode()==RecordTranslationMode::PayloadRemoveOnly && translator->hasNewFields()) + throw MakeStringException(0, "Translatable file layout mismatch reading file %s but translation disabled when expected fields are missing from source.", f->queryLogicalName()); if (getLayoutTranslationMode()==RecordTranslationMode::None) throw MakeStringException(0, "Translatable file layout mismatch reading file %s but translation disabled", f->queryLogicalName()); VStringBuffer msg("Record layout translation required for %s", f->queryLogicalName()); diff --git a/roxie/ccd/ccdfile.cpp b/roxie/ccd/ccdfile.cpp index e1e7cb3f1c5..a08ee799ceb 100644 --- a/roxie/ccd/ccdfile.cpp +++ b/roxie/ccd/ccdfile.cpp @@ -3013,6 +3013,8 @@ class CResolvedFile : implements IResolvedFileCreator, implements ISafeSDSSubscr } if (!translator || !translator->canTranslate()) throw MakeStringException(ROXIE_MISMATCH, "Untranslatable record layout mismatch detected for file %s", subname); + else if (mode == RecordTranslationMode::PayloadRemoveOnly && translator->hasNewFields()) + throw MakeStringException(0, "Translatable file layout mismatch reading file %s but translation disabled when expected fields are missing from source.", subname); else if (translator->needsTranslate()) { if (fileMode==FileFormatMode::index && translator->keyedTranslated()) diff --git a/rtl/eclrtl/rtldynfield.cpp b/rtl/eclrtl/rtldynfield.cpp index 14f60d4ca22..31d8ad9f02c 100644 --- a/rtl/eclrtl/rtldynfield.cpp +++ b/rtl/eclrtl/rtldynfield.cpp @@ -38,6 +38,8 @@ extern ECLRTL_API RecordTranslationMode getTranslationMode(const char *val, bool { if (isEmptyString(val) || strToBool(val) || strieq(val, "payload")) return RecordTranslationMode::Payload; + else if (strieq(val, "payloadRemoveOnly")) + return RecordTranslationMode::PayloadRemoveOnly; else if (strieq(val, "alwaysDisk") || strieq(val, "disk")) { if (!isLocal) @@ -60,6 +62,7 @@ extern ECLRTL_API const char *getTranslationModeText(RecordTranslationMode val) case RecordTranslationMode::AlwaysDisk: return "alwaysDisk"; case RecordTranslationMode::AlwaysECL: return "alwaysECL"; case RecordTranslationMode::Payload: return "payload"; + case RecordTranslationMode::PayloadRemoveOnly: return "payloadRemoveOnly"; case RecordTranslationMode::None: return "off"; } throwUnexpected(); @@ -1085,6 +1088,10 @@ class GeneralRecordTranslator : public CInterfaceOf { return (matchFlags & match_keychange) != 0; } + virtual bool hasNewFields() const override + { + return (matchFlags & match_none) != 0; + } private: void doDescribe(unsigned indent) const { @@ -1948,6 +1955,10 @@ class CloneVirtualRecordTranslator : public CInterfaceOf { return false; } + virtual bool hasNewFields() const override + { + return false; + } private: void doDescribe(unsigned indent) const { diff --git a/rtl/eclrtl/rtldynfield.hpp b/rtl/eclrtl/rtldynfield.hpp index 2e7ae6f1df6..d9ddae13068 100644 --- a/rtl/eclrtl/rtldynfield.hpp +++ b/rtl/eclrtl/rtldynfield.hpp @@ -110,7 +110,8 @@ enum class RecordTranslationMode : byte Payload = 2, // Translate all fields in datasets, and only payload fields in indexes AlwaysDisk = 3, // Always translate - even if wouldn't normally (e.g. csv/xml source read as binary), or crcs happen to match AlwaysECL = 4, // Ignore the published format - can make sense to force no translation e.g. when field names have changed - Unspecified = 5 + PayloadRemoveOnly = 5, // Allow fields to be removed from the incoming dataset, but not allow fields to be missing + Unspecified = 6 }; // AlwaysDisk and AlwaysECL are for testing purposes only, and can only be set per file (not globally) extern ECLRTL_API RecordTranslationMode getTranslationMode(const char *modeStr, bool isLocal); @@ -139,6 +140,7 @@ interface IDynamicTransform : public IInterface virtual bool needsTranslate() const = 0; virtual bool keyedTranslated() const = 0; virtual bool needsNonVirtualTranslate() const = 0; + virtual bool hasNewFields() const = 0; }; interface IKeyTranslator : public IInterface diff --git a/thorlcr/slave/slavmain.cpp b/thorlcr/slave/slavmain.cpp index 07ef3c0c14d..d066be220c5 100644 --- a/thorlcr/slave/slavmain.cpp +++ b/thorlcr/slave/slavmain.cpp @@ -353,6 +353,8 @@ class CKJService : public CSimpleInterfaceOf, implements IThreaded, translator.setown(createRecordTranslator(projectedFormat->queryRecordAccessor(true), publishedFormat->queryRecordAccessor(true))); if (!translator->canTranslate()) throw MakeStringException(0, "Untranslatable record layout mismatch detected for: %s", tracing); + if (RecordTranslationMode::PayloadRemoveOnly == translationMode && translator->hasNewFields()) + throw MakeStringException(0, "Translatable file layout mismatch reading file %s but translation disabled when expected fields are missing from source.", tracing); } DBGLOG("Record layout translator created for %s", tracing); translator->describe(); From bf7baba636b04bffc91e90f83deaf80f8f8fddc3 Mon Sep 17 00:00:00 2001 From: Gordon Smith Date: Fri, 19 Apr 2024 13:24:11 +0100 Subject: [PATCH 11/13] HPCC-31315 Separate Cost and Penality in WU Details Signed-off-by: Gordon Smith --- esp/src/src-react/components/InfoGrid.tsx | 21 ++++++++++++++----- .../src-react/components/WorkunitSummary.tsx | 4 ++-- esp/src/src/Session.ts | 2 +- esp/src/src/nls/hpcc.ts | 2 ++ 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/esp/src/src-react/components/InfoGrid.tsx b/esp/src/src-react/components/InfoGrid.tsx index 2ea8e44b1d0..2fe63499487 100644 --- a/esp/src/src-react/components/InfoGrid.tsx +++ b/esp/src/src-react/components/InfoGrid.tsx @@ -1,11 +1,11 @@ import * as React from "react"; import { Checkbox, CommandBar, ICommandBarItemProps, Link } from "@fluentui/react"; import { SizeMe } from "react-sizeme"; +import { formatCost, formatTwoDigits } from "src/Session"; import nlsHPCC from "src/nlsHPCC"; import { useWorkunitExceptions } from "../hooks/workunit"; import { FluentGrid, useCopyButtons, useFluentStoreState, FluentColumns } from "./controls/Grid"; import { pivotItemStyle } from "../layouts/pivot"; -import { formatCost } from "src/Session"; function extractGraphInfo(msg) { const regex = /^([a-zA-Z0-9 :]+: )(graph graph(\d+)\[(\d+)\], )(([a-zA-Z]+)\[(\d+)\]: )?(.*)$/gmi; @@ -24,6 +24,7 @@ function extractGraphInfo(msg) { interface FilterCounts { cost: number, + penalty: number, error: number, warning: number, info: number, @@ -43,7 +44,7 @@ export const InfoGrid: React.FunctionComponent = ({ const [warningChecked, setWarningChecked] = React.useState(true); const [infoChecked, setInfoChecked] = React.useState(true); const [otherChecked, setOtherChecked] = React.useState(true); - const [filterCounts, setFilterCounts] = React.useState({ cost: 0, error: 0, warning: 0, info: 0, other: 0 }); + const [filterCounts, setFilterCounts] = React.useState({ cost: 0, penalty: 0, error: 0, warning: 0, info: 0, other: 0 }); const [exceptions] = useWorkunitExceptions(wuid); const [data, setData] = React.useState([]); const { @@ -79,16 +80,25 @@ export const InfoGrid: React.FunctionComponent = ({ return ""; } }, - Priority: { + Cost: { label: `${nlsHPCC.Source} / ${nlsHPCC.Cost}`, width: 144, formatter: (Source, row) => { if (Source === "Cost Optimizer") { - return formatCost(+row.Priority); + return formatCost(+row.Cost); } return Source; } }, - Code: { label: nlsHPCC.Code, width: 45 }, + Priority: { + label: `${nlsHPCC.Priority} / ${nlsHPCC.TimePenalty}`, width: 144, sortable: false, + formatter: (Priority, row) => { + if (row.Source === "Cost Optimizer") { + return `${formatTwoDigits(+row.Priority / 1000)} (${nlsHPCC.Seconds})`; + } + return Priority; + } + }, + Code: { label: nlsHPCC.Code, width: 45, sortable: false }, Message: { label: nlsHPCC.Message, sortable: true, @@ -121,6 +131,7 @@ export const InfoGrid: React.FunctionComponent = ({ React.useEffect(() => { const filterCounts: FilterCounts = { cost: 0, + penalty: 0, error: 0, warning: 0, info: 0, diff --git a/esp/src/src-react/components/WorkunitSummary.tsx b/esp/src/src-react/components/WorkunitSummary.tsx index 30001f43008..00281382d05 100644 --- a/esp/src/src-react/components/WorkunitSummary.tsx +++ b/esp/src/src-react/components/WorkunitSummary.tsx @@ -219,8 +219,8 @@ export const WorkunitSummary: React.FunctionComponent = ({ const potentialSavings = React.useMemo(() => { return exceptions.reduce((prev, cur) => { - if (isNumeric(cur.Priority)) { - prev += cur.Priority; + if (isNumeric(cur.Cost)) { + prev += cur.Cost; } return prev; }, 0) || 0; diff --git a/esp/src/src/Session.ts b/esp/src/src/Session.ts index 4fe21ceec71..4d150f4c09d 100644 --- a/esp/src/src/Session.ts +++ b/esp/src/src/Session.ts @@ -120,7 +120,7 @@ getBuildInfo().then(info => { dojoConfig.currencyCode = info["currencyCode"] ?? ""; }); -const formatTwoDigits = d3Format(",.2f"); +export const formatTwoDigits = d3Format(",.2f"); const formatSixDigits = d3Format(",.6f"); export function formatCost(value): string { if (isNaN(value)) { diff --git a/esp/src/src/nls/hpcc.ts b/esp/src/src/nls/hpcc.ts index 1731446b844..ff03308e6fd 100644 --- a/esp/src/src/nls/hpcc.ts +++ b/esp/src/src/nls/hpcc.ts @@ -824,6 +824,7 @@ export = { Save: "Save", Scope: "Scope", SearchResults: "Search Results", + Seconds: "Seconds", SecondsRemaining: "Seconds Remaining", Security: "Security", SecurityWarning: "Security Warning", @@ -947,6 +948,7 @@ export = { TimeMaxTotalExecuteMinutes: "Time Max Total Execute Minutes", TimeMeanTotalExecuteMinutes: "Time Mean Total Execute Minutes", TimeMinTotalExecuteMinutes: "Time Min Total Execute Minutes", + TimePenalty: "Time Penalty", TimeStamp: "Time Stamp", TimeSeconds: "Time (Seconds)", TimeStarted: "Time Started", From 1f8bbd728c52d6b04832493f58f61e75777e1fee Mon Sep 17 00:00:00 2001 From: Gavin Halliday Date: Wed, 1 May 2024 20:25:49 +0100 Subject: [PATCH 12/13] HPCC-31719 Restore previous values for stub memory resources Signed-off-by: Gavin Halliday --- helm/hpcc/templates/_helpers.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helm/hpcc/templates/_helpers.tpl b/helm/hpcc/templates/_helpers.tpl index cdf94da836b..6df5ae68842 100644 --- a/helm/hpcc/templates/_helpers.tpl +++ b/helm/hpcc/templates/_helpers.tpl @@ -1339,7 +1339,7 @@ Pass in dict with root, me and instances defined {{- $stubInstanceResources := .stubResources | default .root.Values.global.stubInstanceResources | default dict }} {{- $milliCPUText := $stubInstanceResources.cpu | default "200m" }} {{- $milliCPUs := int (include "hpcc.k8sCPUStringToMilliCPU" $milliCPUText) }} -{{- $memoryText := $stubInstanceResources.memory | default "50Mi" }} +{{- $memoryText := $stubInstanceResources.memory | default "400Mi" }} {{- $memory := int64 (include "hpcc.k8sMemoryStringToBytes" $memoryText) }} resources: limits: From 1d439bf2b8c1b3eed11cb6de9d5cc8e82ba33c79 Mon Sep 17 00:00:00 2001 From: "Dan S. Camper" Date: Thu, 2 May 2024 08:06:11 -0500 Subject: [PATCH 13/13] HPCC-31729 DataPatterns.Profile() fails to identify all Unicode letters as letters --- ecllibrary/std/DataPatterns/Profile.ecl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ecllibrary/std/DataPatterns/Profile.ecl b/ecllibrary/std/DataPatterns/Profile.ecl index 65643ed6317..877d1e085af 100644 --- a/ecllibrary/std/DataPatterns/Profile.ecl +++ b/ecllibrary/std/DataPatterns/Profile.ecl @@ -617,7 +617,7 @@ EXPORT Profile(inFile, #UNIQUENAME(_MapUpperCharUni); LOCAL %_MapUpperCharUni%(UNICODE s) := REGEXREPLACE(u'\\p{Lu}', s, u'A'); #UNIQUENAME(_MapLowerCharUni); - LOCAL %_MapLowerCharUni%(UNICODE s) := REGEXREPLACE(u'[[\\p{Ll}][\\p{Lt}][\\p{Lm}][\\p{Lo}]]', s, u'a'); + LOCAL %_MapLowerCharUni%(UNICODE s) := REGEXREPLACE(u'[\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}]', s, u'a'); #UNIQUENAME(_MapDigitUni); LOCAL %_MapDigitUni%(UNICODE s) := REGEXREPLACE(u'[1-9]', s, u'9'); // Leave '0' as-is and replace with '9' later #UNIQUENAME(_MapAllUni);