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

[incubator-streampipes] branch experimental-module-federation updated: Extract platform services to angular library

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

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


The following commit(s) were added to refs/heads/experimental-module-federation by this push:
     new 2647d6c  Extract platform services to angular library
2647d6c is described below

commit 2647d6cb3a0f8773db6202209adfc4ce2aadb9aa
Author: Dominik Riemer <do...@gmail.com>
AuthorDate: Tue Feb 1 12:46:11 2022 +0100

    Extract platform services to angular library
---
 ui/.gitignore                                      |   2 +-
 ui/angular.json                                    |  31 +++
 ui/package.json                                    |   3 +-
 .../streampipes/platform-services/README.md        |  24 +++
 .../streampipes/platform-services/karma.conf.js    |  44 ++++
 .../streampipes/platform-services/ng-package.json  |   7 +
 .../streampipes/platform-services/package.json     |  12 ++
 .../src/lib}/apis/commons.service.ts               |   4 +-
 .../lib}/apis/data-view-data-explorer.service.ts   |  10 +-
 .../src/lib}/apis/datalake-rest.service.ts         |   8 +-
 .../src/lib}/apis/files.service.ts                 |   6 +-
 .../src/lib}/apis/general-config.service.ts        |   4 +-
 .../src/lib}/apis/mail-config.service.ts           |   5 +-
 .../src/lib}/apis/measurement-units.service.ts     |   4 +-
 .../src/lib}/apis/permissions.service.ts           |  14 +-
 .../lib}/apis/pipeline-canvas-metadata.service.ts  |   6 +-
 .../lib}/apis/pipeline-element-endpoint.service.ts |   4 +-
 .../lib}/apis/pipeline-element-template.service.ts |   6 +-
 .../src/lib}/apis/pipeline-element.service.ts      |   6 +-
 .../src/lib}/apis/pipeline-monitoring.service.ts   |  16 +-
 .../src/lib}/apis/pipeline-template.service.ts     | 232 +++++++++++----------
 .../src/lib}/apis/pipeline.service.ts              |   6 +-
 .../src/lib}/apis/semantic-types.service.ts        |   4 +-
 .../src/lib}/apis/user-group.service.ts            |   6 +-
 .../src/lib}/apis/user.service.ts                  |   7 +-
 .../lib}/contants/platform-services.constants.ts   |   0
 .../src/lib/model}/datalake/DateRange.ts           |   6 +-
 .../src/lib}/model/email-config.model.ts           |   0
 .../src/lib/model}/gen/streampipes-model-client.ts |   0
 .../src/lib/model}/gen/streampipes-model.ts        |   0
 .../src/lib}/model/general-config.model.ts         |   0
 .../platform-services/src/lib/pipeline.service.ts} |  25 ++-
 .../src/lib/platform-services.module.ts            |  13 ++
 .../platform-services/src/public-api.ts            |  23 ++
 .../streampipes/platform-services/src/test.ts      |  28 +++
 .../platform-services/tsconfig.lib.json            |  20 ++
 .../platform-services/tsconfig.lib.prod.json       |  10 +
 .../platform-services/tsconfig.spec.json           |  17 ++
 ui/src/app/_models/auth.model.ts                   |   2 +-
 ui/src/app/add/add.component.ts                    |   2 +-
 .../endpoint-item/endpoint-item.component.ts       |   6 +-
 .../endpoint-installation.component.ts             |   2 +-
 ui/src/app/add/services/add.service.ts             |   4 +-
 .../components/view-asset/view-asset.component.ts  |   2 +-
 .../add-pipeline/add-pipeline-dialog.component.ts  |   2 +-
 .../app-asset-monitoring/services/rest.service.ts  |   2 +-
 .../app-image-labeling.component.ts                |   4 +-
 .../datalake-configuration.component.ts            |   6 +-
 .../delete-datalake-index-dialog.component.ts      |   2 +-
 .../email-configuration.component.ts               |   4 +-
 .../general-configuration.component.ts             |   8 +-
 .../abstract-security-principal-config.ts          |   4 +-
 .../edit-group-dialog.component.ts                 |   4 +-
 .../edit-user-dialog/edit-user-dialog.component.ts |   8 +-
 .../security-service-config.component.ts           |   2 +-
 .../security-user-config.component.ts              |   2 +-
 .../user-group-configuration.component.ts          |   4 +-
 .../configuration-group.component.ts               |   2 +-
 .../adapter-description.component.ts               |   2 +-
 .../data-marketplace/data-marketplace.component.ts |   2 +-
 .../existing-adapters.component.ts                 |   4 +-
 .../format-configuration.component.ts              |   2 +-
 .../format-item/format-item.component.ts           |   2 +-
 .../format-list/format-list.component.ts           |   2 +-
 .../generic-adapter-configuration.component.ts     |   2 +-
 .../new-adapter/new-adapter.component.ts           |   2 +-
 .../pipeline-element-runtime-info.component.ts     |   4 +-
 .../error-message/error-message.component.ts       |   2 +-
 .../event-property-row.component.ts                |   4 +-
 .../event-schema-preview.component.ts              |   4 +-
 .../event-schema/event-schema.component.ts         |   2 +-
 .../specific-adapter-configuration.component.ts    |   2 +-
 .../start-adapter-configuration.component.ts       |   2 +-
 ui/src/app/connect/connect.component.ts            |   2 +-
 .../adapter-export-dialog.component.ts             |   4 +-
 .../adapter-started-dialog.component.ts            |   4 +-
 .../delete-adapter-dialog.component.ts             |   2 +-
 .../edit-event-property.component.ts               |   4 +-
 ui/src/app/connect/filter/filter.pipe.ts           |   4 +-
 ui/src/app/connect/filter/timestamp.pipe.ts        |   4 +-
 ui/src/app/connect/services/connect.service.ts     |   2 +-
 .../connect/services/data-marketplace.service.ts   |   4 +-
 ui/src/app/connect/services/rest.service.ts        |   4 +-
 .../services/transformation-rule.service.spec.ts   |   2 +-
 .../services/transformation-rule.service.ts        |   2 +-
 .../datalake/datalake-rest.service.ts              |   2 +-
 .../semantic-type/semantic-type-utils.service.ts   |   2 +-
 .../template/PipelineInvocationBuilder.ts          |   2 +-
 .../image-annotations.component.ts                 |   2 +-
 .../image-labeling/image-labeling.component.ts     |   2 +-
 ui/src/app/core-ui/image/image.component.ts        |   2 +-
 .../image/services/BrushLabeling.service.ts        |   2 +-
 .../image/services/PolygonLabeling.service.ts      |   2 +-
 .../image/services/ReactLabeling.service.ts        |   2 +-
 .../configure-labels/configure-labels.component.ts |   2 +-
 .../label-list-item/label-list-item.component.ts   |   2 +-
 .../select-label/select-label.component.ts         |   2 +-
 .../app/core-ui/labels/services/label.service.ts   |   4 +-
 .../object-permission-dialog.component.ts          |   8 +-
 .../pipeline-started-status.component.ts           |   2 +-
 .../base/abstract-static-property.ts               |   2 +-
 .../base/abstract-validated-static-property.ts     |   4 +-
 .../filter/display-recommended.pipe.ts             |   2 +-
 .../static-alternatives.component.ts               |   2 +-
 .../static-any-input/static-any-input.component.ts |   2 +-
 .../static-code-input.component.ts                 |   2 +-
 .../add-to-collection.component.ts                 |   2 +-
 .../static-collection.component.ts                 |   4 +-
 .../static-color-picker.component.ts               |   4 +-
 .../static-file-input.component.ts                 |   4 +-
 .../static-free-input.component.ts                 |   4 +-
 .../static-group/static-group.component.ts         |   4 +-
 .../static-mapping-nary.component.ts               |   2 +-
 .../static-mapping-unary.component.ts              |   2 +-
 .../static-mapping/static-mapping.ts               |   2 +-
 .../static-one-of-input.component.ts               |   2 +-
 .../static-property-util.service.ts                |   4 +-
 .../static-properties/static-property.component.ts |   2 +-
 ...tatic-runtime-resolvable-any-input.component.ts |   2 +-
 .../base-runtime-resolvable-input.ts               |   2 +-
 .../base-runtime-resolvable-selection-input.ts     |   2 +-
 .../runtime-resolvable.service.ts                  |   4 +-
 ...tic-runtime-resolvable-oneof-input.component.ts |   2 +-
 .../static-tree-input.component.ts                 |   2 +-
 .../static-secret-input.component.ts               |   4 +-
 .../static-slide-toggle.component.ts               |   2 +-
 .../components/grid/dashboard-grid.component.ts    |   2 +-
 .../components/panel/dashboard-panel.component.ts  |   2 +-
 .../widget/dashboard-widget.component.ts           |   4 +-
 .../components/widgets/bar-race/bar-race-config.ts |   2 +-
 .../components/widgets/base/base-config.ts         |   4 +-
 .../widgets/base/base-ngx-line-config.ts           |   4 +-
 .../components/widgets/base/base-widget.ts         |   2 +-
 .../components/widgets/gauge/gauge-config.ts       |   4 +-
 .../components/widgets/html/html-config.ts         |   4 +-
 .../components/widgets/image/image-config.ts       |   4 +-
 .../dashboard/components/widgets/map/map-config.ts |   2 +-
 .../components/widgets/number/number-config.ts     |   4 +-
 .../widgets/number/number-widget.component.ts      |   4 +-
 .../dashboard/components/widgets/raw/raw-config.ts |   4 +-
 .../stacked-line-chart-config.ts                   |   2 +-
 .../components/widgets/status/status-config.ts     |   2 +-
 .../components/widgets/table/table-config.ts       |   4 +-
 .../widgets/trafficlight/traffic-light-config.ts   |   4 +-
 .../widgets/wordcloud/wordcloud-config.ts          |   2 +-
 .../wordcloud/wordcloud-widget.component.ts        |   2 +-
 .../add-visualization-dialog.component.ts          |   4 +-
 ui/src/app/dashboard/models/dashboard.model.ts     |  11 +-
 .../dashboard/registry/widget-config-builder.ts    |   2 +-
 ui/src/app/dashboard/registry/widget-registry.ts   |   2 +-
 .../dashboard/sdk/collected-schema-requirements.ts |   4 +-
 ui/src/app/dashboard/sdk/ep-requirements.ts        |   2 +-
 .../sdk/extractor/static-property-extractor.ts     |   4 +-
 .../dashboard/sdk/matching/list-property-match.ts  |   2 +-
 .../sdk/matching/mapping-property-generator.ts     |   4 +-
 .../sdk/matching/primitive-property-match.ts       |   4 +-
 .../app/dashboard/sdk/matching/property-match.ts   |   2 +-
 ui/src/app/dashboard/sdk/matching/schema-match.ts  |   4 +-
 .../dashboard/sdk/schema-requirements-builder.ts   |   4 +-
 ui/src/app/dashboard/services/dashboard.service.ts |   4 +-
 .../data-explorer-designer-panel.component.ts      |   2 +-
 ...data-explorer-widget-data-settings.component.ts |   8 +-
 .../field-selection-panel.component.ts             |   2 +-
 .../field-selection/field-selection.component.ts   |   2 +-
 .../group-selection-panel.component.ts             |   2 +-
 ...ta-explorer-visualisation-settings.component.ts |   2 +-
 .../grid/data-explorer-dashboard-grid.component.ts |   4 +-
 .../data-explorer-dashboard-overview.component.ts  |   2 +-
 .../data-explorer-dashboard-panel.component.ts     |   4 +-
 .../data-explorer-dashboard-widget.component.ts    |   6 +-
 .../base/base-data-explorer-widget.directive.ts    |   4 +-
 .../components/widgets/base/base-widget-config.ts  |   2 +-
 .../widgets/base/data-explorer-widget-data.ts      |   2 +-
 .../correlation-chart-widget.component.ts          |   2 +-
 .../model/correlation-chart-widget.model.ts        |   2 +-
 .../distribution-chart-widget.component.ts         |   2 +-
 .../model/distribution-chart-widget.model.ts       |   2 +-
 .../widgets/heatmap/heatmap-widget.component.ts    |   2 +-
 .../widgets/heatmap/model/heatmap-widget.model.ts  |   2 +-
 .../widgets/image/image-widget.component.ts        |   2 +-
 .../widgets/image/model/image-widget.model.ts      |   2 +-
 .../indicator/indicator-chart-widget.component.ts  |   2 +-
 .../model/indicator-chart-widget.model.ts          |   2 +-
 .../components/widgets/map/map-widget.component.ts |   2 +-
 .../widgets/map/model/map-widget.model.ts          |   2 +-
 .../widgets/table/model/table-widget.model.ts      |   2 +-
 .../widgets/table/table-widget.component.ts        |   2 +-
 .../time-series-chart-widget-config.component.ts   |   2 +-
 .../model/time-series-chart-widget.model.ts        |   2 +-
 .../time-series-chart-widget.component.ts          |   2 +-
 .../group-configuration.component.ts               |   2 +-
 .../app/data-explorer/data-explorer.component.ts   |   2 +-
 ui/src/app/data-explorer/data-explorer.module.ts   |   4 +-
 ...ata-explorer-edit-data-view-dialog.component.ts |   2 +-
 .../models/dataview-dashboard.model.ts             |   2 +-
 .../data-explorer-field-provider-service.ts        |   2 +-
 .../services/data-view-query-generator.service.ts  |   5 +-
 .../output-strategy/base/BaseOutputStrategy.ts     |   4 +-
 .../custom-output-strategy.component.ts            |   4 +-
 .../output-strategy/output-strategy.component.ts   |   4 +-
 .../property-selection.component.ts                |   4 +-
 .../user-defined-output.component.ts               |   4 +-
 .../pipeline-assembly.component.ts                 |   6 +-
 .../pipeline-element-documentation.component.ts    |   4 +-
 .../pipeline-element-options.component.ts          |   2 +-
 .../pipeline-element-recommendation.component.ts   |   4 +-
 .../pipeline-element-template-config.component.ts  |   2 +-
 .../pipeline-element-template-generator.ts         |   2 +-
 .../components/pipeline/pipeline.component.ts      |   4 +-
 .../compatible-elements.component.ts               |   2 +-
 .../editor/dialog/customize/customize.component.ts |   4 +-
 ui/src/app/editor/dialog/help/help.component.ts    |   6 +-
 .../matching-error/matching-error.component.ts     |   4 +-
 .../pipeline-element-discovery.component.ts        |   2 +-
 .../save-pipeline/save-pipeline.component.ts       |   6 +-
 .../dialog/welcome-tour/welcome-tour.component.ts  |   2 +-
 ui/src/app/editor/editor.component.ts              |   4 +-
 ui/src/app/editor/model/editor.model.ts            |   2 +-
 ui/src/app/editor/services/editor.service.ts       |   4 +-
 ui/src/app/editor/services/jsplumb.service.ts      |   2 +-
 .../app/editor/services/object-provider.service.ts |   2 +-
 .../pipeline-element-recommendation.service.ts     |   2 +-
 .../services/pipeline-positioning.service.ts       |   2 +-
 .../editor/services/pipeline-validation.service.ts |   2 +-
 ui/src/app/editor/utils/editor.utils.ts            |   4 +-
 .../file-overview/file-overview.component.ts       |   4 +-
 .../file-upload/file-upload-dialog.component.ts    |   2 +-
 ui/src/app/home/components/status.component.ts     |   4 +-
 .../login/services/account-activation.service.ts   |   2 +-
 ui/src/app/login/services/login.service.ts         |   2 +-
 .../app/login/services/restore-password.service.ts |   2 +-
 .../app/notifications/notifications.component.ts   |   4 +-
 .../notifications/service/notifications.service.ts |   2 +-
 .../actions/pipeline-actions.component.ts          |   2 +-
 .../components/edit/quickedit.component.ts         |   4 +-
 .../elements/pipeline-elements-row.component.ts    |   2 +-
 .../elements/pipeline-elements.component.ts        |   4 +-
 .../monitoring/pipeline-monitoring.component.ts    |   4 +-
 .../pipeline-element-statistics.component.ts       |   2 +-
 .../preview/pipeline-preview.component.ts          |   2 +-
 .../components/status/pipeline-status.component.ts |   6 +-
 .../pipeline-details/pipeline-details.component.ts |   4 +-
 .../category-already-in-pipeline.filter.ts         |   2 +-
 .../pipeline-overview.component.ts                 |   2 +-
 .../delete-pipeline-dialog.component.ts            |   4 +-
 .../import-pipeline-dialog.component.ts            |   4 +-
 .../pipeline-categories-dialog.component.ts        |   4 +-
 .../pipeline-notifications.component.ts            |   4 +-
 .../pipeline-status-dialog.component.ts            |   4 +-
 .../start-all-pipelines-dialog.component.ts        |   4 +-
 ui/src/app/pipelines/pipeline-category.filter.ts   |   2 +-
 ui/src/app/pipelines/pipelines.component.ts        |   4 +-
 .../services/pipeline-operations.service.ts        |   4 +-
 ui/src/app/platform-services/platform.module.ts    |  32 +--
 .../profile/components/basic-profile-settings.ts   |   2 +-
 .../token/token-management-settings.component.ts   |   2 +-
 ui/src/app/profile/profile.service.ts              |   6 +-
 ui/src/app/services/auth.service.ts                |   2 +-
 ui/src/app/services/jwt-token-storage.service.ts   |   2 +-
 ui/src/app/services/property-selector.service.ts   |   4 +-
 ui/src/app/services/rest-api.service.ts            |   2 +-
 ui/tsconfig.json                                   |   7 +-
 ui/webpack.partial.base.js                         |   1 +
 263 files changed, 795 insertions(+), 528 deletions(-)

diff --git a/ui/.gitignore b/ui/.gitignore
index fab5934..e210b1d 100644
--- a/ui/.gitignore
+++ b/ui/.gitignore
@@ -40,7 +40,7 @@ webpack.partial.dev.js
 
 # dependencies
 /node_modules
-
+projects/streampipes/platform-services/node_modules
 
 
 # IDEs and editors
diff --git a/ui/angular.json b/ui/angular.json
index e48df7b..40ad572 100644
--- a/ui/angular.json
+++ b/ui/angular.json
@@ -117,6 +117,37 @@
       "root": "e2e",
       "sourceRoot": "e2e",
       "projectType": "application"
+    },
+    "@streampipes/platform-services": {
+      "projectType": "library",
+      "root": "projects/streampipes/platform-services",
+      "sourceRoot": "projects/streampipes/platform-services/src",
+      "prefix": "lib",
+      "architect": {
+        "build": {
+          "builder": "@angular-devkit/build-angular:ng-packagr",
+          "options": {
+            "project": "projects/streampipes/platform-services/ng-package.json"
+          },
+          "configurations": {
+            "production": {
+              "tsConfig": "projects/streampipes/platform-services/tsconfig.lib.prod.json"
+            },
+            "development": {
+              "tsConfig": "projects/streampipes/platform-services/tsconfig.lib.json"
+            }
+          },
+          "defaultConfiguration": "production"
+        },
+        "test": {
+          "builder": "@angular-devkit/build-angular:karma",
+          "options": {
+            "main": "projects/streampipes/platform-services/src/test.ts",
+            "tsConfig": "projects/streampipes/platform-services/tsconfig.spec.json",
+            "karmaConfig": "projects/streampipes/platform-services/karma.conf.js"
+          }
+        }
+      }
     }
   },
   "defaultProject": "app"
diff --git a/ui/package.json b/ui/package.json
index b0696ee..49c06f9 100644
--- a/ui/package.json
+++ b/ui/package.json
@@ -37,6 +37,7 @@
     "@angular/router": "^12.2.9",
     "@asymmetrik/ngx-leaflet": "6.0.1",
     "@auth0/angular-jwt": "^5.0.2",
+    "@circlon/angular-tree-component": "11.0.4",
     "@ctrl/ngx-codemirror": "5.1.1",
     "@danielmoncada/angular-datetime-picker": "^13.1.1",
     "@fortawesome/fontawesome-free": "5.12.1",
@@ -48,7 +49,6 @@
     "angular-datatables": "^12.0.2",
     "angular-gridster2": "12.1.1",
     "angular-plotly.js": "^4.0.0",
-    "@circlon/angular-tree-component": "11.0.4",
     "angular2-uuid": "1.1.1",
     "codemirror": "^5.55.0",
     "dagre": "0.8.4",
@@ -112,6 +112,7 @@
     "karma-jasmine-html-reporter": "^1.5.0",
     "karma-verbose-reporter": "0.0.6",
     "mustache": "^2.3.0",
+    "ng-packagr": "^12.1.1",
     "path": "^0.12.7",
     "prettier": "1.14.2",
     "raw-loader": "^4.0.2",
diff --git a/ui/projects/streampipes/platform-services/README.md b/ui/projects/streampipes/platform-services/README.md
new file mode 100644
index 0000000..8225be9
--- /dev/null
+++ b/ui/projects/streampipes/platform-services/README.md
@@ -0,0 +1,24 @@
+# PlatformServices
+
+This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 12.2.0.
+
+## Code scaffolding
+
+Run `ng generate component component-name --project platform-services` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project platform-services`.
+> Note: Don't forget to add `--project platform-services` or else it will be added to the default project in your `angular.json` file. 
+
+## Build
+
+Run `ng build platform-services` to build the project. The build artifacts will be stored in the `dist/` directory.
+
+## Publishing
+
+After building your library with `ng build platform-services`, go to the dist folder `cd dist/platform-services` and run `npm publish`.
+
+## Running unit tests
+
+Run `ng test platform-services` to execute the unit tests via [Karma](https://karma-runner.github.io).
+
+## Further help
+
+To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
diff --git a/ui/projects/streampipes/platform-services/karma.conf.js b/ui/projects/streampipes/platform-services/karma.conf.js
new file mode 100644
index 0000000..acfcaa8
--- /dev/null
+++ b/ui/projects/streampipes/platform-services/karma.conf.js
@@ -0,0 +1,44 @@
+// Karma configuration file, see link for more information
+// https://karma-runner.github.io/1.0/config/configuration-file.html
+
+module.exports = function (config) {
+  config.set({
+    basePath: '',
+    frameworks: ['jasmine', '@angular-devkit/build-angular'],
+    plugins: [
+      require('karma-jasmine'),
+      require('karma-chrome-launcher'),
+      require('karma-jasmine-html-reporter'),
+      require('karma-coverage'),
+      require('@angular-devkit/build-angular/plugins/karma')
+    ],
+    client: {
+      jasmine: {
+        // you can add configuration options for Jasmine here
+        // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html
+        // for example, you can disable the random execution with `random: false`
+        // or set a specific seed with `seed: 4321`
+      },
+      clearContext: false // leave Jasmine Spec Runner output visible in browser
+    },
+    jasmineHtmlReporter: {
+      suppressAll: true // removes the duplicated traces
+    },
+    coverageReporter: {
+      dir: require('path').join(__dirname, '../../../coverage/streampipes/platform-services'),
+      subdir: '.',
+      reporters: [
+        { type: 'html' },
+        { type: 'text-summary' }
+      ]
+    },
+    reporters: ['progress', 'kjhtml'],
+    port: 9876,
+    colors: true,
+    logLevel: config.LOG_INFO,
+    autoWatch: true,
+    browsers: ['Chrome'],
+    singleRun: false,
+    restartOnFileChange: true
+  });
+};
diff --git a/ui/projects/streampipes/platform-services/ng-package.json b/ui/projects/streampipes/platform-services/ng-package.json
new file mode 100644
index 0000000..d05fbd6
--- /dev/null
+++ b/ui/projects/streampipes/platform-services/ng-package.json
@@ -0,0 +1,7 @@
+{
+  "$schema": "../../../node_modules/ng-packagr/ng-package.schema.json",
+  "dest": "../../../dist/streampipes/platform-services",
+  "lib": {
+    "entryFile": "src/public-api.ts"
+  }
+}
\ No newline at end of file
diff --git a/ui/projects/streampipes/platform-services/package.json b/ui/projects/streampipes/platform-services/package.json
new file mode 100644
index 0000000..12336b0
--- /dev/null
+++ b/ui/projects/streampipes/platform-services/package.json
@@ -0,0 +1,12 @@
+{
+  "name": "@streampipes/platform-services",
+  "version": "0.0.1",
+  "peerDependencies": {
+    "@angular/common": "^12.2.0",
+    "@angular/core": "^12.2.0",
+    "rxjs": "6.6.2"
+  },
+  "dependencies": {
+    "tslib": "^2.3.0"
+  }
+}
diff --git a/ui/src/app/platform-services/apis/commons.service.ts b/ui/projects/streampipes/platform-services/src/lib/apis/commons.service.ts
similarity index 96%
rename from ui/src/app/platform-services/apis/commons.service.ts
rename to ui/projects/streampipes/platform-services/src/lib/apis/commons.service.ts
index 7d3055d..23f1ed3 100644
--- a/ui/src/app/platform-services/apis/commons.service.ts
+++ b/ui/projects/streampipes/platform-services/src/lib/apis/commons.service.ts
@@ -18,7 +18,9 @@
 
 import { Injectable } from '@angular/core';
 
-@Injectable()
+@Injectable({
+  providedIn: 'root'
+})
 export class PlatformServicesCommons {
 
   constructor() { }
diff --git a/ui/src/app/platform-services/apis/data-view-data-explorer.service.ts b/ui/projects/streampipes/platform-services/src/lib/apis/data-view-data-explorer.service.ts
similarity index 91%
rename from ui/src/app/platform-services/apis/data-view-data-explorer.service.ts
rename to ui/projects/streampipes/platform-services/src/lib/apis/data-view-data-explorer.service.ts
index 0320f7d..abcca59 100644
--- a/ui/src/app/platform-services/apis/data-view-data-explorer.service.ts
+++ b/ui/projects/streampipes/platform-services/src/lib/apis/data-view-data-explorer.service.ts
@@ -19,14 +19,16 @@
 import { HttpClient } from '@angular/common/http';
 import { Observable } from 'rxjs';
 import { map } from 'rxjs/operators';
-import { SharedDatalakeRestService } from '../../core-services/shared/shared-dashboard.service';
-import { DataExplorerWidgetModel, DataLakeMeasure } from '../../core-model/gen/streampipes-model';
-import { Dashboard } from '../../dashboard/models/dashboard.model';
+import { SharedDatalakeRestService } from '../../../../../../src/app/core-services/shared/shared-dashboard.service';
+import { Dashboard } from '../../../../../../src/app/dashboard/models/dashboard.model';
 import { Injectable } from '@angular/core';
 import { DatalakeRestService } from './datalake-rest.service';
+import { DataExplorerWidgetModel, DataLakeMeasure } from '../model/gen/streampipes-model';
 
 
-@Injectable()
+@Injectable({
+  providedIn: 'root'
+})
 export class DataViewDataExplorerService {
 
   localDashboards: Dashboard[] = [];
diff --git a/ui/src/app/platform-services/apis/datalake-rest.service.ts b/ui/projects/streampipes/platform-services/src/lib/apis/datalake-rest.service.ts
similarity index 95%
rename from ui/src/app/platform-services/apis/datalake-rest.service.ts
rename to ui/projects/streampipes/platform-services/src/lib/apis/datalake-rest.service.ts
index f6d35cd..6c9d50a 100644
--- a/ui/src/app/platform-services/apis/datalake-rest.service.ts
+++ b/ui/projects/streampipes/platform-services/src/lib/apis/datalake-rest.service.ts
@@ -19,11 +19,13 @@
 import { Injectable } from '@angular/core';
 import { HttpClient, HttpRequest } from '@angular/common/http';
 import { Observable } from 'rxjs';
-import { DataLakeMeasure, PageResult, SpQueryResult } from '../../core-model/gen/streampipes-model';
+import { DataLakeMeasure, PageResult, SpQueryResult } from '../model/gen/streampipes-model';
 import { map } from 'rxjs/operators';
-import { DatalakeQueryParameters } from '../../core-services/datalake/DatalakeQueryParameters';
+import { DatalakeQueryParameters } from '../../../../../../src/app/core-services/datalake/DatalakeQueryParameters';
 
-@Injectable()
+@Injectable({
+  providedIn: 'root'
+})
 export class DatalakeRestService {
   constructor(private http: HttpClient) {
   }
diff --git a/ui/src/app/platform-services/apis/files.service.ts b/ui/projects/streampipes/platform-services/src/lib/apis/files.service.ts
similarity index 95%
rename from ui/src/app/platform-services/apis/files.service.ts
rename to ui/projects/streampipes/platform-services/src/lib/apis/files.service.ts
index 66b040f..aa459bd 100644
--- a/ui/src/app/platform-services/apis/files.service.ts
+++ b/ui/projects/streampipes/platform-services/src/lib/apis/files.service.ts
@@ -21,10 +21,12 @@ import { HttpClient, HttpEvent, HttpParams, HttpRequest } from '@angular/common/
 import { PlatformServicesCommons } from './commons.service';
 import { Observable } from 'rxjs';
 import { map } from 'rxjs/operators';
-import { FileMetadata } from '../../core-model/gen/streampipes-model';
+import { FileMetadata } from '../model/gen/streampipes-model';
 
 
-@Injectable()
+@Injectable({
+  providedIn: 'root'
+})
 export class FilesService {
 
   constructor(private http: HttpClient,
diff --git a/ui/src/app/platform-services/apis/general-config.service.ts b/ui/projects/streampipes/platform-services/src/lib/apis/general-config.service.ts
similarity index 97%
rename from ui/src/app/platform-services/apis/general-config.service.ts
rename to ui/projects/streampipes/platform-services/src/lib/apis/general-config.service.ts
index d169e95..6ea5b69 100644
--- a/ui/src/app/platform-services/apis/general-config.service.ts
+++ b/ui/projects/streampipes/platform-services/src/lib/apis/general-config.service.ts
@@ -23,7 +23,9 @@ import { Observable } from 'rxjs';
 import { PlatformServicesCommons } from './commons.service';
 import { GeneralConfigModel } from '../model/general-config.model';
 
-@Injectable()
+@Injectable({
+  providedIn: 'root'
+})
 export class GeneralConfigService {
 
   constructor(private http: HttpClient,
diff --git a/ui/src/app/platform-services/apis/mail-config.service.ts b/ui/projects/streampipes/platform-services/src/lib/apis/mail-config.service.ts
similarity index 95%
rename from ui/src/app/platform-services/apis/mail-config.service.ts
rename to ui/projects/streampipes/platform-services/src/lib/apis/mail-config.service.ts
index 3f1f97f..38068a4 100644
--- a/ui/src/app/platform-services/apis/mail-config.service.ts
+++ b/ui/projects/streampipes/platform-services/src/lib/apis/mail-config.service.ts
@@ -21,10 +21,11 @@ import { HttpClient } from '@angular/common/http';
 import { map } from 'rxjs/operators';
 import { Observable } from 'rxjs';
 import { PlatformServicesCommons } from './commons.service';
-import { Group } from '../../core-model/gen/streampipes-model-client';
 import { EmailConfig } from '../model/email-config.model';
 
-@Injectable()
+@Injectable({
+  providedIn: 'root'
+})
 export class MailConfigService {
 
   constructor(private http: HttpClient,
diff --git a/ui/src/app/platform-services/apis/measurement-units.service.ts b/ui/projects/streampipes/platform-services/src/lib/apis/measurement-units.service.ts
similarity index 97%
copy from ui/src/app/platform-services/apis/measurement-units.service.ts
copy to ui/projects/streampipes/platform-services/src/lib/apis/measurement-units.service.ts
index 47e4f00..e4a7938 100644
--- a/ui/src/app/platform-services/apis/measurement-units.service.ts
+++ b/ui/projects/streampipes/platform-services/src/lib/apis/measurement-units.service.ts
@@ -22,7 +22,9 @@ import { PlatformServicesCommons } from './commons.service';
 import { Observable } from 'rxjs';
 import { map } from 'rxjs/operators';
 
-@Injectable()
+@Injectable({
+  providedIn: 'root'
+})
 export class MeasurementUnitsService {
 
   constructor(private http: HttpClient,
diff --git a/ui/src/app/platform-services/apis/permissions.service.ts b/ui/projects/streampipes/platform-services/src/lib/apis/permissions.service.ts
similarity index 87%
rename from ui/src/app/platform-services/apis/permissions.service.ts
rename to ui/projects/streampipes/platform-services/src/lib/apis/permissions.service.ts
index 54bc458..836db96 100644
--- a/ui/src/app/platform-services/apis/permissions.service.ts
+++ b/ui/projects/streampipes/platform-services/src/lib/apis/permissions.service.ts
@@ -20,17 +20,13 @@ import { Injectable } from '@angular/core';
 import { HttpClient } from '@angular/common/http';
 import { PlatformServicesCommons } from './commons.service';
 import { Observable } from 'rxjs';
-import {
-  Message,
-  Pipeline,
-  PipelineCategory,
-  PipelineOperationStatus,
-  PipelineStatusMessage
-} from '../../core-model/gen/streampipes-model';
 import { map } from 'rxjs/operators';
-import { Permission } from '../../core-model/gen/streampipes-model-client';
+import { Permission } from '../model/gen/streampipes-model-client';
 
-@Injectable()
+
+@Injectable({
+  providedIn: 'root'
+})
 export class PermissionsService {
 
   constructor(private http: HttpClient,
diff --git a/ui/src/app/platform-services/apis/pipeline-canvas-metadata.service.ts b/ui/projects/streampipes/platform-services/src/lib/apis/pipeline-canvas-metadata.service.ts
similarity index 95%
rename from ui/src/app/platform-services/apis/pipeline-canvas-metadata.service.ts
rename to ui/projects/streampipes/platform-services/src/lib/apis/pipeline-canvas-metadata.service.ts
index 91dc597..d0f0ef4 100644
--- a/ui/src/app/platform-services/apis/pipeline-canvas-metadata.service.ts
+++ b/ui/projects/streampipes/platform-services/src/lib/apis/pipeline-canvas-metadata.service.ts
@@ -19,11 +19,13 @@
 import { Injectable } from '@angular/core';
 import { HttpClient } from '@angular/common/http';
 import { Observable } from 'rxjs';
-import { PipelineCanvasMetadata } from '../../core-model/gen/streampipes-model';
+import { PipelineCanvasMetadata } from '../model/gen/streampipes-model';
 import { PlatformServicesCommons } from './commons.service';
 import { map } from 'rxjs/operators';
 
-@Injectable()
+@Injectable({
+  providedIn: 'root'
+})
 export class PipelineCanvasMetadataService {
 
   constructor(private http: HttpClient,
diff --git a/ui/src/app/platform-services/apis/pipeline-element-endpoint.service.ts b/ui/projects/streampipes/platform-services/src/lib/apis/pipeline-element-endpoint.service.ts
similarity index 97%
rename from ui/src/app/platform-services/apis/pipeline-element-endpoint.service.ts
rename to ui/projects/streampipes/platform-services/src/lib/apis/pipeline-element-endpoint.service.ts
index d9cbabd..6549f46 100644
--- a/ui/src/app/platform-services/apis/pipeline-element-endpoint.service.ts
+++ b/ui/projects/streampipes/platform-services/src/lib/apis/pipeline-element-endpoint.service.ts
@@ -21,7 +21,9 @@ import { Observable } from 'rxjs';
  *
  */
 
-@Injectable()
+@Injectable({
+  providedIn: 'root'
+})
 export class PipelineElementEndpointService {
 
   constructor(private http: HttpClient,
diff --git a/ui/src/app/platform-services/apis/pipeline-element-template.service.ts b/ui/projects/streampipes/platform-services/src/lib/apis/pipeline-element-template.service.ts
similarity index 97%
rename from ui/src/app/platform-services/apis/pipeline-element-template.service.ts
rename to ui/projects/streampipes/platform-services/src/lib/apis/pipeline-element-template.service.ts
index 8acb8a2..4bfef5c 100644
--- a/ui/src/app/platform-services/apis/pipeline-element-template.service.ts
+++ b/ui/projects/streampipes/platform-services/src/lib/apis/pipeline-element-template.service.ts
@@ -23,11 +23,13 @@ import {
   DataProcessorInvocation,
   DataSinkInvocation,
   PipelineElementTemplate
-} from '../../core-model/gen/streampipes-model';
+} from '../model/gen/streampipes-model';
 import { PlatformServicesCommons } from './commons.service';
 import { map } from 'rxjs/operators';
 
-@Injectable()
+@Injectable({
+  providedIn: 'root'
+})
 export class PipelineElementTemplateService {
 
   constructor(private http: HttpClient,
diff --git a/ui/src/app/platform-services/apis/pipeline-element.service.ts b/ui/projects/streampipes/platform-services/src/lib/apis/pipeline-element.service.ts
similarity index 97%
rename from ui/src/app/platform-services/apis/pipeline-element.service.ts
rename to ui/projects/streampipes/platform-services/src/lib/apis/pipeline-element.service.ts
index d162e7c..c55b432 100644
--- a/ui/src/app/platform-services/apis/pipeline-element.service.ts
+++ b/ui/projects/streampipes/platform-services/src/lib/apis/pipeline-element.service.ts
@@ -24,11 +24,13 @@ import {
   DataSinkInvocation,
   SpDataSet,
   SpDataStream
-} from '../../core-model/gen/streampipes-model';
+} from '../model/gen/streampipes-model';
 import { PlatformServicesCommons } from './commons.service';
 import { map } from 'rxjs/operators';
 
-@Injectable()
+@Injectable({
+  providedIn: 'root'
+})
 export class PipelineElementService {
 
   constructor(private http: HttpClient,
diff --git a/ui/src/app/platform-services/apis/pipeline-monitoring.service.ts b/ui/projects/streampipes/platform-services/src/lib/apis/pipeline-monitoring.service.ts
similarity index 78%
rename from ui/src/app/platform-services/apis/pipeline-monitoring.service.ts
rename to ui/projects/streampipes/platform-services/src/lib/apis/pipeline-monitoring.service.ts
index b8913cb..2c3beee 100644
--- a/ui/src/app/platform-services/apis/pipeline-monitoring.service.ts
+++ b/ui/projects/streampipes/platform-services/src/lib/apis/pipeline-monitoring.service.ts
@@ -16,14 +16,16 @@
  *
  */
 
-import { Injectable } from "@angular/core";
-import { HttpClient } from "@angular/common/http";
-import { Observable } from "rxjs";
-import { PipelineMonitoringInfo } from "../../core-model/gen/streampipes-model";
-import { PlatformServicesCommons } from "./commons.service";
-import { map } from "rxjs/operators";
+import { Injectable } from '@angular/core';
+import { HttpClient } from '@angular/common/http';
+import { Observable } from 'rxjs';
+import { PipelineMonitoringInfo } from '../model/gen/streampipes-model';
+import { PlatformServicesCommons } from './commons.service';
+import { map } from 'rxjs/operators';
 
-@Injectable()
+@Injectable({
+  providedIn: 'root'
+})
 export class PipelineMonitoringService {
 
   constructor(private http: HttpClient,
diff --git a/ui/src/app/platform-services/apis/pipeline-template.service.ts b/ui/projects/streampipes/platform-services/src/lib/apis/pipeline-template.service.ts
similarity index 96%
rename from ui/src/app/platform-services/apis/pipeline-template.service.ts
rename to ui/projects/streampipes/platform-services/src/lib/apis/pipeline-template.service.ts
index 1f9536b..b128548 100644
--- a/ui/src/app/platform-services/apis/pipeline-template.service.ts
+++ b/ui/projects/streampipes/platform-services/src/lib/apis/pipeline-template.service.ts
@@ -1,115 +1,117 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-import { Injectable } from '@angular/core';
-import { HttpClient } from '@angular/common/http';
-import {
-  FreeTextStaticProperty,
-  PipelineOperationStatus,
-  PipelineTemplateInvocation,
-  StaticPropertyUnion
-} from '../../core-model/gen/streampipes-model';
-import { map } from 'rxjs/operators';
-import { Observable } from 'rxjs';
-
-@Injectable()
-export class PipelineTemplateService {
-
-  constructor(
-    private http: HttpClient
-  ) {
-  }
-
-  getServerUrl() {
-    return '/streampipes-backend';
-  }
-
-  // getDataSets(): Observable<DataSetDescription[]> {
-  //     return this.http
-  //         .get(this.getServerUrl() + '/api/v2/users/'+ this.authStatusService.email + '/pipeline-templates/streams')
-  //         .pipe(map(response => {
-  //
-  //
-  //
-  //             // TODO remove this
-  //             // quick fix to deserialize URIs
-  //             response['@graph'].forEach(function (object) {
-  //                if (object['sp:domainProperty'] != undefined) {
-  //                    // object['sp:domainProperty']['@type'] = "sp:URI";
-  //                    object['sp:domainProperty'] = object['sp:domainProperty']['@id'];
-  //                    delete object['sp:domainProperty']['@id'];
-  //                }
-  //             });
-  //
-  //             const res = this.tsonLdSerializerService.fromJsonLd(response, 'sp:DataStreamContainer');
-  //             return res.list;
-  //         }));
-  // }
-  //
-  // getOperators(dataSet: DataSetDescription): Observable<PipelineTemplateDescription[]> {
-  //     return this.http
-  //         .get(this.getServerUrl() + '/api/v2/users/'+ this.authStatusService.email + '/pipeline-templates?dataset=' + dataSet.id)
-  //         .pipe(map(response => {
-  //             const res = this.tsonLdSerializerService.fromJsonLd(response, 'sp:PipelineTemplateDescriptionContainer');
-  //             return res.list;
-  //         }));
-  // }
-
-  getPipelineTemplateInvocation(dataSetId: string, templateId: string): Observable<PipelineTemplateInvocation> {
-    return this.http
-      .get(`${this.getServerUrl()}/api/v2/pipeline-templates/invocation?streamId=${dataSetId}&templateId=${templateId}`)
-      .pipe(map(data => {
-        return PipelineTemplateInvocation.fromData(data as PipelineTemplateInvocation);
-      }));
-
-    // .pipe(map(response: PipelineTemplateInvocation => {
-
-    // Currently tsonld dows not support objects that just contain one root object without an enclosing @graph array
-    // const res = new PipelineTemplateInvocation(response['@id']);
-    // res.dataSetId = response['sp:hasDataSetId'];
-    // res.name = response['hasElementName'];
-    // res.pipelineTemplateId = response['sp:hasInternalName'];
-
-    // TODO find better solution
-    // This will remove preconfigured values from the UI
-    // res.list.forEach(property => {
-    //   if (this.isFreeTextStaticProperty(property)) {
-    //     if (this.asFreeTextStaticProperty(property).value !== undefined) {
-    //       this.asFreeTextStaticProperty(property).render = false;
-    //     }
-    //   }
-    // });
-    // return res;
-    // }));
-  }
-
-  isFreeTextStaticProperty(val) {
-    return val instanceof FreeTextStaticProperty;
-  }
-
-  asFreeTextStaticProperty(val: StaticPropertyUnion): FreeTextStaticProperty {
-    return val as FreeTextStaticProperty;
-  }
-
-  createPipelineTemplateInvocation(invocation: PipelineTemplateInvocation): Observable<PipelineOperationStatus> {
-    return this.http
-      .post(`${this.getServerUrl()}/api/v2/pipeline-templates`, invocation)
-      .pipe(map(result => PipelineOperationStatus.fromData(result as PipelineOperationStatus)));
-  }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+import { Injectable } from '@angular/core';
+import { HttpClient } from '@angular/common/http';
+import {
+  FreeTextStaticProperty,
+  PipelineOperationStatus,
+  PipelineTemplateInvocation,
+  StaticPropertyUnion
+} from '../model/gen/streampipes-model';
+import { map } from 'rxjs/operators';
+import { Observable } from 'rxjs';
+
+@Injectable({
+  providedIn: 'root'
+})
+export class PipelineTemplateService {
+
+  constructor(
+    private http: HttpClient
+  ) {
+  }
+
+  getServerUrl() {
+    return '/streampipes-backend';
+  }
+
+  // getDataSets(): Observable<DataSetDescription[]> {
+  //     return this.http
+  //         .get(this.getServerUrl() + '/api/v2/users/'+ this.authStatusService.email + '/pipeline-templates/streams')
+  //         .pipe(map(response => {
+  //
+  //
+  //
+  //             // TODO remove this
+  //             // quick fix to deserialize URIs
+  //             response['@graph'].forEach(function (object) {
+  //                if (object['sp:domainProperty'] != undefined) {
+  //                    // object['sp:domainProperty']['@type'] = "sp:URI";
+  //                    object['sp:domainProperty'] = object['sp:domainProperty']['@id'];
+  //                    delete object['sp:domainProperty']['@id'];
+  //                }
+  //             });
+  //
+  //             const res = this.tsonLdSerializerService.fromJsonLd(response, 'sp:DataStreamContainer');
+  //             return res.list;
+  //         }));
+  // }
+  //
+  // getOperators(dataSet: DataSetDescription): Observable<PipelineTemplateDescription[]> {
+  //     return this.http
+  //         .get(this.getServerUrl() + '/api/v2/users/'+ this.authStatusService.email + '/pipeline-templates?dataset=' + dataSet.id)
+  //         .pipe(map(response => {
+  //             const res = this.tsonLdSerializerService.fromJsonLd(response, 'sp:PipelineTemplateDescriptionContainer');
+  //             return res.list;
+  //         }));
+  // }
+
+  getPipelineTemplateInvocation(dataSetId: string, templateId: string): Observable<PipelineTemplateInvocation> {
+    return this.http
+      .get(`${this.getServerUrl()}/api/v2/pipeline-templates/invocation?streamId=${dataSetId}&templateId=${templateId}`)
+      .pipe(map(data => {
+        return PipelineTemplateInvocation.fromData(data as PipelineTemplateInvocation);
+      }));
+
+    // .pipe(map(response: PipelineTemplateInvocation => {
+
+    // Currently tsonld dows not support objects that just contain one root object without an enclosing @graph array
+    // const res = new PipelineTemplateInvocation(response['@id']);
+    // res.dataSetId = response['sp:hasDataSetId'];
+    // res.name = response['hasElementName'];
+    // res.pipelineTemplateId = response['sp:hasInternalName'];
+
+    // TODO find better solution
+    // This will remove preconfigured values from the UI
+    // res.list.forEach(property => {
+    //   if (this.isFreeTextStaticProperty(property)) {
+    //     if (this.asFreeTextStaticProperty(property).value !== undefined) {
+    //       this.asFreeTextStaticProperty(property).render = false;
+    //     }
+    //   }
+    // });
+    // return res;
+    // }));
+  }
+
+  isFreeTextStaticProperty(val) {
+    return val instanceof FreeTextStaticProperty;
+  }
+
+  asFreeTextStaticProperty(val: StaticPropertyUnion): FreeTextStaticProperty {
+    return val as FreeTextStaticProperty;
+  }
+
+  createPipelineTemplateInvocation(invocation: PipelineTemplateInvocation): Observable<PipelineOperationStatus> {
+    return this.http
+      .post(`${this.getServerUrl()}/api/v2/pipeline-templates`, invocation)
+      .pipe(map(result => PipelineOperationStatus.fromData(result as PipelineOperationStatus)));
+  }
+
+}
diff --git a/ui/src/app/platform-services/apis/pipeline.service.ts b/ui/projects/streampipes/platform-services/src/lib/apis/pipeline.service.ts
similarity index 98%
rename from ui/src/app/platform-services/apis/pipeline.service.ts
rename to ui/projects/streampipes/platform-services/src/lib/apis/pipeline.service.ts
index 7076b6f..c5279ad 100644
--- a/ui/src/app/platform-services/apis/pipeline.service.ts
+++ b/ui/projects/streampipes/platform-services/src/lib/apis/pipeline.service.ts
@@ -26,10 +26,12 @@ import {
   PipelineCategory,
   PipelineOperationStatus,
   PipelineStatusMessage
-} from '../../core-model/gen/streampipes-model';
+} from '../model/gen/streampipes-model';
 import { map } from 'rxjs/operators';
 
-@Injectable()
+@Injectable({
+  providedIn: 'root'
+})
 export class PipelineService {
 
   constructor(private http: HttpClient,
diff --git a/ui/src/app/platform-services/apis/semantic-types.service.ts b/ui/projects/streampipes/platform-services/src/lib/apis/semantic-types.service.ts
similarity index 97%
rename from ui/src/app/platform-services/apis/semantic-types.service.ts
rename to ui/projects/streampipes/platform-services/src/lib/apis/semantic-types.service.ts
index 42071c8..1158c51 100644
--- a/ui/src/app/platform-services/apis/semantic-types.service.ts
+++ b/ui/projects/streampipes/platform-services/src/lib/apis/semantic-types.service.ts
@@ -22,7 +22,9 @@ import { PlatformServicesCommons } from './commons.service';
 import { map } from 'rxjs/operators';
 import { Observable } from 'rxjs';
 
-@Injectable()
+@Injectable({
+  providedIn: 'root'
+})
 export class SemanticTypesService {
 
   constructor(private http: HttpClient,
diff --git a/ui/src/app/platform-services/apis/user-group.service.ts b/ui/projects/streampipes/platform-services/src/lib/apis/user-group.service.ts
similarity index 95%
rename from ui/src/app/platform-services/apis/user-group.service.ts
rename to ui/projects/streampipes/platform-services/src/lib/apis/user-group.service.ts
index d39f788..8c4e226 100644
--- a/ui/src/app/platform-services/apis/user-group.service.ts
+++ b/ui/projects/streampipes/platform-services/src/lib/apis/user-group.service.ts
@@ -21,9 +21,11 @@ import { HttpClient } from '@angular/common/http';
 import { map } from 'rxjs/operators';
 import { Observable } from 'rxjs';
 import { PlatformServicesCommons } from './commons.service';
-import { Group } from '../../core-model/gen/streampipes-model-client';
+import { Group } from '../model/gen/streampipes-model-client';
 
-@Injectable()
+@Injectable({
+  providedIn: 'root'
+})
 export class UserGroupService {
 
   constructor(private http: HttpClient,
diff --git a/ui/src/app/platform-services/apis/user.service.ts b/ui/projects/streampipes/platform-services/src/lib/apis/user.service.ts
similarity index 97%
rename from ui/src/app/platform-services/apis/user.service.ts
rename to ui/projects/streampipes/platform-services/src/lib/apis/user.service.ts
index 1eabf19..10efb23 100644
--- a/ui/src/app/platform-services/apis/user.service.ts
+++ b/ui/projects/streampipes/platform-services/src/lib/apis/user.service.ts
@@ -22,12 +22,13 @@ import { map } from 'rxjs/operators';
 import { Observable } from 'rxjs';
 import { PlatformServicesCommons } from './commons.service';
 import {
-  Principal,
   ServiceAccount,
   UserAccount
-} from '../../core-model/gen/streampipes-model-client';
+} from '../model/gen/streampipes-model-client';
 
-@Injectable()
+@Injectable({
+  providedIn: 'root'
+})
 export class UserService {
 
   constructor(private http: HttpClient,
diff --git a/ui/src/app/platform-services/contants/platform-services.constants.ts b/ui/projects/streampipes/platform-services/src/lib/contants/platform-services.constants.ts
similarity index 100%
rename from ui/src/app/platform-services/contants/platform-services.constants.ts
rename to ui/projects/streampipes/platform-services/src/lib/contants/platform-services.constants.ts
diff --git a/ui/src/app/core-model/datalake/DateRange.ts b/ui/projects/streampipes/platform-services/src/lib/model/datalake/DateRange.ts
similarity index 90%
rename from ui/src/app/core-model/datalake/DateRange.ts
rename to ui/projects/streampipes/platform-services/src/lib/model/datalake/DateRange.ts
index 0edbb97..0914d01 100644
--- a/ui/src/app/core-model/datalake/DateRange.ts
+++ b/ui/projects/streampipes/platform-services/src/lib/model/datalake/DateRange.ts
@@ -17,7 +17,11 @@
  */
 
 
-import {TimeSettings} from "../../dashboard/models/dashboard.model";
+export interface TimeSettings {
+    startTime: number;
+    endTime: number;
+    dynamicSelection: 15 | 60 | 1440 | 10080 | 43800 | 525600 | -1;
+}
 
 export class DateRange {
 
diff --git a/ui/src/app/platform-services/model/email-config.model.ts b/ui/projects/streampipes/platform-services/src/lib/model/email-config.model.ts
similarity index 100%
rename from ui/src/app/platform-services/model/email-config.model.ts
rename to ui/projects/streampipes/platform-services/src/lib/model/email-config.model.ts
diff --git a/ui/src/app/core-model/gen/streampipes-model-client.ts b/ui/projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client.ts
similarity index 100%
rename from ui/src/app/core-model/gen/streampipes-model-client.ts
rename to ui/projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client.ts
diff --git a/ui/src/app/core-model/gen/streampipes-model.ts b/ui/projects/streampipes/platform-services/src/lib/model/gen/streampipes-model.ts
similarity index 100%
rename from ui/src/app/core-model/gen/streampipes-model.ts
rename to ui/projects/streampipes/platform-services/src/lib/model/gen/streampipes-model.ts
diff --git a/ui/src/app/platform-services/model/general-config.model.ts b/ui/projects/streampipes/platform-services/src/lib/model/general-config.model.ts
similarity index 100%
rename from ui/src/app/platform-services/model/general-config.model.ts
rename to ui/projects/streampipes/platform-services/src/lib/model/general-config.model.ts
diff --git a/ui/src/app/platform-services/apis/measurement-units.service.ts b/ui/projects/streampipes/platform-services/src/lib/pipeline.service.ts
similarity index 69%
rename from ui/src/app/platform-services/apis/measurement-units.service.ts
rename to ui/projects/streampipes/platform-services/src/lib/pipeline.service.ts
index 47e4f00..058cbb9 100644
--- a/ui/src/app/platform-services/apis/measurement-units.service.ts
+++ b/ui/projects/streampipes/platform-services/src/lib/pipeline.service.ts
@@ -18,19 +18,24 @@
 
 import { Injectable } from '@angular/core';
 import { HttpClient } from '@angular/common/http';
-import { PlatformServicesCommons } from './commons.service';
-import { Observable } from 'rxjs';
 import { map } from 'rxjs/operators';
+import { Observable } from 'rxjs';
 
-@Injectable()
-export class MeasurementUnitsService {
+@Injectable({
+  providedIn: 'root'
+})
+export class PipelineService {
 
-  constructor(private http: HttpClient,
-              private platformServicesCommons: PlatformServicesCommons) { }
+  constructor(private http: HttpClient) { }
 
-  getAllMeasurementUnits(): Observable<any> {
-    return this.http.get(this.platformServicesCommons.apiBasePath + '/measurement-units').pipe(map(response => {
-      return response;
-    }));
+  getPipelineCategories(): Observable<any[]> {
+    return this.http.get(`/streampipes-backend/api/v2/pipelinecategories`)
+        .pipe(map(response => {
+          console.log(response);
+          return (response as any[]);
+        }));
   }
+
+
+
 }
diff --git a/ui/projects/streampipes/platform-services/src/lib/platform-services.module.ts b/ui/projects/streampipes/platform-services/src/lib/platform-services.module.ts
new file mode 100644
index 0000000..56a91b8
--- /dev/null
+++ b/ui/projects/streampipes/platform-services/src/lib/platform-services.module.ts
@@ -0,0 +1,13 @@
+import { NgModule } from '@angular/core';
+
+
+@NgModule({
+  declarations: [
+  ],
+  imports: [
+  ],
+  exports: [
+
+  ]
+})
+export class PlatformServicesModule { }
diff --git a/ui/projects/streampipes/platform-services/src/public-api.ts b/ui/projects/streampipes/platform-services/src/public-api.ts
new file mode 100644
index 0000000..eac8597
--- /dev/null
+++ b/ui/projects/streampipes/platform-services/src/public-api.ts
@@ -0,0 +1,23 @@
+/*
+ * Public API Surface of platform-services
+ */
+
+export * from './lib/platform-services.module';
+export * from './lib/apis/commons.service';
+//export * from './lib/apis/data-view-data-explorer.service';
+//export * from './lib/apis/datalake-rest.service';
+export * from './lib/apis/files.service';
+export * from './lib/apis/general-config.service';
+export * from './lib/apis/mail-config.service';
+export * from './lib/apis/measurement-units.service';
+export * from './lib/apis/permissions.service';
+export * from './lib/apis/pipeline.service';
+export * from './lib/apis/pipeline-canvas-metadata.service';
+export * from './lib/apis/pipeline-element.service';
+export * from './lib/apis/pipeline-element-endpoint.service';
+export * from './lib/apis/pipeline-element-template.service';
+export * from './lib/apis/pipeline-monitoring.service';
+export * from './lib/apis/pipeline-template.service';
+export * from './lib/apis/semantic-types.service';
+export * from './lib/apis/user.service';
+export * from './lib/apis/user-group.service';
diff --git a/ui/projects/streampipes/platform-services/src/test.ts b/ui/projects/streampipes/platform-services/src/test.ts
new file mode 100644
index 0000000..b84c0c2
--- /dev/null
+++ b/ui/projects/streampipes/platform-services/src/test.ts
@@ -0,0 +1,28 @@
+// This file is required by karma.conf.js and loads recursively all the .spec and framework files
+
+import 'zone.js';
+import 'zone.js/testing';
+import { getTestBed } from '@angular/core/testing';
+import {
+  BrowserDynamicTestingModule,
+  platformBrowserDynamicTesting
+} from '@angular/platform-browser-dynamic/testing';
+
+declare const require: {
+  context(path: string, deep?: boolean, filter?: RegExp): {
+    keys(): string[];
+    <T>(id: string): T;
+  };
+};
+
+// First, initialize the Angular testing environment.
+getTestBed().initTestEnvironment(
+  BrowserDynamicTestingModule,
+  platformBrowserDynamicTesting(),
+  { teardown: { destroyAfterEach: true }},
+);
+
+// Then we find all the tests.
+const context = require.context('./', true, /\.spec\.ts$/);
+// And load the modules.
+context.keys().map(context);
diff --git a/ui/projects/streampipes/platform-services/tsconfig.lib.json b/ui/projects/streampipes/platform-services/tsconfig.lib.json
new file mode 100644
index 0000000..a7141c5
--- /dev/null
+++ b/ui/projects/streampipes/platform-services/tsconfig.lib.json
@@ -0,0 +1,20 @@
+/* To learn more about this file see: https://angular.io/config/tsconfig. */
+{
+  "extends": "../../../tsconfig.json",
+  "compilerOptions": {
+    "outDir": "../../../out-tsc/lib",
+    "target": "es2015",
+    "declaration": true,
+    "declarationMap": true,
+    "inlineSources": true,
+    "types": [],
+    "lib": [
+      "dom",
+      "es2018"
+    ]
+  },
+  "exclude": [
+    "src/test.ts",
+    "**/*.spec.ts"
+  ]
+}
diff --git a/ui/projects/streampipes/platform-services/tsconfig.lib.prod.json b/ui/projects/streampipes/platform-services/tsconfig.lib.prod.json
new file mode 100644
index 0000000..06de549
--- /dev/null
+++ b/ui/projects/streampipes/platform-services/tsconfig.lib.prod.json
@@ -0,0 +1,10 @@
+/* To learn more about this file see: https://angular.io/config/tsconfig. */
+{
+  "extends": "./tsconfig.lib.json",
+  "compilerOptions": {
+    "declarationMap": false
+  },
+  "angularCompilerOptions": {
+    "compilationMode": "partial"
+  }
+}
diff --git a/ui/projects/streampipes/platform-services/tsconfig.spec.json b/ui/projects/streampipes/platform-services/tsconfig.spec.json
new file mode 100644
index 0000000..85392ee
--- /dev/null
+++ b/ui/projects/streampipes/platform-services/tsconfig.spec.json
@@ -0,0 +1,17 @@
+/* To learn more about this file see: https://angular.io/config/tsconfig. */
+{
+  "extends": "../../../tsconfig.json",
+  "compilerOptions": {
+    "outDir": "../../../out-tsc/spec",
+    "types": [
+      "jasmine"
+    ]
+  },
+  "files": [
+    "src/test.ts"
+  ],
+  "include": [
+    "**/*.spec.ts",
+    "**/*.d.ts"
+  ]
+}
diff --git a/ui/src/app/_models/auth.model.ts b/ui/src/app/_models/auth.model.ts
index 3ff3c31..207ca70 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 '../core-model/gen/streampipes-model-client';
+import { Privilege, Role } from '../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client';
 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 16e6b96..be0beec 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 '../core-model/gen/streampipes-model-client';
+import { ExtensionsServiceEndpointItem } from '../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client';
 
 @Component({
     selector: 'add',
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 be47b74..6057d78 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,12 @@
 
 import { Component, EventEmitter, Input, OnInit, Output, Sanitizer } from '@angular/core';
 import { MatSnackBar } from '@angular/material/snack-bar';
-import { PipelineElementEndpointService } from '../../../platform-services/apis/pipeline-element-endpoint.service';
+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 '../../../core-model/gen/streampipes-model-client';
+import { ExtensionsServiceEndpointItem } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client';
 import { AppConstants } from '../../../services/app.constants';
-import { Pipeline } from '../../../core-model/gen/streampipes-model';
+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/endpoint-installation/endpoint-installation.component.ts b/ui/src/app/add/dialogs/endpoint-installation/endpoint-installation.component.ts
index 772c57e..81730e0 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 '../../../platform-services/apis/pipeline-element-endpoint.service';
+import { PipelineElementEndpointService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/pipeline-element-endpoint.service';
 
 @Component({
   selector: 'endpoint-installation-dialog',
diff --git a/ui/src/app/add/services/add.service.ts b/ui/src/app/add/services/add.service.ts
index 0b6b1bd..f976bad 100644
--- a/ui/src/app/add/services/add.service.ts
+++ b/ui/src/app/add/services/add.service.ts
@@ -18,10 +18,10 @@
 
 import { Injectable } from '@angular/core';
 import { HttpClient } from '@angular/common/http';
-import { PlatformServicesCommons } from '../../platform-services/apis/commons.service';
+import { PlatformServicesCommons } from '../../../../projects/streampipes/platform-services/src/lib/apis/commons.service';
 import { Observable } from 'rxjs';
 import { map } from 'rxjs/operators';
-import { ExtensionsServiceEndpointItem } from '../../core-model/gen/streampipes-model-client';
+import { ExtensionsServiceEndpointItem } from '../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client';
 
 @Injectable()
 export class AddService {
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 2d03150..d485fe0 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
@@ -27,7 +27,7 @@ import {
     DashboardWidgetModel,
     Pipeline,
     VisualizablePipeline
-} from "../../../core-model/gen/streampipes-model";
+} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {DashboardItem} from "../../../dashboard/models/dashboard.model";
 
 interface Window {
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 210e3a1..7fb7f1b 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 '../../../core-model/gen/streampipes-model';
+import { VisualizablePipeline } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @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 e9aa9f4..eabcc9f 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 '../../platform-services/apis/commons.service';
+import { PlatformServicesCommons } from '../../../../projects/streampipes/platform-services/src/lib/apis/commons.service';
 
 @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 4fbb53c..ae57b57 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,8 @@
 
 import { Component, EventEmitter, OnInit, Output } from '@angular/core';
 import { DatalakeRestService } from '../core-services/datalake/datalake-rest.service';
-import { DataLakeMeasure, EventPropertyUnion, EventSchema, SpQueryResult } from '../core-model/gen/streampipes-model';
-import { DateRange } from '../core-model/datalake/DateRange';
+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';
 
 @Component({
   selector: 'app-image-labeling',
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 3036604..b8adeb2 100644
--- a/ui/src/app/configuration/datalake-configuration/datalake-configuration.component.ts
+++ b/ui/src/app/configuration/datalake-configuration/datalake-configuration.component.ts
@@ -17,9 +17,9 @@
  */
 
 import { Component, OnInit, ViewChild } from '@angular/core';
-import { DatalakeRestService } from '../../platform-services/apis/datalake-rest.service';
+import { DatalakeRestService } from '../../../../projects/streampipes/platform-services/src/lib/apis/datalake-rest.service';
 import { MatTableDataSource } from '@angular/material/table';
-import { DataViewDataExplorerService } from '../../platform-services/apis/data-view-data-explorer.service';
+import { DataViewDataExplorerService } from '../../../../projects/streampipes/platform-services/src/lib/apis/data-view-data-explorer.service';
 import { DataLakeConfigurationEntry } from './datalake-configuration-entry';
 import { DatalakeQueryParameters } from '../../core-services/datalake/DatalakeQueryParameters';
 import { DatalakeQueryParameterBuilder } from '../../core-services/datalake/DatalakeQueryParameterBuilder';
@@ -30,7 +30,7 @@ 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 '../../core-model/gen/streampipes-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/dialog/delete-datalake-index/delete-datalake-index-dialog.component.ts b/ui/src/app/configuration/dialog/delete-datalake-index/delete-datalake-index-dialog.component.ts
index 123bacc..e9dc426 100644
--- a/ui/src/app/configuration/dialog/delete-datalake-index/delete-datalake-index-dialog.component.ts
+++ b/ui/src/app/configuration/dialog/delete-datalake-index/delete-datalake-index-dialog.component.ts
@@ -18,7 +18,7 @@
 
 import { Component, Input } from '@angular/core';
 import { DialogRef } from '../../../core-ui/dialog/base-dialog/dialog-ref';
-import { DatalakeRestService } from '../../../platform-services/apis/datalake-rest.service';
+import { DatalakeRestService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/datalake-rest.service';
 
 @Component({
   selector: 'sp-delete-datalake-index-dialog',
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 22e1ae1..ee9be0d 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,8 @@
 
 import { Component, OnInit } from '@angular/core';
 import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
-import { EmailConfig } from '../../platform-services/model/email-config.model';
-import { MailConfigService } from '../../platform-services/apis/mail-config.service';
+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';
 
 @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 0400c6b..8d181ca 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,11 @@
 
 import { Component, OnInit } from '@angular/core';
 import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
-import { GeneralConfigService } from '../../platform-services/apis/general-config.service';
-import { GeneralConfigModel } from '../../platform-services/model/general-config.model';
-import { MailConfigService } from '../../platform-services/apis/mail-config.service';
+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 { zip } from 'rxjs';
-import { EmailConfig } from '../../platform-services/model/email-config.model';
+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/security-configuration/abstract-security-principal-config.ts b/ui/src/app/configuration/security-configuration/abstract-security-principal-config.ts
index 9d179d2..371049f 100644
--- a/ui/src/app/configuration/security-configuration/abstract-security-principal-config.ts
+++ b/ui/src/app/configuration/security-configuration/abstract-security-principal-config.ts
@@ -20,9 +20,9 @@ import { Directive, OnInit, ViewChild } from '@angular/core';
 import { MatPaginator } from '@angular/material/paginator';
 import { MatSort } from '@angular/material/sort';
 import { MatTableDataSource } from '@angular/material/table';
-import { UserService } from '../../platform-services/apis/user.service';
+import { UserService } from '../../../../projects/streampipes/platform-services/src/lib/apis/user.service';
 import { Observable } from 'rxjs';
-import { ServiceAccount, UserAccount } from '../../core-model/gen/streampipes-model-client';
+import { ServiceAccount, UserAccount } from '../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client';
 import { PanelType } from '../../core-ui/dialog/base-dialog/base-dialog.model';
 import { DialogService } from '../../core-ui/dialog/base-dialog/base-dialog.service';
 import { EditUserDialogComponent } from './edit-user-dialog/edit-user-dialog.component';
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 745081c..fc62a87 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,11 @@
  */
 
 import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';
-import { Group, Role } from '../../../core-model/gen/streampipes-model-client';
+import { Group, Role } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client';
 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 '../../../platform-services/apis/user-group.service';
+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 e303757..211958c 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
@@ -23,7 +23,7 @@ import {
   Role,
   ServiceAccount,
   UserAccount
-} from '../../../core-model/gen/streampipes-model-client';
+} from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client';
 import {
   AbstractControl,
   FormBuilder,
@@ -35,13 +35,13 @@ import {
 } from '@angular/forms';
 import { UserRole } from '../../../_enums/user-role.enum';
 import { MatCheckboxChange } from '@angular/material/checkbox';
-import { UserService } from '../../../platform-services/apis/user.service';
-import { UserGroupService } from '../../../platform-services/apis/user-group.service';
+import { UserService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/user.service';
+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 "../../../platform-services/apis/mail-config.service";
+import {MailConfigService} from "../../../../../projects/streampipes/platform-services/src/lib/apis/mail-config.service";
 
 @Component({
   selector: 'sp-edit-user-dialog',
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 e6eff68..7482802 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 '../../../core-model/gen/streampipes-model-client';
+import { ServiceAccount } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client';
 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 91b5e12..cc980ed 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 '../../../core-model/gen/streampipes-model-client';
+import { UserAccount } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client';
 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 630e48b..fd02815 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,11 @@
  */
 
 import { Component, OnInit, ViewChild } from '@angular/core';
-import { Group } from '../../../core-model/gen/streampipes-model-client';
+import { Group } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client';
 import { MatPaginator } from '@angular/material/paginator';
 import { MatSort } from '@angular/material/sort';
 import { MatTableDataSource } from '@angular/material/table';
-import { UserGroupService } from '../../../platform-services/apis/user-group.service';
+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/connect/components/configuration-group/configuration-group.component.ts b/ui/src/app/connect/components/configuration-group/configuration-group.component.ts
index ca39c5d..1aefc6c 100644
--- a/ui/src/app/connect/components/configuration-group/configuration-group.component.ts
+++ b/ui/src/app/connect/components/configuration-group/configuration-group.component.ts
@@ -18,7 +18,7 @@
 
 import { Component, Input, OnInit } from '@angular/core';
 import { FormGroup } from '@angular/forms';
-import { StaticPropertyUnion } from '../../../core-model/gen/streampipes-model';
+import { StaticPropertyUnion } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { ConfigurationInfo } from '../../model/ConfigurationInfo';
 
 @Component({
diff --git a/ui/src/app/connect/components/data-marketplace/adapter-description/adapter-description.component.ts b/ui/src/app/connect/components/data-marketplace/adapter-description/adapter-description.component.ts
index d82c1e9..d290dca 100644
--- a/ui/src/app/connect/components/data-marketplace/adapter-description/adapter-description.component.ts
+++ b/ui/src/app/connect/components/data-marketplace/adapter-description/adapter-description.component.ts
@@ -21,7 +21,7 @@ import { ConnectService } from '../../../services/connect.service';
 import { DataMarketplaceService } from '../../../services/data-marketplace.service';
 import { AdapterExportDialog } from '../../../dialog/adapter-export/adapter-export-dialog.component';
 import { MatDialog } from '@angular/material/dialog';
-import { AdapterDescription } from '../../../../core-model/gen/streampipes-model';
+import { AdapterDescription } 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';
 
diff --git a/ui/src/app/connect/components/data-marketplace/data-marketplace.component.ts b/ui/src/app/connect/components/data-marketplace/data-marketplace.component.ts
index a88fdf4..40d0726 100644
--- a/ui/src/app/connect/components/data-marketplace/data-marketplace.component.ts
+++ b/ui/src/app/connect/components/data-marketplace/data-marketplace.component.ts
@@ -21,7 +21,7 @@ import { DataMarketplaceService } from '../../services/data-marketplace.service'
 import { ShepherdService } from '../../../services/tour/shepherd.service';
 import { ConnectService } from '../../services/connect.service';
 import { FilterPipe } from '../../filter/filter.pipe';
-import { AdapterDescriptionUnion } from '../../../core-model/gen/streampipes-model';
+import { AdapterDescriptionUnion } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { DialogService } from '../../../core-ui/dialog/base-dialog/base-dialog.service';
 
 @Component({
diff --git a/ui/src/app/connect/components/data-marketplace/existing-adapters/existing-adapters.component.ts b/ui/src/app/connect/components/data-marketplace/existing-adapters/existing-adapters.component.ts
index b6edac2..baa5274 100644
--- a/ui/src/app/connect/components/data-marketplace/existing-adapters/existing-adapters.component.ts
+++ b/ui/src/app/connect/components/data-marketplace/existing-adapters/existing-adapters.component.ts
@@ -17,7 +17,7 @@
  */
 
 import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
-import { AdapterDescriptionUnion } from '../../../../core-model/gen/streampipes-model';
+import { AdapterDescriptionUnion } from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { MatTableDataSource } from '@angular/material/table';
 import { ConnectService } from '../../../services/connect.service';
 import { DataMarketplaceService } from '../../../services/data-marketplace.service';
@@ -30,7 +30,7 @@ import { MatSort } from '@angular/material/sort';
 import { ObjectPermissionDialogComponent } from '../../../../core-ui/object-permission-dialog/object-permission-dialog.component';
 import { UserRole } from '../../../../_enums/user-role.enum';
 import { AuthService } from '../../../../services/auth.service';
-import {PipelineElementService} from "../../../../platform-services/apis/pipeline-element.service";
+import {PipelineElementService} from "../../../../../../projects/streampipes/platform-services/src/lib/apis/pipeline-element.service";
 import {HelpComponent} from "../../../../editor/dialog/help/help.component";
 
 @Component({
diff --git a/ui/src/app/connect/components/format-configuration/format-configuration.component.ts b/ui/src/app/connect/components/format-configuration/format-configuration.component.ts
index a15ee95..9decb30 100644
--- a/ui/src/app/connect/components/format-configuration/format-configuration.component.ts
+++ b/ui/src/app/connect/components/format-configuration/format-configuration.component.ts
@@ -22,7 +22,7 @@ import {
   FormatDescription,
   GenericAdapterSetDescription,
   GenericAdapterStreamDescription
-} from '../../../core-model/gen/streampipes-model';
+} from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { FormBuilder, FormGroup } from '@angular/forms';
 import { RestService } from '../../services/rest.service';
 import { MatStepper } from '@angular/material/stepper';
diff --git a/ui/src/app/connect/components/format-item/format-item.component.ts b/ui/src/app/connect/components/format-item/format-item.component.ts
index 3d4cbf0..ff21ab2 100644
--- a/ui/src/app/connect/components/format-item/format-item.component.ts
+++ b/ui/src/app/connect/components/format-item/format-item.component.ts
@@ -18,7 +18,7 @@
 
 import { Component, EventEmitter, Input, Output } from '@angular/core';
 import { ShepherdService } from '../../../services/tour/shepherd.service';
-import { FormatDescription } from '../../../core-model/gen/streampipes-model';
+import { FormatDescription } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @Component({
   selector: 'sp-format-item',
diff --git a/ui/src/app/connect/components/format-list/format-list.component.ts b/ui/src/app/connect/components/format-list/format-list.component.ts
index ea75497..9c34b59 100644
--- a/ui/src/app/connect/components/format-list/format-list.component.ts
+++ b/ui/src/app/connect/components/format-list/format-list.component.ts
@@ -17,7 +17,7 @@
  */
 
 import { Component, EventEmitter, Input, Output } from '@angular/core';
-import { FormatDescription } from '../../../core-model/gen/streampipes-model';
+import { FormatDescription } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @Component({
     selector: 'sp-format-list',
diff --git a/ui/src/app/connect/components/generic-adapter-configuration/generic-adapter-configuration.component.ts b/ui/src/app/connect/components/generic-adapter-configuration/generic-adapter-configuration.component.ts
index 20e638b..5a391db 100644
--- a/ui/src/app/connect/components/generic-adapter-configuration/generic-adapter-configuration.component.ts
+++ b/ui/src/app/connect/components/generic-adapter-configuration/generic-adapter-configuration.component.ts
@@ -22,7 +22,7 @@ import {
   GenericAdapterSetDescription,
   GenericAdapterStreamDescription,
   ProtocolDescription
-} from '../../../core-model/gen/streampipes-model';
+} from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { FormBuilder, FormGroup } from '@angular/forms';
 import { MatStepper } from '@angular/material/stepper';
 
diff --git a/ui/src/app/connect/components/new-adapter/new-adapter.component.ts b/ui/src/app/connect/components/new-adapter/new-adapter.component.ts
index e53d6da..7393e26 100644
--- a/ui/src/app/connect/components/new-adapter/new-adapter.component.ts
+++ b/ui/src/app/connect/components/new-adapter/new-adapter.component.ts
@@ -27,7 +27,7 @@ import {
     SpecificAdapterSetDescription,
     SpecificAdapterStreamDescription,
     TransformationRuleDescriptionUnion
-} from '../../../core-model/gen/streampipes-model';
+} from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { ShepherdService } from '../../../services/tour/shepherd.service';
 import { Logger } from '../../../shared/logger/default-log.service';
 import { ConnectService } from '../../services/connect.service';
diff --git a/ui/src/app/connect/components/runtime-info/pipeline-element-runtime-info.component.ts b/ui/src/app/connect/components/runtime-info/pipeline-element-runtime-info.component.ts
index 8be823b..49d1c2b 100644
--- a/ui/src/app/connect/components/runtime-info/pipeline-element-runtime-info.component.ts
+++ b/ui/src/app/connect/components/runtime-info/pipeline-element-runtime-info.component.ts
@@ -17,7 +17,7 @@
  */
 
 import {Component, Input, OnDestroy, OnInit} from '@angular/core';
-import {EventPropertyUnion, SpDataStream} from "../../../core-model/gen/streampipes-model";
+import {EventPropertyUnion, SpDataStream} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {RestService} from "../../services/rest.service";
 
 @Component({
@@ -104,4 +104,4 @@ export class PipelineElementRuntimeInfoComponent implements OnInit, OnDestroy {
     this.pollingActive = false;
     clearTimeout(this.timer);
   }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/connect/components/schema-editor/error-message/error-message.component.ts b/ui/src/app/connect/components/schema-editor/error-message/error-message.component.ts
index ee4ef51..d0e0faa 100644
--- a/ui/src/app/connect/components/schema-editor/error-message/error-message.component.ts
+++ b/ui/src/app/connect/components/schema-editor/error-message/error-message.component.ts
@@ -17,7 +17,7 @@
  */
 
 import { Component, Input, OnInit } from '@angular/core';
-import { Notification } from '../../../../core-model/gen/streampipes-model';
+import { Notification } from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @Component({
   selector: 'sp-error-message',
diff --git a/ui/src/app/connect/components/schema-editor/event-property-row/event-property-row.component.ts b/ui/src/app/connect/components/schema-editor/event-property-row/event-property-row.component.ts
index 0456644..eba574a 100644
--- a/ui/src/app/connect/components/schema-editor/event-property-row/event-property-row.component.ts
+++ b/ui/src/app/connect/components/schema-editor/event-property-row/event-property-row.component.ts
@@ -27,7 +27,7 @@ import {
     EventPropertyPrimitive,
     EventPropertyUnion,
     EventSchema
-} from '../../../../core-model/gen/streampipes-model';
+} from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { EditEventPropertyComponent } from '../../../dialog/edit-event-property/edit-event-property.component';
 
 @Component({
@@ -183,4 +183,4 @@ export class EventPropertyRowComponent implements OnChanges {
     eventProperty.eventProperties.push(property);
     this.refreshTreeEmitter.emit();
   }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/connect/components/schema-editor/event-schema-preview/event-schema-preview.component.ts b/ui/src/app/connect/components/schema-editor/event-schema-preview/event-schema-preview.component.ts
index f7418fd..3814ccd 100644
--- a/ui/src/app/connect/components/schema-editor/event-schema-preview/event-schema-preview.component.ts
+++ b/ui/src/app/connect/components/schema-editor/event-schema-preview/event-schema-preview.component.ts
@@ -17,7 +17,7 @@
  */
 
 import { Component, Input } from '@angular/core';
-import { EventSchema } from '../../../../core-model/gen/streampipes-model';
+import { EventSchema } from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @Component({
     selector: 'sp-event-schema-preview',
@@ -26,4 +26,4 @@ import { EventSchema } from '../../../../core-model/gen/streampipes-model';
 })
 export class EventSchemaPreviewComponent {
     @Input() eventSchema: EventSchema;
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/connect/components/schema-editor/event-schema/event-schema.component.ts b/ui/src/app/connect/components/schema-editor/event-schema/event-schema.component.ts
index 3bc5f52..de0fcfe 100644
--- a/ui/src/app/connect/components/schema-editor/event-schema/event-schema.component.ts
+++ b/ui/src/app/connect/components/schema-editor/event-schema/event-schema.component.ts
@@ -29,7 +29,7 @@ import {
   EventSchema,
   GuessSchema,
   Notification
-} from '../../../../core-model/gen/streampipes-model';
+} from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { MatStepper } from '@angular/material/stepper';
 import { UserErrorMessage } from '../../../../core-model/base/UserErrorMessage';
 
diff --git a/ui/src/app/connect/components/specific-adapter-configuration/specific-adapter-configuration.component.ts b/ui/src/app/connect/components/specific-adapter-configuration/specific-adapter-configuration.component.ts
index 4cd6978..6903af3 100644
--- a/ui/src/app/connect/components/specific-adapter-configuration/specific-adapter-configuration.component.ts
+++ b/ui/src/app/connect/components/specific-adapter-configuration/specific-adapter-configuration.component.ts
@@ -17,7 +17,7 @@
  */
 
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { AdapterDescriptionUnion } from '../../../core-model/gen/streampipes-model';
+import { AdapterDescriptionUnion } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { FormBuilder, FormGroup } from '@angular/forms';
 import { MatStepper } from '@angular/material/stepper';
 
diff --git a/ui/src/app/connect/components/start-adapter-configuration/start-adapter-configuration.component.ts b/ui/src/app/connect/components/start-adapter-configuration/start-adapter-configuration.component.ts
index 0a37a08..471af05 100644
--- a/ui/src/app/connect/components/start-adapter-configuration/start-adapter-configuration.component.ts
+++ b/ui/src/app/connect/components/start-adapter-configuration/start-adapter-configuration.component.ts
@@ -25,7 +25,7 @@ import {
   GenericAdapterSetDescription,
   RemoveDuplicatesTransformationRuleDescription,
   SpecificAdapterSetDescription
-} from '../../../core-model/gen/streampipes-model';
+} from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { FormBuilder, FormGroup } from '@angular/forms';
 import { MatStepper } from '@angular/material/stepper';
 import { AdapterStartedDialog } from '../../dialog/adapter-started/adapter-started-dialog.component';
diff --git a/ui/src/app/connect/connect.component.ts b/ui/src/app/connect/connect.component.ts
index eb90767..894cde7 100644
--- a/ui/src/app/connect/connect.component.ts
+++ b/ui/src/app/connect/connect.component.ts
@@ -17,7 +17,7 @@
  */
 
 import { Component } from '@angular/core';
-import { AdapterDescriptionUnion } from '../core-model/gen/streampipes-model';
+import { AdapterDescriptionUnion } from '../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @Component({
   selector: 'sp-connect',
diff --git a/ui/src/app/connect/dialog/adapter-export/adapter-export-dialog.component.ts b/ui/src/app/connect/dialog/adapter-export/adapter-export-dialog.component.ts
index 5a768a7..fe5b334 100644
--- a/ui/src/app/connect/dialog/adapter-export/adapter-export-dialog.component.ts
+++ b/ui/src/app/connect/dialog/adapter-export/adapter-export-dialog.component.ts
@@ -17,7 +17,7 @@
  */
 
 import {Component, Input} from '@angular/core';
-import {AdapterDescriptionUnion} from "../../../core-model/gen/streampipes-model";
+import {AdapterDescriptionUnion} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {DialogRef} from "../../../core-ui/dialog/base-dialog/dialog-ref";
 
 @Component({
@@ -51,4 +51,4 @@ export class AdapterExportDialog {
     onCloseConfirm() {
         this.dialogRef.close();
     }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/connect/dialog/adapter-started/adapter-started-dialog.component.ts b/ui/src/app/connect/dialog/adapter-started/adapter-started-dialog.component.ts
index 9f2c614..3c405fe 100644
--- a/ui/src/app/connect/dialog/adapter-started/adapter-started-dialog.component.ts
+++ b/ui/src/app/connect/dialog/adapter-started/adapter-started-dialog.component.ts
@@ -26,9 +26,9 @@ import {
   PipelineOperationStatus,
   SpDataStream,
   SpecificAdapterSetDescription
-} from '../../../core-model/gen/streampipes-model';
+} from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { DialogRef } from '../../../core-ui/dialog/base-dialog/dialog-ref';
-import { PipelineTemplateService } from '../../../platform-services/apis/pipeline-template.service';
+import { PipelineTemplateService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/pipeline-template.service';
 import { PipelineInvocationBuilder } from '../../../core-services/template/PipelineInvocationBuilder';
 
 
diff --git a/ui/src/app/connect/dialog/delete-adapter-dialog/delete-adapter-dialog.component.ts b/ui/src/app/connect/dialog/delete-adapter-dialog/delete-adapter-dialog.component.ts
index e5083c1..7a7daad 100644
--- a/ui/src/app/connect/dialog/delete-adapter-dialog/delete-adapter-dialog.component.ts
+++ b/ui/src/app/connect/dialog/delete-adapter-dialog/delete-adapter-dialog.component.ts
@@ -17,7 +17,7 @@
  */
 
 import { Component, Input } from '@angular/core';
-import { AdapterDescriptionUnion } from '../../../core-model/gen/streampipes-model';
+import { AdapterDescriptionUnion } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { DialogRef } from '../../../core-ui/dialog/base-dialog/dialog-ref';
 import { DataMarketplaceService } from '../../services/data-marketplace.service';
 
diff --git a/ui/src/app/connect/dialog/edit-event-property/edit-event-property.component.ts b/ui/src/app/connect/dialog/edit-event-property/edit-event-property.component.ts
index f77d809..f8a22d3 100644
--- a/ui/src/app/connect/dialog/edit-event-property/edit-event-property.component.ts
+++ b/ui/src/app/connect/dialog/edit-event-property/edit-event-property.component.ts
@@ -24,10 +24,10 @@ import {
     EventPropertyNested,
     EventPropertyPrimitive,
     EventPropertyUnion
-} from '../../../core-model/gen/streampipes-model';
+} from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { SemanticTypeUtilsService } from '../../../core-services/semantic-type/semantic-type-utils.service';
 import { DataTypesService } from '../../services/data-type.service';
-import { SemanticTypesService } from '../../../platform-services/apis/semantic-types.service';
+import { SemanticTypesService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/semantic-types.service';
 import { Observable } from 'rxjs';
 import { debounceTime, distinctUntilChanged, startWith, switchMap } from 'rxjs/operators';
 
diff --git a/ui/src/app/connect/filter/filter.pipe.ts b/ui/src/app/connect/filter/filter.pipe.ts
index 965fc18..81bc0da 100644
--- a/ui/src/app/connect/filter/filter.pipe.ts
+++ b/ui/src/app/connect/filter/filter.pipe.ts
@@ -17,7 +17,7 @@
  */
 
 import {Pipe, PipeTransform} from '@angular/core';
-import {AdapterDescriptionUnion} from "../../core-model/gen/streampipes-model";
+import {AdapterDescriptionUnion} from "../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 @Pipe({
     name: 'filter'
@@ -37,4 +37,4 @@ export class FilterPipe implements PipeTransform {
             }
         });
     }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/connect/filter/timestamp.pipe.ts b/ui/src/app/connect/filter/timestamp.pipe.ts
index 0649ed3..17ccbd0 100644
--- a/ui/src/app/connect/filter/timestamp.pipe.ts
+++ b/ui/src/app/connect/filter/timestamp.pipe.ts
@@ -17,7 +17,7 @@
  */
 
 import { Pipe, PipeTransform } from '@angular/core';
-import { EventPropertyUnion } from '../../core-model/gen/streampipes-model';
+import { EventPropertyUnion } from '../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @Pipe({
   name: 'timestampFilter',
@@ -33,4 +33,4 @@ export class TimestampPipe implements PipeTransform {
       }
     });
   }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/connect/services/connect.service.ts b/ui/src/app/connect/services/connect.service.ts
index efd12a2..7943117 100644
--- a/ui/src/app/connect/services/connect.service.ts
+++ b/ui/src/app/connect/services/connect.service.ts
@@ -24,7 +24,7 @@ import {
   GenericAdapterStreamDescription,
   SpecificAdapterSetDescription,
   SpecificAdapterStreamDescription
-} from '../../core-model/gen/streampipes-model';
+} from '../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @Injectable()
 export class ConnectService {
diff --git a/ui/src/app/connect/services/data-marketplace.service.ts b/ui/src/app/connect/services/data-marketplace.service.ts
index 99c033e..5fca6b1 100644
--- a/ui/src/app/connect/services/data-marketplace.service.ts
+++ b/ui/src/app/connect/services/data-marketplace.service.ts
@@ -28,9 +28,9 @@ import {
   Message, SpDataStream, SpDataStreamUnion,
   SpecificAdapterSetDescription,
   SpecificAdapterStreamDescription
-} from '../../core-model/gen/streampipes-model';
+} from '../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { Observable } from 'rxjs';
-import { PlatformServicesCommons } from '../../platform-services/apis/commons.service';
+import { PlatformServicesCommons } from '../../../../projects/streampipes/platform-services/src/lib/apis/commons.service';
 
 @Injectable()
 export class DataMarketplaceService {
diff --git a/ui/src/app/connect/services/rest.service.ts b/ui/src/app/connect/services/rest.service.ts
index 19ec3d0..76eebe9 100644
--- a/ui/src/app/connect/services/rest.service.ts
+++ b/ui/src/app/connect/services/rest.service.ts
@@ -23,8 +23,8 @@ 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 '../../core-model/gen/streampipes-model';
-import { PlatformServicesCommons } from '../../platform-services/apis/commons.service';
+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 { AuthService } from '../../services/auth.service';
 
 @Injectable()
diff --git a/ui/src/app/connect/services/transformation-rule.service.spec.ts b/ui/src/app/connect/services/transformation-rule.service.spec.ts
index ce01b6c..d880560 100644
--- a/ui/src/app/connect/services/transformation-rule.service.spec.ts
+++ b/ui/src/app/connect/services/transformation-rule.service.spec.ts
@@ -27,7 +27,7 @@ import {
     EventSchema,
     MoveRuleDescription,
     RenameRuleDescription
-} from '../../core-model/gen/streampipes-model';
+} from '../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 describe('TransformationRuleService', () => {
 
diff --git a/ui/src/app/connect/services/transformation-rule.service.ts b/ui/src/app/connect/services/transformation-rule.service.ts
index 662ef4b..1145878 100644
--- a/ui/src/app/connect/services/transformation-rule.service.ts
+++ b/ui/src/app/connect/services/transformation-rule.service.ts
@@ -33,7 +33,7 @@ import {
   TimestampTranfsformationRuleDescription,
   TransformationRuleDescriptionUnion,
   UnitTransformRuleDescription
-} from '../../core-model/gen/streampipes-model';
+} from '../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { Logger } from '../../shared/logger/default-log.service';
 import { TimestampTransformationRuleMode } from '../model/TimestampTransformationRuleMode';
 
diff --git a/ui/src/app/core-services/datalake/datalake-rest.service.ts b/ui/src/app/core-services/datalake/datalake-rest.service.ts
index fc7a276..3df7d03 100644
--- a/ui/src/app/core-services/datalake/datalake-rest.service.ts
+++ b/ui/src/app/core-services/datalake/datalake-rest.service.ts
@@ -19,7 +19,7 @@
 import { HttpClient, HttpRequest } from '@angular/common/http';
 import { Injectable } from '@angular/core';
 import { Observable } from 'rxjs';
-import { DataLakeMeasure, SpQueryResult } from '../../core-model/gen/streampipes-model';
+import { DataLakeMeasure, SpQueryResult } from '../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { map } from 'rxjs/operators';
 import { DatalakeQueryParameters } from './DatalakeQueryParameters';
 
diff --git a/ui/src/app/core-services/semantic-type/semantic-type-utils.service.ts b/ui/src/app/core-services/semantic-type/semantic-type-utils.service.ts
index 2717242..d4ddb9a 100644
--- a/ui/src/app/core-services/semantic-type/semantic-type-utils.service.ts
+++ b/ui/src/app/core-services/semantic-type/semantic-type-utils.service.ts
@@ -17,7 +17,7 @@
  */
 
 import { Injectable } from '@angular/core';
-import { EventProperty } from '../../core-model/gen/streampipes-model';
+import { EventProperty } from '../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @Injectable()
 export class SemanticTypeUtilsService {
diff --git a/ui/src/app/core-services/template/PipelineInvocationBuilder.ts b/ui/src/app/core-services/template/PipelineInvocationBuilder.ts
index 1cc7e41..d4ede34 100644
--- a/ui/src/app/core-services/template/PipelineInvocationBuilder.ts
+++ b/ui/src/app/core-services/template/PipelineInvocationBuilder.ts
@@ -15,7 +15,7 @@
  * limitations under the License.
  *
  */
-import { FreeTextStaticProperty, MappingPropertyUnary, PipelineTemplateInvocation } from '../../core-model/gen/streampipes-model';
+import { FreeTextStaticProperty, MappingPropertyUnary, PipelineTemplateInvocation } from '../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 export class PipelineInvocationBuilder {
 
diff --git a/ui/src/app/core-ui/image/components/image-annotations/image-annotations.component.ts b/ui/src/app/core-ui/image/components/image-annotations/image-annotations.component.ts
index 5c81965..d1534c6 100644
--- a/ui/src/app/core-ui/image/components/image-annotations/image-annotations.component.ts
+++ b/ui/src/app/core-ui/image/components/image-annotations/image-annotations.component.ts
@@ -18,7 +18,7 @@
 
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
 import { Annotation } from '../../../../core-model/coco/Annotation';
-import { Label } from '../../../../core-model/gen/streampipes-model';
+import { Label } from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @Component({
   selector: 'sp-image-annotations',
diff --git a/ui/src/app/core-ui/image/image-labeling/image-labeling.component.ts b/ui/src/app/core-ui/image/image-labeling/image-labeling.component.ts
index 9d789b9..83e0e91 100644
--- a/ui/src/app/core-ui/image/image-labeling/image-labeling.component.ts
+++ b/ui/src/app/core-ui/image/image-labeling/image-labeling.component.ts
@@ -31,7 +31,7 @@ import { CocoFormatService } from '../services/CocoFormat.service';
 import { LabelingModeService } from '../services/LabelingMode.service';
 import { PolygonLabelingService } from '../services/PolygonLabeling.service';
 import { ReactLabelingService } from '../services/ReactLabeling.service';
-import { Label } from '../../../core-model/gen/streampipes-model';
+import { Label } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { LabelService } from '../../labels/services/label.service';
 
 @Component({
diff --git a/ui/src/app/core-ui/image/image.component.ts b/ui/src/app/core-ui/image/image.component.ts
index 46ae4a9..c2ed1fa 100644
--- a/ui/src/app/core-ui/image/image.component.ts
+++ b/ui/src/app/core-ui/image/image.component.ts
@@ -17,7 +17,7 @@
  */
 
 import { Component, Input, OnInit } from '@angular/core';
-import { SpQueryResult } from '../../core-model/gen/streampipes-model';
+import { SpQueryResult } from '../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @Component({
   selector: 'sp-image',
diff --git a/ui/src/app/core-ui/image/services/BrushLabeling.service.ts b/ui/src/app/core-ui/image/services/BrushLabeling.service.ts
index ea34d93..9fd6115 100644
--- a/ui/src/app/core-ui/image/services/BrushLabeling.service.ts
+++ b/ui/src/app/core-ui/image/services/BrushLabeling.service.ts
@@ -21,7 +21,7 @@ import { Annotation } from '../../../core-model/coco/Annotation';
 import { ICoordinates } from '../model/coordinates';
 import { ColorService } from './color.service';
 import { LabelingModeService } from './LabelingMode.service';
-import { Label } from '../../../core-model/gen/streampipes-model';
+import { Label } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @Injectable()
 export class BrushLabelingService {
diff --git a/ui/src/app/core-ui/image/services/PolygonLabeling.service.ts b/ui/src/app/core-ui/image/services/PolygonLabeling.service.ts
index 845c3cb..c4cfe5a 100644
--- a/ui/src/app/core-ui/image/services/PolygonLabeling.service.ts
+++ b/ui/src/app/core-ui/image/services/PolygonLabeling.service.ts
@@ -21,7 +21,7 @@ import { Annotation } from '../../../core-model/coco/Annotation';
 import { ICoordinates } from '../model/coordinates';
 import { ColorService } from './color.service';
 import { LabelingModeService } from './LabelingMode.service';
-import { Label } from '../../../core-model/gen/streampipes-model';
+import { Label } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @Injectable()
 export class PolygonLabelingService {
diff --git a/ui/src/app/core-ui/image/services/ReactLabeling.service.ts b/ui/src/app/core-ui/image/services/ReactLabeling.service.ts
index 5c57a51..2babdcd 100644
--- a/ui/src/app/core-ui/image/services/ReactLabeling.service.ts
+++ b/ui/src/app/core-ui/image/services/ReactLabeling.service.ts
@@ -21,7 +21,7 @@ import { Annotation } from '../../../core-model/coco/Annotation';
 import { ICoordinates } from '../model/coordinates';
 import { ColorService } from './color.service';
 import { LabelingModeService } from './LabelingMode.service';
-import { Label } from '../../../core-model/gen/streampipes-model';
+import { Label } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @Injectable()
 export class ReactLabelingService {
diff --git a/ui/src/app/core-ui/labels/components/configure-labels/configure-labels.component.ts b/ui/src/app/core-ui/labels/components/configure-labels/configure-labels.component.ts
index 960fd63..1e8202b 100644
--- a/ui/src/app/core-ui/labels/components/configure-labels/configure-labels.component.ts
+++ b/ui/src/app/core-ui/labels/components/configure-labels/configure-labels.component.ts
@@ -19,7 +19,7 @@
 import { Component, OnInit } from '@angular/core';
 import { ColorService } from '../../../image/services/color.service';
 import { LabelService } from '../../services/label.service';
-import { Category, Label } from '../../../../core-model/gen/streampipes-model';
+import { Category, Label } from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @Component({
   selector: 'sp-configure-labels',
diff --git a/ui/src/app/core-ui/labels/components/label-list-item/label-list-item.component.ts b/ui/src/app/core-ui/labels/components/label-list-item/label-list-item.component.ts
index 4ddad9c..3c6114f 100644
--- a/ui/src/app/core-ui/labels/components/label-list-item/label-list-item.component.ts
+++ b/ui/src/app/core-ui/labels/components/label-list-item/label-list-item.component.ts
@@ -17,7 +17,7 @@
  */
 
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { Label } from '../../../../core-model/gen/streampipes-model';
+import { Label } from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { LabelService } from '../../services/label.service';
 
 @Component({
diff --git a/ui/src/app/core-ui/labels/components/select-label/select-label.component.ts b/ui/src/app/core-ui/labels/components/select-label/select-label.component.ts
index d6c3db8..4dd1c4f 100644
--- a/ui/src/app/core-ui/labels/components/select-label/select-label.component.ts
+++ b/ui/src/app/core-ui/labels/components/select-label/select-label.component.ts
@@ -18,7 +18,7 @@
 
 import { Component, EventEmitter, HostListener, Input, OnInit, Output } from '@angular/core';
 import { ColorService } from '../../../image/services/color.service';
-import { Category, Label } from '../../../../core-model/gen/streampipes-model';
+import { Category, Label } from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { LabelService } from '../../services/label.service';
 
 @Component({
diff --git a/ui/src/app/core-ui/labels/services/label.service.ts b/ui/src/app/core-ui/labels/services/label.service.ts
index 56d612e..9720761 100644
--- a/ui/src/app/core-ui/labels/services/label.service.ts
+++ b/ui/src/app/core-ui/labels/services/label.service.ts
@@ -17,8 +17,8 @@
  */
 
 import { Injectable } from '@angular/core';
-import { Category, Label } from '../../../core-model/gen/streampipes-model';
-import { PlatformServicesCommons } from '../../../platform-services/apis/commons.service';
+import { Category, Label } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
+import { PlatformServicesCommons } from '../../../../../projects/streampipes/platform-services/src/lib/apis/commons.service';
 import { HttpClient } from '@angular/common/http';
 import { Observable, ReplaySubject } from 'rxjs';
 
diff --git a/ui/src/app/core-ui/object-permission-dialog/object-permission-dialog.component.ts b/ui/src/app/core-ui/object-permission-dialog/object-permission-dialog.component.ts
index 8a16a7d..7b04239 100644
--- a/ui/src/app/core-ui/object-permission-dialog/object-permission-dialog.component.ts
+++ b/ui/src/app/core-ui/object-permission-dialog/object-permission-dialog.component.ts
@@ -20,18 +20,18 @@ import { COMMA, ENTER } from '@angular/cdk/keycodes';
 import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';
 import { DialogRef } from '../dialog/base-dialog/dialog-ref';
 import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
-import { PermissionsService } from '../../platform-services/apis/permissions.service';
+import { PermissionsService } from '../../../../projects/streampipes/platform-services/src/lib/apis/permissions.service';
 import {
   Group,
   Permission,
   PermissionEntry,
   ServiceAccount,
   UserAccount
-} from '../../core-model/gen/streampipes-model-client';
-import { UserService } from '../../platform-services/apis/user.service';
+} from '../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client';
+import { UserService } from '../../../../projects/streampipes/platform-services/src/lib/apis/user.service';
 import { MatChipInputEvent } from '@angular/material/chips';
 import { Observable, zip } from 'rxjs';
-import { UserGroupService } from '../../platform-services/apis/user-group.service';
+import { UserGroupService } from '../../../../projects/streampipes/platform-services/src/lib/apis/user-group.service';
 import { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';
 import { map, startWith } from 'rxjs/operators';
 
diff --git a/ui/src/app/core-ui/pipeline/pipeline-started-status/pipeline-started-status.component.ts b/ui/src/app/core-ui/pipeline/pipeline-started-status/pipeline-started-status.component.ts
index d6bc1ed..f73b6eb 100644
--- a/ui/src/app/core-ui/pipeline/pipeline-started-status/pipeline-started-status.component.ts
+++ b/ui/src/app/core-ui/pipeline/pipeline-started-status/pipeline-started-status.component.ts
@@ -17,7 +17,7 @@
  */
 
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { PipelineOperationStatus } from '../../../core-model/gen/streampipes-model';
+import { PipelineOperationStatus } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { PipelineAction } from '../../../pipelines/model/pipeline-model';
 
 @Component({
diff --git a/ui/src/app/core-ui/static-properties/base/abstract-static-property.ts b/ui/src/app/core-ui/static-properties/base/abstract-static-property.ts
index 386cce8..c1f8087 100644
--- a/ui/src/app/core-ui/static-properties/base/abstract-static-property.ts
+++ b/ui/src/app/core-ui/static-properties/base/abstract-static-property.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { EventSchema, StaticProperty, StaticPropertyUnion } from '../../../core-model/gen/streampipes-model';
+import { EventSchema, StaticProperty, StaticPropertyUnion } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { Directive, EventEmitter, Input, Output } from '@angular/core';
 import { FormGroup } from '@angular/forms';
 import { ConfigurationInfo } from '../../../connect/model/ConfigurationInfo';
diff --git a/ui/src/app/core-ui/static-properties/base/abstract-validated-static-property.ts b/ui/src/app/core-ui/static-properties/base/abstract-validated-static-property.ts
index 3a2718d..cacbdcc 100644
--- a/ui/src/app/core-ui/static-properties/base/abstract-validated-static-property.ts
+++ b/ui/src/app/core-ui/static-properties/base/abstract-validated-static-property.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import {StaticProperty} from "../../../core-model/gen/streampipes-model";
+import {StaticProperty} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {AbstractStaticPropertyRenderer} from "./abstract-static-property";
 import {FormControl, ValidatorFn} from "@angular/forms";
 import {Directive, OnDestroy} from "@angular/core";
@@ -57,4 +57,4 @@ export abstract class AbstractValidatedStaticPropertyRenderer<T extends StaticPr
       this.parentForm.removeControl(this.fieldName);
     }
   }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/core-ui/static-properties/filter/display-recommended.pipe.ts b/ui/src/app/core-ui/static-properties/filter/display-recommended.pipe.ts
index 3577b9e..4b7b8be 100644
--- a/ui/src/app/core-ui/static-properties/filter/display-recommended.pipe.ts
+++ b/ui/src/app/core-ui/static-properties/filter/display-recommended.pipe.ts
@@ -17,7 +17,7 @@
  */
 
 import { Pipe, PipeTransform } from '@angular/core';
-import { EventPropertyUnion } from '../../../core-model/gen/streampipes-model';
+import { EventPropertyUnion } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @Pipe({name: 'displayRecommendedPipe'})
 export class DisplayRecommendedPipe implements PipeTransform {
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 ae01e65..134350c 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 '../../../core-model/gen/streampipes-model';
+import { StaticPropertyAlternatives } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @Component({
     selector: 'app-static-alternatives',
diff --git a/ui/src/app/core-ui/static-properties/static-any-input/static-any-input.component.ts b/ui/src/app/core-ui/static-properties/static-any-input/static-any-input.component.ts
index 8abd8de..65d553a 100644
--- a/ui/src/app/core-ui/static-properties/static-any-input/static-any-input.component.ts
+++ b/ui/src/app/core-ui/static-properties/static-any-input/static-any-input.component.ts
@@ -18,7 +18,7 @@
 
 import {Component, EventEmitter, OnInit, Output} from '@angular/core';
 import {AbstractStaticPropertyRenderer} from "../base/abstract-static-property";
-import {AnyStaticProperty} from "../../../core-model/gen/streampipes-model";
+import {AnyStaticProperty} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 @Component({
   selector: 'app-static-any-input',
diff --git a/ui/src/app/core-ui/static-properties/static-code-input/static-code-input.component.ts b/ui/src/app/core-ui/static-properties/static-code-input/static-code-input.component.ts
index eb81268..e3e41f5 100644
--- a/ui/src/app/core-ui/static-properties/static-code-input/static-code-input.component.ts
+++ b/ui/src/app/core-ui/static-properties/static-code-input/static-code-input.component.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { CodeInputStaticProperty } from '../../../core-model/gen/streampipes-model';
+import { CodeInputStaticProperty } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { AbstractValidatedStaticPropertyRenderer } from '../base/abstract-validated-static-property';
 import { AfterViewInit, Component, OnInit } from '@angular/core';
 
diff --git a/ui/src/app/core-ui/static-properties/static-collection/add-to-collection/add-to-collection.component.ts b/ui/src/app/core-ui/static-properties/static-collection/add-to-collection/add-to-collection.component.ts
index 79d76f9..b798478 100644
--- a/ui/src/app/core-ui/static-properties/static-collection/add-to-collection/add-to-collection.component.ts
+++ b/ui/src/app/core-ui/static-properties/static-collection/add-to-collection/add-to-collection.component.ts
@@ -18,7 +18,7 @@
 
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
 import { StaticPropertyUtilService } from '../../static-property-util.service';
-import { FreeTextStaticProperty, OneOfStaticProperty, StaticProperty } from '../../../../core-model/gen/streampipes-model';
+import { FreeTextStaticProperty, OneOfStaticProperty, StaticProperty } from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { Observable } from 'rxjs';
 
 @Component({
diff --git a/ui/src/app/core-ui/static-properties/static-collection/static-collection.component.ts b/ui/src/app/core-ui/static-properties/static-collection/static-collection.component.ts
index 53b5b2c..a80cef6 100644
--- a/ui/src/app/core-ui/static-properties/static-collection/static-collection.component.ts
+++ b/ui/src/app/core-ui/static-properties/static-collection/static-collection.component.ts
@@ -17,7 +17,7 @@
  */
 
 import { Component, OnInit } from '@angular/core';
-import { CollectionStaticProperty, StaticPropertyUnion } from '../../../core-model/gen/streampipes-model';
+import { CollectionStaticProperty, StaticPropertyUnion } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { AbstractValidatedStaticPropertyRenderer } from '../base/abstract-validated-static-property';
 
 
@@ -61,4 +61,4 @@ export class StaticCollectionComponent
   onValueChange(value: any) {
   }
 
-}
\ No newline at end of file
+}
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 01afa83..adcefc8 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
@@ -20,7 +20,7 @@ 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 "../../../core-model/gen/streampipes-model";
+import {ColorPickerStaticProperty} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {AbstractValidatedStaticPropertyRenderer} from "../base/abstract-validated-static-property";
 
 @Component({
@@ -57,4 +57,4 @@ export class StaticColorPickerComponent
 
     }
 
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/core-ui/static-properties/static-file-input/static-file-input.component.ts b/ui/src/app/core-ui/static-properties/static-file-input/static-file-input.component.ts
index feebd2f..77333ca 100644
--- a/ui/src/app/core-ui/static-properties/static-file-input/static-file-input.component.ts
+++ b/ui/src/app/core-ui/static-properties/static-file-input/static-file-input.component.ts
@@ -18,8 +18,8 @@
 
 import { Component, EventEmitter, OnInit, Output } from '@angular/core';
 import { HttpEventType, HttpResponse } from '@angular/common/http';
-import { FileStaticProperty, FileMetadata } from '../../../core-model/gen/streampipes-model';
-import { FilesService } from '../../../platform-services/apis/files.service';
+import { FileStaticProperty, FileMetadata } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
+import { FilesService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/files.service';
 import { ConfigurationInfo } from '../../../connect/model/ConfigurationInfo';
 import { AbstractValidatedStaticPropertyRenderer } from '../base/abstract-validated-static-property';
 import { FormControl, ValidatorFn, Validators } from '@angular/forms';
diff --git a/ui/src/app/core-ui/static-properties/static-free-input/static-free-input.component.ts b/ui/src/app/core-ui/static-properties/static-free-input/static-free-input.component.ts
index 89686f2..acd6844 100644
--- a/ui/src/app/core-ui/static-properties/static-free-input/static-free-input.component.ts
+++ b/ui/src/app/core-ui/static-properties/static-free-input/static-free-input.component.ts
@@ -20,7 +20,7 @@ import { Component, OnInit, ViewChild } from '@angular/core';
 import { ValidatorFn, Validators } from '@angular/forms';
 import { StaticPropertyUtilService } from '../static-property-util.service';
 import { ConfigurationInfo } from '../../../connect/model/ConfigurationInfo';
-import { FreeTextStaticProperty } from '../../../core-model/gen/streampipes-model';
+import { FreeTextStaticProperty } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { XsService } from '../../../NS/xs.service';
 import { ValidateNumber, ValidateString, ValidateUrl } from '../input.validator';
 import { AbstractValidatedStaticPropertyRenderer } from '../base/abstract-validated-static-property';
@@ -112,4 +112,4 @@ export class StaticFreeInputComponent
     }
     return value;
   }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/core-ui/static-properties/static-group/static-group.component.ts b/ui/src/app/core-ui/static-properties/static-group/static-group.component.ts
index fab028a..3bbf270 100644
--- a/ui/src/app/core-ui/static-properties/static-group/static-group.component.ts
+++ b/ui/src/app/core-ui/static-properties/static-group/static-group.component.ts
@@ -18,7 +18,7 @@
 
 import {Component, EventEmitter, OnInit, Output} from '@angular/core';
 import {AbstractStaticPropertyRenderer} from "../base/abstract-static-property";
-import {StaticPropertyGroup} from "../../../core-model/gen/streampipes-model";
+import {StaticPropertyGroup} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 @Component({
     selector: 'app-static-group',
@@ -36,4 +36,4 @@ export class StaticGroupComponent
         //console.log(this.staticProperty);
     }
 
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/core-ui/static-properties/static-mapping-nary/static-mapping-nary.component.ts b/ui/src/app/core-ui/static-properties/static-mapping-nary/static-mapping-nary.component.ts
index e158f18..544b7b3 100644
--- a/ui/src/app/core-ui/static-properties/static-mapping-nary/static-mapping-nary.component.ts
+++ b/ui/src/app/core-ui/static-properties/static-mapping-nary/static-mapping-nary.component.ts
@@ -20,7 +20,7 @@ import {Component, EventEmitter, OnInit, Output} from '@angular/core';
 import {StaticPropertyUtilService} from '../static-property-util.service';
 import {StaticMappingComponent} from "../static-mapping/static-mapping";
 import {PropertySelectorService} from "../../../services/property-selector.service";
-import {EventProperty, MappingPropertyNary} from "../../../core-model/gen/streampipes-model";
+import {EventProperty, MappingPropertyNary} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 
 @Component({
diff --git a/ui/src/app/core-ui/static-properties/static-mapping-unary/static-mapping-unary.component.ts b/ui/src/app/core-ui/static-properties/static-mapping-unary/static-mapping-unary.component.ts
index 911a30f..d35bbd2 100644
--- a/ui/src/app/core-ui/static-properties/static-mapping-unary/static-mapping-unary.component.ts
+++ b/ui/src/app/core-ui/static-properties/static-mapping-unary/static-mapping-unary.component.ts
@@ -21,7 +21,7 @@ import {Validators} from '@angular/forms';
 import {StaticPropertyUtilService} from '../static-property-util.service';
 import {PropertySelectorService} from "../../../services/property-selector.service";
 import {StaticMappingComponent} from "../static-mapping/static-mapping";
-import {MappingPropertyUnary} from "../../../core-model/gen/streampipes-model";
+import {MappingPropertyUnary} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 @Component({
     selector: 'app-static-mapping-unary',
diff --git a/ui/src/app/core-ui/static-properties/static-mapping/static-mapping.ts b/ui/src/app/core-ui/static-properties/static-mapping/static-mapping.ts
index 8ca9eff..3a3e791 100644
--- a/ui/src/app/core-ui/static-properties/static-mapping/static-mapping.ts
+++ b/ui/src/app/core-ui/static-properties/static-mapping/static-mapping.ts
@@ -25,7 +25,7 @@ import {
   EventPropertyPrimitive,
   EventPropertyUnion,
   MappingProperty
-} from "../../../core-model/gen/streampipes-model";
+} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {AbstractValidatedStaticPropertyRenderer} from "../base/abstract-validated-static-property";
 import {Directive} from "@angular/core";
 import {ConfigurationInfo} from "../../../connect/model/ConfigurationInfo";
diff --git a/ui/src/app/core-ui/static-properties/static-one-of-input/static-one-of-input.component.ts b/ui/src/app/core-ui/static-properties/static-one-of-input/static-one-of-input.component.ts
index 7bfd746..f1eb81f 100644
--- a/ui/src/app/core-ui/static-properties/static-one-of-input/static-one-of-input.component.ts
+++ b/ui/src/app/core-ui/static-properties/static-one-of-input/static-one-of-input.component.ts
@@ -18,7 +18,7 @@
 
 import { Component, EventEmitter, OnInit, Output } from '@angular/core';
 import { AbstractStaticPropertyRenderer } from '../base/abstract-static-property';
-import { OneOfStaticProperty } from '../../../core-model/gen/streampipes-model';
+import { OneOfStaticProperty } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @Component({
   selector: 'sp-static-one-of-input',
diff --git a/ui/src/app/core-ui/static-properties/static-property-util.service.ts b/ui/src/app/core-ui/static-properties/static-property-util.service.ts
index 5231fec..b833cd9 100644
--- a/ui/src/app/core-ui/static-properties/static-property-util.service.ts
+++ b/ui/src/app/core-ui/static-properties/static-property-util.service.ts
@@ -34,7 +34,7 @@ import {
   StaticPropertyAlternative,
   StaticPropertyAlternatives,
   StaticPropertyGroup
-} from "../../core-model/gen/streampipes-model";
+} from "../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 @Injectable()
 export class StaticPropertyUtilService{
@@ -175,4 +175,4 @@ export class StaticPropertyUtilService{
     public asCollectionProperty(val: StaticProperty): CollectionStaticProperty {
         return <CollectionStaticProperty> val;
     }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/core-ui/static-properties/static-property.component.ts b/ui/src/app/core-ui/static-properties/static-property.component.ts
index d1e5897..19d1087 100644
--- a/ui/src/app/core-ui/static-properties/static-property.component.ts
+++ b/ui/src/app/core-ui/static-properties/static-property.component.ts
@@ -39,7 +39,7 @@ import {
   StaticProperty,
   StaticPropertyAlternatives,
   StaticPropertyGroup
-} from '../../core-model/gen/streampipes-model';
+} from '../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { FormGroup } from '@angular/forms';
 import { InvocablePipelineElementUnion } from '../../editor/model/editor.model';
 
diff --git a/ui/src/app/core-ui/static-properties/static-runtime-resolvable-any-input/static-runtime-resolvable-any-input.component.ts b/ui/src/app/core-ui/static-properties/static-runtime-resolvable-any-input/static-runtime-resolvable-any-input.component.ts
index dcba752..63a9388 100644
--- a/ui/src/app/core-ui/static-properties/static-runtime-resolvable-any-input/static-runtime-resolvable-any-input.component.ts
+++ b/ui/src/app/core-ui/static-properties/static-runtime-resolvable-any-input/static-runtime-resolvable-any-input.component.ts
@@ -17,7 +17,7 @@
  */
 
 import { Component, OnInit } from '@angular/core';
-import { RuntimeResolvableAnyStaticProperty, StaticPropertyUnion } from '../../../core-model/gen/streampipes-model';
+import { RuntimeResolvableAnyStaticProperty, StaticPropertyUnion } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { RuntimeResolvableService } from '../static-runtime-resolvable-input/runtime-resolvable.service';
 import { BaseRuntimeResolvableSelectionInput } from '../static-runtime-resolvable-input/base-runtime-resolvable-selection-input';
 
diff --git a/ui/src/app/core-ui/static-properties/static-runtime-resolvable-input/base-runtime-resolvable-input.ts b/ui/src/app/core-ui/static-properties/static-runtime-resolvable-input/base-runtime-resolvable-input.ts
index 7e419c7..ff25f9e 100644
--- a/ui/src/app/core-ui/static-properties/static-runtime-resolvable-input/base-runtime-resolvable-input.ts
+++ b/ui/src/app/core-ui/static-properties/static-runtime-resolvable-input/base-runtime-resolvable-input.ts
@@ -25,7 +25,7 @@ import {
   RuntimeResolvableTreeInputStaticProperty,
   StaticProperty,
   StaticPropertyUnion
-} from '../../../core-model/gen/streampipes-model';
+} from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { RuntimeResolvableService } from './runtime-resolvable.service';
 import { Observable } from 'rxjs';
 import { Directive, Input, OnChanges, SimpleChanges } from '@angular/core';
diff --git a/ui/src/app/core-ui/static-properties/static-runtime-resolvable-input/base-runtime-resolvable-selection-input.ts b/ui/src/app/core-ui/static-properties/static-runtime-resolvable-input/base-runtime-resolvable-selection-input.ts
index 72d65d1..adca642 100644
--- a/ui/src/app/core-ui/static-properties/static-runtime-resolvable-input/base-runtime-resolvable-selection-input.ts
+++ b/ui/src/app/core-ui/static-properties/static-runtime-resolvable-input/base-runtime-resolvable-selection-input.ts
@@ -19,7 +19,7 @@
 import {
   RuntimeResolvableAnyStaticProperty,
   RuntimeResolvableOneOfStaticProperty
-} from '../../../core-model/gen/streampipes-model';
+} from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { Directive } from '@angular/core';
 import { BaseRuntimeResolvableInput } from './base-runtime-resolvable-input';
 
diff --git a/ui/src/app/core-ui/static-properties/static-runtime-resolvable-input/runtime-resolvable.service.ts b/ui/src/app/core-ui/static-properties/static-runtime-resolvable-input/runtime-resolvable.service.ts
index 7f0e52b..7381b98 100644
--- a/ui/src/app/core-ui/static-properties/static-runtime-resolvable-input/runtime-resolvable.service.ts
+++ b/ui/src/app/core-ui/static-properties/static-runtime-resolvable-input/runtime-resolvable.service.ts
@@ -17,10 +17,10 @@
  */
 
 import { Observable } from 'rxjs';
-import { RuntimeOptionsRequest, RuntimeOptionsResponse } from '../../../core-model/gen/streampipes-model';
+import { RuntimeOptionsRequest, RuntimeOptionsResponse } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { map } from 'rxjs/operators';
 import { HttpClient } from '@angular/common/http';
-import { PlatformServicesCommons } from '../../../platform-services/apis/commons.service';
+import { PlatformServicesCommons } from '../../../../../projects/streampipes/platform-services/src/lib/apis/commons.service';
 import { Injectable } from '@angular/core';
 
 @Injectable()
diff --git a/ui/src/app/core-ui/static-properties/static-runtime-resolvable-oneof-input/static-runtime-resolvable-oneof-input.component.ts b/ui/src/app/core-ui/static-properties/static-runtime-resolvable-oneof-input/static-runtime-resolvable-oneof-input.component.ts
index 1fc13dc..5e79124 100644
--- a/ui/src/app/core-ui/static-properties/static-runtime-resolvable-oneof-input/static-runtime-resolvable-oneof-input.component.ts
+++ b/ui/src/app/core-ui/static-properties/static-runtime-resolvable-oneof-input/static-runtime-resolvable-oneof-input.component.ts
@@ -17,7 +17,7 @@
  */
 
 import { Component, OnChanges, OnInit } from '@angular/core';
-import { RuntimeResolvableOneOfStaticProperty, StaticPropertyUnion } from '../../../core-model/gen/streampipes-model';
+import { RuntimeResolvableOneOfStaticProperty, StaticPropertyUnion } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { RuntimeResolvableService } from '../static-runtime-resolvable-input/runtime-resolvable.service';
 import { BaseRuntimeResolvableSelectionInput } from '../static-runtime-resolvable-input/base-runtime-resolvable-selection-input';
 
diff --git a/ui/src/app/core-ui/static-properties/static-runtime-resolvable-tree-input/static-tree-input.component.ts b/ui/src/app/core-ui/static-properties/static-runtime-resolvable-tree-input/static-tree-input.component.ts
index 0686093..e36b71f 100644
--- a/ui/src/app/core-ui/static-properties/static-runtime-resolvable-tree-input/static-tree-input.component.ts
+++ b/ui/src/app/core-ui/static-properties/static-runtime-resolvable-tree-input/static-tree-input.component.ts
@@ -22,7 +22,7 @@ import {
   RuntimeResolvableTreeInputStaticProperty,
   StaticPropertyUnion,
   TreeInputNode
-} from '../../../core-model/gen/streampipes-model';
+} from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { RuntimeResolvableService } from '../static-runtime-resolvable-input/runtime-resolvable.service';
 import { NestedTreeControl } from '@angular/cdk/tree';
 import { MatTreeNestedDataSource } from '@angular/material/tree';
diff --git a/ui/src/app/core-ui/static-properties/static-secret-input/static-secret-input.component.ts b/ui/src/app/core-ui/static-properties/static-secret-input/static-secret-input.component.ts
index 81f3643..2249a14 100644
--- a/ui/src/app/core-ui/static-properties/static-secret-input/static-secret-input.component.ts
+++ b/ui/src/app/core-ui/static-properties/static-secret-input/static-secret-input.component.ts
@@ -20,7 +20,7 @@ import {Component, EventEmitter, OnInit, Output} from '@angular/core';
 import {Validators} from '@angular/forms';
 import {StaticPropertyUtilService} from '../static-property-util.service';
 import {ConfigurationInfo} from "../../../connect/model/ConfigurationInfo";
-import {SecretStaticProperty} from "../../../core-model/gen/streampipes-model";
+import {SecretStaticProperty} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {AbstractValidatedStaticPropertyRenderer} from "../base/abstract-validated-static-property";
 
 @Component({
@@ -55,4 +55,4 @@ export class StaticSecretInputComponent
         this.staticProperty.encrypted=false;
     }
 
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/core-ui/static-properties/static-slide-toggle/static-slide-toggle.component.ts b/ui/src/app/core-ui/static-properties/static-slide-toggle/static-slide-toggle.component.ts
index 7f27d33..ccc38c8 100644
--- a/ui/src/app/core-ui/static-properties/static-slide-toggle/static-slide-toggle.component.ts
+++ b/ui/src/app/core-ui/static-properties/static-slide-toggle/static-slide-toggle.component.ts
@@ -18,7 +18,7 @@
 
 import { AfterViewInit, Component, OnInit } from '@angular/core';
 import { ConfigurationInfo } from '../../../connect/model/ConfigurationInfo';
-import { SlideToggleStaticProperty } from '../../../core-model/gen/streampipes-model';
+import { SlideToggleStaticProperty } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { AbstractValidatedStaticPropertyRenderer } from '../base/abstract-validated-static-property';
 import { Validators } from '@angular/forms';
 
diff --git a/ui/src/app/dashboard/components/grid/dashboard-grid.component.ts b/ui/src/app/dashboard/components/grid/dashboard-grid.component.ts
index 3f0305c..7d464ec 100644
--- a/ui/src/app/dashboard/components/grid/dashboard-grid.component.ts
+++ b/ui/src/app/dashboard/components/grid/dashboard-grid.component.ts
@@ -33,7 +33,7 @@ import {ResizeService} from "../../services/resize.service";
 import {GridsterItemComponent, GridType} from "angular-gridster2";
 import {DashboardService} from "../../services/dashboard.service";
 import {RefreshDashboardService} from "../../services/refresh-dashboard.service";
-import {DashboardWidgetModel} from "../../../core-model/gen/streampipes-model";
+import {DashboardWidgetModel} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 @Component({
     selector: 'dashboard-grid',
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 9cce17f..6312c6b 100644
--- a/ui/src/app/dashboard/components/panel/dashboard-panel.component.ts
+++ b/ui/src/app/dashboard/components/panel/dashboard-panel.component.ts
@@ -22,7 +22,7 @@ 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 "../../../core-model/gen/streampipes-model";
+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";
 
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 033b23b..39b4dae 100644
--- a/ui/src/app/dashboard/components/widget/dashboard-widget.component.ts
+++ b/ui/src/app/dashboard/components/widget/dashboard-widget.component.ts
@@ -24,10 +24,10 @@ import {AddVisualizationDialogComponent} from "../../dialogs/add-widget/add-visu
 import {
   DashboardWidgetModel, Pipeline,
   VisualizablePipeline
-} from "../../../core-model/gen/streampipes-model";
+} 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 "../../../platform-services/apis/pipeline.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/bar-race/bar-race-config.ts b/ui/src/app/dashboard/components/widgets/bar-race/bar-race-config.ts
index 9f0de2e..13fd2e2 100644
--- a/ui/src/app/dashboard/components/widgets/bar-race/bar-race-config.ts
+++ b/ui/src/app/dashboard/components/widgets/bar-race/bar-race-config.ts
@@ -20,7 +20,7 @@ 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 "../../../../core-model/gen/streampipes-model";
+import {DashboardWidgetSettings} from "../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 export class BarRaceConfig extends WidgetConfig {
 
diff --git a/ui/src/app/dashboard/components/widgets/base/base-config.ts b/ui/src/app/dashboard/components/widgets/base/base-config.ts
index b4a00b8..92952c4 100644
--- a/ui/src/app/dashboard/components/widgets/base/base-config.ts
+++ b/ui/src/app/dashboard/components/widgets/base/base-config.ts
@@ -17,7 +17,7 @@
  */
 
 import {Tuple2} from "../../../../core-model/base/Tuple2";
-import {DashboardWidgetSettings} from "../../../../core-model/gen/streampipes-model";
+import {DashboardWidgetSettings} from "../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 export abstract class WidgetConfig {
 
@@ -29,4 +29,4 @@ export abstract class WidgetConfig {
         option.b = optionName.replace(" ", "-");
         return option;
     }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/dashboard/components/widgets/base/base-ngx-line-config.ts b/ui/src/app/dashboard/components/widgets/base/base-ngx-line-config.ts
index 74a24e0..b60c792 100644
--- a/ui/src/app/dashboard/components/widgets/base/base-ngx-line-config.ts
+++ b/ui/src/app/dashboard/components/widgets/base/base-ngx-line-config.ts
@@ -20,7 +20,7 @@ import {WidgetConfig} from "./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 "../../../../core-model/gen/streampipes-model";
+import {DashboardWidgetSettings} from "../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 export abstract class BaseNgxLineConfig extends WidgetConfig {
 
@@ -50,4 +50,4 @@ export abstract class BaseNgxLineConfig extends WidgetConfig {
     abstract getWidgetDescription(): string;
 
     abstract getWidgetIcon(): string;
-}
\ No newline at end of file
+}
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 23dd4de..d85adf7 100644
--- a/ui/src/app/dashboard/components/widgets/base/base-widget.ts
+++ b/ui/src/app/dashboard/components/widgets/base/base-widget.ts
@@ -30,7 +30,7 @@ import {DashboardService} from "../../../services/dashboard.service";
 import {
     DashboardWidgetModel,
     VisualizablePipeline
-} from "../../../../core-model/gen/streampipes-model";
+} from "../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 @Directive()
 export abstract class BaseStreamPipesWidget implements OnChanges {
diff --git a/ui/src/app/dashboard/components/widgets/gauge/gauge-config.ts b/ui/src/app/dashboard/components/widgets/gauge/gauge-config.ts
index d3139f2..d8295a4 100644
--- a/ui/src/app/dashboard/components/widgets/gauge/gauge-config.ts
+++ b/ui/src/app/dashboard/components/widgets/gauge/gauge-config.ts
@@ -20,7 +20,7 @@ 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 "../../../../core-model/gen/streampipes-model";
+import {DashboardWidgetSettings} from "../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 export class GaugeConfig extends WidgetConfig {
 
@@ -47,4 +47,4 @@ export class GaugeConfig extends WidgetConfig {
             .build();
     }
 
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/dashboard/components/widgets/html/html-config.ts b/ui/src/app/dashboard/components/widgets/html/html-config.ts
index cf45d3f..b0b9637 100644
--- a/ui/src/app/dashboard/components/widgets/html/html-config.ts
+++ b/ui/src/app/dashboard/components/widgets/html/html-config.ts
@@ -19,7 +19,7 @@ import {WidgetConfigBuilder} from "../../../registry/widget-config-builder";
 import {SchemaRequirementsBuilder} from "../../../sdk/schema-requirements-builder";
 import {WidgetConfig} from "../base/base-config";
 import {EpRequirements} from "../../../sdk/ep-requirements";
-import {DashboardWidgetSettings} from "../../../../core-model/gen/streampipes-model";
+import {DashboardWidgetSettings} from "../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 export class HtmlConfig extends WidgetConfig {
 
@@ -40,4 +40,4 @@ export class HtmlConfig extends WidgetConfig {
             .build();
     }
 
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/dashboard/components/widgets/image/image-config.ts b/ui/src/app/dashboard/components/widgets/image/image-config.ts
index eef875b..69983bc 100644
--- a/ui/src/app/dashboard/components/widgets/image/image-config.ts
+++ b/ui/src/app/dashboard/components/widgets/image/image-config.ts
@@ -20,7 +20,7 @@ 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 "../../../../core-model/gen/streampipes-model";
+import {DashboardWidgetSettings} from "../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 export class ImageConfig extends WidgetConfig {
 
@@ -43,4 +43,4 @@ export class ImageConfig extends WidgetConfig {
             .build();
     }
 
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/dashboard/components/widgets/map/map-config.ts b/ui/src/app/dashboard/components/widgets/map/map-config.ts
index 1f15c41..a9f7156 100644
--- a/ui/src/app/dashboard/components/widgets/map/map-config.ts
+++ b/ui/src/app/dashboard/components/widgets/map/map-config.ts
@@ -19,7 +19,7 @@ import { WidgetConfigBuilder } from '../../../registry/widget-config-builder';
 import { SchemaRequirementsBuilder } from '../../../sdk/schema-requirements-builder';
 import { EpRequirements } from '../../../sdk/ep-requirements';
 import { WidgetConfig } from '../base/base-config';
-import { DashboardWidgetSettings } from '../../../../core-model/gen/streampipes-model';
+import { DashboardWidgetSettings } from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 export class MapConfig extends WidgetConfig {
 
diff --git a/ui/src/app/dashboard/components/widgets/number/number-config.ts b/ui/src/app/dashboard/components/widgets/number/number-config.ts
index e4db085..42ce12b 100644
--- a/ui/src/app/dashboard/components/widgets/number/number-config.ts
+++ b/ui/src/app/dashboard/components/widgets/number/number-config.ts
@@ -20,7 +20,7 @@ import {WidgetConfigBuilder} from "../../../registry/widget-config-builder";
 import {SchemaRequirementsBuilder} from "../../../sdk/schema-requirements-builder";
 import {EpRequirements} from "../../../sdk/ep-requirements";
 import {WidgetConfig} from "../base/base-config";
-import {DashboardWidgetSettings} from "../../../../core-model/gen/streampipes-model";
+import {DashboardWidgetSettings} from "../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 export class NumberConfig extends WidgetConfig {
 
@@ -40,4 +40,4 @@ export class NumberConfig extends WidgetConfig {
             .build();
     }
 
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/dashboard/components/widgets/number/number-widget.component.ts b/ui/src/app/dashboard/components/widgets/number/number-widget.component.ts
index 0c1a9e3..fbb8f8e 100644
--- a/ui/src/app/dashboard/components/widgets/number/number-widget.component.ts
+++ b/ui/src/app/dashboard/components/widgets/number/number-widget.component.ts
@@ -23,7 +23,7 @@ import {StaticPropertyExtractor} from "../../../sdk/extractor/static-property-ex
 import {NumberConfig} from "./number-config";
 import {ResizeService} from "../../../services/resize.service";
 import {DashboardService} from "../../../services/dashboard.service";
-import {EventPropertyPrimitive} from "../../../../core-model/gen/streampipes-model";
+import {EventPropertyPrimitive} from "../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 @Component({
     selector: 'number-widget',
@@ -74,4 +74,4 @@ export class NumberWidgetComponent extends BaseStreamPipesWidget implements OnIn
     protected onSizeChanged(width: number, height: number) {
     }
 
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/dashboard/components/widgets/raw/raw-config.ts b/ui/src/app/dashboard/components/widgets/raw/raw-config.ts
index 238292c..3ae1036 100644
--- a/ui/src/app/dashboard/components/widgets/raw/raw-config.ts
+++ b/ui/src/app/dashboard/components/widgets/raw/raw-config.ts
@@ -18,7 +18,7 @@
 import {WidgetConfigBuilder} from "../../../registry/widget-config-builder";
 import {SchemaRequirementsBuilder} from "../../../sdk/schema-requirements-builder";
 import {WidgetConfig} from "../base/base-config";
-import {DashboardWidgetSettings} from "../../../../core-model/gen/streampipes-model";
+import {DashboardWidgetSettings} from "../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 export class RawConfig extends WidgetConfig {
 
@@ -36,4 +36,4 @@ export class RawConfig extends WidgetConfig {
             .build();
     }
 
-}
\ No newline at end of file
+}
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 50d0149..f45e0e7 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
@@ -20,7 +20,7 @@ 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 "../../../../core-model/gen/streampipes-model";
+import {DashboardWidgetSettings} from "../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 export class StackedLineChartConfig extends WidgetConfig {
 
diff --git a/ui/src/app/dashboard/components/widgets/status/status-config.ts b/ui/src/app/dashboard/components/widgets/status/status-config.ts
index 9e2a9cf..0577b44 100644
--- a/ui/src/app/dashboard/components/widgets/status/status-config.ts
+++ b/ui/src/app/dashboard/components/widgets/status/status-config.ts
@@ -20,7 +20,7 @@ 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 "../../../../core-model/gen/streampipes-model";
+import {DashboardWidgetSettings} from "../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 export class StatusWidgetConfig extends WidgetConfig {
 
diff --git a/ui/src/app/dashboard/components/widgets/table/table-config.ts b/ui/src/app/dashboard/components/widgets/table/table-config.ts
index 0f364d2..3ccb24a 100644
--- a/ui/src/app/dashboard/components/widgets/table/table-config.ts
+++ b/ui/src/app/dashboard/components/widgets/table/table-config.ts
@@ -20,7 +20,7 @@ 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 "../../../../core-model/gen/streampipes-model";
+import {DashboardWidgetSettings} from "../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 export class TableConfig extends WidgetConfig {
 
@@ -42,4 +42,4 @@ export class TableConfig extends WidgetConfig {
             .build();
     }
 
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/dashboard/components/widgets/trafficlight/traffic-light-config.ts b/ui/src/app/dashboard/components/widgets/trafficlight/traffic-light-config.ts
index a2d5960..50e2c0b 100644
--- a/ui/src/app/dashboard/components/widgets/trafficlight/traffic-light-config.ts
+++ b/ui/src/app/dashboard/components/widgets/trafficlight/traffic-light-config.ts
@@ -19,7 +19,7 @@ import {WidgetConfigBuilder} from "../../../registry/widget-config-builder";
 import {SchemaRequirementsBuilder} from "../../../sdk/schema-requirements-builder";
 import {WidgetConfig} from "../base/base-config";
 import {EpRequirements} from "../../../sdk/ep-requirements";
-import {DashboardWidgetSettings} from "../../../../core-model/gen/streampipes-model";
+import {DashboardWidgetSettings} from "../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 export class TrafficLightConfig extends WidgetConfig {
 
@@ -47,4 +47,4 @@ export class TrafficLightConfig extends WidgetConfig {
             .requiredIntegerParameter(TrafficLightConfig.WARNING_RANGE_KEY, "Warning range (percent)", "")
             .build();
     }
-}
\ No newline at end of file
+}
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 048af2c..c7b9543 100644
--- a/ui/src/app/dashboard/components/widgets/wordcloud/wordcloud-config.ts
+++ b/ui/src/app/dashboard/components/widgets/wordcloud/wordcloud-config.ts
@@ -20,7 +20,7 @@ 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 "../../../../core-model/gen/streampipes-model";
+import {DashboardWidgetSettings} from "../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 export class WordCloudConfig extends WidgetConfig {
 
diff --git a/ui/src/app/dashboard/components/widgets/wordcloud/wordcloud-widget.component.ts b/ui/src/app/dashboard/components/widgets/wordcloud/wordcloud-widget.component.ts
index e7b728e..f8858c9 100644
--- a/ui/src/app/dashboard/components/widgets/wordcloud/wordcloud-widget.component.ts
+++ b/ui/src/app/dashboard/components/widgets/wordcloud/wordcloud-widget.component.ts
@@ -22,7 +22,7 @@ import {BaseStreamPipesWidget} from "../base/base-widget";
 import {StaticPropertyExtractor} from "../../../sdk/extractor/static-property-extractor";
 import {ResizeService} from "../../../services/resize.service";
 import {DashboardService} from "../../../services/dashboard.service";
-import {EventPropertyList} from "../../../../core-model/gen/streampipes-model";
+import {EventPropertyList} from "../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {WordCloudConfig} from "./wordcloud-config";
 
 import { EChartsOption } from 'echarts';
diff --git a/ui/src/app/dashboard/dialogs/add-widget/add-visualization-dialog.component.ts b/ui/src/app/dashboard/dialogs/add-widget/add-visualization-dialog.component.ts
index 98f26ed..bcd068b 100644
--- a/ui/src/app/dashboard/dialogs/add-widget/add-visualization-dialog.component.ts
+++ b/ui/src/app/dashboard/dialogs/add-widget/add-visualization-dialog.component.ts
@@ -32,8 +32,8 @@ import {
     MappingPropertyNary,
     MappingPropertyUnary,
     VisualizablePipeline
-} from '../../../core-model/gen/streampipes-model';
-import { PipelineService } from '../../../platform-services/apis/pipeline.service';
+} from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
+import { PipelineService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/pipeline.service';
 import { FormBuilder, FormGroup } from '@angular/forms';
 import { DialogRef } from '../../../core-ui/dialog/base-dialog/dialog-ref';
 
diff --git a/ui/src/app/dashboard/models/dashboard.model.ts b/ui/src/app/dashboard/models/dashboard.model.ts
index 9975f70..f33dfd5 100644
--- a/ui/src/app/dashboard/models/dashboard.model.ts
+++ b/ui/src/app/dashboard/models/dashboard.model.ts
@@ -16,7 +16,8 @@
  *
  */
 
-import {GridsterConfig, GridsterItem} from "angular-gridster2";
+import { GridsterConfig, GridsterItem } from 'angular-gridster2';
+import { TimeSettings } from '../../../../projects/streampipes/platform-services/src/lib/model/datalake/DateRange';
 
 export interface DashboardConfig extends GridsterConfig {}
 
@@ -26,18 +27,12 @@ export interface DashboardItem extends GridsterItem {
     id: string;
 }
 
-export interface TimeSettings {
-    startTime: number;
-    endTime: number;
-    dynamicSelection: 15 | 60 | 1440 | 10080 | 43800 | 525600 | -1;
-}
-
 export interface Dashboard {
     id?: string;
     name?: string;
     description?: string;
     displayHeader?: boolean;
-    widgets?: Array<DashboardItem>;
+    widgets?: DashboardItem[];
     dashboardTimeSettings?: TimeSettings;
     dashboardGeneralSettings?: any;
     _id?: string;
diff --git a/ui/src/app/dashboard/registry/widget-config-builder.ts b/ui/src/app/dashboard/registry/widget-config-builder.ts
index e5136ed..31fa82b 100644
--- a/ui/src/app/dashboard/registry/widget-config-builder.ts
+++ b/ui/src/app/dashboard/registry/widget-config-builder.ts
@@ -23,7 +23,7 @@ import {
     ColorPickerStaticProperty,
     DashboardWidgetSettings,
     FreeTextStaticProperty, OneOfStaticProperty, StaticProperty, Option
-} from "../../core-model/gen/streampipes-model";
+} from "../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 export class WidgetConfigBuilder {
 
diff --git a/ui/src/app/dashboard/registry/widget-registry.ts b/ui/src/app/dashboard/registry/widget-registry.ts
index bba3bab..03a4e42 100644
--- a/ui/src/app/dashboard/registry/widget-registry.ts
+++ b/ui/src/app/dashboard/registry/widget-registry.ts
@@ -32,7 +32,7 @@ import {
     DashboardWidgetSettings,
     EventSchema,
     VisualizablePipeline
-} from '../../core-model/gen/streampipes-model';
+} 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";
diff --git a/ui/src/app/dashboard/sdk/collected-schema-requirements.ts b/ui/src/app/dashboard/sdk/collected-schema-requirements.ts
index f9d3ff8..df04858 100644
--- a/ui/src/app/dashboard/sdk/collected-schema-requirements.ts
+++ b/ui/src/app/dashboard/sdk/collected-schema-requirements.ts
@@ -21,7 +21,7 @@ import {
     EventPropertyUnion,
     EventSchema,
     StaticPropertyUnion
-} from "../../core-model/gen/streampipes-model";
+} from "../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 export class CollectedSchemaRequirements {
 
@@ -39,4 +39,4 @@ export class CollectedSchemaRequirements {
     getRequiredMappingProperties(): Array<StaticPropertyUnion> {
         return this.requiredMappingProperties;
     }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/dashboard/sdk/ep-requirements.ts b/ui/src/app/dashboard/sdk/ep-requirements.ts
index 677c14b..c6880c4 100644
--- a/ui/src/app/dashboard/sdk/ep-requirements.ts
+++ b/ui/src/app/dashboard/sdk/ep-requirements.ts
@@ -22,7 +22,7 @@ import {
   EventPropertyList, EventPropertyNested,
   EventPropertyPrimitive,
   EventPropertyUnion
-} from "../../core-model/gen/streampipes-model";
+} from "../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 export class EpRequirements {
 
diff --git a/ui/src/app/dashboard/sdk/extractor/static-property-extractor.ts b/ui/src/app/dashboard/sdk/extractor/static-property-extractor.ts
index 00fcb14..4fb4cbd 100644
--- a/ui/src/app/dashboard/sdk/extractor/static-property-extractor.ts
+++ b/ui/src/app/dashboard/sdk/extractor/static-property-extractor.ts
@@ -22,7 +22,7 @@ import {
     EventSchema, FreeTextStaticProperty, MappingPropertyNary,
     MappingPropertyUnary, OneOfStaticProperty,
     StaticPropertyUnion
-} from "../../../core-model/gen/streampipes-model";
+} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 export class StaticPropertyExtractor {
 
@@ -92,4 +92,4 @@ export class StaticPropertyExtractor {
         return propertyValue.split("::").length > 1 ? propertyValue.split("::")[1] : propertyValue;
     }
 
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/dashboard/sdk/matching/list-property-match.ts b/ui/src/app/dashboard/sdk/matching/list-property-match.ts
index 759a1e6..90408dc 100644
--- a/ui/src/app/dashboard/sdk/matching/list-property-match.ts
+++ b/ui/src/app/dashboard/sdk/matching/list-property-match.ts
@@ -21,7 +21,7 @@ import {
   EventPropertyList,
   EventPropertyPrimitive,
   EventPropertyUnion
-} from "../../../core-model/gen/streampipes-model";
+} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {PrimitivePropertyMatch} from "./primitive-property-match";
 
 export class ListPropertyMatch {
diff --git a/ui/src/app/dashboard/sdk/matching/mapping-property-generator.ts b/ui/src/app/dashboard/sdk/matching/mapping-property-generator.ts
index 1e7c9c7..1dc8bde 100644
--- a/ui/src/app/dashboard/sdk/matching/mapping-property-generator.ts
+++ b/ui/src/app/dashboard/sdk/matching/mapping-property-generator.ts
@@ -17,7 +17,7 @@
  */
 
 import {PropertyMatch} from "./property-match";
-import {EventPropertyUnion} from "../../../core-model/gen/streampipes-model";
+import {EventPropertyUnion} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 export class MappingPropertyGenerator {
 
@@ -44,4 +44,4 @@ export class MappingPropertyGenerator {
     makeSelector(runtimeName: string): string {
         return this.selector + this.separator + runtimeName;
     }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/dashboard/sdk/matching/primitive-property-match.ts b/ui/src/app/dashboard/sdk/matching/primitive-property-match.ts
index be42e17..e538756 100644
--- a/ui/src/app/dashboard/sdk/matching/primitive-property-match.ts
+++ b/ui/src/app/dashboard/sdk/matching/primitive-property-match.ts
@@ -18,7 +18,7 @@
 
 import {DatatypeMatch} from "./datatype-match";
 import {DomainPropertyMatch} from "./domain-property-match";
-import {EventPropertyPrimitive} from "../../../core-model/gen/streampipes-model";
+import {EventPropertyPrimitive} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 export class PrimitivePropertyMatch {
 
@@ -30,4 +30,4 @@ export class PrimitivePropertyMatch {
             return true;
         }
     }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/dashboard/sdk/matching/property-match.ts b/ui/src/app/dashboard/sdk/matching/property-match.ts
index bf4b31f..cdf3108 100644
--- a/ui/src/app/dashboard/sdk/matching/property-match.ts
+++ b/ui/src/app/dashboard/sdk/matching/property-match.ts
@@ -21,7 +21,7 @@ import {
     EventPropertyList,
     EventPropertyPrimitive,
     EventPropertyUnion
-} from "../../../core-model/gen/streampipes-model";
+} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {ListPropertyMatch} from "./list-property-match";
 
 export class PropertyMatch {
diff --git a/ui/src/app/dashboard/sdk/matching/schema-match.ts b/ui/src/app/dashboard/sdk/matching/schema-match.ts
index cec46bf..f537898 100644
--- a/ui/src/app/dashboard/sdk/matching/schema-match.ts
+++ b/ui/src/app/dashboard/sdk/matching/schema-match.ts
@@ -15,7 +15,7 @@
  *   limitations under the License.
  */
 
-import {EventSchema} from "../../../core-model/gen/streampipes-model";
+import {EventSchema} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {PropertyMatch} from "./property-match";
 
 export class SchemaMatch {
@@ -27,4 +27,4 @@ export class SchemaMatch {
                 .eventProperties
                 .some(of => new PropertyMatch().match(req, of)));
     }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/dashboard/sdk/schema-requirements-builder.ts b/ui/src/app/dashboard/sdk/schema-requirements-builder.ts
index a957b46..608a54f 100644
--- a/ui/src/app/dashboard/sdk/schema-requirements-builder.ts
+++ b/ui/src/app/dashboard/sdk/schema-requirements-builder.ts
@@ -21,7 +21,7 @@ import {
     EventPropertyUnion, MappingPropertyNary,
     MappingPropertyUnary, StaticPropertyType,
     StaticPropertyUnion
-} from "../../core-model/gen/streampipes-model";
+} from "../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 export class SchemaRequirementsBuilder {
 
@@ -76,4 +76,4 @@ export class SchemaRequirementsBuilder {
     build() {
         return new CollectedSchemaRequirements(this.requiredEventProperties, this.staticProperties);
     }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/dashboard/services/dashboard.service.ts b/ui/src/app/dashboard/services/dashboard.service.ts
index ec36ed4..96f15c1 100644
--- a/ui/src/app/dashboard/services/dashboard.service.ts
+++ b/ui/src/app/dashboard/services/dashboard.service.ts
@@ -26,8 +26,8 @@ import {
   DashboardWidgetModel,
   Pipeline,
   VisualizablePipeline
-} from '../../core-model/gen/streampipes-model';
-import { PlatformServicesCommons } from '../../platform-services/apis/commons.service';
+} from '../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
+import { PlatformServicesCommons } from '../../../../projects/streampipes/platform-services/src/lib/apis/commons.service';
 
 @Injectable()
 export class DashboardService {
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 6089347..d86cfda 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 '../../../core-model/gen/streampipes-model';
+import { DataExplorerWidgetModel, DataLakeMeasure } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { Tuple2 } from '../../../core-model/base/Tuple2';
 
 @Component({
diff --git a/ui/src/app/data-explorer/components/designer-panel/data-settings/data-explorer-widget-data-settings.component.ts b/ui/src/app/data-explorer/components/designer-panel/data-settings/data-explorer-widget-data-settings.component.ts
index 9637cc4..941f9ed 100644
--- a/ui/src/app/data-explorer/components/designer-panel/data-settings/data-explorer-widget-data-settings.component.ts
+++ b/ui/src/app/data-explorer/components/designer-panel/data-settings/data-explorer-widget-data-settings.component.ts
@@ -17,11 +17,11 @@
  */
 
 import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
-import { DataExplorerWidgetModel, DataLakeMeasure } from '../../../../core-model/gen/streampipes-model';
-import { DataViewDataExplorerService } from '../../../../platform-services/apis/data-view-data-explorer.service';
+import { DataExplorerWidgetModel, DataLakeMeasure } from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
+import { DataViewDataExplorerService } from '../../../../../../projects/streampipes/platform-services/src/lib/apis/data-view-data-explorer.service';
 import { MatSelectChange } from '@angular/material/select';
 import { Tuple2 } from '../../../../core-model/base/Tuple2';
-import { DatalakeRestService } from '../../../../platform-services/apis/datalake-rest.service';
+import { DatalakeRestService } from '../../../../../../projects/streampipes/platform-services/src/lib/apis/datalake-rest.service';
 import { zip } from 'rxjs';
 import { DataExplorerDataConfig, SourceConfig } from '../../../models/dataview-dashboard.model';
 import { WidgetConfigurationService } from '../../../services/widget-configuration.service';
@@ -164,4 +164,4 @@ export class DataExplorerWidgetDataSettingsComponent implements OnInit {
     throw new Error("Unable to copy.");
   }
 
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/data-explorer/components/designer-panel/data-settings/field-selection-panel/field-selection-panel.component.ts b/ui/src/app/data-explorer/components/designer-panel/data-settings/field-selection-panel/field-selection-panel.component.ts
index a191f0d..17aabea 100644
--- a/ui/src/app/data-explorer/components/designer-panel/data-settings/field-selection-panel/field-selection-panel.component.ts
+++ b/ui/src/app/data-explorer/components/designer-panel/data-settings/field-selection-panel/field-selection-panel.component.ts
@@ -18,7 +18,7 @@
 
 import { Component, Input, OnInit } from '@angular/core';
 import { FieldConfig, SourceConfig } from '../../../../models/dataview-dashboard.model';
-import { EventPropertyUnion } from '../../../../../core-model/gen/streampipes-model';
+import { EventPropertyUnion } from '../../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { DataExplorerFieldProviderService } from '../../../../services/data-explorer-field-provider-service';
 import { WidgetConfigurationService } from '../../../../services/widget-configuration.service';
 
diff --git a/ui/src/app/data-explorer/components/designer-panel/data-settings/field-selection/field-selection.component.ts b/ui/src/app/data-explorer/components/designer-panel/data-settings/field-selection/field-selection.component.ts
index fd29d8e..500a3ac 100644
--- a/ui/src/app/data-explorer/components/designer-panel/data-settings/field-selection/field-selection.component.ts
+++ b/ui/src/app/data-explorer/components/designer-panel/data-settings/field-selection/field-selection.component.ts
@@ -18,7 +18,7 @@
 
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
 import { FieldConfig, SourceConfig } from '../../../../models/dataview-dashboard.model';
-import { EventPropertyUnion } from '../../../../../core-model/gen/streampipes-model';
+import { EventPropertyUnion } from '../../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { WidgetConfigurationService } from '../../../../services/widget-configuration.service';
 
 @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 a611a71..0384101 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 '../../../../../core-model/gen/streampipes-model';
+import { EventPropertyUnion } from '../../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @Component({
   selector: 'sp-group-selection-panel',
diff --git a/ui/src/app/data-explorer/components/designer-panel/visualisation-settings/data-explorer-visualisation-settings.component.ts b/ui/src/app/data-explorer/components/designer-panel/visualisation-settings/data-explorer-visualisation-settings.component.ts
index 5d29f51..cd72f6a 100644
--- a/ui/src/app/data-explorer/components/designer-panel/visualisation-settings/data-explorer-visualisation-settings.component.ts
+++ b/ui/src/app/data-explorer/components/designer-panel/visualisation-settings/data-explorer-visualisation-settings.component.ts
@@ -17,7 +17,7 @@
  */
 
 import { Component, Input, OnInit } from '@angular/core';
-import { DataExplorerWidgetModel } from '../../../../core-model/gen/streampipes-model';
+import { DataExplorerWidgetModel } from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { WidgetTypeService } from '../../../services/widget-type.service';
 import { MatSelectChange } from '@angular/material/select';
 import { IWidget } from '../../../models/dataview-dashboard.model';
diff --git a/ui/src/app/data-explorer/components/grid/data-explorer-dashboard-grid.component.ts b/ui/src/app/data-explorer/components/grid/data-explorer-dashboard-grid.component.ts
index af3d5ae..38e65d9 100644
--- a/ui/src/app/data-explorer/components/grid/data-explorer-dashboard-grid.component.ts
+++ b/ui/src/app/data-explorer/components/grid/data-explorer-dashboard-grid.component.ts
@@ -21,9 +21,9 @@ import { GridsterItemComponent, GridType } from 'angular-gridster2';
 import { GridsterInfo } from '../../../dashboard/models/gridster-info.model';
 import { IDataViewDashboardConfig } from '../../models/dataview-dashboard.model';
 import { ResizeService } from '../../services/resize.service';
-import { DataExplorerWidgetModel, DataLakeMeasure } from '../../../core-model/gen/streampipes-model';
+import { DataExplorerWidgetModel, DataLakeMeasure } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { Dashboard, TimeSettings } from '../../../dashboard/models/dashboard.model';
-import { DataViewDataExplorerService } from '../../../platform-services/apis/data-view-data-explorer.service';
+import { DataViewDataExplorerService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/data-view-data-explorer.service';
 
 @Component({
   selector: 'sp-data-explorer-dashboard-grid',
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 d47725f..a8d17d4 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,7 +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 '../../../platform-services/apis/data-view-data-explorer.service';
+import { DataViewDataExplorerService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/data-view-data-explorer.service';
 import { Dashboard } from '../../../dashboard/models/dashboard.model';
 import { Tuple2 } from '../../../core-model/base/Tuple2';
 import { PanelType } from '../../../core-ui/dialog/base-dialog/base-dialog.model';
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 5876071..ed67eb7 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
@@ -20,13 +20,13 @@ import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angu
 import { MatDialog } from '@angular/material/dialog';
 import { Observable, zip } from 'rxjs';
 import { RefreshDashboardService } from '../../services/refresh-dashboard.service';
-import { DataExplorerWidgetModel, DataLakeMeasure } from '../../../core-model/gen/streampipes-model';
+import { DataExplorerWidgetModel, DataLakeMeasure } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { DataExplorerDashboardGridComponent } from '../grid/data-explorer-dashboard-grid.component';
 import { MatDrawer } from '@angular/material/sidenav';
 import { Tuple2 } from '../../../core-model/base/Tuple2';
 import { Dashboard, DashboardItem, TimeSettings } from '../../../dashboard/models/dashboard.model';
 import { DataExplorerDesignerPanelComponent } from '../designer-panel/data-explorer-designer-panel.component';
-import { DataViewDataExplorerService } from '../../../platform-services/apis/data-view-data-explorer.service';
+import { DataViewDataExplorerService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/data-view-data-explorer.service';
 import { TimeSelectionService } from '../../services/time-selection.service';
 
 @Component({
diff --git a/ui/src/app/data-explorer/components/widget/data-explorer-dashboard-widget.component.ts b/ui/src/app/data-explorer/components/widget/data-explorer-dashboard-widget.component.ts
index 51b841b..e70737d 100644
--- a/ui/src/app/data-explorer/components/widget/data-explorer-dashboard-widget.component.ts
+++ b/ui/src/app/data-explorer/components/widget/data-explorer-dashboard-widget.component.ts
@@ -27,14 +27,14 @@ import {
 } from '@angular/core';
 import { MatDialog } from '@angular/material/dialog';
 import { GridsterItemComponent } from 'angular-gridster2';
-import { DateRange } from '../../../core-model/datalake/DateRange';
+import { DateRange } from '../../../../../projects/streampipes/platform-services/src/lib/model/datalake/DateRange';
 import {
   DataExplorerWidgetModel,
   DataLakeMeasure
-} from '../../../core-model/gen/streampipes-model';
+} from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { DataDownloadDialog } from '../datadownloadDialog/dataDownload.dialog';
 import { DashboardItem, TimeSettings } from '../../../dashboard/models/dashboard.model';
-import { DataViewDataExplorerService } from '../../../platform-services/apis/data-view-data-explorer.service';
+import { DataViewDataExplorerService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/data-view-data-explorer.service';
 import { interval } from 'rxjs';
 import { takeWhile } from 'rxjs/operators';
 import { DataExplorerWidgetRegistry } from '../../registry/data-explorer-widget-registry';
diff --git a/ui/src/app/data-explorer/components/widgets/base/base-data-explorer-widget.directive.ts b/ui/src/app/data-explorer/components/widgets/base/base-data-explorer-widget.directive.ts
index 0540684..d6a75c2 100644
--- a/ui/src/app/data-explorer/components/widgets/base/base-data-explorer-widget.directive.ts
+++ b/ui/src/app/data-explorer/components/widgets/base/base-data-explorer-widget.directive.ts
@@ -18,11 +18,11 @@
 
 import { Directive, EventEmitter, HostBinding, Input, OnDestroy, OnInit, Output } from '@angular/core';
 import { GridsterItem, GridsterItemComponent } from 'angular-gridster2';
-import { DataExplorerWidgetModel, SpQueryResult } from '../../../../core-model/gen/streampipes-model';
+import { DataExplorerWidgetModel, SpQueryResult } from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { WidgetConfigurationService } from '../../../services/widget-configuration.service';
 import { DashboardItem, TimeSettings } from '../../../../dashboard/models/dashboard.model';
 import { ResizeService } from '../../../services/resize.service';
-import { DatalakeRestService } from '../../../../platform-services/apis/datalake-rest.service';
+import { DatalakeRestService } from '../../../../../../projects/streampipes/platform-services/src/lib/apis/datalake-rest.service';
 import { DataViewQueryGeneratorService } from '../../../services/data-view-query-generator.service';
 import { DataExplorerDataConfig, DataExplorerField, FieldProvider } from '../../../models/dataview-dashboard.model';
 import { Observable, Subscription, zip } from 'rxjs';
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 cabef16..5f3850c 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 '../../../../core-model/gen/streampipes-model';
+} from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 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/base/data-explorer-widget-data.ts b/ui/src/app/data-explorer/components/widgets/base/data-explorer-widget-data.ts
index d66c48c..d3166b8 100644
--- a/ui/src/app/data-explorer/components/widgets/base/data-explorer-widget-data.ts
+++ b/ui/src/app/data-explorer/components/widgets/base/data-explorer-widget-data.ts
@@ -19,7 +19,7 @@
 import { EventEmitter } from '@angular/core';
 import { GridsterItem, GridsterItemComponent } from 'angular-gridster2';
 import { DashboardItem, TimeSettings } from '../../../../dashboard/models/dashboard.model';
-import { DataExplorerWidgetModel } from '../../../../core-model/gen/streampipes-model';
+import { DataExplorerWidgetModel } from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 export interface BaseWidgetData<T extends DataExplorerWidgetModel> {
   removeWidgetCallback: EventEmitter<boolean>;
diff --git a/ui/src/app/data-explorer/components/widgets/correlation-chart/correlation-chart-widget.component.ts b/ui/src/app/data-explorer/components/widgets/correlation-chart/correlation-chart-widget.component.ts
index ad0e2d4..cf036a0 100644
--- a/ui/src/app/data-explorer/components/widgets/correlation-chart/correlation-chart-widget.component.ts
+++ b/ui/src/app/data-explorer/components/widgets/correlation-chart/correlation-chart-widget.component.ts
@@ -20,7 +20,7 @@ import { Component, OnInit } from '@angular/core';
 import { BaseDataExplorerWidgetDirective } from '../base/base-data-explorer-widget.directive';
 import { CorrelationChartWidgetModel } from './model/correlation-chart-widget.model';
 import { DataExplorerField } from '../../../models/dataview-dashboard.model';
-import { SpQueryResult } from '../../../../core-model/gen/streampipes-model';
+import { SpQueryResult } from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { throwToolbarMixedModesError } from '@angular/material/toolbar';
 
 @Component({
diff --git a/ui/src/app/data-explorer/components/widgets/correlation-chart/model/correlation-chart-widget.model.ts b/ui/src/app/data-explorer/components/widgets/correlation-chart/model/correlation-chart-widget.model.ts
index 3acdf46..9156baa 100644
--- a/ui/src/app/data-explorer/components/widgets/correlation-chart/model/correlation-chart-widget.model.ts
+++ b/ui/src/app/data-explorer/components/widgets/correlation-chart/model/correlation-chart-widget.model.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { DataExplorerWidgetModel } from '../../../../../core-model/gen/streampipes-model';
+import { DataExplorerWidgetModel } from '../../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { DataExplorerDataConfig, DataExplorerField, DataExplorerVisConfig } from '../../../../models/dataview-dashboard.model';
 
 export interface CorrelationChartVisConfig extends DataExplorerVisConfig {
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 4bfc6fe..75ad9eb 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,7 +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 '../../../../core-model/gen/streampipes-model';
+import { SpQueryResult } from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { THIS_EXPR } from '@angular/compiler/src/output/output_ast';
 
 @Component({
diff --git a/ui/src/app/data-explorer/components/widgets/distribution-chart/model/distribution-chart-widget.model.ts b/ui/src/app/data-explorer/components/widgets/distribution-chart/model/distribution-chart-widget.model.ts
index 71def64..17b4e27 100644
--- a/ui/src/app/data-explorer/components/widgets/distribution-chart/model/distribution-chart-widget.model.ts
+++ b/ui/src/app/data-explorer/components/widgets/distribution-chart/model/distribution-chart-widget.model.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { DataExplorerWidgetModel } from '../../../../../core-model/gen/streampipes-model';
+import { DataExplorerWidgetModel } from '../../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { DataExplorerDataConfig, DataExplorerField, DataExplorerVisConfig } from '../../../../models/dataview-dashboard.model';
 
 
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 b745049..2f640e7 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 '../../../../core-model/gen/streampipes-model';
+import { SpQueryResult } from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 import { BaseDataExplorerWidgetDirective } from '../base/base-data-explorer-widget.directive';
 import { HeatmapWidgetModel } from './model/heatmap-widget.model';
diff --git a/ui/src/app/data-explorer/components/widgets/heatmap/model/heatmap-widget.model.ts b/ui/src/app/data-explorer/components/widgets/heatmap/model/heatmap-widget.model.ts
index 454ce6f..9326988 100644
--- a/ui/src/app/data-explorer/components/widgets/heatmap/model/heatmap-widget.model.ts
+++ b/ui/src/app/data-explorer/components/widgets/heatmap/model/heatmap-widget.model.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { DataExplorerWidgetModel } from '../../../../../core-model/gen/streampipes-model';
+import { DataExplorerWidgetModel } from '../../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import {
   DataExplorerDataConfig,
   DataExplorerField,
diff --git a/ui/src/app/data-explorer/components/widgets/image/image-widget.component.ts b/ui/src/app/data-explorer/components/widgets/image/image-widget.component.ts
index e1d109c..7231368 100644
--- a/ui/src/app/data-explorer/components/widgets/image/image-widget.component.ts
+++ b/ui/src/app/data-explorer/components/widgets/image/image-widget.component.ts
@@ -19,7 +19,7 @@
 import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';
 import { MatSort } from '@angular/material/sort';
 import { BaseDataExplorerWidgetDirective } from '../base/base-data-explorer-widget.directive';
-import { EventPropertyUnion, EventSchema, SpQueryResult } from '../../../../core-model/gen/streampipes-model';
+import { EventPropertyUnion, EventSchema, SpQueryResult } from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { ImageWidgetModel } from './model/image-widget.model';
 import { DatalakeQueryParameters } from '../../../../core-services/datalake/DatalakeQueryParameters';
 import { DatalakeQueryParameterBuilder } from '../../../../core-services/datalake/DatalakeQueryParameterBuilder';
diff --git a/ui/src/app/data-explorer/components/widgets/image/model/image-widget.model.ts b/ui/src/app/data-explorer/components/widgets/image/model/image-widget.model.ts
index 837d330..e2c2e3b 100644
--- a/ui/src/app/data-explorer/components/widgets/image/model/image-widget.model.ts
+++ b/ui/src/app/data-explorer/components/widgets/image/model/image-widget.model.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { DataExplorerWidgetModel } from '../../../../../core-model/gen/streampipes-model';
+import { DataExplorerWidgetModel } from '../../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { DataExplorerDataConfig, DataExplorerField, DataExplorerVisConfig } from '../../../../models/dataview-dashboard.model';
 
 export interface ImageWidgetVisConfig extends DataExplorerVisConfig {
diff --git a/ui/src/app/data-explorer/components/widgets/indicator/indicator-chart-widget.component.ts b/ui/src/app/data-explorer/components/widgets/indicator/indicator-chart-widget.component.ts
index 615c719..7ec722e 100644
--- a/ui/src/app/data-explorer/components/widgets/indicator/indicator-chart-widget.component.ts
+++ b/ui/src/app/data-explorer/components/widgets/indicator/indicator-chart-widget.component.ts
@@ -20,7 +20,7 @@ import { Component, OnInit } from '@angular/core';
 import { BaseDataExplorerWidgetDirective } from '../base/base-data-explorer-widget.directive';
 import { IndicatorChartWidgetModel } from './model/indicator-chart-widget.model';
 import { DataExplorerField } from '../../../models/dataview-dashboard.model';
-import { SpQueryResult } from '../../../../core-model/gen/streampipes-model';
+import { SpQueryResult } from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @Component({
   selector: 'sp-data-explorer-indicator-chart-widget',
diff --git a/ui/src/app/data-explorer/components/widgets/indicator/model/indicator-chart-widget.model.ts b/ui/src/app/data-explorer/components/widgets/indicator/model/indicator-chart-widget.model.ts
index 9050963..fb35141 100644
--- a/ui/src/app/data-explorer/components/widgets/indicator/model/indicator-chart-widget.model.ts
+++ b/ui/src/app/data-explorer/components/widgets/indicator/model/indicator-chart-widget.model.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { DataExplorerWidgetModel } from '../../../../../core-model/gen/streampipes-model';
+import { DataExplorerWidgetModel } from '../../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { DataExplorerDataConfig, DataExplorerField, DataExplorerVisConfig } from '../../../../models/dataview-dashboard.model';
 
 export interface IndicatorChartVisConfig extends DataExplorerVisConfig {
diff --git a/ui/src/app/data-explorer/components/widgets/map/map-widget.component.ts b/ui/src/app/data-explorer/components/widgets/map/map-widget.component.ts
index f55326b..bde4fa1 100644
--- a/ui/src/app/data-explorer/components/widgets/map/map-widget.component.ts
+++ b/ui/src/app/data-explorer/components/widgets/map/map-widget.component.ts
@@ -22,7 +22,7 @@ import { Content, icon, LatLng, latLng, LatLngExpression, Map, marker, Marker, p
 import { BaseDataExplorerWidgetDirective } from '../base/base-data-explorer-widget.directive';
 import { MapWidgetModel } from './model/map-widget.model';
 import { DataExplorerField } from '../../../models/dataview-dashboard.model';
-import { SpQueryResult } from '../../../../core-model/gen/streampipes-model';
+import { SpQueryResult } from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @Component({
   selector: 'sp-data-explorer-map-widget',
diff --git a/ui/src/app/data-explorer/components/widgets/map/model/map-widget.model.ts b/ui/src/app/data-explorer/components/widgets/map/model/map-widget.model.ts
index dbaa22a..4f13cf5 100644
--- a/ui/src/app/data-explorer/components/widgets/map/model/map-widget.model.ts
+++ b/ui/src/app/data-explorer/components/widgets/map/model/map-widget.model.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { DataExplorerWidgetModel } from '../../../../../core-model/gen/streampipes-model';
+import { DataExplorerWidgetModel } from '../../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import {
   DataExplorerDataConfig,
   DataExplorerField,
diff --git a/ui/src/app/data-explorer/components/widgets/table/model/table-widget.model.ts b/ui/src/app/data-explorer/components/widgets/table/model/table-widget.model.ts
index 928d5d4..d79f8af 100644
--- a/ui/src/app/data-explorer/components/widgets/table/model/table-widget.model.ts
+++ b/ui/src/app/data-explorer/components/widgets/table/model/table-widget.model.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { DataExplorerWidgetModel } from '../../../../../core-model/gen/streampipes-model';
+import { DataExplorerWidgetModel } from '../../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import {
   DataExplorerDataConfig,
   DataExplorerField,
diff --git a/ui/src/app/data-explorer/components/widgets/table/table-widget.component.ts b/ui/src/app/data-explorer/components/widgets/table/table-widget.component.ts
index 23cd731..dbc5671 100644
--- a/ui/src/app/data-explorer/components/widgets/table/table-widget.component.ts
+++ b/ui/src/app/data-explorer/components/widgets/table/table-widget.component.ts
@@ -22,7 +22,7 @@ import { MatTableDataSource } from '@angular/material/table';
 import { BaseDataExplorerWidgetDirective } from '../base/base-data-explorer-widget.directive';
 import { TableWidgetModel } from './model/table-widget.model';
 import { DataExplorerField } from '../../../models/dataview-dashboard.model';
-import { SpQueryResult } from '../../../../core-model/gen/streampipes-model';
+import { SpQueryResult } from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @Component({
   selector: 'sp-data-explorer-table-widget',
diff --git a/ui/src/app/data-explorer/components/widgets/time-series-chart/config/time-series-chart-widget-config.component.ts b/ui/src/app/data-explorer/components/widgets/time-series-chart/config/time-series-chart-widget-config.component.ts
index 7f12c14..96fe04d 100644
--- a/ui/src/app/data-explorer/components/widgets/time-series-chart/config/time-series-chart-widget-config.component.ts
+++ b/ui/src/app/data-explorer/components/widgets/time-series-chart/config/time-series-chart-widget-config.component.ts
@@ -20,7 +20,7 @@ import { Component, OnInit } from '@angular/core';
 import { BaseWidgetConfig } from '../../base/base-widget-config';
 import { TimeSeriesChartVisConfig, TimeSeriesChartWidgetModel } from '../model/time-series-chart-widget.model';
 import { WidgetConfigurationService } from '../../../../services/widget-configuration.service';
-import { EventPropertyUnion } from '../../../../../core-model/gen/streampipes-model';
+import { EventPropertyUnion } from '../../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { DataExplorerFieldProviderService } from '../../../../services/data-explorer-field-provider-service';
 import { DataExplorerField } from '../../../../models/dataview-dashboard.model';
 import { WidgetType } from '../../../../registry/data-explorer-widgets';
diff --git a/ui/src/app/data-explorer/components/widgets/time-series-chart/model/time-series-chart-widget.model.ts b/ui/src/app/data-explorer/components/widgets/time-series-chart/model/time-series-chart-widget.model.ts
index 3060dd3..5935324 100644
--- a/ui/src/app/data-explorer/components/widgets/time-series-chart/model/time-series-chart-widget.model.ts
+++ b/ui/src/app/data-explorer/components/widgets/time-series-chart/model/time-series-chart-widget.model.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { DataExplorerWidgetModel, EventPropertyUnion } from '../../../../../core-model/gen/streampipes-model';
+import { DataExplorerWidgetModel, EventPropertyUnion } from '../../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { DataExplorerDataConfig, DataExplorerField, DataExplorerVisConfig } from '../../../../models/dataview-dashboard.model';
 
 export interface TimeSeriesChartVisConfig extends DataExplorerVisConfig {
diff --git a/ui/src/app/data-explorer/components/widgets/time-series-chart/time-series-chart-widget.component.ts b/ui/src/app/data-explorer/components/widgets/time-series-chart/time-series-chart-widget.component.ts
index fb000c1..dc929c8 100644
--- a/ui/src/app/data-explorer/components/widgets/time-series-chart/time-series-chart-widget.component.ts
+++ b/ui/src/app/data-explorer/components/widgets/time-series-chart/time-series-chart-widget.component.ts
@@ -20,7 +20,7 @@ import { Component, OnInit } from '@angular/core';
 import { BaseDataExplorerWidgetDirective } from '../base/base-data-explorer-widget.directive';
 import { TimeSeriesChartWidgetModel } from './model/time-series-chart-widget.model';
 import { DataExplorerField } from '../../../models/dataview-dashboard.model';
-import { SpQueryResult } from '../../../../core-model/gen/streampipes-model';
+import { SpQueryResult } from '../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @Component({
   selector: 'sp-data-explorer-time-series-chart-widget',
diff --git a/ui/src/app/data-explorer/components/widgets/utils/group-configuration/group-configuration.component.ts b/ui/src/app/data-explorer/components/widgets/utils/group-configuration/group-configuration.component.ts
index 3684f8d..9dc1916 100644
--- a/ui/src/app/data-explorer/components/widgets/utils/group-configuration/group-configuration.component.ts
+++ b/ui/src/app/data-explorer/components/widgets/utils/group-configuration/group-configuration.component.ts
@@ -17,7 +17,7 @@
  */
 
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { EventPropertyUnion } from '../../../../../core-model/gen/streampipes-model';
+import { EventPropertyUnion } from '../../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @Component({
   selector: 'sp-group-configuration',
diff --git a/ui/src/app/data-explorer/data-explorer.component.ts b/ui/src/app/data-explorer/data-explorer.component.ts
index dcb2df6..476826c 100644
--- a/ui/src/app/data-explorer/data-explorer.component.ts
+++ b/ui/src/app/data-explorer/data-explorer.component.ts
@@ -17,7 +17,7 @@
  */
 
 import { Component, OnInit, ViewChild } from '@angular/core';
-import { DataViewDataExplorerService } from '../platform-services/apis/data-view-data-explorer.service';
+import { DataViewDataExplorerService } from '../../../projects/streampipes/platform-services/src/lib/apis/data-view-data-explorer.service';
 import { RefreshDashboardService } from './services/refresh-dashboard.service';
 import { DataExplorerDashboardPanelComponent } from './components/panel/data-explorer-dashboard-panel.component';
 import { Dashboard } from '../dashboard/models/dashboard.model';
diff --git a/ui/src/app/data-explorer/data-explorer.module.ts b/ui/src/app/data-explorer/data-explorer.module.ts
index b76f721..268d660 100644
--- a/ui/src/app/data-explorer/data-explorer.module.ts
+++ b/ui/src/app/data-explorer/data-explorer.module.ts
@@ -60,7 +60,7 @@ import { SelectPropertiesComponent } from './components/widgets/utils/select-pro
 import { SelectColorPropertiesComponent } from './components/widgets/utils/select-color-properties/select-color-properties.component';
 import { DataExplorerComponent } from './data-explorer.component';
 import { DataExplorerEditDataViewDialogComponent } from './dialogs/edit-dashboard/data-explorer-edit-data-view-dialog.component';
-import { DataViewDataExplorerService } from '../platform-services/apis/data-view-data-explorer.service';
+import { DataViewDataExplorerService } from '../../../projects/streampipes/platform-services/src/lib/apis/data-view-data-explorer.service';
 import { RefreshDashboardService } from './services/refresh-dashboard.service';
 import { ResizeService } from './services/resize.service';
 import { GroupConfigurationComponent } from './components/widgets/utils/group-configuration/group-configuration.component';
@@ -77,7 +77,7 @@ import { DataExplorerWidgetDataSettingsComponent } from './components/designer-p
 import { WidgetConfigurationService } from './services/widget-configuration.service';
 import { TimeSeriesChartWidgetConfigComponent } from './components/widgets/time-series-chart/config/time-series-chart-widget-config.component';
 import { ImageWidgetConfigComponent } from './components/widgets/image/config/image-widget-config.component';
-import { DatalakeRestService } from '../platform-services/apis/datalake-rest.service';
+import { DatalakeRestService } from '../../../projects/streampipes/platform-services/src/lib/apis/datalake-rest.service';
 import { IndicatorChartWidgetComponent } from './components/widgets/indicator/indicator-chart-widget.component';
 import { IndicatorWidgetConfigComponent } from './components/widgets/indicator/config/indicator-chart-widget-config.component';
 import { CorrelationChartWidgetComponent } from './components/widgets/correlation-chart/correlation-chart-widget.component';
diff --git a/ui/src/app/data-explorer/dialogs/edit-dashboard/data-explorer-edit-data-view-dialog.component.ts b/ui/src/app/data-explorer/dialogs/edit-dashboard/data-explorer-edit-data-view-dialog.component.ts
index 955a024..07c17c6 100644
--- a/ui/src/app/data-explorer/dialogs/edit-dashboard/data-explorer-edit-data-view-dialog.component.ts
+++ b/ui/src/app/data-explorer/dialogs/edit-dashboard/data-explorer-edit-data-view-dialog.component.ts
@@ -17,7 +17,7 @@
  */
 
 import { Component, Input, OnInit } from '@angular/core';
-import { DataViewDataExplorerService } from '../../../platform-services/apis/data-view-data-explorer.service';
+import { DataViewDataExplorerService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/data-view-data-explorer.service';
 import { Dashboard } from '../../../dashboard/models/dashboard.model';
 import { DialogRef } from '../../../core-ui/dialog/base-dialog/dialog-ref';
 
diff --git a/ui/src/app/data-explorer/models/dataview-dashboard.model.ts b/ui/src/app/data-explorer/models/dataview-dashboard.model.ts
index 25f86a4..5a556a1 100644
--- a/ui/src/app/data-explorer/models/dataview-dashboard.model.ts
+++ b/ui/src/app/data-explorer/models/dataview-dashboard.model.ts
@@ -17,7 +17,7 @@
  */
 
 import { GridsterConfig } from 'angular-gridster2';
-import { DataLakeMeasure } from '../../core-model/gen/streampipes-model';
+import { DataLakeMeasure } from '../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { WidgetType } from '../registry/data-explorer-widgets';
 
 
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 daabd56..70bf60e 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 '../../core-model/gen/streampipes-model';
+} from '../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 
 @Injectable()
diff --git a/ui/src/app/data-explorer/services/data-view-query-generator.service.ts b/ui/src/app/data-explorer/services/data-view-query-generator.service.ts
index 4f85e34..624454a 100644
--- a/ui/src/app/data-explorer/services/data-view-query-generator.service.ts
+++ b/ui/src/app/data-explorer/services/data-view-query-generator.service.ts
@@ -21,9 +21,8 @@ import { DataExplorerDataConfig, SourceConfig } from '../models/dataview-dashboa
 import { DatalakeQueryParameterBuilder } from '../../core-services/datalake/DatalakeQueryParameterBuilder';
 import { Observable } from 'rxjs';
 import { DatalakeQueryParameters } from '../../core-services/datalake/DatalakeQueryParameters';
-import { DatalakeRestService } from '../../platform-services/apis/datalake-rest.service';
-import { SpQueryResult } from '../../core-model/gen/streampipes-model';
-import { countColumn } from 'codemirror';
+import { DatalakeRestService } from '../../../../projects/streampipes/platform-services/src/lib/apis/datalake-rest.service';
+import { SpQueryResult } from '../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 
 @Injectable()
diff --git a/ui/src/app/editor/components/output-strategy/base/BaseOutputStrategy.ts b/ui/src/app/editor/components/output-strategy/base/BaseOutputStrategy.ts
index 79e0dd4..933e444 100644
--- a/ui/src/app/editor/components/output-strategy/base/BaseOutputStrategy.ts
+++ b/ui/src/app/editor/components/output-strategy/base/BaseOutputStrategy.ts
@@ -21,7 +21,7 @@ import {FormGroup} from "@angular/forms";
 import {
   DataProcessorInvocation,
   OutputStrategy
-} from "../../../../core-model/gen/streampipes-model";
+} from "../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 @Directive()
 export abstract class BaseOutputStrategy<T extends OutputStrategy> {
@@ -42,4 +42,4 @@ export abstract class BaseOutputStrategy<T extends OutputStrategy> {
 
   }
   
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/editor/components/output-strategy/custom-output/custom-output-strategy.component.ts b/ui/src/app/editor/components/output-strategy/custom-output/custom-output-strategy.component.ts
index e39c71a..fafcf20 100644
--- a/ui/src/app/editor/components/output-strategy/custom-output/custom-output-strategy.component.ts
+++ b/ui/src/app/editor/components/output-strategy/custom-output/custom-output-strategy.component.ts
@@ -17,7 +17,7 @@
  */
 
 import {Component, OnInit} from "@angular/core";
-import {CustomOutputStrategy} from "../../../../core-model/gen/streampipes-model";
+import {CustomOutputStrategy} from "../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {BaseOutputStrategy} from "../base/BaseOutputStrategy";
 import {PropertySelectorService} from "../../../../services/property-selector.service";
 import {FormControl} from "@angular/forms";
@@ -69,4 +69,4 @@ export class CustomOutputStrategyComponent extends BaseOutputStrategy<CustomOutp
       this.parentForm.controls["output-strategy"].setErrors(undefined);
     }
   }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/editor/components/output-strategy/output-strategy.component.ts b/ui/src/app/editor/components/output-strategy/output-strategy.component.ts
index db33b0f..d918f08 100644
--- a/ui/src/app/editor/components/output-strategy/output-strategy.component.ts
+++ b/ui/src/app/editor/components/output-strategy/output-strategy.component.ts
@@ -17,7 +17,7 @@
  */
 
 import {Component, Input, OnInit} from "@angular/core";
-import {DataProcessorInvocation, OutputStrategy} from "../../../core-model/gen/streampipes-model";
+import {DataProcessorInvocation, OutputStrategy} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {FormGroup} from "@angular/forms";
 
 @Component({
@@ -47,4 +47,4 @@ export class OutputStrategyComponent implements OnInit {
     this.customizableOutputStrategy = this.outputStrategy['@class'] === 'org.apache.streampipes.model.output.CustomOutputStrategy' ||
         this.outputStrategy['@class'] === 'org.apache.streampipes.model.output.UserDefinedOutputStrategy';
   }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/editor/components/output-strategy/property-selection/property-selection.component.ts b/ui/src/app/editor/components/output-strategy/property-selection/property-selection.component.ts
index 8cfefc6..3ca484a 100644
--- a/ui/src/app/editor/components/output-strategy/property-selection/property-selection.component.ts
+++ b/ui/src/app/editor/components/output-strategy/property-selection/property-selection.component.ts
@@ -21,7 +21,7 @@ import {
   CustomOutputStrategy,
   EventPropertyNested,
   EventPropertyUnion
-} from "../../../../core-model/gen/streampipes-model";
+} from "../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 @Component({
   selector: 'property-selection',
@@ -77,4 +77,4 @@ export class PropertySelectionComponent {
   triggerFormValidation() {
     this.validateForm.emit(true);
   }
-}
\ No newline at end of file
+}
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 c26ff64..f975cc0 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
@@ -21,7 +21,7 @@ import {BaseOutputStrategy} from "../base/BaseOutputStrategy";
 import {
   EventPropertyPrimitive,
   UserDefinedOutputStrategy
-} from "../../../../core-model/gen/streampipes-model";
+} from "../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {FormControl} from "@angular/forms";
 
 @Component({
@@ -99,4 +99,4 @@ export class UserDefinedOutputStrategyComponent extends BaseOutputStrategy<UserD
       this.parentForm.controls["output-strategy"].setErrors(undefined);
     }
   }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/editor/components/pipeline-assembly/pipeline-assembly.component.ts b/ui/src/app/editor/components/pipeline-assembly/pipeline-assembly.component.ts
index 079d03f..b79e69b 100644
--- a/ui/src/app/editor/components/pipeline-assembly/pipeline-assembly.component.ts
+++ b/ui/src/app/editor/components/pipeline-assembly/pipeline-assembly.component.ts
@@ -39,14 +39,14 @@ import { DialogService } from '../../../core-ui/dialog/base-dialog/base-dialog.s
 import { ConfirmDialogComponent } from '../../../core-ui/dialog/confirm-dialog/confirm-dialog.component';
 import { MatDialog } from '@angular/material/dialog';
 import { EditorService } from '../../services/editor.service';
-import { PipelineService } from '../../../platform-services/apis/pipeline.service';
+import { PipelineService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/pipeline.service';
 import { JsplumbFactoryService } from '../../services/jsplumb-factory.service';
 import Panzoom, { PanzoomObject } from '@panzoom/panzoom';
 import { PipelineElementDraggedService } from '../../services/pipeline-element-dragged.service';
 import { PipelineComponent } from '../pipeline/pipeline.component';
-import { PipelineCanvasMetadata } from '../../../core-model/gen/streampipes-model';
+import { PipelineCanvasMetadata } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { forkJoin } from 'rxjs';
-import { PipelineCanvasMetadataService } from '../../../platform-services/apis/pipeline-canvas-metadata.service';
+import { PipelineCanvasMetadataService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/pipeline-canvas-metadata.service';
 import { PipelineElementDiscoveryComponent } from '../../dialog/pipeline-element-discovery/pipeline-element-discovery.component';
 
 
diff --git a/ui/src/app/editor/components/pipeline-element-documentation/pipeline-element-documentation.component.ts b/ui/src/app/editor/components/pipeline-element-documentation/pipeline-element-documentation.component.ts
index 42271ce..6011ab1 100644
--- a/ui/src/app/editor/components/pipeline-element-documentation/pipeline-element-documentation.component.ts
+++ b/ui/src/app/editor/components/pipeline-element-documentation/pipeline-element-documentation.component.ts
@@ -17,7 +17,7 @@
  */
 
 import {Component, Input, OnInit} from "@angular/core";
-import {PipelineElementService} from "../../../platform-services/apis/pipeline-element.service";
+import {PipelineElementService} from "../../../../../projects/streampipes/platform-services/src/lib/apis/pipeline-element.service";
 
 @Component({
   selector: 'pipeline-element-documentation',
@@ -49,4 +49,4 @@ export class PipelineElementDocumentationComponent implements OnInit {
   }
 
 
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/editor/components/pipeline-element-options/pipeline-element-options.component.ts b/ui/src/app/editor/components/pipeline-element-options/pipeline-element-options.component.ts
index 9de810a..f6bbd37 100644
--- a/ui/src/app/editor/components/pipeline-element-options/pipeline-element-options.component.ts
+++ b/ui/src/app/editor/components/pipeline-element-options/pipeline-element-options.component.ts
@@ -28,7 +28,7 @@ import {
   PipelineElementConfig,
   PipelineElementUnion
 } from "../../model/editor.model";
-import {SpDataStream, WildcardTopicDefinition} from "../../../core-model/gen/streampipes-model";
+import {SpDataStream, WildcardTopicDefinition} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {EditorService} from "../../services/editor.service";
 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/editor/components/pipeline-element-recommendation/pipeline-element-recommendation.component.ts b/ui/src/app/editor/components/pipeline-element-recommendation/pipeline-element-recommendation.component.ts
index 2799c44..8c2ae69 100644
--- a/ui/src/app/editor/components/pipeline-element-recommendation/pipeline-element-recommendation.component.ts
+++ b/ui/src/app/editor/components/pipeline-element-recommendation/pipeline-element-recommendation.component.ts
@@ -19,7 +19,7 @@
 import {JsplumbService} from "../../services/jsplumb.service";
 import {AfterViewInit, ChangeDetectorRef, Component, Input, OnInit} from "@angular/core";
 import {PipelineElementConfig} from "../../model/editor.model";
-import {DataProcessorInvocation} from "../../../core-model/gen/streampipes-model";
+import {DataProcessorInvocation} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {SafeCss} from "../../utils/style-sanitizer";
 
 @Component({
@@ -152,4 +152,4 @@ export class PipelineElementRecommendationComponent implements OnInit, AfterView
     this._recommendedElements = recommendedElements;
     this.recommendationsPrepared = true;
   }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/editor/components/pipeline-element-template-config/pipeline-element-template-config.component.ts b/ui/src/app/editor/components/pipeline-element-template-config/pipeline-element-template-config.component.ts
index c402757..0b64b16 100644
--- a/ui/src/app/editor/components/pipeline-element-template-config/pipeline-element-template-config.component.ts
+++ b/ui/src/app/editor/components/pipeline-element-template-config/pipeline-element-template-config.component.ts
@@ -21,7 +21,7 @@ import {InvocablePipelineElementUnion} from "../../model/editor.model";
 import {
   PipelineElementTemplate,
   StaticPropertyUnion
-} from "../../../core-model/gen/streampipes-model";
+} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {PipelineElementTemplateGenerator} from "./pipeline-element-template-generator";
 
 @Component({
diff --git a/ui/src/app/editor/components/pipeline-element-template-config/pipeline-element-template-generator.ts b/ui/src/app/editor/components/pipeline-element-template-config/pipeline-element-template-generator.ts
index 95dbc3f..67ecfa9 100644
--- a/ui/src/app/editor/components/pipeline-element-template-config/pipeline-element-template-generator.ts
+++ b/ui/src/app/editor/components/pipeline-element-template-config/pipeline-element-template-generator.ts
@@ -28,7 +28,7 @@ import {
   StaticPropertyAlternative,
   StaticPropertyAlternatives, StaticPropertyGroup,
   StaticPropertyUnion
-} from "../../../core-model/gen/streampipes-model";
+} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 export class PipelineElementTemplateGenerator {
 
diff --git a/ui/src/app/editor/components/pipeline/pipeline.component.ts b/ui/src/app/editor/components/pipeline/pipeline.component.ts
index 08288fc..da47665 100644
--- a/ui/src/app/editor/components/pipeline/pipeline.component.ts
+++ b/ui/src/app/editor/components/pipeline/pipeline.component.ts
@@ -36,13 +36,13 @@ import {
   PipelinePreviewModel,
   SpDataSet,
   SpDataStream
-} from "../../../core-model/gen/streampipes-model";
+} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {ObjectProvider} from "../../services/object-provider.service";
 import {CustomizeComponent} from "../../dialog/customize/customize.component";
 import {PanelType} from "../../../core-ui/dialog/base-dialog/base-dialog.model";
 import {DialogService} from "../../../core-ui/dialog/base-dialog/base-dialog.service";
 import {EditorService} from "../../services/editor.service";
-import {MatchingResultMessage} from "../../../core-model/gen/streampipes-model-client";
+import {MatchingResultMessage} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client";
 import {MatchingErrorComponent} from "../../dialog/matching-error/matching-error.component";
 import {Tuple2} from "../../../core-model/base/Tuple2";
 import {ConfirmDialogComponent} from "../../../core-ui/dialog/confirm-dialog/confirm-dialog.component";
diff --git a/ui/src/app/editor/dialog/compatible-elements/compatible-elements.component.ts b/ui/src/app/editor/dialog/compatible-elements/compatible-elements.component.ts
index 37e89d8..8893063 100644
--- a/ui/src/app/editor/dialog/compatible-elements/compatible-elements.component.ts
+++ b/ui/src/app/editor/dialog/compatible-elements/compatible-elements.component.ts
@@ -19,7 +19,7 @@
 import {Component, Input} from "@angular/core";
 import {DialogRef} from "../../../core-ui/dialog/base-dialog/dialog-ref";
 import {JsplumbService} from "../../services/jsplumb.service";
-import {DataProcessorInvocation} from "../../../core-model/gen/streampipes-model";
+import {DataProcessorInvocation} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {PipelineElementConfig, PipelineElementUnion} from "../../model/editor.model";
 
 @Component({
diff --git a/ui/src/app/editor/dialog/customize/customize.component.ts b/ui/src/app/editor/dialog/customize/customize.component.ts
index fc9c60c..d719431 100644
--- a/ui/src/app/editor/dialog/customize/customize.component.ts
+++ b/ui/src/app/editor/dialog/customize/customize.component.ts
@@ -31,11 +31,11 @@ import {
   DataProcessorInvocation,
   EventSchema,
   PipelineElementTemplate, PipelineElementTemplateConfig
-} from "../../../core-model/gen/streampipes-model";
+} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {FormBuilder, FormGroup} from "@angular/forms";
 import {ShepherdService} from "../../../services/tour/shepherd.service";
 import {ConfigurationInfo} from "../../../connect/model/ConfigurationInfo";
-import {PipelineElementTemplateService} from "../../../platform-services/apis/pipeline-element-template.service";
+import {PipelineElementTemplateService} from "../../../../../projects/streampipes/platform-services/src/lib/apis/pipeline-element-template.service";
 
 @Component({
   selector: 'customize-pipeline-element',
diff --git a/ui/src/app/editor/dialog/help/help.component.ts b/ui/src/app/editor/dialog/help/help.component.ts
index b42e576..1cca25c 100644
--- a/ui/src/app/editor/dialog/help/help.component.ts
+++ b/ui/src/app/editor/dialog/help/help.component.ts
@@ -18,8 +18,8 @@
 
 import {Component, Input} from "@angular/core";
 import {PipelineElementUnion} from "../../model/editor.model";
-import {PipelineElementService} from "../../../platform-services/apis/pipeline-element.service";
-import {SpDataStream} from "../../../core-model/gen/streampipes-model";
+import {PipelineElementService} from "../../../../../projects/streampipes/platform-services/src/lib/apis/pipeline-element.service";
+import {SpDataStream} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {DialogRef} from "../../../core-ui/dialog/base-dialog/dialog-ref";
 import {PipelineElementTypeUtils} from "../../utils/editor.utils";
 
@@ -111,4 +111,4 @@ export class HelpComponent {
   }
 
 
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/editor/dialog/matching-error/matching-error.component.ts b/ui/src/app/editor/dialog/matching-error/matching-error.component.ts
index ac21a03..9f6cf43 100644
--- a/ui/src/app/editor/dialog/matching-error/matching-error.component.ts
+++ b/ui/src/app/editor/dialog/matching-error/matching-error.component.ts
@@ -18,7 +18,7 @@
 
 import {Component, Input} from "@angular/core";
 import {DialogRef} from "../../../core-ui/dialog/base-dialog/dialog-ref";
-import {MatchingResultMessage} from "../../../core-model/gen/streampipes-model-client";
+import {MatchingResultMessage} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client";
 
 @Component({
   selector: 'matching-error',
@@ -44,4 +44,4 @@ export class MatchingErrorComponent {
   toggleStatusDetailsVisible() {
     this.statusDetailsVisible = !(this.statusDetailsVisible);
   }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/editor/dialog/pipeline-element-discovery/pipeline-element-discovery.component.ts b/ui/src/app/editor/dialog/pipeline-element-discovery/pipeline-element-discovery.component.ts
index c1f2f0f..1a8cbda 100644
--- a/ui/src/app/editor/dialog/pipeline-element-discovery/pipeline-element-discovery.component.ts
+++ b/ui/src/app/editor/dialog/pipeline-element-discovery/pipeline-element-discovery.component.ts
@@ -24,7 +24,7 @@ import {
   DataSinkInvocation,
   SpDataSet,
   SpDataStream
-} from '../../../core-model/gen/streampipes-model';
+} from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { PipelineElementConfig, PipelineElementUnion } from '../../model/editor.model';
 
 @Component({
diff --git a/ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.ts b/ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.ts
index 4041746..1e7b2e2 100644
--- a/ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.ts
+++ b/ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.ts
@@ -18,14 +18,14 @@
 
 import {Component, Input, OnInit} from "@angular/core";
 import {DialogRef} from "../../../core-ui/dialog/base-dialog/dialog-ref";
-import {Message, Pipeline, PipelineCanvasMetadata} from "../../../core-model/gen/streampipes-model";
+import {Message, Pipeline, PipelineCanvasMetadata} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {ObjectProvider} from "../../services/object-provider.service";
 import {EditorService} from "../../services/editor.service";
-import {PipelineService} from "../../../platform-services/apis/pipeline.service";
+import {PipelineService} from "../../../../../projects/streampipes/platform-services/src/lib/apis/pipeline.service";
 import {ShepherdService} from "../../../services/tour/shepherd.service";
 import {FormControl, FormGroup, Validators} from "@angular/forms";
 import {Router} from "@angular/router";
-import {PipelineCanvasMetadataService} from "../../../platform-services/apis/pipeline-canvas-metadata.service";
+import {PipelineCanvasMetadataService} from "../../../../../projects/streampipes/platform-services/src/lib/apis/pipeline-canvas-metadata.service";
 
 @Component({
   selector: 'save-pipeline',
diff --git a/ui/src/app/editor/dialog/welcome-tour/welcome-tour.component.ts b/ui/src/app/editor/dialog/welcome-tour/welcome-tour.component.ts
index d381bc2..044bae6 100644
--- a/ui/src/app/editor/dialog/welcome-tour/welcome-tour.component.ts
+++ b/ui/src/app/editor/dialog/welcome-tour/welcome-tour.component.ts
@@ -21,7 +21,7 @@ import { ShepherdService } from "../../../services/tour/shepherd.service";
 import { Component, Input, OnInit } from "@angular/core";
 import { AppConstants } from "../../../services/app.constants";
 import { AuthService } from "../../../services/auth.service";
-import { UserAccount, UserInfo } from "../../../core-model/gen/streampipes-model-client";
+import { UserAccount, UserInfo } from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client";
 import { ProfileService } from "../../../profile/profile.service";
 
 @Component({
diff --git a/ui/src/app/editor/editor.component.ts b/ui/src/app/editor/editor.component.ts
index a872da1..c727731 100644
--- a/ui/src/app/editor/editor.component.ts
+++ b/ui/src/app/editor/editor.component.ts
@@ -24,8 +24,8 @@ import {
   DataSourceDescription,
   SpDataSet,
   SpDataStream
-} from '../core-model/gen/streampipes-model';
-import { PipelineElementService } from '../platform-services/apis/pipeline-element.service';
+} from '../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
+import { PipelineElementService } from '../../../projects/streampipes/platform-services/src/lib/apis/pipeline-element.service';
 import {
   PipelineElementConfig,
   PipelineElementIdentifier,
diff --git a/ui/src/app/editor/model/editor.model.ts b/ui/src/app/editor/model/editor.model.ts
index ab103db..9487ef5 100644
--- a/ui/src/app/editor/model/editor.model.ts
+++ b/ui/src/app/editor/model/editor.model.ts
@@ -21,7 +21,7 @@ import {
   DataSinkInvocation,
   SpDataSet,
   SpDataStream
-} from "../../core-model/gen/streampipes-model";
+} from "../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {InjectionToken} from "@angular/core";
 import {EditorConstants} from "../constants/editor.constants";
 
diff --git a/ui/src/app/editor/services/editor.service.ts b/ui/src/app/editor/services/editor.service.ts
index c990a46..4c5fdd2 100644
--- a/ui/src/app/editor/services/editor.service.ts
+++ b/ui/src/app/editor/services/editor.service.ts
@@ -29,9 +29,9 @@ import {
   PipelinePreviewModel,
   SpDataSet,
   SpDataStream
-} from '../../core-model/gen/streampipes-model';
+} from '../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { Observable, Subject } from 'rxjs';
-import { PlatformServicesCommons } from '../../platform-services/apis/commons.service';
+import { PlatformServicesCommons } from '../../../../projects/streampipes/platform-services/src/lib/apis/commons.service';
 import { PipelineElementConfig, PipelineElementUnion } from '../model/editor.model';
 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/editor/services/jsplumb.service.ts b/ui/src/app/editor/services/jsplumb.service.ts
index 4a30738..4e8d5f9 100644
--- a/ui/src/app/editor/services/jsplumb.service.ts
+++ b/ui/src/app/editor/services/jsplumb.service.ts
@@ -32,7 +32,7 @@ import {
     SpDataSet,
     SpDataStream,
     SpDataStreamUnion
-} from "../../core-model/gen/streampipes-model";
+} from "../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {PipelineElementDraggedService} from "./pipeline-element-dragged.service";
 import {JsplumbEndpointService} from "./jsplumb-endpoint.service";
 import {JsplumbFactoryService} from "./jsplumb-factory.service";
diff --git a/ui/src/app/editor/services/object-provider.service.ts b/ui/src/app/editor/services/object-provider.service.ts
index ff64406..d81d99e 100644
--- a/ui/src/app/editor/services/object-provider.service.ts
+++ b/ui/src/app/editor/services/object-provider.service.ts
@@ -19,7 +19,7 @@
 import { Injectable } from "@angular/core";
 import { RestApi } from "../../services/rest-api.service";
 import { InvocablePipelineElementUnion, PipelineElementConfig } from "../model/editor.model";
-import { DataSinkInvocation, Pipeline } from "../../core-model/gen/streampipes-model";
+import { DataSinkInvocation, Pipeline } from "../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import { EditorService } from "./editor.service";
 import { JsplumbFactoryService } from "./jsplumb-factory.service";
 
diff --git a/ui/src/app/editor/services/pipeline-element-recommendation.service.ts b/ui/src/app/editor/services/pipeline-element-recommendation.service.ts
index d8df30c..db0e0db 100644
--- a/ui/src/app/editor/services/pipeline-element-recommendation.service.ts
+++ b/ui/src/app/editor/services/pipeline-element-recommendation.service.ts
@@ -23,7 +23,7 @@ import {
   InvocableStreamPipesEntity,
   PipelineElementRecommendation,
   SpDataStream
-} from "../../core-model/gen/streampipes-model";
+} from "../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 @Injectable()
 export class PipelineElementRecommendationService {
diff --git a/ui/src/app/editor/services/pipeline-positioning.service.ts b/ui/src/app/editor/services/pipeline-positioning.service.ts
index bf41d28..224390f 100644
--- a/ui/src/app/editor/services/pipeline-positioning.service.ts
+++ b/ui/src/app/editor/services/pipeline-positioning.service.ts
@@ -28,7 +28,7 @@ import {
     PipelineCanvasMetadata,
     PipelineElementMetadata,
     SpDataStream
-} from "../../core-model/gen/streampipes-model";
+} from "../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {JsplumbFactoryService} from "./jsplumb-factory.service";
 import {ObjectProvider} from "./object-provider.service";
 
diff --git a/ui/src/app/editor/services/pipeline-validation.service.ts b/ui/src/app/editor/services/pipeline-validation.service.ts
index 3ce8951..1cbbdc0 100644
--- a/ui/src/app/editor/services/pipeline-validation.service.ts
+++ b/ui/src/app/editor/services/pipeline-validation.service.ts
@@ -20,7 +20,7 @@ import * as dagre from 'dagre';
 import { JsplumbBridge } from './jsplumb-bridge.service';
 import { Injectable } from '@angular/core';
 import { PipelineElementConfig } from '../model/editor.model';
-import { DataProcessorInvocation, DataSinkInvocation } from '../../core-model/gen/streampipes-model';
+import { DataProcessorInvocation, DataSinkInvocation } from '../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { JsplumbFactoryService } from './jsplumb-factory.service';
 import { UserErrorMessage } from '../../core-model/base/UserErrorMessage';
 
diff --git a/ui/src/app/editor/utils/editor.utils.ts b/ui/src/app/editor/utils/editor.utils.ts
index 0176449..3f3b9bf 100644
--- a/ui/src/app/editor/utils/editor.utils.ts
+++ b/ui/src/app/editor/utils/editor.utils.ts
@@ -27,7 +27,7 @@ import {
   DataSinkInvocation,
   SpDataSet,
   SpDataStream
-} from "../../core-model/gen/streampipes-model";
+} from "../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 export class PipelineElementTypeUtils {
 
@@ -98,4 +98,4 @@ export class PipelineElementTypeUtils {
   static parse(pipelineElement: string): PipelineElementType {
     return PipelineElementType[pipelineElement];
   }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/files/components/file-overview/file-overview.component.ts b/ui/src/app/files/components/file-overview/file-overview.component.ts
index 196d48a..b99d743 100644
--- a/ui/src/app/files/components/file-overview/file-overview.component.ts
+++ b/ui/src/app/files/components/file-overview/file-overview.component.ts
@@ -17,8 +17,8 @@
  */
 
 import { Component, OnInit, ViewChild } from '@angular/core';
-import { FilesService } from '../../../platform-services/apis/files.service';
-import { FileMetadata } from '../../../core-model/gen/streampipes-model';
+import { FilesService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/files.service';
+import { FileMetadata } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { MatTableDataSource } from '@angular/material/table';
 import { MatPaginator } from '@angular/material/paginator';
 import { ConfirmDialogComponent } from '../../../core-ui/dialog/confirm-dialog/confirm-dialog.component';
diff --git a/ui/src/app/files/dialog/file-upload/file-upload-dialog.component.ts b/ui/src/app/files/dialog/file-upload/file-upload-dialog.component.ts
index d0ebec8..f001468 100644
--- a/ui/src/app/files/dialog/file-upload/file-upload-dialog.component.ts
+++ b/ui/src/app/files/dialog/file-upload/file-upload-dialog.component.ts
@@ -19,7 +19,7 @@
 import { Component, OnInit } from '@angular/core';
 import { DialogRef } from '../../../core-ui/dialog/base-dialog/dialog-ref';
 import { HttpEventType, HttpResponse } from '@angular/common/http';
-import { FilesService } from '../../../platform-services/apis/files.service';
+import { FilesService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/files.service';
 
 @Component({
   selector: 'file-upload-dialog-component',
diff --git a/ui/src/app/home/components/status.component.ts b/ui/src/app/home/components/status.component.ts
index ee636cb..8d22c8e 100644
--- a/ui/src/app/home/components/status.component.ts
+++ b/ui/src/app/home/components/status.component.ts
@@ -19,8 +19,8 @@
 import { Component, OnInit } from '@angular/core';
 import { Router } from '@angular/router';
 import { NotificationCountService } from '../../services/notification-count-service';
-import { PipelineElementService } from '../../platform-services/apis/pipeline-element.service';
-import { PipelineService } from '../../platform-services/apis/pipeline.service';
+import { PipelineElementService } from '../../../../projects/streampipes/platform-services/src/lib/apis/pipeline-element.service';
+import { PipelineService } from '../../../../projects/streampipes/platform-services/src/lib/apis/pipeline.service';
 
 @Component({
     selector: 'status',
diff --git a/ui/src/app/login/services/account-activation.service.ts b/ui/src/app/login/services/account-activation.service.ts
index e22a17b..ae1ab16 100644
--- a/ui/src/app/login/services/account-activation.service.ts
+++ b/ui/src/app/login/services/account-activation.service.ts
@@ -18,7 +18,7 @@
 
 import { Injectable } from '@angular/core';
 import { HttpClient } from '@angular/common/http';
-import { PlatformServicesCommons } from '../../platform-services/apis/commons.service';
+import { PlatformServicesCommons } from '../../../../projects/streampipes/platform-services/src/lib/apis/commons.service';
 import { Observable } from 'rxjs';
 
 @Injectable()
diff --git a/ui/src/app/login/services/login.service.ts b/ui/src/app/login/services/login.service.ts
index 7845114..91ef713 100644
--- a/ui/src/app/login/services/login.service.ts
+++ b/ui/src/app/login/services/login.service.ts
@@ -18,7 +18,7 @@
 
 import { Injectable, OnInit } from '@angular/core';
 import { HttpClient } from '@angular/common/http';
-import { PlatformServicesCommons } from '../../platform-services/apis/commons.service';
+import { PlatformServicesCommons } from '../../../../projects/streampipes/platform-services/src/lib/apis/commons.service';
 import { Observable } from 'rxjs';
 import { LoginModel } from '../components/login/login.model';
 import { map } from 'rxjs/operators';
diff --git a/ui/src/app/login/services/restore-password.service.ts b/ui/src/app/login/services/restore-password.service.ts
index 2be5afb..99fbb44 100644
--- a/ui/src/app/login/services/restore-password.service.ts
+++ b/ui/src/app/login/services/restore-password.service.ts
@@ -18,7 +18,7 @@
 
 import { Injectable } from '@angular/core';
 import { HttpClient } from '@angular/common/http';
-import { PlatformServicesCommons } from '../../platform-services/apis/commons.service';
+import { PlatformServicesCommons } from '../../../../projects/streampipes/platform-services/src/lib/apis/commons.service';
 import { Observable } from 'rxjs';
 import { RegistrationModel } from '../components/register/registration.model';
 
diff --git a/ui/src/app/notifications/notifications.component.ts b/ui/src/app/notifications/notifications.component.ts
index 4322bb6..e5a0e07 100644
--- a/ui/src/app/notifications/notifications.component.ts
+++ b/ui/src/app/notifications/notifications.component.ts
@@ -25,8 +25,8 @@ import { Subscription } from 'rxjs';
 import { RxStompService } from '@stomp/ng2-stompjs';
 import { NotificationUtils } from './utils/notifications.utils';
 import { NotificationCountService } from '../services/notification-count-service';
-import { FreeTextStaticProperty, Pipeline } from '../core-model/gen/streampipes-model';
-import { PipelineService } from '../platform-services/apis/pipeline.service';
+import { FreeTextStaticProperty, Pipeline } from '../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
+import { PipelineService } from '../../../projects/streampipes/platform-services/src/lib/apis/pipeline.service';
 import { AuthService } from '../services/auth.service';
 
 @Component({
diff --git a/ui/src/app/notifications/service/notifications.service.ts b/ui/src/app/notifications/service/notifications.service.ts
index 8ac5d39..4d6871f 100644
--- a/ui/src/app/notifications/service/notifications.service.ts
+++ b/ui/src/app/notifications/service/notifications.service.ts
@@ -25,7 +25,7 @@ import {
 import { Injectable } from '@angular/core';
 import { NotificationUtils } from '../utils/notifications.utils';
 import { map } from 'rxjs/operators';
-import { PlatformServicesCommons } from '../../platform-services/apis/commons.service';
+import { PlatformServicesCommons } from '../../../../projects/streampipes/platform-services/src/lib/apis/commons.service';
 
 @Injectable()
 export class NotificationsService {
diff --git a/ui/src/app/pipeline-details/components/actions/pipeline-actions.component.ts b/ui/src/app/pipeline-details/components/actions/pipeline-actions.component.ts
index 64ca74a..9e95aa4 100644
--- a/ui/src/app/pipeline-details/components/actions/pipeline-actions.component.ts
+++ b/ui/src/app/pipeline-details/components/actions/pipeline-actions.component.ts
@@ -18,7 +18,7 @@
 
 import { Component, EventEmitter, Inject, Input, OnInit, Output } from '@angular/core';
 import { PipelineOperationsService } from '../../../pipelines/services/pipeline-operations.service';
-import { Pipeline } from '../../../core-model/gen/streampipes-model';
+import { Pipeline } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { Router } from '@angular/router';
 import { AuthService } from '../../../services/auth.service';
 import { UserRole } from '../../../_enums/user-role.enum';
diff --git a/ui/src/app/pipeline-details/components/edit/quickedit.component.ts b/ui/src/app/pipeline-details/components/edit/quickedit.component.ts
index f20d33c..a4f77b4 100644
--- a/ui/src/app/pipeline-details/components/edit/quickedit.component.ts
+++ b/ui/src/app/pipeline-details/components/edit/quickedit.component.ts
@@ -25,13 +25,13 @@ import {
     OnInit,
     Output
 } from "@angular/core";
-import {PipelineService} from "../../../platform-services/apis/pipeline.service";
+import {PipelineService} from "../../../../../projects/streampipes/platform-services/src/lib/apis/pipeline.service";
 import {
     DataProcessorInvocation,
     DataSinkInvocation,
     EventSchema,
     Pipeline
-} from "../../../core-model/gen/streampipes-model";
+} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {PipelineElementUnion} from "../../../editor/model/editor.model";
 import {FormBuilder, FormGroup} from "@angular/forms";
 
diff --git a/ui/src/app/pipeline-details/components/elements/pipeline-elements-row.component.ts b/ui/src/app/pipeline-details/components/elements/pipeline-elements-row.component.ts
index 57cb3d6..d010efa 100644
--- a/ui/src/app/pipeline-details/components/elements/pipeline-elements-row.component.ts
+++ b/ui/src/app/pipeline-details/components/elements/pipeline-elements-row.component.ts
@@ -18,7 +18,7 @@
 
 import {Component, Input, OnInit} from "@angular/core";
 import {PipelineElementUnion} from "../../../editor/model/editor.model";
-import {Pipeline} from "../../../core-model/gen/streampipes-model";
+import {Pipeline} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {PipelineElementTypeUtils} from "../../../editor/utils/editor.utils";
 
 @Component({
diff --git a/ui/src/app/pipeline-details/components/elements/pipeline-elements.component.ts b/ui/src/app/pipeline-details/components/elements/pipeline-elements.component.ts
index 99ba3e8..3f62442 100644
--- a/ui/src/app/pipeline-details/components/elements/pipeline-elements.component.ts
+++ b/ui/src/app/pipeline-details/components/elements/pipeline-elements.component.ts
@@ -18,7 +18,7 @@
 
 import {Component, Input} from "@angular/core";
 import {PipelineElementUnion} from "../../../editor/model/editor.model";
-import {Pipeline} from "../../../core-model/gen/streampipes-model";
+import {Pipeline} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 @Component({
   selector: 'pipeline-elements',
@@ -35,4 +35,4 @@ export class PipelineElementsComponent {
   constructor() {
 
   }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/pipeline-details/components/monitoring/pipeline-monitoring.component.ts b/ui/src/app/pipeline-details/components/monitoring/pipeline-monitoring.component.ts
index a08de3c..a2ff602 100644
--- a/ui/src/app/pipeline-details/components/monitoring/pipeline-monitoring.component.ts
+++ b/ui/src/app/pipeline-details/components/monitoring/pipeline-monitoring.component.ts
@@ -22,8 +22,8 @@ import {
   Pipeline, PipelineElementMonitoringInfo,
   PipelineMonitoringInfo,
   SpDataSet, SpDataStream
-} from '../../../core-model/gen/streampipes-model';
-import { PipelineMonitoringService } from '../../../platform-services/apis/pipeline-monitoring.service';
+} from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
+import { PipelineMonitoringService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/pipeline-monitoring.service';
 import { PipelineOperationsService } from '../../../pipelines/services/pipeline-operations.service';
 import { AuthService } from '../../../services/auth.service';
 import { UserRole } from '../../../_enums/user-role.enum';
diff --git a/ui/src/app/pipeline-details/components/monitoring/statistics/pipeline-element-statistics.component.ts b/ui/src/app/pipeline-details/components/monitoring/statistics/pipeline-element-statistics.component.ts
index cc3b269..396bbf5 100644
--- a/ui/src/app/pipeline-details/components/monitoring/statistics/pipeline-element-statistics.component.ts
+++ b/ui/src/app/pipeline-details/components/monitoring/statistics/pipeline-element-statistics.component.ts
@@ -22,7 +22,7 @@ import {
   DataProcessorInvocation, DataSinkInvocation,
   Pipeline,
   PipelineElementMonitoringInfo, SpDataSet, SpDataStream,
-} from "../../../../core-model/gen/streampipes-model";
+} from "../../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 import {HistoricalMonitoringData} from "../../model/pipeline-details.model";
 
 @Component({
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 9125e2f..411b336 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 "../../../core-model/gen/streampipes-model";
+import {Pipeline} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 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/pipeline-details/components/status/pipeline-status.component.ts b/ui/src/app/pipeline-details/components/status/pipeline-status.component.ts
index b73001f..f99def5 100644
--- a/ui/src/app/pipeline-details/components/status/pipeline-status.component.ts
+++ b/ui/src/app/pipeline-details/components/status/pipeline-status.component.ts
@@ -17,8 +17,8 @@
  */
 
 import {Component, Input, OnInit} from "@angular/core";
-import {PipelineService} from "../../../platform-services/apis/pipeline.service";
-import {Pipeline, PipelineStatusMessage} from "../../../core-model/gen/streampipes-model";
+import {PipelineService} from "../../../../../projects/streampipes/platform-services/src/lib/apis/pipeline.service";
+import {Pipeline, PipelineStatusMessage} from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 @Component({
     selector: 'pipeline-status',
@@ -48,4 +48,4 @@ export class PipelineStatusComponent implements OnInit {
             });
     }
 
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/pipeline-details/pipeline-details.component.ts b/ui/src/app/pipeline-details/pipeline-details.component.ts
index af1ab6c..392db40 100644
--- a/ui/src/app/pipeline-details/pipeline-details.component.ts
+++ b/ui/src/app/pipeline-details/pipeline-details.component.ts
@@ -17,8 +17,8 @@
  */
 
 import { Component, Inject, OnInit } from '@angular/core';
-import { PipelineService } from '../platform-services/apis/pipeline.service';
-import { Pipeline } from '../core-model/gen/streampipes-model';
+import { PipelineService } from '../../../projects/streampipes/platform-services/src/lib/apis/pipeline.service';
+import { Pipeline } from '../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { PipelineElementUnion } from '../editor/model/editor.model';
 import { ActivatedRoute } from '@angular/router';
 import { AuthService } from '../services/auth.service';
diff --git a/ui/src/app/pipelines/category-already-in-pipeline.filter.ts b/ui/src/app/pipelines/category-already-in-pipeline.filter.ts
index 6def4a8..dab9c14 100644
--- a/ui/src/app/pipelines/category-already-in-pipeline.filter.ts
+++ b/ui/src/app/pipelines/category-already-in-pipeline.filter.ts
@@ -17,7 +17,7 @@
  */
 
 import {Pipe, PipeTransform} from "@angular/core";
-import {Pipeline} from "../core-model/gen/streampipes-model";
+import {Pipeline} from "../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 @Pipe({
 	name: 'categoryAlreadyInPipelineFilter',
diff --git a/ui/src/app/pipelines/components/pipeline-overview/pipeline-overview.component.ts b/ui/src/app/pipelines/components/pipeline-overview/pipeline-overview.component.ts
index 16a8c96..d833f8e 100644
--- a/ui/src/app/pipelines/components/pipeline-overview/pipeline-overview.component.ts
+++ b/ui/src/app/pipelines/components/pipeline-overview/pipeline-overview.component.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { Pipeline } from '../../../core-model/gen/streampipes-model';
+import { Pipeline } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
 import { PipelineOperationsService } from '../../services/pipeline-operations.service';
 import { MatTableDataSource } from '@angular/material/table';
diff --git a/ui/src/app/pipelines/dialog/delete-pipeline/delete-pipeline-dialog.component.ts b/ui/src/app/pipelines/dialog/delete-pipeline/delete-pipeline-dialog.component.ts
index e3192f1..425e01e 100644
--- a/ui/src/app/pipelines/dialog/delete-pipeline/delete-pipeline-dialog.component.ts
+++ b/ui/src/app/pipelines/dialog/delete-pipeline/delete-pipeline-dialog.component.ts
@@ -17,8 +17,8 @@
  */
 
 import { Component, Input } from '@angular/core';
-import { Pipeline } from '../../../core-model/gen/streampipes-model';
-import { PipelineService } from '../../../platform-services/apis/pipeline.service';
+import { Pipeline } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
+import { PipelineService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/pipeline.service';
 import { DialogRef } from '../../../core-ui/dialog/base-dialog/dialog-ref';
 
 @Component({
diff --git a/ui/src/app/pipelines/dialog/import-pipeline/import-pipeline-dialog.component.ts b/ui/src/app/pipelines/dialog/import-pipeline/import-pipeline-dialog.component.ts
index aaf79c9..e95bb4a 100644
--- a/ui/src/app/pipelines/dialog/import-pipeline/import-pipeline-dialog.component.ts
+++ b/ui/src/app/pipelines/dialog/import-pipeline/import-pipeline-dialog.component.ts
@@ -17,10 +17,10 @@
  */
 
 import { Component } from '@angular/core';
-import { PipelineService } from '../../../platform-services/apis/pipeline.service';
+import { PipelineService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/pipeline.service';
 import { DialogRef } from '../../../core-ui/dialog/base-dialog/dialog-ref';
 import { forkJoin } from 'rxjs';
-import { Pipeline } from '../../../core-model/gen/streampipes-model';
+import { Pipeline } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @Component({
     selector: 'sp-import-pipeline-dialog',
diff --git a/ui/src/app/pipelines/dialog/pipeline-categories/pipeline-categories-dialog.component.ts b/ui/src/app/pipelines/dialog/pipeline-categories/pipeline-categories-dialog.component.ts
index 8774813..a7bf803 100644
--- a/ui/src/app/pipelines/dialog/pipeline-categories/pipeline-categories-dialog.component.ts
+++ b/ui/src/app/pipelines/dialog/pipeline-categories/pipeline-categories-dialog.component.ts
@@ -17,8 +17,8 @@
  */
 
 import { Component, Input, OnInit } from '@angular/core';
-import { Pipeline, PipelineCategory } from '../../../core-model/gen/streampipes-model';
-import { PipelineService } from '../../../platform-services/apis/pipeline.service';
+import { Pipeline, PipelineCategory } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
+import { PipelineService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/pipeline.service';
 import { DialogRef } from '../../../core-ui/dialog/base-dialog/dialog-ref';
 
 @Component({
diff --git a/ui/src/app/pipelines/dialog/pipeline-notifications/pipeline-notifications.component.ts b/ui/src/app/pipelines/dialog/pipeline-notifications/pipeline-notifications.component.ts
index a7c191f..2c9bb9c 100644
--- a/ui/src/app/pipelines/dialog/pipeline-notifications/pipeline-notifications.component.ts
+++ b/ui/src/app/pipelines/dialog/pipeline-notifications/pipeline-notifications.component.ts
@@ -17,9 +17,9 @@
  */
 
 import { DialogRef } from '../../../core-ui/dialog/base-dialog/dialog-ref';
-import { Pipeline } from '../../../core-model/gen/streampipes-model';
+import { Pipeline } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { Component, Input, OnInit } from '@angular/core';
-import { PipelineService } from '../../../platform-services/apis/pipeline.service';
+import { PipelineService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/pipeline.service';
 
 
 @Component({
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 0e167e5..7a6c2b2 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,10 @@
  */
 
 import { DialogRef } from '../../../core-ui/dialog/base-dialog/dialog-ref';
-import { PipelineOperationStatus } from '../../../core-model/gen/streampipes-model';
+import { PipelineOperationStatus } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { Component, Input, OnInit } from '@angular/core';
 import { PipelineAction } from '../../model/pipeline-model';
-import { PipelineService } from '../../../platform-services/apis/pipeline.service';
+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/dialog/start-all-pipelines/start-all-pipelines-dialog.component.ts b/ui/src/app/pipelines/dialog/start-all-pipelines/start-all-pipelines-dialog.component.ts
index 7f35df2..a1b4eae 100644
--- a/ui/src/app/pipelines/dialog/start-all-pipelines/start-all-pipelines-dialog.component.ts
+++ b/ui/src/app/pipelines/dialog/start-all-pipelines/start-all-pipelines-dialog.component.ts
@@ -18,8 +18,8 @@
 
 import { Component, Input, OnInit } from '@angular/core';
 import { DialogRef } from '../../../core-ui/dialog/base-dialog/dialog-ref';
-import { Pipeline } from '../../../core-model/gen/streampipes-model';
-import { PipelineService } from '../../../platform-services/apis/pipeline.service';
+import { Pipeline } from '../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
+import { PipelineService } from '../../../../../projects/streampipes/platform-services/src/lib/apis/pipeline.service';
 
 @Component({
   selector: 'sp-start-all-pipelines-dialog',
diff --git a/ui/src/app/pipelines/pipeline-category.filter.ts b/ui/src/app/pipelines/pipeline-category.filter.ts
index 9c5e397..fd6678a 100644
--- a/ui/src/app/pipelines/pipeline-category.filter.ts
+++ b/ui/src/app/pipelines/pipeline-category.filter.ts
@@ -17,7 +17,7 @@
  */
 
 import {Pipe, PipeTransform} from "@angular/core";
-import {Pipeline} from "../core-model/gen/streampipes-model";
+import {Pipeline} from "../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 @Pipe({
 	name: 'pipelineInCategoryFilter',
diff --git a/ui/src/app/pipelines/pipelines.component.ts b/ui/src/app/pipelines/pipelines.component.ts
index 03b1334..c958d4f 100644
--- a/ui/src/app/pipelines/pipelines.component.ts
+++ b/ui/src/app/pipelines/pipelines.component.ts
@@ -18,8 +18,8 @@
 
 import * as FileSaver from 'file-saver';
 import { Component, OnInit } from '@angular/core';
-import { PipelineService } from '../platform-services/apis/pipeline.service';
-import { Pipeline, PipelineCategory } from '../core-model/gen/streampipes-model';
+import { PipelineService } from '../../../projects/streampipes/platform-services/src/lib/apis/pipeline.service';
+import { Pipeline, PipelineCategory } from '../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { DialogService } from '../core-ui/dialog/base-dialog/base-dialog.service';
 import { PanelType } from '../core-ui/dialog/base-dialog/base-dialog.model';
 import { ImportPipelineDialogComponent } from './dialog/import-pipeline/import-pipeline-dialog.component';
diff --git a/ui/src/app/pipelines/services/pipeline-operations.service.ts b/ui/src/app/pipelines/services/pipeline-operations.service.ts
index 41da3f8..6a934e9 100644
--- a/ui/src/app/pipelines/services/pipeline-operations.service.ts
+++ b/ui/src/app/pipelines/services/pipeline-operations.service.ts
@@ -18,11 +18,11 @@
 
 import { ShepherdService } from '../../services/tour/shepherd.service';
 import { EventEmitter, Injectable } from '@angular/core';
-import { PipelineService } from '../../platform-services/apis/pipeline.service';
+import { PipelineService } from '../../../../projects/streampipes/platform-services/src/lib/apis/pipeline.service';
 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';
-import { Pipeline } from '../../core-model/gen/streampipes-model';
+import { Pipeline } from '../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 import { DeletePipelineDialogComponent } from '../dialog/delete-pipeline/delete-pipeline-dialog.component';
 import { DialogRef } from '../../core-ui/dialog/base-dialog/dialog-ref';
 import { Router } from '@angular/router';
diff --git a/ui/src/app/platform-services/platform.module.ts b/ui/src/app/platform-services/platform.module.ts
index b289170..c91151e 100644
--- a/ui/src/app/platform-services/platform.module.ts
+++ b/ui/src/app/platform-services/platform.module.ts
@@ -17,22 +17,22 @@
  */
 
 import { NgModule } from '@angular/core';
-import { PipelineElementService } from './apis/pipeline-element.service';
-import { PipelineService } from './apis/pipeline.service';
-import { PlatformServicesCommons } from './apis/commons.service';
-import { PipelineElementEndpointService } from './apis/pipeline-element-endpoint.service';
-import { FilesService } from './apis/files.service';
-import { MeasurementUnitsService } from './apis/measurement-units.service';
-import { PipelineElementTemplateService } from './apis/pipeline-element-template.service';
-import { PipelineMonitoringService } from './apis/pipeline-monitoring.service';
-import { SemanticTypesService } from './apis/semantic-types.service';
-import { PipelineCanvasMetadataService } from './apis/pipeline-canvas-metadata.service';
-import { PipelineTemplateService } from './apis/pipeline-template.service';
-import { UserService } from './apis/user.service';
-import { UserGroupService } from './apis/user-group.service';
-import { MailConfigService } from './apis/mail-config.service';
-import { PermissionsService } from './apis/permissions.service';
-import { GeneralConfigService } from './apis/general-config.service';
+import { PipelineElementService } from '../../../projects/streampipes/platform-services/src/lib/apis/pipeline-element.service';
+import { PipelineService } from '../../../projects/streampipes/platform-services/src/lib/apis/pipeline.service';
+import { PlatformServicesCommons } from '../../../projects/streampipes/platform-services/src/lib/apis/commons.service';
+import { PipelineElementEndpointService } from '../../../projects/streampipes/platform-services/src/lib/apis/pipeline-element-endpoint.service';
+import { FilesService } from '../../../projects/streampipes/platform-services/src/lib/apis/files.service';
+import { MeasurementUnitsService } from '../../../projects/streampipes/platform-services/src/lib/apis/measurement-units.service';
+import { PipelineElementTemplateService } from '../../../projects/streampipes/platform-services/src/lib/apis/pipeline-element-template.service';
+import { PipelineMonitoringService } from '../../../projects/streampipes/platform-services/src/lib/apis/pipeline-monitoring.service';
+import { SemanticTypesService } from '../../../projects/streampipes/platform-services/src/lib/apis/semantic-types.service';
+import { PipelineCanvasMetadataService } from '../../../projects/streampipes/platform-services/src/lib/apis/pipeline-canvas-metadata.service';
+import { PipelineTemplateService } from '../../../projects/streampipes/platform-services/src/lib/apis/pipeline-template.service';
+import { UserService } from '../../../projects/streampipes/platform-services/src/lib/apis/user.service';
+import { UserGroupService } from '../../../projects/streampipes/platform-services/src/lib/apis/user-group.service';
+import { MailConfigService } from '../../../projects/streampipes/platform-services/src/lib/apis/mail-config.service';
+import { PermissionsService } from '../../../projects/streampipes/platform-services/src/lib/apis/permissions.service';
+import { GeneralConfigService } from '../../../projects/streampipes/platform-services/src/lib/apis/general-config.service';
 
 @NgModule({
   imports: [],
diff --git a/ui/src/app/profile/components/basic-profile-settings.ts b/ui/src/app/profile/components/basic-profile-settings.ts
index ea7ad9b..63c2173 100644
--- a/ui/src/app/profile/components/basic-profile-settings.ts
+++ b/ui/src/app/profile/components/basic-profile-settings.ts
@@ -17,7 +17,7 @@
  */
 
 import { ProfileService } from '../profile.service';
-import { UserAccount } from '../../core-model/gen/streampipes-model-client';
+import { UserAccount } from '../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client';
 import { Directive } from '@angular/core';
 import { AppConstants } from '../../services/app.constants';
 import { JwtTokenStorageService } from '../../services/jwt-token-storage.service';
diff --git a/ui/src/app/profile/components/token/token-management-settings.component.ts b/ui/src/app/profile/components/token/token-management-settings.component.ts
index d44e866..53b21f5 100644
--- a/ui/src/app/profile/components/token/token-management-settings.component.ts
+++ b/ui/src/app/profile/components/token/token-management-settings.component.ts
@@ -18,7 +18,7 @@
 
 import { Component, OnInit } from "@angular/core";
 import { BasicProfileSettings } from "../basic-profile-settings";
-import { RawUserApiToken, UserApiToken } from "../../../core-model/gen/streampipes-model-client";
+import { RawUserApiToken, UserApiToken } from "../../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client";
 import { MatTableDataSource } from "@angular/material/table";
 
 @Component({
diff --git a/ui/src/app/profile/profile.service.ts b/ui/src/app/profile/profile.service.ts
index c018d3b..b4282e9 100644
--- a/ui/src/app/profile/profile.service.ts
+++ b/ui/src/app/profile/profile.service.ts
@@ -17,12 +17,12 @@
  */
 
 import { Injectable } from '@angular/core';
-import { PlatformServicesCommons } from '../platform-services/apis/commons.service';
+import { PlatformServicesCommons } from '../../../projects/streampipes/platform-services/src/lib/apis/commons.service';
 import { HttpClient } from '@angular/common/http';
-import { RawUserApiToken, UserAccount } from '../core-model/gen/streampipes-model-client';
+import { RawUserApiToken, UserAccount } from '../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client';
 import { Observable } from 'rxjs';
 import { map } from 'rxjs/operators';
-import { Message } from '../core-model/gen/streampipes-model';
+import { Message } from '../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model';
 
 @Injectable()
 export class ProfileService {
diff --git a/ui/src/app/services/auth.service.ts b/ui/src/app/services/auth.service.ts
index 2198414..e6ef2e5 100644
--- a/ui/src/app/services/auth.service.ts
+++ b/ui/src/app/services/auth.service.ts
@@ -21,7 +21,7 @@ import { Injectable } from '@angular/core';
 import { BehaviorSubject, Observable, timer } from 'rxjs';
 import { JwtHelperService } from '@auth0/angular-jwt';
 import { JwtTokenStorageService } from './jwt-token-storage.service';
-import { UserInfo } from '../core-model/gen/streampipes-model-client';
+import { UserInfo } from '../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client';
 import { filter, map, switchMap } from 'rxjs/operators';
 import { Router } from '@angular/router';
 import { LoginService } from '../login/services/login.service';
diff --git a/ui/src/app/services/jwt-token-storage.service.ts b/ui/src/app/services/jwt-token-storage.service.ts
index f64eb2a..1706e58 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 '../core-model/gen/streampipes-model-client';
+import { UserInfo } from '../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model-client';
 
 const TOKEN_KEY = 'auth-token';
 const USER_KEY = 'auth-user';
diff --git a/ui/src/app/services/property-selector.service.ts b/ui/src/app/services/property-selector.service.ts
index be6371b..53904fb 100644
--- a/ui/src/app/services/property-selector.service.ts
+++ b/ui/src/app/services/property-selector.service.ts
@@ -17,7 +17,7 @@
  */
 
 import {Injectable} from "@angular/core";
-import {EventPropertyNested, EventPropertyUnion} from "../core-model/gen/streampipes-model";
+import {EventPropertyNested, EventPropertyUnion} from "../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model";
 
 @Injectable()
 export class PropertySelectorService {
@@ -92,4 +92,4 @@ export class PropertySelectorService {
     makeSelector(prefix, current) {
         return prefix + this.propertyDelimiter + current;
     }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/services/rest-api.service.ts b/ui/src/app/services/rest-api.service.ts
index d88829e..6638f2a 100644
--- a/ui/src/app/services/rest-api.service.ts
+++ b/ui/src/app/services/rest-api.service.ts
@@ -20,7 +20,7 @@
 
 
 import { Injectable } from '@angular/core';
-import { PlatformServicesCommons } from '../platform-services/apis/commons.service';
+import { PlatformServicesCommons } from '../../../projects/streampipes/platform-services/src/lib/apis/commons.service';
 import { HttpClient } from '@angular/common/http';
 import { Observable } from 'rxjs';
 
diff --git a/ui/tsconfig.json b/ui/tsconfig.json
index 512e7e8..6c13028 100644
--- a/ui/tsconfig.json
+++ b/ui/tsconfig.json
@@ -1,6 +1,11 @@
 {
   "compileOnSave": false,
   "compilerOptions": {
+    "paths": {
+      "@streampipes/platform-services": [
+        "dist/streampipes/platform-services"
+      ]
+    },
     "downlevelIteration": true,
     "importHelpers": true,
     "module": "es2020",
@@ -23,4 +28,4 @@
     ],
     "baseUrl": "./"
   }
-}
\ No newline at end of file
+}
diff --git a/ui/webpack.partial.base.js b/ui/webpack.partial.base.js
index 4114706..58d4ed0 100644
--- a/ui/webpack.partial.base.js
+++ b/ui/webpack.partial.base.js
@@ -63,6 +63,7 @@ module.exports = {
                 "@angular/common": { singleton: true, strictVersion: true, requiredVersion: 'auto' , eager: true},
                 "@angular/common/http": { singleton: true, strictVersion: true, requiredVersion: 'auto' , eager: true},
                 "@angular/router": { singleton: true, strictVersion: true, requiredVersion: 'auto' , eager: true},
+                //"@streampipes/platform-services": {singleton: true, strictVersion: true, requiredVersion: 'auto', eager: true},
 
                 ...sharedMappings.getDescriptors()
             })