This is an automated email from the ASF dual-hosted git repository.

mfholz pushed a commit to branch translate-configuration
in repository https://gitbox.apache.org/repos/asf/streampipes.git

commit b17f52303353e46f038daaf9bd444dd7a9b17796
Merge: ec9b9f6ba9 67c4da64f8
Author: Marcelfrueh <[email protected]>
AuthorDate: Tue Oct 7 11:43:58 2025 +0200

    "Merge branch 'dev' resolved conflicts"

 .asf.yaml                                          |  12 +-
 docker-compose.yml                                 |  30 ++-
 .../deploy/standalone/kafka/docker-compose.dev.yml |  28 ++-
 .../cli/deploy/standalone/kafka/docker-compose.yml |  31 +--
 installer/compose/docker-compose.full.yml          |  30 ++-
 installer/compose/docker-compose.yml               |  30 ++-
 streampipes-client-e2e/docker-compose.yml          |  38 ++-
 ...ine-learning-on-a-streampipes-data-stream.ipynb |  49 ++--
 streampipes-client-python/poetry.lock              |  24 +-
 .../streampipes/function_zoo/river_function.py     |   9 +-
 .../functions/utils/data_stream_generator.py       |  10 +-
 .../api/IDataExplorerSchemaManagement.java         |   3 +
 .../dataexplorer/DataExplorerSchemaManagement.java |  58 ++---
 streampipes-integration-tests/pom.xml              |   4 +-
 .../integration/adapters/KafkaAdapterTester.java   |   8 +-
 .../integration/containers/KafkaDevContainer.java  |   2 +-
 ...fkaContainer.java => SpKafkaTestContainer.java} |  29 +--
 .../kafka/config/ConsumerConfigFactory.java        |   1 +
 .../streampipes/model/client/user/UserAccount.java |  20 ++
 .../model/dashboard/DashboardModel.java            |   5 +
 .../resource/management/UserResourceManager.java   |   6 +-
 .../streampipes/rest/impl/Authentication.java      |   2 +
 .../impl/datalake/DataLakeMeasureResource.java     |  43 ++--
 .../service/core/oauth2/UserService.java           |   4 +-
 ui/cypress.config.ts                               |  20 +-
 .../support/utils/DataDownloadDialogUtils.ts       |   2 +
 ui/cypress/support/utils/GeneralUtils.ts           |  16 ++
 ui/cypress/support/utils/asset/AssetUtils.ts       |   3 +
 ui/cypress/support/utils/connect/ConnectBtns.ts    |  10 +
 ui/cypress/support/utils/connect/ConnectUtils.ts   |  28 ++-
 ui/cypress/support/utils/datalake/DataLakeBtns.ts  |   7 +-
 ui/cypress/support/utils/datalake/DataLakeUtils.ts |  11 +-
 ui/cypress/support/utils/pipeline/PipelineUtils.ts |   8 +-
 ui/cypress/support/utils/user/PermissionUtils.ts   |  12 +-
 .../compactAdapterWithTransformation.spec.ts       |   4 +-
 .../tests/connect/compact/uiConfiguration.spec.ts  |   1 +
 ui/cypress/tests/connect/editAdapter.smoke.spec.ts |   9 +-
 .../editAdapterSettingsAndPipeline.smoke.spec.ts   |   3 +
 .../editAdapterTransformationRulesAreKept.spec.ts  |   1 +
 .../connect/editAdapterValuesAndFields.spec.ts     |   2 +
 ui/cypress/tests/connect/fileStream.spec.ts        |   4 +-
 .../connect/machineDataSimulator.smoke.spec.ts     |   2 +-
 .../opcua/startAndEditOpcAdapters.smoke.spec.ts    |   6 +-
 .../connect/rules/addNumericalStaticValue.spec.ts  |   2 +
 .../tests/datalake/configuration.smoke.spec.ts     |   2 +-
 .../tests/datalake/timeOrderDataView.spec.ts       |   2 +-
 .../tests/pipeline/pipelineTest.smoke.spec.ts      |   2 +-
 .../tests/pipeline/renamePipelineTest.spec.ts      |   4 +-
 .../pipeline/updatePipelineTest.smoke.spec.ts      |  15 +-
 .../userManagement/testGroupManagement.spec.ts     |   2 +-
 .../userManagement/testUserRoleConnect.spec.ts     |   4 +-
 .../userManagement/testUserRolePipeline.spec.ts    |   8 +-
 ui/deployment/i18n/de.json                         |  63 ++++-
 ui/deployment/i18n/en.json                         |  59 ++++-
 .../src/lib/apis/datalake-rest.service.ts          |   6 +
 .../src/lib/model/assets/asset.model.ts            |  16 ++
 .../src/lib/model/dashboard/dashboard.model.ts     |   1 +
 .../src/lib/model/gen/streampipes-model-client.ts  |   9 +-
 .../src/lib/model/gen/streampipes-model.ts         |   3 +-
 .../basic-header-title/header-title.component.scss |  18 +-
 .../basic-nav-tabs/basic-nav-tabs.component.scss   |   6 +
 .../basic-view/basic-view.component.html           |   1 +
 .../basic-view/basic-view.component.scss           |   3 +
 .../input-schema-panel.component.html              |   4 +-
 .../components/sp-label/sp-label.component.scss    |   1 -
 .../lib/components/sp-label/sp-label.component.ts  |   6 +-
 .../sp-table-actions.directive.ts}                 |  12 +-
 .../components/sp-table/sp-table.component.html    |  47 +++-
 .../components/sp-table/sp-table.component.scss    |   9 +
 .../lib/components/sp-table/sp-table.component.ts  |  31 +++
 .../split-section/split-section.component.html     |   2 +-
 .../shared-ui/src/lib/shared-ui.module.ts          |   3 +
 .../streampipes/shared-ui/src/public-api.ts        |   1 +
 ui/src/app/assets/assets.module.ts                 |   4 +
 .../asset-overview/asset-overview.component.html   |  80 +++---
 .../asset-overview/asset-overview.component.ts     |   2 +-
 .../edit-asset-link-dialog.component.html          |   1 +
 ui/src/app/configuration/configuration.module.ts   |   3 +-
 .../abstract-security-principal-config.ts          |  19 +-
 .../alternate-id-configuration.component.html      |  13 +-
 .../edit-group-dialog.component.html               |   2 -
 .../role-configuration.component.html              |   1 +
 .../security-user-config.component.html            |  26 ++
 .../security-user-config.component.ts              |  18 +-
 .../adapter-asset-configuration.component.html     |  64 +++++
 .../adapter-asset-configuration.component.scss}    |  97 ++++----
 .../adapter-asset-configuration.component.ts       | 133 ++++++++++
 .../adapter-configuration-header.component.html    |  33 ---
 .../adapter-configuration-header.component.scss    |  22 --
 .../adapter-configuration-header.component.ts      |  39 ---
 .../adapter-configuration.component.html           |  12 +-
 .../adapter-configuration.component.ts             |   6 +-
 .../adapter-options-panel.component.scss           |   7 +-
 .../start-adapter-configuration.component.html     |  58 +++--
 .../start-adapter-configuration.component.ts       |  26 +-
 .../existing-adapters.component.html               | 192 +++++++++------
 .../existing-adapters.component.scss               |  11 +-
 .../existing-adapters.component.ts                 |   2 +-
 ui/src/app/connect/connect.module.ts               |  10 +-
 .../adapter-started-dialog.component.html          |   1 +
 .../adapter-started-dialog.component.ts            | 154 +++++++++++-
 .../adapter-started-success.component.html         |  22 ++
 .../adapter-started-success.component.ts           |   3 +
 .../adapter-asset-configuration.service.ts         | 156 ++++++++++++
 .../id-generator/id-generator.service.ts           |   4 +
 .../template/PipelineInvocationBuilder.ts          |  96 --------
 .../grid-view/dashboard-grid-view.component.scss   |   2 +-
 .../grid-view/dashboard-grid-view.component.ts     |   4 +-
 .../slide-view/dashboard-slide-view.component.scss |   5 +-
 .../dashboard-overview-table.component.html        | 175 ++++++-------
 .../dashboard-overview-table.component.ts          |  26 ++
 .../overview/dashboard-overview.component.ts       |   3 +-
 .../panel/dashboard-panel.component.scss           |   1 -
 ui/src/app/dashboard/dashboard.module.ts           |   4 +
 .../clone-dashboard-dialog.component.html          | 158 ++++++++++++
 .../clone-dashboard-dialog.component.scss}         |   6 +-
 .../clone-dashboard-dialog.component.ts            | 130 ++++++++++
 .../edit-dashboard-dialog.component.html           |  22 ++
 .../edit-dashboard-dialog.component.ts             |   8 +-
 .../data-explorer-chart-container.component.scss   |   2 +-
 .../charts/status/status-widget.component.ts       |   2 +-
 ...lorer-widget-appearance-settings.component.html |  98 +++++---
 ...lorer-widget-appearance-settings.component.scss |   6 +
 ...xplorer-widget-appearance-settings.component.ts |  44 +++-
 .../data-explorer-overview-table.component.html    | 162 +++++-------
 .../custom-output-strategy.component.html          |   8 +-
 .../output-strategy/output-strategy.component.html |   2 +-
 .../user-defined-output.component.html             |  10 +-
 ...-assembly-options-pipeline-cache.component.html |  18 +-
 ...-assembly-options-pipeline-cache.component.scss |   4 +
 .../pipeline-assembly-options.component.html       |  30 +--
 .../pipeline-element-icon-stand.component.html     |  10 +-
 .../pipeline-element-options.component.html        |  10 +-
 .../pipeline-element-preview.component.html        |   4 +-
 .../components/pipeline/pipeline.component.html    |   2 +-
 .../add-template-dialog.component.html             |   4 +-
 .../compatible-elements.component.html             |   2 +-
 .../dialog/customize/customize.component.html      |  17 +-
 .../matching-error/matching-error.component.html   |  18 +-
 .../missing-elements-for-tutorial.component.html   |  14 +-
 ui/src/app/editor/editor.component.html            |   2 +-
 ui/src/app/editor/editor.module.ts                 |   2 +
 ui/src/app/home/components/status.component.scss   |   7 +-
 ui/src/app/home/home.component.html                |   4 +-
 .../app/notifications/notifications.component.html |   6 +-
 ui/src/app/notifications/notifications.module.ts   |   2 +
 .../pipeline-overview.component.html               | 273 +++++++++++++--------
 .../pipeline-overview.component.ts                 |   2 +-
 ui/src/app/pipelines/pipelines.module.ts           |   2 +
 ui/src/app/profile/profile.component.html          |   8 +-
 ui/src/scss/sp/_variables.scss                     |   1 +
 ui/src/scss/sp/buttons-mat3.scss                   |   2 +-
 ui/src/scss/sp/layout.scss                         |   8 +
 ui/src/scss/sp/main.scss                           |   6 +
 ui/src/scss/sp/sp-theme.scss                       |   3 +-
 155 files changed, 2446 insertions(+), 1177 deletions(-)

diff --cc 
ui/src/app/configuration/security-configuration/abstract-security-principal-config.ts
index 6c0312edca,4cc91b1515..c9b641f282
--- 
a/ui/src/app/configuration/security-configuration/abstract-security-principal-config.ts
+++ 
b/ui/src/app/configuration/security-configuration/abstract-security-principal-config.ts
@@@ -49,13 -46,10 +47,11 @@@ export abstract class AbstractSecurityP
  
      dataSource: MatTableDataSource<T>;
  
-     constructor(
-         protected userService: UserService,
-         protected userAdminService: UserAdminService,
-         protected dialogService: DialogService,
-         private dialog: MatDialog,
-         private translateService: TranslateService,
-     ) {}
+     protected userService = inject(UserService);
+     protected userAdminService = inject(UserAdminService);
+     protected dialogService = inject(DialogService);
+     private dialog = inject(MatDialog);
++    private translateService = inject(TranslateService);
  
      ngOnInit(): void {
          this.load();
diff --cc 
ui/src/app/configuration/security-configuration/alternate-id-configuration/alternate-id-configuration.component.html
index 52b2a87dc7,462aa769f7..5ddb528122
--- 
a/ui/src/app/configuration/security-configuration/alternate-id-configuration/alternate-id-configuration.component.html
+++ 
b/ui/src/app/configuration/security-configuration/alternate-id-configuration/alternate-id-configuration.component.html
@@@ -29,9 -29,14 +29,14 @@@
              </button>
          </div>
      }
-     <div fxLayout="row" fxLayoutAlign="start center" class="alternate-id-row">
+     <div
+         fxLayout="row"
+         fxLayoutAlign="start center"
+         class="alternate-id-row"
+         fxLayoutGap="10px"
+     >
          <mat-form-field color="accent" fxFlex subscriptSizing="dynamic">
 -            <mat-label>New Alternate ID</mat-label>
 +            <mat-label>{{ 'New Alternate ID' | translate }}</mat-label>
              <input
                  matInput
                  [(ngModel)]="newAlternateId"
@@@ -40,8 -45,12 +45,12 @@@
              />
          </mat-form-field>
          <div fxLayoutAlign="start center">
-             <button mat-button class="mat-basic" (click)="addAlternateId()">
+             <button
+                 mat-flat-button
+                 class="mat-basic"
+                 (click)="addAlternateId()"
+             >
 -                <mat-icon>add</mat-icon><span>Add</span>
 +                <mat-icon>add</mat-icon><span>{{ 'Add' | translate }}</span>
              </button>
          </div>
      </div>
diff --cc 
ui/src/app/configuration/security-configuration/security-user-configuration/security-user-config.component.html
index 3dacf7ea55,b8b2f26925..9e17796d6e
--- 
a/ui/src/app/configuration/security-configuration/security-user-configuration/security-user-config.component.html
+++ 
b/ui/src/app/configuration/security-configuration/security-user-configuration/security-user-config.component.html
@@@ -68,9 -63,35 +68,35 @@@
                  </td>
              </ng-container>
  
+             <ng-container matColumnDef="createdAtMillis">
+                 <th mat-header-cell mat-sort-header *matHeaderCellDef>
+                     {{ 'Created' | translate }}
+                 </th>
+                 <td mat-cell *matCellDef="let account">
+                     {{
+                         this.dateFormatService.formatDate(
+                             account.createdAtMillis
+                         )
+                     }}
+                 </td>
+             </ng-container>
+ 
+             <ng-container matColumnDef="lastLoginAtMillis">
+                 <th mat-header-cell mat-sort-header *matHeaderCellDef>
+                     {{ 'Last Login' | translate }}
+                 </th>
+                 <td mat-cell *matCellDef="let account">
+                     {{
+                         this.dateFormatService.formatDate(
+                             account.lastLoginAtMillis
+                         )
+                     }}
+                 </td>
+             </ng-container>
+ 
              <ng-container matColumnDef="edit">
                  <th mat-header-cell *matHeaderCellDef class="text-right">
 -                    Actions
 +                    {{ 'Actions' | translate }}
                  </th>
                  <td mat-cell *matCellDef="let account">
                      <div fxLayout="row">

Reply via email to