@camunda/ccma-shared-types 0.0.1

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 (284) hide show
  1. package/dist/_tests/constants/pre89EnvVarMapping.const.spec.d.ts +1 -0
  2. package/dist/_tests/types/SuspendStrategy.type.spec.d.ts +1 -0
  3. package/dist/_tests/utils/string-validation.utils.spec.d.ts +1 -0
  4. package/dist/_tests/utils/versionCheck.utils.spec.d.ts +1 -0
  5. package/dist/config/camundi-permission-rules.d.ts +3 -0
  6. package/dist/config/camundi-permission-rules.js +44 -0
  7. package/dist/config/camundi-permission-rules.js.map +7 -0
  8. package/dist/config/camundi-permission-rules.types.d.ts +52 -0
  9. package/dist/config/camundi-permission-rules.types.js +9 -0
  10. package/dist/config/camundi-permission-rules.types.js.map +7 -0
  11. package/dist/constants/duration.const.d.ts +5 -0
  12. package/dist/constants/duration.const.js +13 -0
  13. package/dist/constants/duration.const.js.map +7 -0
  14. package/dist/constants/misc.const.d.ts +73 -0
  15. package/dist/constants/misc.const.js +115 -0
  16. package/dist/constants/misc.const.js.map +7 -0
  17. package/dist/constants/pre89EnvVarMapping.const.d.ts +44 -0
  18. package/dist/constants/pre89EnvVarMapping.const.js +72 -0
  19. package/dist/constants/pre89EnvVarMapping.const.js.map +7 -0
  20. package/dist/constants/privateLinkRegions.const.d.ts +1 -0
  21. package/dist/constants/privateLinkRegions.const.js +40 -0
  22. package/dist/constants/privateLinkRegions.const.js.map +7 -0
  23. package/dist/dtos/AlertSubscription.dto.d.ts +37 -0
  24. package/dist/dtos/AlertSubscription.dto.js +22 -0
  25. package/dist/dtos/AlertSubscription.dto.js.map +7 -0
  26. package/dist/dtos/Audit.dto.d.ts +15 -0
  27. package/dist/dtos/Audit.dto.js +1 -0
  28. package/dist/dtos/Audit.dto.js.map +7 -0
  29. package/dist/dtos/Auth0ResourceServer.dto.d.ts +9 -0
  30. package/dist/dtos/Auth0ResourceServer.dto.js +1 -0
  31. package/dist/dtos/Auth0ResourceServer.dto.js.map +7 -0
  32. package/dist/dtos/Backup.dto.d.ts +12 -0
  33. package/dist/dtos/Backup.dto.js +1 -0
  34. package/dist/dtos/Backup.dto.js.map +7 -0
  35. package/dist/dtos/BackupSchedule.dto.d.ts +4 -0
  36. package/dist/dtos/BackupSchedule.dto.js +1 -0
  37. package/dist/dtos/BackupSchedule.dto.js.map +7 -0
  38. package/dist/dtos/ByomClient.dto.d.ts +17 -0
  39. package/dist/dtos/ByomClient.dto.js +1 -0
  40. package/dist/dtos/ByomClient.dto.js.map +7 -0
  41. package/dist/dtos/ClusterIpWhitelist.dto.d.ts +4 -0
  42. package/dist/dtos/ClusterIpWhitelist.dto.js +1 -0
  43. package/dist/dtos/ClusterIpWhitelist.dto.js.map +7 -0
  44. package/dist/dtos/ClusterPlan.dto.d.ts +10 -0
  45. package/dist/dtos/ClusterPlan.dto.js +1 -0
  46. package/dist/dtos/ClusterPlan.dto.js.map +7 -0
  47. package/dist/dtos/ClusterPlanType.dto.d.ts +15 -0
  48. package/dist/dtos/ClusterPlanType.dto.js +1 -0
  49. package/dist/dtos/ClusterPlanType.dto.js.map +7 -0
  50. package/dist/dtos/CommonCluster.dto.d.ts +66 -0
  51. package/dist/dtos/CommonCluster.dto.js +1 -0
  52. package/dist/dtos/CommonCluster.dto.js.map +7 -0
  53. package/dist/dtos/ConsoleCluster.dto.d.ts +16 -0
  54. package/dist/dtos/ConsoleCluster.dto.js +1 -0
  55. package/dist/dtos/ConsoleCluster.dto.js.map +7 -0
  56. package/dist/dtos/EarlyAccessFeature.dto.d.ts +18 -0
  57. package/dist/dtos/EarlyAccessFeature.dto.js +1 -0
  58. package/dist/dtos/EarlyAccessFeature.dto.js.map +7 -0
  59. package/dist/dtos/Generations.dto.d.ts +27 -0
  60. package/dist/dtos/Generations.dto.js +21 -0
  61. package/dist/dtos/Generations.dto.js.map +7 -0
  62. package/dist/dtos/Hdp.dto.d.ts +25 -0
  63. package/dist/dtos/Hdp.dto.js +1 -0
  64. package/dist/dtos/Hdp.dto.js.map +7 -0
  65. package/dist/dtos/K8sContext.dto.d.ts +45 -0
  66. package/dist/dtos/K8sContext.dto.js +1 -0
  67. package/dist/dtos/K8sContext.dto.js.map +7 -0
  68. package/dist/dtos/Meta.dto.d.ts +3 -0
  69. package/dist/dtos/Meta.dto.js +1 -0
  70. package/dist/dtos/Meta.dto.js.map +7 -0
  71. package/dist/dtos/Organization.dto.d.ts +51 -0
  72. package/dist/dtos/Organization.dto.js +1 -0
  73. package/dist/dtos/Organization.dto.js.map +7 -0
  74. package/dist/dtos/OrganizationMember.dto.d.ts +11 -0
  75. package/dist/dtos/OrganizationMember.dto.js +1 -0
  76. package/dist/dtos/OrganizationMember.dto.js.map +7 -0
  77. package/dist/dtos/OrganizationToSalesPlan.dto.d.ts +19 -0
  78. package/dist/dtos/OrganizationToSalesPlan.dto.js +1 -0
  79. package/dist/dtos/OrganizationToSalesPlan.dto.js.map +7 -0
  80. package/dist/dtos/SalesPlan.dto.d.ts +77 -0
  81. package/dist/dtos/SalesPlan.dto.js +119 -0
  82. package/dist/dtos/SalesPlan.dto.js.map +7 -0
  83. package/dist/dtos/SecureConnectivity.dto.d.ts +42 -0
  84. package/dist/dtos/SecureConnectivity.dto.js +1 -0
  85. package/dist/dtos/SecureConnectivity.dto.js.map +7 -0
  86. package/dist/dtos/Signup.dto.d.ts +38 -0
  87. package/dist/dtos/Signup.dto.js +1 -0
  88. package/dist/dtos/Signup.dto.js.map +7 -0
  89. package/dist/dtos/UsageAlert.dto.d.ts +25 -0
  90. package/dist/dtos/UsageAlert.dto.js +20 -0
  91. package/dist/dtos/UsageAlert.dto.js.map +7 -0
  92. package/dist/dtos/UserMetaData.dto.d.ts +12 -0
  93. package/dist/dtos/UserMetaData.dto.js +1 -0
  94. package/dist/dtos/UserMetaData.dto.js.map +7 -0
  95. package/dist/enums/AlertSubscription.enum.d.ts +9 -0
  96. package/dist/enums/AlertSubscription.enum.js +16 -0
  97. package/dist/enums/AlertSubscription.enum.js.map +7 -0
  98. package/dist/enums/AuditEntity.enum.d.ts +48 -0
  99. package/dist/enums/AuditEntity.enum.js +55 -0
  100. package/dist/enums/AuditEntity.enum.js.map +7 -0
  101. package/dist/enums/AuditService.enum.d.ts +4 -0
  102. package/dist/enums/AuditService.enum.js +9 -0
  103. package/dist/enums/AuditService.enum.js.map +7 -0
  104. package/dist/enums/BackupStatus.enum.d.ts +6 -0
  105. package/dist/enums/BackupStatus.enum.js +11 -0
  106. package/dist/enums/BackupStatus.enum.js.map +7 -0
  107. package/dist/enums/ClusterBulkOperation.enum.d.ts +14 -0
  108. package/dist/enums/ClusterBulkOperation.enum.js +21 -0
  109. package/dist/enums/ClusterBulkOperation.enum.js.map +7 -0
  110. package/dist/enums/ClusterClientPermissions.enum.d.ts +7 -0
  111. package/dist/enums/ClusterClientPermissions.enum.js +12 -0
  112. package/dist/enums/ClusterClientPermissions.enum.js.map +7 -0
  113. package/dist/enums/ClusterEncryptionKey.enum.d.ts +6 -0
  114. package/dist/enums/ClusterEncryptionKey.enum.js +11 -0
  115. package/dist/enums/ClusterEncryptionKey.enum.js.map +7 -0
  116. package/dist/enums/ClusterStatus.enum.d.ts +8 -0
  117. package/dist/enums/ClusterStatus.enum.js +13 -0
  118. package/dist/enums/ClusterStatus.enum.js.map +7 -0
  119. package/dist/enums/ConsoleApiClientPermission.enum.d.ts +35 -0
  120. package/dist/enums/ConsoleApiClientPermission.enum.js +40 -0
  121. package/dist/enums/ConsoleApiClientPermission.enum.js.map +7 -0
  122. package/dist/enums/ErrorType.enum.d.ts +12 -0
  123. package/dist/enums/ErrorType.enum.js +17 -0
  124. package/dist/enums/ErrorType.enum.js.map +7 -0
  125. package/dist/enums/OrganizationRole.enum.d.ts +30 -0
  126. package/dist/enums/OrganizationRole.enum.js +35 -0
  127. package/dist/enums/OrganizationRole.enum.js.map +7 -0
  128. package/dist/enums/Sse.enum.d.ts +19 -0
  129. package/dist/enums/Sse.enum.js +26 -0
  130. package/dist/enums/Sse.enum.js.map +7 -0
  131. package/dist/index.d.ts +113 -0
  132. package/dist/index.js +324 -0
  133. package/dist/index.js.map +7 -0
  134. package/dist/permissions/accounts.permissions.d.ts +171 -0
  135. package/dist/permissions/accounts.permissions.js +562 -0
  136. package/dist/permissions/accounts.permissions.js.map +7 -0
  137. package/dist/permissions/alert-distributor.permissions.d.ts +26 -0
  138. package/dist/permissions/alert-distributor.permissions.js +68 -0
  139. package/dist/permissions/alert-distributor.permissions.js.map +7 -0
  140. package/dist/permissions/auditlogger.permissions.d.ts +16 -0
  141. package/dist/permissions/auditlogger.permissions.js +42 -0
  142. package/dist/permissions/auditlogger.permissions.js.map +7 -0
  143. package/dist/permissions/combo.d.ts +4 -0
  144. package/dist/permissions/combo.js +299 -0
  145. package/dist/permissions/combo.js.map +7 -0
  146. package/dist/permissions/console.permissions.d.ts +114 -0
  147. package/dist/permissions/console.permissions.js +369 -0
  148. package/dist/permissions/console.permissions.js.map +7 -0
  149. package/dist/permissions/notification.permissions.d.ts +36 -0
  150. package/dist/permissions/notification.permissions.js +101 -0
  151. package/dist/permissions/notification.permissions.js.map +7 -0
  152. package/dist/permissions/profile.permissions.d.ts +18 -0
  153. package/dist/permissions/profile.permissions.js +272 -0
  154. package/dist/permissions/profile.permissions.js.map +7 -0
  155. package/dist/permissions/roleExpansion.utils.d.ts +10 -0
  156. package/dist/permissions/roleExpansion.utils.js +27 -0
  157. package/dist/permissions/roleExpansion.utils.js.map +7 -0
  158. package/dist/types/AuditData.type.d.ts +20 -0
  159. package/dist/types/AuditData.type.js +1 -0
  160. package/dist/types/AuditData.type.js.map +7 -0
  161. package/dist/types/Bot.types.d.ts +44 -0
  162. package/dist/types/Bot.types.js +1 -0
  163. package/dist/types/Bot.types.js.map +7 -0
  164. package/dist/types/BulkOperation.type.d.ts +57 -0
  165. package/dist/types/BulkOperation.type.js +19 -0
  166. package/dist/types/BulkOperation.type.js.map +7 -0
  167. package/dist/types/C8ClusterComponentVersions.type.d.ts +24 -0
  168. package/dist/types/C8ClusterComponentVersions.type.js +26 -0
  169. package/dist/types/C8ClusterComponentVersions.type.js.map +7 -0
  170. package/dist/types/CamundaClusterLabels.type.d.ts +13 -0
  171. package/dist/types/CamundaClusterLabels.type.js +12 -0
  172. package/dist/types/CamundaClusterLabels.type.js.map +7 -0
  173. package/dist/types/Chargebee.type.d.ts +19 -0
  174. package/dist/types/Chargebee.type.js +15 -0
  175. package/dist/types/Chargebee.type.js.map +7 -0
  176. package/dist/types/ClusterBulkOperation.type.d.ts +67 -0
  177. package/dist/types/ClusterBulkOperation.type.js +1 -0
  178. package/dist/types/ClusterBulkOperation.type.js.map +7 -0
  179. package/dist/types/ClusterModification.type.d.ts +26 -0
  180. package/dist/types/ClusterModification.type.js +1 -0
  181. package/dist/types/ClusterModification.type.js.map +7 -0
  182. package/dist/types/ClusterPlanModification.type.d.ts +22 -0
  183. package/dist/types/ClusterPlanModification.type.js +1 -0
  184. package/dist/types/ClusterPlanModification.type.js.map +7 -0
  185. package/dist/types/ClusterPlanTypeAvailabilityClass.type.d.ts +7 -0
  186. package/dist/types/ClusterPlanTypeAvailabilityClass.type.js +21 -0
  187. package/dist/types/ClusterPlanTypeAvailabilityClass.type.js.map +7 -0
  188. package/dist/types/ClusterPlanTypeCategory.type.d.ts +13 -0
  189. package/dist/types/ClusterPlanTypeCategory.type.js +40 -0
  190. package/dist/types/ClusterPlanTypeCategory.type.js.map +7 -0
  191. package/dist/types/ClusterPlanTypesToConfig.type.d.ts +7 -0
  192. package/dist/types/ClusterPlanTypesToConfig.type.js +1 -0
  193. package/dist/types/ClusterPlanTypesToConfig.type.js.map +7 -0
  194. package/dist/types/ClusterPlanTypesToReserved.type.d.ts +3 -0
  195. package/dist/types/ClusterPlanTypesToReserved.type.js +1 -0
  196. package/dist/types/ClusterPlanTypesToReserved.type.js.map +7 -0
  197. package/dist/types/ClusterUsageMetrics.type.d.ts +49 -0
  198. package/dist/types/ClusterUsageMetrics.type.js +1 -0
  199. package/dist/types/ClusterUsageMetrics.type.js.map +7 -0
  200. package/dist/types/ConsoleSelfManaged.type.d.ts +200 -0
  201. package/dist/types/ConsoleSelfManaged.type.js +93 -0
  202. package/dist/types/ConsoleSelfManaged.type.js.map +7 -0
  203. package/dist/types/ConsoleSelfManagedAdminApi.type.d.ts +111 -0
  204. package/dist/types/ConsoleSelfManagedAdminApi.type.js +1 -0
  205. package/dist/types/ConsoleSelfManagedAdminApi.type.js.map +7 -0
  206. package/dist/types/Dashboard.types.d.ts +23 -0
  207. package/dist/types/Dashboard.types.js +1 -0
  208. package/dist/types/Dashboard.types.js.map +7 -0
  209. package/dist/types/EnterpriseIncludingValueMetrics.type.d.ts +5 -0
  210. package/dist/types/EnterpriseIncludingValueMetrics.type.js +1 -0
  211. package/dist/types/EnterpriseIncludingValueMetrics.type.js.map +7 -0
  212. package/dist/types/OrganizationPermission.type.d.ts +64 -0
  213. package/dist/types/OrganizationPermission.type.js +784 -0
  214. package/dist/types/OrganizationPermission.type.js.map +7 -0
  215. package/dist/types/Roles.d.ts +5 -0
  216. package/dist/types/Roles.js +9 -0
  217. package/dist/types/Roles.js.map +7 -0
  218. package/dist/types/SalesPlanType.type.d.ts +36 -0
  219. package/dist/types/SalesPlanType.type.js +74 -0
  220. package/dist/types/SalesPlanType.type.js.map +7 -0
  221. package/dist/types/SpamDetection.type.d.ts +2 -0
  222. package/dist/types/SpamDetection.type.js +8 -0
  223. package/dist/types/SpamDetection.type.js.map +7 -0
  224. package/dist/types/SseEvent.type.d.ts +96 -0
  225. package/dist/types/SseEvent.type.js +1 -0
  226. package/dist/types/SseEvent.type.js.map +7 -0
  227. package/dist/types/Stats.types.d.ts +86 -0
  228. package/dist/types/Stats.types.js +1 -0
  229. package/dist/types/Stats.types.js.map +7 -0
  230. package/dist/types/Survey.type.d.ts +38 -0
  231. package/dist/types/Survey.type.js +10 -0
  232. package/dist/types/Survey.type.js.map +7 -0
  233. package/dist/types/SuspendStrategy.type.d.ts +17 -0
  234. package/dist/types/SuspendStrategy.type.js +11 -0
  235. package/dist/types/SuspendStrategy.type.js.map +7 -0
  236. package/dist/types/Telemetry.type.d.ts +89 -0
  237. package/dist/types/Telemetry.type.js +218 -0
  238. package/dist/types/Telemetry.type.js.map +7 -0
  239. package/dist/types/User.type.d.ts +79 -0
  240. package/dist/types/User.type.js +12 -0
  241. package/dist/types/User.type.js.map +7 -0
  242. package/dist/types/ValueMetrics.type.d.ts +26 -0
  243. package/dist/types/ValueMetrics.type.js +1 -0
  244. package/dist/types/ValueMetrics.type.js.map +7 -0
  245. package/dist/types/hdp.types.d.ts +241 -0
  246. package/dist/types/hdp.types.js +16 -0
  247. package/dist/types/hdp.types.js.map +7 -0
  248. package/dist/types/notification.type.d.ts +71 -0
  249. package/dist/types/notification.type.js +37 -0
  250. package/dist/types/notification.type.js.map +7 -0
  251. package/dist/utils/PasswordPolicy.d.ts +13 -0
  252. package/dist/utils/PasswordPolicy.js +55 -0
  253. package/dist/utils/PasswordPolicy.js.map +7 -0
  254. package/dist/utils/camundiPermissionAugmenter.utils.d.ts +25 -0
  255. package/dist/utils/camundiPermissionAugmenter.utils.js +70 -0
  256. package/dist/utils/camundiPermissionAugmenter.utils.js.map +7 -0
  257. package/dist/utils/console-sm.utils.d.ts +6 -0
  258. package/dist/utils/console-sm.utils.js +30 -0
  259. package/dist/utils/console-sm.utils.js.map +7 -0
  260. package/dist/utils/enterprise-connection.utils.d.ts +7 -0
  261. package/dist/utils/enterprise-connection.utils.js +34 -0
  262. package/dist/utils/enterprise-connection.utils.js.map +7 -0
  263. package/dist/utils/labelValidator.utils.d.ts +5 -0
  264. package/dist/utils/labelValidator.utils.js +17 -0
  265. package/dist/utils/labelValidator.utils.js.map +7 -0
  266. package/dist/utils/objectMerge.utils.d.ts +20 -0
  267. package/dist/utils/objectMerge.utils.js +90 -0
  268. package/dist/utils/objectMerge.utils.js.map +7 -0
  269. package/dist/utils/orgs/OrgHelper.d.ts +4 -0
  270. package/dist/utils/orgs/OrgHelper.js +234 -0
  271. package/dist/utils/orgs/OrgHelper.js.map +7 -0
  272. package/dist/utils/settledPromises.util.d.ts +13 -0
  273. package/dist/utils/settledPromises.util.js +26 -0
  274. package/dist/utils/settledPromises.util.js.map +7 -0
  275. package/dist/utils/string-validation.utils.d.ts +44 -0
  276. package/dist/utils/string-validation.utils.js +94 -0
  277. package/dist/utils/string-validation.utils.js.map +7 -0
  278. package/dist/utils/user.utils.d.ts +10 -0
  279. package/dist/utils/user.utils.js +53 -0
  280. package/dist/utils/user.utils.js.map +7 -0
  281. package/dist/utils/versionCheck.utils.d.ts +15 -0
  282. package/dist/utils/versionCheck.utils.js +75 -0
  283. package/dist/utils/versionCheck.utils.js.map +7 -0
  284. package/package.json +39 -0
@@ -0,0 +1,241 @@
1
+ import type { Limits } from '../dtos/SalesPlan.dto.js';
2
+ import type { UsageAlertMetric } from '../dtos/UsageAlert.dto.js';
3
+ import type { ClusterClientPermission } from '../enums/ClusterClientPermissions.enum.js';
4
+ import type { ConsoleAPIClientPermission } from '../enums/ConsoleApiClientPermission.enum.js';
5
+ import type { OrganizationRole } from '../enums/OrganizationRole.enum.js';
6
+ import type { DisplayedSalesPlan, SalesPlanType } from './SalesPlanType.type.js';
7
+ export interface Cluster {
8
+ uuid: string;
9
+ name: string;
10
+ clusterPlanType: ClusterPlanType;
11
+ clusterPlan: ClusterPlan;
12
+ generation: Generation;
13
+ channel: Channel;
14
+ datacenter?: Datacenter;
15
+ amountOfIpWhitelistRules: number;
16
+ ownerUuid: string;
17
+ created: Date;
18
+ autoUpdate: boolean;
19
+ mcpEnabled?: boolean;
20
+ businessIdUniquenessEnabled?: boolean;
21
+ tags?: string[];
22
+ sleeping?: boolean;
23
+ activeModifications: boolean;
24
+ encryptionKeysSet?: {
25
+ primaryConfigured: boolean;
26
+ secondaryConfigured: boolean;
27
+ };
28
+ }
29
+ export interface ClusterBackup {
30
+ clusterId: string;
31
+ backupId?: string;
32
+ }
33
+ export interface ClusterModification {
34
+ uuid: string;
35
+ clusterUuid: string;
36
+ owner: string;
37
+ createdAt?: Date;
38
+ archivedAt?: Date;
39
+ }
40
+ export interface ClusterModificationConfig {
41
+ uuid: string;
42
+ clusterUuid: string;
43
+ modificationUuid: string;
44
+ creator: string;
45
+ description: string;
46
+ url?: string;
47
+ createdAt?: Date;
48
+ sealedAt?: Date;
49
+ activatedAt?: Date;
50
+ replacedBy?: string;
51
+ deactivatedAt?: Date;
52
+ deactivatedBy?: string | null;
53
+ expiresAt?: Date | null;
54
+ expiredNotifiedAt?: Date | null;
55
+ yoloJustification?: string;
56
+ }
57
+ /**
58
+ * HDP-specific interface for ClusterModificationConfig.
59
+ * Used for Holy Data Platform integration - keeps Date objects for timestamp fields.
60
+ */
61
+ export interface HdpClusterModificationConfig {
62
+ uuid: string;
63
+ clusterUuid: string;
64
+ modificationUuid: string;
65
+ creator: string;
66
+ description: string;
67
+ url?: string;
68
+ createdAt?: Date;
69
+ sealedAt?: Date;
70
+ activatedAt?: Date;
71
+ replacedBy?: string;
72
+ deactivatedAt?: Date;
73
+ deactivatedBy?: string | null;
74
+ expiresAt?: Date | null;
75
+ expiredNotifiedAt?: Date | null;
76
+ }
77
+ export interface ClusterBackupSchedule {
78
+ clusterId: string;
79
+ schedule?: string;
80
+ }
81
+ export interface ClusterPlanType {
82
+ uuid: string;
83
+ name: string;
84
+ availabilityClass: string;
85
+ isDevelopment: boolean;
86
+ }
87
+ export interface ClusterPlan {
88
+ uuid: string;
89
+ name: string;
90
+ }
91
+ export interface Datacenter {
92
+ uuid: string;
93
+ name: string;
94
+ }
95
+ export interface Generation {
96
+ uuid: string;
97
+ name: string;
98
+ }
99
+ export interface Channel {
100
+ uuid: string;
101
+ name: string;
102
+ }
103
+ export declare enum AlertSubscriptionType {
104
+ ClusterAlert = "ClusterAlert",
105
+ ProcessAlert = "ProcessAlert",
106
+ AllAlerts = "AllAlerts"
107
+ }
108
+ export declare enum AlertSubscriptionReportType {
109
+ Email = "Email",
110
+ Webhook = "Webhook"
111
+ }
112
+ export interface AlertSubscription {
113
+ uuid: string;
114
+ clusterUuid?: string;
115
+ target: string;
116
+ reportType: AlertSubscriptionReportType;
117
+ type: AlertSubscriptionType;
118
+ }
119
+ export interface ConsoleApiClient {
120
+ uuid: string;
121
+ name: string;
122
+ organizationUuid: string;
123
+ permissions: ConsoleAPIClientPermission[];
124
+ }
125
+ export interface ConnectorSecret {
126
+ clusterUuid: string;
127
+ amountOfSecrets: number;
128
+ }
129
+ export interface ClusterClient {
130
+ uuid: string;
131
+ name: string;
132
+ clusterUuid?: string;
133
+ clientId: string;
134
+ permissions: ClusterClientPermission[];
135
+ }
136
+ export interface Organization {
137
+ uuid: string;
138
+ name: string;
139
+ salesplan?: {
140
+ type: SalesPlanType;
141
+ displayedType?: DisplayedSalesPlan;
142
+ uuid: string;
143
+ name: string;
144
+ expireDate?: Date;
145
+ };
146
+ reservations?: {
147
+ [key: string]: number;
148
+ };
149
+ earlyAccessFeatures?: string[];
150
+ justOptedForTheBetaTerms?: boolean;
151
+ salesForceProjectId?: string;
152
+ awsOnly?: boolean;
153
+ limits?: Limits;
154
+ }
155
+ export interface User {
156
+ name: string;
157
+ email: string;
158
+ userId: string;
159
+ orgMemberships?: Array<{
160
+ orgUuid: string;
161
+ roles: OrganizationRole[];
162
+ }>;
163
+ }
164
+ export interface UserLogin {
165
+ userId: string;
166
+ }
167
+ export interface Invite {
168
+ email: string;
169
+ orgUuid: string;
170
+ roles: OrganizationRole[];
171
+ }
172
+ export interface UsageAlert {
173
+ orgId: string;
174
+ metric: UsageAlertMetric;
175
+ threshold: number;
176
+ enabled: boolean;
177
+ triggered: boolean;
178
+ }
179
+ export interface Audit {
180
+ service: string;
181
+ orgId: string;
182
+ timestamp: number;
183
+ audit: string;
184
+ auditType: 'c' | 'r' | 'u' | 'd';
185
+ entity: string;
186
+ entityId: string;
187
+ userId: string;
188
+ entityAttribute?: string;
189
+ entityAttributeValueFrom?: string;
190
+ entityAttributeValueTo?: string;
191
+ parentEntity?: string;
192
+ parentEntityId?: string;
193
+ }
194
+ export interface TelemetryData {
195
+ customerId: string;
196
+ installationId: string;
197
+ entities: Array<{
198
+ id: string;
199
+ type: string;
200
+ }>;
201
+ key: string;
202
+ value: string | number | boolean;
203
+ tags?: Record<string, string>;
204
+ timestampFrom: number;
205
+ timestampTo?: number;
206
+ }
207
+ export interface ClusterBulkOperation {
208
+ uuid: string;
209
+ name: string;
210
+ reason: string;
211
+ eyes: number;
212
+ clusterUuids: string[];
213
+ type: string;
214
+ created: Date;
215
+ updated?: Date;
216
+ executedAt?: Date;
217
+ createdBy: string;
218
+ }
219
+ export interface LlmSpend {
220
+ orgId: string;
221
+ salesPlanType: SalesPlanType;
222
+ spend: number;
223
+ maxBudget: number;
224
+ }
225
+ export type HdpEntity = 'cluster' | 'clusterBackup' | 'clusterBackupSchedule' | 'datacenter' | 'generation' | 'channel' | 'clusterPlan' | 'clusterPlanType' | 'alertSubscription' | 'consoleApiClient' | 'connectorSecret' | 'clusterClient' | 'organization' | 'user' | 'invite' | 'usageAlert' | 'audit' | 'telemetry' | 'userlogin' | 'clusterBulkOperation' | 'clusterModification' | 'clusterModificationConfig' | 'llmSpend';
226
+ export interface HdpPrometheusDataCapacityDataPoint {
227
+ clusterId?: string;
228
+ ts: number;
229
+ avg: number;
230
+ min: number;
231
+ max: number;
232
+ }
233
+ export interface HdpBackendChangeEvent {
234
+ ts: number;
235
+ data: {
236
+ stage: string;
237
+ entity: string;
238
+ operation: string;
239
+ data: any;
240
+ };
241
+ }
@@ -0,0 +1,16 @@
1
+ var AlertSubscriptionType = /* @__PURE__ */ ((AlertSubscriptionType2) => {
2
+ AlertSubscriptionType2["ClusterAlert"] = "ClusterAlert";
3
+ AlertSubscriptionType2["ProcessAlert"] = "ProcessAlert";
4
+ AlertSubscriptionType2["AllAlerts"] = "AllAlerts";
5
+ return AlertSubscriptionType2;
6
+ })(AlertSubscriptionType || {});
7
+ var AlertSubscriptionReportType = /* @__PURE__ */ ((AlertSubscriptionReportType2) => {
8
+ AlertSubscriptionReportType2["Email"] = "Email";
9
+ AlertSubscriptionReportType2["Webhook"] = "Webhook";
10
+ return AlertSubscriptionReportType2;
11
+ })(AlertSubscriptionReportType || {});
12
+ export {
13
+ AlertSubscriptionReportType,
14
+ AlertSubscriptionType
15
+ };
16
+ //# sourceMappingURL=hdp.types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 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 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 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 | 'datacenter'\n | 'generation'\n | 'channel'\n | 'clusterPlan'\n | 'clusterPlanType'\n | 'alertSubscription'\n | 'consoleApiClient'\n | 'connectorSecret'\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"],
5
+ "mappings": "AAsHO,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
+ "names": ["AlertSubscriptionType", "AlertSubscriptionReportType"]
7
+ }
@@ -0,0 +1,71 @@
1
+ export type NotificationType = 'org' | 'individual' | 'global';
2
+ export declare enum NotificationTypeEnum {
3
+ ORG = 0,
4
+ INDIVIDUAL = 1,
5
+ GLOBAL = 2
6
+ }
7
+ export type NotificationState = 'new' | 'read' | 'dismissed' | 'draft' | 'scheduled';
8
+ export declare enum NotificationStateEnum {
9
+ NEW = 0,
10
+ READ = 1,
11
+ DISMISSED = 2,
12
+ DRAFT = 3,
13
+ SCHEDULED = 4
14
+ }
15
+ export type NotificationSource = 'console' | 'accounts' | 'modeler' | 'operate' | 'tasklist' | 'optimize' | 'marketing';
16
+ export declare enum NotificationSourceEnum {
17
+ CONSOLE = 0,
18
+ ACCOUNTS = 1,
19
+ MODELER = 2,
20
+ OPERATE = 3,
21
+ TASKLIST = 4,
22
+ OPTIMIZE = 5,
23
+ MARKETING = 6
24
+ }
25
+ /**
26
+ * Currently only supported for org based notifications
27
+ */
28
+ export type NotificationPermission = 'org:billing:read' | 'org:users:admin:create' | 'org:billing:update' | 'cluster:optimize:read';
29
+ export declare const NotificationPermissionValues: string[];
30
+ export interface NotificationMeta {
31
+ identifier?: string;
32
+ permissions?: NotificationPermission[];
33
+ href?: string;
34
+ label?: string;
35
+ entity?: {
36
+ id: string;
37
+ type: string;
38
+ };
39
+ parentEntity?: {
40
+ id: string;
41
+ type: string;
42
+ };
43
+ scheduleTs?: number;
44
+ }
45
+ export interface GlobalNotification {
46
+ uniqueId?: string;
47
+ source: NotificationSource;
48
+ type: NotificationType;
49
+ title: string;
50
+ description: string;
51
+ expiration?: Date;
52
+ meta?: NotificationMeta;
53
+ initState?: NotificationState;
54
+ }
55
+ export interface UserNotification extends GlobalNotification {
56
+ userId: string;
57
+ }
58
+ export interface UserOrgNotification extends UserNotification {
59
+ orgId: string;
60
+ }
61
+ export interface OrgNotification extends GlobalNotification {
62
+ orgId: string;
63
+ }
64
+ export type NotificationOptions = GlobalNotification | UserNotification | UserOrgNotification;
65
+ export interface NotificationDto extends GlobalNotification {
66
+ timestamp: number;
67
+ uuid: string;
68
+ userId?: string;
69
+ orgId?: string;
70
+ state: NotificationState;
71
+ }
@@ -0,0 +1,37 @@
1
+ var NotificationTypeEnum = /* @__PURE__ */ ((NotificationTypeEnum2) => {
2
+ NotificationTypeEnum2[NotificationTypeEnum2["ORG"] = 0] = "ORG";
3
+ NotificationTypeEnum2[NotificationTypeEnum2["INDIVIDUAL"] = 1] = "INDIVIDUAL";
4
+ NotificationTypeEnum2[NotificationTypeEnum2["GLOBAL"] = 2] = "GLOBAL";
5
+ return NotificationTypeEnum2;
6
+ })(NotificationTypeEnum || {});
7
+ var NotificationStateEnum = /* @__PURE__ */ ((NotificationStateEnum2) => {
8
+ NotificationStateEnum2[NotificationStateEnum2["NEW"] = 0] = "NEW";
9
+ NotificationStateEnum2[NotificationStateEnum2["READ"] = 1] = "READ";
10
+ NotificationStateEnum2[NotificationStateEnum2["DISMISSED"] = 2] = "DISMISSED";
11
+ NotificationStateEnum2[NotificationStateEnum2["DRAFT"] = 3] = "DRAFT";
12
+ NotificationStateEnum2[NotificationStateEnum2["SCHEDULED"] = 4] = "SCHEDULED";
13
+ return NotificationStateEnum2;
14
+ })(NotificationStateEnum || {});
15
+ var NotificationSourceEnum = /* @__PURE__ */ ((NotificationSourceEnum2) => {
16
+ NotificationSourceEnum2[NotificationSourceEnum2["CONSOLE"] = 0] = "CONSOLE";
17
+ NotificationSourceEnum2[NotificationSourceEnum2["ACCOUNTS"] = 1] = "ACCOUNTS";
18
+ NotificationSourceEnum2[NotificationSourceEnum2["MODELER"] = 2] = "MODELER";
19
+ NotificationSourceEnum2[NotificationSourceEnum2["OPERATE"] = 3] = "OPERATE";
20
+ NotificationSourceEnum2[NotificationSourceEnum2["TASKLIST"] = 4] = "TASKLIST";
21
+ NotificationSourceEnum2[NotificationSourceEnum2["OPTIMIZE"] = 5] = "OPTIMIZE";
22
+ NotificationSourceEnum2[NotificationSourceEnum2["MARKETING"] = 6] = "MARKETING";
23
+ return NotificationSourceEnum2;
24
+ })(NotificationSourceEnum || {});
25
+ const NotificationPermissionValues = [
26
+ "org:billing:read",
27
+ "org:users:admin:create",
28
+ "org:billing:update",
29
+ "cluster:optimize:read"
30
+ ];
31
+ export {
32
+ NotificationPermissionValues,
33
+ NotificationSourceEnum,
34
+ NotificationStateEnum,
35
+ NotificationTypeEnum
36
+ };
37
+ //# sourceMappingURL=notification.type.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/types/notification.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 type NotificationType = 'org' | 'individual' | 'global'\n\n// eslint-disable-next-line no-shadow\nexport enum NotificationTypeEnum {\n ORG = 0,\n INDIVIDUAL = 1,\n GLOBAL = 2,\n}\n\nexport type NotificationState =\n | 'new'\n | 'read'\n | 'dismissed'\n | 'draft'\n | 'scheduled'\n\n// eslint-disable-next-line no-shadow\nexport enum NotificationStateEnum {\n NEW = 0,\n READ = 1,\n DISMISSED = 2,\n DRAFT = 3,\n SCHEDULED = 4,\n}\n\nexport type NotificationSource =\n | 'console'\n | 'accounts'\n | 'modeler'\n | 'operate'\n | 'tasklist'\n | 'optimize'\n | 'marketing'\n\n// eslint-disable-next-line no-shadow\nexport enum NotificationSourceEnum {\n CONSOLE = 0,\n ACCOUNTS = 1,\n MODELER = 2,\n OPERATE = 3,\n TASKLIST = 4,\n OPTIMIZE = 5,\n MARKETING = 6,\n}\n\n/**\n * Currently only supported for org based notifications\n */\nexport type NotificationPermission =\n | 'org:billing:read'\n | 'org:users:admin:create'\n | 'org:billing:update'\n | 'cluster:optimize:read'\nexport const NotificationPermissionValues = [\n 'org:billing:read',\n 'org:users:admin:create',\n 'org:billing:update',\n 'cluster:optimize:read',\n]\n\nexport interface NotificationMeta {\n identifier?: string // used for analytics events\n permissions?: NotificationPermission[]\n href?: string\n label?: string\n entity?: {\n id: string\n type: string\n }\n parentEntity?: {\n id: string\n type: string\n }\n scheduleTs?: number\n}\n\nexport interface GlobalNotification {\n uniqueId?: string // if it is not guaranteed that a notification request is executed exactly once\n source: NotificationSource\n type: NotificationType\n title: string\n description: string\n expiration?: Date\n meta?: NotificationMeta\n initState?: NotificationState\n}\n\nexport interface UserNotification extends GlobalNotification {\n userId: string\n}\n\nexport interface UserOrgNotification extends UserNotification {\n orgId: string\n}\n\nexport interface OrgNotification extends GlobalNotification {\n orgId: string\n}\n\nexport type NotificationOptions =\n | GlobalNotification\n | UserNotification\n | UserOrgNotification\n\nexport interface NotificationDto extends GlobalNotification {\n timestamp: number\n uuid: string\n userId?: string\n orgId?: string\n state: NotificationState\n}\n"],
5
+ "mappings": "AASO,IAAK,uBAAL,kBAAKA,0BAAL;AACL,EAAAA,4CAAA,SAAM,KAAN;AACA,EAAAA,4CAAA,gBAAa,KAAb;AACA,EAAAA,4CAAA,YAAS,KAAT;AAHU,SAAAA;AAAA,GAAA;AAcL,IAAK,wBAAL,kBAAKC,2BAAL;AACL,EAAAA,8CAAA,SAAM,KAAN;AACA,EAAAA,8CAAA,UAAO,KAAP;AACA,EAAAA,8CAAA,eAAY,KAAZ;AACA,EAAAA,8CAAA,WAAQ,KAAR;AACA,EAAAA,8CAAA,eAAY,KAAZ;AALU,SAAAA;AAAA,GAAA;AAkBL,IAAK,yBAAL,kBAAKC,4BAAL;AACL,EAAAA,gDAAA,aAAU,KAAV;AACA,EAAAA,gDAAA,cAAW,KAAX;AACA,EAAAA,gDAAA,aAAU,KAAV;AACA,EAAAA,gDAAA,aAAU,KAAV;AACA,EAAAA,gDAAA,cAAW,KAAX;AACA,EAAAA,gDAAA,cAAW,KAAX;AACA,EAAAA,gDAAA,eAAY,KAAZ;AAPU,SAAAA;AAAA,GAAA;AAkBL,MAAM,+BAA+B;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;",
6
+ "names": ["NotificationTypeEnum", "NotificationStateEnum", "NotificationSourceEnum"]
7
+ }
@@ -0,0 +1,13 @@
1
+ export interface PasswordPolicyResult {
2
+ valid: boolean;
3
+ message: string;
4
+ }
5
+ export interface PasswordPolicyRequest {
6
+ password: string;
7
+ first: string;
8
+ last: string;
9
+ email: string;
10
+ }
11
+ export declare const MINLENGTH = 12;
12
+ export declare const MAXLENGTH = 64;
13
+ export declare function passwordPolicyCheck(request: PasswordPolicyRequest): PasswordPolicyResult;
@@ -0,0 +1,55 @@
1
+ const MINLENGTH = 12;
2
+ const MAXLENGTH = 64;
3
+ function passwordPolicyCheck(request) {
4
+ const { password, first, last, email } = request;
5
+ if (/\s/gu.test(password)) {
6
+ return { valid: false, message: "Password must not contain spaces" };
7
+ }
8
+ if (!first || !last || !email) {
9
+ return {
10
+ valid: false,
11
+ message: `Bad Request`
12
+ };
13
+ }
14
+ if (!password || password.length < MINLENGTH || password.length > MAXLENGTH) {
15
+ return {
16
+ valid: false,
17
+ message: `Password must be between ${MINLENGTH} and ${MAXLENGTH} characters`
18
+ };
19
+ }
20
+ if (password.toLowerCase().includes(first.toLowerCase()) || password.toLowerCase().includes(last.toLowerCase()) || password.toLowerCase().includes(email.toLowerCase())) {
21
+ return {
22
+ valid: false,
23
+ message: "Password must not contain your name or email address"
24
+ };
25
+ }
26
+ const specialCharacters = ["!", "@", "#", "$", "%", "^", "&", "*", "(", ")"];
27
+ const hasSpecialCharacter = specialCharacters.some(
28
+ (character) => password.includes(character)
29
+ );
30
+ if (!hasSpecialCharacter) {
31
+ return {
32
+ valid: false,
33
+ message: `Password must contain at least one special character - ${specialCharacters.join(
34
+ ", "
35
+ )}`
36
+ };
37
+ }
38
+ const lettersAndNumbers = /^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?!.* ).{12,}$/u;
39
+ if (!lettersAndNumbers.test(password)) {
40
+ return {
41
+ valid: false,
42
+ message: "Password must contain at least one uppercase and lowercase letter and one number"
43
+ };
44
+ }
45
+ return {
46
+ valid: true,
47
+ message: ""
48
+ };
49
+ }
50
+ export {
51
+ MAXLENGTH,
52
+ MINLENGTH,
53
+ passwordPolicyCheck
54
+ };
55
+ //# sourceMappingURL=PasswordPolicy.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils/PasswordPolicy.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\n// https://github.com/camunda-cloud/accounts/issues/2170\n\nexport interface PasswordPolicyResult {\n valid: boolean\n message: string\n}\n\nexport interface PasswordPolicyRequest {\n password: string\n first: string\n last: string\n email: string\n}\n\n// OBACHT: this is also hardcoded aroud line 54. good luck sucker\nexport const MINLENGTH = 12\nexport const MAXLENGTH = 64\n\nexport function passwordPolicyCheck(\n request: PasswordPolicyRequest,\n): PasswordPolicyResult {\n const { password, first, last, email } = request\n if (/\\s/gu.test(password)) {\n return { valid: false, message: 'Password must not contain spaces' }\n }\n if (!first || !last || !email) {\n return {\n valid: false,\n message: `Bad Request`,\n }\n }\n if (!password || password.length < MINLENGTH || password.length > MAXLENGTH) {\n return {\n valid: false,\n message: `Password must be between ${MINLENGTH} and ${MAXLENGTH} characters`,\n }\n }\n if (\n password.toLowerCase().includes(first.toLowerCase()) ||\n password.toLowerCase().includes(last.toLowerCase()) ||\n password.toLowerCase().includes(email.toLowerCase())\n ) {\n return {\n valid: false,\n message: 'Password must not contain your name or email address',\n }\n }\n const specialCharacters = ['!', '@', '#', '$', '%', '^', '&', '*', '(', ')']\n const hasSpecialCharacter = specialCharacters.some((character) =>\n password.includes(character),\n )\n if (!hasSpecialCharacter) {\n return {\n valid: false,\n message: `Password must contain at least one special character - ${specialCharacters.join(\n ', ',\n )}`,\n }\n }\n const lettersAndNumbers = /^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?!.* ).{12,}$/u\n if (!lettersAndNumbers.test(password)) {\n return {\n valid: false,\n message:\n 'Password must contain at least one uppercase and lowercase letter and one number',\n }\n }\n\n return {\n valid: true,\n message: '',\n }\n}\n"],
5
+ "mappings": "AAqBO,MAAM,YAAY;AAClB,MAAM,YAAY;AAElB,SAAS,oBACd,SACsB;AACtB,QAAM,EAAE,UAAU,OAAO,MAAM,MAAM,IAAI;AACzC,MAAI,OAAO,KAAK,QAAQ,GAAG;AACzB,WAAO,EAAE,OAAO,OAAO,SAAS,mCAAmC;AAAA,EACrE;AACA,MAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO;AAC7B,WAAO;AAAA,MACL,OAAO;AAAA,MACP,SAAS;AAAA,IACX;AAAA,EACF;AACA,MAAI,CAAC,YAAY,SAAS,SAAS,aAAa,SAAS,SAAS,WAAW;AAC3E,WAAO;AAAA,MACL,OAAO;AAAA,MACP,SAAS,4BAA4B,SAAS,QAAQ,SAAS;AAAA,IACjE;AAAA,EACF;AACA,MACE,SAAS,YAAY,EAAE,SAAS,MAAM,YAAY,CAAC,KACnD,SAAS,YAAY,EAAE,SAAS,KAAK,YAAY,CAAC,KAClD,SAAS,YAAY,EAAE,SAAS,MAAM,YAAY,CAAC,GACnD;AACA,WAAO;AAAA,MACL,OAAO;AAAA,MACP,SAAS;AAAA,IACX;AAAA,EACF;AACA,QAAM,oBAAoB,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG;AAC3E,QAAM,sBAAsB,kBAAkB;AAAA,IAAK,CAAC,cAClD,SAAS,SAAS,SAAS;AAAA,EAC7B;AACA,MAAI,CAAC,qBAAqB;AACxB,WAAO;AAAA,MACL,OAAO;AAAA,MACP,SAAS,0DAA0D,kBAAkB;AAAA,QACnF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACA,QAAM,oBAAoB;AAC1B,MAAI,CAAC,kBAAkB,KAAK,QAAQ,GAAG;AACrC,WAAO;AAAA,MACL,OAAO;AAAA,MACP,SACE;AAAA,IACJ;AAAA,EACF;AAEA,SAAO;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,EACX;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,25 @@
1
+ import { type CamundiPermissionRules, type HibobEmployee } from '../config/camundi-permission-rules.types.js';
2
+ import type { Roles } from '../types/Roles.js';
3
+ /**
4
+ * Determines which permission rules apply to a given employee based on their
5
+ * department, division, and subdivision.
6
+ *
7
+ * @param employee - HiBob employee data
8
+ * @param rules - Permission rules configuration
9
+ * @returns Array of roles that should be granted to the employee
10
+ */
11
+ export declare function getApplicableRolesForEmployee(employee: HibobEmployee, rules?: CamundiPermissionRules): Roles[];
12
+ /**
13
+ * Augments user permissions based on their Camunda employee status and organizational position.
14
+ *
15
+ * @param userEmail - Email of the user
16
+ * @param currentPermissions - Current permissions from JWT
17
+ * @param employees - List of all HiBob employees
18
+ * @returns Augmented permissions array (original + new permissions from rules)
19
+ */
20
+ export declare function augmentCamundiPermissions(userEmail: string, currentPermissions: string[], employees: HibobEmployee[]): {
21
+ augmentedPermissions: string[];
22
+ hibobEmployee?: HibobEmployee;
23
+ applicableRoles?: Roles[];
24
+ };
25
+ export declare function isManager(userEmail: string, employees: HibobEmployee[]): boolean;
@@ -0,0 +1,70 @@
1
+ import { default as CAMUNDI_PERMISSION_RULES } from "../config/camundi-permission-rules.js";
2
+ import {
3
+ DEPARTMENT,
4
+ DIVISION,
5
+ SUB_DIVISION
6
+ } from "../config/camundi-permission-rules.types.js";
7
+ import { expandRolesToPermissions } from "../permissions/roleExpansion.utils.js";
8
+ function getApplicableRolesForEmployee(employee, rules = CAMUNDI_PERMISSION_RULES) {
9
+ const applicableRoles = /* @__PURE__ */ new Set();
10
+ const department = employee[DEPARTMENT]?.value || "";
11
+ const division = employee[DIVISION]?.value || "";
12
+ const subdivision = employee[SUB_DIVISION]?.value || "";
13
+ if (department && rules.departmentRules[department]) {
14
+ for (const role of rules.departmentRules[department]) {
15
+ applicableRoles.add(role);
16
+ }
17
+ }
18
+ if (division && rules.divisionRules[division]) {
19
+ for (const role of rules.divisionRules[division]) {
20
+ applicableRoles.add(role);
21
+ }
22
+ }
23
+ if (subdivision && rules.subdivisionRules[subdivision]) {
24
+ for (const role of rules.subdivisionRules[subdivision]) {
25
+ applicableRoles.add(role);
26
+ }
27
+ }
28
+ return Array.from(applicableRoles);
29
+ }
30
+ function augmentCamundiPermissions(userEmail, currentPermissions, employees) {
31
+ if (!userEmail.toLowerCase().endsWith("@camunda.com")) {
32
+ return { augmentedPermissions: currentPermissions };
33
+ }
34
+ const employee = employees.find((emp) => {
35
+ const empEmail = emp.email || emp["/root/email"]?.value;
36
+ return empEmail?.toLowerCase() === userEmail.toLowerCase();
37
+ });
38
+ if (!employee) {
39
+ return { augmentedPermissions: currentPermissions };
40
+ }
41
+ const applicableRoles = getApplicableRolesForEmployee(employee);
42
+ if (applicableRoles.length === 0) {
43
+ return {
44
+ augmentedPermissions: currentPermissions,
45
+ hibobEmployee: employee,
46
+ applicableRoles
47
+ };
48
+ }
49
+ const newPermissions = expandRolesToPermissions(applicableRoles);
50
+ const mergedPermissions = /* @__PURE__ */ new Set([...currentPermissions, ...newPermissions]);
51
+ return {
52
+ augmentedPermissions: Array.from(mergedPermissions),
53
+ hibobEmployee: employee,
54
+ applicableRoles
55
+ };
56
+ }
57
+ function isManager(userEmail, employees) {
58
+ if (!userEmail.toLowerCase().endsWith("@camunda.com")) {
59
+ return false;
60
+ }
61
+ return employees.some(
62
+ (emp) => emp["/work/reportsTo"]?.value?.email?.toLowerCase() === userEmail.toLowerCase()
63
+ );
64
+ }
65
+ export {
66
+ augmentCamundiPermissions,
67
+ getApplicableRolesForEmployee,
68
+ isManager
69
+ };
70
+ //# sourceMappingURL=camundiPermissionAugmenter.utils.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils/camundiPermissionAugmenter.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 { default as CAMUNDI_PERMISSION_RULES } from '../config/camundi-permission-rules.js'\nimport {\n type CamundiPermissionRules,\n DEPARTMENT,\n DIVISION,\n type HibobEmployee,\n SUB_DIVISION,\n} from '../config/camundi-permission-rules.types.js'\nimport { expandRolesToPermissions } from '../permissions/roleExpansion.utils.js'\nimport type { Roles } from '../types/Roles.js'\n\n/**\n * Determines which permission rules apply to a given employee based on their\n * department, division, and subdivision.\n *\n * @param employee - HiBob employee data\n * @param rules - Permission rules configuration\n * @returns Array of roles that should be granted to the employee\n */\nexport function getApplicableRolesForEmployee(\n employee: HibobEmployee,\n rules: CamundiPermissionRules = CAMUNDI_PERMISSION_RULES,\n): Roles[] {\n const applicableRoles = new Set<Roles>()\n\n // Extract employee organizational data - use only direct field paths\n const department = employee[DEPARTMENT]?.value || ''\n const division = employee[DIVISION]?.value || ''\n const subdivision = employee[SUB_DIVISION]?.value || ''\n\n // Check department rules\n if (department && rules.departmentRules[department]) {\n for (const role of rules.departmentRules[department]) {\n applicableRoles.add(role)\n }\n }\n\n // Check division rules\n if (division && rules.divisionRules[division]) {\n for (const role of rules.divisionRules[division]) {\n applicableRoles.add(role)\n }\n }\n\n // Check subdivision rules\n if (subdivision && rules.subdivisionRules[subdivision]) {\n for (const role of rules.subdivisionRules[subdivision]) {\n applicableRoles.add(role)\n }\n }\n\n return Array.from(applicableRoles)\n}\n\n/**\n * Augments user permissions based on their Camunda employee status and organizational position.\n *\n * @param userEmail - Email of the user\n * @param currentPermissions - Current permissions from JWT\n * @param employees - List of all HiBob employees\n * @returns Augmented permissions array (original + new permissions from rules)\n */\nexport function augmentCamundiPermissions(\n userEmail: string,\n currentPermissions: string[],\n employees: HibobEmployee[],\n): {\n augmentedPermissions: string[]\n hibobEmployee?: HibobEmployee\n applicableRoles?: Roles[]\n} {\n // Early return if not a Camundi email\n if (!userEmail.toLowerCase().endsWith('@camunda.com')) {\n return { augmentedPermissions: currentPermissions }\n }\n\n // Find the employee in HiBob data\n const employee = employees.find((emp) => {\n const empEmail = emp.email || emp['/root/email']?.value\n return empEmail?.toLowerCase() === userEmail.toLowerCase()\n })\n\n if (!employee) {\n // Employee not found in HiBob - return original permissions\n return { augmentedPermissions: currentPermissions }\n }\n\n // Get applicable roles based on organizational structure\n const applicableRoles = getApplicableRolesForEmployee(employee)\n\n if (applicableRoles.length === 0) {\n // No rules apply to this employee\n return {\n augmentedPermissions: currentPermissions,\n hibobEmployee: employee,\n applicableRoles,\n }\n }\n\n // Expand roles to permissions\n const newPermissions = expandRolesToPermissions(applicableRoles)\n\n // Merge with existing permissions (deduplication via Set)\n const mergedPermissions = new Set([...currentPermissions, ...newPermissions])\n\n return {\n augmentedPermissions: Array.from(mergedPermissions),\n hibobEmployee: employee,\n applicableRoles,\n }\n}\n\nexport function isManager(\n userEmail: string,\n employees: HibobEmployee[],\n): boolean {\n // Early return if not a Camundi email\n if (!userEmail.toLowerCase().endsWith('@camunda.com')) {\n return false\n }\n return employees.some(\n (emp) =>\n emp['/work/reportsTo']?.value?.email?.toLowerCase() ===\n userEmail.toLowerCase(),\n )\n}\n"],
5
+ "mappings": "AAMA,SAAS,WAAW,gCAAgC;AACpD;AAAA,EAEE;AAAA,EACA;AAAA,EAEA;AAAA,OACK;AACP,SAAS,gCAAgC;AAWlC,SAAS,8BACd,UACA,QAAgC,0BACvB;AACT,QAAM,kBAAkB,oBAAI,IAAW;AAGvC,QAAM,aAAa,SAAS,UAAU,GAAG,SAAS;AAClD,QAAM,WAAW,SAAS,QAAQ,GAAG,SAAS;AAC9C,QAAM,cAAc,SAAS,YAAY,GAAG,SAAS;AAGrD,MAAI,cAAc,MAAM,gBAAgB,UAAU,GAAG;AACnD,eAAW,QAAQ,MAAM,gBAAgB,UAAU,GAAG;AACpD,sBAAgB,IAAI,IAAI;AAAA,IAC1B;AAAA,EACF;AAGA,MAAI,YAAY,MAAM,cAAc,QAAQ,GAAG;AAC7C,eAAW,QAAQ,MAAM,cAAc,QAAQ,GAAG;AAChD,sBAAgB,IAAI,IAAI;AAAA,IAC1B;AAAA,EACF;AAGA,MAAI,eAAe,MAAM,iBAAiB,WAAW,GAAG;AACtD,eAAW,QAAQ,MAAM,iBAAiB,WAAW,GAAG;AACtD,sBAAgB,IAAI,IAAI;AAAA,IAC1B;AAAA,EACF;AAEA,SAAO,MAAM,KAAK,eAAe;AACnC;AAUO,SAAS,0BACd,WACA,oBACA,WAKA;AAEA,MAAI,CAAC,UAAU,YAAY,EAAE,SAAS,cAAc,GAAG;AACrD,WAAO,EAAE,sBAAsB,mBAAmB;AAAA,EACpD;AAGA,QAAM,WAAW,UAAU,KAAK,CAAC,QAAQ;AACvC,UAAM,WAAW,IAAI,SAAS,IAAI,aAAa,GAAG;AAClD,WAAO,UAAU,YAAY,MAAM,UAAU,YAAY;AAAA,EAC3D,CAAC;AAED,MAAI,CAAC,UAAU;AAEb,WAAO,EAAE,sBAAsB,mBAAmB;AAAA,EACpD;AAGA,QAAM,kBAAkB,8BAA8B,QAAQ;AAE9D,MAAI,gBAAgB,WAAW,GAAG;AAEhC,WAAO;AAAA,MACL,sBAAsB;AAAA,MACtB,eAAe;AAAA,MACf;AAAA,IACF;AAAA,EACF;AAGA,QAAM,iBAAiB,yBAAyB,eAAe;AAG/D,QAAM,oBAAoB,oBAAI,IAAI,CAAC,GAAG,oBAAoB,GAAG,cAAc,CAAC;AAE5E,SAAO;AAAA,IACL,sBAAsB,MAAM,KAAK,iBAAiB;AAAA,IAClD,eAAe;AAAA,IACf;AAAA,EACF;AACF;AAEO,SAAS,UACd,WACA,WACS;AAET,MAAI,CAAC,UAAU,YAAY,EAAE,SAAS,cAAc,GAAG;AACrD,WAAO;AAAA,EACT;AACA,SAAO,UAAU;AAAA,IACf,CAAC,QACC,IAAI,iBAAiB,GAAG,OAAO,OAAO,YAAY,MAClD,UAAU,YAAY;AAAA,EAC1B;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,6 @@
1
+ import type { ConsoleSM } from '../types/ConsoleSelfManaged.type.js';
2
+ export declare class ConsoleSelfManagedUtils {
3
+ static getMockedClusters(options: {
4
+ clusterCount?: number;
5
+ }): ConsoleSM.Cluster[];
6
+ }
@@ -0,0 +1,30 @@
1
+ class ConsoleSelfManagedUtils {
2
+ static getMockedClusters(options) {
3
+ const clusterCount = options.clusterCount ?? 1;
4
+ const clusters = [];
5
+ for (let i = 0; i < clusterCount; i++) {
6
+ clusters.push({
7
+ uuid: `dummy-uuid-${i}`,
8
+ name: `Dummy Cluster ${i}`,
9
+ namespace: `dummy-namespace-${i}`,
10
+ status: "healthy",
11
+ generation: "dummy-generation",
12
+ type: "automation",
13
+ apps: [
14
+ {
15
+ type: "zeebe-broker",
16
+ id: "dummy-id",
17
+ generation: "dummy-generation",
18
+ status: "healthy",
19
+ url: "https://camunda.io"
20
+ }
21
+ ]
22
+ });
23
+ }
24
+ return clusters;
25
+ }
26
+ }
27
+ export {
28
+ ConsoleSelfManagedUtils
29
+ };
30
+ //# sourceMappingURL=console-sm.utils.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils/console-sm.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 type { ConsoleSM } from '../types/ConsoleSelfManaged.type.js'\n\nexport class ConsoleSelfManagedUtils {\n public static getMockedClusters(options: {\n clusterCount?: number\n }): ConsoleSM.Cluster[] {\n const clusterCount = options.clusterCount ?? 1\n const clusters: ConsoleSM.Cluster[] = []\n for (let i = 0; i < clusterCount; i++) {\n clusters.push({\n uuid: `dummy-uuid-${i}`,\n name: `Dummy Cluster ${i}`,\n namespace: `dummy-namespace-${i}`,\n status: 'healthy',\n generation: 'dummy-generation',\n type: 'automation',\n apps: [\n {\n type: 'zeebe-broker',\n id: 'dummy-id',\n generation: 'dummy-generation',\n status: 'healthy',\n url: 'https://camunda.io',\n },\n ],\n })\n }\n return clusters\n }\n}\n"],
5
+ "mappings": "AAQO,MAAM,wBAAwB;AAAA,EACnC,OAAc,kBAAkB,SAER;AACtB,UAAM,eAAe,QAAQ,gBAAgB;AAC7C,UAAM,WAAgC,CAAC;AACvC,aAAS,IAAI,GAAG,IAAI,cAAc,KAAK;AACrC,eAAS,KAAK;AAAA,QACZ,MAAM,cAAc,CAAC;AAAA,QACrB,MAAM,iBAAiB,CAAC;AAAA,QACxB,WAAW,mBAAmB,CAAC;AAAA,QAC/B,QAAQ;AAAA,QACR,YAAY;AAAA,QACZ,MAAM;AAAA,QACN,MAAM;AAAA,UACJ;AAAA,YACE,MAAM;AAAA,YACN,IAAI;AAAA,YACJ,YAAY;AAAA,YACZ,QAAQ;AAAA,YACR,KAAK;AAAA,UACP;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,7 @@
1
+ import { OrganizationRole } from '../enums/OrganizationRole.enum.js';
2
+ export interface EnterpriseConnectionOrganizationAssignment {
3
+ orgId: string;
4
+ roles: OrganizationRole[];
5
+ }
6
+ export declare function enterpriseConnectionMetadataToOrganizationAssignments(metadata: Record<string, string>): EnterpriseConnectionOrganizationAssignment[];
7
+ export declare function organizationAssignmentsToEnterpriseConnectionMetadata(orgAssignments: EnterpriseConnectionOrganizationAssignment[]): Record<string, string>;