Unnecessary log removal (#2208) master
authorMarcosrico <55266861+Marcosrico@users.noreply.github.com>
Thu, 29 Sep 2022 19:29:44 +0000 (15:29 -0400)
committerGitHub <noreply@github.com>
Thu, 29 Sep 2022 19:29:44 +0000 (12:29 -0700)
Remove unnecessary logs to clean up code in Helix.

420 files changed:
.github/PULL_REQUEST_TEMPLATE/helix_front.md [new file with mode: 0644]
.github/workflows/Helix-PR-CI.yml
.github/workflows/helix-front.yml [new file with mode: 0644]
README.md
helix-core/helix-core-1.0.5-SNAPSHOT.ivy
helix-core/pom.xml
helix-core/src/main/java/org/apache/helix/BaseDataAccessor.java
helix-core/src/main/java/org/apache/helix/manager/zk/CallbackEventThreadPoolFactory.java
helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixManager.java
helix-core/src/main/java/org/apache/helix/manager/zk/ZkBaseDataAccessor.java
helix-core/src/main/java/org/apache/helix/tools/commandtools/JmxDumper.java
helix-core/src/main/java/org/apache/helix/tools/commandtools/TaskAdmin.java
helix-core/src/main/java/org/apache/helix/tools/commandtools/ZKLogFormatter.java
helix-core/src/test/java/org/apache/helix/manager/zk/TestZkBaseDataAccessor.java
helix-front/.babelrc [new file with mode: 0644]
helix-front/.storybook/main.js [new file with mode: 0644]
helix-front/angular.json
helix-front/client/app/cluster/cluster-list/cluster-list.component.scss [deleted file]
helix-front/client/app/workflow/workflow-list/workflow-list.component.html [deleted file]
helix-front/docs/classes/Cluster.html [new file with mode: 0644]
helix-front/docs/classes/Controller.html [new file with mode: 0644]
helix-front/docs/classes/HelixCtrl.html [new file with mode: 0644]
helix-front/docs/classes/History.html [new file with mode: 0644]
helix-front/docs/classes/Instance.html [new file with mode: 0644]
helix-front/docs/classes/Job.html [new file with mode: 0644]
helix-front/docs/classes/Node.html [new file with mode: 0644]
helix-front/docs/classes/Partition.html [new file with mode: 0644]
helix-front/docs/classes/Resource.html [new file with mode: 0644]
helix-front/docs/classes/Settings.html [new file with mode: 0644]
helix-front/docs/classes/Task.html [new file with mode: 0644]
helix-front/docs/classes/UserCtrl.html [new file with mode: 0644]
helix-front/docs/classes/Workflow.html [new file with mode: 0644]
helix-front/docs/components/AlertDialogComponent.html [new file with mode: 0644]
helix-front/docs/components/AppComponent.html [new file with mode: 0644]
helix-front/docs/components/ClusterComponent.html [new file with mode: 0644]
helix-front/docs/components/ClusterDetailComponent.html [new file with mode: 0644]
helix-front/docs/components/ClusterListComponent.html [new file with mode: 0644]
helix-front/docs/components/ConfigDetailComponent.html [new file with mode: 0644]
helix-front/docs/components/ConfirmDialogComponent.html [new file with mode: 0644]
helix-front/docs/components/ControllerDetailComponent.html [new file with mode: 0644]
helix-front/docs/components/DashboardComponent.html [new file with mode: 0644]
helix-front/docs/components/DataTableComponent.html [new file with mode: 0644]
helix-front/docs/components/DetailHeaderComponent.html [new file with mode: 0644]
helix-front/docs/components/DisabledLabelComponent.html [new file with mode: 0644]
helix-front/docs/components/HelixListComponent.html [new file with mode: 0644]
helix-front/docs/components/HistoryListComponent.html [new file with mode: 0644]
helix-front/docs/components/InputDialogComponent.html [new file with mode: 0644]
helix-front/docs/components/InputInlineComponent.html [new file with mode: 0644]
helix-front/docs/components/InstanceDetailComponent.html [new file with mode: 0644]
helix-front/docs/components/InstanceListComponent.html [new file with mode: 0644]
helix-front/docs/components/JobDetailComponent.html [new file with mode: 0644]
helix-front/docs/components/JobListComponent.html [new file with mode: 0644]
helix-front/docs/components/JsonViewerComponent.html [new file with mode: 0644]
helix-front/docs/components/KeyValuePairsComponent.html [new file with mode: 0644]
helix-front/docs/components/NodeViewerComponent.html [new file with mode: 0644]
helix-front/docs/components/PartitionDetailComponent.html [new file with mode: 0644]
helix-front/docs/components/PartitionListComponent.html [new file with mode: 0644]
helix-front/docs/components/ResourceDetailComponent.html [new file with mode: 0644]
helix-front/docs/components/ResourceDetailForInstanceComponent.html [new file with mode: 0644]
helix-front/docs/components/ResourceListComponent.html [new file with mode: 0644]
helix-front/docs/components/ResourceNodeViewerComponent.html [new file with mode: 0644]
helix-front/docs/components/StateLabelComponent.html [new file with mode: 0644]
helix-front/docs/components/WorkflowDagComponent.html [new file with mode: 0644]
helix-front/docs/components/WorkflowDetailComponent.html [new file with mode: 0644]
helix-front/docs/components/WorkflowListComponent.html [new file with mode: 0644]
helix-front/docs/coverage.html [new file with mode: 0644]
helix-front/docs/dependencies.html [new file with mode: 0644]
helix-front/docs/directives/KeyValuePairDirective.html [new file with mode: 0644]
helix-front/docs/fonts/ionicons.eot [new file with mode: 0644]
helix-front/docs/fonts/ionicons.svg [new file with mode: 0644]
helix-front/docs/fonts/ionicons.ttf [new file with mode: 0644]
helix-front/docs/fonts/ionicons.woff [new file with mode: 0644]
helix-front/docs/fonts/ionicons.woff2 [new file with mode: 0644]
helix-front/docs/fonts/roboto-v15-latin-300.eot [new file with mode: 0644]
helix-front/docs/fonts/roboto-v15-latin-300.svg [new file with mode: 0644]
helix-front/docs/fonts/roboto-v15-latin-300.ttf [new file with mode: 0644]
helix-front/docs/fonts/roboto-v15-latin-300.woff [new file with mode: 0644]
helix-front/docs/fonts/roboto-v15-latin-300.woff2 [new file with mode: 0644]
helix-front/docs/fonts/roboto-v15-latin-700.eot [new file with mode: 0644]
helix-front/docs/fonts/roboto-v15-latin-700.svg [new file with mode: 0644]
helix-front/docs/fonts/roboto-v15-latin-700.ttf [new file with mode: 0644]
helix-front/docs/fonts/roboto-v15-latin-700.woff [new file with mode: 0644]
helix-front/docs/fonts/roboto-v15-latin-700.woff2 [new file with mode: 0644]
helix-front/docs/fonts/roboto-v15-latin-italic.eot [new file with mode: 0644]
helix-front/docs/fonts/roboto-v15-latin-italic.svg [new file with mode: 0644]
helix-front/docs/fonts/roboto-v15-latin-italic.ttf [new file with mode: 0644]
helix-front/docs/fonts/roboto-v15-latin-italic.woff [new file with mode: 0644]
helix-front/docs/fonts/roboto-v15-latin-italic.woff2 [new file with mode: 0644]
helix-front/docs/fonts/roboto-v15-latin-regular.eot [new file with mode: 0644]
helix-front/docs/fonts/roboto-v15-latin-regular.svg [new file with mode: 0644]
helix-front/docs/fonts/roboto-v15-latin-regular.ttf [new file with mode: 0644]
helix-front/docs/fonts/roboto-v15-latin-regular.woff [new file with mode: 0644]
helix-front/docs/fonts/roboto-v15-latin-regular.woff2 [new file with mode: 0644]
helix-front/docs/graph/dependencies.svg [new file with mode: 0644]
helix-front/docs/guards/ClusterResolver.html [new file with mode: 0644]
helix-front/docs/guards/ResourceResolver.html [new file with mode: 0644]
helix-front/docs/images/compodoc-vectorise-inverted.png [new file with mode: 0644]
helix-front/docs/images/compodoc-vectorise-inverted.svg [new file with mode: 0644]
helix-front/docs/images/compodoc-vectorise.png [new file with mode: 0644]
helix-front/docs/images/compodoc-vectorise.svg [new file with mode: 0644]
helix-front/docs/images/coverage-badge-documentation.svg [new file with mode: 0644]
helix-front/docs/images/favicon.ico [new file with mode: 0644]
helix-front/docs/index.html [new file with mode: 0644]
helix-front/docs/injectables/ChooserService.html [new file with mode: 0644]
helix-front/docs/injectables/ClusterService.html [new file with mode: 0644]
helix-front/docs/injectables/ConfigurationService.html [new file with mode: 0644]
helix-front/docs/injectables/ControllerService.html [new file with mode: 0644]
helix-front/docs/injectables/HelixService.html [new file with mode: 0644]
helix-front/docs/injectables/HelperService.html [new file with mode: 0644]
helix-front/docs/injectables/HistoryService.html [new file with mode: 0644]
helix-front/docs/injectables/InstanceService.html [new file with mode: 0644]
helix-front/docs/injectables/JobService.html [new file with mode: 0644]
helix-front/docs/injectables/ResourceService.html [new file with mode: 0644]
helix-front/docs/injectables/UserService.html [new file with mode: 0644]
helix-front/docs/injectables/WorkflowService.html [new file with mode: 0644]
helix-front/docs/interfaces/HelixSession.html [new file with mode: 0644]
helix-front/docs/interfaces/HelixUserRequest.html [new file with mode: 0644]
helix-front/docs/interfaces/IReplica.html [new file with mode: 0644]
helix-front/docs/interfaces/ListFieldObject.html [new file with mode: 0644]
helix-front/docs/interfaces/MapFieldObject.html [new file with mode: 0644]
helix-front/docs/interfaces/SimpleFieldObject.html [new file with mode: 0644]
helix-front/docs/js/compodoc.js [new file with mode: 0644]
helix-front/docs/js/lazy-load-graphs.js [new file with mode: 0644]
helix-front/docs/js/libs/EventDispatcher.js [new file with mode: 0644]
helix-front/docs/js/libs/bootstrap-native.js [new file with mode: 0644]
helix-front/docs/js/libs/clipboard.min.js [new file with mode: 0644]
helix-front/docs/js/libs/custom-elements-es5-adapter.js [new file with mode: 0644]
helix-front/docs/js/libs/custom-elements.min.js [new file with mode: 0644]
helix-front/docs/js/libs/d3.v3.min.js [new file with mode: 0644]
helix-front/docs/js/libs/deep-iterator.js [new file with mode: 0644]
helix-front/docs/js/libs/es6-shim.min.js [new file with mode: 0644]
helix-front/docs/js/libs/htmlparser.js [new file with mode: 0644]
helix-front/docs/js/libs/innersvg.js [new file with mode: 0644]
helix-front/docs/js/libs/lit-html.js [new file with mode: 0644]
helix-front/docs/js/libs/prism.js [new file with mode: 0644]
helix-front/docs/js/libs/promise.min.js [new file with mode: 0644]
helix-front/docs/js/libs/svg-pan-zoom.min.js [new file with mode: 0644]
helix-front/docs/js/libs/tablesort.min.js [new file with mode: 0644]
helix-front/docs/js/libs/tablesort.number.min.js [new file with mode: 0644]
helix-front/docs/js/libs/vis.min.js [new file with mode: 0644]
helix-front/docs/js/libs/zepto.min.js [new file with mode: 0644]
helix-front/docs/js/menu-wc.js [new file with mode: 0644]
helix-front/docs/js/menu-wc_es5.js [new file with mode: 0644]
helix-front/docs/js/menu.js [new file with mode: 0644]
helix-front/docs/js/routes.js [new file with mode: 0644]
helix-front/docs/js/search/lunr.min.js [new file with mode: 0644]
helix-front/docs/js/search/search-lunr.js [new file with mode: 0644]
helix-front/docs/js/search/search.js [new file with mode: 0644]
helix-front/docs/js/search/search_index.js [new file with mode: 0644]
helix-front/docs/js/sourceCode.js [new file with mode: 0644]
helix-front/docs/js/svg-pan-zoom.controls.js [new file with mode: 0644]
helix-front/docs/js/tabs.js [new file with mode: 0644]
helix-front/docs/js/tree.js [new file with mode: 0644]
helix-front/docs/miscellaneous/functions.html [new file with mode: 0644]
helix-front/docs/miscellaneous/typealiases.html [new file with mode: 0644]
helix-front/docs/miscellaneous/variables.html [new file with mode: 0644]
helix-front/docs/modules.html [new file with mode: 0644]
helix-front/docs/modules/AppModule.html [new file with mode: 0644]
helix-front/docs/modules/AppModule/dependencies.svg [new file with mode: 0644]
helix-front/docs/modules/ChooserModule.html [new file with mode: 0644]
helix-front/docs/modules/ChooserModule/dependencies.svg [new file with mode: 0644]
helix-front/docs/modules/ClusterModule.html [new file with mode: 0644]
helix-front/docs/modules/ClusterModule/dependencies.svg [new file with mode: 0644]
helix-front/docs/modules/ConfigurationModule.html [new file with mode: 0644]
helix-front/docs/modules/ConfigurationModule/dependencies.svg [new file with mode: 0644]
helix-front/docs/modules/ControllerModule.html [new file with mode: 0644]
helix-front/docs/modules/ControllerModule/dependencies.svg [new file with mode: 0644]
helix-front/docs/modules/CoreModule.html [new file with mode: 0644]
helix-front/docs/modules/DashboardModule.html [new file with mode: 0644]
helix-front/docs/modules/DashboardModule/dependencies.svg [new file with mode: 0644]
helix-front/docs/modules/HistoryModule.html [new file with mode: 0644]
helix-front/docs/modules/HistoryModule/dependencies.svg [new file with mode: 0644]
helix-front/docs/modules/InstanceModule.html [new file with mode: 0644]
helix-front/docs/modules/InstanceModule/dependencies.svg [new file with mode: 0644]
helix-front/docs/modules/MaterialModule.html [new file with mode: 0644]
helix-front/docs/modules/ResourceModule.html [new file with mode: 0644]
helix-front/docs/modules/ResourceModule/dependencies.svg [new file with mode: 0644]
helix-front/docs/modules/SharedModule.html [new file with mode: 0644]
helix-front/docs/modules/SharedModule/dependencies.svg [new file with mode: 0644]
helix-front/docs/modules/TestingModule.html [new file with mode: 0644]
helix-front/docs/modules/TestingModule/dependencies.svg [new file with mode: 0644]
helix-front/docs/modules/WorkflowModule.html [new file with mode: 0644]
helix-front/docs/modules/WorkflowModule/dependencies.svg [new file with mode: 0644]
helix-front/docs/overview.html [new file with mode: 0644]
helix-front/docs/properties.html [new file with mode: 0644]
helix-front/docs/styles/bootstrap-card.css [new file with mode: 0644]
helix-front/docs/styles/bootstrap.min.css [new file with mode: 0644]
helix-front/docs/styles/compodoc.css [new file with mode: 0644]
helix-front/docs/styles/dark.css [new file with mode: 0644]
helix-front/docs/styles/ionicons.min.css [new file with mode: 0644]
helix-front/docs/styles/laravel.css [new file with mode: 0644]
helix-front/docs/styles/material.css [new file with mode: 0644]
helix-front/docs/styles/original.css [new file with mode: 0644]
helix-front/docs/styles/postmark.css [new file with mode: 0644]
helix-front/docs/styles/prism.css [new file with mode: 0644]
helix-front/docs/styles/readthedocs.css [new file with mode: 0644]
helix-front/docs/styles/reset.css [new file with mode: 0644]
helix-front/docs/styles/stripe.css [new file with mode: 0644]
helix-front/docs/styles/style.css [new file with mode: 0644]
helix-front/docs/styles/tablesort.css [new file with mode: 0644]
helix-front/docs/styles/vagrant.css [new file with mode: 0644]
helix-front/documentation.json [new file with mode: 0644]
helix-front/jest.config.js
helix-front/package.json
helix-front/server/controllers/helix.ts
helix-front/src/app/app-routing.module.ts [moved from helix-front/client/app/app-routing.module.ts with 100% similarity]
helix-front/src/app/app.component.html [moved from helix-front/client/app/app.component.html with 100% similarity]
helix-front/src/app/app.component.scss [moved from helix-front/client/app/app.component.scss with 100% similarity]
helix-front/src/app/app.component.spec.ts [moved from helix-front/client/app/app.component.spec.ts with 100% similarity]
helix-front/src/app/app.component.ts [moved from helix-front/client/app/app.component.ts with 100% similarity]
helix-front/src/app/app.module.ts [moved from helix-front/client/app/app.module.ts with 100% similarity]
helix-front/src/app/chooser/chooser.module.ts [moved from helix-front/client/app/chooser/chooser.module.ts with 100% similarity]
helix-front/src/app/chooser/helix-list/helix-list.component.html [moved from helix-front/client/app/chooser/helix-list/helix-list.component.html with 100% similarity]
helix-front/src/app/chooser/helix-list/helix-list.component.scss [moved from helix-front/client/app/chooser/helix-list/helix-list.component.scss with 100% similarity]
helix-front/src/app/chooser/helix-list/helix-list.component.spec.ts [moved from helix-front/client/app/chooser/helix-list/helix-list.component.spec.ts with 100% similarity]
helix-front/src/app/chooser/helix-list/helix-list.component.ts [moved from helix-front/client/app/chooser/helix-list/helix-list.component.ts with 100% similarity]
helix-front/src/app/chooser/shared/chooser.service.spec.ts [moved from helix-front/client/app/chooser/shared/chooser.service.spec.ts with 100% similarity]
helix-front/src/app/chooser/shared/chooser.service.ts [moved from helix-front/client/app/chooser/shared/chooser.service.ts with 100% similarity]
helix-front/src/app/cluster/cluster-detail/cluster-detail.component.html [moved from helix-front/client/app/cluster/cluster-detail/cluster-detail.component.html with 100% similarity]
helix-front/src/app/cluster/cluster-detail/cluster-detail.component.scss [moved from helix-front/client/app/cluster/cluster-detail/cluster-detail.component.scss with 100% similarity]
helix-front/src/app/cluster/cluster-detail/cluster-detail.component.spec.ts [moved from helix-front/client/app/cluster/cluster-detail/cluster-detail.component.spec.ts with 100% similarity]
helix-front/src/app/cluster/cluster-detail/cluster-detail.component.ts [moved from helix-front/client/app/cluster/cluster-detail/cluster-detail.component.ts with 100% similarity]
helix-front/src/app/cluster/cluster-list/cluster-list.component.html [moved from helix-front/client/app/cluster/cluster-list/cluster-list.component.html with 84% similarity]
helix-front/src/app/cluster/cluster-list/cluster-list.component.scss [new file with mode: 0644]
helix-front/src/app/cluster/cluster-list/cluster-list.component.spec.ts [moved from helix-front/client/app/cluster/cluster-list/cluster-list.component.spec.ts with 100% similarity]
helix-front/src/app/cluster/cluster-list/cluster-list.component.ts [moved from helix-front/client/app/cluster/cluster-list/cluster-list.component.ts with 92% similarity]
helix-front/src/app/cluster/cluster.component.html [moved from helix-front/client/app/cluster/cluster.component.html with 100% similarity]
helix-front/src/app/cluster/cluster.component.scss [moved from helix-front/client/app/cluster/cluster.component.scss with 100% similarity]
helix-front/src/app/cluster/cluster.component.spec.ts [moved from helix-front/client/app/cluster/cluster.component.spec.ts with 100% similarity]
helix-front/src/app/cluster/cluster.component.ts [moved from helix-front/client/app/cluster/cluster.component.ts with 100% similarity]
helix-front/src/app/cluster/cluster.module.ts [moved from helix-front/client/app/cluster/cluster.module.ts with 100% similarity]
helix-front/src/app/cluster/shared/cluster.model.ts [moved from helix-front/client/app/cluster/shared/cluster.model.ts with 100% similarity]
helix-front/src/app/cluster/shared/cluster.resolver.ts [moved from helix-front/client/app/cluster/shared/cluster.resolver.ts with 100% similarity]
helix-front/src/app/cluster/shared/cluster.service.spec.ts [moved from helix-front/client/app/cluster/shared/cluster.service.spec.ts with 100% similarity]
helix-front/src/app/cluster/shared/cluster.service.ts [moved from helix-front/client/app/cluster/shared/cluster.service.ts with 90% similarity]
helix-front/src/app/configuration/config-detail/config-detail.component.html [moved from helix-front/client/app/configuration/config-detail/config-detail.component.html with 100% similarity]
helix-front/src/app/configuration/config-detail/config-detail.component.scss [moved from helix-front/client/app/configuration/config-detail/config-detail.component.scss with 100% similarity]
helix-front/src/app/configuration/config-detail/config-detail.component.spec.ts [moved from helix-front/client/app/configuration/config-detail/config-detail.component.spec.ts with 100% similarity]
helix-front/src/app/configuration/config-detail/config-detail.component.ts [moved from helix-front/client/app/configuration/config-detail/config-detail.component.ts with 100% similarity]
helix-front/src/app/configuration/configuration.module.ts [moved from helix-front/client/app/configuration/configuration.module.ts with 100% similarity]
helix-front/src/app/configuration/shared/configuration.service.spec.ts [moved from helix-front/client/app/configuration/shared/configuration.service.spec.ts with 100% similarity]
helix-front/src/app/configuration/shared/configuration.service.ts [moved from helix-front/client/app/configuration/shared/configuration.service.ts with 88% similarity]
helix-front/src/app/controller/controller-detail/controller-detail.component.html [moved from helix-front/client/app/controller/controller-detail/controller-detail.component.html with 100% similarity]
helix-front/src/app/controller/controller-detail/controller-detail.component.scss [moved from helix-front/client/app/controller/controller-detail/controller-detail.component.scss with 100% similarity]
helix-front/src/app/controller/controller-detail/controller-detail.component.spec.ts [moved from helix-front/client/app/controller/controller-detail/controller-detail.component.spec.ts with 100% similarity]
helix-front/src/app/controller/controller-detail/controller-detail.component.ts [moved from helix-front/client/app/controller/controller-detail/controller-detail.component.ts with 100% similarity]
helix-front/src/app/controller/controller.module.ts [moved from helix-front/client/app/controller/controller.module.ts with 100% similarity]
helix-front/src/app/controller/shared/controller.model.ts [moved from helix-front/client/app/controller/shared/controller.model.ts with 100% similarity]
helix-front/src/app/controller/shared/controller.service.spec.ts [moved from helix-front/client/app/controller/shared/controller.service.spec.ts with 100% similarity]
helix-front/src/app/controller/shared/controller.service.ts [moved from helix-front/client/app/controller/shared/controller.service.ts with 100% similarity]
helix-front/src/app/core/core.module.ts [moved from helix-front/client/app/core/core.module.ts with 100% similarity]
helix-front/src/app/core/helix.service.spec.ts [moved from helix-front/client/app/core/helix.service.spec.ts with 100% similarity]
helix-front/src/app/core/helix.service.ts [moved from helix-front/client/app/core/helix.service.ts with 100% similarity]
helix-front/src/app/core/settings.ts [moved from helix-front/client/app/core/settings.ts with 100% similarity]
helix-front/src/app/core/user.service.ts [moved from helix-front/client/app/core/user.service.ts with 100% similarity]
helix-front/src/app/dashboard/dashboard.component.html [moved from helix-front/client/app/dashboard/dashboard.component.html with 100% similarity]
helix-front/src/app/dashboard/dashboard.component.scss [moved from helix-front/client/app/dashboard/dashboard.component.scss with 100% similarity]
helix-front/src/app/dashboard/dashboard.component.spec.ts [moved from helix-front/client/app/dashboard/dashboard.component.spec.ts with 100% similarity]
helix-front/src/app/dashboard/dashboard.component.ts [moved from helix-front/client/app/dashboard/dashboard.component.ts with 100% similarity]
helix-front/src/app/dashboard/dashboard.module.ts [moved from helix-front/client/app/dashboard/dashboard.module.ts with 100% similarity]
helix-front/src/app/history/history-list/history-list.component.html [moved from helix-front/client/app/history/history-list/history-list.component.html with 100% similarity]
helix-front/src/app/history/history-list/history-list.component.scss [moved from helix-front/client/app/history/history-list/history-list.component.scss with 88% similarity]
helix-front/src/app/history/history-list/history-list.component.spec.ts [moved from helix-front/client/app/history/history-list/history-list.component.spec.ts with 100% similarity]
helix-front/src/app/history/history-list/history-list.component.ts [moved from helix-front/client/app/history/history-list/history-list.component.ts with 100% similarity]
helix-front/src/app/history/history.module.ts [moved from helix-front/client/app/history/history.module.ts with 100% similarity]
helix-front/src/app/history/shared/history.model.ts [moved from helix-front/client/app/history/shared/history.model.ts with 100% similarity]
helix-front/src/app/history/shared/history.service.spec.ts [moved from helix-front/client/app/history/shared/history.service.spec.ts with 100% similarity]
helix-front/src/app/history/shared/history.service.ts [moved from helix-front/client/app/history/shared/history.service.ts with 100% similarity]
helix-front/src/app/instance/instance-detail/instance-detail.component.html [moved from helix-front/client/app/instance/instance-detail/instance-detail.component.html with 100% similarity]
helix-front/src/app/instance/instance-detail/instance-detail.component.scss [moved from helix-front/client/app/instance/instance-detail/instance-detail.component.scss with 100% similarity]
helix-front/src/app/instance/instance-detail/instance-detail.component.spec.ts [moved from helix-front/client/app/instance/instance-detail/instance-detail.component.spec.ts with 100% similarity]
helix-front/src/app/instance/instance-detail/instance-detail.component.ts [moved from helix-front/client/app/instance/instance-detail/instance-detail.component.ts with 100% similarity]
helix-front/src/app/instance/instance-list/instance-list.component.html [moved from helix-front/client/app/instance/instance-list/instance-list.component.html with 100% similarity]
helix-front/src/app/instance/instance-list/instance-list.component.scss [moved from helix-front/client/app/instance/instance-list/instance-list.component.scss with 100% similarity]
helix-front/src/app/instance/instance-list/instance-list.component.spec.ts [moved from helix-front/client/app/instance/instance-list/instance-list.component.spec.ts with 100% similarity]
helix-front/src/app/instance/instance-list/instance-list.component.ts [moved from helix-front/client/app/instance/instance-list/instance-list.component.ts with 100% similarity]
helix-front/src/app/instance/instance.module.ts [moved from helix-front/client/app/instance/instance.module.ts with 100% similarity]
helix-front/src/app/instance/shared/instance.model.ts [moved from helix-front/client/app/instance/shared/instance.model.ts with 100% similarity]
helix-front/src/app/instance/shared/instance.service.spec.ts [moved from helix-front/client/app/instance/shared/instance.service.spec.ts with 100% similarity]
helix-front/src/app/instance/shared/instance.service.ts [moved from helix-front/client/app/instance/shared/instance.service.ts with 98% similarity]
helix-front/src/app/resource/partition-detail/partition-detail.component.html [moved from helix-front/client/app/resource/partition-detail/partition-detail.component.html with 100% similarity]
helix-front/src/app/resource/partition-detail/partition-detail.component.scss [moved from helix-front/client/app/resource/partition-detail/partition-detail.component.scss with 100% similarity]
helix-front/src/app/resource/partition-detail/partition-detail.component.spec.ts [moved from helix-front/client/app/resource/partition-detail/partition-detail.component.spec.ts with 100% similarity]
helix-front/src/app/resource/partition-detail/partition-detail.component.ts [moved from helix-front/client/app/resource/partition-detail/partition-detail.component.ts with 100% similarity]
helix-front/src/app/resource/partition-list/partition-list.component.html [moved from helix-front/client/app/resource/partition-list/partition-list.component.html with 100% similarity]
helix-front/src/app/resource/partition-list/partition-list.component.scss [moved from helix-front/client/app/resource/partition-list/partition-list.component.scss with 100% similarity]
helix-front/src/app/resource/partition-list/partition-list.component.spec.ts [moved from helix-front/client/app/resource/partition-list/partition-list.component.spec.ts with 100% similarity]
helix-front/src/app/resource/partition-list/partition-list.component.ts [moved from helix-front/client/app/resource/partition-list/partition-list.component.ts with 93% similarity]
helix-front/src/app/resource/resource-detail-for-instance/resource-detail-for-instance.component.html [moved from helix-front/client/app/resource/resource-detail-for-instance/resource-detail-for-instance.component.html with 100% similarity]
helix-front/src/app/resource/resource-detail-for-instance/resource-detail-for-instance.component.scss [moved from helix-front/client/app/resource/resource-detail-for-instance/resource-detail-for-instance.component.scss with 100% similarity]
helix-front/src/app/resource/resource-detail-for-instance/resource-detail-for-instance.component.spec.ts [moved from helix-front/client/app/resource/resource-detail-for-instance/resource-detail-for-instance.component.spec.ts with 100% similarity]
helix-front/src/app/resource/resource-detail-for-instance/resource-detail-for-instance.component.ts [moved from helix-front/client/app/resource/resource-detail-for-instance/resource-detail-for-instance.component.ts with 100% similarity]
helix-front/src/app/resource/resource-detail/resource-detail.component.html [moved from helix-front/client/app/resource/resource-detail/resource-detail.component.html with 100% similarity]
helix-front/src/app/resource/resource-detail/resource-detail.component.scss [moved from helix-front/client/app/resource/resource-detail/resource-detail.component.scss with 86% similarity]
helix-front/src/app/resource/resource-detail/resource-detail.component.spec.ts [moved from helix-front/client/app/resource/resource-detail/resource-detail.component.spec.ts with 100% similarity]
helix-front/src/app/resource/resource-detail/resource-detail.component.ts [moved from helix-front/client/app/resource/resource-detail/resource-detail.component.ts with 100% similarity]
helix-front/src/app/resource/resource-list/resource-list.component.html [moved from helix-front/client/app/resource/resource-list/resource-list.component.html with 100% similarity]
helix-front/src/app/resource/resource-list/resource-list.component.scss [moved from helix-front/client/app/resource/resource-list/resource-list.component.scss with 100% similarity]
helix-front/src/app/resource/resource-list/resource-list.component.spec.ts [moved from helix-front/client/app/resource/resource-list/resource-list.component.spec.ts with 100% similarity]
helix-front/src/app/resource/resource-list/resource-list.component.ts [moved from helix-front/client/app/resource/resource-list/resource-list.component.ts with 95% similarity]
helix-front/src/app/resource/resource-node-viewer/resource-node-viewer.component.html [moved from helix-front/client/app/resource/resource-node-viewer/resource-node-viewer.component.html with 100% similarity]
helix-front/src/app/resource/resource-node-viewer/resource-node-viewer.component.scss [moved from helix-front/client/app/resource/resource-node-viewer/resource-node-viewer.component.scss with 100% similarity]
helix-front/src/app/resource/resource-node-viewer/resource-node-viewer.component.spec.ts [moved from helix-front/client/app/resource/resource-node-viewer/resource-node-viewer.component.spec.ts with 100% similarity]
helix-front/src/app/resource/resource-node-viewer/resource-node-viewer.component.ts [moved from helix-front/client/app/resource/resource-node-viewer/resource-node-viewer.component.ts with 100% similarity]
helix-front/src/app/resource/resource.module.ts [moved from helix-front/client/app/resource/resource.module.ts with 100% similarity]
helix-front/src/app/resource/shared/resource.model.ts [moved from helix-front/client/app/resource/shared/resource.model.ts with 100% similarity]
helix-front/src/app/resource/shared/resource.resolver.ts [moved from helix-front/client/app/resource/shared/resource.resolver.ts with 100% similarity]
helix-front/src/app/resource/shared/resource.service.spec.ts [moved from helix-front/client/app/resource/shared/resource.service.spec.ts with 100% similarity]
helix-front/src/app/resource/shared/resource.service.ts [moved from helix-front/client/app/resource/shared/resource.service.ts with 100% similarity]
helix-front/src/app/shared/data-table/data-table.component.html [moved from helix-front/client/app/shared/data-table/data-table.component.html with 100% similarity]
helix-front/src/app/shared/data-table/data-table.component.scss [moved from helix-front/client/app/shared/data-table/data-table.component.scss with 90% similarity]
helix-front/src/app/shared/data-table/data-table.component.spec.ts [moved from helix-front/client/app/shared/data-table/data-table.component.spec.ts with 100% similarity]
helix-front/src/app/shared/data-table/data-table.component.ts [moved from helix-front/client/app/shared/data-table/data-table.component.ts with 100% similarity]
helix-front/src/app/shared/detail-header/detail-header.component.html [moved from helix-front/client/app/shared/detail-header/detail-header.component.html with 100% similarity]
helix-front/src/app/shared/detail-header/detail-header.component.scss [moved from helix-front/client/app/shared/detail-header/detail-header.component.scss with 100% similarity]
helix-front/src/app/shared/detail-header/detail-header.component.spec.ts [moved from helix-front/client/app/shared/detail-header/detail-header.component.spec.ts with 100% similarity]
helix-front/src/app/shared/detail-header/detail-header.component.ts [moved from helix-front/client/app/shared/detail-header/detail-header.component.ts with 100% similarity]
helix-front/src/app/shared/dialog/alert-dialog/alert-dialog.component.html [moved from helix-front/client/app/shared/dialog/alert-dialog/alert-dialog.component.html with 100% similarity]
helix-front/src/app/shared/dialog/alert-dialog/alert-dialog.component.scss [moved from helix-front/client/app/shared/dialog/alert-dialog/alert-dialog.component.scss with 100% similarity]
helix-front/src/app/shared/dialog/alert-dialog/alert-dialog.component.spec.ts [moved from helix-front/client/app/shared/dialog/alert-dialog/alert-dialog.component.spec.ts with 100% similarity]
helix-front/src/app/shared/dialog/alert-dialog/alert-dialog.component.ts [moved from helix-front/client/app/shared/dialog/alert-dialog/alert-dialog.component.ts with 100% similarity]
helix-front/src/app/shared/dialog/confirm-dialog/confirm-dialog.component.html [moved from helix-front/client/app/shared/dialog/confirm-dialog/confirm-dialog.component.html with 100% similarity]
helix-front/src/app/shared/dialog/confirm-dialog/confirm-dialog.component.scss [moved from helix-front/client/app/shared/dialog/confirm-dialog/confirm-dialog.component.scss with 100% similarity]
helix-front/src/app/shared/dialog/confirm-dialog/confirm-dialog.component.spec.ts [moved from helix-front/client/app/shared/dialog/confirm-dialog/confirm-dialog.component.spec.ts with 100% similarity]
helix-front/src/app/shared/dialog/confirm-dialog/confirm-dialog.component.ts [moved from helix-front/client/app/shared/dialog/confirm-dialog/confirm-dialog.component.ts with 100% similarity]
helix-front/src/app/shared/dialog/input-dialog/input-dialog.component.html [moved from helix-front/client/app/shared/dialog/input-dialog/input-dialog.component.html with 100% similarity]
helix-front/src/app/shared/dialog/input-dialog/input-dialog.component.scss [moved from helix-front/client/app/shared/dialog/input-dialog/input-dialog.component.scss with 100% similarity]
helix-front/src/app/shared/dialog/input-dialog/input-dialog.component.spec.ts [moved from helix-front/client/app/shared/dialog/input-dialog/input-dialog.component.spec.ts with 100% similarity]
helix-front/src/app/shared/dialog/input-dialog/input-dialog.component.ts [moved from helix-front/client/app/shared/dialog/input-dialog/input-dialog.component.ts with 100% similarity]
helix-front/src/app/shared/disabled-label/disabled-label.component.html [moved from helix-front/client/app/shared/disabled-label/disabled-label.component.html with 100% similarity]
helix-front/src/app/shared/disabled-label/disabled-label.component.scss [moved from helix-front/client/app/shared/disabled-label/disabled-label.component.scss with 100% similarity]
helix-front/src/app/shared/disabled-label/disabled-label.component.spec.ts [moved from helix-front/client/app/shared/disabled-label/disabled-label.component.spec.ts with 100% similarity]
helix-front/src/app/shared/disabled-label/disabled-label.component.ts [moved from helix-front/client/app/shared/disabled-label/disabled-label.component.ts with 100% similarity]
helix-front/src/app/shared/helper.service.spec.ts [moved from helix-front/client/app/shared/helper.service.spec.ts with 100% similarity]
helix-front/src/app/shared/helper.service.ts [moved from helix-front/client/app/shared/helper.service.ts with 100% similarity]
helix-front/src/app/shared/input-inline/input-inline.component.html [moved from helix-front/client/app/shared/input-inline/input-inline.component.html with 100% similarity]
helix-front/src/app/shared/input-inline/input-inline.component.scss [moved from helix-front/client/app/shared/input-inline/input-inline.component.scss with 100% similarity]
helix-front/src/app/shared/input-inline/input-inline.component.spec.ts [moved from helix-front/client/app/shared/input-inline/input-inline.component.spec.ts with 100% similarity]
helix-front/src/app/shared/input-inline/input-inline.component.ts [moved from helix-front/client/app/shared/input-inline/input-inline.component.ts with 100% similarity]
helix-front/src/app/shared/json-viewer/json-viewer.component.html [moved from helix-front/client/app/shared/json-viewer/json-viewer.component.html with 100% similarity]
helix-front/src/app/shared/json-viewer/json-viewer.component.scss [moved from helix-front/client/app/shared/json-viewer/json-viewer.component.scss with 100% similarity]
helix-front/src/app/shared/json-viewer/json-viewer.component.spec.ts [moved from helix-front/client/app/shared/json-viewer/json-viewer.component.spec.ts with 100% similarity]
helix-front/src/app/shared/json-viewer/json-viewer.component.ts [moved from helix-front/client/app/shared/json-viewer/json-viewer.component.ts with 100% similarity]
helix-front/src/app/shared/key-value-pairs/key-value-pairs.component.html [moved from helix-front/client/app/shared/key-value-pairs/key-value-pairs.component.html with 100% similarity]
helix-front/src/app/shared/key-value-pairs/key-value-pairs.component.scss [moved from helix-front/client/app/shared/key-value-pairs/key-value-pairs.component.scss with 100% similarity]
helix-front/src/app/shared/key-value-pairs/key-value-pairs.component.spec.ts [moved from helix-front/client/app/shared/key-value-pairs/key-value-pairs.component.spec.ts with 100% similarity]
helix-front/src/app/shared/key-value-pairs/key-value-pairs.component.ts [moved from helix-front/client/app/shared/key-value-pairs/key-value-pairs.component.ts with 100% similarity]
helix-front/src/app/shared/material.module.ts [moved from helix-front/client/app/shared/material.module.ts with 100% similarity]
helix-front/src/app/shared/models/node.model.ts [moved from helix-front/client/app/shared/models/node.model.ts with 62% similarity]
helix-front/src/app/shared/node-viewer/node-viewer.component.html [moved from helix-front/client/app/shared/node-viewer/node-viewer.component.html with 100% similarity]
helix-front/src/app/shared/node-viewer/node-viewer.component.scss [moved from helix-front/client/app/shared/node-viewer/node-viewer.component.scss with 94% similarity]
helix-front/src/app/shared/node-viewer/node-viewer.component.spec.ts [moved from helix-front/client/app/shared/node-viewer/node-viewer.component.spec.ts with 90% similarity]
helix-front/src/app/shared/node-viewer/node-viewer.component.ts [moved from helix-front/client/app/shared/node-viewer/node-viewer.component.ts with 100% similarity]
helix-front/src/app/shared/shared.module.ts [moved from helix-front/client/app/shared/shared.module.ts with 100% similarity]
helix-front/src/app/shared/state-label/state-label.component.html [moved from helix-front/client/app/shared/state-label/state-label.component.html with 100% similarity]
helix-front/src/app/shared/state-label/state-label.component.scss [moved from helix-front/client/app/shared/state-label/state-label.component.scss with 100% similarity]
helix-front/src/app/shared/state-label/state-label.component.spec.ts [moved from helix-front/client/app/shared/state-label/state-label.component.spec.ts with 100% similarity]
helix-front/src/app/shared/state-label/state-label.component.ts [moved from helix-front/client/app/shared/state-label/state-label.component.ts with 100% similarity]
helix-front/src/app/shared/state-label/state-label.stories.ts [new file with mode: 0644]
helix-front/src/app/workflow/job-detail/job-detail.component.html [moved from helix-front/client/app/workflow/job-detail/job-detail.component.html with 100% similarity]
helix-front/src/app/workflow/job-detail/job-detail.component.scss [moved from helix-front/client/app/workflow/job-detail/job-detail.component.scss with 100% similarity]
helix-front/src/app/workflow/job-detail/job-detail.component.spec.ts [moved from helix-front/client/app/workflow/job-detail/job-detail.component.spec.ts with 100% similarity]
helix-front/src/app/workflow/job-detail/job-detail.component.ts [moved from helix-front/client/app/workflow/job-detail/job-detail.component.ts with 100% similarity]
helix-front/src/app/workflow/job-list/job-list.component.html [moved from helix-front/client/app/workflow/job-list/job-list.component.html with 100% similarity]
helix-front/src/app/workflow/job-list/job-list.component.scss [moved from helix-front/client/app/workflow/job-list/job-list.component.scss with 100% similarity]
helix-front/src/app/workflow/job-list/job-list.component.spec.ts [moved from helix-front/client/app/workflow/job-list/job-list.component.spec.ts with 100% similarity]
helix-front/src/app/workflow/job-list/job-list.component.ts [moved from helix-front/client/app/workflow/job-list/job-list.component.ts with 87% similarity]
helix-front/src/app/workflow/shared/job.service.spec.ts [moved from helix-front/client/app/workflow/shared/job.service.spec.ts with 100% similarity]
helix-front/src/app/workflow/shared/job.service.ts [moved from helix-front/client/app/workflow/shared/job.service.ts with 100% similarity]
helix-front/src/app/workflow/shared/workflow.model.ts [moved from helix-front/client/app/workflow/shared/workflow.model.ts with 100% similarity]
helix-front/src/app/workflow/shared/workflow.service.spec.ts [moved from helix-front/client/app/workflow/shared/workflow.service.spec.ts with 100% similarity]
helix-front/src/app/workflow/shared/workflow.service.ts [moved from helix-front/client/app/workflow/shared/workflow.service.ts with 100% similarity]
helix-front/src/app/workflow/workflow-dag/workflow-dag.component.html [moved from helix-front/client/app/workflow/workflow-dag/workflow-dag.component.html with 100% similarity]
helix-front/src/app/workflow/workflow-dag/workflow-dag.component.scss [moved from helix-front/client/app/workflow/workflow-dag/workflow-dag.component.scss with 100% similarity]
helix-front/src/app/workflow/workflow-dag/workflow-dag.component.spec.ts [moved from helix-front/client/app/workflow/workflow-dag/workflow-dag.component.spec.ts with 100% similarity]
helix-front/src/app/workflow/workflow-dag/workflow-dag.component.ts [moved from helix-front/client/app/workflow/workflow-dag/workflow-dag.component.ts with 100% similarity]
helix-front/src/app/workflow/workflow-detail/workflow-detail.component.html [moved from helix-front/client/app/workflow/workflow-detail/workflow-detail.component.html with 98% similarity]
helix-front/src/app/workflow/workflow-detail/workflow-detail.component.scss [moved from helix-front/client/app/workflow/workflow-detail/workflow-detail.component.scss with 100% similarity]
helix-front/src/app/workflow/workflow-detail/workflow-detail.component.spec.ts [moved from helix-front/client/app/workflow/workflow-detail/workflow-detail.component.spec.ts with 100% similarity]
helix-front/src/app/workflow/workflow-detail/workflow-detail.component.ts [moved from helix-front/client/app/workflow/workflow-detail/workflow-detail.component.ts with 100% similarity]
helix-front/src/app/workflow/workflow-list/workflow-list.component.html [new file with mode: 0644]
helix-front/src/app/workflow/workflow-list/workflow-list.component.scss [moved from helix-front/client/app/workflow/workflow-list/workflow-list.component.scss with 100% similarity]
helix-front/src/app/workflow/workflow-list/workflow-list.component.spec.ts [moved from helix-front/client/app/workflow/workflow-list/workflow-list.component.spec.ts with 100% similarity]
helix-front/src/app/workflow/workflow-list/workflow-list.component.ts [moved from helix-front/client/app/workflow/workflow-list/workflow-list.component.ts with 51% similarity]
helix-front/src/app/workflow/workflow-list/workflow-list.stories.ts [new file with mode: 0644]
helix-front/src/app/workflow/workflow.module.ts [moved from helix-front/client/app/workflow/workflow.module.ts with 100% similarity]
helix-front/src/assets/.gitkeep [moved from helix-front/client/assets/.gitkeep with 100% similarity]
helix-front/src/assets/logo.png [moved from helix-front/client/assets/logo.png with 100% similarity]
helix-front/src/environments/environment.prod.ts [moved from helix-front/client/environments/environment.prod.ts with 100% similarity]
helix-front/src/environments/environment.ts [moved from helix-front/client/environments/environment.ts with 100% similarity]
helix-front/src/favicon.ico [moved from helix-front/client/favicon.ico with 100% similarity]
helix-front/src/index.html [moved from helix-front/client/index.html with 100% similarity]
helix-front/src/main.ts [moved from helix-front/client/main.ts with 100% similarity]
helix-front/src/polyfills.ts [moved from helix-front/client/polyfills.ts with 100% similarity]
helix-front/src/styles.scss [moved from helix-front/client/styles.scss with 100% similarity]
helix-front/src/testing/stubs.ts [moved from helix-front/client/testing/stubs.ts with 100% similarity]
helix-front/src/testing/testing.module.ts [moved from helix-front/client/testing/testing.module.ts with 100% similarity]
helix-front/src/theme.scss [moved from helix-front/client/theme.scss with 100% similarity]
helix-front/src/tsconfig.app.json [moved from helix-front/client/tsconfig.app.json with 83% similarity]
helix-front/src/tsconfig.spec.json [moved from helix-front/client/tsconfig.spec.json with 100% similarity]
helix-front/src/typings.d.ts [moved from helix-front/client/typings.d.ts with 100% similarity]
helix-front/tsconfig.json
helix-front/yarn.lock
helix-rest/src/main/java/org/apache/helix/rest/client/CustomRestClientImpl.java
helix-rest/src/main/java/org/apache/helix/rest/server/HelixRestServer.java
helix-rest/src/main/java/org/apache/helix/rest/server/resources/helix/InstancesAccessor.java
helix-rest/src/main/java/org/apache/helix/rest/server/service/VirtualTopologyGroupService.java
helix-rest/src/test/java/org/apache/helix/rest/server/service/TestVirtualTopologyGroupService.java
helix-view-aggregator/src/main/java/org/apache/helix/view/aggregator/HelixViewAggregator.java
helix-view-aggregator/src/main/java/org/apache/helix/view/aggregator/ViewClusterRefresher.java
helix-view-aggregator/src/main/java/org/apache/helix/view/dataprovider/ViewClusterDataCache.java [new file with mode: 0644]
helix-view-aggregator/src/main/java/org/apache/helix/view/statemodel/DistViewAggregatorStateModel.java
helix-view-aggregator/src/test/java/org/apache/helix/view/aggregator/TestViewClusterRefresher.java
helix-view-aggregator/src/test/java/org/apache/helix/view/dataprovider/TestViewClusterDataCache.java [new file with mode: 0644]
helix-view-aggregator/src/test/java/org/apache/helix/view/integration/TestHelixViewAggregator.java
zookeeper-api/pom.xml
zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/ZkClient.java
zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/ZkServer.java
zookeeper-api/src/test/java/org/apache/helix/zookeeper/impl/client/TestRawZkClient.java
zookeeper-api/zookeeper-api-1.0.5-SNAPSHOT.ivy

diff --git a/.github/PULL_REQUEST_TEMPLATE/helix_front.md b/.github/PULL_REQUEST_TEMPLATE/helix_front.md
new file mode 100644 (file)
index 0000000..98a536f
--- /dev/null
@@ -0,0 +1,39 @@
+### Description
+
+<!-- Write a concise description: "what?, why?, how?" and then add some details about this PR, including screenshots of any UI changes -->
+
+<!-- This PR fixes this Helix issue & includes the Helix issue in the PR description. Link your issue number here: You can write `Fix #123`.  See https://docs.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue -->
+
+This PR
+
+Fix #
+
+### Tests
+
+New unit or integration tests:
+
+<details>
+
+### Code Style
+
+<!-- Ensure the PR diff has been formatted using [Prettier](https://prettier.io) -->
+
+Formatted using [Prettier](https://prettier.io)
+
+### Commits
+
+- My commits all reference appropriate Apache Helix GitHub issues in their subject lines. In addition, my commits follow the guidelines from "[How to write a good git commit message](http://chris.beams.io/posts/git-commit/)"
+
+### Changes that Break Backward Compatibility (Optional)
+
+- [ ] My PR contains changes that break backward compatibility or previous assumptions for certain methods or API. They include: -->
+
+<!-- Consider including all behavior changes for public methods or API. Also include these changes in merge description so that other developers are aware of these changes. This allows them to make relevant code changes in feature branches accounting for the new method or API behavior. -->
+
+### Documentation (Optional)
+
+- [ ] In case of new functionality, my PR adds documentation in the following wiki page: -->
+
+<!-- Link the GitHub wiki you added -->
+
+</details>
index b2d31df9e8fd05090033114131c7bcd351449660..7ad3c89fe215dd9ef7354c30200d35ea0c6c49a6 100644 (file)
@@ -2,6 +2,10 @@ name: Helix PR CI
 on:
   pull_request:
     branches: [ master ]
+    paths-ignore:
+      - '.github/**'
+      - 'helix-front/**'
+      - '**/*.md'
 
 jobs:
   PR_CI:
diff --git a/.github/workflows/helix-front.yml b/.github/workflows/helix-front.yml
new file mode 100644 (file)
index 0000000..b5851b0
--- /dev/null
@@ -0,0 +1,20 @@
+name: helix-front
+on:
+  pull_request:
+    branches: [ master ]
+    paths:
+      - 'helix-front/**'
+
+jobs:
+  test:
+    name: Test helix-front
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v1
+      - uses: bahmutov/npm-install@v1
+        with:
+          working-directory: helix-front
+
+      - name: helix-front format:check
+        run: cd helix-front && npm run format:check
+        working-directory: helix-front
index 00157564122b6598820a22d236e742bf0ce5afe4..dc6e043e213dd32de50c2f0318486bbd7de3866e 100644 (file)
--- a/README.md
+++ b/README.md
@@ -49,3 +49,14 @@ Helix is a generic cluster management framework used for automatic management of
 4. Dynamic addition of nodes to the cluster
 5. Pluggable distributed state machine to manage the state of a resource via state transitions
 6. Automatic load balancing and throttling of transitions 
+
+## Dependencies
+
+Helix UI has been tested to run well on these versions of node and yarn: 
+
+```json
+  "engines": {
+    "node": "~14.17.5",
+    "yarn": "^1.22.18"
+  },
+```
\ No newline at end of file
index 0a3ff82cd7aa541a2e8fc9365024365cdde8433b..c2bf7bb7a1a4fa4ae07517cc239ee62f003c8991 100755 (executable)
@@ -52,7 +52,7 @@ under the License.
     <dependency org="org.apache.logging.log4j" name="log4j-slf4j-impl" rev="2.17.1" force="true" conf="compile->compile(*),master(*);runtime->runtime(*)">
         <artifact name="log4j-slf4j-impl" ext="jar"/>
     </dependency>
-    <dependency org="org.apache.zookeeper" name="zookeeper" rev="3.5.9" conf="compile->compile(default);runtime->runtime(default);default->default"/>
+    <dependency org="org.apache.zookeeper" name="zookeeper" rev="3.6.3" conf="compile->compile(default);runtime->runtime(default);default->default"/>
                <dependency org="com.fasterxml.jackson.core" name="jackson-databind" rev="2.12.6.1" conf="compile->compile(default);runtime->runtime(default);default->default"/>
     <dependency org="com.fasterxml.jackson.core" name="jackson-core" rev="2.12.6" conf="compile->compile(default);runtime->runtime(default);default->default"/>
     <dependency org="commons-io" name="commons-io" rev="2.11.0" conf="compile->compile(default);runtime->runtime(default);default->default"/>
@@ -63,6 +63,7 @@ under the License.
     <dependency org="org.yaml" name="snakeyaml" rev="1.30" conf="compile->compile(default);runtime->runtime(default);default->default"/>
     <dependency org="commons-logging" name="commons-logging-api" rev="1.1" conf="compile->compile(*),master(*);runtime->runtime(*)"/>
     <dependency org="io.dropwizard.metrics" name="metrics-core" rev="4.1.14" conf="compile->compile(default);runtime->runtime(default);default->default"/>
+    <dependency org="org.xerial.snappy" name="snappy-java" rev="1.1.7" conf="compile->compile(default);runtime->runtime(default);default->default"/>
        </dependencies>
 </ivy-module>
 
index 886546bb66425e3a57ceabef6ba13eaf59051f00..baa251d95ded41f4ac1cae33457c8f3769d9fede 100755 (executable)
       <artifactId>jaxb-api</artifactId>
       <version>2.1</version>
     </dependency>
+    <dependency>
+      <groupId>org.xerial.snappy</groupId>
+      <artifactId>snappy-java</artifactId>
+      <version>1.1.7</version>
+    </dependency>
   </dependencies>
   <build>
     <resources>
index 9c639d8179c882489016946966d93e1fefc7f89a..110b6810efb30e5bf03e09050bbc40138f8c453b 100644 (file)
@@ -53,7 +53,9 @@ public interface BaseDataAccessor<T> {
    * @param ttl TTL of the node in milliseconds, if options supports it
    * @return true if creation succeeded, false otherwise (e.g. if the ZNode exists)
    */
-  boolean create(String path, T record, int options, long ttl);
+  default boolean create(String path, T record, int options, long ttl) {
+    throw new UnsupportedOperationException("create with TTL support is not implemented.");
+  }
 
   /**
    * This will always attempt to set the data on existing node. If the ZNode does not
@@ -116,7 +118,9 @@ public interface BaseDataAccessor<T> {
    * @param ttl TTL of the node in milliseconds, if options supports it
    * @return For each child: true if creation succeeded, false otherwise (e.g. if the child exists)
    */
-  boolean[] createChildren(List<String> paths, List<T> records, int options, long ttl);
+  default boolean[] createChildren(List<String> paths, List<T> records, int options, long ttl) {
+    throw new UnsupportedOperationException("createChildren with TTL support is not implemented.");
+  }
 
   /**
    * can set multiple children under a parent node. This will use async api for better
index 73cbf85994bb96e4a7ec7b946c13a12e73cac148..1a79f88d132fb3f385055dd7d33854e276a04efb 100644 (file)
@@ -82,10 +82,6 @@ public class CallbackEventThreadPoolFactory {
         result.allowCoreThreadTimeOut(true);
         _managerToCallBackThreadPoolMap.put(hash, result);
         _callBackEventProcessorCountPerThreadPool.put(hash, new AtomicInteger(1));
-      } catch (Exception e) {
-        logger.error(String
-            .format("Error when creating new ThreadPoolExecutor for %s.", hash), e);
-        throw e;
       } finally {
         _lock.writeLock().unlock();
       }
index 1ed87fe503c9722df90e7057e81a5f9cacfc3115..65303b3898ce7b432af7dcd5dfbbb8f9a99b7a10 100644 (file)
@@ -781,9 +781,6 @@ public class ZKHelixManager implements HelixManager, IZkStateListener {
          */
         handleNewSession(ZKUtil.toHexSessionId(sessionId));
         break;
-      } catch (HelixException e) {
-        LOG.error("fail to createClient.", e);
-        throw e;
       } catch (Exception e) {
         retryCount++;
         LOG.error("fail to createClient. retry " + retryCount, e);
index 0c7a94f1b6bbe2e34cb17afa8485ddcf5700a926..e95fe3463e2c4cfd9031257dc85bd22a872c56c3 100644 (file)
@@ -393,9 +393,6 @@ public class ZkBaseDataAccessor<T> implements BaseDataAccessor<T> {
           result._retCode = RetCode.ERROR;
           return result;
         }
-      } catch (ZkBadVersionException e) {
-        LOG.debug("Exception while setting path: " + path, e);
-        throw e;
       } catch (Exception e) {
         LOG.error("Exception while setting path: " + path, e);
         result._retCode = RetCode.ERROR;
index d7d59dd83ee913a8a9d8a021914538835d4c971c..824c7b6d9682f028624fb6a5fb49b700ea89c786 100644 (file)
@@ -197,7 +197,6 @@ public class JmxDumper implements NotificationListener {
   }
 
   void init() throws Exception {
-    try {
       Set<ObjectInstance> existingInstances =
           _mbeanServer.queryMBeans(new ObjectName(_namePattern), null);
       _logger.info("Total " + existingInstances.size() + " mbeans matched " + _namePattern);
@@ -210,10 +209,6 @@ public class JmxDumper implements NotificationListener {
       FileWriter fos = new FileWriter(_outputFileName);
       System.out.println(_outputFileName);
       _outputFile = new PrintWriter(fos);
-    } catch (Exception e) {
-      _logger.error("fail to get all existing mbeans in " + _domain, e);
-      throw e;
-    }
   }
 
   @Override
index f565e0f5249c250098039e87edb089ce9fb92f36..52a2524a1ef7413de19bf9ad4b8e099c43af6dd3 100644 (file)
@@ -92,9 +92,8 @@ public class TaskAdmin {
             zkAddr);
     helixMgr.connect();
     TaskDriver driver = new TaskDriver(helixMgr);
-    try {
-      TaskDriver.DriverCommand cmd = TaskDriver.DriverCommand.valueOf(args[0]);
-      switch (cmd) {
+    TaskDriver.DriverCommand cmd = TaskDriver.DriverCommand.valueOf(args[0]);
+    switch (cmd) {
       case start:
         if (cl.hasOption(WORKFLOW_FILE_OPTION)) {
           driver.start(Workflow.parse(new File(cl.getOptionValue(WORKFLOW_FILE_OPTION))));
@@ -123,11 +122,6 @@ public class TaskAdmin {
       default:
         throw new IllegalArgumentException("Unknown command " + args[0]);
       }
-    } catch (IllegalArgumentException e) {
-      LOG.error("Unknown driver command " + args[0]);
-      throw e;
-    }
-
     helixMgr.disconnect();
   }
 
index 3e06271e47e51bfc22c99a3fc2d8a4ebf3ded0c0..87a4abff50c28272d023476a1bcbace863744019 100644 (file)
@@ -44,6 +44,7 @@ import org.apache.zookeeper.ZooDefs.OpCode;
 import org.apache.zookeeper.data.Stat;
 import org.apache.zookeeper.server.DataNode;
 import org.apache.zookeeper.server.DataTree;
+import org.apache.zookeeper.server.TxnLogEntry;
 import org.apache.zookeeper.server.persistence.FileHeader;
 import org.apache.zookeeper.server.persistence.FileSnap;
 import org.apache.zookeeper.server.persistence.FileTxnLog;
@@ -248,13 +249,12 @@ public class ZKLogFormatter {
       if (crcValue != crc.getValue()) {
         throw new IOException("CRC doesn't match " + crcValue + " vs " + crc.getValue());
       }
-      TxnHeader hdr = new TxnHeader();
-      Record txn = SerializeUtils.deserializeTxn(bytes, hdr);
+      TxnLogEntry txnLogEntry =  SerializeUtils.deserializeTxn(bytes);
       if (bw != null) {
-        bw.write(formatTransaction(hdr, txn));
+        bw.write(formatTransaction(txnLogEntry.getHeader(), txnLogEntry.getTxn()));
         bw.newLine();
       } else {
-        System.out.println(formatTransaction(hdr, txn));
+        System.out.println(formatTransaction(txnLogEntry.getHeader(), txnLogEntry.getTxn()));
       }
 
       if (logStream.readByte("EOR") != 'B') {
index 0ce99d59ef94a4314b24e4b58f36f236b30165e2..40abb2aee222f0337a6bd6264eea07283faa0778 100644 (file)
@@ -433,6 +433,36 @@ public class TestZkBaseDataAccessor extends ZkUnitTestBase {
     System.out.println("END " + testName + " at " + new Date(System.currentTimeMillis()));
   }
 
+  @Test
+  public void testDeleteNodeWithChildren() {
+    String root = _rootPath;
+
+    ZkBaseDataAccessor<ZNRecord> accessor = new ZkBaseDataAccessor<>(_gZkClient);
+
+    // CreateChildren
+    List<ZNRecord> records = new ArrayList<>();
+    List<String> paths = new ArrayList<>();
+    for (int i = 0; i < 10; i++) {
+      String msgId = "msg_" + i;
+      paths.add(PropertyPathBuilder.instanceMessage(root, "host_1", msgId));
+      records.add(new ZNRecord(msgId));
+    }
+    boolean[] success = accessor.createChildren(paths, records, AccessOption.PERSISTENT);
+
+    // Attempt to remove parent. Shouldn't throw an error or warning log.
+    // Should return True if recursive deletion succeeds.
+    Assert.assertTrue(accessor.remove(PropertyPathBuilder.instanceMessage(root, "host_1"), 0),
+            "Should return True despite log errors.");
+
+    // Assert child message nodes were removed when calling remove on parent
+    for (int i = 0; i < 10; i++) {
+      String msgId = "msg_" + i;
+      String path = PropertyPathBuilder.instanceMessage(root, "host_1", msgId);
+      boolean pathExists = _gZkClient.exists(path);
+      Assert.assertFalse(pathExists, "Message znode should have been removed by accessor msgId=" + msgId);
+    }
+  }
+
   @Test
   public void testSyncGet() {
     String className = TestHelper.getTestClassName();
diff --git a/helix-front/.babelrc b/helix-front/.babelrc
new file mode 100644 (file)
index 0000000..38d5956
--- /dev/null
@@ -0,0 +1,5 @@
+// .babelrc
+
+{
+  "presets": ["@babel/preset-env", "@babel/preset-typescript"]
+}
diff --git a/helix-front/.storybook/main.js b/helix-front/.storybook/main.js
new file mode 100644 (file)
index 0000000..2615513
--- /dev/null
@@ -0,0 +1,39 @@
+// .storybook/main.js
+const path = require('path');
+
+module.exports = {
+  addons: ['@storybook/addon-essentials'],
+  core: {
+    builder: 'webpack5',
+  },
+  features: {
+    storyStoreV7: true,
+  },
+  framework: '@storybook/angular',
+  stories: ['../src/app/**/*.stories.@(ts|mdx)'],
+  typescript: {
+    check: false,
+    checkOptions: {},
+  },
+  webpackFinal: async (config, { configType }) => {
+    // Make whatever fine-grained changes you need
+    // Return the altered config
+    return {
+      ...config,
+      resolve: {
+        ...config.resolve,
+        modules: [path.resolve('./src'), ...config.resolve.modules],
+        fallback: {
+          timers: false,
+          tty: false,
+          os: false,
+          http: false,
+          https: false,
+          zlib: false,
+          util: false,
+          ...config.resolve.fallback,
+        },
+      },
+    };
+  },
+};
index c81813ddfa2350bbb96e3ea67b4908eaac7e9e76..473df6427e3ba74991486a1ced7a29f8b297a270 100644 (file)
@@ -5,7 +5,7 @@
   "projects": {
     "helix-front": {
       "root": "",
-      "sourceRoot": "client",
+      "sourceRoot": "src",
       "projectType": "application",
       "architect": {
         "build": {
           "options": {
             "aot": true,
             "outputPath": "dist/public",
-            "index": "client/index.html",
-            "main": "client/main.ts",
-            "tsConfig": "client/tsconfig.app.json",
-            "polyfills": "client/polyfills.ts",
+            "index": "src/index.html",
+            "main": "src/main.ts",
+            "tsConfig": "src/tsconfig.app.json",
+            "polyfills": "src/polyfills.ts",
             "assets": [
-              "client/assets",
-              "client/favicon.ico",
+              "src/assets",
+              "src/favicon.ico",
               {
                 "glob": "**/*",
                 "input": "node_modules/ace-builds/src-min/",
                 "output": "/"
               }
             ],
-            "styles": ["client/styles.scss", "client/theme.scss"],
+            "styles": ["src/styles.scss", "src/theme.scss"],
             "scripts": [
               "node_modules/ace-builds/src-min/ace.js",
               "node_modules/ace-builds/src-min/theme-eclipse.js",
@@ -60,8 +60,8 @@
               "buildOptimizer": true,
               "fileReplacements": [
                 {
-                  "replace": "client/environments/environment.ts",
-                  "with": "client/environments/environment.prod.ts"
+                  "replace": "src/environments/environment.ts",
+                  "with": "src/environments/environment.prod.ts"
                 }
               ]
             },
@@ -94,8 +94,8 @@
           "builder": "@angular-builders/jest:run",
           "options": {
             "main": ["setupJest.ts"],
-            "tsConfig": "client/tsconfig.spec.json",
-            "polyfills": ["client/polyfills.ts"],
+            "tsConfig": "src/tsconfig.spec.json",
+            "polyfills": ["src/polyfills.ts"],
             "no-cache": true,
             "scripts": [
               "node_modules/ace-builds/src-min/ace.js",
               "node_modules/ace-builds/src-min/mode-css.js",
               "node_modules/ace-builds/src-min/mode-json.js"
             ],
-            "styles": ["client/styles.scss", "client/theme.scss"],
-            "assets": ["client/assets", "client/favicon.ico"]
+            "styles": ["src/styles.scss", "src/theme.scss"],
+            "assets": ["src/assets", "src/favicon.ico"]
           }
         },
         "lint": {
           "builder": "@angular-eslint/builder:lint",
           "options": {
             "tsConfig": [
-              "client/tsconfig.app.json",
-              "client/tsconfig.spec.json",
+              "src/tsconfig.app.json",
+              "src/tsconfig.spec.json",
               "cypress/tsconfig.json"
             ],
             "exclude": [],
               "devServerTarget": "helix-front:serve:production"
             }
           }
+        },
+        "storybook": {
+          "builder": "@storybook/angular:start-storybook",
+          "options": {
+            "browserTarget": "helix-front:serve:development",
+            "port": 6006
+          }
+        },
+        "build-storybook": {
+          "builder": "@storybook/angular:build-storybook",
+          "options": {
+            "browserTarget": "helix-front:build:development"
+          }
         }
       }
     },
diff --git a/helix-front/client/app/cluster/cluster-list/cluster-list.component.scss b/helix-front/client/app/cluster/cluster-list/cluster-list.component.scss
deleted file mode 100644 (file)
index 3b5b4a3..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-@use '@angular/material' as mat;
-@import 'client/theme.scss';
-
-.mat-spinner {
-  margin: 20px;
-}
-
-.cluster-list-item-selected h4 {
-  font-weight: 500;
-  color: mat.get-color-from-palette($hi-primary);
-}
-
-.error-message {
-  padding: 10px;
-}
-
-.mat-mini-fab {
-  position: fixed;
-  right: 16px;
-  top: 16px;
-}
-
-.empty {
-  font-size: 14px;
-  // font-style: italic;
-  padding: 10px;
-}
diff --git a/helix-front/client/app/workflow/workflow-list/workflow-list.component.html b/helix-front/client/app/workflow/workflow-list/workflow-list.component.html
deleted file mode 100644 (file)
index 5f5ff39..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-<!--
-  ~ 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.
-  -->
-
-<section fxLayout="column" fxLayoutAlign="center center">
-  <mat-spinner *ngIf="isLoading"></mat-spinner>
-  <section fxFlexFill>
-    <section *ngIf="!isLoading && workflows.length == 0" class="empty">
-      There's no workflow here.
-    </section>
-    <mat-nav-list>
-      <a *ngFor="let name of workflows" mat-list-item [routerLink]="[name]">
-        <div mat-line>{{ name }}</div>
-      </a>
-    </mat-nav-list>
-  </section>
-</section>
diff --git a/helix-front/docs/classes/Cluster.html b/helix-front/docs/classes/Cluster.html
new file mode 100644 (file)
index 0000000..b01345c
--- /dev/null
@@ -0,0 +1,518 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>helix-front documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+          <link rel="stylesheet" href="../styles/style.css">
+        <link rel="stylesheet" href="../styles/dark.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">helix-front documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div>            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content class">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Classes</li>
+  <li >Cluster</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/cluster/shared/cluster.model.ts</code>
+        </p>
+
+
+
+
+
+
+            <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Properties</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#config" >config</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Readonly</span>
+                                <a href="#controller" >controller</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Readonly</span>
+                                <a href="#enabled" >enabled</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Readonly</span>
+                                <a href="#inMaintenance" >inMaintenance</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Readonly</span>
+                                <a href="#instances" >instances</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Readonly</span>
+                                <a href="#name" >name</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Readonly</span>
+                                <a href="#resources" >resources</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Readonly</span>
+                                <a href="#stateModels" >stateModels</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+            <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor(obj: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="16" class="link-to-prism">src/app/cluster/shared/cluster.model.ts:16</a></div>
+                            </td>
+                        </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                            <div>
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>obj</td>
+                                                  
+                                                        <td>
+                                                                        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+            <section>
+    
+    <h3 id="inputs">
+        Properties
+    </h3>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="config"></a>
+                    <span class="name">
+                        <span ><b>config</b></span>
+                        <a href="#config"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object" target="_blank" >Object</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="16" class="link-to-prism">src/app/cluster/shared/cluster.model.ts:16</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="controller"></a>
+                    <span class="name">
+                            <span class="modifier">Readonly</span>
+                        <span ><b>controller</b></span>
+                        <a href="#controller"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="5" class="link-to-prism">src/app/cluster/shared/cluster.model.ts:5</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="enabled"></a>
+                    <span class="name">
+                            <span class="modifier">Readonly</span>
+                        <span ><b>enabled</b></span>
+                        <a href="#enabled"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="6" class="link-to-prism">src/app/cluster/shared/cluster.model.ts:6</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="inMaintenance"></a>
+                    <span class="name">
+                            <span class="modifier">Readonly</span>
+                        <span ><b>inMaintenance</b></span>
+                        <a href="#inMaintenance"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="8" class="link-to-prism">src/app/cluster/shared/cluster.model.ts:8</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="instances"></a>
+                    <span class="name">
+                            <span class="modifier">Readonly</span>
+                        <span ><b>instances</b></span>
+                        <a href="#instances"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="../classes/Instance.html" target="_self" >Instance[]</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="7" class="link-to-prism">src/app/cluster/shared/cluster.model.ts:7</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="name"></a>
+                    <span class="name">
+                            <span class="modifier">Readonly</span>
+                        <span ><b>name</b></span>
+                        <a href="#name"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="4" class="link-to-prism">src/app/cluster/shared/cluster.model.ts:4</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="resources"></a>
+                    <span class="name">
+                            <span class="modifier">Readonly</span>
+                        <span ><b>resources</b></span>
+                        <a href="#resources"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>    <code>string[]</code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="11" class="link-to-prism">src/app/cluster/shared/cluster.model.ts:11</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="stateModels"></a>
+                    <span class="name">
+                            <span class="modifier">Readonly</span>
+                        <span ><b>stateModels</b></span>
+                        <a href="#stateModels"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>    <code>string[]</code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="14" class="link-to-prism">src/app/cluster/shared/cluster.model.ts:14</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+
+
+
+
+
+
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Instance } from &#x27;../../instance/shared/instance.model&#x27;;
+
+export class Cluster {
+  readonly name: string;
+  readonly controller: string;
+  readonly enabled: boolean;
+  readonly instances: Instance[];
+  readonly inMaintenance: boolean;
+
+  // TODO vxu: Resources are useless here. Remove it please.
+  readonly resources: string[];
+
+  // TODO vxu: convert it to use StateModel[]
+  readonly stateModels: string[];
+
+  config: Object;
+
+  constructor(obj: any) {
+    this.name &#x3D; obj.id;
+    this.controller &#x3D; obj.controller;
+    this.enabled &#x3D; !obj.paused;
+    this.resources &#x3D; obj.resources;
+    this.inMaintenance &#x3D; obj.maintenance;
+
+    const ins: Instance[] &#x3D; [];
+    for (const instance of obj.instances) {
+      ins.push(
+        new Instance(
+          instance,
+          this.name,
+          false, // here&#x27;s a dummy value. should not be used
+          obj.liveInstances.indexOf(instance) &gt;&#x3D; 0
+        )
+      );
+    }
+    this.instances &#x3D; ins;
+  }
+}
+</code></pre>
+    </div>
+</div>
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+          <label class="dark-mode-switch">
+               <input type="checkbox">
+               <span class="slider">
+                    <svg class="slider-icon" viewBox="0 0 24 24" fill="none" height="20" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" width="20" xmlns="http://www.w3.org/2000/svg">
+                    <path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"></path>
+                    </svg>
+               </span>
+          </label>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'class';
+            var COMPODOC_CURRENT_PAGE_URL = 'Cluster.html';
+            var MAX_SEARCH_RESULTS = 15;
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+
+       <script src="../js/menu-wc.js" defer></script>
+       <script nomodule src="../js/menu-wc_es5.js" defer></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/helix-front/docs/classes/Controller.html b/helix-front/docs/classes/Controller.html
new file mode 100644 (file)
index 0000000..390e4f5
--- /dev/null
@@ -0,0 +1,436 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>helix-front documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+          <link rel="stylesheet" href="../styles/style.css">
+        <link rel="stylesheet" href="../styles/dark.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">helix-front documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div>            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content class">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Classes</li>
+  <li >Controller</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/controller/shared/controller.model.ts</code>
+        </p>
+
+
+
+
+
+
+            <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Properties</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                    <span class="modifier">Readonly</span>
+                                <a href="#clusterName" >clusterName</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Readonly</span>
+                                <a href="#helixVersion" >helixVersion</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Readonly</span>
+                                <a href="#liveInstance" >liveInstance</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Readonly</span>
+                                <a href="#name" >name</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Readonly</span>
+                                <a href="#sessionId" >sessionId</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+            <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor(name, cluster, liveInstance, sessionId, version)</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="6" class="link-to-prism">src/app/controller/shared/controller.model.ts:6</a></div>
+                            </td>
+                        </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                            <div>
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>name</td>
+                                                  
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>cluster</td>
+                                                  
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>liveInstance</td>
+                                                  
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>sessionId</td>
+                                                  
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>version</td>
+                                                  
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+            <section>
+    
+    <h3 id="inputs">
+        Properties
+    </h3>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="clusterName"></a>
+                    <span class="name">
+                            <span class="modifier">Readonly</span>
+                        <span ><b>clusterName</b></span>
+                        <a href="#clusterName"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="3" class="link-to-prism">src/app/controller/shared/controller.model.ts:3</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="helixVersion"></a>
+                    <span class="name">
+                            <span class="modifier">Readonly</span>
+                        <span ><b>helixVersion</b></span>
+                        <a href="#helixVersion"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="6" class="link-to-prism">src/app/controller/shared/controller.model.ts:6</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="liveInstance"></a>
+                    <span class="name">
+                            <span class="modifier">Readonly</span>
+                        <span ><b>liveInstance</b></span>
+                        <a href="#liveInstance"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="4" class="link-to-prism">src/app/controller/shared/controller.model.ts:4</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="name"></a>
+                    <span class="name">
+                            <span class="modifier">Readonly</span>
+                        <span ><b>name</b></span>
+                        <a href="#name"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="2" class="link-to-prism">src/app/controller/shared/controller.model.ts:2</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="sessionId"></a>
+                    <span class="name">
+                            <span class="modifier">Readonly</span>
+                        <span ><b>sessionId</b></span>
+                        <a href="#sessionId"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="5" class="link-to-prism">src/app/controller/shared/controller.model.ts:5</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+
+
+
+
+
+
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">export class Controller {
+  readonly name: string;
+  readonly clusterName: string;
+  readonly liveInstance: string;
+  readonly sessionId: string;
+  readonly helixVersion: string;
+
+  constructor(name, cluster, liveInstance, sessionId, version) {
+    this.name &#x3D; name;
+    this.clusterName &#x3D; cluster;
+    this.liveInstance &#x3D; liveInstance;
+    this.sessionId &#x3D; sessionId;
+    this.helixVersion &#x3D; version;
+  }
+}
+</code></pre>
+    </div>
+</div>
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+          <label class="dark-mode-switch">
+               <input type="checkbox">
+               <span class="slider">
+                    <svg class="slider-icon" viewBox="0 0 24 24" fill="none" height="20" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" width="20" xmlns="http://www.w3.org/2000/svg">
+                    <path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"></path>
+                    </svg>
+               </span>
+          </label>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'class';
+            var COMPODOC_CURRENT_PAGE_URL = 'Controller.html';
+            var MAX_SEARCH_RESULTS = 15;
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+
+       <script src="../js/menu-wc.js" defer></script>
+       <script nomodule src="../js/menu-wc_es5.js" defer></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/helix-front/docs/classes/HelixCtrl.html b/helix-front/docs/classes/HelixCtrl.html
new file mode 100644 (file)
index 0000000..e82d01c
--- /dev/null
@@ -0,0 +1,535 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>helix-front documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+          <link rel="stylesheet" href="../styles/style.css">
+        <link rel="stylesheet" href="../styles/dark.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">helix-front documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div>            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content class">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Classes</li>
+  <li >HelixCtrl</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>server/controllers/helix.ts</code>
+        </p>
+
+
+
+
+
+
+            <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Properties</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                    <span class="modifier">Static</span>
+                                    <span class="modifier">Readonly</span>
+                                <a href="#ROUTE_PREFIX" >ROUTE_PREFIX</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                    <span class="modifier">Protected</span>
+                                <a href="#list" >list</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Protected</span>
+                                <a href="#proxy" >proxy</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+            <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor(router: <a href="https://angular.io/api/router/Router" target="_blank">Router</a>)</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="9" class="link-to-prism">server/controllers/helix.ts:9</a></div>
+                            </td>
+                        </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                            <div>
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>router</td>
+                                                  
+                                                        <td>
+                                                                        <code><a href="https://angular.io/api/router/Router" target="_blank" >Router</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+            <section>
+    
+    <h3 id="inputs">
+        Properties
+    </h3>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="ROUTE_PREFIX"></a>
+                    <span class="name">
+                            <span class="modifier">Static</span>
+                            <span class="modifier">Readonly</span>
+                        <span ><b>ROUTE_PREFIX</b></span>
+                        <a href="#ROUTE_PREFIX"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Default value : </i><code>&#x27;/api/helix&#x27;</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="9" class="link-to-prism">server/controllers/helix.ts:9</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+            <section>
+    
+    <h3 id="methods">
+        Methods
+    </h3>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="list"></a>
+                    <span class="name">
+                        <span class="modifier">Protected</span>
+                        <span ><b>list</b></span>
+                        <a href="#list"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+            <tr>
+                <td class="col-md-4">
+                    <span class="modifier-icon icon ion-ios-reset"></span>
+                    <code>list(req: Request, res: Response)</code>
+                </td>
+            </tr>
+
+
+            <tr>
+                <td class="col-md-4">
+                    <div class="io-line">Defined in <a href="" data-line="65"
+                            class="link-to-prism">server/controllers/helix.ts:65</a></div>
+                </td>
+            </tr>
+
+
+            <tr>
+                <td class="col-md-4">
+
+                    <div class="io-description">
+                        <b>Parameters :</b>
+                        
+                        <table class="params">
+                            <thead>
+                                <tr>
+                                    <td>Name</td>
+                                    <td>Type</td>
+                                    <td>Optional</td>
+                                </tr>
+                            </thead>
+                            <tbody>
+                                <tr>
+                                    <td>req</td>
+                                    <td>
+                                            <code>Request</code>
+                                    </td>
+
+                                    <td>
+                                        No
+                                    </td>
+
+
+                                </tr>
+                                <tr>
+                                    <td>res</td>
+                                    <td>
+                                            <code>Response</code>
+                                    </td>
+
+                                    <td>
+                                        No
+                                    </td>
+
+
+                                </tr>
+                            </tbody>
+                        </table>
+                    </div>
+                    <div>
+                    </div>
+                    <div class="io-description">
+                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                    </div>
+                    <div class="io-description">
+                        
+                    </div>
+                </td>
+            </tr>
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="proxy"></a>
+                    <span class="name">
+                        <span class="modifier">Protected</span>
+                        <span ><b>proxy</b></span>
+                        <a href="#proxy"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+            <tr>
+                <td class="col-md-4">
+                    <span class="modifier-icon icon ion-ios-reset"></span>
+                    <code>proxy(req: <a href="../interfaces/HelixUserRequest.html" target="_self">HelixUserRequest</a>, res: Response)</code>
+                </td>
+            </tr>
+
+
+            <tr>
+                <td class="col-md-4">
+                    <div class="io-line">Defined in <a href="" data-line="16"
+                            class="link-to-prism">server/controllers/helix.ts:16</a></div>
+                </td>
+            </tr>
+
+
+            <tr>
+                <td class="col-md-4">
+
+                    <div class="io-description">
+                        <b>Parameters :</b>
+                        
+                        <table class="params">
+                            <thead>
+                                <tr>
+                                    <td>Name</td>
+                                    <td>Type</td>
+                                    <td>Optional</td>
+                                </tr>
+                            </thead>
+                            <tbody>
+                                <tr>
+                                    <td>req</td>
+                                    <td>
+                                                <code><a href="../interfaces/HelixUserRequest.html" target="_self" >HelixUserRequest</a></code>
+                                    </td>
+
+                                    <td>
+                                        No
+                                    </td>
+
+
+                                </tr>
+                                <tr>
+                                    <td>res</td>
+                                    <td>
+                                            <code>Response</code>
+                                    </td>
+
+                                    <td>
+                                        No
+                                    </td>
+
+
+                                </tr>
+                            </tbody>
+                        </table>
+                    </div>
+                    <div>
+                    </div>
+                    <div class="io-description">
+                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                    </div>
+                    <div class="io-description">
+                        
+                    </div>
+                </td>
+            </tr>
+        </tbody>
+    </table>
+</section>
+
+
+
+
+
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Request, Response, Router } from &#x27;express&#x27;;
+
+import * as request from &#x27;request&#x27;;
+
+import { HELIX_ENDPOINTS } from &#x27;../config&#x27;;
+import { HelixUserRequest } from &#x27;./d&#x27;;
+
+export class HelixCtrl {
+  static readonly ROUTE_PREFIX &#x3D; &#x27;/api/helix&#x27;;
+
+  constructor(router: Router) {
+    router.route(&#x27;/helix/list&#x27;).get(this.list);
+    router.route(&#x27;/helix/*&#x27;).all(this.proxy);
+  }
+
+  protected proxy(req: HelixUserRequest, res: Response) {
+    const url &#x3D; req.originalUrl.replace(HelixCtrl.ROUTE_PREFIX, &#x27;&#x27;);
+    const helixKey &#x3D; url.split(&#x27;/&#x27;)[1];
+
+    const segments &#x3D; helixKey.split(&#x27;.&#x27;);
+    const group &#x3D; segments[0];
+
+    segments.shift();
+    const name &#x3D; segments.join(&#x27;.&#x27;);
+
+    const user &#x3D; req.session.username;
+    const method &#x3D; req.method.toLowerCase();
+    if (method !&#x3D; &#x27;get&#x27; &amp;&amp; !req.session.isAdmin) {
+      res.status(403).send(&#x27;Forbidden&#x27;);
+      return;
+    }
+
+    let apiPrefix &#x3D; null;
+    if (HELIX_ENDPOINTS[group]) {
+      HELIX_ENDPOINTS[group].forEach((section) &#x3D;&gt; {
+        if (section[name]) {
+          apiPrefix &#x3D; section[name];
+        }
+      });
+    }
+
+    if (apiPrefix) {
+      const realUrl &#x3D; apiPrefix + url.replace(&#x60;/${helixKey}&#x60;, &#x27;&#x27;);
+      const options &#x3D; {
+        url: realUrl,
+        json: req.body,
+        headers: {
+          &#x27;Helix-User&#x27;: user,
+        },
+      };
+      request[method](options, (error, response, body) &#x3D;&gt; {
+        if (error) {
+          res.status(500).send(error);
+        } else if (body?.error) {
+          res.status(500).send(body?.error);
+        } else {
+          res.status(response.statusCode).send(body);
+        }
+      });
+    } else {
+      res.status(404).send(&#x27;Not found&#x27;);
+    }
+  }
+
+  protected list(req: Request, res: Response) {
+    try {
+      res.json(HELIX_ENDPOINTS);
+    } catch (err) {
+      console.log(&#x27;error from helix/list/&#x27;);
+      console.log(err);
+    }
+  }
+}
+</code></pre>
+    </div>
+</div>
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+          <label class="dark-mode-switch">
+               <input type="checkbox">
+               <span class="slider">
+                    <svg class="slider-icon" viewBox="0 0 24 24" fill="none" height="20" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" width="20" xmlns="http://www.w3.org/2000/svg">
+                    <path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"></path>
+                    </svg>
+               </span>
+          </label>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'class';
+            var COMPODOC_CURRENT_PAGE_URL = 'HelixCtrl.html';
+            var MAX_SEARCH_RESULTS = 15;
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+
+       <script src="../js/menu-wc.js" defer></script>
+       <script nomodule src="../js/menu-wc_es5.js" defer></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/helix-front/docs/classes/History.html b/helix-front/docs/classes/History.html
new file mode 100644 (file)
index 0000000..2cf26b2
--- /dev/null
@@ -0,0 +1,308 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>helix-front documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+          <link rel="stylesheet" href="../styles/style.css">
+        <link rel="stylesheet" href="../styles/dark.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">helix-front documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div>            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content class">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Classes</li>
+  <li >History</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/history/shared/history.model.ts</code>
+        </p>
+
+
+
+
+
+
+            <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Properties</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#controller" >controller</a>
+                            </li>
+                            <li>
+                                <a href="#date" >date</a>
+                            </li>
+                            <li>
+                                <a href="#session" >session</a>
+                            </li>
+                            <li>
+                                <a href="#time" >time</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+
+            <section>
+    
+    <h3 id="inputs">
+        Properties
+    </h3>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="controller"></a>
+                    <span class="name">
+                        <span ><b>controller</b></span>
+                        <a href="#controller"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="5" class="link-to-prism">src/app/history/shared/history.model.ts:5</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="date"></a>
+                    <span class="name">
+                        <span ><b>date</b></span>
+                        <a href="#date"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="2" class="link-to-prism">src/app/history/shared/history.model.ts:2</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="session"></a>
+                    <span class="name">
+                        <span ><b>session</b></span>
+                        <a href="#session"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="4" class="link-to-prism">src/app/history/shared/history.model.ts:4</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="time"></a>
+                    <span class="name">
+                        <span ><b>time</b></span>
+                        <a href="#time"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="3" class="link-to-prism">src/app/history/shared/history.model.ts:3</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+
+
+
+
+
+
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">export class History {
+  date: string;
+  time: number;
+  session: string;
+  controller: string;
+}
+</code></pre>
+    </div>
+</div>
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+          <label class="dark-mode-switch">
+               <input type="checkbox">
+               <span class="slider">
+                    <svg class="slider-icon" viewBox="0 0 24 24" fill="none" height="20" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" width="20" xmlns="http://www.w3.org/2000/svg">
+                    <path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"></path>
+                    </svg>
+               </span>
+          </label>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'class';
+            var COMPODOC_CURRENT_PAGE_URL = 'History.html';
+            var MAX_SEARCH_RESULTS = 15;
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+
+       <script src="../js/menu-wc.js" defer></script>
+       <script nomodule src="../js/menu-wc_es5.js" defer></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/helix-front/docs/classes/Instance.html b/helix-front/docs/classes/Instance.html
new file mode 100644 (file)
index 0000000..c809be1
--- /dev/null
@@ -0,0 +1,549 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>helix-front documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+          <link rel="stylesheet" href="../styles/style.css">
+        <link rel="stylesheet" href="../styles/dark.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">helix-front documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div>            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content class">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Classes</li>
+  <li >Instance</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/instance/shared/instance.model.ts</code>
+        </p>
+
+
+
+
+
+
+            <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Properties</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                    <span class="modifier">Readonly</span>
+                                <a href="#clusterName" >clusterName</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Readonly</span>
+                                <a href="#enabled" >enabled</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Readonly</span>
+                                <a href="#helixVersion" >helixVersion</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Readonly</span>
+                                <a href="#liveInstance" >liveInstance</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Readonly</span>
+                                <a href="#name" >name</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Readonly</span>
+                                <a href="#sessionId" >sessionId</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+
+                    <tr>
+                        <td class="col-md-4">
+                            <h6><b>Accessors</b></h6>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <ul class="index-list">
+                                <li>
+                                    <a href="#healthy" >healthy</a>
+                                </li>
+                            </ul>
+                        </td>
+                    </tr>
+        </tbody>
+    </table>
+</section>
+
+            <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor(name: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, clusterName: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, enabled: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank">boolean</a>, liveInstance: boolean | string, sessionId?: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, helixVersion?: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="11" class="link-to-prism">src/app/instance/shared/instance.model.ts:11</a></div>
+                            </td>
+                        </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                            <div>
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>name</td>
+                                                  
+                                                        <td>
+                                                                        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>clusterName</td>
+                                                  
+                                                        <td>
+                                                                        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>enabled</td>
+                                                  
+                                                        <td>
+                                                                        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>liveInstance</td>
+                                                  
+                                                        <td>
+                                                                    <code>boolean | string</code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>sessionId</td>
+                                                  
+                                                        <td>
+                                                                        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            Yes
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>helixVersion</td>
+                                                  
+                                                        <td>
+                                                                        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            Yes
+                                                    </td>
+                                                    
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+            <section>
+    
+    <h3 id="inputs">
+        Properties
+    </h3>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="clusterName"></a>
+                    <span class="name">
+                            <span class="modifier">Readonly</span>
+                        <span ><b>clusterName</b></span>
+                        <a href="#clusterName"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="3" class="link-to-prism">src/app/instance/shared/instance.model.ts:3</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="enabled"></a>
+                    <span class="name">
+                            <span class="modifier">Readonly</span>
+                        <span ><b>enabled</b></span>
+                        <a href="#enabled"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="4" class="link-to-prism">src/app/instance/shared/instance.model.ts:4</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="helixVersion"></a>
+                    <span class="name">
+                            <span class="modifier">Readonly</span>
+                        <span ><b>helixVersion</b></span>
+                        <a href="#helixVersion"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="7" class="link-to-prism">src/app/instance/shared/instance.model.ts:7</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="liveInstance"></a>
+                    <span class="name">
+                            <span class="modifier">Readonly</span>
+                        <span ><b>liveInstance</b></span>
+                        <a href="#liveInstance"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>    <code>boolean | string</code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="5" class="link-to-prism">src/app/instance/shared/instance.model.ts:5</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="name"></a>
+                    <span class="name">
+                            <span class="modifier">Readonly</span>
+                        <span ><b>name</b></span>
+                        <a href="#name"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="2" class="link-to-prism">src/app/instance/shared/instance.model.ts:2</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="sessionId"></a>
+                    <span class="name">
+                            <span class="modifier">Readonly</span>
+                        <span ><b>sessionId</b></span>
+                        <a href="#sessionId"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="6" class="link-to-prism">src/app/instance/shared/instance.model.ts:6</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+
+
+
+
+
+
+            <section>
+    <h3 id="accessors">
+        Accessors
+    </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="healthy"></a>
+                        <span class="name"><b>healthy</b><a href="#healthy"><span class="icon ion-ios-link"></span></a></span>
+                    </td>
+                </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                        <span class="accessor"><b>get</b><code>healthy()</code></span>
+                    </td>
+                </tr>
+                            <tr>
+                                <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="9" class="link-to-prism">src/app/instance/shared/instance.model.ts:9</a></div>
+                                </td>
+                            </tr>
+
+            </tbody>
+        </table>
+</section>
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">export class Instance {
+  readonly name: string;
+  readonly clusterName: string;
+  readonly enabled: boolean;
+  readonly liveInstance: boolean | string;
+  readonly sessionId: string;
+  readonly helixVersion: string;
+
+  get healthy(): boolean {
+    return this.liveInstance &amp;&amp; this.enabled;
+  }
+
+  constructor(
+    name: string,
+    clusterName: string,
+    enabled: boolean,
+    liveInstance: boolean | string,
+    sessionId?: string,
+    helixVersion?: string
+  ) {
+    this.name &#x3D; name;
+    this.clusterName &#x3D; clusterName;
+    this.enabled &#x3D; enabled;
+    this.liveInstance &#x3D; liveInstance;
+    this.sessionId &#x3D; sessionId;
+    this.helixVersion &#x3D; helixVersion;
+  }
+}
+</code></pre>
+    </div>
+</div>
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+          <label class="dark-mode-switch">
+               <input type="checkbox">
+               <span class="slider">
+                    <svg class="slider-icon" viewBox="0 0 24 24" fill="none" height="20" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" width="20" xmlns="http://www.w3.org/2000/svg">
+                    <path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"></path>
+                    </svg>
+               </span>
+          </label>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'class';
+            var COMPODOC_CURRENT_PAGE_URL = 'Instance.html';
+            var MAX_SEARCH_RESULTS = 15;
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+
+       <script src="../js/menu-wc.js" defer></script>
+       <script nomodule src="../js/menu-wc_es5.js" defer></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/helix-front/docs/classes/Job.html b/helix-front/docs/classes/Job.html
new file mode 100644 (file)
index 0000000..e94c692
--- /dev/null
@@ -0,0 +1,657 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>helix-front documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+          <link rel="stylesheet" href="../styles/style.css">
+        <link rel="stylesheet" href="../styles/dark.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">helix-front documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div>            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content class">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Classes</li>
+  <li >Job</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/workflow/shared/workflow.model.ts</code>
+        </p>
+
+
+
+
+
+
+            <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Properties</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                    <span class="modifier">Readonly</span>
+                                <a href="#clusterName" >clusterName</a>
+                            </li>
+                            <li>
+                                <a href="#config" >config</a>
+                            </li>
+                            <li>
+                                <a href="#context" >context</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Readonly</span>
+                                <a href="#name" >name</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Readonly</span>
+                                <a href="#parents" >parents</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Readonly</span>
+                                <a href="#rawName" >rawName</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Readonly</span>
+                                <a href="#startTime" >startTime</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Readonly</span>
+                                <a href="#state" >state</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Readonly</span>
+                                <a href="#workflowName" >workflowName</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+            <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor(rawName: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, workflowName: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, clusterName: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, startTime: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, state: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, parents: string[])</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="17" class="link-to-prism">src/app/workflow/shared/workflow.model.ts:17</a></div>
+                            </td>
+                        </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                            <div>
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>rawName</td>
+                                                  
+                                                        <td>
+                                                                        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>workflowName</td>
+                                                  
+                                                        <td>
+                                                                        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>clusterName</td>
+                                                  
+                                                        <td>
+                                                                        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>startTime</td>
+                                                  
+                                                        <td>
+                                                                        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>state</td>
+                                                  
+                                                        <td>
+                                                                        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>parents</td>
+                                                  
+                                                        <td>
+                                                                    <code>string[]</code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+            <section>
+    
+    <h3 id="inputs">
+        Properties
+    </h3>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="clusterName"></a>
+                    <span class="name">
+                            <span class="modifier">Readonly</span>
+                        <span ><b>clusterName</b></span>
+                        <a href="#clusterName"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="13" class="link-to-prism">src/app/workflow/shared/workflow.model.ts:13</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="config"></a>
+                    <span class="name">
+                        <span ><b>config</b></span>
+                        <a href="#config"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="16" class="link-to-prism">src/app/workflow/shared/workflow.model.ts:16</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="context"></a>
+                    <span class="name">
+                        <span ><b>context</b></span>
+                        <a href="#context"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="17" class="link-to-prism">src/app/workflow/shared/workflow.model.ts:17</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="name"></a>
+                    <span class="name">
+                            <span class="modifier">Readonly</span>
+                        <span ><b>name</b></span>
+                        <a href="#name"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="6" class="link-to-prism">src/app/workflow/shared/workflow.model.ts:6</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="parents"></a>
+                    <span class="name">
+                            <span class="modifier">Readonly</span>
+                        <span ><b>parents</b></span>
+                        <a href="#parents"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>    <code>string[]</code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="10" class="link-to-prism">src/app/workflow/shared/workflow.model.ts:10</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="rawName"></a>
+                    <span class="name">
+                            <span class="modifier">Readonly</span>
+                        <span ><b>rawName</b></span>
+                        <a href="#rawName"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="7" class="link-to-prism">src/app/workflow/shared/workflow.model.ts:7</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="startTime"></a>
+                    <span class="name">
+                            <span class="modifier">Readonly</span>
+                        <span ><b>startTime</b></span>
+                        <a href="#startTime"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="8" class="link-to-prism">src/app/workflow/shared/workflow.model.ts:8</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="state"></a>
+                    <span class="name">
+                            <span class="modifier">Readonly</span>
+                        <span ><b>state</b></span>
+                        <a href="#state"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="9" class="link-to-prism">src/app/workflow/shared/workflow.model.ts:9</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="workflowName"></a>
+                    <span class="name">
+                            <span class="modifier">Readonly</span>
+                        <span ><b>workflowName</b></span>
+                        <a href="#workflowName"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="12" class="link-to-prism">src/app/workflow/shared/workflow.model.ts:12</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+
+
+
+
+
+
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import * as _ from &#x27;lodash&#x27;;
+
+export class Task {}
+
+export class Job {
+  readonly name: string;
+  readonly rawName: string;
+  readonly startTime: string;
+  readonly state: string;
+  readonly parents: string[];
+
+  readonly workflowName: string;
+  readonly clusterName: string;
+
+  // will load later
+  config: any;
+  context: any;
+
+  constructor(
+    rawName: string,
+    workflowName: string,
+    clusterName: string,
+    startTime: string,
+    state: string,
+    parents: string[]
+  ) {
+    this.rawName &#x3D; rawName;
+    // try to reduce the name
+    this.name &#x3D; _.replace(rawName, workflowName + &#x27;_&#x27;, &#x27;&#x27;);
+    this.workflowName &#x3D; workflowName;
+    this.clusterName &#x3D; clusterName;
+    this.startTime &#x3D; startTime;
+    this.state &#x3D; state;
+    // try to reduce parent names
+    this.parents &#x3D; _.map(parents, (parent) &#x3D;&gt;
+      _.replace(parent, workflowName + &#x27;_&#x27;, &#x27;&#x27;)
+    );
+  }
+}
+
+export class Workflow {
+  readonly name: string;
+  readonly clusterName: string;
+  readonly config: any;
+  readonly jobs: Job[];
+  readonly context: any;
+  readonly json: any;
+
+  get isJobQueue(): boolean {
+    return (
+      this.config &amp;&amp;
+      this.config.IsJobQueue &amp;&amp;
+      this.config.IsJobQueue.toLowerCase() &#x3D;&#x3D; &#x27;true&#x27;
+    );
+  }
+
+  get state(): string {
+    return this.context.STATE || &#x27;NOT STARTED&#x27;;
+  }
+
+  constructor(obj: any, clusterName: string) {
+    this.json &#x3D; obj;
+    this.name &#x3D; obj.id;
+    this.clusterName &#x3D; clusterName;
+    this.config &#x3D; obj.WorkflowConfig;
+    this.context &#x3D; obj.WorkflowContext;
+    this.jobs &#x3D; this.parseJobs(obj.Jobs, obj.ParentJobs);
+  }
+
+  protected parseJobs(list: string[], parents: any): Job[] {
+    const result: Job[] &#x3D; [];
+
+    _.forEach(list, (jobName) &#x3D;&gt; {
+      result.push(
+        new Job(
+          jobName,
+          this.name,
+          this.clusterName,
+          _.get(this.context, [&#x27;StartTime&#x27;, jobName]),
+          _.get(this.context, [&#x27;JOB_STATES&#x27;, jobName]),
+          parents[jobName]
+        )
+      );
+    });
+
+    return result;
+  }
+}
+</code></pre>
+    </div>
+</div>
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+          <label class="dark-mode-switch">
+               <input type="checkbox">
+               <span class="slider">
+                    <svg class="slider-icon" viewBox="0 0 24 24" fill="none" height="20" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" width="20" xmlns="http://www.w3.org/2000/svg">
+                    <path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"></path>
+                    </svg>
+               </span>
+          </label>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'class';
+            var COMPODOC_CURRENT_PAGE_URL = 'Job.html';
+            var MAX_SEARCH_RESULTS = 15;
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+
+       <script src="../js/menu-wc.js" defer></script>
+       <script nomodule src="../js/menu-wc_es5.js" defer></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/helix-front/docs/classes/Node.html b/helix-front/docs/classes/Node.html
new file mode 100644 (file)
index 0000000..21dd295
--- /dev/null
@@ -0,0 +1,838 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>helix-front documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+          <link rel="stylesheet" href="../styles/style.css">
+        <link rel="stylesheet" href="../styles/dark.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">helix-front documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div>            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content class">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Classes</li>
+  <li >Node</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/shared/models/node.model.ts</code>
+        </p>
+
+
+
+
+
+
+            <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Properties</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#id" >id</a>
+                            </li>
+                            <li>
+                                <a href="#listFields" >listFields</a>
+                            </li>
+                            <li>
+                                <a href="#mapFields" >mapFields</a>
+                            </li>
+                            <li>
+                                <a href="#simpleFields" >simpleFields</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                    <span class="modifier">Public</span>
+                                <a href="#appendMapField" >appendMapField</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Public</span>
+                                <a href="#appendSimpleField" >appendSimpleField</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Public</span>
+                                <a href="#json" >json</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Private</span>
+                                <a href="#keyValueToArray" >keyValueToArray</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+            <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor(obj: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="23" class="link-to-prism">src/app/shared/models/node.model.ts:23</a></div>
+                            </td>
+                        </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                            <div>
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>obj</td>
+                                                  
+                                                        <td>
+                                                                        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+            <section>
+    
+    <h3 id="inputs">
+        Properties
+    </h3>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="id"></a>
+                    <span class="name">
+                        <span ><b>id</b></span>
+                        <a href="#id"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="20" class="link-to-prism">src/app/shared/models/node.model.ts:20</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="listFields"></a>
+                    <span class="name">
+                        <span ><b>listFields</b></span>
+                        <a href="#listFields"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="../interfaces/ListFieldObject.html" target="_self" >ListFieldObject[]</a></code>
+
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Default value : </i><code>[]</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="22" class="link-to-prism">src/app/shared/models/node.model.ts:22</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="mapFields"></a>
+                    <span class="name">
+                        <span ><b>mapFields</b></span>
+                        <a href="#mapFields"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="../interfaces/MapFieldObject.html" target="_self" >MapFieldObject[]</a></code>
+
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Default value : </i><code>[]</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="23" class="link-to-prism">src/app/shared/models/node.model.ts:23</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="simpleFields"></a>
+                    <span class="name">
+                        <span ><b>simpleFields</b></span>
+                        <a href="#simpleFields"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Type : </i>        <code><a href="../interfaces/SimpleFieldObject.html" target="_self" >SimpleFieldObject[]</a></code>
+
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <i>Default value : </i><code>[]</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="21" class="link-to-prism">src/app/shared/models/node.model.ts:21</a></div>
+                        </td>
+                    </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+            <section>
+    
+    <h3 id="methods">
+        Methods
+    </h3>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="appendMapField"></a>
+                    <span class="name">
+                        <span class="modifier">Public</span>
+                        <span ><b>appendMapField</b></span>
+                        <a href="#appendMapField"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+            <tr>
+                <td class="col-md-4">
+                    <span class="modifier-icon icon ion-ios-reset"></span>
+                    <code>appendMapField(key: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, name: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, value: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
+                </td>
+            </tr>
+
+
+            <tr>
+                <td class="col-md-4">
+                    <div class="io-line">Defined in <a href="" data-line="59"
+                            class="link-to-prism">src/app/shared/models/node.model.ts:59</a></div>
+                </td>
+            </tr>
+
+
+            <tr>
+                <td class="col-md-4">
+
+                    <div class="io-description">
+                        <b>Parameters :</b>
+                        
+                        <table class="params">
+                            <thead>
+                                <tr>
+                                    <td>Name</td>
+                                    <td>Type</td>
+                                    <td>Optional</td>
+                                </tr>
+                            </thead>
+                            <tbody>
+                                <tr>
+                                    <td>key</td>
+                                    <td>
+                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                    </td>
+
+                                    <td>
+                                        No
+                                    </td>
+
+
+                                </tr>
+                                <tr>
+                                    <td>name</td>
+                                    <td>
+                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                    </td>
+
+                                    <td>
+                                        No
+                                    </td>
+
+
+                                </tr>
+                                <tr>
+                                    <td>value</td>
+                                    <td>
+                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                    </td>
+
+                                    <td>
+                                        No
+                                    </td>
+
+
+                                </tr>
+                            </tbody>
+                        </table>
+                    </div>
+                    <div>
+                    </div>
+                    <div class="io-description">
+                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                    </div>
+                    <div class="io-description">
+                        
+                    </div>
+                </td>
+            </tr>
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="appendSimpleField"></a>
+                    <span class="name">
+                        <span class="modifier">Public</span>
+                        <span ><b>appendSimpleField</b></span>
+                        <a href="#appendSimpleField"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+            <tr>
+                <td class="col-md-4">
+                    <span class="modifier-icon icon ion-ios-reset"></span>
+                    <code>appendSimpleField(name: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, value: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
+                </td>
+            </tr>
+
+
+            <tr>
+                <td class="col-md-4">
+                    <div class="io-line">Defined in <a href="" data-line="52"
+                            class="link-to-prism">src/app/shared/models/node.model.ts:52</a></div>
+                </td>
+            </tr>
+
+
+            <tr>
+                <td class="col-md-4">
+
+                    <div class="io-description">
+                        <b>Parameters :</b>
+                        
+                        <table class="params">
+                            <thead>
+                                <tr>
+                                    <td>Name</td>
+                                    <td>Type</td>
+                                    <td>Optional</td>
+                                </tr>
+                            </thead>
+                            <tbody>
+                                <tr>
+                                    <td>name</td>
+                                    <td>
+                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                    </td>
+
+                                    <td>
+                                        No
+                                    </td>
+
+
+                                </tr>
+                                <tr>
+                                    <td>value</td>
+                                    <td>
+                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                    </td>
+
+                                    <td>
+                                        No
+                                    </td>
+
+
+                                </tr>
+                            </tbody>
+                        </table>
+                    </div>
+                    <div>
+                    </div>
+                    <div class="io-description">
+                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                    </div>
+                    <div class="io-description">
+                        
+                    </div>
+                </td>
+            </tr>
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="json"></a>
+                    <span class="name">
+                        <span class="modifier">Public</span>
+                        <span ><b>json</b></span>
+                        <a href="#json"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+            <tr>
+                <td class="col-md-4">
+                    <span class="modifier-icon icon ion-ios-reset"></span>
+                    <code>json(id: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
+                </td>
+            </tr>
+
+
+            <tr>
+                <td class="col-md-4">
+                    <div class="io-line">Defined in <a href="" data-line="79"
+                            class="link-to-prism">src/app/shared/models/node.model.ts:79</a></div>
+                </td>
+            </tr>
+
+
+            <tr>
+                <td class="col-md-4">
+
+                    <div class="io-description">
+                        <b>Parameters :</b>
+                        
+                        <table class="params">
+                            <thead>
+                                <tr>
+                                    <td>Name</td>
+                                    <td>Type</td>
+                                    <td>Optional</td>
+                                </tr>
+                            </thead>
+                            <tbody>
+                                <tr>
+                                    <td>id</td>
+                                    <td>
+                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                    </td>
+
+                                    <td>
+                                        No
+                                    </td>
+
+
+                                </tr>
+                            </tbody>
+                        </table>
+                    </div>
+                    <div>
+                    </div>
+                    <div class="io-description">
+                        <b>Returns : </b>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                    </div>
+                    <div class="io-description">
+                        
+                    </div>
+                </td>
+            </tr>
+        </tbody>
+    </table>
+    <table class="table table-sm table-bordered">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <a name="keyValueToArray"></a>
+                    <span class="name">
+                        <span class="modifier">Private</span>
+                        <span ><b>keyValueToArray</b></span>
+                        <a href="#keyValueToArray"><span class="icon ion-ios-link"></span></a>
+                    </span>
+                </td>
+            </tr>
+            <tr>
+                <td class="col-md-4">
+                    <span class="modifier-icon icon ion-ios-reset"></span>
+                    <code>keyValueToArray(obj: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object" target="_blank">Object</a>)</code>
+                </td>
+            </tr>
+
+
+            <tr>
+                <td class="col-md-4">
+                    <div class="io-line">Defined in <a href="" data-line="109"
+                            class="link-to-prism">src/app/shared/models/node.model.ts:109</a></div>
+                </td>
+            </tr>
+
+
+            <tr>
+                <td class="col-md-4">
+
+                    <div class="io-description">
+                        <b>Parameters :</b>
+                        
+                        <table class="params">
+                            <thead>
+                                <tr>
+                                    <td>Name</td>
+                                    <td>Type</td>
+                                    <td>Optional</td>
+                                </tr>
+                            </thead>
+                            <tbody>
+                                <tr>
+                                    <td>obj</td>
+                                    <td>
+                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object" target="_blank" >Object</a></code>
+                                    </td>
+
+                                    <td>
+                                        No
+                                    </td>
+
+
+                                </tr>
+                            </tbody>
+                        </table>
+                    </div>
+                    <div>
+                    </div>
+                    <div class="io-description">
+                        <b>Returns : </b>        <code><a href="../interfaces/SimpleFieldObject.html" target="_self" >SimpleFieldObject[]</a></code>
+
+                    </div>
+                    <div class="io-description">
+                        
+                    </div>
+                </td>
+            </tr>
+        </tbody>
+    </table>
+</section>
+
+
+
+
+
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import * as _ from &#x27;lodash&#x27;;
+
+interface SimpleFieldObject {
+  name: string;
+  value: string;
+}
+
+interface ListFieldObject {
+  name: string;
+  value: SimpleFieldObject[];
+}
+
+interface MapFieldObject {
+  name: string;
+  value: SimpleFieldObject[];
+}
+
+// This is a typical Helix Node definition
+export class Node {
+  id: string;
+  simpleFields: SimpleFieldObject[] &#x3D; [];
+  listFields: ListFieldObject[] &#x3D; [];
+  mapFields: MapFieldObject[] &#x3D; [];
+
+  constructor(obj: any) {
+    if (obj !&#x3D; null) {
+      this.id &#x3D; obj.id;
+      this.simpleFields &#x3D; this.keyValueToArray(obj.simpleFields);
+
+      _.forOwn(obj[&#x27;listFields&#x27;], (v, k) &#x3D;&gt; {
+        this.listFields.push(&lt;ListFieldObject&gt;{
+          name: k,
+          value: _.map(
+            v,
+            (item) &#x3D;&gt;
+              &lt;SimpleFieldObject&gt;{
+                value: item,
+              }
+          ),
+        });
+      });
+
+      _.forOwn(obj[&#x27;mapFields&#x27;], (v, k) &#x3D;&gt; {
+        this.mapFields.push(&lt;MapFieldObject&gt;{
+          name: k,
+          value: this.keyValueToArray(v),
+        });
+      });
+    }
+  }
+
+  public appendSimpleField(name: string, value: string) {
+    this.simpleFields.push(&lt;SimpleFieldObject&gt;{
+      name,
+      value,
+    });
+  }
+
+  public appendMapField(key: string, name: string, value: string) {
+    const index &#x3D; _.findIndex(this.mapFields, { name: key });
+    if (index &gt;&#x3D; 0) {
+      this.mapFields[index].value.push(&lt;SimpleFieldObject&gt;{
+