@camunda/ccma-shared-types 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/config/camundi-permission-rules.js +6 -9
  2. package/dist/config/camundi-permission-rules.js.map +2 -2
  3. package/dist/config/camundi-permission-rules.types.d.ts +5 -0
  4. package/dist/config/camundi-permission-rules.types.js.map +1 -1
  5. package/dist/constants/trialExtensionSurvey.const.d.ts +12 -0
  6. package/dist/constants/trialExtensionSurvey.const.js +36 -0
  7. package/dist/constants/trialExtensionSurvey.const.js.map +7 -0
  8. package/dist/dtos/CommonCluster.dto.d.ts +6 -0
  9. package/dist/dtos/ControlV2.dto.d.ts +111 -0
  10. package/dist/dtos/ControlV2.dto.js +1 -0
  11. package/dist/dtos/ControlV2.dto.js.map +7 -0
  12. package/dist/dtos/Generations.dto.js.map +2 -2
  13. package/dist/dtos/OrganizationToSalesPlan.dto.d.ts +1 -0
  14. package/dist/dtos/SalesPlan.dto.d.ts +8 -2
  15. package/dist/dtos/SalesPlan.dto.js +12 -0
  16. package/dist/dtos/SalesPlan.dto.js.map +2 -2
  17. package/dist/dtos/SystemAudit.dto.d.ts +24 -0
  18. package/dist/dtos/SystemAudit.dto.js +1 -0
  19. package/dist/dtos/SystemAudit.dto.js.map +7 -0
  20. package/dist/enums/SystemAuditEntity.enum.d.ts +69 -0
  21. package/dist/enums/SystemAuditEntity.enum.js +69 -0
  22. package/dist/enums/SystemAuditEntity.enum.js.map +7 -0
  23. package/dist/index.d.ts +7 -1
  24. package/dist/index.js +8 -0
  25. package/dist/index.js.map +2 -2
  26. package/dist/permissions/accounts.permissions.d.ts +6 -0
  27. package/dist/permissions/accounts.permissions.js +19 -0
  28. package/dist/permissions/accounts.permissions.js.map +2 -2
  29. package/dist/permissions/combo.js +10 -0
  30. package/dist/permissions/combo.js.map +2 -2
  31. package/dist/permissions/combo.pdfWatermark.spec.d.ts +1 -0
  32. package/dist/permissions/console.permissions.d.ts +6 -0
  33. package/dist/permissions/console.permissions.js +16 -0
  34. package/dist/permissions/console.permissions.js.map +2 -2
  35. package/dist/permissions/profile.permissions.js +22 -1
  36. package/dist/permissions/profile.permissions.js.map +2 -2
  37. package/dist/types/Roles.d.ts +1 -1
  38. package/dist/types/Roles.js.map +2 -2
  39. package/dist/types/SalesPlanType.type.d.ts +1 -1
  40. package/dist/types/SystemAuditData.type.d.ts +21 -0
  41. package/dist/types/SystemAuditData.type.js +1 -0
  42. package/dist/types/SystemAuditData.type.js.map +7 -0
  43. package/dist/types/Telemetry.type.js +4 -6
  44. package/dist/types/Telemetry.type.js.map +2 -2
  45. package/dist/types/hdp.types.d.ts +15 -1
  46. package/dist/types/hdp.types.js.map +1 -1
  47. package/dist/utils/labelValidator.utils.js +1 -1
  48. package/dist/utils/labelValidator.utils.js.map +2 -2
  49. package/dist/utils/orgs/OrgHelper.js.map +2 -2
  50. package/dist/utils/user.utils.js.map +2 -2
  51. package/dist/utils/versionCheck.utils.js +2 -0
  52. package/dist/utils/versionCheck.utils.js.map +2 -2
  53. package/package.json +1 -1
@@ -44,8 +44,10 @@ var ConsolePermissions;
44
44
  ConsolePermissions2.FEATURE_TEMPLATE_PICKER = "cftp";
45
45
  ConsolePermissions2.USER_SETTINGS = "cus";
46
46
  ConsolePermissions2.CLUSTERS_CAN_OVERRIDE_ENV_VARS = "ccoev";
47
+ ConsolePermissions2.CLUSTERS_CAN_CREATE_MODIFICATION_CONFIG = "ccccmc";
47
48
  ConsolePermissions2.DEBUG = "cdbg";
48
49
  ConsolePermissions2.GOD_TRIGGER_CRONS = "gtc";
50
+ ConsolePermissions2.RELEASE_TRAIN_PUBLISH = "crtp";
49
51
  ConsolePermissions2.APICLIENT_READ = "capr";
50
52
  ConsolePermissions2.APICLIENT_DELETE = "capd";
51
53
  function createEmptyFeatures() {
@@ -62,6 +64,9 @@ var ConsolePermissions;
62
64
  patchExistingChannel: false,
63
65
  see: false,
64
66
  deleteAllClustersOfGeneration: false
67
+ },
68
+ releaseTrain: {
69
+ publish: false
65
70
  }
66
71
  },
67
72
  clusters: {
@@ -72,6 +77,7 @@ var ConsolePermissions;
72
77
  canSendToSleep: false,
73
78
  canUpdateClusterPlanType: false,
74
79
  canOverrideEnvVars: false,
80
+ canCreateModificationConfig: false,
75
81
  canUpgradeGeneration: false,
76
82
  canUpgradeGenerationYolo: false
77
83
  },
@@ -329,6 +335,11 @@ var ConsolePermissions;
329
335
  description: "can set Env Vars on cluster level that override all ClusterPlan Env Vars",
330
336
  initialRoles: ["console:admin", "console:operationsEngineer"]
331
337
  },
338
+ {
339
+ value: ConsolePermissions2.CLUSTERS_CAN_CREATE_MODIFICATION_CONFIG,
340
+ description: "can create cluster modification configs",
341
+ initialRoles: ["console:admin", "console:operationsEngineer"]
342
+ },
332
343
  {
333
344
  value: ConsolePermissions2.CLUSTERS_CAN_UPDATE_CLUSTERPLANTYPE,
334
345
  description: "can update clusterplantype of a running cluster",
@@ -358,6 +369,11 @@ var ConsolePermissions;
358
369
  description: "can trigger modifications of a clusterplan",
359
370
  initialRoles: ["console:admin", "console:clusterPlanManager"]
360
371
  },
372
+ {
373
+ value: ConsolePermissions2.RELEASE_TRAIN_PUBLISH,
374
+ description: "can publish new generations via the release train endpoint",
375
+ initialRoles: ["console:admin", "console:C8ReleaseManager"]
376
+ },
361
377
  {
362
378
  value: ConsolePermissions2.APICLIENT_READ,
363
379
  description: "can read API Clients Names of Organizations",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/permissions/console.permissions.ts"],
4
- "sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nimport type { Roles } from '../types/Roles.js'\n\nexport namespace ConsolePermissions {\n export const MULTICLUSTER_ADMIN = 'cmca'\n\n export const CHANNELS_AND_GENERATIONS_ADMIN_DELETE_ALL_CLUSTERS = 'cmgda'\n export const CHANNELS_AND_GENERATIONS_ADMIN_SEE = 'cmgas'\n export const CHANNELS_AND_GENERATIONS_ADMIN = 'cmga'\n export const CHANNELS_AND_GENERATIONS_ADMIN_PATCH_EXISTING_CHANNEL = 'cmgap'\n export const CHANNELS_AND_GENERATIONS_ADMIN_MIGRATE = 'cmgam'\n export const CHANNELS_AND_GENERATIONS_MIGRATE = 'cmgm'\n export const ALL_CHANNELS_AND_GENERATIONS: string[] = [\n CHANNELS_AND_GENERATIONS_ADMIN_SEE,\n CHANNELS_AND_GENERATIONS_ADMIN,\n CHANNELS_AND_GENERATIONS_ADMIN_MIGRATE,\n ]\n export const CLUSTERS_READALLCLUSTERINFO = 'ccrai'\n export const CLUSTERS_DELETE_CLUSTER = 'ccda'\n export const CLUSTERS_CAN_MOVE_TO_OTHER_ORG = 'ccmoo'\n export const CLUSTERS_CAN_SEND_TO_SLEEP = 'ccsts'\n export const CLUSTERS_CAN_UPDATE_CLUSTERPLANTYPE = 'ccucp'\n export const CLUSTERS_CAN_UPDATE_GENERATION = 'ccug'\n export const CLUSTERS_CAN_UPDATE_GENERATION_YOLO = 'ccugy'\n\n export const CLUSTER_PLAN_SEE_ALL = 'ccpa'\n export const CLUSTER_PLAN_CREATE = 'ccpc'\n export const CLUSTER_PLAN_DELETE = 'ccpd'\n\n export const CLUSTER_PLAN_TYPE_CREATE = 'cptc'\n export const CLUSTER_PLAN_TYPE_MODIFY = 'cptm'\n export const CLUSTER_PLAN_TYPE_DELETE = 'cptd'\n export const CLUSTER_PLAN_TYPE_FORCE_DELETE = 'cptfd'\n\n export const CLUSTER_PLAN_MIGRATE = 'ccpm'\n export const CLUSTER_PLAN_CAN_DELETE_ALL_CLUSTERS_OF_PLAN = 'ccpda'\n export const CLUSTER_PLAN_CAN_MODIFY = 'ccpmo'\n\n export const M2M_UPDATE_CRD = 'cmuc'\n export const M2M_SIGNUP = 'cms'\n export const M2M_TRIGGER_ALERT = 'cmta'\n export const M2M_DELETE_ORG_CLUSTERS = 'cmdoc'\n export const M2M_UPDATE_ORG_CLUSTERS = 'cmuoc'\n export const M2M_ADD_CLUSTER_USAGE_METRICS = 'cmacm'\n export const M2M_SEND_SSE_EVENT = 'cmsse'\n export const M2M_EXTERNAL_INTERNAL_CLIENT = 'cmeic'\n export const M2M_FETCH_MIGRATION_DATA = 'cmfmd'\n export const M2M_MANAGE_GENERATION_UPGRADE_PATH = 'cmmgup'\n export const CLUSTER_CREATE_ON_BEHALF = 'cccob'\n export const FEATURE_NEW_HOME = 'cfnh'\n export const FEATURE_TEMPLATE_PICKER = 'cftp'\n export const USER_SETTINGS = 'cus'\n export const CLUSTERS_CAN_OVERRIDE_ENV_VARS = 'ccoev'\n\n export const DEBUG = 'cdbg'\n export const GOD_TRIGGER_CRONS = 'gtc'\n\n export const APICLIENT_READ = 'capr'\n export const APICLIENT_DELETE = 'capd'\n\n export interface Features {\n apiClient: {\n read: boolean\n delete: boolean\n }\n multiCluster: {\n admin: boolean\n }\n multiGen: {\n admin: {\n see: boolean\n modify: boolean\n patchExistingChannel: boolean\n migrate: boolean\n deleteAllClustersOfGeneration: boolean\n }\n }\n clusters: {\n canReadAllClusterInfo: boolean\n canDeleteAllClusters: boolean\n canMoveToOtherOrg: boolean\n createOnBehalf: boolean\n canSendToSleep: boolean\n canUpdateClusterPlanType: boolean\n canOverrideEnvVars: boolean\n canUpgradeGeneration: boolean\n canUpgradeGenerationYolo: boolean\n }\n clusterPlan: {\n seeAll: boolean\n create: boolean\n delete: boolean\n type: {\n create: boolean\n modify: boolean\n delete: boolean\n forceDelete: boolean\n }\n migrate: boolean\n deleteAllClustersOfPlan: boolean\n modify: boolean\n }\n features: {\n newHome: boolean\n templatePicker: boolean\n userSettings: boolean\n debug: boolean\n }\n m2m: {\n updateCrd: boolean\n signup: boolean\n triggerAlert: boolean\n deleteOrgClusters: boolean\n updateOrgClusters: boolean\n addUsageMetrics: boolean\n sendSseEvent: boolean\n external: {\n internalClient: boolean\n }\n fetchMigrationData: boolean\n manageGenerationUpgradePath: boolean\n }\n }\n\n export function createEmptyFeatures(): Features {\n return {\n apiClient: {\n read: false,\n delete: false,\n },\n multiCluster: { admin: false },\n multiGen: {\n admin: {\n migrate: false,\n modify: false,\n patchExistingChannel: false,\n see: false,\n deleteAllClustersOfGeneration: false,\n },\n },\n clusters: {\n canReadAllClusterInfo: false,\n canDeleteAllClusters: false,\n canMoveToOtherOrg: false,\n createOnBehalf: false,\n canSendToSleep: false,\n canUpdateClusterPlanType: false,\n canOverrideEnvVars: false,\n canUpgradeGeneration: false,\n canUpgradeGenerationYolo: false,\n },\n clusterPlan: {\n seeAll: false,\n create: false,\n delete: false,\n type: {\n create: false,\n modify: false,\n delete: false,\n forceDelete: false,\n },\n migrate: false,\n deleteAllClustersOfPlan: false,\n modify: false,\n },\n features: {\n newHome: false,\n templatePicker: false,\n userSettings: false,\n debug: false,\n },\n m2m: {\n updateCrd: false,\n signup: false,\n triggerAlert: false,\n deleteOrgClusters: false,\n updateOrgClusters: false,\n addUsageMetrics: false,\n sendSseEvent: false,\n external: {\n internalClient: false,\n },\n fetchMigrationData: false,\n manageGenerationUpgradePath: false,\n },\n }\n }\n\n export const PermissionsAtAuth0: Array<{\n value: string\n description: string\n initialRoles: Roles[]\n }> = [\n {\n value: MULTICLUSTER_ADMIN,\n description: 'can create and delete k8s clusters',\n initialRoles: ['console:admin'],\n },\n {\n value: CHANNELS_AND_GENERATIONS_ADMIN_SEE,\n description: 'can go to the admin section for MultiGen, but no touch!',\n initialRoles: [\n 'console:admin',\n 'console:admin:readonly',\n 'support:agent',\n 'supersupport:agent',\n 'accounts:clusterUpdates',\n 'console:C8ReleaseManager',\n 'console:C8UpdateEnforcer',\n ],\n },\n {\n value: CHANNELS_AND_GENERATIONS_ADMIN,\n description: 'can create channels, generations and combine them',\n initialRoles: ['console:admin', 'console:C8ReleaseManager'],\n },\n {\n value: CHANNELS_AND_GENERATIONS_ADMIN_PATCH_EXISTING_CHANNEL,\n description: 'can modify existing channels and combine them',\n initialRoles: [\n 'console:admin',\n 'accounts:clusterUpdates',\n 'console:C8ReleaseManager',\n ],\n },\n {\n value: CHANNELS_AND_GENERATIONS_ADMIN_MIGRATE,\n description:\n 'can migrate clusters of generations to supported other generations',\n initialRoles: ['console:admin', 'console:C8UpdateEnforcer'],\n },\n {\n value: CHANNELS_AND_GENERATIONS_ADMIN_DELETE_ALL_CLUSTERS,\n description: 'can delete all clusters of a generation',\n initialRoles: ['console:admin'],\n },\n {\n value: CHANNELS_AND_GENERATIONS_MIGRATE,\n description:\n 'can migrate owned clusters of generations to supported other generations',\n initialRoles: [],\n },\n {\n value: CLUSTERS_READALLCLUSTERINFO,\n description: 'can read clusterInfo for all clusters',\n initialRoles: [\n 'accounts:read',\n 'accounts:onboard',\n 'accounts:orgCreator',\n 'accounts:admin',\n 'accounts:editSalesPlans',\n 'console:admin:readonly',\n 'support:agent',\n 'supersupport:agent',\n 'console:admin',\n 'accounts:trialExtender',\n 'accounts:enterpriseAdmin',\n ],\n },\n {\n value: CLUSTERS_DELETE_CLUSTER,\n description: 'can delete clusters in all orgs',\n initialRoles: ['accounts:admin'],\n },\n {\n value: CLUSTERS_CAN_MOVE_TO_OTHER_ORG,\n description: 'can move a cluster to another org the user is part of',\n initialRoles: ['console:admin'],\n },\n {\n value: CLUSTER_PLAN_SEE_ALL,\n description: 'can see all ClusterPlans',\n initialRoles: [\n 'console:admin',\n 'accounts:read',\n 'accounts:orgCreator',\n 'accounts:admin',\n 'console:admin:readonly',\n 'support:agent',\n 'supersupport:agent',\n 'accounts:onboard',\n 'accounts:editSalesPlans',\n 'accounts:trialExtender',\n 'accounts:enterpriseAdmin',\n ],\n },\n {\n value: CLUSTER_PLAN_CREATE,\n description: 'can create ClusterPlans',\n initialRoles: ['console:admin'],\n },\n {\n value: CLUSTER_PLAN_DELETE,\n description: 'can delete ClusterPlans',\n initialRoles: ['console:admin'],\n },\n {\n value: CLUSTER_PLAN_TYPE_CREATE,\n description: 'can create ClusterPlanTypes',\n initialRoles: ['console:admin'],\n },\n {\n value: CLUSTER_PLAN_TYPE_DELETE,\n description: 'can delete ClusterPlanTypes',\n initialRoles: ['console:admin'],\n },\n {\n value: CLUSTER_PLAN_TYPE_FORCE_DELETE,\n description: 'can delete ClusterPlanTypes',\n initialRoles: ['console:god'],\n },\n {\n value: CLUSTER_PLAN_TYPE_MODIFY,\n description: 'can modify ClusterPlanTypes',\n initialRoles: ['console:admin'],\n },\n {\n value: CLUSTER_PLAN_MIGRATE,\n description: 'can migrate Clusters from one plan to another',\n initialRoles: ['console:admin'],\n },\n {\n value: CLUSTER_PLAN_CAN_DELETE_ALL_CLUSTERS_OF_PLAN,\n description: 'can delete all clusters of a plan',\n initialRoles: ['console:admin'],\n },\n {\n value: CLUSTER_CREATE_ON_BEHALF,\n description:\n 'enables accounts to create clusters on signup (not a user permission)',\n initialRoles: [],\n },\n {\n value: M2M_SIGNUP,\n description: 'allows to signal to Console new user signups',\n initialRoles: [],\n },\n { value: M2M_UPDATE_CRD, description: 'may update crds', initialRoles: [] },\n {\n value: M2M_TRIGGER_ALERT,\n description: 'allows Infra and Operate to trigger alerts',\n initialRoles: [],\n },\n {\n value: M2M_DELETE_ORG_CLUSTERS,\n description:\n 'allows trigger console to delete all clusters of an Organization',\n initialRoles: [],\n },\n {\n value: M2M_UPDATE_ORG_CLUSTERS,\n description: 'allows to update clusters of an Organization',\n initialRoles: [],\n },\n {\n value: M2M_ADD_CLUSTER_USAGE_METRICS,\n description: 'allows to trigger update of value metrics',\n initialRoles: [],\n },\n {\n value: M2M_SEND_SSE_EVENT,\n description: 'allows to trigger SSE events',\n initialRoles: [],\n },\n {\n value: M2M_EXTERNAL_INTERNAL_CLIENT,\n description: 'allows to fetch internal clients',\n initialRoles: [],\n },\n {\n value: M2M_FETCH_MIGRATION_DATA,\n description: 'allows to fetch migration data',\n initialRoles: [],\n },\n {\n value: M2M_MANAGE_GENERATION_UPGRADE_PATH,\n description:\n 'allows to manage upgrade paths for generations via external API',\n initialRoles: [],\n },\n {\n value: FEATURE_NEW_HOME,\n description: 'allows users to see new home',\n initialRoles: ['console:admin'],\n },\n {\n value: USER_SETTINGS,\n description: 'allows users to see user settings',\n initialRoles: ['console:admin', 'betatester:true'],\n },\n {\n value: FEATURE_TEMPLATE_PICKER,\n description: 'allows users to see template picker',\n initialRoles: ['console:admin', 'betatester:true'],\n },\n {\n value: CLUSTERS_CAN_SEND_TO_SLEEP,\n description: 'may send a cluster to sleep and wake up',\n initialRoles: [\n 'console:admin',\n 'accounts:admin',\n 'console:operationsEngineer',\n ],\n },\n {\n value: DEBUG,\n description: 'can see additional debugging tools',\n initialRoles: ['console:admin:readonly', 'console:admin'],\n },\n {\n value: CLUSTERS_CAN_OVERRIDE_ENV_VARS,\n description:\n 'can set Env Vars on cluster level that override all ClusterPlan Env Vars',\n initialRoles: ['console:admin', 'console:operationsEngineer'],\n },\n {\n value: CLUSTERS_CAN_UPDATE_CLUSTERPLANTYPE,\n description: 'can update clusterplantype of a running cluster',\n initialRoles: [\n 'console:admin',\n 'accounts:onboard',\n 'console:operationsEngineer',\n 'accounts:enterpriseAdmin',\n ],\n },\n {\n value: CLUSTERS_CAN_UPDATE_GENERATION,\n description: 'can update generation of a running cluster',\n initialRoles: [\n 'console:admin',\n 'accounts:clusterUpdates',\n 'console:C8ReleaseManager',\n ],\n },\n {\n value: CLUSTERS_CAN_UPDATE_GENERATION_YOLO,\n description:\n 'can update generation of a running cluster even if the generation is not reachable',\n initialRoles: ['console:god'],\n },\n {\n value: CLUSTER_PLAN_CAN_MODIFY,\n description: 'can trigger modifications of a clusterplan',\n initialRoles: ['console:admin', 'console:clusterPlanManager'],\n },\n {\n value: APICLIENT_READ,\n description: 'can read API Clients Names of Organizations',\n initialRoles: ['accounts:read', 'accounts:orgCreator'],\n },\n {\n value: APICLIENT_DELETE,\n description: 'can read API Clients Names of Organizations',\n initialRoles: ['accounts:god'],\n },\n ]\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nimport type { Roles } from '../types/Roles.js'\n\nexport namespace ConsolePermissions {\n export const MULTICLUSTER_ADMIN = 'cmca'\n\n export const CHANNELS_AND_GENERATIONS_ADMIN_DELETE_ALL_CLUSTERS = 'cmgda'\n export const CHANNELS_AND_GENERATIONS_ADMIN_SEE = 'cmgas'\n export const CHANNELS_AND_GENERATIONS_ADMIN = 'cmga'\n export const CHANNELS_AND_GENERATIONS_ADMIN_PATCH_EXISTING_CHANNEL = 'cmgap'\n export const CHANNELS_AND_GENERATIONS_ADMIN_MIGRATE = 'cmgam'\n export const CHANNELS_AND_GENERATIONS_MIGRATE = 'cmgm'\n export const ALL_CHANNELS_AND_GENERATIONS: string[] = [\n CHANNELS_AND_GENERATIONS_ADMIN_SEE,\n CHANNELS_AND_GENERATIONS_ADMIN,\n CHANNELS_AND_GENERATIONS_ADMIN_MIGRATE,\n ]\n export const CLUSTERS_READALLCLUSTERINFO = 'ccrai'\n export const CLUSTERS_DELETE_CLUSTER = 'ccda'\n export const CLUSTERS_CAN_MOVE_TO_OTHER_ORG = 'ccmoo'\n export const CLUSTERS_CAN_SEND_TO_SLEEP = 'ccsts'\n export const CLUSTERS_CAN_UPDATE_CLUSTERPLANTYPE = 'ccucp'\n export const CLUSTERS_CAN_UPDATE_GENERATION = 'ccug'\n export const CLUSTERS_CAN_UPDATE_GENERATION_YOLO = 'ccugy'\n\n export const CLUSTER_PLAN_SEE_ALL = 'ccpa'\n export const CLUSTER_PLAN_CREATE = 'ccpc'\n export const CLUSTER_PLAN_DELETE = 'ccpd'\n\n export const CLUSTER_PLAN_TYPE_CREATE = 'cptc'\n export const CLUSTER_PLAN_TYPE_MODIFY = 'cptm'\n export const CLUSTER_PLAN_TYPE_DELETE = 'cptd'\n export const CLUSTER_PLAN_TYPE_FORCE_DELETE = 'cptfd'\n\n export const CLUSTER_PLAN_MIGRATE = 'ccpm'\n export const CLUSTER_PLAN_CAN_DELETE_ALL_CLUSTERS_OF_PLAN = 'ccpda'\n export const CLUSTER_PLAN_CAN_MODIFY = 'ccpmo'\n\n export const M2M_UPDATE_CRD = 'cmuc'\n export const M2M_SIGNUP = 'cms'\n export const M2M_TRIGGER_ALERT = 'cmta'\n export const M2M_DELETE_ORG_CLUSTERS = 'cmdoc'\n export const M2M_UPDATE_ORG_CLUSTERS = 'cmuoc'\n export const M2M_ADD_CLUSTER_USAGE_METRICS = 'cmacm'\n export const M2M_SEND_SSE_EVENT = 'cmsse'\n export const M2M_EXTERNAL_INTERNAL_CLIENT = 'cmeic'\n export const M2M_FETCH_MIGRATION_DATA = 'cmfmd'\n export const M2M_MANAGE_GENERATION_UPGRADE_PATH = 'cmmgup'\n export const CLUSTER_CREATE_ON_BEHALF = 'cccob'\n export const FEATURE_NEW_HOME = 'cfnh'\n export const FEATURE_TEMPLATE_PICKER = 'cftp'\n export const USER_SETTINGS = 'cus'\n export const CLUSTERS_CAN_OVERRIDE_ENV_VARS = 'ccoev'\n export const CLUSTERS_CAN_CREATE_MODIFICATION_CONFIG = 'ccccmc'\n\n export const DEBUG = 'cdbg'\n export const GOD_TRIGGER_CRONS = 'gtc'\n\n export const RELEASE_TRAIN_PUBLISH = 'crtp'\n\n export const APICLIENT_READ = 'capr'\n export const APICLIENT_DELETE = 'capd'\n\n export interface Features {\n apiClient: {\n read: boolean\n delete: boolean\n }\n multiCluster: {\n admin: boolean\n }\n multiGen: {\n admin: {\n see: boolean\n modify: boolean\n patchExistingChannel: boolean\n migrate: boolean\n deleteAllClustersOfGeneration: boolean\n }\n releaseTrain: {\n publish: boolean\n }\n }\n clusters: {\n canReadAllClusterInfo: boolean\n canDeleteAllClusters: boolean\n canMoveToOtherOrg: boolean\n createOnBehalf: boolean\n canSendToSleep: boolean\n canUpdateClusterPlanType: boolean\n canOverrideEnvVars: boolean\n canCreateModificationConfig: boolean\n canUpgradeGeneration: boolean\n canUpgradeGenerationYolo: boolean\n }\n clusterPlan: {\n seeAll: boolean\n create: boolean\n delete: boolean\n type: {\n create: boolean\n modify: boolean\n delete: boolean\n forceDelete: boolean\n }\n migrate: boolean\n deleteAllClustersOfPlan: boolean\n modify: boolean\n }\n features: {\n newHome: boolean\n templatePicker: boolean\n userSettings: boolean\n debug: boolean\n }\n m2m: {\n updateCrd: boolean\n signup: boolean\n triggerAlert: boolean\n deleteOrgClusters: boolean\n updateOrgClusters: boolean\n addUsageMetrics: boolean\n sendSseEvent: boolean\n external: {\n internalClient: boolean\n }\n fetchMigrationData: boolean\n manageGenerationUpgradePath: boolean\n }\n }\n\n export function createEmptyFeatures(): Features {\n return {\n apiClient: {\n read: false,\n delete: false,\n },\n multiCluster: { admin: false },\n multiGen: {\n admin: {\n migrate: false,\n modify: false,\n patchExistingChannel: false,\n see: false,\n deleteAllClustersOfGeneration: false,\n },\n releaseTrain: {\n publish: false,\n },\n },\n clusters: {\n canReadAllClusterInfo: false,\n canDeleteAllClusters: false,\n canMoveToOtherOrg: false,\n createOnBehalf: false,\n canSendToSleep: false,\n canUpdateClusterPlanType: false,\n canOverrideEnvVars: false,\n canCreateModificationConfig: false,\n canUpgradeGeneration: false,\n canUpgradeGenerationYolo: false,\n },\n clusterPlan: {\n seeAll: false,\n create: false,\n delete: false,\n type: {\n create: false,\n modify: false,\n delete: false,\n forceDelete: false,\n },\n migrate: false,\n deleteAllClustersOfPlan: false,\n modify: false,\n },\n features: {\n newHome: false,\n templatePicker: false,\n userSettings: false,\n debug: false,\n },\n m2m: {\n updateCrd: false,\n signup: false,\n triggerAlert: false,\n deleteOrgClusters: false,\n updateOrgClusters: false,\n addUsageMetrics: false,\n sendSseEvent: false,\n external: {\n internalClient: false,\n },\n fetchMigrationData: false,\n manageGenerationUpgradePath: false,\n },\n }\n }\n\n export const PermissionsAtAuth0: Array<{\n value: string\n description: string\n initialRoles: Roles[]\n }> = [\n {\n value: MULTICLUSTER_ADMIN,\n description: 'can create and delete k8s clusters',\n initialRoles: ['console:admin'],\n },\n {\n value: CHANNELS_AND_GENERATIONS_ADMIN_SEE,\n description: 'can go to the admin section for MultiGen, but no touch!',\n initialRoles: [\n 'console:admin',\n 'console:admin:readonly',\n 'support:agent',\n 'supersupport:agent',\n 'accounts:clusterUpdates',\n 'console:C8ReleaseManager',\n 'console:C8UpdateEnforcer',\n ],\n },\n {\n value: CHANNELS_AND_GENERATIONS_ADMIN,\n description: 'can create channels, generations and combine them',\n initialRoles: ['console:admin', 'console:C8ReleaseManager'],\n },\n {\n value: CHANNELS_AND_GENERATIONS_ADMIN_PATCH_EXISTING_CHANNEL,\n description: 'can modify existing channels and combine them',\n initialRoles: [\n 'console:admin',\n 'accounts:clusterUpdates',\n 'console:C8ReleaseManager',\n ],\n },\n {\n value: CHANNELS_AND_GENERATIONS_ADMIN_MIGRATE,\n description:\n 'can migrate clusters of generations to supported other generations',\n initialRoles: ['console:admin', 'console:C8UpdateEnforcer'],\n },\n {\n value: CHANNELS_AND_GENERATIONS_ADMIN_DELETE_ALL_CLUSTERS,\n description: 'can delete all clusters of a generation',\n initialRoles: ['console:admin'],\n },\n {\n value: CHANNELS_AND_GENERATIONS_MIGRATE,\n description:\n 'can migrate owned clusters of generations to supported other generations',\n initialRoles: [],\n },\n {\n value: CLUSTERS_READALLCLUSTERINFO,\n description: 'can read clusterInfo for all clusters',\n initialRoles: [\n 'accounts:read',\n 'accounts:onboard',\n 'accounts:orgCreator',\n 'accounts:admin',\n 'accounts:editSalesPlans',\n 'console:admin:readonly',\n 'support:agent',\n 'supersupport:agent',\n 'console:admin',\n 'accounts:trialExtender',\n 'accounts:enterpriseAdmin',\n ],\n },\n {\n value: CLUSTERS_DELETE_CLUSTER,\n description: 'can delete clusters in all orgs',\n initialRoles: ['accounts:admin'],\n },\n {\n value: CLUSTERS_CAN_MOVE_TO_OTHER_ORG,\n description: 'can move a cluster to another org the user is part of',\n initialRoles: ['console:admin'],\n },\n {\n value: CLUSTER_PLAN_SEE_ALL,\n description: 'can see all ClusterPlans',\n initialRoles: [\n 'console:admin',\n 'accounts:read',\n 'accounts:orgCreator',\n 'accounts:admin',\n 'console:admin:readonly',\n 'support:agent',\n 'supersupport:agent',\n 'accounts:onboard',\n 'accounts:editSalesPlans',\n 'accounts:trialExtender',\n 'accounts:enterpriseAdmin',\n ],\n },\n {\n value: CLUSTER_PLAN_CREATE,\n description: 'can create ClusterPlans',\n initialRoles: ['console:admin'],\n },\n {\n value: CLUSTER_PLAN_DELETE,\n description: 'can delete ClusterPlans',\n initialRoles: ['console:admin'],\n },\n {\n value: CLUSTER_PLAN_TYPE_CREATE,\n description: 'can create ClusterPlanTypes',\n initialRoles: ['console:admin'],\n },\n {\n value: CLUSTER_PLAN_TYPE_DELETE,\n description: 'can delete ClusterPlanTypes',\n initialRoles: ['console:admin'],\n },\n {\n value: CLUSTER_PLAN_TYPE_FORCE_DELETE,\n description: 'can delete ClusterPlanTypes',\n initialRoles: ['console:god'],\n },\n {\n value: CLUSTER_PLAN_TYPE_MODIFY,\n description: 'can modify ClusterPlanTypes',\n initialRoles: ['console:admin'],\n },\n {\n value: CLUSTER_PLAN_MIGRATE,\n description: 'can migrate Clusters from one plan to another',\n initialRoles: ['console:admin'],\n },\n {\n value: CLUSTER_PLAN_CAN_DELETE_ALL_CLUSTERS_OF_PLAN,\n description: 'can delete all clusters of a plan',\n initialRoles: ['console:admin'],\n },\n {\n value: CLUSTER_CREATE_ON_BEHALF,\n description:\n 'enables accounts to create clusters on signup (not a user permission)',\n initialRoles: [],\n },\n {\n value: M2M_SIGNUP,\n description: 'allows to signal to Console new user signups',\n initialRoles: [],\n },\n { value: M2M_UPDATE_CRD, description: 'may update crds', initialRoles: [] },\n {\n value: M2M_TRIGGER_ALERT,\n description: 'allows Infra and Operate to trigger alerts',\n initialRoles: [],\n },\n {\n value: M2M_DELETE_ORG_CLUSTERS,\n description:\n 'allows trigger console to delete all clusters of an Organization',\n initialRoles: [],\n },\n {\n value: M2M_UPDATE_ORG_CLUSTERS,\n description: 'allows to update clusters of an Organization',\n initialRoles: [],\n },\n {\n value: M2M_ADD_CLUSTER_USAGE_METRICS,\n description: 'allows to trigger update of value metrics',\n initialRoles: [],\n },\n {\n value: M2M_SEND_SSE_EVENT,\n description: 'allows to trigger SSE events',\n initialRoles: [],\n },\n {\n value: M2M_EXTERNAL_INTERNAL_CLIENT,\n description: 'allows to fetch internal clients',\n initialRoles: [],\n },\n {\n value: M2M_FETCH_MIGRATION_DATA,\n description: 'allows to fetch migration data',\n initialRoles: [],\n },\n {\n value: M2M_MANAGE_GENERATION_UPGRADE_PATH,\n description:\n 'allows to manage upgrade paths for generations via external API',\n initialRoles: [],\n },\n {\n value: FEATURE_NEW_HOME,\n description: 'allows users to see new home',\n initialRoles: ['console:admin'],\n },\n {\n value: USER_SETTINGS,\n description: 'allows users to see user settings',\n initialRoles: ['console:admin', 'betatester:true'],\n },\n {\n value: FEATURE_TEMPLATE_PICKER,\n description: 'allows users to see template picker',\n initialRoles: ['console:admin', 'betatester:true'],\n },\n {\n value: CLUSTERS_CAN_SEND_TO_SLEEP,\n description: 'may send a cluster to sleep and wake up',\n initialRoles: [\n 'console:admin',\n 'accounts:admin',\n 'console:operationsEngineer',\n ],\n },\n {\n value: DEBUG,\n description: 'can see additional debugging tools',\n initialRoles: ['console:admin:readonly', 'console:admin'],\n },\n {\n value: CLUSTERS_CAN_OVERRIDE_ENV_VARS,\n description:\n 'can set Env Vars on cluster level that override all ClusterPlan Env Vars',\n initialRoles: ['console:admin', 'console:operationsEngineer'],\n },\n {\n value: CLUSTERS_CAN_CREATE_MODIFICATION_CONFIG,\n description: 'can create cluster modification configs',\n initialRoles: ['console:admin', 'console:operationsEngineer'],\n },\n {\n value: CLUSTERS_CAN_UPDATE_CLUSTERPLANTYPE,\n description: 'can update clusterplantype of a running cluster',\n initialRoles: [\n 'console:admin',\n 'accounts:onboard',\n 'console:operationsEngineer',\n 'accounts:enterpriseAdmin',\n ],\n },\n {\n value: CLUSTERS_CAN_UPDATE_GENERATION,\n description: 'can update generation of a running cluster',\n initialRoles: [\n 'console:admin',\n 'accounts:clusterUpdates',\n 'console:C8ReleaseManager',\n ],\n },\n {\n value: CLUSTERS_CAN_UPDATE_GENERATION_YOLO,\n description:\n 'can update generation of a running cluster even if the generation is not reachable',\n initialRoles: ['console:god'],\n },\n {\n value: CLUSTER_PLAN_CAN_MODIFY,\n description: 'can trigger modifications of a clusterplan',\n initialRoles: ['console:admin', 'console:clusterPlanManager'],\n },\n {\n value: RELEASE_TRAIN_PUBLISH,\n description: 'can publish new generations via the release train endpoint',\n initialRoles: ['console:admin', 'console:C8ReleaseManager'],\n },\n {\n value: APICLIENT_READ,\n description: 'can read API Clients Names of Organizations',\n initialRoles: ['accounts:read', 'accounts:orgCreator'],\n },\n {\n value: APICLIENT_DELETE,\n description: 'can read API Clients Names of Organizations',\n initialRoles: ['accounts:god'],\n },\n ]\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["ConsolePermissions"]
7
7
  }
@@ -75,6 +75,7 @@ const CSM_MANAGER_EMAIL = [
75
75
  "manjula.kularathne@camunda.com"
76
76
  ];
77
77
  const ADR_MANAGER_EMAIL = ["jasmin.morfin-davila@camunda.com"];
78
+ const PDF_WATERMARK_EMAILS = ["eyal.marantenboim@camunda.com"];
78
79
  const PROFILES = {
79
80
  readOnly: {
80
81
  allowed: [
@@ -96,6 +97,7 @@ const PROFILES = {
96
97
  supportEngineer: {
97
98
  allowed: [...CLOUD_TEAM_EMAILS, ...SUPPORT_MANAGERS_EMAILS],
98
99
  rolesToAssign: [
100
+ "accounts:read",
99
101
  "accounts:connections:create",
100
102
  "accounts:connections:update",
101
103
  "support:agent"
@@ -110,6 +112,7 @@ const PROFILES = {
110
112
  ssoAdmin: {
111
113
  allowed: [...CLOUD_TEAM_EMAILS, ...SUPPORT_MANAGERS_EMAILS],
112
114
  rolesToAssign: [
115
+ "accounts:read",
113
116
  "accounts:connections:create",
114
117
  "accounts:connections:update",
115
118
  "accounts:connections:delete",
@@ -142,7 +145,11 @@ const PROFILES = {
142
145
  ...SUPPORT_MANAGERS_EMAILS,
143
146
  ...C8_ENGINEERING_MANAGERS_EMAILS
144
147
  ],
145
- rolesToAssign: ["accounts:clusterUpdates", "support:agent"],
148
+ rolesToAssign: [
149
+ "accounts:clusterUpdates",
150
+ "support:agent",
151
+ "accounts:read"
152
+ ],
146
153
  email: {
147
154
  handbookPages: [
148
155
  "https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/managing-generations-on-c8-saas/index.md"
@@ -257,6 +264,20 @@ const PROFILES = {
257
264
  "https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/finding-an-organization-on-c8-saas/index.md"
258
265
  ]
259
266
  }
267
+ },
268
+ pdfWatermarkRead: {
269
+ allowed: [...CLOUD_TEAM_EMAILS, ...PDF_WATERMARK_EMAILS],
270
+ rolesToAssign: ["accounts:pdfWatermarkReader"],
271
+ email: {
272
+ handbookPages: []
273
+ }
274
+ },
275
+ pdfWatermarkWrite: {
276
+ allowed: [...CLOUD_TEAM_EMAILS, ...PDF_WATERMARK_EMAILS],
277
+ rolesToAssign: ["accounts:pdfWatermarkWriter"],
278
+ email: {
279
+ handbookPages: []
280
+ }
260
281
  }
261
282
  };
262
283
  export {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/permissions/profile.permissions.ts"],
4
- "sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nimport type { Roles } from '../types/Roles.js'\n\nexport const CLOUD_TEAM_EMAILS = [\n 'adam.urban@camunda.com',\n 'collin.raddatz@camunda.com',\n 'tim.schuppener@camunda.com',\n]\nconst LIMIT_EXTENDERS = [\n 'william.vonalt@camunda.com',\n 'victor.grund@camunda.com',\n 'ragnar.nevries@camunda.com',\n 'robert.emsbach@camunda.com',\n 'jared.mcmahon@camunda.com',\n]\nexport const SRE_TEAM_EMAILS = [\n 'jonathan.ballet@camunda.com',\n 'thanasis.petrovas@camunda.com',\n 'thomas.polnik@camunda.com',\n]\nexport const PLATFORM_SM_EMAILS = [\n 'immanuel.monma@camunda.com',\n 'jesse.simpson@camunda.com',\n 'hamza.masood@camunda.com',\n 'lars.lange@camunda.com',\n 'leo.journel@camunda.com',\n 'balazs.kenez@camunda.com',\n]\nexport const SUPPORT_MANAGERS_EMAILS = [\n 'garima.yadav@camunda.com',\n 'jeffrey.stokes@camunda.com',\n 'alexandra.corremans@camunda.com',\n 'chris.campbell@camunda.com',\n]\nexport const C8_ENGINEERING_MANAGERS_EMAILS = [\n 'sebastian.bathke@camunda.com',\n 'catalina.moisuc@camunda.com',\n 'immanuel.monma@camunda.com',\n 'joshua.windels@camunda.com',\n 'marcos.vieira@camunda.com',\n 'maximilian.trumpf@camunda.com',\n 'simon.buettner@camunda.com',\n // schoetti is also some sort of engineering manager\n 'michael.schoettes@camunda.com',\n 'tassilo.weidner@camunda.com',\n 'nicolas.pepin-perreault@camunda.com',\n 'wolfgang.amann@camunda.com',\n 'mathieu.stennier@camunda.com',\n 'jason.hunter@camunda.com',\n 'maxim.danilov@camunda.com',\n 'stephan.epping@camunda.com',\n 'simon.zengerling@camunda.com',\n 'shay.matasaro@camunda.com',\n]\nexport const CONSULTING_MANAGER_EMAILS = [\n 'benjamin.hoffmann@camunda.com',\n 'chandan.dash@camunda.com',\n 'darren.devine@camunda.com',\n 'hurshid.kadirov@camunda.com',\n 'ivan.jovic@camunda.com',\n 'michael.ferber@camunda.com',\n 'ragnar.nevries@camunda.com',\n 'norbert.kuchenmeister@camunda.com',\n 'robert.emsbach@camunda.com',\n 'victor.grund@camunda.com',\n]\nexport const CSM_MANAGER_EMAIL = [\n 'aaron.laye@camunda.com',\n 'andreas.tollschein@camunda.com',\n 'betsy.burt@camunda.com',\n 'leona.schlosser@camunda.com',\n 'yulia.sinyanskaya@camunda.com',\n 'agnes.kelemen@camunda.com',\n 'thomas.schulz@camunda.com',\n 'shadia.jubril@camunda.com',\n 'kaitlin.leighton@camunda.com',\n 'ryan.warner@camunda.com',\n 'manjula.kularathne@camunda.com',\n]\nconst ADR_MANAGER_EMAIL = ['jasmin.morfin-davila@camunda.com']\n\nexport interface OnboardConfig {\n [unit: string]: {\n allowed: string[]\n rolesToAssign: Roles[]\n email: {\n handbookPages: string[]\n }\n }\n}\n\nexport const PROFILES: OnboardConfig = {\n readOnly: {\n allowed: [\n ...CLOUD_TEAM_EMAILS,\n ...SUPPORT_MANAGERS_EMAILS,\n ...C8_ENGINEERING_MANAGERS_EMAILS,\n ...CONSULTING_MANAGER_EMAILS,\n ...SRE_TEAM_EMAILS,\n ...CSM_MANAGER_EMAIL,\n 'eric.lundberg@camunda.com',\n ],\n rolesToAssign: ['accounts:read', 'console:admin:readonly'],\n email: {\n handbookPages: [\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/finding-an-organization-on-c8-saas/index.md',\n ],\n },\n },\n supportEngineer: {\n allowed: [...CLOUD_TEAM_EMAILS, ...SUPPORT_MANAGERS_EMAILS],\n rolesToAssign: [\n 'accounts:connections:create',\n 'accounts:connections:update',\n 'support:agent',\n ],\n email: {\n handbookPages: [\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/access-to-a-customers-organization-on-c8-saas/index.md',\n 'https://confluence.camunda.com/display/HAN/How+to+handle+requests+for+External+SSO+integration+in+C8-SaaS',\n ],\n },\n },\n ssoAdmin: {\n allowed: [...CLOUD_TEAM_EMAILS, ...SUPPORT_MANAGERS_EMAILS],\n rolesToAssign: [\n 'accounts:connections:create',\n 'accounts:connections:update',\n 'accounts:connections:delete',\n 'support:agent',\n ],\n email: {\n handbookPages: [\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/access-to-a-customers-organization-on-c8-saas/index.md',\n 'https://confluence.camunda.com/display/HAN/How+to+handle+requests+for+External+SSO+integration+in+C8-SaaS',\n ],\n },\n },\n supportAgent: {\n allowed: [\n ...CLOUD_TEAM_EMAILS,\n ...SUPPORT_MANAGERS_EMAILS,\n ...C8_ENGINEERING_MANAGERS_EMAILS,\n ...CONSULTING_MANAGER_EMAILS,\n ],\n rolesToAssign: ['support:agent'],\n email: {\n handbookPages: [\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/access-to-a-customers-organization-on-c8-saas/index.md',\n ],\n },\n },\n clusterUpdateSupportEngineer: {\n allowed: [\n ...CLOUD_TEAM_EMAILS,\n ...SUPPORT_MANAGERS_EMAILS,\n ...C8_ENGINEERING_MANAGERS_EMAILS,\n ],\n rolesToAssign: ['accounts:clusterUpdates', 'support:agent'],\n email: {\n handbookPages: [\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/managing-generations-on-c8-saas/index.md',\n ],\n },\n },\n c8ReleaseManager: {\n allowed: [...CLOUD_TEAM_EMAILS, ...C8_ENGINEERING_MANAGERS_EMAILS],\n rolesToAssign: [\n 'console:C8ReleaseManager',\n 'accounts:read',\n 'console:C8UpdateEnforcer',\n ],\n email: {\n handbookPages: [\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/managing-generations-on-c8-saas/index.md',\n ],\n },\n },\n incidentEngineer: {\n allowed: [...CLOUD_TEAM_EMAILS, ...C8_ENGINEERING_MANAGERS_EMAILS],\n rolesToAssign: [\n 'accounts:read',\n 'support:agent',\n 'console:operationsEngineer',\n ],\n email: {\n handbookPages: [\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/tweaking-a-running-cluster/index.md',\n ],\n },\n },\n consulting: {\n allowed: [...CLOUD_TEAM_EMAILS, ...CONSULTING_MANAGER_EMAILS],\n rolesToAssign: [\n 'accounts:read',\n 'console:admin:readonly',\n 'accounts:trialExtender',\n 'accounts:limitExtender',\n 'accounts:enterpriseAdmin',\n ],\n email: {\n handbookPages: [\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/finding-an-organization-on-c8-saas/index.md',\n 'https://confluence.camunda.com/display/HAN/Extend+a+Trial+Subscription+on+C8+SaaS',\n ],\n },\n },\n csm: {\n allowed: [...CLOUD_TEAM_EMAILS, ...CSM_MANAGER_EMAIL],\n rolesToAssign: [\n 'accounts:enterpriseAdmin',\n 'accounts:read',\n 'accounts:trialExtender',\n ],\n email: {\n handbookPages: [\n 'https://confluence.camunda.com/display/FIELDOPS/Migrating+C8-SaaS+Organizations+to+Enterprise',\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/modify-a-running-c8-saas-enterprise-organisation/index.md',\n 'https://confluence.camunda.com/display/HAN/Extend+a+Trial+Subscription+on+C8+SaaS',\n ],\n },\n },\n csmOffboard: {\n allowed: [...CLOUD_TEAM_EMAILS, ...CSM_MANAGER_EMAIL],\n rolesToAssign: ['accounts:enterpriseOffboarding', 'accounts:read'],\n email: {\n handbookPages: [\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/shutting-down-an-c8-saas-organization/index.md',\n ],\n },\n },\n adr: {\n allowed: [...ADR_MANAGER_EMAIL, 'javier.garcia-alzorriz@camunda.com'],\n rolesToAssign: ['accounts:trialExtender', 'accounts:read'],\n email: {\n handbookPages: [\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/finding-an-organization-on-c8-saas/index.md',\n 'https://confluence.camunda.com/display/HAN/Extend+a+Trial+Subscription+on+C8+SaaS',\n ],\n },\n },\n trialExtender: {\n allowed: [\n ...CLOUD_TEAM_EMAILS,\n ...LIMIT_EXTENDERS,\n 'rory.tettey@camunda.com',\n ],\n rolesToAssign: ['accounts:trialExtender', 'accounts:read'],\n email: {\n handbookPages: [\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/finding-an-organization-on-c8-saas/index.md',\n 'https://confluence.camunda.com/display/HAN/Extend+a+Trial+Subscription+on+C8+SaaS',\n ],\n },\n },\n limitExtender: {\n allowed: [...CLOUD_TEAM_EMAILS, ...LIMIT_EXTENDERS],\n rolesToAssign: ['accounts:limitExtender', 'accounts:read'],\n email: {\n handbookPages: [\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/finding-an-organization-on-c8-saas/index.md',\n 'https://confluence.camunda.com/display/HAN/Managing+Organization+Limits+on+C8+SaaS',\n ],\n },\n },\n workshopCreator: {\n allowed: [...CLOUD_TEAM_EMAILS, 'robert.emsbach@camunda.com'],\n rolesToAssign: ['accounts:orgCreator'],\n email: {\n handbookPages: [\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/finding-an-organization-on-c8-saas/index.md',\n ],\n },\n },\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nimport type { Roles } from '../types/Roles.js'\n\nexport const CLOUD_TEAM_EMAILS = [\n 'adam.urban@camunda.com',\n 'collin.raddatz@camunda.com',\n 'tim.schuppener@camunda.com',\n]\nconst LIMIT_EXTENDERS = [\n 'william.vonalt@camunda.com',\n 'victor.grund@camunda.com',\n 'ragnar.nevries@camunda.com',\n 'robert.emsbach@camunda.com',\n 'jared.mcmahon@camunda.com',\n]\nexport const SRE_TEAM_EMAILS = [\n 'jonathan.ballet@camunda.com',\n 'thanasis.petrovas@camunda.com',\n 'thomas.polnik@camunda.com',\n]\nexport const PLATFORM_SM_EMAILS = [\n 'immanuel.monma@camunda.com',\n 'jesse.simpson@camunda.com',\n 'hamza.masood@camunda.com',\n 'lars.lange@camunda.com',\n 'leo.journel@camunda.com',\n 'balazs.kenez@camunda.com',\n]\nexport const SUPPORT_MANAGERS_EMAILS = [\n 'garima.yadav@camunda.com',\n 'jeffrey.stokes@camunda.com',\n 'alexandra.corremans@camunda.com',\n 'chris.campbell@camunda.com',\n]\nexport const C8_ENGINEERING_MANAGERS_EMAILS = [\n 'sebastian.bathke@camunda.com',\n 'catalina.moisuc@camunda.com',\n 'immanuel.monma@camunda.com',\n 'joshua.windels@camunda.com',\n 'marcos.vieira@camunda.com',\n 'maximilian.trumpf@camunda.com',\n 'simon.buettner@camunda.com',\n // schoetti is also some sort of engineering manager\n 'michael.schoettes@camunda.com',\n 'tassilo.weidner@camunda.com',\n 'nicolas.pepin-perreault@camunda.com',\n 'wolfgang.amann@camunda.com',\n 'mathieu.stennier@camunda.com',\n 'jason.hunter@camunda.com',\n 'maxim.danilov@camunda.com',\n 'stephan.epping@camunda.com',\n 'simon.zengerling@camunda.com',\n 'shay.matasaro@camunda.com',\n]\nexport const CONSULTING_MANAGER_EMAILS = [\n 'benjamin.hoffmann@camunda.com',\n 'chandan.dash@camunda.com',\n 'darren.devine@camunda.com',\n 'hurshid.kadirov@camunda.com',\n 'ivan.jovic@camunda.com',\n 'michael.ferber@camunda.com',\n 'ragnar.nevries@camunda.com',\n 'norbert.kuchenmeister@camunda.com',\n 'robert.emsbach@camunda.com',\n 'victor.grund@camunda.com',\n]\nexport const CSM_MANAGER_EMAIL = [\n 'aaron.laye@camunda.com',\n 'andreas.tollschein@camunda.com',\n 'betsy.burt@camunda.com',\n 'leona.schlosser@camunda.com',\n 'yulia.sinyanskaya@camunda.com',\n 'agnes.kelemen@camunda.com',\n 'thomas.schulz@camunda.com',\n 'shadia.jubril@camunda.com',\n 'kaitlin.leighton@camunda.com',\n 'ryan.warner@camunda.com',\n 'manjula.kularathne@camunda.com',\n]\nconst ADR_MANAGER_EMAIL = ['jasmin.morfin-davila@camunda.com']\nconst PDF_WATERMARK_EMAILS = ['eyal.marantenboim@camunda.com']\n\nexport interface OnboardConfig {\n [unit: string]: {\n allowed: string[]\n rolesToAssign: Roles[]\n email: {\n handbookPages: string[]\n }\n }\n}\n\nexport const PROFILES: OnboardConfig = {\n readOnly: {\n allowed: [\n ...CLOUD_TEAM_EMAILS,\n ...SUPPORT_MANAGERS_EMAILS,\n ...C8_ENGINEERING_MANAGERS_EMAILS,\n ...CONSULTING_MANAGER_EMAILS,\n ...SRE_TEAM_EMAILS,\n ...CSM_MANAGER_EMAIL,\n 'eric.lundberg@camunda.com',\n ],\n rolesToAssign: ['accounts:read', 'console:admin:readonly'],\n email: {\n handbookPages: [\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/finding-an-organization-on-c8-saas/index.md',\n ],\n },\n },\n supportEngineer: {\n allowed: [...CLOUD_TEAM_EMAILS, ...SUPPORT_MANAGERS_EMAILS],\n rolesToAssign: [\n 'accounts:read',\n 'accounts:connections:create',\n 'accounts:connections:update',\n 'support:agent',\n ],\n email: {\n handbookPages: [\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/access-to-a-customers-organization-on-c8-saas/index.md',\n 'https://confluence.camunda.com/display/HAN/How+to+handle+requests+for+External+SSO+integration+in+C8-SaaS',\n ],\n },\n },\n ssoAdmin: {\n allowed: [...CLOUD_TEAM_EMAILS, ...SUPPORT_MANAGERS_EMAILS],\n rolesToAssign: [\n 'accounts:read',\n 'accounts:connections:create',\n 'accounts:connections:update',\n 'accounts:connections:delete',\n 'support:agent',\n ],\n email: {\n handbookPages: [\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/access-to-a-customers-organization-on-c8-saas/index.md',\n 'https://confluence.camunda.com/display/HAN/How+to+handle+requests+for+External+SSO+integration+in+C8-SaaS',\n ],\n },\n },\n supportAgent: {\n allowed: [\n ...CLOUD_TEAM_EMAILS,\n ...SUPPORT_MANAGERS_EMAILS,\n ...C8_ENGINEERING_MANAGERS_EMAILS,\n ...CONSULTING_MANAGER_EMAILS,\n ],\n rolesToAssign: ['support:agent'],\n email: {\n handbookPages: [\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/access-to-a-customers-organization-on-c8-saas/index.md',\n ],\n },\n },\n clusterUpdateSupportEngineer: {\n allowed: [\n ...CLOUD_TEAM_EMAILS,\n ...SUPPORT_MANAGERS_EMAILS,\n ...C8_ENGINEERING_MANAGERS_EMAILS,\n ],\n rolesToAssign: [\n 'accounts:clusterUpdates',\n 'support:agent',\n 'accounts:read',\n ],\n email: {\n handbookPages: [\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/managing-generations-on-c8-saas/index.md',\n ],\n },\n },\n c8ReleaseManager: {\n allowed: [...CLOUD_TEAM_EMAILS, ...C8_ENGINEERING_MANAGERS_EMAILS],\n rolesToAssign: [\n 'console:C8ReleaseManager',\n 'accounts:read',\n 'console:C8UpdateEnforcer',\n ],\n email: {\n handbookPages: [\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/managing-generations-on-c8-saas/index.md',\n ],\n },\n },\n incidentEngineer: {\n allowed: [...CLOUD_TEAM_EMAILS, ...C8_ENGINEERING_MANAGERS_EMAILS],\n rolesToAssign: [\n 'accounts:read',\n 'support:agent',\n 'console:operationsEngineer',\n ],\n email: {\n handbookPages: [\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/tweaking-a-running-cluster/index.md',\n ],\n },\n },\n consulting: {\n allowed: [...CLOUD_TEAM_EMAILS, ...CONSULTING_MANAGER_EMAILS],\n rolesToAssign: [\n 'accounts:read',\n 'console:admin:readonly',\n 'accounts:trialExtender',\n 'accounts:limitExtender',\n 'accounts:enterpriseAdmin',\n ],\n email: {\n handbookPages: [\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/finding-an-organization-on-c8-saas/index.md',\n 'https://confluence.camunda.com/display/HAN/Extend+a+Trial+Subscription+on+C8+SaaS',\n ],\n },\n },\n csm: {\n allowed: [...CLOUD_TEAM_EMAILS, ...CSM_MANAGER_EMAIL],\n rolesToAssign: [\n 'accounts:enterpriseAdmin',\n 'accounts:read',\n 'accounts:trialExtender',\n ],\n email: {\n handbookPages: [\n 'https://confluence.camunda.com/display/FIELDOPS/Migrating+C8-SaaS+Organizations+to+Enterprise',\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/modify-a-running-c8-saas-enterprise-organisation/index.md',\n 'https://confluence.camunda.com/display/HAN/Extend+a+Trial+Subscription+on+C8+SaaS',\n ],\n },\n },\n csmOffboard: {\n allowed: [...CLOUD_TEAM_EMAILS, ...CSM_MANAGER_EMAIL],\n rolesToAssign: ['accounts:enterpriseOffboarding', 'accounts:read'],\n email: {\n handbookPages: [\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/shutting-down-an-c8-saas-organization/index.md',\n ],\n },\n },\n adr: {\n allowed: [...ADR_MANAGER_EMAIL, 'javier.garcia-alzorriz@camunda.com'],\n rolesToAssign: ['accounts:trialExtender', 'accounts:read'],\n email: {\n handbookPages: [\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/finding-an-organization-on-c8-saas/index.md',\n 'https://confluence.camunda.com/display/HAN/Extend+a+Trial+Subscription+on+C8+SaaS',\n ],\n },\n },\n trialExtender: {\n allowed: [\n ...CLOUD_TEAM_EMAILS,\n ...LIMIT_EXTENDERS,\n 'rory.tettey@camunda.com',\n ],\n rolesToAssign: ['accounts:trialExtender', 'accounts:read'],\n email: {\n handbookPages: [\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/finding-an-organization-on-c8-saas/index.md',\n 'https://confluence.camunda.com/display/HAN/Extend+a+Trial+Subscription+on+C8+SaaS',\n ],\n },\n },\n limitExtender: {\n allowed: [...CLOUD_TEAM_EMAILS, ...LIMIT_EXTENDERS],\n rolesToAssign: ['accounts:limitExtender', 'accounts:read'],\n email: {\n handbookPages: [\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/finding-an-organization-on-c8-saas/index.md',\n 'https://confluence.camunda.com/display/HAN/Managing+Organization+Limits+on+C8+SaaS',\n ],\n },\n },\n workshopCreator: {\n allowed: [...CLOUD_TEAM_EMAILS, 'robert.emsbach@camunda.com'],\n rolesToAssign: ['accounts:orgCreator'],\n email: {\n handbookPages: [\n 'https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/finding-an-organization-on-c8-saas/index.md',\n ],\n },\n },\n pdfWatermarkRead: {\n allowed: [...CLOUD_TEAM_EMAILS, ...PDF_WATERMARK_EMAILS],\n rolesToAssign: ['accounts:pdfWatermarkReader'],\n email: {\n handbookPages: [],\n },\n },\n pdfWatermarkWrite: {\n allowed: [...CLOUD_TEAM_EMAILS, ...PDF_WATERMARK_EMAILS],\n rolesToAssign: ['accounts:pdfWatermarkWriter'],\n email: {\n handbookPages: [],\n },\n },\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,4 @@
1
- export type AccountRoles = 'accounts:read' | 'accounts:onboard' | 'accounts:orgCreator' | 'accounts:enterpriseAdmin' | 'accounts:enterpriseOffboarding' | 'accounts:admin' | 'accounts:god' | 'accounts:editSalesPlans' | 'support:agent' | 'supersupport:agent' | 'accounts:trialExtender' | 'accounts:limitExtender' | 'accounts:connections:create' | 'accounts:connections:update' | 'accounts:connections:delete' | 'accounts:clusterUpdates' | 'accounts:notifications:global' | 'accounts:addSafeRoles' | 'accounts:consultingManager' | 'accounts:earlyAccessEditor';
1
+ export type AccountRoles = 'accounts:read' | 'accounts:onboard' | 'accounts:orgCreator' | 'accounts:enterpriseAdmin' | 'accounts:enterpriseOffboarding' | 'accounts:admin' | 'accounts:god' | 'accounts:editSalesPlans' | 'support:agent' | 'supersupport:agent' | 'accounts:trialExtender' | 'accounts:limitExtender' | 'accounts:connections:create' | 'accounts:connections:update' | 'accounts:connections:delete' | 'accounts:clusterUpdates' | 'accounts:notifications:global' | 'accounts:addSafeRoles' | 'accounts:consultingManager' | 'accounts:earlyAccessEditor' | 'accounts:pdfWatermarkReader' | 'accounts:pdfWatermarkWriter';
2
2
  export type ConsoleRoles = 'console:admin' | 'betatester:true' | 'console:admin:readonly' | 'console:god' | 'consoleTeam' | 'console:operationsEngineer' | 'console:C8ReleaseManager' | 'console:C8UpdateEnforcer' | 'console:clusterPlanManager';
3
3
  export type ModelerRoles = 'modeler:admin';
4
4
  export type Roles = AccountRoles | ConsoleRoles | ModelerRoles;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/types/Roles.ts"],
4
- "sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nexport type AccountRoles =\n | 'accounts:read'\n | 'accounts:onboard'\n | 'accounts:orgCreator'\n | 'accounts:enterpriseAdmin'\n | 'accounts:enterpriseOffboarding'\n | 'accounts:admin'\n | 'accounts:god'\n | 'accounts:editSalesPlans'\n | 'support:agent'\n | 'supersupport:agent'\n | 'accounts:trialExtender'\n | 'accounts:limitExtender'\n | 'accounts:connections:create'\n | 'accounts:connections:update'\n | 'accounts:connections:delete'\n | 'accounts:clusterUpdates'\n | 'accounts:notifications:global'\n | 'accounts:addSafeRoles'\n | 'accounts:consultingManager'\n | 'accounts:earlyAccessEditor'\nexport type ConsoleRoles =\n | 'console:admin'\n | 'betatester:true'\n | 'console:admin:readonly'\n | 'console:god'\n | 'consoleTeam'\n | 'console:operationsEngineer'\n | 'console:C8ReleaseManager'\n | 'console:C8UpdateEnforcer'\n | 'console:clusterPlanManager'\nexport type ModelerRoles = 'modeler:admin'\nexport type Roles = AccountRoles | ConsoleRoles | ModelerRoles\nexport const SAFE_ROLES: Roles[] = [\n 'accounts:read',\n 'console:admin:readonly',\n 'accounts:trialExtender',\n]\n"],
5
- "mappings": "AAuCO,MAAM,aAAsB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AACF;",
4
+ "sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nexport type AccountRoles =\n | 'accounts:read'\n | 'accounts:onboard'\n | 'accounts:orgCreator'\n | 'accounts:enterpriseAdmin'\n | 'accounts:enterpriseOffboarding'\n | 'accounts:admin'\n | 'accounts:god'\n | 'accounts:editSalesPlans'\n | 'support:agent'\n | 'supersupport:agent'\n | 'accounts:trialExtender'\n | 'accounts:limitExtender'\n | 'accounts:connections:create'\n | 'accounts:connections:update'\n | 'accounts:connections:delete'\n | 'accounts:clusterUpdates'\n | 'accounts:notifications:global'\n | 'accounts:addSafeRoles'\n | 'accounts:consultingManager'\n | 'accounts:earlyAccessEditor'\n | 'accounts:pdfWatermarkReader'\n | 'accounts:pdfWatermarkWriter'\nexport type ConsoleRoles =\n | 'console:admin'\n | 'betatester:true'\n | 'console:admin:readonly'\n | 'console:god'\n | 'consoleTeam'\n | 'console:operationsEngineer'\n | 'console:C8ReleaseManager'\n | 'console:C8UpdateEnforcer'\n | 'console:clusterPlanManager'\nexport type ModelerRoles = 'modeler:admin'\nexport type Roles = AccountRoles | ConsoleRoles | ModelerRoles\nexport const SAFE_ROLES: Roles[] = [\n 'accounts:read',\n 'console:admin:readonly',\n 'accounts:trialExtender',\n]\n"],
5
+ "mappings": "AAyCO,MAAM,aAAsB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AACF;",
6
6
  "names": []
7
7
  }
@@ -23,7 +23,7 @@ export declare const getAnalyticsSalesPlanFromOrgSalesPlan: (organization: {
23
23
  version: number;
24
24
  };
25
25
  };
26
- }) => AnalyticsSalesPlanType.TRIAL | AnalyticsSalesPlanType.ENTERPRISE | AnalyticsSalesPlanType.IN_NEGOTIATION | AnalyticsSalesPlanType.INTERNAL;
26
+ }) => AnalyticsSalesPlanType.TRIAL | AnalyticsSalesPlanType.ENTERPRISE | AnalyticsSalesPlanType.IN_NEGOTIATION | AnalyticsSalesPlanType.INTERNAL | undefined;
27
27
  export type RevisitedSalesPlanName = 'Camunda SaaS Trial' | 'Camunda SaaS Modeling' | 'Enterprise' | 'In Negotiation' | 'Internal';
28
28
  export declare function getRevisitedSalesPlanName(displayedSalesPlanName: DisplayedSalesPlan | undefined): RevisitedSalesPlanName | undefined;
29
29
  export type DisplayedSalesPlan = 'Free Trial' | 'Free' | 'Enterprise' | 'In Negotiation' | 'Internal';
@@ -0,0 +1,21 @@
1
+ import type { SystemAuditEntity, SystemAuditEntityAttribute } from '../enums/SystemAuditEntity.enum.js';
2
+ export interface SystemAuditData {
3
+ entity: SystemAuditEntity;
4
+ entityName: string;
5
+ entityId: string;
6
+ entityAttribute?: SystemAuditEntityAttribute;
7
+ entityValueFrom?: {
8
+ readable: string;
9
+ id: string;
10
+ };
11
+ entityValueTo?: {
12
+ readable: string;
13
+ id: string;
14
+ };
15
+ userId: string;
16
+ /** See SystemAuditDto.orgId — org-only entities (e.g. Connection). */
17
+ orgId?: string;
18
+ /** See SystemAuditDto.clusterId — entities with a cluster relation. */
19
+ clusterId?: string;
20
+ additionalAuditText?: string;
21
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=SystemAuditData.type.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -158,22 +158,20 @@ var Telemetry;
158
158
  const timeRangeParts = keyParts[2] ? keyParts[2].split(".." /* LEVEL1 */) : [0];
159
159
  const tsFrom = Number(timeRangeParts[0]);
160
160
  const tsTo = timeRangeParts[1] ? Number(timeRangeParts[1]) : void 0;
161
- const entityReferences = entityReferenceIndices.map((index) => {
161
+ const entityReferences = entityReferenceIndices.flatMap((index) => {
162
162
  const entityReference = this.data.context.entities.find(
163
163
  (currentEntityReference) => currentEntityReference.idx === Number(index)
164
164
  );
165
165
  if (entityReference) {
166
- return {
167
- id: entityReference.id,
168
- type: entityReference.type
169
- };
166
+ return [{ id: entityReference.id, type: entityReference.type }];
170
167
  }
168
+ return [];
171
169
  });
172
170
  const dataPointReference = this.data.context.dataPoints.find(
173
171
  (dataPoint) => dataPoint.idx === dataPointReferenceIndex
174
172
  );
175
173
  this.decodedData.dataPoints.push({
176
- entities: entityReferences ?? [],
174
+ entities: entityReferences,
177
175
  key: dataPointReference ? dataPointReference.key : "unknown",
178
176
  type: dataPointReference ? dataPointReference.type : 0 /* STRING */,
179
177
  tags: dataPointReference ? dataPointReference.tags : void 0,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/types/Telemetry.type.ts"],
4
- "sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nexport namespace Telemetry {\n // //////////////////////////////////////////////////////////////////////\n // TYPES\n\n // Specifies the references a data point belongs to, like cluster xyz, component abc, etc.\n export type EntityReferenceType =\n | 'cluster'\n | 'component'\n | 'global'\n | 'user'\n | 'other'\n export interface EntityReference {\n id: string\n type: EntityReferenceType\n idx: number\n }\n\n // Specifies the data point reference.\n // eslint-disable-next-line no-shadow\n export enum DataPointValueType {\n STRING = 0,\n NUMBER = 1,\n BOOLEAN = 2,\n }\n\n export interface DataPointReference {\n key: string\n type: DataPointValueType\n tags?: Record<string, string>\n idx: number\n }\n\n // Specifies the data body\n export type Properties = Record<string, string>\n export type InstallationContextReference = 'cid' | 'iid' // cid = customerId, iid = installationId\n export interface DataContext {\n ts: number // timestamp\n installation: Record<InstallationContextReference, string>\n entities: EntityReference[]\n dataPoints: DataPointReference[]\n }\n\n // Encoded data format\n export interface EncodedData {\n context: DataContext\n properties: Properties\n }\n\n // Decoded data format\n export interface DecodedData {\n installation: Record<InstallationContextReference, string>\n dataPoints: Array<{\n entities: Array<{\n id: string\n type: EntityReferenceType\n }>\n key: string\n type: DataPointValueType\n tags?: Record<string, string>\n transferredValue: string\n value: string | number | boolean\n tsFrom: number\n tsTo?: number\n }>\n }\n\n // HTTP types\n\n export interface PostResponse {\n success: boolean\n }\n\n // PING\n\n export interface PingRequest {\n cid: string\n iid: string\n }\n\n // //////////////////////////////////////////////////////////////////////\n // HELPERS\n\n // eslint-disable-next-line no-shadow\n export enum Separator {\n LEVEL0 = '::',\n LEVEL1 = '..',\n }\n\n export interface AddDataPointOptions {\n references: Array<{ id: string; type: EntityReferenceType }>\n dataPointKey: string\n dataPointValue: string\n dataPointValueType: DataPointValueType\n dataPointTags?: Record<string, string>\n tsFrom: number\n tsTo?: number\n }\n\n // Helper class to create encoded data\n export class DataEncoder {\n private data: EncodedData = {\n context: {\n // eslint-disable-next-line id-length\n ts: Date.now(),\n installation: {\n cid: '',\n iid: '',\n },\n entities: [],\n dataPoints: [],\n },\n properties: {},\n }\n\n public init(options: { customerId: string; installationId: string }) {\n this.data = {\n context: {\n // eslint-disable-next-line id-length\n ts: Date.now(),\n installation: {\n cid: options.customerId,\n iid: options.installationId,\n },\n entities: [],\n dataPoints: [],\n },\n properties: {},\n }\n }\n\n public getEncodedData(): EncodedData {\n return this.data\n }\n\n private getReferenceIndex(\n referenceId: string,\n referenceType: EntityReferenceType,\n ): number {\n const foundReference = this.data.context.entities.find(\n (ref) => ref.id === referenceId && ref.type === referenceType,\n )\n let entityReferenceIndex = -1\n if (foundReference) {\n entityReferenceIndex = foundReference.idx\n } else {\n // new entity reference\n entityReferenceIndex = this.data.context.entities.length\n this.data.context.entities.push({\n id: referenceId,\n type: referenceType,\n idx: entityReferenceIndex,\n })\n }\n return entityReferenceIndex\n }\n\n private getDataPointIndex(\n dataPointKey: string,\n dataPointValueType: DataPointValueType,\n dataPointTags?: Record<string, string>,\n ): number {\n const foundDataPointReference = this.data.context.dataPoints.find(\n (ref) => {\n if (ref.key === dataPointKey && ref.type === dataPointValueType) {\n // check tags\n if (dataPointTags && !ref.tags) {\n return false\n } else if (!dataPointTags && ref.tags) {\n return false\n } else if (dataPointTags && ref.tags) {\n for (const [key, value] of Object.entries(dataPointTags)) {\n if (ref.tags[key] !== value) {\n return false\n }\n }\n }\n return true\n } else {\n return false\n }\n },\n )\n let dataPointReferenceIndex = -1\n if (foundDataPointReference) {\n dataPointReferenceIndex = foundDataPointReference.idx\n } else {\n // new data point reference\n dataPointReferenceIndex = this.data.context.dataPoints.length\n this.data.context.dataPoints.push({\n key: dataPointKey,\n type: dataPointValueType,\n tags: dataPointTags,\n idx: dataPointReferenceIndex,\n })\n }\n return dataPointReferenceIndex\n }\n\n public addDataPoint(options: AddDataPointOptions) {\n const {\n references,\n dataPointKey,\n dataPointValue,\n dataPointValueType,\n dataPointTags,\n tsFrom,\n tsTo,\n } = options\n\n // find references\n const foundReferences = references.map((reference) => {\n return this.getReferenceIndex(reference.id, reference.type)\n })\n\n // find data point reference\n const foundDataPointReferenceIndex = this.getDataPointIndex(\n dataPointKey,\n dataPointValueType,\n dataPointTags,\n )\n\n // calculate timestamps\n const tsFromCalculated = tsFrom - this.data.context.ts\n let tsToCalculates: number | undefined\n if (tsTo) {\n tsToCalculates = tsTo - this.data.context.ts\n }\n\n // generate data key\n // pattern: entity reference index - data point reference index - time range diff\n const entityReferenceParts: string[] = foundReferences.map((ref) =>\n String(ref),\n )\n\n const timeRangeParts: string[] = []\n timeRangeParts.push(String(tsFromCalculated))\n if (tsToCalculates) {\n timeRangeParts.push(String(tsToCalculates))\n }\n\n const keyParts: string[] = [\n entityReferenceParts.join(Separator.LEVEL1),\n String(foundDataPointReferenceIndex),\n timeRangeParts.join(Separator.LEVEL1),\n ]\n const key = keyParts.join(Separator.LEVEL0)\n\n // add data point\n this.data.properties[key] = dataPointValue\n }\n }\n\n export class DataDecoder {\n private decodedData: DecodedData\n\n constructor(private data: EncodedData) {\n this.decodedData = {\n installation: data.context.installation,\n dataPoints: [],\n }\n this.decode()\n }\n\n public getDecodedData(): DecodedData {\n return this.decodedData\n }\n\n private decode() {\n for (const [key, value] of Object.entries(this.data.properties)) {\n const keyParts = key.split(Separator.LEVEL0)\n const entityReferenceIndices = keyParts[0]\n ? keyParts[0].split(Separator.LEVEL1)\n : [-1]\n const dataPointReferenceIndex = keyParts[1] ? Number(keyParts[1]) : -1\n const timeRangeParts = keyParts[2]\n ? keyParts[2].split(Separator.LEVEL1)\n : [0]\n const tsFrom = Number(timeRangeParts[0])\n const tsTo = timeRangeParts[1] ? Number(timeRangeParts[1]) : undefined\n\n // eslint-disable-next-line array-callback-return\n const entityReferences = entityReferenceIndices.map((index) => {\n const entityReference = this.data.context.entities.find(\n (currentEntityReference) =>\n currentEntityReference.idx === Number(index),\n )\n if (entityReference) {\n return {\n id: entityReference.id,\n type: entityReference.type,\n }\n }\n })\n const dataPointReference = this.data.context.dataPoints.find(\n (dataPoint) => dataPoint.idx === dataPointReferenceIndex,\n )\n\n this.decodedData.dataPoints.push({\n entities: entityReferences ?? [],\n key: dataPointReference ? dataPointReference.key : 'unknown',\n type: dataPointReference\n ? dataPointReference.type\n : DataPointValueType.STRING,\n tags: dataPointReference ? dataPointReference.tags : undefined,\n transferredValue: value,\n value: this.getValue(\n value,\n dataPointReference?.type ?? DataPointValueType.STRING,\n ),\n tsFrom: this.data.context.ts + tsFrom,\n tsTo: tsTo ? this.data.context.ts + tsTo : undefined,\n })\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n private getValue(\n value: string,\n type: DataPointValueType,\n ): string | number | boolean {\n switch (type) {\n case DataPointValueType.BOOLEAN:\n if (['0', 'false'].includes(value)) {\n return false\n }\n if (['1', 'true'].includes(value)) {\n return true\n }\n return false\n case DataPointValueType.NUMBER: {\n // eslint-disable-next-line no-case-declarations\n let valueAsNumber = -1\n try {\n valueAsNumber = Number(value)\n } catch (_error) {\n // ignore\n }\n return valueAsNumber\n }\n default:\n return value\n }\n }\n }\n}\n"],
5
- "mappings": "AAMO,IAAU;AAAA,CAAV,CAAUA,eAAV;AAmBE,MAAK;AAAL,IAAKC,wBAAL;AACL,IAAAA,wCAAA,YAAS,KAAT;AACA,IAAAA,wCAAA,YAAS,KAAT;AACA,IAAAA,wCAAA,aAAU,KAAV;AAAA,KAHU,qBAAAD,WAAA,uBAAAA,WAAA;AAgEL,MAAK;AAAL,IAAKE,eAAL;AACL,IAAAA,WAAA,YAAS;AACT,IAAAA,WAAA,YAAS;AAAA,KAFC,YAAAF,WAAA,cAAAA,WAAA;AAAA,EAgBL,MAAM,YAAY;AAAA,IACf,OAAoB;AAAA,MAC1B,SAAS;AAAA;AAAA,QAEP,IAAI,KAAK,IAAI;AAAA,QACb,cAAc;AAAA,UACZ,KAAK;AAAA,UACL,KAAK;AAAA,QACP;AAAA,QACA,UAAU,CAAC;AAAA,QACX,YAAY,CAAC;AAAA,MACf;AAAA,MACA,YAAY,CAAC;AAAA,IACf;AAAA,IAEO,KAAK,SAAyD;AACnE,WAAK,OAAO;AAAA,QACV,SAAS;AAAA;AAAA,UAEP,IAAI,KAAK,IAAI;AAAA,UACb,cAAc;AAAA,YACZ,KAAK,QAAQ;AAAA,YACb,KAAK,QAAQ;AAAA,UACf;AAAA,UACA,UAAU,CAAC;AAAA,UACX,YAAY,CAAC;AAAA,QACf;AAAA,QACA,YAAY,CAAC;AAAA,MACf;AAAA,IACF;AAAA,IAEO,iBAA8B;AACnC,aAAO,KAAK;AAAA,IACd;AAAA,IAEQ,kBACN,aACA,eACQ;AACR,YAAM,iBAAiB,KAAK,KAAK,QAAQ,SAAS;AAAA,QAChD,CAAC,QAAQ,IAAI,OAAO,eAAe,IAAI,SAAS;AAAA,MAClD;AACA,UAAI,uBAAuB;AAC3B,UAAI,gBAAgB;AAClB,+BAAuB,eAAe;AAAA,MACxC,OAAO;AAEL,+BAAuB,KAAK,KAAK,QAAQ,SAAS;AAClD,aAAK,KAAK,QAAQ,SAAS,KAAK;AAAA,UAC9B,IAAI;AAAA,UACJ,MAAM;AAAA,UACN,KAAK;AAAA,QACP,CAAC;AAAA,MACH;AACA,aAAO;AAAA,IACT;AAAA,IAEQ,kBACN,cACA,oBACA,eACQ;AACR,YAAM,0BAA0B,KAAK,KAAK,QAAQ,WAAW;AAAA,QAC3D,CAAC,QAAQ;AACP,cAAI,IAAI,QAAQ,gBAAgB,IAAI,SAAS,oBAAoB;AAE/D,gBAAI,iBAAiB,CAAC,IAAI,MAAM;AAC9B,qBAAO;AAAA,YACT,WAAW,CAAC,iBAAiB,IAAI,MAAM;AACrC,qBAAO;AAAA,YACT,WAAW,iBAAiB,IAAI,MAAM;AACpC,yBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,aAAa,GAAG;AACxD,oBAAI,IAAI,KAAK,GAAG,MAAM,OAAO;AAC3B,yBAAO;AAAA,gBACT;AAAA,cACF;AAAA,YACF;AACA,mBAAO;AAAA,UACT,OAAO;AACL,mBAAO;AAAA,UACT;AAAA,QACF;AAAA,MACF;AACA,UAAI,0BAA0B;AAC9B,UAAI,yBAAyB;AAC3B,kCAA0B,wBAAwB;AAAA,MACpD,OAAO;AAEL,kCAA0B,KAAK,KAAK,QAAQ,WAAW;AACvD,aAAK,KAAK,QAAQ,WAAW,KAAK;AAAA,UAChC,KAAK;AAAA,UACL,MAAM;AAAA,UACN,MAAM;AAAA,UACN,KAAK;AAAA,QACP,CAAC;AAAA,MACH;AACA,aAAO;AAAA,IACT;AAAA,IAEO,aAAa,SAA8B;AAChD,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI;AAGJ,YAAM,kBAAkB,WAAW,IAAI,CAAC,cAAc;AACpD,eAAO,KAAK,kBAAkB,UAAU,IAAI,UAAU,IAAI;AAAA,MAC5D,CAAC;AAGD,YAAM,+BAA+B,KAAK;AAAA,QACxC;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAGA,YAAM,mBAAmB,SAAS,KAAK,KAAK,QAAQ;AACpD,UAAI;AACJ,UAAI,MAAM;AACR,yBAAiB,OAAO,KAAK,KAAK,QAAQ;AAAA,MAC5C;AAIA,YAAM,uBAAiC,gBAAgB;AAAA,QAAI,CAAC,QAC1D,OAAO,GAAG;AAAA,MACZ;AAEA,YAAM,iBAA2B,CAAC;AAClC,qBAAe,KAAK,OAAO,gBAAgB,CAAC;AAC5C,UAAI,gBAAgB;AAClB,uBAAe,KAAK,OAAO,cAAc,CAAC;AAAA,MAC5C;AAEA,YAAM,WAAqB;AAAA,QACzB,qBAAqB,KAAK,iBAAgB;AAAA,QAC1C,OAAO,4BAA4B;AAAA,QACnC,eAAe,KAAK,iBAAgB;AAAA,MACtC;AACA,YAAM,MAAM,SAAS,KAAK,iBAAgB;AAG1C,WAAK,KAAK,WAAW,GAAG,IAAI;AAAA,IAC9B;AAAA,EACF;AAvJO,EAAAA,WAAM;AAAA,EAyJN,MAAM,YAAY;AAAA,IAGvB,YAAoB,MAAmB;AAAnB;AAClB,WAAK,cAAc;AAAA,QACjB,cAAc,KAAK,QAAQ;AAAA,QAC3B,YAAY,CAAC;AAAA,MACf;AACA,WAAK,OAAO;AAAA,IACd;AAAA,IANoB;AAAA,IAFZ;AAAA,IAUD,iBAA8B;AACnC,aAAO,KAAK;AAAA,IACd;AAAA,IAEQ,SAAS;AACf,iBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,KAAK,KAAK,UAAU,GAAG;AAC/D,cAAM,WAAW,IAAI,MAAM,iBAAgB;AAC3C,cAAM,yBAAyB,SAAS,CAAC,IACrC,SAAS,CAAC,EAAE,MAAM,iBAAgB,IAClC,CAAC,EAAE;AACP,cAAM,0BAA0B,SAAS,CAAC,IAAI,OAAO,SAAS,CAAC,CAAC,IAAI;AACpE,cAAM,iBAAiB,SAAS,CAAC,IAC7B,SAAS,CAAC,EAAE,MAAM,iBAAgB,IAClC,CAAC,CAAC;AACN,cAAM,SAAS,OAAO,eAAe,CAAC,CAAC;AACvC,cAAM,OAAO,eAAe,CAAC,IAAI,OAAO,eAAe,CAAC,CAAC,IAAI;AAG7D,cAAM,mBAAmB,uBAAuB,IAAI,CAAC,UAAU;AAC7D,gBAAM,kBAAkB,KAAK,KAAK,QAAQ,SAAS;AAAA,YACjD,CAAC,2BACC,uBAAuB,QAAQ,OAAO,KAAK;AAAA,UAC/C;AACA,cAAI,iBAAiB;AACnB,mBAAO;AAAA,cACL,IAAI,gBAAgB;AAAA,cACpB,MAAM,gBAAgB;AAAA,YACxB;AAAA,UACF;AAAA,QACF,CAAC;AACD,cAAM,qBAAqB,KAAK,KAAK,QAAQ,WAAW;AAAA,UACtD,CAAC,cAAc,UAAU,QAAQ;AAAA,QACnC;AAEA,aAAK,YAAY,WAAW,KAAK;AAAA,UAC/B,UAAU,oBAAoB,CAAC;AAAA,UAC/B,KAAK,qBAAqB,mBAAmB,MAAM;AAAA,UACnD,MAAM,qBACF,mBAAmB,OACnB;AAAA,UACJ,MAAM,qBAAqB,mBAAmB,OAAO;AAAA,UACrD,kBAAkB;AAAA,UAClB,OAAO,KAAK;AAAA,YACV;AAAA,YACA,oBAAoB,QAAQ;AAAA,UAC9B;AAAA,UACA,QAAQ,KAAK,KAAK,QAAQ,KAAK;AAAA,UAC/B,MAAM,OAAO,KAAK,KAAK,QAAQ,KAAK,OAAO;AAAA,QAC7C,CAAC;AAAA,MACH;AAAA,IACF;AAAA;AAAA,IAGQ,SACN,OACA,MAC2B;AAC3B,cAAQ,MAAM;AAAA,QACZ,KAAK;AACH,cAAI,CAAC,KAAK,OAAO,EAAE,SAAS,KAAK,GAAG;AAClC,mBAAO;AAAA,UACT;AACA,cAAI,CAAC,KAAK,MAAM,EAAE,SAAS,KAAK,GAAG;AACjC,mBAAO;AAAA,UACT;AACA,iBAAO;AAAA,QACT,KAAK,gBAA2B;AAE9B,cAAI,gBAAgB;AACpB,cAAI;AACF,4BAAgB,OAAO,KAAK;AAAA,UAC9B,SAAS,QAAQ;AAAA,UAEjB;AACA,iBAAO;AAAA,QACT;AAAA,QACA;AACE,iBAAO;AAAA,MACX;AAAA,IACF;AAAA,EACF;AA3FO,EAAAA,WAAM;AAAA,GA5PE;",
4
+ "sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nexport namespace Telemetry {\n // //////////////////////////////////////////////////////////////////////\n // TYPES\n\n // Specifies the references a data point belongs to, like cluster xyz, component abc, etc.\n export type EntityReferenceType =\n | 'cluster'\n | 'component'\n | 'global'\n | 'user'\n | 'other'\n export interface EntityReference {\n id: string\n type: EntityReferenceType\n idx: number\n }\n\n // Specifies the data point reference.\n // eslint-disable-next-line no-shadow\n export enum DataPointValueType {\n STRING = 0,\n NUMBER = 1,\n BOOLEAN = 2,\n }\n\n export interface DataPointReference {\n key: string\n type: DataPointValueType\n tags?: Record<string, string>\n idx: number\n }\n\n // Specifies the data body\n export type Properties = Record<string, string>\n export type InstallationContextReference = 'cid' | 'iid' // cid = customerId, iid = installationId\n export interface DataContext {\n ts: number // timestamp\n installation: Record<InstallationContextReference, string>\n entities: EntityReference[]\n dataPoints: DataPointReference[]\n }\n\n // Encoded data format\n export interface EncodedData {\n context: DataContext\n properties: Properties\n }\n\n // Decoded data format\n export interface DecodedData {\n installation: Record<InstallationContextReference, string>\n dataPoints: Array<{\n entities: Array<{\n id: string\n type: EntityReferenceType\n }>\n key: string\n type: DataPointValueType\n tags?: Record<string, string>\n transferredValue: string\n value: string | number | boolean\n tsFrom: number\n tsTo?: number\n }>\n }\n\n // HTTP types\n\n export interface PostResponse {\n success: boolean\n }\n\n // PING\n\n export interface PingRequest {\n cid: string\n iid: string\n }\n\n // //////////////////////////////////////////////////////////////////////\n // HELPERS\n\n // eslint-disable-next-line no-shadow\n export enum Separator {\n LEVEL0 = '::',\n LEVEL1 = '..',\n }\n\n export interface AddDataPointOptions {\n references: Array<{ id: string; type: EntityReferenceType }>\n dataPointKey: string\n dataPointValue: string\n dataPointValueType: DataPointValueType\n dataPointTags?: Record<string, string>\n tsFrom: number\n tsTo?: number\n }\n\n // Helper class to create encoded data\n export class DataEncoder {\n private data: EncodedData = {\n context: {\n // eslint-disable-next-line id-length\n ts: Date.now(),\n installation: {\n cid: '',\n iid: '',\n },\n entities: [],\n dataPoints: [],\n },\n properties: {},\n }\n\n public init(options: { customerId: string; installationId: string }) {\n this.data = {\n context: {\n // eslint-disable-next-line id-length\n ts: Date.now(),\n installation: {\n cid: options.customerId,\n iid: options.installationId,\n },\n entities: [],\n dataPoints: [],\n },\n properties: {},\n }\n }\n\n public getEncodedData(): EncodedData {\n return this.data\n }\n\n private getReferenceIndex(\n referenceId: string,\n referenceType: EntityReferenceType,\n ): number {\n const foundReference = this.data.context.entities.find(\n (ref) => ref.id === referenceId && ref.type === referenceType,\n )\n let entityReferenceIndex = -1\n if (foundReference) {\n entityReferenceIndex = foundReference.idx\n } else {\n // new entity reference\n entityReferenceIndex = this.data.context.entities.length\n this.data.context.entities.push({\n id: referenceId,\n type: referenceType,\n idx: entityReferenceIndex,\n })\n }\n return entityReferenceIndex\n }\n\n private getDataPointIndex(\n dataPointKey: string,\n dataPointValueType: DataPointValueType,\n dataPointTags?: Record<string, string>,\n ): number {\n const foundDataPointReference = this.data.context.dataPoints.find(\n (ref) => {\n if (ref.key === dataPointKey && ref.type === dataPointValueType) {\n // check tags\n if (dataPointTags && !ref.tags) {\n return false\n } else if (!dataPointTags && ref.tags) {\n return false\n } else if (dataPointTags && ref.tags) {\n for (const [key, value] of Object.entries(dataPointTags)) {\n if (ref.tags[key] !== value) {\n return false\n }\n }\n }\n return true\n } else {\n return false\n }\n },\n )\n let dataPointReferenceIndex = -1\n if (foundDataPointReference) {\n dataPointReferenceIndex = foundDataPointReference.idx\n } else {\n // new data point reference\n dataPointReferenceIndex = this.data.context.dataPoints.length\n this.data.context.dataPoints.push({\n key: dataPointKey,\n type: dataPointValueType,\n tags: dataPointTags,\n idx: dataPointReferenceIndex,\n })\n }\n return dataPointReferenceIndex\n }\n\n public addDataPoint(options: AddDataPointOptions) {\n const {\n references,\n dataPointKey,\n dataPointValue,\n dataPointValueType,\n dataPointTags,\n tsFrom,\n tsTo,\n } = options\n\n // find references\n const foundReferences = references.map((reference) => {\n return this.getReferenceIndex(reference.id, reference.type)\n })\n\n // find data point reference\n const foundDataPointReferenceIndex = this.getDataPointIndex(\n dataPointKey,\n dataPointValueType,\n dataPointTags,\n )\n\n // calculate timestamps\n const tsFromCalculated = tsFrom - this.data.context.ts\n let tsToCalculates: number | undefined\n if (tsTo) {\n tsToCalculates = tsTo - this.data.context.ts\n }\n\n // generate data key\n // pattern: entity reference index - data point reference index - time range diff\n const entityReferenceParts: string[] = foundReferences.map((ref) =>\n String(ref),\n )\n\n const timeRangeParts: string[] = []\n timeRangeParts.push(String(tsFromCalculated))\n if (tsToCalculates) {\n timeRangeParts.push(String(tsToCalculates))\n }\n\n const keyParts: string[] = [\n entityReferenceParts.join(Separator.LEVEL1),\n String(foundDataPointReferenceIndex),\n timeRangeParts.join(Separator.LEVEL1),\n ]\n const key = keyParts.join(Separator.LEVEL0)\n\n // add data point\n this.data.properties[key] = dataPointValue\n }\n }\n\n export class DataDecoder {\n private decodedData: DecodedData\n\n constructor(private data: EncodedData) {\n this.decodedData = {\n installation: data.context.installation,\n dataPoints: [],\n }\n this.decode()\n }\n\n public getDecodedData(): DecodedData {\n return this.decodedData\n }\n\n private decode() {\n for (const [key, value] of Object.entries(this.data.properties)) {\n const keyParts = key.split(Separator.LEVEL0)\n const entityReferenceIndices = keyParts[0]\n ? keyParts[0].split(Separator.LEVEL1)\n : [-1]\n const dataPointReferenceIndex = keyParts[1] ? Number(keyParts[1]) : -1\n const timeRangeParts = keyParts[2]\n ? keyParts[2].split(Separator.LEVEL1)\n : [0]\n const tsFrom = Number(timeRangeParts[0])\n const tsTo = timeRangeParts[1] ? Number(timeRangeParts[1]) : undefined\n\n const entityReferences = entityReferenceIndices.flatMap((index) => {\n const entityReference = this.data.context.entities.find(\n (currentEntityReference) =>\n currentEntityReference.idx === Number(index),\n )\n if (entityReference) {\n return [{ id: entityReference.id, type: entityReference.type }]\n }\n return []\n })\n const dataPointReference = this.data.context.dataPoints.find(\n (dataPoint) => dataPoint.idx === dataPointReferenceIndex,\n )\n\n this.decodedData.dataPoints.push({\n entities: entityReferences,\n key: dataPointReference ? dataPointReference.key : 'unknown',\n type: dataPointReference\n ? dataPointReference.type\n : DataPointValueType.STRING,\n tags: dataPointReference ? dataPointReference.tags : undefined,\n transferredValue: value,\n value: this.getValue(\n value,\n dataPointReference?.type ?? DataPointValueType.STRING,\n ),\n tsFrom: this.data.context.ts + tsFrom,\n tsTo: tsTo ? this.data.context.ts + tsTo : undefined,\n })\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n private getValue(\n value: string,\n type: DataPointValueType,\n ): string | number | boolean {\n switch (type) {\n case DataPointValueType.BOOLEAN:\n if (['0', 'false'].includes(value)) {\n return false\n }\n if (['1', 'true'].includes(value)) {\n return true\n }\n return false\n case DataPointValueType.NUMBER: {\n // eslint-disable-next-line no-case-declarations\n let valueAsNumber = -1\n try {\n valueAsNumber = Number(value)\n } catch (_error) {\n // ignore\n }\n return valueAsNumber\n }\n default:\n return value\n }\n }\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["Telemetry", "DataPointValueType", "Separator"]
7
7
  }
@@ -202,6 +202,20 @@ export interface Audit {
202
202
  parentEntity?: string;
203
203
  parentEntityId?: string;
204
204
  }
205
+ export interface SystemAudit {
206
+ service: string;
207
+ timestamp: number;
208
+ audit: string;
209
+ auditType: 'c' | 'r' | 'u' | 'd';
210
+ entity: string;
211
+ entityId: string;
212
+ userId: string;
213
+ entityAttribute?: string | null;
214
+ entityAttributeValueFrom?: string | null;
215
+ entityAttributeValueTo?: string | null;
216
+ orgId?: string | null;
217
+ clusterId?: string | null;
218
+ }
205
219
  export interface TelemetryData {
206
220
  customerId: string;
207
221
  installationId: string;
@@ -233,7 +247,7 @@ export interface LlmSpend {
233
247
  spend: number;
234
248
  maxBudget: number;
235
249
  }
236
- export type HdpEntity = 'cluster' | 'clusterBackup' | 'clusterBackupSchedule' | 'clusterRestore' | 'datacenter' | 'generation' | 'channel' | 'clusterPlan' | 'clusterPlanType' | 'alertSubscription' | 'consoleApiClient' | 'connectorSecret' | 'byomClient' | 'secureConnectivity' | 'clusterClient' | 'organization' | 'user' | 'invite' | 'usageAlert' | 'audit' | 'telemetry' | 'userlogin' | 'clusterBulkOperation' | 'clusterModification' | 'clusterModificationConfig' | 'llmSpend';
250
+ export type HdpEntity = 'cluster' | 'clusterBackup' | 'clusterBackupSchedule' | 'clusterRestore' | 'datacenter' | 'generation' | 'channel' | 'clusterPlan' | 'clusterPlanType' | 'alertSubscription' | 'consoleApiClient' | 'connectorSecret' | 'byomClient' | 'secureConnectivity' | 'clusterClient' | 'organization' | 'user' | 'invite' | 'usageAlert' | 'audit' | 'systemAudit' | 'telemetry' | 'userlogin' | 'clusterBulkOperation' | 'clusterModification' | 'clusterModificationConfig' | 'llmSpend';
237
251
  export interface HdpPrometheusDataCapacityDataPoint {
238
252
  clusterId?: string;
239
253
  ts: number;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/types/hdp.types.ts"],
4
- "sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nimport type { Limits } from '../dtos/SalesPlan.dto.js'\nimport type { UsageAlertMetric } from '../dtos/UsageAlert.dto.js'\nimport type { ClusterClientPermission } from '../enums/ClusterClientPermissions.enum.js'\nimport type { ConsoleAPIClientPermission } from '../enums/ConsoleApiClientPermission.enum.js'\nimport type { OrganizationRole } from '../enums/OrganizationRole.enum.js'\nimport type { DisplayedSalesPlan, SalesPlanType } from './SalesPlanType.type.js'\n\nexport interface Cluster {\n uuid: string\n name: string\n clusterPlanType: ClusterPlanType\n clusterPlan: ClusterPlan\n generation: Generation\n channel: Channel\n datacenter?: Datacenter // is not fetched eagerly, if we do not have it we just gonna omit it\n amountOfIpWhitelistRules: number\n ownerUuid: string\n created: Date\n autoUpdate: boolean\n mcpEnabled?: boolean\n businessIdUniquenessEnabled?: boolean\n optimizeEnabled?: boolean\n tags?: string[]\n sleeping?: boolean\n activeModifications: boolean\n encryptionKeysSet?: {\n primaryConfigured: boolean\n secondaryConfigured: boolean\n }\n}\nexport interface ClusterBackup {\n clusterId: string\n backupId?: string\n}\n\nexport interface ClusterModification {\n uuid: string\n clusterUuid: string\n owner: string\n createdAt?: Date\n archivedAt?: Date\n}\n\nexport interface ClusterModificationConfig {\n uuid: string\n clusterUuid: string\n modificationUuid: string\n creator: string\n description: string\n url?: string\n createdAt?: Date\n sealedAt?: Date\n activatedAt?: Date\n replacedBy?: string\n deactivatedAt?: Date\n deactivatedBy?: string | null\n expiresAt?: Date | null\n expiredNotifiedAt?: Date | null\n yoloJustification?: string\n}\n\n/**\n * HDP-specific interface for ClusterModificationConfig.\n * Used for Holy Data Platform integration - keeps Date objects for timestamp fields.\n */\nexport interface HdpClusterModificationConfig {\n uuid: string\n clusterUuid: string\n modificationUuid: string\n creator: string\n description: string\n url?: string\n createdAt?: Date\n sealedAt?: Date\n activatedAt?: Date\n replacedBy?: string\n deactivatedAt?: Date\n deactivatedBy?: string | null\n expiresAt?: Date | null\n expiredNotifiedAt?: Date | null\n}\n\nexport interface ClusterBackupSchedule {\n clusterId: string\n schedule?: string\n}\n\nexport interface ClusterPlanType {\n uuid: string\n name: string\n availabilityClass: string\n isDevelopment: boolean\n}\n\nexport interface ClusterPlan {\n uuid: string\n name: string\n}\n\nexport interface Datacenter {\n uuid: string\n name: string\n}\nexport interface Generation {\n uuid: string\n name: string\n}\nexport interface Channel {\n uuid: string\n name: string\n}\n\n// eslint-disable-next-line no-shadow\nexport enum AlertSubscriptionType {\n ClusterAlert = 'ClusterAlert',\n ProcessAlert = 'ProcessAlert',\n AllAlerts = 'AllAlerts',\n}\n\n// eslint-disable-next-line no-shadow\nexport enum AlertSubscriptionReportType {\n Email = 'Email',\n Webhook = 'Webhook',\n}\nexport interface AlertSubscription {\n uuid: string\n clusterUuid?: string\n target: string // userIdOrWebhook\n reportType: AlertSubscriptionReportType\n type: AlertSubscriptionType\n}\n\nexport interface ConsoleApiClient {\n uuid: string\n name: string\n organizationUuid: string\n permissions: ConsoleAPIClientPermission[]\n}\n\nexport interface ConnectorSecret {\n clusterUuid: string\n amountOfSecrets: number\n}\n\nexport interface ByomClient {\n uuid: string\n clusterUuid?: string\n username: string\n}\n\nexport interface SecureConnectivity {\n clusterUuid: string\n allowedRegions: string[]\n allowedPrincipals: string[]\n}\n\nexport interface ClusterClient {\n uuid: string\n name: string\n clusterUuid?: string\n clientId: string\n permissions: ClusterClientPermission[]\n}\n\nexport interface Organization {\n uuid: string\n name: string\n salesplan?: {\n type: SalesPlanType // might be undefined when in limbo\n displayedType?: DisplayedSalesPlan // might be undefined when in limbo\n uuid: string // might be undefined when in limbo\n name: string // might be undefined when in limbo\n expireDate?: Date\n }\n reservations?: {\n [key: string]: number\n }\n earlyAccessFeatures?: string[]\n justOptedForTheBetaTerms?: boolean\n salesForceProjectId?: string\n awsOnly?: boolean\n limits?: Limits\n}\n\nexport interface User {\n name: string\n email: string\n userId: string\n orgMemberships?: Array<{ orgUuid: string; roles: OrganizationRole[] }> // can be undefined which means: no new info ;)\n}\n\nexport interface UserLogin {\n userId: string\n}\n\nexport interface Invite {\n email: string\n orgUuid: string\n roles: OrganizationRole[]\n}\n\nexport interface UsageAlert {\n orgId: string\n metric: UsageAlertMetric\n threshold: number\n enabled: boolean\n triggered: boolean\n}\n\nexport interface Audit {\n service: string\n orgId: string\n timestamp: number\n audit: string\n auditType: 'c' | 'r' | 'u' | 'd'\n entity: string\n entityId: string\n userId: string\n entityAttribute?: string\n entityAttributeValueFrom?: string\n entityAttributeValueTo?: string\n parentEntity?: string\n parentEntityId?: string\n}\n\nexport interface TelemetryData {\n customerId: string\n installationId: string\n entities: Array<{ id: string; type: string }>\n key: string\n value: string | number | boolean\n tags?: Record<string, string>\n timestampFrom: number\n timestampTo?: number\n}\n\nexport interface ClusterBulkOperation {\n uuid: string\n name: string\n reason: string\n eyes: number\n clusterUuids: string[]\n type: string\n created: Date\n updated?: Date\n executedAt?: Date\n createdBy: string\n}\n\nexport interface LlmSpend {\n orgId: string\n salesPlanType: SalesPlanType\n spend: number\n maxBudget: number\n}\n\nexport type HdpEntity =\n | 'cluster'\n | 'clusterBackup'\n | 'clusterBackupSchedule'\n | 'clusterRestore'\n | 'datacenter'\n | 'generation'\n | 'channel'\n | 'clusterPlan'\n | 'clusterPlanType'\n | 'alertSubscription'\n | 'consoleApiClient'\n | 'connectorSecret'\n | 'byomClient'\n | 'secureConnectivity'\n | 'clusterClient'\n | 'organization'\n | 'user'\n | 'invite'\n | 'usageAlert'\n | 'audit'\n | 'telemetry'\n | 'userlogin'\n | 'clusterBulkOperation'\n | 'clusterModification'\n | 'clusterModificationConfig'\n | 'llmSpend'\n\nexport interface HdpPrometheusDataCapacityDataPoint {\n clusterId?: string\n ts: number\n avg: number\n min: number\n max: number\n}\n\nexport interface HdpBackendChangeEvent {\n ts: number\n data: {\n stage: string\n entity: string\n operation: string\n data: any\n }\n}\n"],
4
+ "sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nimport type { Limits } from '../dtos/SalesPlan.dto.js'\nimport type { UsageAlertMetric } from '../dtos/UsageAlert.dto.js'\nimport type { ClusterClientPermission } from '../enums/ClusterClientPermissions.enum.js'\nimport type { ConsoleAPIClientPermission } from '../enums/ConsoleApiClientPermission.enum.js'\nimport type { OrganizationRole } from '../enums/OrganizationRole.enum.js'\nimport type { DisplayedSalesPlan, SalesPlanType } from './SalesPlanType.type.js'\n\nexport interface Cluster {\n uuid: string\n name: string\n clusterPlanType: ClusterPlanType\n clusterPlan: ClusterPlan\n generation: Generation\n channel: Channel\n datacenter?: Datacenter // is not fetched eagerly, if we do not have it we just gonna omit it\n amountOfIpWhitelistRules: number\n ownerUuid: string\n created: Date\n autoUpdate: boolean\n mcpEnabled?: boolean\n businessIdUniquenessEnabled?: boolean\n optimizeEnabled?: boolean\n tags?: string[]\n sleeping?: boolean\n activeModifications: boolean\n encryptionKeysSet?: {\n primaryConfigured: boolean\n secondaryConfigured: boolean\n }\n}\nexport interface ClusterBackup {\n clusterId: string\n backupId?: string\n}\n\nexport interface ClusterModification {\n uuid: string\n clusterUuid: string\n owner: string\n createdAt?: Date\n archivedAt?: Date\n}\n\nexport interface ClusterModificationConfig {\n uuid: string\n clusterUuid: string\n modificationUuid: string\n creator: string\n description: string\n url?: string\n createdAt?: Date\n sealedAt?: Date\n activatedAt?: Date\n replacedBy?: string\n deactivatedAt?: Date\n deactivatedBy?: string | null\n expiresAt?: Date | null\n expiredNotifiedAt?: Date | null\n yoloJustification?: string\n}\n\n/**\n * HDP-specific interface for ClusterModificationConfig.\n * Used for Holy Data Platform integration - keeps Date objects for timestamp fields.\n */\nexport interface HdpClusterModificationConfig {\n uuid: string\n clusterUuid: string\n modificationUuid: string\n creator: string\n description: string\n url?: string\n createdAt?: Date\n sealedAt?: Date\n activatedAt?: Date\n replacedBy?: string\n deactivatedAt?: Date\n deactivatedBy?: string | null\n expiresAt?: Date | null\n expiredNotifiedAt?: Date | null\n}\n\nexport interface ClusterBackupSchedule {\n clusterId: string\n schedule?: string\n}\n\nexport interface ClusterPlanType {\n uuid: string\n name: string\n availabilityClass: string\n isDevelopment: boolean\n}\n\nexport interface ClusterPlan {\n uuid: string\n name: string\n}\n\nexport interface Datacenter {\n uuid: string\n name: string\n}\nexport interface Generation {\n uuid: string\n name: string\n}\nexport interface Channel {\n uuid: string\n name: string\n}\n\n// eslint-disable-next-line no-shadow\nexport enum AlertSubscriptionType {\n ClusterAlert = 'ClusterAlert',\n ProcessAlert = 'ProcessAlert',\n AllAlerts = 'AllAlerts',\n}\n\n// eslint-disable-next-line no-shadow\nexport enum AlertSubscriptionReportType {\n Email = 'Email',\n Webhook = 'Webhook',\n}\nexport interface AlertSubscription {\n uuid: string\n clusterUuid?: string\n target: string // userIdOrWebhook\n reportType: AlertSubscriptionReportType\n type: AlertSubscriptionType\n}\n\nexport interface ConsoleApiClient {\n uuid: string\n name: string\n organizationUuid: string\n permissions: ConsoleAPIClientPermission[]\n}\n\nexport interface ConnectorSecret {\n clusterUuid: string\n amountOfSecrets: number\n}\n\nexport interface ByomClient {\n uuid: string\n clusterUuid?: string\n username: string\n}\n\nexport interface SecureConnectivity {\n clusterUuid: string\n allowedRegions: string[]\n allowedPrincipals: string[]\n}\n\nexport interface ClusterClient {\n uuid: string\n name: string\n clusterUuid?: string\n clientId: string\n permissions: ClusterClientPermission[]\n}\n\nexport interface Organization {\n uuid: string\n name: string\n salesplan?: {\n type: SalesPlanType // might be undefined when in limbo\n displayedType?: DisplayedSalesPlan // might be undefined when in limbo\n uuid: string // might be undefined when in limbo\n name: string // might be undefined when in limbo\n expireDate?: Date\n }\n reservations?: {\n [key: string]: number\n }\n earlyAccessFeatures?: string[]\n justOptedForTheBetaTerms?: boolean\n salesForceProjectId?: string\n awsOnly?: boolean\n limits?: Limits\n}\n\nexport interface User {\n name: string\n email: string\n userId: string\n orgMemberships?: Array<{ orgUuid: string; roles: OrganizationRole[] }> // can be undefined which means: no new info ;)\n}\n\nexport interface UserLogin {\n userId: string\n}\n\nexport interface Invite {\n email: string\n orgUuid: string\n roles: OrganizationRole[]\n}\n\nexport interface UsageAlert {\n orgId: string\n metric: UsageAlertMetric\n threshold: number\n enabled: boolean\n triggered: boolean\n}\n\nexport interface Audit {\n service: string\n orgId: string\n timestamp: number\n audit: string\n auditType: 'c' | 'r' | 'u' | 'd'\n entity: string\n entityId: string\n userId: string\n entityAttribute?: string\n entityAttributeValueFrom?: string\n entityAttributeValueTo?: string\n parentEntity?: string\n parentEntityId?: string\n}\n\nexport interface SystemAudit {\n service: string\n timestamp: number\n audit: string\n auditType: 'c' | 'r' | 'u' | 'd'\n entity: string\n entityId: string\n userId: string\n entityAttribute?: string | null\n entityAttributeValueFrom?: string | null\n entityAttributeValueTo?: string | null\n orgId?: string | null\n clusterId?: string | null\n}\n\nexport interface TelemetryData {\n customerId: string\n installationId: string\n entities: Array<{ id: string; type: string }>\n key: string\n value: string | number | boolean\n tags?: Record<string, string>\n timestampFrom: number\n timestampTo?: number\n}\n\nexport interface ClusterBulkOperation {\n uuid: string\n name: string\n reason: string\n eyes: number\n clusterUuids: string[]\n type: string\n created: Date\n updated?: Date\n executedAt?: Date\n createdBy: string\n}\n\nexport interface LlmSpend {\n orgId: string\n salesPlanType: SalesPlanType\n spend: number\n maxBudget: number\n}\n\nexport type HdpEntity =\n | 'cluster'\n | 'clusterBackup'\n | 'clusterBackupSchedule'\n | 'clusterRestore'\n | 'datacenter'\n | 'generation'\n | 'channel'\n | 'clusterPlan'\n | 'clusterPlanType'\n | 'alertSubscription'\n | 'consoleApiClient'\n | 'connectorSecret'\n | 'byomClient'\n | 'secureConnectivity'\n | 'clusterClient'\n | 'organization'\n | 'user'\n | 'invite'\n | 'usageAlert'\n | 'audit'\n | 'systemAudit'\n | 'telemetry'\n | 'userlogin'\n | 'clusterBulkOperation'\n | 'clusterModification'\n | 'clusterModificationConfig'\n | 'llmSpend'\n\nexport interface HdpPrometheusDataCapacityDataPoint {\n clusterId?: string\n ts: number\n avg: number\n min: number\n max: number\n}\n\nexport interface HdpBackendChangeEvent {\n ts: number\n data: {\n stage: string\n entity: string\n operation: string\n data: any\n }\n}\n"],
5
5
  "mappings": "AAuHO,IAAK,wBAAL,kBAAKA,2BAAL;AACL,EAAAA,uBAAA,kBAAe;AACf,EAAAA,uBAAA,kBAAe;AACf,EAAAA,uBAAA,eAAY;AAHF,SAAAA;AAAA,GAAA;AAOL,IAAK,8BAAL,kBAAKC,iCAAL;AACL,EAAAA,6BAAA,WAAQ;AACR,EAAAA,6BAAA,aAAU;AAFA,SAAAA;AAAA,GAAA;",
6
6
  "names": ["AlertSubscriptionType", "AlertSubscriptionReportType"]
7
7
  }
@@ -2,7 +2,7 @@ import {
2
2
  ALLOWED_CAMUNDA_LABELS
3
3
  } from "../types/CamundaClusterLabels.type.js";
4
4
  function validateLabels(labels) {
5
- if (labels.camunda?.length > 0) {
5
+ if ((labels.camunda?.length ?? 0) > 0) {
6
6
  if (!labels.camunda.every(
7
7
  (camundaLabelToBeSet) => ALLOWED_CAMUNDA_LABELS.includes(camundaLabelToBeSet)
8
8
  )) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/labelValidator.utils.ts"],
4
- "sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nimport {\n ALLOWED_CAMUNDA_LABELS,\n type CamundaClusterStage,\n} from '../types/CamundaClusterLabels.type.js'\n\nexport function validateLabels(labels: {\n custom?: string[]\n camunda?: CamundaClusterStage[]\n}): boolean {\n if (labels.camunda?.length > 0) {\n if (\n !labels.camunda.every((camundaLabelToBeSet) =>\n ALLOWED_CAMUNDA_LABELS.includes(camundaLabelToBeSet),\n )\n ) {\n return false\n }\n }\n return true\n}\n"],
5
- "mappings": "AAMA;AAAA,EACE;AAAA,OAEK;AAEA,SAAS,eAAe,QAGnB;AACV,MAAI,OAAO,SAAS,SAAS,GAAG;AAC9B,QACE,CAAC,OAAO,QAAQ;AAAA,MAAM,CAAC,wBACrB,uBAAuB,SAAS,mBAAmB;AAAA,IACrD,GACA;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;",
4
+ "sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nimport {\n ALLOWED_CAMUNDA_LABELS,\n type CamundaClusterStage,\n} from '../types/CamundaClusterLabels.type.js'\n\nexport function validateLabels(labels: {\n custom?: string[]\n camunda?: CamundaClusterStage[]\n}): boolean {\n if ((labels.camunda?.length ?? 0) > 0) {\n if (\n !labels.camunda!.every((camundaLabelToBeSet) =>\n ALLOWED_CAMUNDA_LABELS.includes(camundaLabelToBeSet),\n )\n ) {\n return false\n }\n }\n return true\n}\n"],
5
+ "mappings": "AAMA;AAAA,EACE;AAAA,OAEK;AAEA,SAAS,eAAe,QAGnB;AACV,OAAK,OAAO,SAAS,UAAU,KAAK,GAAG;AACrC,QACE,CAAC,OAAO,QAAS;AAAA,MAAM,CAAC,wBACtB,uBAAuB,SAAS,mBAAmB;AAAA,IACrD,GACA;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;",
6
6
  "names": []
7
7
  }