@camunda/ccma-shared-types 0.1.3 → 0.4.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.
- package/dist/config/camundi-permission-rules.types.d.ts +5 -0
- package/dist/config/camundi-permission-rules.types.js.map +1 -1
- package/dist/constants/failoverRegionPairs.const.d.ts +11 -0
- package/dist/constants/failoverRegionPairs.const.js +17 -0
- package/dist/constants/failoverRegionPairs.const.js.map +7 -0
- package/dist/constants/misc.const.d.ts +7 -0
- package/dist/constants/misc.const.js +2 -0
- package/dist/constants/misc.const.js.map +2 -2
- package/dist/constants/trialExtensionSurvey.const.js +18 -34
- package/dist/constants/trialExtensionSurvey.const.js.map +2 -2
- package/dist/dtos/ClusterSpecHistory.dto.d.ts +24 -0
- package/dist/dtos/ClusterSpecHistory.dto.js +1 -0
- package/dist/dtos/ClusterSpecHistory.dto.js.map +7 -0
- package/dist/dtos/CommonCluster.dto.d.ts +64 -6
- package/dist/dtos/ConsoleCluster.dto.d.ts +7 -0
- package/dist/dtos/ControlV2.dto.d.ts +177 -0
- package/dist/dtos/ControlV2.dto.js +1 -0
- package/dist/dtos/ControlV2.dto.js.map +7 -0
- package/dist/dtos/ExternalWebapp.dto.d.ts +89 -0
- package/dist/dtos/ExternalWebapp.dto.js +1 -0
- package/dist/dtos/ExternalWebapp.dto.js.map +7 -0
- package/dist/dtos/Generations.dto.js.map +2 -2
- package/dist/dtos/K8sContext.dto.d.ts +1 -0
- package/dist/dtos/SalesPlan.dto.d.ts +7 -2
- package/dist/dtos/SalesPlan.dto.js +10 -2
- package/dist/dtos/SalesPlan.dto.js.map +2 -2
- package/dist/dtos/StorybookConfig.dto.d.ts +39 -0
- package/dist/dtos/StorybookConfig.dto.js +1 -0
- package/dist/dtos/StorybookConfig.dto.js.map +7 -0
- package/dist/enums/AuditEntity.enum.d.ts +1 -0
- package/dist/enums/AuditEntity.enum.js +1 -0
- package/dist/enums/AuditEntity.enum.js.map +2 -2
- package/dist/enums/OrganizationRole.enum.d.ts +0 -2
- package/dist/enums/OrganizationRole.enum.js +0 -2
- package/dist/enums/OrganizationRole.enum.js.map +2 -2
- package/dist/enums/SystemAuditEntity.enum.d.ts +2 -1
- package/dist/enums/SystemAuditEntity.enum.js +1 -0
- package/dist/enums/SystemAuditEntity.enum.js.map +2 -2
- package/dist/index.d.ts +8 -3
- package/dist/index.js +9 -17
- package/dist/index.js.map +2 -2
- package/dist/permissions/combo.js +3 -0
- package/dist/permissions/combo.js.map +2 -2
- package/dist/permissions/console.permissions.d.ts +2 -0
- package/dist/permissions/console.permissions.js +7 -0
- package/dist/permissions/console.permissions.js.map +2 -2
- package/dist/permissions/profile.permissions.d.ts +14 -8
- package/dist/permissions/profile.permissions.js +22 -123
- package/dist/permissions/profile.permissions.js.map +2 -2
- package/dist/types/SalesPlanType.type.d.ts +1 -1
- package/dist/types/Telemetry.type.js +4 -6
- package/dist/types/Telemetry.type.js.map +2 -2
- package/dist/utils/labelValidator.utils.js +1 -1
- package/dist/utils/labelValidator.utils.js.map +2 -2
- package/dist/utils/orgs/OrgHelper.js.map +2 -2
- package/dist/utils/user.utils.js.map +2 -2
- package/dist/utils/versionCheck.utils.js +2 -0
- package/dist/utils/versionCheck.utils.js.map +2 -2
- package/package.json +1 -1
|
@@ -1,92 +1,5 @@
|
|
|
1
|
-
const CLOUD_TEAM_EMAILS = [
|
|
2
|
-
"adam.urban@camunda.com",
|
|
3
|
-
"collin.raddatz@camunda.com",
|
|
4
|
-
"tim.schuppener@camunda.com"
|
|
5
|
-
];
|
|
6
|
-
const LIMIT_EXTENDERS = [
|
|
7
|
-
"william.vonalt@camunda.com",
|
|
8
|
-
"victor.grund@camunda.com",
|
|
9
|
-
"ragnar.nevries@camunda.com",
|
|
10
|
-
"robert.emsbach@camunda.com",
|
|
11
|
-
"jared.mcmahon@camunda.com"
|
|
12
|
-
];
|
|
13
|
-
const SRE_TEAM_EMAILS = [
|
|
14
|
-
"jonathan.ballet@camunda.com",
|
|
15
|
-
"thanasis.petrovas@camunda.com",
|
|
16
|
-
"thomas.polnik@camunda.com"
|
|
17
|
-
];
|
|
18
|
-
const PLATFORM_SM_EMAILS = [
|
|
19
|
-
"immanuel.monma@camunda.com",
|
|
20
|
-
"jesse.simpson@camunda.com",
|
|
21
|
-
"hamza.masood@camunda.com",
|
|
22
|
-
"lars.lange@camunda.com",
|
|
23
|
-
"leo.journel@camunda.com",
|
|
24
|
-
"balazs.kenez@camunda.com"
|
|
25
|
-
];
|
|
26
|
-
const SUPPORT_MANAGERS_EMAILS = [
|
|
27
|
-
"garima.yadav@camunda.com",
|
|
28
|
-
"jeffrey.stokes@camunda.com",
|
|
29
|
-
"alexandra.corremans@camunda.com",
|
|
30
|
-
"chris.campbell@camunda.com"
|
|
31
|
-
];
|
|
32
|
-
const C8_ENGINEERING_MANAGERS_EMAILS = [
|
|
33
|
-
"sebastian.bathke@camunda.com",
|
|
34
|
-
"catalina.moisuc@camunda.com",
|
|
35
|
-
"immanuel.monma@camunda.com",
|
|
36
|
-
"joshua.windels@camunda.com",
|
|
37
|
-
"marcos.vieira@camunda.com",
|
|
38
|
-
"maximilian.trumpf@camunda.com",
|
|
39
|
-
"simon.buettner@camunda.com",
|
|
40
|
-
// schoetti is also some sort of engineering manager
|
|
41
|
-
"michael.schoettes@camunda.com",
|
|
42
|
-
"tassilo.weidner@camunda.com",
|
|
43
|
-
"nicolas.pepin-perreault@camunda.com",
|
|
44
|
-
"wolfgang.amann@camunda.com",
|
|
45
|
-
"mathieu.stennier@camunda.com",
|
|
46
|
-
"jason.hunter@camunda.com",
|
|
47
|
-
"maxim.danilov@camunda.com",
|
|
48
|
-
"stephan.epping@camunda.com",
|
|
49
|
-
"simon.zengerling@camunda.com",
|
|
50
|
-
"shay.matasaro@camunda.com"
|
|
51
|
-
];
|
|
52
|
-
const CONSULTING_MANAGER_EMAILS = [
|
|
53
|
-
"benjamin.hoffmann@camunda.com",
|
|
54
|
-
"chandan.dash@camunda.com",
|
|
55
|
-
"darren.devine@camunda.com",
|
|
56
|
-
"hurshid.kadirov@camunda.com",
|
|
57
|
-
"ivan.jovic@camunda.com",
|
|
58
|
-
"michael.ferber@camunda.com",
|
|
59
|
-
"ragnar.nevries@camunda.com",
|
|
60
|
-
"norbert.kuchenmeister@camunda.com",
|
|
61
|
-
"robert.emsbach@camunda.com",
|
|
62
|
-
"victor.grund@camunda.com"
|
|
63
|
-
];
|
|
64
|
-
const CSM_MANAGER_EMAIL = [
|
|
65
|
-
"aaron.laye@camunda.com",
|
|
66
|
-
"andreas.tollschein@camunda.com",
|
|
67
|
-
"betsy.burt@camunda.com",
|
|
68
|
-
"leona.schlosser@camunda.com",
|
|
69
|
-
"yulia.sinyanskaya@camunda.com",
|
|
70
|
-
"agnes.kelemen@camunda.com",
|
|
71
|
-
"thomas.schulz@camunda.com",
|
|
72
|
-
"shadia.jubril@camunda.com",
|
|
73
|
-
"kaitlin.leighton@camunda.com",
|
|
74
|
-
"ryan.warner@camunda.com",
|
|
75
|
-
"manjula.kularathne@camunda.com"
|
|
76
|
-
];
|
|
77
|
-
const ADR_MANAGER_EMAIL = ["jasmin.morfin-davila@camunda.com"];
|
|
78
|
-
const PDF_WATERMARK_EMAILS = ["eyal.marantenboim@camunda.com"];
|
|
79
1
|
const PROFILES = {
|
|
80
2
|
readOnly: {
|
|
81
|
-
allowed: [
|
|
82
|
-
...CLOUD_TEAM_EMAILS,
|
|
83
|
-
...SUPPORT_MANAGERS_EMAILS,
|
|
84
|
-
...C8_ENGINEERING_MANAGERS_EMAILS,
|
|
85
|
-
...CONSULTING_MANAGER_EMAILS,
|
|
86
|
-
...SRE_TEAM_EMAILS,
|
|
87
|
-
...CSM_MANAGER_EMAIL,
|
|
88
|
-
"eric.lundberg@camunda.com"
|
|
89
|
-
],
|
|
90
3
|
rolesToAssign: ["accounts:read", "console:admin:readonly"],
|
|
91
4
|
email: {
|
|
92
5
|
handbookPages: [
|
|
@@ -95,8 +8,8 @@ const PROFILES = {
|
|
|
95
8
|
}
|
|
96
9
|
},
|
|
97
10
|
supportEngineer: {
|
|
98
|
-
allowed: [...CLOUD_TEAM_EMAILS, ...SUPPORT_MANAGERS_EMAILS],
|
|
99
11
|
rolesToAssign: [
|
|
12
|
+
"accounts:read",
|
|
100
13
|
"accounts:connections:create",
|
|
101
14
|
"accounts:connections:update",
|
|
102
15
|
"support:agent"
|
|
@@ -109,8 +22,8 @@ const PROFILES = {
|
|
|
109
22
|
}
|
|
110
23
|
},
|
|
111
24
|
ssoAdmin: {
|
|
112
|
-
allowed: [...CLOUD_TEAM_EMAILS, ...SUPPORT_MANAGERS_EMAILS],
|
|
113
25
|
rolesToAssign: [
|
|
26
|
+
"accounts:read",
|
|
114
27
|
"accounts:connections:create",
|
|
115
28
|
"accounts:connections:update",
|
|
116
29
|
"accounts:connections:delete",
|
|
@@ -123,13 +36,22 @@ const PROFILES = {
|
|
|
123
36
|
]
|
|
124
37
|
}
|
|
125
38
|
},
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
39
|
+
tam: {
|
|
40
|
+
rolesToAssign: [
|
|
41
|
+
"support:agent",
|
|
42
|
+
"accounts:trialExtender",
|
|
43
|
+
"accounts:limitExtender",
|
|
44
|
+
"accounts:enterpriseAdmin",
|
|
45
|
+
"accounts:read",
|
|
46
|
+
"console:admin:readonly"
|
|
132
47
|
],
|
|
48
|
+
email: {
|
|
49
|
+
handbookPages: [
|
|
50
|
+
"https://confluence.camunda.com/display/HAN/Access+to+a+customers+Organization+on+C8+SaaS"
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
supportAgent: {
|
|
133
55
|
rolesToAssign: ["support:agent"],
|
|
134
56
|
email: {
|
|
135
57
|
handbookPages: [
|
|
@@ -138,12 +60,11 @@ const PROFILES = {
|
|
|
138
60
|
}
|
|
139
61
|
},
|
|
140
62
|
clusterUpdateSupportEngineer: {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
63
|
+
rolesToAssign: [
|
|
64
|
+
"accounts:clusterUpdates",
|
|
65
|
+
"support:agent",
|
|
66
|
+
"accounts:read"
|
|
145
67
|
],
|
|
146
|
-
rolesToAssign: ["accounts:clusterUpdates", "support:agent"],
|
|
147
68
|
email: {
|
|
148
69
|
handbookPages: [
|
|
149
70
|
"https://lamppost.camunda-it.rocks/handbook/#departments/products/engineering/managing-generations-on-c8-saas/index.md"
|
|
@@ -151,7 +72,6 @@ const PROFILES = {
|
|
|
151
72
|
}
|
|
152
73
|
},
|
|
153
74
|
c8ReleaseManager: {
|
|
154
|
-
allowed: [...CLOUD_TEAM_EMAILS, ...C8_ENGINEERING_MANAGERS_EMAILS],
|
|
155
75
|
rolesToAssign: [
|
|
156
76
|
"console:C8ReleaseManager",
|
|
157
77
|
"accounts:read",
|
|
@@ -164,7 +84,6 @@ const PROFILES = {
|
|
|
164
84
|
}
|
|
165
85
|
},
|
|
166
86
|
incidentEngineer: {
|
|
167
|
-
allowed: [...CLOUD_TEAM_EMAILS, ...C8_ENGINEERING_MANAGERS_EMAILS],
|
|
168
87
|
rolesToAssign: [
|
|
169
88
|
"accounts:read",
|
|
170
89
|
"support:agent",
|
|
@@ -177,7 +96,6 @@ const PROFILES = {
|
|
|
177
96
|
}
|
|
178
97
|
},
|
|
179
98
|
consulting: {
|
|
180
|
-
allowed: [...CLOUD_TEAM_EMAILS, ...CONSULTING_MANAGER_EMAILS],
|
|
181
99
|
rolesToAssign: [
|
|
182
100
|
"accounts:read",
|
|
183
101
|
"console:admin:readonly",
|
|
@@ -193,7 +111,6 @@ const PROFILES = {
|
|
|
193
111
|
}
|
|
194
112
|
},
|
|
195
113
|
csm: {
|
|
196
|
-
allowed: [...CLOUD_TEAM_EMAILS, ...CSM_MANAGER_EMAIL],
|
|
197
114
|
rolesToAssign: [
|
|
198
115
|
"accounts:enterpriseAdmin",
|
|
199
116
|
"accounts:read",
|
|
@@ -208,7 +125,6 @@ const PROFILES = {
|
|
|
208
125
|
}
|
|
209
126
|
},
|
|
210
127
|
csmOffboard: {
|
|
211
|
-
allowed: [...CLOUD_TEAM_EMAILS, ...CSM_MANAGER_EMAIL],
|
|
212
128
|
rolesToAssign: ["accounts:enterpriseOffboarding", "accounts:read"],
|
|
213
129
|
email: {
|
|
214
130
|
handbookPages: [
|
|
@@ -217,7 +133,6 @@ const PROFILES = {
|
|
|
217
133
|
}
|
|
218
134
|
},
|
|
219
135
|
adr: {
|
|
220
|
-
allowed: [...ADR_MANAGER_EMAIL, "javier.garcia-alzorriz@camunda.com"],
|
|
221
136
|
rolesToAssign: ["accounts:trialExtender", "accounts:read"],
|
|
222
137
|
email: {
|
|
223
138
|
handbookPages: [
|
|
@@ -227,11 +142,6 @@ const PROFILES = {
|
|
|
227
142
|
}
|
|
228
143
|
},
|
|
229
144
|
trialExtender: {
|
|
230
|
-
allowed: [
|
|
231
|
-
...CLOUD_TEAM_EMAILS,
|
|
232
|
-
...LIMIT_EXTENDERS,
|
|
233
|
-
"rory.tettey@camunda.com"
|
|
234
|
-
],
|
|
235
145
|
rolesToAssign: ["accounts:trialExtender", "accounts:read"],
|
|
236
146
|
email: {
|
|
237
147
|
handbookPages: [
|
|
@@ -241,7 +151,6 @@ const PROFILES = {
|
|
|
241
151
|
}
|
|
242
152
|
},
|
|
243
153
|
limitExtender: {
|
|
244
|
-
allowed: [...CLOUD_TEAM_EMAILS, ...LIMIT_EXTENDERS],
|
|
245
154
|
rolesToAssign: ["accounts:limitExtender", "accounts:read"],
|
|
246
155
|
email: {
|
|
247
156
|
handbookPages: [
|
|
@@ -251,7 +160,6 @@ const PROFILES = {
|
|
|
251
160
|
}
|
|
252
161
|
},
|
|
253
162
|
workshopCreator: {
|
|
254
|
-
allowed: [...CLOUD_TEAM_EMAILS, "robert.emsbach@camunda.com"],
|
|
255
163
|
rolesToAssign: ["accounts:orgCreator"],
|
|
256
164
|
email: {
|
|
257
165
|
handbookPages: [
|
|
@@ -260,14 +168,12 @@ const PROFILES = {
|
|
|
260
168
|
}
|
|
261
169
|
},
|
|
262
170
|
pdfWatermarkRead: {
|
|
263
|
-
allowed: [...CLOUD_TEAM_EMAILS, ...PDF_WATERMARK_EMAILS],
|
|
264
171
|
rolesToAssign: ["accounts:pdfWatermarkReader"],
|
|
265
172
|
email: {
|
|
266
173
|
handbookPages: []
|
|
267
174
|
}
|
|
268
175
|
},
|
|
269
176
|
pdfWatermarkWrite: {
|
|
270
|
-
allowed: [...CLOUD_TEAM_EMAILS, ...PDF_WATERMARK_EMAILS],
|
|
271
177
|
rolesToAssign: ["accounts:pdfWatermarkWriter"],
|
|
272
178
|
email: {
|
|
273
179
|
handbookPages: []
|
|
@@ -275,13 +181,6 @@ const PROFILES = {
|
|
|
275
181
|
}
|
|
276
182
|
};
|
|
277
183
|
export {
|
|
278
|
-
|
|
279
|
-
CLOUD_TEAM_EMAILS,
|
|
280
|
-
CONSULTING_MANAGER_EMAILS,
|
|
281
|
-
CSM_MANAGER_EMAIL,
|
|
282
|
-
PLATFORM_SM_EMAILS,
|
|
283
|
-
PROFILES,
|
|
284
|
-
SRE_TEAM_EMAILS,
|
|
285
|
-
SUPPORT_MANAGERS_EMAILS
|
|
184
|
+
PROFILES
|
|
286
185
|
};
|
|
287
186
|
//# sourceMappingURL=profile.permissions.js.map
|
|
@@ -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\
|
|
5
|
-
"mappings": "
|
|
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\n/**\n * NOTE: This package (`@camunda/ccma-shared-types`) is published publicly to\n * npmjs.org and is imported directly by frontend applications, so its contents\n * ship in the browser bundle and in every published npm version.\n *\n * For that reason this file MUST NOT contain the `allowed` email lists (real\n * Camunda employee names/emails) that gate who may run each onboarding\n * profile. Those lists live in the private, never-published\n * `@camunda-cloud/shared-backend` package instead\n * (see `packages/shared-backend/src/permissions/profile.permissions.ts`).\n *\n * This file only exposes the non-sensitive parts of each profile that are\n * safe to ship publicly: the roles to assign and the handbook links.\n */\nexport interface OnboardConfig {\n [unit: string]: {\n rolesToAssign: Roles[]\n email: {\n handbookPages: string[]\n }\n }\n}\n\nexport const PROFILES: OnboardConfig = {\n readOnly: {\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 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 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 tam: {\n rolesToAssign: [\n 'support:agent',\n 'accounts:trialExtender',\n 'accounts:limitExtender',\n 'accounts:enterpriseAdmin',\n 'accounts:read',\n 'console:admin:readonly',\n ],\n email: {\n handbookPages: [\n 'https://confluence.camunda.com/display/HAN/Access+to+a+customers+Organization+on+C8+SaaS',\n ],\n },\n },\n supportAgent: {\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 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 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 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 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 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 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 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 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 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 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 rolesToAssign: ['accounts:pdfWatermarkReader'],\n email: {\n handbookPages: [],\n },\n },\n pdfWatermarkWrite: {\n rolesToAssign: ['accounts:pdfWatermarkWriter'],\n email: {\n handbookPages: [],\n },\n },\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
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';
|
|
@@ -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.
|
|
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": "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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\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
|
}
|
|
@@ -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
|
|
5
|
-
"mappings": "AAMA;AAAA,EACE;AAAA,OAEK;AAEA,SAAS,eAAe,QAGnB;AACV,
|
|
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
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/utils/orgs/OrgHelper.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 { OrganizationRole } from '../../enums/OrganizationRole.enum.js'\nimport {\n type OrganizationPermissions,\n PermissionsForOrganizationRole,\n} from '../../types/OrganizationPermission.type.js'\n\nexport function getUserPermissionsForOrg(\n orgs: any,\n orgId: string,\n): OrganizationPermissions | undefined {\n const relatedOrg = orgs
|
|
5
|
-
"mappings": "AAOA;AAAA,EAEE;AAAA,OACK;AAEA,SAAS,yBACd,MACA,OACqC;AACrC,QAAM,aAAa,
|
|
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 { OrganizationRole } from '../../enums/OrganizationRole.enum.js'\nimport {\n type OrganizationPermissions,\n PermissionsForOrganizationRole,\n} from '../../types/OrganizationPermission.type.js'\n\nexport function getUserPermissionsForOrg(\n orgs: any,\n orgId: string,\n): OrganizationPermissions | undefined {\n const relatedOrg = orgs\n ? orgs.find((org: any) => org.id === orgId)\n : undefined\n return relatedOrg ? getPermissionsByRoles(relatedOrg.roles) : undefined\n}\n\nexport function getPermissionsByRoles(\n roles: OrganizationRole[],\n): OrganizationPermissions | undefined {\n const orgPermissions: OrganizationPermissions = {\n org: {\n clusters: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n clients: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n settings: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n usage: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n billing: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n users: {\n general: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n owner: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n admin: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n member: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n },\n activity: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n diagrams: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n forms: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n instances: {\n create: false,\n read: false,\n update: false,\n delete: false,\n }, // create === start new instances\n workflows: {\n create: false,\n read: false,\n update: false,\n delete: false,\n }, // create === deploy diagrams\n webide: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n earlyAccessFeatures: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n },\n cluster: {\n clients: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n alerts: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n operate: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n tasklist: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n optimize: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n identity: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n ipWhitelist: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n secureConnectivity: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n encryption: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n connectorSecrets: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n connectors: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n settings: {\n resourceBasedAuthorizations: {\n activate: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n configure: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n },\n identityBasedAuthorizations: {\n activate: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n },\n multiTenancy: {\n activate: {\n create: false,\n read: false,\n update: false,\n delete: false,\n },\n },\n },\n },\n }\n const permissionsForRoles: any[] = roles.map((role) =>\n PermissionsForOrganizationRole.get(role),\n )\n for (const orgRolePermissions of permissionsForRoles) {\n mergePermissions(orgPermissions, orgRolePermissions)\n }\n return orgPermissions\n}\n\n// recursive check all permissions\nfunction mergePermissions(target: any, permission: any): any {\n for (const key of Object.keys(target)) {\n if (typeof target[key] === 'boolean') {\n target[key] = target[key] || permission[key]\n } else {\n mergePermissions(target[key], permission[key])\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utils/user.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\nexport function guessName(user: {\n name?: string\n given_name?: string\n family_name?: string\n}) {\n const { name, given_name, family_name } = user\n const firstname = given_name || ''\n const lastname = family_name || ''\n\n let calculatedName = { firstname, lastname }\n\n if (firstname && !lastname) {\n calculatedName = extractNameFromArg(firstname, lastname, firstname)\n } else if (!firstname && lastname) {\n calculatedName = extractNameFromArg(firstname, lastname, lastname)\n } else if (!firstname && !lastname && name) {\n calculatedName = extractNameFromArg(firstname, lastname, name)\n }\n return calculatedName\n}\nfunction extractNameFromArg(firstnamePassthrough
|
|
5
|
-
"mappings": "AAMO,SAAS,UAAU,MAIvB;AACD,QAAM,EAAE,MAAM,YAAY,YAAY,IAAI;AAC1C,QAAM,YAAY,cAAc;AAChC,QAAM,WAAW,eAAe;AAEhC,MAAI,iBAAiB,EAAE,WAAW,SAAS;AAE3C,MAAI,aAAa,CAAC,UAAU;AAC1B,qBAAiB,mBAAmB,WAAW,UAAU,SAAS;AAAA,EACpE,WAAW,CAAC,aAAa,UAAU;AACjC,qBAAiB,mBAAmB,WAAW,UAAU,QAAQ;AAAA,EACnE,WAAW,CAAC,aAAa,CAAC,YAAY,MAAM;AAC1C,qBAAiB,mBAAmB,WAAW,UAAU,IAAI;AAAA,EAC/D;AACA,SAAO;AACT;AACA,SAAS,
|
|
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 function guessName(user: {\n name?: string\n given_name?: string\n family_name?: string\n}) {\n const { name, given_name, family_name } = user\n const firstname = given_name || ''\n const lastname = family_name || ''\n\n let calculatedName = { firstname, lastname }\n\n if (firstname && !lastname) {\n calculatedName = extractNameFromArg(firstname, lastname, firstname)\n } else if (!firstname && lastname) {\n calculatedName = extractNameFromArg(firstname, lastname, lastname)\n } else if (!firstname && !lastname && name) {\n calculatedName = extractNameFromArg(firstname, lastname, name)\n }\n return calculatedName\n}\nfunction extractNameFromArg(\n firstnamePassthrough: string,\n lastnamePassthrough: string,\n arg: string,\n) {\n let firstname = firstnamePassthrough\n let lastname = lastnamePassthrough\n\n const nameParts = arg.split(' ')\n if (nameParts.length > 1) {\n firstname = nameParts.slice(0, -1).join(' ')\n lastname = nameParts.slice(-1).join(' ')\n }\n return { firstname, lastname }\n}\n\nexport const isCamundaUserId = (userId?: string): boolean => {\n if (!userId) {\n return false\n }\n\n const CAMUNDA_DOMAIN = 'camunda.com'\n\n // Handle Okta SAML-style user IDs: \"samlp|Okta|<email>\"\n const oktaPrefix = 'samlp|Okta|'\n if (userId.startsWith(oktaPrefix)) {\n const email = userId.substring(oktaPrefix.length)\n const atIndex = email.lastIndexOf('@')\n if (atIndex === -1) {\n return false\n }\n const domain = email.substring(atIndex + 1)\n return domain === CAMUNDA_DOMAIN\n }\n return false\n}\nexport const extractCamundaUserEmail = (userId: string): string => {\n if (!isCamundaUserId(userId)) {\n throw new Error('Not a Camunda userId')\n }\n return userId.replace('samlp|Okta|', '')\n}\n"],
|
|
5
|
+
"mappings": "AAMO,SAAS,UAAU,MAIvB;AACD,QAAM,EAAE,MAAM,YAAY,YAAY,IAAI;AAC1C,QAAM,YAAY,cAAc;AAChC,QAAM,WAAW,eAAe;AAEhC,MAAI,iBAAiB,EAAE,WAAW,SAAS;AAE3C,MAAI,aAAa,CAAC,UAAU;AAC1B,qBAAiB,mBAAmB,WAAW,UAAU,SAAS;AAAA,EACpE,WAAW,CAAC,aAAa,UAAU;AACjC,qBAAiB,mBAAmB,WAAW,UAAU,QAAQ;AAAA,EACnE,WAAW,CAAC,aAAa,CAAC,YAAY,MAAM;AAC1C,qBAAiB,mBAAmB,WAAW,UAAU,IAAI;AAAA,EAC/D;AACA,SAAO;AACT;AACA,SAAS,mBACP,sBACA,qBACA,KACA;AACA,MAAI,YAAY;AAChB,MAAI,WAAW;AAEf,QAAM,YAAY,IAAI,MAAM,GAAG;AAC/B,MAAI,UAAU,SAAS,GAAG;AACxB,gBAAY,UAAU,MAAM,GAAG,EAAE,EAAE,KAAK,GAAG;AAC3C,eAAW,UAAU,MAAM,EAAE,EAAE,KAAK,GAAG;AAAA,EACzC;AACA,SAAO,EAAE,WAAW,SAAS;AAC/B;AAEO,MAAM,kBAAkB,CAAC,WAA6B;AAC3D,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AAEA,QAAM,iBAAiB;AAGvB,QAAM,aAAa;AACnB,MAAI,OAAO,WAAW,UAAU,GAAG;AACjC,UAAM,QAAQ,OAAO,UAAU,WAAW,MAAM;AAChD,UAAM,UAAU,MAAM,YAAY,GAAG;AACrC,QAAI,YAAY,IAAI;AAClB,aAAO;AAAA,IACT;AACA,UAAM,SAAS,MAAM,UAAU,UAAU,CAAC;AAC1C,WAAO,WAAW;AAAA,EACpB;AACA,SAAO;AACT;AACO,MAAM,0BAA0B,CAAC,WAA2B;AACjE,MAAI,CAAC,gBAAgB,MAAM,GAAG;AAC5B,UAAM,IAAI,MAAM,sBAAsB;AAAA,EACxC;AACA,SAAO,OAAO,QAAQ,eAAe,EAAE;AACzC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -34,6 +34,8 @@ const checkVersion = (params) => {
|
|
|
34
34
|
const versionSplit = params.possiblyVersionOrDockerPath?.split(":") ?? [];
|
|
35
35
|
if (versionSplit.length > 1) {
|
|
36
36
|
version = versionSplit[1];
|
|
37
|
+
} else {
|
|
38
|
+
version = params.possiblyVersionOrDockerPath ?? "";
|
|
37
39
|
}
|
|
38
40
|
}
|
|
39
41
|
if (params.trueForSnapshot && version.includes("SNAPSHOT")) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utils/versionCheck.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 * as semver from 'semver'\n\n// eslint-disable-next-line no-shadow\nexport enum VersionCheckOperator {\n LessThan,\n LessThanOrEqual,\n GreaterThan,\n GreaterThanOrEqual,\n SameMajor,\n SameMinor,\n}\n\nexport const checkVersion = (params: {\n possiblyVersionOrDockerPath?: string\n trueForSnapshot: boolean | 'compare'\n operator: VersionCheckOperator\n versionToCompareTo: string\n trueOnInvalidVersion?: boolean\n}) => {\n // quick exit: if the versionToCompareTo is\n // - `SNAPSHOT` there is not a lot we can compare here to, so we return false directly\n // - ends with `-SNAPSHOT` we ignore the `-SNAPSHOT` part for the comparison, guess a good matching semver compliant version and try to move on with the generated one in the code\n if (params.versionToCompareTo === 'SNAPSHOT') {\n return false\n }\n let versionToCompareTo = params.versionToCompareTo\n if (versionToCompareTo.endsWith('-SNAPSHOT')) {\n versionToCompareTo = versionToCompareTo.replace('-SNAPSHOT', '')\n const parts = versionToCompareTo.split('.')\n if (parts.length === 1) {\n versionToCompareTo = `${parts[0]}.0.0`\n } else if (parts.length === 2) {\n versionToCompareTo = `${parts[0]}.${parts[1]}.0`\n } else if (parts.length === 3) {\n versionToCompareTo = `${parts[0]}.${parts[1]}.${parts[2]}`\n }\n }\n if (!semver.valid(versionToCompareTo)) {\n throw new Error('Invalid version to compare to')\n }\n let version: string = ''\n if (semver.valid(params.possiblyVersionOrDockerPath ?? '')) {\n version = params.possiblyVersionOrDockerPath ?? ''\n } else {\n const versionSplit = params.possiblyVersionOrDockerPath?.split(':') ?? []\n if (versionSplit.length > 1) {\n version = versionSplit[1]\n }\n }\n if (params.trueForSnapshot && version.includes('SNAPSHOT')) {\n if (version === 'SNAPSHOT') {\n // bare SNAPSHOT: `true` short-circuits here; `'compare'` falls through to invalid-version handling\n if (params.trueForSnapshot !== 'compare') {\n return true\n }\n } else {\n version = version.replace('-SNAPSHOT', '')\n if (version.split('.').length === 1) {\n version = `${version}.99.99`\n }\n if (version.split('.').length === 2) {\n version = `${version}.99`\n }\n if (version.split('.').length === 3) {\n version = `${version.split('.')[0]}.${version.split('.')[1]}.99`\n }\n }\n }\n\n let parsedVersionToCompareTo: string = ''\n if (semver.valid(versionToCompareTo ?? '')) {\n parsedVersionToCompareTo = versionToCompareTo ?? ''\n } else {\n const versionSplit = versionToCompareTo?.split(':') ?? []\n if (versionSplit.length > 1) {\n parsedVersionToCompareTo = versionSplit[1]\n }\n }\n if (params.trueForSnapshot && parsedVersionToCompareTo === 'SNAPSHOT') {\n return true\n }\n\n if (!semver.valid(version)) {\n return !!params.trueOnInvalidVersion\n }\n\n switch (params.operator) {\n case VersionCheckOperator.LessThan:\n return semver.lt(version, parsedVersionToCompareTo)\n case VersionCheckOperator.LessThanOrEqual:\n return semver.lte(version, parsedVersionToCompareTo)\n case VersionCheckOperator.GreaterThan:\n return semver.gt(version, parsedVersionToCompareTo)\n case VersionCheckOperator.GreaterThanOrEqual:\n return semver.gte(version, parsedVersionToCompareTo)\n case VersionCheckOperator.SameMajor:\n return semver.major(version) === semver.major(parsedVersionToCompareTo)\n case VersionCheckOperator.SameMinor:\n return (\n semver.major(version) === semver.major(parsedVersionToCompareTo) &&\n semver.minor(version) === semver.minor(parsedVersionToCompareTo)\n )\n default:\n return false\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 * as semver from 'semver'\n\n// eslint-disable-next-line no-shadow\nexport enum VersionCheckOperator {\n LessThan,\n LessThanOrEqual,\n GreaterThan,\n GreaterThanOrEqual,\n SameMajor,\n SameMinor,\n}\n\nexport const checkVersion = (params: {\n possiblyVersionOrDockerPath?: string\n trueForSnapshot: boolean | 'compare'\n operator: VersionCheckOperator\n versionToCompareTo: string\n trueOnInvalidVersion?: boolean\n}) => {\n // quick exit: if the versionToCompareTo is\n // - `SNAPSHOT` there is not a lot we can compare here to, so we return false directly\n // - ends with `-SNAPSHOT` we ignore the `-SNAPSHOT` part for the comparison, guess a good matching semver compliant version and try to move on with the generated one in the code\n if (params.versionToCompareTo === 'SNAPSHOT') {\n return false\n }\n let versionToCompareTo = params.versionToCompareTo\n if (versionToCompareTo.endsWith('-SNAPSHOT')) {\n versionToCompareTo = versionToCompareTo.replace('-SNAPSHOT', '')\n const parts = versionToCompareTo.split('.')\n if (parts.length === 1) {\n versionToCompareTo = `${parts[0]}.0.0`\n } else if (parts.length === 2) {\n versionToCompareTo = `${parts[0]}.${parts[1]}.0`\n } else if (parts.length === 3) {\n versionToCompareTo = `${parts[0]}.${parts[1]}.${parts[2]}`\n }\n }\n if (!semver.valid(versionToCompareTo)) {\n throw new Error('Invalid version to compare to')\n }\n let version: string = ''\n if (semver.valid(params.possiblyVersionOrDockerPath ?? '')) {\n version = params.possiblyVersionOrDockerPath ?? ''\n } else {\n const versionSplit = params.possiblyVersionOrDockerPath?.split(':') ?? []\n if (versionSplit.length > 1) {\n version = versionSplit[1]\n } else {\n // bare version string not valid semver (e.g. '8.10-SNAPSHOT') \u2014 use as-is so SNAPSHOT expansion can handle it\n version = params.possiblyVersionOrDockerPath ?? ''\n }\n }\n if (params.trueForSnapshot && version.includes('SNAPSHOT')) {\n if (version === 'SNAPSHOT') {\n // bare SNAPSHOT: `true` short-circuits here; `'compare'` falls through to invalid-version handling\n if (params.trueForSnapshot !== 'compare') {\n return true\n }\n } else {\n version = version.replace('-SNAPSHOT', '')\n if (version.split('.').length === 1) {\n version = `${version}.99.99`\n }\n if (version.split('.').length === 2) {\n version = `${version}.99`\n }\n if (version.split('.').length === 3) {\n version = `${version.split('.')[0]}.${version.split('.')[1]}.99`\n }\n }\n }\n\n let parsedVersionToCompareTo: string = ''\n if (semver.valid(versionToCompareTo ?? '')) {\n parsedVersionToCompareTo = versionToCompareTo ?? ''\n } else {\n const versionSplit = versionToCompareTo?.split(':') ?? []\n if (versionSplit.length > 1) {\n parsedVersionToCompareTo = versionSplit[1]\n }\n }\n if (params.trueForSnapshot && parsedVersionToCompareTo === 'SNAPSHOT') {\n return true\n }\n\n if (!semver.valid(version)) {\n return !!params.trueOnInvalidVersion\n }\n\n switch (params.operator) {\n case VersionCheckOperator.LessThan:\n return semver.lt(version, parsedVersionToCompareTo)\n case VersionCheckOperator.LessThanOrEqual:\n return semver.lte(version, parsedVersionToCompareTo)\n case VersionCheckOperator.GreaterThan:\n return semver.gt(version, parsedVersionToCompareTo)\n case VersionCheckOperator.GreaterThanOrEqual:\n return semver.gte(version, parsedVersionToCompareTo)\n case VersionCheckOperator.SameMajor:\n return semver.major(version) === semver.major(parsedVersionToCompareTo)\n case VersionCheckOperator.SameMinor:\n return (\n semver.major(version) === semver.major(parsedVersionToCompareTo) &&\n semver.minor(version) === semver.minor(parsedVersionToCompareTo)\n )\n default:\n return false\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["VersionCheckOperator"]
|
|
7
7
|
}
|
package/package.json
CHANGED