You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampipes.apache.org by ze...@apache.org on 2022/02/01 15:47:57 UTC

[incubator-streampipes] branch experimental-module-federation updated (307fc70 -> b05f1c2)

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

zehnder pushed a change to branch experimental-module-federation
in repository https://gitbox.apache.org/repos/asf/incubator-streampipes.git.


    from 307fc70  Use correct path for module import
     new 1db18bf  [hotfix] Platform service is now working
     new b05f1c2  [experimental-module-federation] Replace platform-service imports

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../app-constants.ts}                              | 11 ++--
 ui/deployment/prebuild.js                          |  1 +
 .../src/lib/model/dashboard/dashboard.model.ts     |  4 +-
 .../platform-services/src/public-api.ts            |  2 +
 .../_guards/auth.can-activate-children.guard.ts    |  1 -
 ui/src/app/_guards/page-auth.can-active.guard.ts   |  2 +-
 ui/src/app/_models/auth.model.ts                   |  2 +-
 ui/src/app/add/add.component.ts                    |  2 +-
 ui/src/app/add/add.module.ts                       | 36 ++++++-------
 .../endpoint-item/endpoint-item.component.ts       |  4 +-
 .../dialogs/add-endpoint/add-endpoint.component.ts | 10 ++--
 .../endpoint-installation.component.ts             |  2 +-
 ui/src/app/add/filter/order-by.pipe.ts             |  6 +--
 .../pipeline-element-installation-status.pipe.ts   |  8 +--
 .../app/add/filter/pipeline-element-name.pipe.ts   |  6 +--
 .../app/add/filter/pipeline-element-type.pipe.ts   |  6 +--
 ui/src/app/add/services/add.service.ts             |  3 +-
 ui/src/app/apidocs/apidocs.component.ts            |  2 +-
 ui/src/app/apidocs/apidocs.module.ts               | 12 ++---
 .../components/view-asset/view-asset.component.ts  | 13 ++---
 .../add-pipeline/add-pipeline-dialog.component.ts  |  2 +-
 .../app-asset-monitoring/services/rest.service.ts  |  2 +-
 .../app-image-labeling.component.ts                |  3 +-
 ui/src/app/configuration/configuration.module.ts   |  2 +-
 .../consul-configs-boolean.component.ts            | 12 ++---
 .../consul-configs-number.component.ts             | 12 ++---
 .../consul-configs-password.component.ts           | 35 ++++++------
 .../consul-configs-text.component.ts               | 12 ++---
 .../consul-service/consul-service.component.ts     |  8 +--
 .../datalake-configuration.component.ts            |  5 +-
 .../email-configuration.component.ts               |  3 +-
 .../general-configuration.component.ts             |  5 +-
 .../messaging-configuration.component.ts           | 14 ++---
 .../pipeline-element-configuration.component.ts    | 24 ++++-----
 .../edit-group-dialog.component.ts                 |  4 +-
 .../edit-user-dialog/edit-user-dialog.component.ts | 14 ++---
 .../security-service-config.component.ts           |  2 +-
 .../security-user-config.component.ts              |  2 +-
 .../user-group-configuration.component.ts          |  3 +-
 .../shared/configuration.service.spec.ts           | 18 +++----
 .../configuration/shared/configuration.service.ts  | 36 ++++++-------
 .../shared/configuration.test.service.ts           | 26 ++++-----
 .../shared/streampipes-pe-container.model.ts       |  8 +--
 ui/src/app/connect/services/rest.service.ts        |  3 +-
 .../static-alternatives.component.ts               |  2 +-
 .../static-color-picker.component.ts               | 18 +++----
 .../components/panel/dashboard-panel.component.ts  | 47 ++++++++--------
 .../standalone/standalone-dashboard.component.ts   | 18 +++----
 .../widget/dashboard-widget.component.ts           | 49 ++++++++---------
 .../components/widgets/base/base-widget.ts         | 62 +++++++++++-----------
 .../stacked-line-chart-config.ts                   | 24 ++++-----
 .../widgets/wordcloud/wordcloud-config.ts          | 30 +++++------
 ui/src/app/dashboard/registry/widget-registry.ts   | 34 ++++++------
 .../data-explorer-designer-panel.component.ts      |  2 +-
 .../group-selection-panel.component.ts             |  2 +-
 .../data-explorer-dashboard-overview.component.ts  |  3 +-
 .../data-explorer-dashboard-panel.component.ts     |  7 ++-
 .../components/widgets/base/base-widget-config.ts  |  2 +-
 .../distribution-chart-widget.component.ts         |  5 +-
 .../widgets/heatmap/heatmap-widget.component.ts    |  2 +-
 .../data-explorer-field-provider-service.ts        |  2 +-
 .../user-defined-output.component.ts               | 42 +++++++--------
 .../preview/pipeline-preview.component.ts          |  2 +-
 .../pipeline-status-dialog.component.ts            |  3 +-
 .../services/pipeline-operations.service.ts        |  2 +-
 ui/src/app/services/jwt-token-storage.service.ts   |  2 +-
 66 files changed, 355 insertions(+), 393 deletions(-)
 copy ui/{src/app/data-explorer/services/refresh-dashboard.service.ts => deployment/app-constants.ts} (77%)

[incubator-streampipes] 02/02: [experimental-module-federation] Replace platform-service imports

Posted by ze...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zehnder pushed a commit to branch experimental-module-federation
in repository https://gitbox.apache.org/repos/asf/incubator-streampipes.git

commit b05f1c2eacc273bc99af49d3441b6ee3eb342f2b
Author: Philipp Zehnder <ze...@fzi.de>
AuthorDate: Tue Feb 1 16:47:16 2022 +0100

    [experimental-module-federation] Replace platform-service imports
---
 .../platform-services/src/public-api.ts            |  2 ++
 .../_guards/auth.can-activate-children.guard.ts    |  1 -
 ui/src/app/_guards/page-auth.can-active.guard.ts   |  2 +-
 ui/src/app/_models/auth.model.ts                   |  2 +-
 ui/src/app/add/add.component.ts                    |  2 +-
 ui/src/app/add/add.module.ts                       | 36 +++++++++----------
 .../endpoint-item/endpoint-item.component.ts       |  4 +--
 .../dialogs/add-endpoint/add-endpoint.component.ts | 10 +++---
 .../endpoint-installation.component.ts             |  2 +-
 ui/src/app/add/filter/order-by.pipe.ts             |  6 ++--
 .../pipeline-element-installation-status.pipe.ts   |  8 ++---
 .../app/add/filter/pipeline-element-name.pipe.ts   |  6 ++--
 .../app/add/filter/pipeline-element-type.pipe.ts   |  6 ++--
 ui/src/app/add/services/add.service.ts             |  3 +-
 ui/src/app/apidocs/apidocs.component.ts            |  2 +-
 ui/src/app/apidocs/apidocs.module.ts               | 12 +++----
 .../add-pipeline/add-pipeline-dialog.component.ts  |  2 +-
 .../app-asset-monitoring/services/rest.service.ts  |  2 +-
 .../app-image-labeling.component.ts                |  3 +-
 .../consul-configs-boolean.component.ts            | 12 +++----
 .../consul-configs-number.component.ts             | 12 +++----
 .../consul-configs-password.component.ts           | 35 ++++++++----------
 .../consul-configs-text.component.ts               | 12 +++----
 .../consul-service/consul-service.component.ts     |  8 ++---
 .../datalake-configuration.component.ts            |  5 +--
 .../email-configuration.component.ts               |  3 +-
 .../general-configuration.component.ts             |  5 +--
 .../messaging-configuration.component.ts           | 14 ++++----
 .../pipeline-element-configuration.component.ts    | 24 ++++++-------
 .../edit-group-dialog.component.ts                 |  4 +--
 .../edit-user-dialog/edit-user-dialog.component.ts | 14 ++++----
 .../security-service-config.component.ts           |  2 +-
 .../security-user-config.component.ts              |  2 +-
 .../user-group-configuration.component.ts          |  3 +-
 .../shared/configuration.service.spec.ts           | 18 +++++-----
 .../configuration/shared/configuration.service.ts  | 36 +++++++++----------
 .../shared/configuration.test.service.ts           | 26 +++++++-------
 .../shared/streampipes-pe-container.model.ts       |  8 ++---
 ui/src/app/connect/services/rest.service.ts        |  3 +-
 .../static-alternatives.component.ts               |  2 +-
 .../static-color-picker.component.ts               | 18 +++++-----
 .../widget/dashboard-widget.component.ts           |  6 ++--
 .../stacked-line-chart-config.ts                   | 24 ++++++-------
 .../widgets/wordcloud/wordcloud-config.ts          | 30 ++++++++--------
 ui/src/app/dashboard/registry/widget-registry.ts   | 34 +++++++++---------
 .../data-explorer-designer-panel.component.ts      |  2 +-
 .../group-selection-panel.component.ts             |  2 +-
 .../data-explorer-dashboard-overview.component.ts  |  3 +-
 .../components/widgets/base/base-widget-config.ts  |  2 +-
 .../distribution-chart-widget.component.ts         |  5 +--
 .../widgets/heatmap/heatmap-widget.component.ts    |  2 +-
 .../data-explorer-field-provider-service.ts        |  2 +-
 .../user-defined-output.component.ts               | 42 +++++++++++-----------
 .../preview/pipeline-preview.component.ts          |  2 +-
 .../pipeline-status-dialog.component.ts            |  3 +-
 .../services/pipeline-operations.service.ts        |  2 +-
 ui/src/app/services/jwt-token-storage.service.ts   |  2 +-
 57 files changed, 257 insertions(+), 283 deletions(-)

diff --git a/ui/projects/streampipes/platform-services/src/public-api.ts b/ui/projects/streampipes/platform-services/src/public-api.ts
index a09e536..08df46a 100644
--- a/ui/projects/streampipes/platform-services/src/public-api.ts
+++ b/ui/projects/streampipes/platform-services/src/public-api.ts
@@ -27,5 +27,7 @@ export * from './lib/apis/shared-dashboard.service';
 export * from './lib/model/datalake/DateRange';
 export * from './lib/model/datalake/DatalakeQueryParameters';
 export * from './lib/model/dashboard/dashboard.model';
+export * from './lib/model/email-config.model';
+export * from './lib/model/general-config.model';
 export * from './lib/model/gen/streampipes-model-client';
 export * from './lib/model/gen/streampipes-model';
diff --git a/ui/src/app/_guards/auth.can-activate-children.guard.ts b/ui/src/app/_guards/auth.can-activate-children.guard.ts
index 8887c90..7677ed5 100644
--- a/ui/src/app/_guards/auth.can-activate-children.guard.ts
+++ b/ui/src/app/_guards/auth.can-activate-children.guard.ts
@@ -33,7 +33,6 @@ export class AuthCanActivateChildrenGuard implements CanActivateChild {
   }
 
   canActivateChild(childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
-    //this.authService.logout();
       if (this.authService.authenticated()) {
         return true;
       }
diff --git a/ui/src/app/_guards/page-auth.can-active.guard.ts b/ui/src/app/_guards/page-auth.can-active.guard.ts
index c008e4c..2370ebb 100644
--- a/ui/src/app/_guards/page-auth.can-active.guard.ts
+++ b/ui/src/app/_guards/page-auth.can-active.guard.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { ActivatedRouteSnapshot, CanActivate, CanActivateChild, Router } from '@angular/router';
+import { ActivatedRouteSnapshot, CanActivateChild, Router } from '@angular/router';
 import { AuthService } from '../services/auth.service';
 import { PageName } from '../_enums/page-name.enum';
 import { Injectable } from '@angular/core';
diff --git a/ui/src/app/_models/auth.model.ts b/ui/src/app/_models/auth.model.ts
index 207ca70..18fc771 100644
--- a/ui/src/app/_models/auth.model.ts
+++ b/ui/src/app/_models/auth.model.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { Privilege, Role } from '../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client';
+import { Privilege, Role } from '@streampipes/platform-services';
 import { UserRole } from '../_enums/user-role.enum';
 
 export type RoleModel = Privilege | Role;
diff --git a/ui/src/app/add/add.component.ts b/ui/src/app/add/add.component.ts
index be0beec..43d9584 100644
--- a/ui/src/app/add/add.component.ts
+++ b/ui/src/app/add/add.component.ts
@@ -24,7 +24,7 @@ import { PanelType } from '../core-ui/dialog/base-dialog/base-dialog.model';
 import { DialogService } from '../core-ui/dialog/base-dialog/base-dialog.service';
 import { AddEndpointComponent } from './dialogs/add-endpoint/add-endpoint.component';
 import { EndpointInstallationComponent } from './dialogs/endpoint-installation/endpoint-installation.component';
-import { ExtensionsServiceEndpointItem } from '../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client';
+import { ExtensionsServiceEndpointItem } from '@streampipes/platform-services';
 
 @Component({
     selector: 'add',
diff --git a/ui/src/app/add/add.module.ts b/ui/src/app/add/add.module.ts
index 7a39bdf..dad31c8 100644
--- a/ui/src/app/add/add.module.ts
+++ b/ui/src/app/add/add.module.ts
@@ -16,23 +16,23 @@
  *
  */
 
-import {NgModule} from "@angular/core";
-import {FlexLayoutModule} from "@angular/flex-layout";
-import {FormsModule} from "@angular/forms";
-import {MatTabsModule} from "@angular/material/tabs";
-import {CustomMaterialModule} from "../CustomMaterial/custom-material.module";
-import {CommonModule} from "@angular/common";
-import {AddComponent} from "./add.component";
-import {CoreUiModule} from "../core-ui/core-ui.module";
-import {MatProgressSpinnerModule} from '@angular/material/progress-spinner';
-import {PipelineElementTypeFilter} from "./filter/pipeline-element-type.pipe";
-import {EndpointItemComponent} from "./components/endpoint-item/endpoint-item.component";
-import {AddService} from "./services/add.service";
-import {AddEndpointComponent} from "./dialogs/add-endpoint/add-endpoint.component";
-import {OrderByPipe} from "./filter/order-by.pipe";
-import {EndpointInstallationComponent} from "./dialogs/endpoint-installation/endpoint-installation.component";
-import {PipelineElementNameFilter} from "./filter/pipeline-element-name.pipe";
-import {PipelineElementInstallationStatusFilter} from "./filter/pipeline-element-installation-status.pipe";
+import { NgModule } from '@angular/core';
+import { FlexLayoutModule } from '@angular/flex-layout';
+import { FormsModule } from '@angular/forms';
+import { MatTabsModule } from '@angular/material/tabs';
+import { CustomMaterialModule } from '../CustomMaterial/custom-material.module';
+import { CommonModule } from '@angular/common';
+import { AddComponent } from './add.component';
+import { CoreUiModule } from '../core-ui/core-ui.module';
+import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
+import { PipelineElementTypeFilter } from './filter/pipeline-element-type.pipe';
+import { EndpointItemComponent } from './components/endpoint-item/endpoint-item.component';
+import { AddService } from './services/add.service';
+import { AddEndpointComponent } from './dialogs/add-endpoint/add-endpoint.component';
+import { OrderByPipe } from './filter/order-by.pipe';
+import { EndpointInstallationComponent } from './dialogs/endpoint-installation/endpoint-installation.component';
+import { PipelineElementNameFilter } from './filter/pipeline-element-name.pipe';
+import { PipelineElementInstallationStatusFilter } from './filter/pipeline-element-installation-status.pipe';
 
 @NgModule({
   imports: [
@@ -73,4 +73,4 @@ export class AddModule {
   constructor() {
   }
 
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/add/components/endpoint-item/endpoint-item.component.ts b/ui/src/app/add/components/endpoint-item/endpoint-item.component.ts
index 6057d78..fb7b20c 100644
--- a/ui/src/app/add/components/endpoint-item/endpoint-item.component.ts
+++ b/ui/src/app/add/components/endpoint-item/endpoint-item.component.ts
@@ -18,12 +18,10 @@
 
 import { Component, EventEmitter, Input, OnInit, Output, Sanitizer } from '@angular/core';
 import { MatSnackBar } from '@angular/material/snack-bar';
-import { PipelineElementEndpointService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/pipeline-element-endpoint.service';
 import { AddService } from '../../services/add.service';
 import { DomSanitizer, SafeUrl } from '@angular/platform-browser';
-import { ExtensionsServiceEndpointItem } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client';
+import { ExtensionsServiceEndpointItem, PipelineElementEndpointService } from '@streampipes/platform-services';
 import { AppConstants } from '../../../services/app.constants';
-import { Pipeline } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { ObjectPermissionDialogComponent } from '../../../core-ui/object-permission-dialog/object-permission-dialog.component';
 import { PanelType } from '../../../core-ui/dialog/base-dialog/base-dialog.model';
 import { DialogService } from '../../../core-ui/dialog/base-dialog/base-dialog.service';
diff --git a/ui/src/app/add/dialogs/add-endpoint/add-endpoint.component.ts b/ui/src/app/add/dialogs/add-endpoint/add-endpoint.component.ts
index f00b9b0..89f239e 100644
--- a/ui/src/app/add/dialogs/add-endpoint/add-endpoint.component.ts
+++ b/ui/src/app/add/dialogs/add-endpoint/add-endpoint.component.ts
@@ -16,9 +16,9 @@
  *
  */
 
-import {Component, OnInit} from "@angular/core";
-import {AddService} from "../../services/add.service";
-import {DialogRef} from "../../../core-ui/dialog/base-dialog/dialog-ref";
+import { Component, OnInit } from '@angular/core';
+import { AddService } from '../../services/add.service';
+import { DialogRef } from '../../../core-ui/dialog/base-dialog/dialog-ref';
 
 @Component({
     selector: 'add-endpoint-dialog',
@@ -31,7 +31,7 @@ export class AddEndpointComponent implements OnInit {
     addSelected: any;
     newEndpoint: any;
 
-    endpointsChanged: boolean = false;
+    endpointsChanged = false;
 
     constructor(private AddService: AddService,
                 private DialogRef: DialogRef<AddEndpointComponent>) {
@@ -75,4 +75,4 @@ export class AddEndpointComponent implements OnInit {
     close() {
         this.DialogRef.close(this.endpointsChanged);
     }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/add/dialogs/endpoint-installation/endpoint-installation.component.ts b/ui/src/app/add/dialogs/endpoint-installation/endpoint-installation.component.ts
index 81730e0..b455cd4 100644
--- a/ui/src/app/add/dialogs/endpoint-installation/endpoint-installation.component.ts
+++ b/ui/src/app/add/dialogs/endpoint-installation/endpoint-installation.component.ts
@@ -18,7 +18,7 @@
 
 import { Component, Input } from '@angular/core';
 import { DialogRef } from '../../../core-ui/dialog/base-dialog/dialog-ref';
-import { PipelineElementEndpointService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/pipeline-element-endpoint.service';
+import { PipelineElementEndpointService } from '@streampipes/platform-services';
 
 @Component({
   selector: 'endpoint-installation-dialog',
diff --git a/ui/src/app/add/filter/order-by.pipe.ts b/ui/src/app/add/filter/order-by.pipe.ts
index 0af99c8..28ab2ec 100644
--- a/ui/src/app/add/filter/order-by.pipe.ts
+++ b/ui/src/app/add/filter/order-by.pipe.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import {Pipe, PipeTransform} from '@angular/core';
+import { Pipe, PipeTransform } from '@angular/core';
 
 @Pipe({name: 'orderBy'})
 export class OrderByPipe implements PipeTransform {
@@ -35,7 +35,7 @@ export class OrderByPipe implements PipeTransform {
         return value.sort().reverse();
       }
     }
-    let sortedValues = value.sort((a, b) => a[column].localeCompare(b[column]));
+    const sortedValues = value.sort((a, b) => a[column].localeCompare(b[column]));
     return order === 'asc' ? sortedValues : sortedValues.reverse();
   }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/add/filter/pipeline-element-installation-status.pipe.ts b/ui/src/app/add/filter/pipeline-element-installation-status.pipe.ts
index 0f84b73..ad029b4 100644
--- a/ui/src/app/add/filter/pipeline-element-installation-status.pipe.ts
+++ b/ui/src/app/add/filter/pipeline-element-installation-status.pipe.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import {Pipe, PipeTransform} from "@angular/core";
+import { Pipe, PipeTransform } from '@angular/core';
 
 @Pipe({
   name: 'pipelineElementInstallationStatusFilter',
@@ -25,11 +25,11 @@ import {Pipe, PipeTransform} from "@angular/core";
 export class PipelineElementInstallationStatusFilter implements PipeTransform {
 
   transform(values: any[], filterTerm: string): any[] {
-    if (filterTerm === "all") {
+    if (filterTerm === 'all') {
       return values;
     } else {
-      let installed = filterTerm === "installed";
+      const installed = filterTerm === 'installed';
       return values.filter(v => v.installed === installed);
     }
   }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/add/filter/pipeline-element-name.pipe.ts b/ui/src/app/add/filter/pipeline-element-name.pipe.ts
index 9dd6118..d11f630 100644
--- a/ui/src/app/add/filter/pipeline-element-name.pipe.ts
+++ b/ui/src/app/add/filter/pipeline-element-name.pipe.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import {Pipe, PipeTransform} from "@angular/core";
+import { Pipe, PipeTransform } from '@angular/core';
 
 @Pipe({
   name: 'pipelineElementNameFilter',
@@ -25,10 +25,10 @@ import {Pipe, PipeTransform} from "@angular/core";
 export class PipelineElementNameFilter implements PipeTransform {
 
   transform(values: any[], filterTerm: string): any[] {
-    if (filterTerm === "") {
+    if (filterTerm === '') {
       return values;
     } else {
       return values.filter(v => v.name.toLowerCase().includes(filterTerm.toLowerCase()));
     }
   }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/add/filter/pipeline-element-type.pipe.ts b/ui/src/app/add/filter/pipeline-element-type.pipe.ts
index 24bd5cc..d305c5b 100644
--- a/ui/src/app/add/filter/pipeline-element-type.pipe.ts
+++ b/ui/src/app/add/filter/pipeline-element-type.pipe.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import {Pipe, PipeTransform} from "@angular/core";
+import { Pipe, PipeTransform } from '@angular/core';
 
 @Pipe({
   name: 'pipelineElementTypeFilter',
@@ -25,10 +25,10 @@ import {Pipe, PipeTransform} from "@angular/core";
 export class PipelineElementTypeFilter implements PipeTransform {
 
   transform(value: any[], type: string): any[] {
-    if (type === "all") {
+    if (type === 'all') {
       return value;
     } else {
       return value.filter(v => v.type === type);
     }
   }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/add/services/add.service.ts b/ui/src/app/add/services/add.service.ts
index f976bad..cfebaca 100644
--- a/ui/src/app/add/services/add.service.ts
+++ b/ui/src/app/add/services/add.service.ts
@@ -18,10 +18,9 @@
 
 import { Injectable } from '@angular/core';
 import { HttpClient } from '@angular/common/http';
-import { PlatformServicesCommons } from '../../../../projects/streampipes/platform-services/src/lib/apis/commons.service';
+import { PlatformServicesCommons, ExtensionsServiceEndpointItem } from '@streampipes/platform-services';
 import { Observable } from 'rxjs';
 import { map } from 'rxjs/operators';
-import { ExtensionsServiceEndpointItem } from '../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client';
 
 @Injectable()
 export class AddService {
diff --git a/ui/src/app/apidocs/apidocs.component.ts b/ui/src/app/apidocs/apidocs.component.ts
index 36cd262..87fca4c 100644
--- a/ui/src/app/apidocs/apidocs.component.ts
+++ b/ui/src/app/apidocs/apidocs.component.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import {Component, ElementRef, OnInit} from "@angular/core";
+import { Component, ElementRef, OnInit } from '@angular/core';
 import SwaggerUI from 'swagger-ui';
 
 
diff --git a/ui/src/app/apidocs/apidocs.module.ts b/ui/src/app/apidocs/apidocs.module.ts
index 6ea2522..735b8ba 100644
--- a/ui/src/app/apidocs/apidocs.module.ts
+++ b/ui/src/app/apidocs/apidocs.module.ts
@@ -16,12 +16,12 @@
  *
  */
 
-import {NgModule} from "@angular/core";
-import {FlexLayoutModule} from "@angular/flex-layout";
-import {CustomMaterialModule} from "../CustomMaterial/custom-material.module";
-import {CommonModule} from "@angular/common";
-import {CoreUiModule} from "../core-ui/core-ui.module";
-import {ApidocsComponent} from "./apidocs.component";
+import { NgModule } from '@angular/core';
+import { FlexLayoutModule } from '@angular/flex-layout';
+import { CustomMaterialModule } from '../CustomMaterial/custom-material.module';
+import { CommonModule } from '@angular/common';
+import { CoreUiModule } from '../core-ui/core-ui.module';
+import { ApidocsComponent } from './apidocs.component';
 
 @NgModule({
   imports: [
diff --git a/ui/src/app/app-asset-monitoring/dialog/add-pipeline/add-pipeline-dialog.component.ts b/ui/src/app/app-asset-monitoring/dialog/add-pipeline/add-pipeline-dialog.component.ts
index 7fb7f1b..2d7c7ec 100644
--- a/ui/src/app/app-asset-monitoring/dialog/add-pipeline/add-pipeline-dialog.component.ts
+++ b/ui/src/app/app-asset-monitoring/dialog/add-pipeline/add-pipeline-dialog.component.ts
@@ -23,7 +23,7 @@ import { ElementIconText } from '../../../services/get-element-icon-text.service
 import { SelectedVisualizationData } from '../../model/selected-visualization-data.model';
 import { DashboardService } from '../../../dashboard/services/dashboard.service';
 import { DialogRef } from '../../../core-ui/dialog/base-dialog/dialog-ref';
-import { VisualizablePipeline } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
+import { VisualizablePipeline } from '@streampipes/platform-services';
 
 @Component({
     selector: 'add-pipeline-dialog-component',
diff --git a/ui/src/app/app-asset-monitoring/services/rest.service.ts b/ui/src/app/app-asset-monitoring/services/rest.service.ts
index eabcc9f..f33c910 100644
--- a/ui/src/app/app-asset-monitoring/services/rest.service.ts
+++ b/ui/src/app/app-asset-monitoring/services/rest.service.ts
@@ -21,7 +21,7 @@ import { Injectable } from '@angular/core';
 import { map } from 'rxjs/operators';
 import { Observable } from 'rxjs';
 import { DashboardConfiguration } from '../model/dashboard-configuration.model';
-import { PlatformServicesCommons } from '../../../../projects/streampipes/platform-services/src/lib/apis/commons.service';
+import { PlatformServicesCommons } from '@streampipes/platform-services';
 
 @Injectable()
 export class RestService {
diff --git a/ui/src/app/app-image-labeling/app-image-labeling.component.ts b/ui/src/app/app-image-labeling/app-image-labeling.component.ts
index ae57b57..7bafefc 100644
--- a/ui/src/app/app-image-labeling/app-image-labeling.component.ts
+++ b/ui/src/app/app-image-labeling/app-image-labeling.component.ts
@@ -17,8 +17,7 @@
 
 import { Component, EventEmitter, OnInit, Output } from '@angular/core';
 import { DatalakeRestService } from '../core-services/datalake/datalake-rest.service';
-import { DataLakeMeasure, EventPropertyUnion, EventSchema, SpQueryResult } from '../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
-import { DateRange } from '../../../projects/streampipes/platform-services/src/lib/model/datalake/DateRange';
+import { DataLakeMeasure, EventPropertyUnion, EventSchema, SpQueryResult, DateRange } from '@streampipes/platform-services';
 
 @Component({
   selector: 'app-image-labeling',
diff --git a/ui/src/app/configuration/consul-configs-boolean/consul-configs-boolean.component.ts b/ui/src/app/configuration/consul-configs-boolean/consul-configs-boolean.component.ts
index 630dcb5..f786f28 100644
--- a/ui/src/app/configuration/consul-configs-boolean/consul-configs-boolean.component.ts
+++ b/ui/src/app/configuration/consul-configs-boolean/consul-configs-boolean.component.ts
@@ -16,9 +16,9 @@
  *
  */
 
-import {Component, Input} from '@angular/core';
-import {StreampipesPeContainerConifgs} from "../shared/streampipes-pe-container-configs";
-import {ConfigurationService} from '../shared/configuration.service'
+import { Component, Input } from '@angular/core';
+import { StreampipesPeContainerConifgs } from '../shared/streampipes-pe-container-configs';
+import { ConfigurationService } from '../shared/configuration.service';
 
 @Component({
     selector: 'consul-configs-boolean',
@@ -27,8 +27,8 @@ import {ConfigurationService} from '../shared/configuration.service'
     providers: [ConfigurationService]
 })
 export class ConsulConfigsBooleanComponent {
-    @Input() configuration: StreampipesPeContainerConifgs
-    constructor(public configService:ConfigurationService) {
+    @Input() configuration: StreampipesPeContainerConifgs;
+    constructor(public configService: ConfigurationService) {
     }
 
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/configuration/consul-configs-number/consul-configs-number.component.ts b/ui/src/app/configuration/consul-configs-number/consul-configs-number.component.ts
index ff6da01..c4055a3 100644
--- a/ui/src/app/configuration/consul-configs-number/consul-configs-number.component.ts
+++ b/ui/src/app/configuration/consul-configs-number/consul-configs-number.component.ts
@@ -16,9 +16,9 @@
  *
  */
 
-import {Component, Input} from '@angular/core';
-import {StreampipesPeContainerConifgs} from "../shared/streampipes-pe-container-configs";
-import {ConfigurationService} from '../shared/configuration.service';
+import { Component, Input } from '@angular/core';
+import { StreampipesPeContainerConifgs } from '../shared/streampipes-pe-container-configs';
+import { ConfigurationService } from '../shared/configuration.service';
 
 @Component({
     selector: 'consul-configs-number',
@@ -26,8 +26,8 @@ import {ConfigurationService} from '../shared/configuration.service';
     styleUrls: ['./consul-configs-number.component.css']
 })
 export class ConsulConfigsNumberComponent {
-    @Input() configuration: StreampipesPeContainerConifgs
-    constructor(public configService:ConfigurationService) {
+    @Input() configuration: StreampipesPeContainerConifgs;
+    constructor(public configService: ConfigurationService) {
     }
 
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/configuration/consul-configs-password/consul-configs-password.component.ts b/ui/src/app/configuration/consul-configs-password/consul-configs-password.component.ts
index a70f10a..9db9fae 100644
--- a/ui/src/app/configuration/consul-configs-password/consul-configs-password.component.ts
+++ b/ui/src/app/configuration/consul-configs-password/consul-configs-password.component.ts
@@ -16,9 +16,9 @@
  *
  */
 
-import {Component, Input} from '@angular/core';
-import {StreampipesPeContainerConifgs} from "../shared/streampipes-pe-container-configs";
-import {ConfigurationService} from '../shared/configuration.service'
+import { Component, Input } from '@angular/core';
+import { StreampipesPeContainerConifgs } from '../shared/streampipes-pe-container-configs';
+import { ConfigurationService } from '../shared/configuration.service';
 
 const hiddenPasswordString = '*****';
 
@@ -29,38 +29,33 @@ const hiddenPasswordString = '*****';
     providers: [ConfigurationService]
 })
 export class ConsulConfigsPasswordComponent {
-    
+
     @Input() configuration: StreampipesPeContainerConifgs;
 
-    password: string; 
-    show: Boolean;
-    className: String;
-    private hide: Boolean;
-    
+    password: string;
+    show: boolean;
+    className: string;
+    private hide: boolean;
+
     constructor(public configService: ConfigurationService) {
-        this.password = hiddenPasswordString; 
+        this.password = hiddenPasswordString;
         this.show = false;
-        this.className  = "hideText";
+        this.className  = 'hideText';
         this.hide = true;
     }
 
     changePw() {
         if (this.password == hiddenPasswordString) {
-            this.password = this.password.replace(hiddenPasswordString, "")
+            this.password = this.password.replace(hiddenPasswordString, '');
         }
         this.configuration.value = this.password;
-        this.show = true
+        this.show = true;
     }
 
     addCssClass() {
         this.hide = !this.hide;
 
-        if (!this.hide){
-            this.className = "";
-        }
-        else {
-            this.className = "hideText";
-        }
+        this.className = !this.hide ? '' : 'hideText';
     }
 
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/configuration/consul-configs-text/consul-configs-text.component.ts b/ui/src/app/configuration/consul-configs-text/consul-configs-text.component.ts
index e2821ee..665decc 100644
--- a/ui/src/app/configuration/consul-configs-text/consul-configs-text.component.ts
+++ b/ui/src/app/configuration/consul-configs-text/consul-configs-text.component.ts
@@ -16,9 +16,9 @@
  *
  */
 
-import {Component, Input} from '@angular/core';
-import {StreampipesPeContainerConifgs} from "../shared/streampipes-pe-container-configs";
-import {ConfigurationService} from '../shared/configuration.service'
+import { Component, Input } from '@angular/core';
+import { StreampipesPeContainerConifgs } from '../shared/streampipes-pe-container-configs';
+import { ConfigurationService } from '../shared/configuration.service';
 
 @Component({
     selector: 'consul-configs-text',
@@ -27,8 +27,8 @@ import {ConfigurationService} from '../shared/configuration.service'
     providers: [ConfigurationService]
 })
 export class ConsulConfigsTextComponent {
-    @Input() configuration: StreampipesPeContainerConifgs
+    @Input() configuration: StreampipesPeContainerConifgs;
     constructor(public configService: ConfigurationService) {
     }
-    
-}
\ No newline at end of file
+
+}
diff --git a/ui/src/app/configuration/consul-service/consul-service.component.ts b/ui/src/app/configuration/consul-service/consul-service.component.ts
index 6a7acb6..eb22ca4 100644
--- a/ui/src/app/configuration/consul-service/consul-service.component.ts
+++ b/ui/src/app/configuration/consul-service/consul-service.component.ts
@@ -16,8 +16,8 @@
  *
  */
 
-import {Component, EventEmitter, Input, Output} from '@angular/core';
-import {StreampipesPeContainer} from "../shared/streampipes-pe-container.model";
+import { Component, EventEmitter, Input, Output } from '@angular/core';
+import { StreampipesPeContainer } from '../shared/streampipes-pe-container.model';
 
 @Component({
     selector: 'consul-service',
@@ -28,10 +28,10 @@ export class ConsulServiceComponent {
 
     @Input() consulService: StreampipesPeContainer;
     @Output() updateConsulService: EventEmitter<StreampipesPeContainer> = new EventEmitter<StreampipesPeContainer>();
-    showConfiguration: boolean = false;
+    showConfiguration = false;
 
     constructor() {
-        
+
     }
 
     toggleConfiguration(): void {
diff --git a/ui/src/app/configuration/datalake-configuration/datalake-configuration.component.ts b/ui/src/app/configuration/datalake-configuration/datalake-configuration.component.ts
index 54e613e..b8ecdda 100644
--- a/ui/src/app/configuration/datalake-configuration/datalake-configuration.component.ts
+++ b/ui/src/app/configuration/datalake-configuration/datalake-configuration.component.ts
@@ -17,11 +17,9 @@
  */
 
 import { Component, OnInit, ViewChild } from '@angular/core';
-import { DatalakeRestService } from '../../../../projects/streampipes/platform-services/src/lib/apis/datalake-rest.service';
 import { MatTableDataSource } from '@angular/material/table';
-import { DataViewDataExplorerService } from '../../../../projects/streampipes/platform-services/src/lib/apis/data-view-data-explorer.service';
 import { DataLakeConfigurationEntry } from './datalake-configuration-entry';
-import { DatalakeQueryParameters } from '@streampipes/platform-services';
+import { DataViewDataExplorerService, DatalakeRestService, DatalakeQueryParameters, EventSchema, SpQueryResult } from '@streampipes/platform-services';
 import { DatalakeQueryParameterBuilder } from '../../core-services/datalake/DatalakeQueryParameterBuilder';
 import { MatPaginator } from '@angular/material/paginator';
 import { MatSort } from '@angular/material/sort';
@@ -30,7 +28,6 @@ import { PanelType } from '../../core-ui/dialog/base-dialog/base-dialog.model';
 import { DialogService } from '../../core-ui/dialog/base-dialog/base-dialog.service';
 import { DeleteDatalakeIndexComponent } from '../dialog/delete-datalake-index/delete-datalake-index-dialog.component';
 import { FieldConfig } from '../../data-explorer/models/dataview-dashboard.model';
-import { EventSchema, SpQueryResult } from '../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @Component({
   selector: 'sp-datalake-configuration',
diff --git a/ui/src/app/configuration/email-configuration/email-configuration.component.ts b/ui/src/app/configuration/email-configuration/email-configuration.component.ts
index ee9be0d..698780c 100644
--- a/ui/src/app/configuration/email-configuration/email-configuration.component.ts
+++ b/ui/src/app/configuration/email-configuration/email-configuration.component.ts
@@ -18,8 +18,7 @@
 
 import { Component, OnInit } from '@angular/core';
 import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
-import { EmailConfig } from '../../../../projects/streampipes/platform-services/src/lib/model/email-config.model';
-import { MailConfigService } from '../../../../projects/streampipes/platform-services/src/lib/apis/mail-config.service';
+import { EmailConfig, MailConfigService } from '@streampipes/platform-services';
 
 @Component({
   selector: 'sp-email-configuration',
diff --git a/ui/src/app/configuration/general-configuration/general-configuration.component.ts b/ui/src/app/configuration/general-configuration/general-configuration.component.ts
index 8d181ca..7c3a787 100644
--- a/ui/src/app/configuration/general-configuration/general-configuration.component.ts
+++ b/ui/src/app/configuration/general-configuration/general-configuration.component.ts
@@ -18,11 +18,8 @@
 
 import { Component, OnInit } from '@angular/core';
 import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
-import { GeneralConfigService } from '../../../../projects/streampipes/platform-services/src/lib/apis/general-config.service';
-import { GeneralConfigModel } from '../../../../projects/streampipes/platform-services/src/lib/model/general-config.model';
-import { MailConfigService } from '../../../../projects/streampipes/platform-services/src/lib/apis/mail-config.service';
+import { GeneralConfigService, GeneralConfigModel, MailConfigService, EmailConfig } from '@streampipes/platform-services';
 import { zip } from 'rxjs';
-import { EmailConfig } from '../../../../projects/streampipes/platform-services/src/lib/model/email-config.model';
 import { AvailableRolesService } from '../../services/available-roles.service';
 import { RoleDescription } from '../../_models/auth.model';
 import { UserRole } from '../../_enums/user-role.enum';
diff --git a/ui/src/app/configuration/messaging-configuration/messaging-configuration.component.ts b/ui/src/app/configuration/messaging-configuration/messaging-configuration.component.ts
index 99617d7..51a79ed 100644
--- a/ui/src/app/configuration/messaging-configuration/messaging-configuration.component.ts
+++ b/ui/src/app/configuration/messaging-configuration/messaging-configuration.component.ts
@@ -16,20 +16,20 @@
  *
  */
 
-import {Component} from "@angular/core";
-import {ConfigurationService} from "../shared/configuration.service";
-import {MessagingSettings} from "../shared/messaging-settings.model";
-import {CdkDragDrop, moveItemInArray} from '@angular/cdk/drag-drop';
+import { Component, OnInit } from '@angular/core';
+import { ConfigurationService } from '../shared/configuration.service';
+import { MessagingSettings } from '../shared/messaging-settings.model';
+import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';
 
 @Component({
     selector: 'messaging-configuration',
     templateUrl: './messaging-configuration.component.html',
     styleUrls: ['./messaging-configuration.component.css']
 })
-export class MessagingConfigurationComponent {
+export class MessagingConfigurationComponent implements OnInit {
 
     messagingSettings: MessagingSettings;
-    loadingCompleted: boolean = false;
+    loadingCompleted = false;
 
     constructor(private configurationService: ConfigurationService) {
 
@@ -57,4 +57,4 @@ export class MessagingConfigurationComponent {
     dropProtocol(event: CdkDragDrop<string[]>) {
         moveItemInArray(this.messagingSettings.prioritizedProtocols, event.previousIndex, event.currentIndex);
     }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/configuration/pipeline-element-configuration/pipeline-element-configuration.component.ts b/ui/src/app/configuration/pipeline-element-configuration/pipeline-element-configuration.component.ts
index 6455d27..56e2ff3 100644
--- a/ui/src/app/configuration/pipeline-element-configuration/pipeline-element-configuration.component.ts
+++ b/ui/src/app/configuration/pipeline-element-configuration/pipeline-element-configuration.component.ts
@@ -16,13 +16,13 @@
  *
  */
 
-import {Component, ViewChild} from "@angular/core";
-import {animate, state, style, transition, trigger} from "@angular/animations";
-import {ConfigurationService} from "../shared/configuration.service";
-import {StreampipesPeContainer} from "../shared/streampipes-pe-container.model";
-import {StreampipesPeContainerConifgs} from "../shared/streampipes-pe-container-configs";
-import {MatPaginator} from "@angular/material/paginator";
-import {MatTableDataSource} from "@angular/material/table";
+import { Component, ViewChild } from '@angular/core';
+import { animate, state, style, transition, trigger } from '@angular/animations';
+import { ConfigurationService } from '../shared/configuration.service';
+import { StreampipesPeContainer } from '../shared/streampipes-pe-container.model';
+import { StreampipesPeContainerConifgs } from '../shared/streampipes-pe-container-configs';
+import { MatPaginator } from '@angular/material/paginator';
+import { MatTableDataSource } from '@angular/material/table';
 
 @Component({
     selector: 'pipeline-element-configuration',
@@ -47,7 +47,7 @@ export class PipelineElementConfigurationComponent {
     expandedElement: any;
 
     selectedConsulService: StreampipesPeContainer;
-    consulServiceSelected: boolean = false;
+    consulServiceSelected = false;
 
     constructor(private configurationService: ConfigurationService) {
         this.getConsulServices();
@@ -56,7 +56,7 @@ export class PipelineElementConfigurationComponent {
     getConsulServices(): void {
         this.configurationService.getConsulServices()
             .subscribe( response => {
-                let sortedServices = this.sort(response);
+                const sortedServices = this.sort(response);
                 this.consulServices = sortedServices;
                 this.dataSource.data = sortedServices;
             }, error => {
@@ -64,8 +64,8 @@ export class PipelineElementConfigurationComponent {
             });
     }
 
-    sort(consulServices: Array<StreampipesPeContainer>):Array<StreampipesPeContainer> {
-        if(!consulServices || consulServices.length === 0) return null;
+    sort(consulServices: StreampipesPeContainer[]): StreampipesPeContainer[] {
+        if (!consulServices || consulServices.length === 0) { return null; }
 
         consulServices.sort((a: StreampipesPeContainer, b: StreampipesPeContainer) => {
             if (a.name < b.name) {
@@ -104,4 +104,4 @@ export class PipelineElementConfigurationComponent {
             this.expandedElement = element;
         }
     }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/configuration/security-configuration/edit-group-dialog/edit-group-dialog.component.ts b/ui/src/app/configuration/security-configuration/edit-group-dialog/edit-group-dialog.component.ts
index fc62a87..73112e7 100644
--- a/ui/src/app/configuration/security-configuration/edit-group-dialog/edit-group-dialog.component.ts
+++ b/ui/src/app/configuration/security-configuration/edit-group-dialog/edit-group-dialog.component.ts
@@ -17,11 +17,9 @@
  */
 
 import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';
-import { Group, Role } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client';
+import { Group, Role, UserGroupService } from '@streampipes/platform-services';
 import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
-import { UserRole } from '../../../_enums/user-role.enum';
 import { DialogRef } from '../../../core-ui/dialog/base-dialog/dialog-ref';
-import { UserGroupService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/user-group.service';
 import { MatCheckboxChange } from '@angular/material/checkbox';
 import { RoleDescription } from '../../../_models/auth.model';
 import { AvailableRolesService } from '../../../services/available-roles.service';
diff --git a/ui/src/app/configuration/security-configuration/edit-user-dialog/edit-user-dialog.component.ts b/ui/src/app/configuration/security-configuration/edit-user-dialog/edit-user-dialog.component.ts
index 211958c..536c880 100644
--- a/ui/src/app/configuration/security-configuration/edit-user-dialog/edit-user-dialog.component.ts
+++ b/ui/src/app/configuration/security-configuration/edit-user-dialog/edit-user-dialog.component.ts
@@ -16,14 +16,14 @@
  *
  */
 
-import { AfterViewInit, Component, Input, OnInit, ViewEncapsulation } from '@angular/core';
+import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';
 import { DialogRef } from '../../../core-ui/dialog/base-dialog/dialog-ref';
 import {
   Group,
   Role,
   ServiceAccount,
   UserAccount
-} from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client';
+} from '@streampipes/platform-services';
 import {
   AbstractControl,
   FormBuilder,
@@ -39,9 +39,9 @@ import { UserService } from '../../../../../projects/streampipes/platform-servic
 import { UserGroupService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/user-group.service';
 import { RoleDescription } from '../../../_models/auth.model';
 import { AvailableRolesService } from '../../../services/available-roles.service';
-import {AuthService} from "../../../services/auth.service";
-import {Router} from "@angular/router";
-import {MailConfigService} from "../../../../../projects/streampipes/platform-services/src/lib/apis/mail-config.service";
+import { AuthService } from '../../../services/auth.service';
+import { Router } from '@angular/router';
+import { MailConfigService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/mail-config.service';
 
 @Component({
   selector: 'sp-edit-user-dialog',
@@ -82,7 +82,7 @@ export class EditUserDialogComponent implements OnInit {
 
   ngOnInit(): void {
     const filterObject = this.user instanceof UserAccount ? UserRole.ROLE_SERVICE_ADMIN : UserRole.ROLE_ADMIN;
-    this.availableRoles = this.availableRolesService.availableRoles.filter(role => role.role !== filterObject)
+    this.availableRoles = this.availableRolesService.availableRoles.filter(role => role.role !== filterObject);
     this.mailConfigService.getMailConfig().subscribe(config => this.emailConfigured = config.emailConfigured);
     this.userGroupService.getAllUserGroups().subscribe(response => {
       this.availableGroups = response;
@@ -183,7 +183,7 @@ export class EditUserDialogComponent implements OnInit {
         this.userService.createServiceAccount(this.clonedUser as ServiceAccount).subscribe(() => {
           this.close(true);
         }, error => {
-          this.registrationError = error.error.notifications ? error.error.notifications[0].title: 'Unknown error';
+          this.registrationError = error.error.notifications ? error.error.notifications[0].title : 'Unknown error';
         });
       }
     }
diff --git a/ui/src/app/configuration/security-configuration/security-service-configuration/security-service-config.component.ts b/ui/src/app/configuration/security-configuration/security-service-configuration/security-service-config.component.ts
index 7482802..1b909a5 100644
--- a/ui/src/app/configuration/security-configuration/security-service-configuration/security-service-config.component.ts
+++ b/ui/src/app/configuration/security-configuration/security-service-configuration/security-service-config.component.ts
@@ -17,7 +17,7 @@
  */
 
 import { Component } from '@angular/core';
-import { ServiceAccount } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client';
+import { ServiceAccount } from '@streampipes/platform-services';
 import { AbstractSecurityPrincipalConfig } from '../abstract-security-principal-config';
 import { Observable } from 'rxjs';
 
diff --git a/ui/src/app/configuration/security-configuration/security-user-configuration/security-user-config.component.ts b/ui/src/app/configuration/security-configuration/security-user-configuration/security-user-config.component.ts
index cc980ed..5517df5 100644
--- a/ui/src/app/configuration/security-configuration/security-user-configuration/security-user-config.component.ts
+++ b/ui/src/app/configuration/security-configuration/security-user-configuration/security-user-config.component.ts
@@ -17,7 +17,7 @@
  */
 
 import { Component } from '@angular/core';
-import { UserAccount } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client';
+import { UserAccount } from '@streampipes/platform-services';
 import { AbstractSecurityPrincipalConfig } from '../abstract-security-principal-config';
 import { Observable } from 'rxjs';
 
diff --git a/ui/src/app/configuration/security-configuration/user-group-configuration/user-group-configuration.component.ts b/ui/src/app/configuration/security-configuration/user-group-configuration/user-group-configuration.component.ts
index fd02815..5cd6f64 100644
--- a/ui/src/app/configuration/security-configuration/user-group-configuration/user-group-configuration.component.ts
+++ b/ui/src/app/configuration/security-configuration/user-group-configuration/user-group-configuration.component.ts
@@ -17,11 +17,10 @@
  */
 
 import { Component, OnInit, ViewChild } from '@angular/core';
-import { Group } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client';
+import { Group, UserGroupService } from '@streampipes/platform-services';
 import { MatPaginator } from '@angular/material/paginator';
 import { MatSort } from '@angular/material/sort';
 import { MatTableDataSource } from '@angular/material/table';
-import { UserGroupService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/user-group.service';
 import { PanelType } from '../../../core-ui/dialog/base-dialog/base-dialog.model';
 import { DialogService } from '../../../core-ui/dialog/base-dialog/base-dialog.service';
 import { EditGroupDialogComponent } from '../edit-group-dialog/edit-group-dialog.component';
diff --git a/ui/src/app/configuration/shared/configuration.service.spec.ts b/ui/src/app/configuration/shared/configuration.service.spec.ts
index 668a0fa..af0b998 100644
--- a/ui/src/app/configuration/shared/configuration.service.spec.ts
+++ b/ui/src/app/configuration/shared/configuration.service.spec.ts
@@ -16,10 +16,10 @@
  *
  */
 
-import {getTestBed, TestBed} from '@angular/core/testing';
-import {HttpClientTestingModule, HttpTestingController} from '@angular/common/http/testing';
-import {ConfigurationService} from './configuration.service';
-import {StreampipesPeContainer} from './streampipes-pe-container.model';
+import { getTestBed, TestBed } from '@angular/core/testing';
+import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
+import { ConfigurationService } from './configuration.service';
+import { StreampipesPeContainer } from './streampipes-pe-container.model';
 
 describe('ConfigurationService', () => {
 
@@ -57,11 +57,11 @@ describe('ConfigurationService', () => {
     });
 
     it('should get Server URL', () => {
-        expect(service.getServerUrl()).toBe('/streampipes-backend')
-    })
+        expect(service.getServerUrl()).toBe('/streampipes-backend');
+    });
 
-    it('should modify key', () =>{
-        expect(service.adjustConfigurationKey("SP_A_TEST")).toBe("A TEST")
-    })
+    it('should modify key', () => {
+        expect(service.adjustConfigurationKey('SP_A_TEST')).toBe('A TEST');
+    });
 
 });
diff --git a/ui/src/app/configuration/shared/configuration.service.ts b/ui/src/app/configuration/shared/configuration.service.ts
index 0b85bf9..e6dd779 100644
--- a/ui/src/app/configuration/shared/configuration.service.ts
+++ b/ui/src/app/configuration/shared/configuration.service.ts
@@ -16,18 +16,18 @@
  *
  */
 
-import {Injectable} from '@angular/core';
-import {HttpClient} from '@angular/common/http';
-import {Observable} from 'rxjs';
-import {map} from 'rxjs/operators';
+import { Injectable } from '@angular/core';
+import { HttpClient } from '@angular/common/http';
+import { Observable } from 'rxjs';
+import { map } from 'rxjs/operators';
 
-import {StreampipesPeContainer} from './streampipes-pe-container.model';
-import {MessagingSettings} from './messaging-settings.model';
+import { StreampipesPeContainer } from './streampipes-pe-container.model';
+import { MessagingSettings } from './messaging-settings.model';
 
 @Injectable()
 export class ConfigurationService {
 
-    
+
     constructor(private http: HttpClient) {
     }
 
@@ -41,15 +41,15 @@ export class ConfigurationService {
                 map(response => {
                     return response as MessagingSettings;
                 })
-            )
+            );
     }
 
     getConsulServices(): Observable<StreampipesPeContainer[]> {
         return this.http.get(this.getServerUrl() + '/api/v2/consul')
             .pipe(
                 map(response => {
-                    for (let service of response as any[]) {
-                        for (let config of service['configs']) {
+                    for (const service of response as any[]) {
+                        for (const config of service['configs']) {
                             if (config.valueType === 'xs:integer') {
                                 config.value = parseInt(config.value);
                             } else if (config.valueType === 'xs:double') {
@@ -68,22 +68,22 @@ export class ConfigurationService {
         return this.http.post(this.getServerUrl() + '/api/v2/consul', consulService);
     }
 
-    updateMessagingSettings(messagingSettings: MessagingSettings):Observable<Object> {
+    updateMessagingSettings(messagingSettings: MessagingSettings): Observable<Object> {
         return this.http.post(this.getServerUrl() + '/api/v2/consul/messaging', messagingSettings);
     }
 
 
     adjustConfigurationKey(consulKey) {
 
-            var removedKey = consulKey.substr(consulKey.lastIndexOf("/") + 1, consulKey.length);
+            const removedKey = consulKey.substr(consulKey.lastIndexOf('/') + 1, consulKey.length);
 
             // console.log(removedKey);
 
-            var str1 = removedKey.replace(/SP/g,"");
-            str1 = str1.replace(/_/g," "); 
-            if(str1.startsWith(" ")){
-                str1 = str1.slice(1,str1.length)
+            let str1 = removedKey.replace(/SP/g, '');
+            str1 = str1.replace(/_/g, ' ');
+            if (str1.startsWith(' ')) {
+                str1 = str1.slice(1, str1.length);
             }
-            return str1 
+            return str1;
     }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/configuration/shared/configuration.test.service.ts b/ui/src/app/configuration/shared/configuration.test.service.ts
index cd617cd..5c1d5c9 100644
--- a/ui/src/app/configuration/shared/configuration.test.service.ts
+++ b/ui/src/app/configuration/shared/configuration.test.service.ts
@@ -16,11 +16,11 @@
  *
  */
 
-import {Injectable} from '@angular/core';
-import {Observable, of} from 'rxjs';
+import { Injectable } from '@angular/core';
+import { Observable, of } from 'rxjs';
 
-import {StreampipesPeContainer} from './streampipes-pe-container.model';
-import {StreampipesPeContainerConifgs} from './streampipes-pe-container-configs';
+import { StreampipesPeContainer } from './streampipes-pe-container.model';
+import { StreampipesPeContainerConifgs } from './streampipes-pe-container-configs';
 
 @Injectable()
 export class ConfigurationMockService {
@@ -34,15 +34,15 @@ export class ConfigurationMockService {
 
     getConsulServices(): Observable<StreampipesPeContainer[]> {
 
-        let config: StreampipesPeContainerConifgs []
-        config[0] = new StreampipesPeContainerConifgs
-        config[0].description = "test int"
-        config[0].key = 'testint'
-        config[0].value = '80'
-        config[0].valueType = 'xs:integer'
-        config[0].isPassword = false
+        const config: StreampipesPeContainerConifgs[] = [];
+        config[0] = new StreampipesPeContainerConifgs;
+        config[0].description = 'test int';
+        config[0].key = 'testint';
+        config[0].value = '80';
+        config[0].valueType = 'xs:integer';
+        config[0].isPassword = false;
+
 
-        
         return of([
             {
                 mainKey: 'sp/test/1',
@@ -84,4 +84,4 @@ export class ConfigurationMockService {
         return of({});
     }
 
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/configuration/shared/streampipes-pe-container.model.ts b/ui/src/app/configuration/shared/streampipes-pe-container.model.ts
index f3eb16a..5061bad 100644
--- a/ui/src/app/configuration/shared/streampipes-pe-container.model.ts
+++ b/ui/src/app/configuration/shared/streampipes-pe-container.model.ts
@@ -16,14 +16,14 @@
  *
  */
 
-import {StreampipesPeContainerConifgs} from "./streampipes-pe-container-configs";
+import { StreampipesPeContainerConifgs } from './streampipes-pe-container-configs';
 
-//ConsulService = StreampipesPeContainer ERLEDIGT
+// ConsulService = StreampipesPeContainer ERLEDIGT
 export interface StreampipesPeContainer {
     name: string;
     mainKey: string;
     meta: {
         status: string;
-    }
+    };
     configs: [StreampipesPeContainerConifgs];
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/connect/services/rest.service.ts b/ui/src/app/connect/services/rest.service.ts
index 76eebe9..5d33cdc 100644
--- a/ui/src/app/connect/services/rest.service.ts
+++ b/ui/src/app/connect/services/rest.service.ts
@@ -23,8 +23,7 @@ import { HttpClient } from '@angular/common/http';
 import { from, Observable } from 'rxjs';
 import { map } from 'rxjs/operators';
 import { UnitDescription } from '../model/UnitDescription';
-import { AdapterDescription, FormatDescription, GuessSchema, Message, SpDataStream } from '../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
-import { PlatformServicesCommons } from '../../../../projects/streampipes/platform-services/src/lib/apis/commons.service';
+import { AdapterDescription, FormatDescription, GuessSchema, Message, SpDataStream, PlatformServicesCommons } from '@streampipes/platform-services';
 import { AuthService } from '../../services/auth.service';
 
 @Injectable()
diff --git a/ui/src/app/core-ui/static-properties/static-alternatives/static-alternatives.component.ts b/ui/src/app/core-ui/static-properties/static-alternatives/static-alternatives.component.ts
index 134350c..bfe2a2b 100644
--- a/ui/src/app/core-ui/static-properties/static-alternatives/static-alternatives.component.ts
+++ b/ui/src/app/core-ui/static-properties/static-alternatives/static-alternatives.component.ts
@@ -18,7 +18,7 @@
 
 import { ChangeDetectorRef, Component, EventEmitter, OnInit, Output } from '@angular/core';
 import { AbstractStaticPropertyRenderer } from '../base/abstract-static-property';
-import { StaticPropertyAlternatives } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
+import { StaticPropertyAlternatives } from '@streampipes/platform-services';
 
 @Component({
     selector: 'app-static-alternatives',
diff --git a/ui/src/app/core-ui/static-properties/static-color-picker/static-color-picker.component.ts b/ui/src/app/core-ui/static-properties/static-color-picker/static-color-picker.component.ts
index adcefc8..eb7a967 100644
--- a/ui/src/app/core-ui/static-properties/static-color-picker/static-color-picker.component.ts
+++ b/ui/src/app/core-ui/static-properties/static-color-picker/static-color-picker.component.ts
@@ -16,12 +16,12 @@
  *
  */
 
-import {Component, OnInit} from "@angular/core";
-import {ConfigurationInfo} from "../../../connect/model/ConfigurationInfo";
-import {StaticPropertyUtilService} from "../static-property-util.service";
-import {FormGroup, Validators} from "@angular/forms";
-import {ColorPickerStaticProperty} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
-import {AbstractValidatedStaticPropertyRenderer} from "../base/abstract-validated-static-property";
+import { Component, OnInit } from '@angular/core';
+import { ConfigurationInfo } from '../../../connect/model/ConfigurationInfo';
+import { StaticPropertyUtilService } from '../static-property-util.service';
+import { FormGroup, Validators } from '@angular/forms';
+import { ColorPickerStaticProperty } from '@streampipes/platform-services';
+import { AbstractValidatedStaticPropertyRenderer } from '../base/abstract-validated-static-property';
 
 @Component({
     selector: 'app-static-color-picker',
@@ -31,7 +31,7 @@ import {AbstractValidatedStaticPropertyRenderer} from "../base/abstract-validate
 export class StaticColorPickerComponent
     extends AbstractValidatedStaticPropertyRenderer<ColorPickerStaticProperty> implements OnInit {
 
-    constructor(public staticPropertyUtil: StaticPropertyUtilService){
+    constructor(public staticPropertyUtil: StaticPropertyUtilService) {
         super();
     }
 
@@ -39,7 +39,7 @@ export class StaticColorPickerComponent
     hasInput: Boolean;
     colorPickerForm: FormGroup;
 
-    presetColors: Array<any> = ["#39B54A", "#1B1464", "#f44336", "#4CAF50", "#FFEB3B", "#FFFFFF", "#000000"];
+    presetColors: any[] = ['#39B54A', '#1B1464', '#f44336', '#4CAF50', '#FFEB3B', '#FFFFFF', '#000000'];
 
     ngOnInit() {
         this.addValidator(this.staticProperty.selectedColor, Validators.required);
@@ -47,7 +47,7 @@ export class StaticColorPickerComponent
     }
 
     emitUpdate() {
-        this.updateEmitter.emit(new ConfigurationInfo(this.staticProperty.internalName, this.staticPropertyUtil.asColorPickerStaticProperty(this.staticProperty).selectedColor && this.staticPropertyUtil.asColorPickerStaticProperty(this.staticProperty).selectedColor !== ""));
+        this.updateEmitter.emit(new ConfigurationInfo(this.staticProperty.internalName, this.staticPropertyUtil.asColorPickerStaticProperty(this.staticProperty).selectedColor && this.staticPropertyUtil.asColorPickerStaticProperty(this.staticProperty).selectedColor !== ''));
     }
 
     onStatusChange(status: any) {
diff --git a/ui/src/app/dashboard/components/widget/dashboard-widget.component.ts b/ui/src/app/dashboard/components/widget/dashboard-widget.component.ts
index db23b53..5778c7f 100644
--- a/ui/src/app/dashboard/components/widget/dashboard-widget.component.ts
+++ b/ui/src/app/dashboard/components/widget/dashboard-widget.component.ts
@@ -17,16 +17,14 @@
  */
 
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { DashboardItem } from '@streampipes/platform-services';
 import { DashboardService } from '../../services/dashboard.service';
 import { AddVisualizationDialogComponent } from '../../dialogs/add-widget/add-visualization-dialog.component';
 import {
   DashboardWidgetModel, Pipeline,
-  VisualizablePipeline
-} from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
+  VisualizablePipeline, DashboardItem, PipelineService
+} from '@streampipes/platform-services';
 import { PanelType } from '../../../core-ui/dialog/base-dialog/base-dialog.model';
 import { DialogService } from '../../../core-ui/dialog/base-dialog/base-dialog.service';
-import { PipelineService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/pipeline.service';
 import { EditModeService } from '../../services/edit-mode.service';
 import { ReloadPipelineService } from '../../services/reload-pipeline.service';
 
diff --git a/ui/src/app/dashboard/components/widgets/stacked-line-chart/stacked-line-chart-config.ts b/ui/src/app/dashboard/components/widgets/stacked-line-chart/stacked-line-chart-config.ts
index f45e0e7..d2929ea 100644
--- a/ui/src/app/dashboard/components/widgets/stacked-line-chart/stacked-line-chart-config.ts
+++ b/ui/src/app/dashboard/components/widgets/stacked-line-chart/stacked-line-chart-config.ts
@@ -16,29 +16,29 @@
  *
  */
 
-import {WidgetConfig} from "../base/base-config";
-import {WidgetConfigBuilder} from "../../../registry/widget-config-builder";
-import {SchemaRequirementsBuilder} from "../../../sdk/schema-requirements-builder";
-import {EpRequirements} from "../../../sdk/ep-requirements";
-import {DashboardWidgetSettings} from "../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
+import { WidgetConfig } from '../base/base-config';
+import { WidgetConfigBuilder } from '../../../registry/widget-config-builder';
+import { SchemaRequirementsBuilder } from '../../../sdk/schema-requirements-builder';
+import { EpRequirements } from '../../../sdk/ep-requirements';
+import { DashboardWidgetSettings } from '@streampipes/platform-services';
 
 export class StackedLineChartConfig extends WidgetConfig {
 
-  static readonly VALUE_KEY: string = "value-key";
-  static readonly TIMESTAMP_KEY: string = "timestamp-key";
+  static readonly VALUE_KEY: string = 'value-key';
+  static readonly TIMESTAMP_KEY: string = 'timestamp-key';
 
   constructor() {
     super();
   }
 
   getConfig(): DashboardWidgetSettings {
-    return WidgetConfigBuilder.createWithSelectableColorsAndTitlePanel("stacked-line-chart", "Stacked Line Chart")
-        .withIcon("fas fa-chart-line")
-        .withDescription("Shows a stacked line chart based on multiple measurements.")
+    return WidgetConfigBuilder.createWithSelectableColorsAndTitlePanel('stacked-line-chart', 'Stacked Line Chart')
+        .withIcon('fas fa-chart-line')
+        .withDescription('Shows a stacked line chart based on multiple measurements.')
         .requiredSchema(SchemaRequirementsBuilder
             .create()
-            .requiredPropertyWithUnaryMapping(StackedLineChartConfig.TIMESTAMP_KEY, "Timestamp field", "", EpRequirements.timestampReq())
-            .requiredPropertyWithNaryMapping(StackedLineChartConfig.VALUE_KEY, "Measurement fields", "", EpRequirements.numberReq())
+            .requiredPropertyWithUnaryMapping(StackedLineChartConfig.TIMESTAMP_KEY, 'Timestamp field', '', EpRequirements.timestampReq())
+            .requiredPropertyWithNaryMapping(StackedLineChartConfig.VALUE_KEY, 'Measurement fields', '', EpRequirements.numberReq())
             .build())
         .build();
   }
diff --git a/ui/src/app/dashboard/components/widgets/wordcloud/wordcloud-config.ts b/ui/src/app/dashboard/components/widgets/wordcloud/wordcloud-config.ts
index c7b9543..db0b6b6 100644
--- a/ui/src/app/dashboard/components/widgets/wordcloud/wordcloud-config.ts
+++ b/ui/src/app/dashboard/components/widgets/wordcloud/wordcloud-config.ts
@@ -16,33 +16,33 @@
  *
  */
 
-import {WidgetConfig} from "../base/base-config";
-import {WidgetConfigBuilder} from "../../../registry/widget-config-builder";
-import {SchemaRequirementsBuilder} from "../../../sdk/schema-requirements-builder";
-import {EpRequirements} from "../../../sdk/ep-requirements";
-import {DashboardWidgetSettings} from "../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
+import { WidgetConfig } from '../base/base-config';
+import { WidgetConfigBuilder } from '../../../registry/widget-config-builder';
+import { SchemaRequirementsBuilder } from '../../../sdk/schema-requirements-builder';
+import { EpRequirements } from '../../../sdk/ep-requirements';
+import { DashboardWidgetSettings } from '@streampipes/platform-services';
 
 export class WordCloudConfig extends WidgetConfig {
 
-  static readonly TITLE_KEY: string = "title-key";
-  static readonly COUNT_PROPERTY_KEY: string = "count-property-key";
-  static readonly NAME_PROPERTY_KEY: string = "name-property-key";
-  static readonly WINDOW_SIZE_KEY: string = "window-size-key";
+  static readonly TITLE_KEY: string = 'title-key';
+  static readonly COUNT_PROPERTY_KEY: string = 'count-property-key';
+  static readonly NAME_PROPERTY_KEY: string = 'name-property-key';
+  static readonly WINDOW_SIZE_KEY: string = 'window-size-key';
 
   constructor() {
     super();
   }
 
   getConfig(): DashboardWidgetSettings {
-    return WidgetConfigBuilder.createWithSelectableColorsAndTitlePanel("wordcloud", "Word Cloud")
-        .withIcon("fas fa-font")
-        .withDescription("A wordcloud visualization")
+    return WidgetConfigBuilder.createWithSelectableColorsAndTitlePanel('wordcloud', 'Word Cloud')
+        .withIcon('fas fa-font')
+        .withDescription('A wordcloud visualization')
         .requiredSchema(SchemaRequirementsBuilder
             .create()
-            .requiredPropertyWithUnaryMapping(WordCloudConfig.COUNT_PROPERTY_KEY, "Count field", "", EpRequirements.integerReq())
-            .requiredPropertyWithUnaryMapping(WordCloudConfig.NAME_PROPERTY_KEY, "Name field", "", EpRequirements.stringReq())
+            .requiredPropertyWithUnaryMapping(WordCloudConfig.COUNT_PROPERTY_KEY, 'Count field', '', EpRequirements.integerReq())
+            .requiredPropertyWithUnaryMapping(WordCloudConfig.NAME_PROPERTY_KEY, 'Name field', '', EpRequirements.stringReq())
             .build())
-        .requiredIntegerParameter(WordCloudConfig.WINDOW_SIZE_KEY, "Window size", "The maximum number of events")
+        .requiredIntegerParameter(WordCloudConfig.WINDOW_SIZE_KEY, 'Window size', 'The maximum number of events')
         .build();
   }
 }
diff --git a/ui/src/app/dashboard/registry/widget-registry.ts b/ui/src/app/dashboard/registry/widget-registry.ts
index 03a4e42..3687a6f 100644
--- a/ui/src/app/dashboard/registry/widget-registry.ts
+++ b/ui/src/app/dashboard/registry/widget-registry.ts
@@ -16,27 +16,27 @@
  *
  */
 
-import {AreaConfig} from '../components/widgets/area/area-config';
-import {WidgetConfig} from '../components/widgets/base/base-config';
-import {GaugeConfig} from '../components/widgets/gauge/gauge-config';
-import {HtmlConfig} from '../components/widgets/html/html-config';
-import {ImageConfig} from '../components/widgets/image/image-config';
-import {LineConfig} from '../components/widgets/line/line-config';
-import {MapConfig} from '../components/widgets/map/map-config';
-import {NumberConfig} from '../components/widgets/number/number-config';
-import {RawConfig} from '../components/widgets/raw/raw-config';
-import {TableConfig} from '../components/widgets/table/table-config';
-import {TrafficLightConfig} from '../components/widgets/trafficlight/traffic-light-config';
-import {SchemaMatch} from '../sdk/matching/schema-match';
+import { AreaConfig } from '../components/widgets/area/area-config';
+import { WidgetConfig } from '../components/widgets/base/base-config';
+import { GaugeConfig } from '../components/widgets/gauge/gauge-config';
+import { HtmlConfig } from '../components/widgets/html/html-config';
+import { ImageConfig } from '../components/widgets/image/image-config';
+import { LineConfig } from '../components/widgets/line/line-config';
+import { MapConfig } from '../components/widgets/map/map-config';
+import { NumberConfig } from '../components/widgets/number/number-config';
+import { RawConfig } from '../components/widgets/raw/raw-config';
+import { TableConfig } from '../components/widgets/table/table-config';
+import { TrafficLightConfig } from '../components/widgets/trafficlight/traffic-light-config';
+import { SchemaMatch } from '../sdk/matching/schema-match';
 import {
     DashboardWidgetSettings,
     EventSchema,
     VisualizablePipeline
-} from '../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
-import {WordCloudConfig} from "../components/widgets/wordcloud/wordcloud-config";
-import {StatusWidgetConfig} from "../components/widgets/status/status-config";
-import {BarRaceConfig} from "../components/widgets/bar-race/bar-race-config";
-import {StackedLineChartConfig} from "../components/widgets/stacked-line-chart/stacked-line-chart-config";
+} from '@streampipes/platform-services';
+import { WordCloudConfig } from '../components/widgets/wordcloud/wordcloud-config';
+import { StatusWidgetConfig } from '../components/widgets/status/status-config';
+import { BarRaceConfig } from '../components/widgets/bar-race/bar-race-config';
+import { StackedLineChartConfig } from '../components/widgets/stacked-line-chart/stacked-line-chart-config';
 
 export class WidgetRegistry {
 
diff --git a/ui/src/app/data-explorer/components/designer-panel/data-explorer-designer-panel.component.ts b/ui/src/app/data-explorer/components/designer-panel/data-explorer-designer-panel.component.ts
index d86cfda..572f01a 100644
--- a/ui/src/app/data-explorer/components/designer-panel/data-explorer-designer-panel.component.ts
+++ b/ui/src/app/data-explorer/components/designer-panel/data-explorer-designer-panel.component.ts
@@ -17,7 +17,7 @@
  */
 
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { DataExplorerWidgetModel, DataLakeMeasure } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
+import { DataExplorerWidgetModel, DataLakeMeasure } from '@streampipes/platform-services';
 import { Tuple2 } from '../../../core-model/base/Tuple2';
 
 @Component({
diff --git a/ui/src/app/data-explorer/components/designer-panel/data-settings/group-selection-panel/group-selection-panel.component.ts b/ui/src/app/data-explorer/components/designer-panel/data-settings/group-selection-panel/group-selection-panel.component.ts
index 0384101..4162f08 100644
--- a/ui/src/app/data-explorer/components/designer-panel/data-settings/group-selection-panel/group-selection-panel.component.ts
+++ b/ui/src/app/data-explorer/components/designer-panel/data-settings/group-selection-panel/group-selection-panel.component.ts
@@ -20,7 +20,7 @@ import { Component, Input, OnInit } from '@angular/core';
 import { FieldConfig, SourceConfig } from '../../../../models/dataview-dashboard.model';
 import { DataExplorerFieldProviderService } from '../../../../services/data-explorer-field-provider-service';
 import { WidgetConfigurationService } from '../../../../services/widget-configuration.service';
-import { EventPropertyUnion } from '../../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
+import { EventPropertyUnion } from '@streampipes/platform-services';
 
 @Component({
   selector: 'sp-group-selection-panel',
diff --git a/ui/src/app/data-explorer/components/overview/data-explorer-dashboard-overview.component.ts b/ui/src/app/data-explorer/components/overview/data-explorer-dashboard-overview.component.ts
index e04d1bc..68975d7 100644
--- a/ui/src/app/data-explorer/components/overview/data-explorer-dashboard-overview.component.ts
+++ b/ui/src/app/data-explorer/components/overview/data-explorer-dashboard-overview.component.ts
@@ -19,8 +19,7 @@
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
 import { MatTableDataSource } from '@angular/material/table';
 import { DataExplorerEditDataViewDialogComponent } from '../../dialogs/edit-dashboard/data-explorer-edit-data-view-dialog.component';
-import { DataViewDataExplorerService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/data-view-data-explorer.service';
-import { Dashboard } from '@streampipes/platform-services';
+import { DataViewDataExplorerService, Dashboard } from '@streampipes/platform-services';
 import { Tuple2 } from '../../../core-model/base/Tuple2';
 import { PanelType } from '../../../core-ui/dialog/base-dialog/base-dialog.model';
 import { DialogService } from '../../../core-ui/dialog/base-dialog/base-dialog.service';
diff --git a/ui/src/app/data-explorer/components/widgets/base/base-widget-config.ts b/ui/src/app/data-explorer/components/widgets/base/base-widget-config.ts
index 5f3850c..24f0f10 100644
--- a/ui/src/app/data-explorer/components/widgets/base/base-widget-config.ts
+++ b/ui/src/app/data-explorer/components/widgets/base/base-widget-config.ts
@@ -22,7 +22,7 @@ import {
   EventPropertyPrimitive,
   EventPropertyUnion,
   EventSchema
-} from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
+} from '@streampipes/platform-services';
 import { WidgetConfigurationService } from '../../../services/widget-configuration.service';
 import { DataExplorerField, DataExplorerVisConfig, FieldProvider, SourceConfig } from '../../../models/dataview-dashboard.model';
 import { DataExplorerFieldProviderService } from '../../../services/data-explorer-field-provider-service';
diff --git a/ui/src/app/data-explorer/components/widgets/distribution-chart/distribution-chart-widget.component.ts b/ui/src/app/data-explorer/components/widgets/distribution-chart/distribution-chart-widget.component.ts
index 75ad9eb..1d633ed 100644
--- a/ui/src/app/data-explorer/components/widgets/distribution-chart/distribution-chart-widget.component.ts
+++ b/ui/src/app/data-explorer/components/widgets/distribution-chart/distribution-chart-widget.component.ts
@@ -20,8 +20,7 @@ import { Component, OnInit } from '@angular/core';
 import { BaseDataExplorerWidgetDirective } from '../base/base-data-explorer-widget.directive';
 import { DistributionChartWidgetModel } from './model/distribution-chart-widget.model';
 import { DataExplorerField } from '../../../models/dataview-dashboard.model';
-import { SpQueryResult } from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
-import { THIS_EXPR } from '@angular/compiler/src/output/output_ast';
+import { SpQueryResult } from '@streampipes/platform-services';
 
 @Component({
   selector: 'sp-data-explorer-distribution-chart-widget',
@@ -67,8 +66,6 @@ export class DistributionChartWidgetComponent extends BaseDataExplorerWidgetDire
 
   prepareData(spQueryResult: SpQueryResult[]) {
 
-    //todo tags als namen und labels unter pie und legende für histo
-
     this.data = [];
 
     const len = spQueryResult[0].allDataSeries.length;
diff --git a/ui/src/app/data-explorer/components/widgets/heatmap/heatmap-widget.component.ts b/ui/src/app/data-explorer/components/widgets/heatmap/heatmap-widget.component.ts
index 2f640e7..7bb73f6 100644
--- a/ui/src/app/data-explorer/components/widgets/heatmap/heatmap-widget.component.ts
+++ b/ui/src/app/data-explorer/components/widgets/heatmap/heatmap-widget.component.ts
@@ -17,7 +17,7 @@
  */
 
 import { Component, OnDestroy, OnInit } from '@angular/core';
-import { SpQueryResult } from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
+import { SpQueryResult } from '@streampipes/platform-services';
 
 import { BaseDataExplorerWidgetDirective } from '../base/base-data-explorer-widget.directive';
 import { HeatmapWidgetModel } from './model/heatmap-widget.model';
diff --git a/ui/src/app/data-explorer/services/data-explorer-field-provider-service.ts b/ui/src/app/data-explorer/services/data-explorer-field-provider-service.ts
index 70bf60e..7e42c76 100644
--- a/ui/src/app/data-explorer/services/data-explorer-field-provider-service.ts
+++ b/ui/src/app/data-explorer/services/data-explorer-field-provider-service.ts
@@ -27,7 +27,7 @@ import {
   EventProperty,
   EventPropertyPrimitive,
   EventPropertyUnion
-} from '../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
+} from '@streampipes/platform-services';
 
 
 @Injectable()
diff --git a/ui/src/app/editor/components/output-strategy/user-defined-output/user-defined-output.component.ts b/ui/src/app/editor/components/output-strategy/user-defined-output/user-defined-output.component.ts
index f975cc0..5c6da36 100644
--- a/ui/src/app/editor/components/output-strategy/user-defined-output/user-defined-output.component.ts
+++ b/ui/src/app/editor/components/output-strategy/user-defined-output/user-defined-output.component.ts
@@ -16,44 +16,44 @@
  *
  */
 
-import {Component, OnInit} from "@angular/core";
-import {BaseOutputStrategy} from "../base/BaseOutputStrategy";
+import { Component, OnInit } from '@angular/core';
+import { BaseOutputStrategy } from '../base/BaseOutputStrategy';
 import {
   EventPropertyPrimitive,
   UserDefinedOutputStrategy
-} from "../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
-import {FormControl} from "@angular/forms";
+} from '@streampipes/platform-services';
+import { FormControl } from '@angular/forms';
 
 @Component({
   selector: 'user-defined-output-strategy',
   templateUrl: './user-defined-output.component.html',
   styleUrls: ['./user-defined-output.component.scss']
 })
-export class UserDefinedOutputStrategyComponent extends BaseOutputStrategy<UserDefinedOutputStrategy> implements OnInit{
+export class UserDefinedOutputStrategyComponent extends BaseOutputStrategy<UserDefinedOutputStrategy> implements OnInit {
 
-  private prefix = "urn:streampipes.org:spi:";
-  private chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
+  private prefix = 'urn:streampipes.org:spi:';
+  private chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
 
   collectedPropertiesFirstStream: any;
   collectedPropertiesSecondStream: any;
 
-  primitiveClasses = [{"label": "String", "id": "http://www.w3.org/2001/XMLSchema#string"},
-    {"label": "Boolean", "id": "http://www.w3.org/2001/XMLSchema#boolean"},
-    {"label": "Integer", "id": "http://www.w3.org/2001/XMLSchema#integer"},
-    {"label": "Long", "id": "http://www.w3.org/2001/XMLSchema#long"},
-    {"label": "Double", "id": "http://www.w3.org/2001/XMLSchema#double"},
-    {"label": "Float", "id": "http://www.w3.org/2001/XMLSchema#float"}];
+  primitiveClasses = [{'label': 'String', 'id': 'http://www.w3.org/2001/XMLSchema#string'},
+    {'label': 'Boolean', 'id': 'http://www.w3.org/2001/XMLSchema#boolean'},
+    {'label': 'Integer', 'id': 'http://www.w3.org/2001/XMLSchema#integer'},
+    {'label': 'Long', 'id': 'http://www.w3.org/2001/XMLSchema#long'},
+    {'label': 'Double', 'id': 'http://www.w3.org/2001/XMLSchema#double'},
+    {'label': 'Float', 'id': 'http://www.w3.org/2001/XMLSchema#float'}];
 
   constructor() {
     super();
   }
 
   ngOnInit() {
-    this.parentForm.addControl("output-strategy", new FormControl());
+    this.parentForm.addControl('output-strategy', new FormControl());
     if (!this.outputStrategy.eventProperties) {
       this.outputStrategy.eventProperties = [];
     }
-    this.checkFormValidity()
+    this.checkFormValidity();
   }
 
   applyDefaultSchema() {
@@ -74,10 +74,10 @@ export class UserDefinedOutputStrategyComponent extends BaseOutputStrategy<UserD
   }
 
   makeDefaultProperty() {
-    let ep = {} as EventPropertyPrimitive;
-    ep["@class"] = "org.apache.streampipes.model.schema.EventPropertyPrimitive";
+    const ep = {} as EventPropertyPrimitive;
+    ep['@class'] = 'org.apache.streampipes.model.schema.EventPropertyPrimitive';
     ep.domainProperties = [];
-    ep.elementId = "urn:streampipes.org:spi:eventpropertyprimitive:" + this.makeId();
+    ep.elementId = 'urn:streampipes.org:spi:eventpropertyprimitive:' + this.makeId();
 
     return ep;
   }
@@ -88,15 +88,15 @@ export class UserDefinedOutputStrategyComponent extends BaseOutputStrategy<UserD
 
   randomString(length) {
     let result = '';
-    for (let i = length; i > 0; --i) result += this.chars[Math.floor(Math.random() * this.chars.length)];
+    for (let i = length; i > 0; --i) { result += this.chars[Math.floor(Math.random() * this.chars.length)]; }
     return result;
   }
 
   checkFormValidity() {
     if (!this.outputStrategy.eventProperties || this.outputStrategy.eventProperties.length == 0) {
-      this.parentForm.controls["output-strategy"].setErrors({});
+      this.parentForm.controls['output-strategy'].setErrors({});
     } else {
-      this.parentForm.controls["output-strategy"].setErrors(undefined);
+      this.parentForm.controls['output-strategy'].setErrors(undefined);
     }
   }
 }
diff --git a/ui/src/app/pipeline-details/components/preview/pipeline-preview.component.ts b/ui/src/app/pipeline-details/components/preview/pipeline-preview.component.ts
index 411b336..592cedf 100644
--- a/ui/src/app/pipeline-details/components/preview/pipeline-preview.component.ts
+++ b/ui/src/app/pipeline-details/components/preview/pipeline-preview.component.ts
@@ -17,7 +17,7 @@
  */
 
 import {Component, EventEmitter, Input, OnInit, Output} from "@angular/core";
-import {Pipeline} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
+import {Pipeline} from "@streampipes/platform-services";
 import {PipelineElementConfig, PipelineElementUnion} from "../../../editor/model/editor.model";
 import {PipelinePositioningService} from "../../../editor/services/pipeline-positioning.service";
 import {JsplumbService} from "../../../editor/services/jsplumb.service";
diff --git a/ui/src/app/pipelines/dialog/pipeline-status/pipeline-status-dialog.component.ts b/ui/src/app/pipelines/dialog/pipeline-status/pipeline-status-dialog.component.ts
index 7a6c2b2..4cdfc3b 100644
--- a/ui/src/app/pipelines/dialog/pipeline-status/pipeline-status-dialog.component.ts
+++ b/ui/src/app/pipelines/dialog/pipeline-status/pipeline-status-dialog.component.ts
@@ -17,10 +17,9 @@
  */
 
 import { DialogRef } from '../../../core-ui/dialog/base-dialog/dialog-ref';
-import { PipelineOperationStatus } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
+import { PipelineOperationStatus, PipelineService } from '@streampipes/platform-services';
 import { Component, Input, OnInit } from '@angular/core';
 import { PipelineAction } from '../../model/pipeline-model';
-import { PipelineService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/pipeline.service';
 import { ShepherdService } from '../../../services/tour/shepherd.service';
 
 
diff --git a/ui/src/app/pipelines/services/pipeline-operations.service.ts b/ui/src/app/pipelines/services/pipeline-operations.service.ts
index 6a934e9..d53abca 100644
--- a/ui/src/app/pipelines/services/pipeline-operations.service.ts
+++ b/ui/src/app/pipelines/services/pipeline-operations.service.ts
@@ -18,7 +18,7 @@
 
 import { ShepherdService } from '../../services/tour/shepherd.service';
 import { EventEmitter, Injectable } from '@angular/core';
-import { PipelineService } from '../../../../projects/streampipes/platform-services/src/lib/apis/pipeline.service';
+import { PipelineService } from '@streampipes/platform-services';
 import { PanelType } from '../../core-ui/dialog/base-dialog/base-dialog.model';
 import { DialogService } from '../../core-ui/dialog/base-dialog/base-dialog.service';
 import { PipelineStatusDialogComponent } from '../dialog/pipeline-status/pipeline-status-dialog.component';
diff --git a/ui/src/app/services/jwt-token-storage.service.ts b/ui/src/app/services/jwt-token-storage.service.ts
index 1706e58..3d535c1 100644
--- a/ui/src/app/services/jwt-token-storage.service.ts
+++ b/ui/src/app/services/jwt-token-storage.service.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { UserInfo } from '../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client';
+import { UserInfo } from '@streampipes/platform-services';
 
 const TOKEN_KEY = 'auth-token';
 const USER_KEY = 'auth-user';

[incubator-streampipes] 01/02: [hotfix] Platform service is now working

Posted by ze...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zehnder pushed a commit to branch experimental-module-federation
in repository https://gitbox.apache.org/repos/asf/incubator-streampipes.git

commit 1db18bf2b3e4b4f0737a04702038b77d3e14a192
Author: Philipp Zehnder <ze...@fzi.de>
AuthorDate: Tue Feb 1 16:03:44 2022 +0100

    [hotfix] Platform service is now working
---
 .../app-constants.ts}                              | 26 +++------
 ui/deployment/prebuild.js                          |  1 +
 .../src/lib/model/dashboard/dashboard.model.ts     |  4 +-
 .../components/view-asset/view-asset.component.ts  | 13 ++---
 ui/src/app/configuration/configuration.module.ts   |  2 +-
 .../components/panel/dashboard-panel.component.ts  | 47 ++++++++--------
 .../standalone/standalone-dashboard.component.ts   | 18 +++----
 .../widget/dashboard-widget.component.ts           | 49 +++++++++--------
 .../components/widgets/base/base-widget.ts         | 62 +++++++++++-----------
 .../data-explorer-dashboard-panel.component.ts     |  7 ++-
 10 files changed, 103 insertions(+), 126 deletions(-)

diff --git a/ui/projects/streampipes/platform-services/src/lib/model/dashboard/dashboard.model.ts b/ui/deployment/app-constants.ts
similarity index 57%
copy from ui/projects/streampipes/platform-services/src/lib/model/dashboard/dashboard.model.ts
copy to ui/deployment/app-constants.ts
index a83fe88..6bca2ef 100644
--- a/ui/projects/streampipes/platform-services/src/lib/model/dashboard/dashboard.model.ts
+++ b/ui/deployment/app-constants.ts
@@ -16,26 +16,12 @@
  *
  */
 
-import { GridsterConfig, GridsterItem } from 'angular-gridster2';
-import { TimeSettings } from '../datalake/DateRange';
+import { Injectable } from '@angular/core';
 
-// tslint:disable-next-line:no-empty-interface
-export interface DashboardConfig extends GridsterConfig {}
+@Injectable()
+export class AppConstants {
 
-interface DashboardItem extends GridsterItem {
-    widgetId: string;
-    widgetType: string;
-    id: string;
-}
-
-export interface Dashboard {
-    id?: string;
-    name?: string;
-    description?: string;
-    displayHeader?: boolean;
-    widgets?: DashboardItem[];
-    dashboardTimeSettings?: TimeSettings;
-    dashboardGeneralSettings?: any;
-    _id?: string;
-    _rev?: string;
+    public readonly APP_NAME = 'Apache StreamPipes';
+    public readonly APP_TITLE = 'Apache StreamPipes';
+    public readonly EMAIL = 'dev@streampipes.apache.org';
 }
diff --git a/ui/deployment/prebuild.js b/ui/deployment/prebuild.js
index c3bde27..f104a2e 100644
--- a/ui/deployment/prebuild.js
+++ b/ui/deployment/prebuild.js
@@ -86,6 +86,7 @@ fs.writeFileSync('src/app/home/home.service.ts', mustache.render(fs.readFileSync
 fs.writeFileSync('src/app/app-routing.module.ts', mustache.render(fs.readFileSync('deployment/app-routing.module.mst', 'utf8').toString(), modulesActive));
 fs.writeFileSync('src/app/core/components/base-navigation.component.ts', mustache.render(fs.readFileSync('deployment/base-navigation.component.mst', 'utf8').toString(), modulesActive));
 fs.writeFileSync('src/scss/sp/sp-theme.scss', fs.readFileSync('deployment/sp-theme.scss'));
+fs.writeFileSync('src/app/services/app.constants.ts', fs.readFileSync('deployment/app-constants.ts', 'utf8'));
 
 // Move Images
 fs.writeFileSync('src/assets/img/sp/logo.png', fs.readFileSync(config['login']['logo']));
diff --git a/ui/projects/streampipes/platform-services/src/lib/model/dashboard/dashboard.model.ts b/ui/projects/streampipes/platform-services/src/lib/model/dashboard/dashboard.model.ts
index a83fe88..017225b 100644
--- a/ui/projects/streampipes/platform-services/src/lib/model/dashboard/dashboard.model.ts
+++ b/ui/projects/streampipes/platform-services/src/lib/model/dashboard/dashboard.model.ts
@@ -22,7 +22,7 @@ import { TimeSettings } from '../datalake/DateRange';
 // tslint:disable-next-line:no-empty-interface
 export interface DashboardConfig extends GridsterConfig {}
 
-interface DashboardItem extends GridsterItem {
+export interface ClientDashboardItem extends GridsterItem {
     widgetId: string;
     widgetType: string;
     id: string;
@@ -33,7 +33,7 @@ export interface Dashboard {
     name?: string;
     description?: string;
     displayHeader?: boolean;
-    widgets?: DashboardItem[];
+    widgets?: ClientDashboardItem[];
     dashboardTimeSettings?: TimeSettings;
     dashboardGeneralSettings?: any;
     _id?: string;
diff --git a/ui/src/app/app-asset-monitoring/components/view-asset/view-asset.component.ts b/ui/src/app/app-asset-monitoring/components/view-asset/view-asset.component.ts
index bed60f4..61c4165 100644
--- a/ui/src/app/app-asset-monitoring/components/view-asset/view-asset.component.ts
+++ b/ui/src/app/app-asset-monitoring/components/view-asset/view-asset.component.ts
@@ -16,19 +16,14 @@
  *
  */
 
-import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
+import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
 
 import Konva from 'konva';
 import { WebsocketService } from '../../services/websocket.service';
 import { DashboardConfiguration } from '../../model/dashboard-configuration.model';
 import { RestService } from '../../services/rest.service';
-import {DashboardService} from "../../../dashboard/services/dashboard.service";
-import {
-    DashboardWidgetModel,
-    Pipeline,
-    VisualizablePipeline
-} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
-import {DashboardItem} from "@streampipes/platform-services/src/lib/model/dashboard/dashboard.model";
+import { DashboardService } from '../../../dashboard/services/dashboard.service';
+import { DashboardItem } from '@streampipes/platform-services';
 
 interface Window {
     Image: any;
@@ -41,7 +36,7 @@ declare const window: Window;
     templateUrl: './view-asset.component.html',
     styleUrls: ['./view-asset.component.css']
 })
-export class ViewAssetComponent implements OnInit {
+export class ViewAssetComponent implements OnInit, AfterViewInit {
 
     @Input() dashboardConfig: DashboardConfiguration;
     @Output() dashboardClosed = new EventEmitter<boolean>();
diff --git a/ui/src/app/configuration/configuration.module.ts b/ui/src/app/configuration/configuration.module.ts
index 26502fd..f9b2cdd 100644
--- a/ui/src/app/configuration/configuration.module.ts
+++ b/ui/src/app/configuration/configuration.module.ts
@@ -49,7 +49,7 @@ import { MatDividerModule } from '@angular/material/divider';
 import { SecurityUserConfigComponent } from './security-configuration/security-user-configuration/security-user-config.component';
 import { SecurityServiceConfigComponent } from './security-configuration/security-service-configuration/security-service-config.component';
 import { EditUserDialogComponent } from './security-configuration/edit-user-dialog/edit-user-dialog.component';
-import { PlatformServicesModule } from '../platform-services/platform.module';
+import { PlatformServicesModule } from '@streampipes/platform-services';
 import { SecurityUserGroupConfigComponent } from './security-configuration/user-group-configuration/user-group-configuration.component';
 import { EditGroupDialogComponent } from './security-configuration/edit-group-dialog/edit-group-dialog.component';
 import { EmailConfigurationComponent } from './email-configuration/email-configuration.component';
diff --git a/ui/src/app/dashboard/components/panel/dashboard-panel.component.ts b/ui/src/app/dashboard/components/panel/dashboard-panel.component.ts
index 3a09746..03631a6 100644
--- a/ui/src/app/dashboard/components/panel/dashboard-panel.component.ts
+++ b/ui/src/app/dashboard/components/panel/dashboard-panel.component.ts
@@ -16,15 +16,14 @@
  *
  */
 
-import {Component, EventEmitter, Input, OnInit, Output} from "@angular/core";
-import {Dashboard, DashboardItem} from "@streampipes/platform-services/src/lib/model/dashboard/dashboard.model";
-import {forkJoin, Observable, Subscription} from "rxjs";
-import {AddVisualizationDialogComponent} from "../../dialogs/add-widget/add-visualization-dialog.component";
-import {DashboardService} from "../../services/dashboard.service";
-import {RefreshDashboardService} from "../../services/refresh-dashboard.service";
-import {DashboardWidgetModel} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
-import {PanelType} from "../../../core-ui/dialog/base-dialog/base-dialog.model";
-import {DialogService} from "../../../core-ui/dialog/base-dialog/base-dialog.service";
+import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
+import { Dashboard, ClientDashboardItem, DashboardWidgetModel } from '@streampipes/platform-services';
+import { forkJoin, Observable, Subscription } from 'rxjs';
+import { AddVisualizationDialogComponent } from '../../dialogs/add-widget/add-visualization-dialog.component';
+import { DashboardService } from '../../services/dashboard.service';
+import { RefreshDashboardService } from '../../services/refresh-dashboard.service';
+import { PanelType } from '../../../core-ui/dialog/base-dialog/base-dialog.model';
+import { DialogService } from '../../../core-ui/dialog/base-dialog/base-dialog.service';
 
 @Component({
     selector: 'dashboard-panel',
@@ -34,17 +33,17 @@ import {DialogService} from "../../../core-ui/dialog/base-dialog/base-dialog.ser
 export class DashboardPanelComponent implements OnInit {
 
     @Input() dashboard: Dashboard;
-    @Input("editMode") editMode: boolean;
-    @Output("editModeChange") editModeChange: EventEmitter<boolean> = new EventEmitter();
+    @Input('editMode') editMode: boolean;
+    @Output('editModeChange') editModeChange: EventEmitter<boolean> = new EventEmitter();
 
-    public items: DashboardItem[];
+    public items: ClientDashboardItem[];
 
     protected subscription: Subscription;
 
-    widgetIdsToRemove: Array<string> = [];
+    widgetIdsToRemove: string[] = [];
     widgetsToUpdate: Map<string, DashboardWidgetModel> = new Map<string, DashboardWidgetModel>();
 
-    headerVisible: boolean = true;
+    headerVisible = true;
 
     constructor(private dashboardService: DashboardService,
                 private dialogService: DialogService,
@@ -56,10 +55,10 @@ export class DashboardPanelComponent implements OnInit {
     }
 
     addWidget(): void {
-        const dialogRef = this.dialogService.open(AddVisualizationDialogComponent,{
+        const dialogRef = this.dialogService.open(AddVisualizationDialogComponent, {
             panelType: PanelType.SLIDE_IN_PANEL,
-            title: "Add widget",
-            width: "50vw",
+            title: 'Add widget',
+            width: '50vw',
         });
 
         dialogRef.afterClosed().subscribe(widget => {
@@ -70,7 +69,7 @@ export class DashboardPanelComponent implements OnInit {
     }
 
     addWidgetToDashboard(widget: DashboardWidgetModel) {
-        let dashboardItem = {} as DashboardItem;
+        const dashboardItem = {} as ClientDashboardItem;
         dashboardItem.widgetId = widget._id;
         dashboardItem.id = widget._id;
         // TODO there should be a widget type DashboardWidget
@@ -90,9 +89,9 @@ export class DashboardPanelComponent implements OnInit {
                 });
             } else {
                 this.deleteWidgets();
-                this.closeEditModeAndReloadDashboard()
+                this.closeEditModeAndReloadDashboard();
             }
-        })
+        });
     }
 
     closeEditModeAndReloadDashboard() {
@@ -100,11 +99,11 @@ export class DashboardPanelComponent implements OnInit {
         this.refreshDashboardService.notify(this.dashboard._id);
     }
 
-    prepareWidgetUpdates(): Array<Observable<any>> {
-        let promises: Array<Observable<any>> = [];
+    prepareWidgetUpdates(): Observable<any>[] {
+        const promises: Observable<any>[] = [];
         this.widgetsToUpdate.forEach((widget, key) => {
             promises.push(this.dashboardService.updateWidget(widget));
-        })
+        });
 
         return promises;
     }
@@ -114,7 +113,7 @@ export class DashboardPanelComponent implements OnInit {
         this.refreshDashboardService.notify(this.dashboard._id);
     }
 
-    removeAndQueueItemForDeletion(widget: DashboardItem) {
+    removeAndQueueItemForDeletion(widget: ClientDashboardItem) {
         this.dashboard.widgets.splice(this.dashboard.widgets.indexOf(widget), 1);
         this.widgetIdsToRemove.push(widget.id);
     }
diff --git a/ui/src/app/dashboard/components/standalone/standalone-dashboard.component.ts b/ui/src/app/dashboard/components/standalone/standalone-dashboard.component.ts
index 748a52f..ca41c44 100644
--- a/ui/src/app/dashboard/components/standalone/standalone-dashboard.component.ts
+++ b/ui/src/app/dashboard/components/standalone/standalone-dashboard.component.ts
@@ -15,10 +15,10 @@
  *   limitations under the License.
  */
 
-import {Component, OnInit} from "@angular/core";
-import {Dashboard} from "@streampipes/platform-services/src/lib/model/dashboard/dashboard.model";
-import {DashboardService} from "../../services/dashboard.service";
-import {ActivatedRoute} from "@angular/router";
+import { Component, OnInit } from '@angular/core';
+import { Dashboard } from '@streampipes/platform-services';
+import { DashboardService } from '../../services/dashboard.service';
+import { ActivatedRoute } from '@angular/router';
 
 @Component({
     templateUrl: './standalone-dashboard.component.html',
@@ -27,21 +27,21 @@ import {ActivatedRoute} from "@angular/router";
 export class StandaloneDashboardComponent implements OnInit {
 
     dashboard: Dashboard;
-    dashboardReady: boolean = false;
+    dashboardReady = false;
 
-    constructor(private ActivatedRoute: ActivatedRoute,
+    constructor(private activatedRoute: ActivatedRoute,
                 private dashboardService: DashboardService) {
     }
 
     ngOnInit(): void {
-        this.ActivatedRoute.params.subscribe(params => {
+        this.activatedRoute.params.subscribe(params => {
             if (params['dashboardId']) {
-                let dashboardId = params['dashboardId'];
+                const dashboardId = params['dashboardId'];
                 console.log(dashboardId);
                 this.dashboardService.getDashboard(dashboardId).subscribe(dashboard => {
                     this.dashboard = dashboard;
                     this.dashboardReady = true;
-                })
+                });
             }
         });
     }
diff --git a/ui/src/app/dashboard/components/widget/dashboard-widget.component.ts b/ui/src/app/dashboard/components/widget/dashboard-widget.component.ts
index 965e521..db23b53 100644
--- a/ui/src/app/dashboard/components/widget/dashboard-widget.component.ts
+++ b/ui/src/app/dashboard/components/widget/dashboard-widget.component.ts
@@ -16,20 +16,19 @@
  *
  */
 
-import {Component, EventEmitter, Input, OnInit, Output} from "@angular/core";
-import {DashboardItem} from "@streampipes/platform-services/src/lib/model/dashboard/dashboard.model";
-import {DashboardService} from "../../services/dashboard.service";
-import {GridsterItem, GridsterItemComponent} from "angular-gridster2";
-import {AddVisualizationDialogComponent} from "../../dialogs/add-widget/add-visualization-dialog.component";
+import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
+import { DashboardItem } from '@streampipes/platform-services';
+import { DashboardService } from '../../services/dashboard.service';
+import { AddVisualizationDialogComponent } from '../../dialogs/add-widget/add-visualization-dialog.component';
 import {
   DashboardWidgetModel, Pipeline,
   VisualizablePipeline
-} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
-import {PanelType} from "../../../core-ui/dialog/base-dialog/base-dialog.model";
-import {DialogService} from "../../../core-ui/dialog/base-dialog/base-dialog.service";
-import {PipelineService} from "../../../../../projects/streampipes/platform-services/src/lib/apis/pipeline.service";
-import {EditModeService} from "../../services/edit-mode.service";
-import {ReloadPipelineService} from "../../services/reload-pipeline.service";
+} from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
+import { PanelType } from '../../../core-ui/dialog/base-dialog/base-dialog.model';
+import { DialogService } from '../../../core-ui/dialog/base-dialog/base-dialog.service';
+import { PipelineService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/pipeline.service';
+import { EditModeService } from '../../services/edit-mode.service';
+import { ReloadPipelineService } from '../../services/reload-pipeline.service';
 
 @Component({
   selector: 'dashboard-widget',
@@ -40,22 +39,22 @@ export class DashboardWidgetComponent implements OnInit {
 
   @Input() widget: DashboardItem;
   @Input() editMode: boolean;
-  @Input() headerVisible: boolean = false;
+  @Input() headerVisible = false;
   @Input() itemWidth: number;
   @Input() itemHeight: number;
-  //@Input() item: GridsterItem;
-  //@Input() gridsterItemComponent: GridsterItemComponent;
+  // @Input() item: GridsterItem;
+  // @Input() gridsterItemComponent: GridsterItemComponent;
 
   @Output() deleteCallback: EventEmitter<DashboardItem> = new EventEmitter<DashboardItem>();
   @Output() updateCallback: EventEmitter<DashboardWidgetModel> = new EventEmitter<DashboardWidgetModel>();
 
-  widgetLoaded: boolean = false;
+  widgetLoaded = false;
   configuredWidget: DashboardWidgetModel;
   widgetDataConfig: VisualizablePipeline;
   pipeline: Pipeline;
 
-  pipelineRunning: boolean = false;
-  widgetNotAvailable: boolean = false;
+  pipelineRunning = false;
+  widgetNotAvailable = false;
 
   constructor(private dashboardService: DashboardService,
               private dialogService: DialogService,
@@ -68,7 +67,7 @@ export class DashboardWidgetComponent implements OnInit {
     this.loadWidget();
     this.reloadPipelineService.reloadPipelineSubject.subscribe(() => {
       this.loadWidget();
-    })
+    });
   }
 
   loadWidget() {
@@ -103,7 +102,7 @@ export class DashboardWidgetComponent implements OnInit {
       this.pipelineService
           .startPipeline(this.pipeline._id)
           .subscribe(status => {
-            //this.loadWidget();
+            // this.loadWidget();
             this.reloadPipelineService.reloadPipelineSubject.next();
           });
     }
@@ -117,13 +116,13 @@ export class DashboardWidgetComponent implements OnInit {
   editWidget(): void {
     const dialogRef = this.dialogService.open(AddVisualizationDialogComponent, {
       panelType: PanelType.SLIDE_IN_PANEL,
-      title: "Edit widget",
-      width: "50vw",
+      title: 'Edit widget',
+      width: '50vw',
       data: {
-        "widget": this.configuredWidget,
-        "pipeline": this.widgetDataConfig,
-        "editMode": true,
-        "startPage": this.widgetNotAvailable ? "select-pipeline" : "configure-widget"
+        'widget': this.configuredWidget,
+        'pipeline': this.widgetDataConfig,
+        'editMode': true,
+        'startPage': this.widgetNotAvailable ? 'select-pipeline' : 'configure-widget'
       }
     });
 
diff --git a/ui/src/app/dashboard/components/widgets/base/base-widget.ts b/ui/src/app/dashboard/components/widgets/base/base-widget.ts
index 96000d4..67c1d25 100644
--- a/ui/src/app/dashboard/components/widgets/base/base-widget.ts
+++ b/ui/src/app/dashboard/components/widgets/base/base-widget.ts
@@ -16,37 +16,42 @@
  *
  */
 
-import { Input, OnChanges, SimpleChanges, Directive } from "@angular/core";
-import {DashboardItem} from "@streampipes/platform-services/src/lib/model/dashboard/dashboard.model";
-import {StaticPropertyExtractor} from "../../../sdk/extractor/static-property-extractor";
-import {RxStompService} from "@stomp/ng2-stompjs";
-import {Message} from "@stomp/stompjs";
-import {Subscription} from "rxjs";
-import {GridsterItem, GridsterItemComponent} from "angular-gridster2";
-import {WidgetConfigBuilder} from "../../../registry/widget-config-builder";
-import {ResizeService} from "../../../services/resize.service";
-import {GridsterInfo, WidgetInfo} from "../../../models/gridster-info.model";
-import {DashboardService} from "../../../services/dashboard.service";
+import { Input, OnChanges, SimpleChanges, Directive } from '@angular/core';
+import { StaticPropertyExtractor } from '../../../sdk/extractor/static-property-extractor';
+import { RxStompService } from '@stomp/ng2-stompjs';
+import { Message } from '@stomp/stompjs';
+import { Subscription } from 'rxjs';
+import { WidgetConfigBuilder } from '../../../registry/widget-config-builder';
+import { ResizeService } from '../../../services/resize.service';
+import { WidgetInfo } from '../../../models/gridster-info.model';
+import { DashboardService } from '../../../services/dashboard.service';
 import {
     DashboardWidgetModel,
     VisualizablePipeline
-} from "../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
+} from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @Directive()
 export abstract class BaseStreamPipesWidget implements OnChanges {
 
-    //@Input() widget: DashboardItem;
+
+    protected constructor(private rxStompService: RxStompService,
+                          protected dashboardService: DashboardService,
+                          protected resizeService: ResizeService,
+                          protected adjustPadding: boolean) {
+    }
+
+    static readonly PADDING: number = 20;
+    static readonly EDIT_HEADER_HEIGHT: number = 40;
+
+    // @Input() widget: DashboardItem;
     @Input() widgetConfig: DashboardWidgetModel;
     @Input() widgetDataConfig: VisualizablePipeline;
     @Input() itemWidth: number;
     @Input() itemHeight: number;
-    //@Input() gridsterItem: GridsterItem;
-    //@Input() gridsterItemComponent: GridsterItemComponent;
+    // @Input() gridsterItem: GridsterItem;
+    // @Input() gridsterItemComponent: GridsterItemComponent;
     @Input() editMode: boolean;
 
-    static readonly PADDING: number = 20;
-    static readonly EDIT_HEADER_HEIGHT: number = 40;
-
     subscription: Subscription;
 
     hasSelectableColorSettings: boolean;
@@ -57,29 +62,22 @@ export abstract class BaseStreamPipesWidget implements OnChanges {
     selectedSecondaryTextColor: string;
     selectedTitle: string;
 
-    defaultBackgroundColor: string = "#1B1464";
-    defaultPrimaryTextColor: string = "#FFFFFF";
-    defaultSecondaryTextColor: string = "#39B54A";
-
-
-    protected constructor(private rxStompService: RxStompService,
-                          protected dashboardService: DashboardService,
-                          protected resizeService: ResizeService,
-                          protected adjustPadding: boolean) {
-    }
+    defaultBackgroundColor = '#1B1464';
+    defaultPrimaryTextColor = '#FFFFFF';
+    defaultSecondaryTextColor = '#39B54A';
 
     ngOnInit(): void {
         this.prepareConfigExtraction();
         this.resizeService.resizeSubject.subscribe(info => {
             this.onResize(info);
         });
-        this.subscription = this.rxStompService.watch("/topic/" +this.widgetDataConfig.topic).subscribe((message: Message) => {
+        this.subscription = this.rxStompService.watch('/topic/' + this.widgetDataConfig.topic).subscribe((message: Message) => {
             this.onEvent(JSON.parse(message.body));
         });
     }
 
     prepareConfigExtraction() {
-        let extractor: StaticPropertyExtractor = new StaticPropertyExtractor(this.widgetDataConfig.schema, this.widgetConfig.dashboardWidgetSettings.config);
+        const extractor: StaticPropertyExtractor = new StaticPropertyExtractor(this.widgetDataConfig.schema, this.widgetConfig.dashboardWidgetSettings.config);
         if (extractor.hasStaticProperty(WidgetConfigBuilder.BACKGROUND_COLOR_KEY)) {
             this.hasSelectableColorSettings = true;
             this.selectedBackgroundColor = extractor.selectedColor(WidgetConfigBuilder.BACKGROUND_COLOR_KEY);
@@ -128,7 +126,7 @@ export abstract class BaseStreamPipesWidget implements OnChanges {
     protected abstract onSizeChanged(width: number, height: number);
 
     ngOnChanges(changes: SimpleChanges): void {
-        if (changes["widgetConfig"]) {
+        if (changes['widgetConfig']) {
             this.prepareConfigExtraction();
         }
     }
@@ -137,7 +135,7 @@ export abstract class BaseStreamPipesWidget implements OnChanges {
         if (info.id === this.widgetConfig._id) {
             setTimeout(() => {
                 this.onSizeChanged(this.computeCurrentWidth(info.width),
-                    this.computeCurrentHeight(info.height))
+                    this.computeCurrentHeight(info.height));
             }, 100);
         }
     }
diff --git a/ui/src/app/data-explorer/components/panel/data-explorer-dashboard-panel.component.ts b/ui/src/app/data-explorer/components/panel/data-explorer-dashboard-panel.component.ts
index 924e7a9..4345bc4 100644
--- a/ui/src/app/data-explorer/components/panel/data-explorer-dashboard-panel.component.ts
+++ b/ui/src/app/data-explorer/components/panel/data-explorer-dashboard-panel.component.ts
@@ -24,11 +24,10 @@ import { DataExplorerDashboardGridComponent } from '../grid/data-explorer-dashbo
 import { MatDrawer } from '@angular/material/sidenav';
 import { Tuple2 } from '../../../core-model/base/Tuple2';
 import {
-  Dashboard, DashboardItem, TimeSettings, DataExplorerWidgetModel,
-  DataLakeMeasure
+  Dashboard, TimeSettings, DataExplorerWidgetModel,
+  DataLakeMeasure, ClientDashboardItem, DataViewDataExplorerService
 } from '@streampipes/platform-services';
 import { DataExplorerDesignerPanelComponent } from '../designer-panel/data-explorer-designer-panel.component';
-import { DataViewDataExplorerService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/data-view-data-explorer.service';
 import { TimeSelectionService } from '../../services/time-selection.service';
 
 @Component({
@@ -89,7 +88,7 @@ export class DataExplorerDashboardPanelComponent implements OnInit {
 
   addWidgetToDashboard(widget: DataExplorerWidgetModel) {
     // tslint:disable-next-line:no-object-literal-type-assertion
-    const dashboardItem = {} as DashboardItem;
+    const dashboardItem = {} as ClientDashboardItem;
     dashboardItem.id = widget._id;
     dashboardItem.cols = 3;
     dashboardItem.rows = 4;