@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.
- package/dist/_tests/constants/pre89EnvVarMapping.const.spec.d.ts +1 -0
- package/dist/_tests/types/SuspendStrategy.type.spec.d.ts +1 -0
- package/dist/_tests/utils/string-validation.utils.spec.d.ts +1 -0
- package/dist/_tests/utils/versionCheck.utils.spec.d.ts +1 -0
- package/dist/config/camundi-permission-rules.d.ts +3 -0
- package/dist/config/camundi-permission-rules.js +44 -0
- package/dist/config/camundi-permission-rules.js.map +7 -0
- package/dist/config/camundi-permission-rules.types.d.ts +52 -0
- package/dist/config/camundi-permission-rules.types.js +9 -0
- package/dist/config/camundi-permission-rules.types.js.map +7 -0
- package/dist/constants/duration.const.d.ts +5 -0
- package/dist/constants/duration.const.js +13 -0
- package/dist/constants/duration.const.js.map +7 -0
- package/dist/constants/misc.const.d.ts +73 -0
- package/dist/constants/misc.const.js +115 -0
- package/dist/constants/misc.const.js.map +7 -0
- package/dist/constants/pre89EnvVarMapping.const.d.ts +44 -0
- package/dist/constants/pre89EnvVarMapping.const.js +72 -0
- package/dist/constants/pre89EnvVarMapping.const.js.map +7 -0
- package/dist/constants/privateLinkRegions.const.d.ts +1 -0
- package/dist/constants/privateLinkRegions.const.js +40 -0
- package/dist/constants/privateLinkRegions.const.js.map +7 -0
- package/dist/dtos/AlertSubscription.dto.d.ts +37 -0
- package/dist/dtos/AlertSubscription.dto.js +22 -0
- package/dist/dtos/AlertSubscription.dto.js.map +7 -0
- package/dist/dtos/Audit.dto.d.ts +15 -0
- package/dist/dtos/Audit.dto.js +1 -0
- package/dist/dtos/Audit.dto.js.map +7 -0
- package/dist/dtos/Auth0ResourceServer.dto.d.ts +9 -0
- package/dist/dtos/Auth0ResourceServer.dto.js +1 -0
- package/dist/dtos/Auth0ResourceServer.dto.js.map +7 -0
- package/dist/dtos/Backup.dto.d.ts +12 -0
- package/dist/dtos/Backup.dto.js +1 -0
- package/dist/dtos/Backup.dto.js.map +7 -0
- package/dist/dtos/BackupSchedule.dto.d.ts +4 -0
- package/dist/dtos/BackupSchedule.dto.js +1 -0
- package/dist/dtos/BackupSchedule.dto.js.map +7 -0
- package/dist/dtos/ByomClient.dto.d.ts +17 -0
- package/dist/dtos/ByomClient.dto.js +1 -0
- package/dist/dtos/ByomClient.dto.js.map +7 -0
- package/dist/dtos/ClusterIpWhitelist.dto.d.ts +4 -0
- package/dist/dtos/ClusterIpWhitelist.dto.js +1 -0
- package/dist/dtos/ClusterIpWhitelist.dto.js.map +7 -0
- package/dist/dtos/ClusterPlan.dto.d.ts +10 -0
- package/dist/dtos/ClusterPlan.dto.js +1 -0
- package/dist/dtos/ClusterPlan.dto.js.map +7 -0
- package/dist/dtos/ClusterPlanType.dto.d.ts +15 -0
- package/dist/dtos/ClusterPlanType.dto.js +1 -0
- package/dist/dtos/ClusterPlanType.dto.js.map +7 -0
- package/dist/dtos/CommonCluster.dto.d.ts +66 -0
- package/dist/dtos/CommonCluster.dto.js +1 -0
- package/dist/dtos/CommonCluster.dto.js.map +7 -0
- package/dist/dtos/ConsoleCluster.dto.d.ts +16 -0
- package/dist/dtos/ConsoleCluster.dto.js +1 -0
- package/dist/dtos/ConsoleCluster.dto.js.map +7 -0
- package/dist/dtos/EarlyAccessFeature.dto.d.ts +18 -0
- package/dist/dtos/EarlyAccessFeature.dto.js +1 -0
- package/dist/dtos/EarlyAccessFeature.dto.js.map +7 -0
- package/dist/dtos/Generations.dto.d.ts +27 -0
- package/dist/dtos/Generations.dto.js +21 -0
- package/dist/dtos/Generations.dto.js.map +7 -0
- package/dist/dtos/Hdp.dto.d.ts +25 -0
- package/dist/dtos/Hdp.dto.js +1 -0
- package/dist/dtos/Hdp.dto.js.map +7 -0
- package/dist/dtos/K8sContext.dto.d.ts +45 -0
- package/dist/dtos/K8sContext.dto.js +1 -0
- package/dist/dtos/K8sContext.dto.js.map +7 -0
- package/dist/dtos/Meta.dto.d.ts +3 -0
- package/dist/dtos/Meta.dto.js +1 -0
- package/dist/dtos/Meta.dto.js.map +7 -0
- package/dist/dtos/Organization.dto.d.ts +51 -0
- package/dist/dtos/Organization.dto.js +1 -0
- package/dist/dtos/Organization.dto.js.map +7 -0
- package/dist/dtos/OrganizationMember.dto.d.ts +11 -0
- package/dist/dtos/OrganizationMember.dto.js +1 -0
- package/dist/dtos/OrganizationMember.dto.js.map +7 -0
- package/dist/dtos/OrganizationToSalesPlan.dto.d.ts +19 -0
- package/dist/dtos/OrganizationToSalesPlan.dto.js +1 -0
- package/dist/dtos/OrganizationToSalesPlan.dto.js.map +7 -0
- package/dist/dtos/SalesPlan.dto.d.ts +77 -0
- package/dist/dtos/SalesPlan.dto.js +119 -0
- package/dist/dtos/SalesPlan.dto.js.map +7 -0
- package/dist/dtos/SecureConnectivity.dto.d.ts +42 -0
- package/dist/dtos/SecureConnectivity.dto.js +1 -0
- package/dist/dtos/SecureConnectivity.dto.js.map +7 -0
- package/dist/dtos/Signup.dto.d.ts +38 -0
- package/dist/dtos/Signup.dto.js +1 -0
- package/dist/dtos/Signup.dto.js.map +7 -0
- package/dist/dtos/UsageAlert.dto.d.ts +25 -0
- package/dist/dtos/UsageAlert.dto.js +20 -0
- package/dist/dtos/UsageAlert.dto.js.map +7 -0
- package/dist/dtos/UserMetaData.dto.d.ts +12 -0
- package/dist/dtos/UserMetaData.dto.js +1 -0
- package/dist/dtos/UserMetaData.dto.js.map +7 -0
- package/dist/enums/AlertSubscription.enum.d.ts +9 -0
- package/dist/enums/AlertSubscription.enum.js +16 -0
- package/dist/enums/AlertSubscription.enum.js.map +7 -0
- package/dist/enums/AuditEntity.enum.d.ts +48 -0
- package/dist/enums/AuditEntity.enum.js +55 -0
- package/dist/enums/AuditEntity.enum.js.map +7 -0
- package/dist/enums/AuditService.enum.d.ts +4 -0
- package/dist/enums/AuditService.enum.js +9 -0
- package/dist/enums/AuditService.enum.js.map +7 -0
- package/dist/enums/BackupStatus.enum.d.ts +6 -0
- package/dist/enums/BackupStatus.enum.js +11 -0
- package/dist/enums/BackupStatus.enum.js.map +7 -0
- package/dist/enums/ClusterBulkOperation.enum.d.ts +14 -0
- package/dist/enums/ClusterBulkOperation.enum.js +21 -0
- package/dist/enums/ClusterBulkOperation.enum.js.map +7 -0
- package/dist/enums/ClusterClientPermissions.enum.d.ts +7 -0
- package/dist/enums/ClusterClientPermissions.enum.js +12 -0
- package/dist/enums/ClusterClientPermissions.enum.js.map +7 -0
- package/dist/enums/ClusterEncryptionKey.enum.d.ts +6 -0
- package/dist/enums/ClusterEncryptionKey.enum.js +11 -0
- package/dist/enums/ClusterEncryptionKey.enum.js.map +7 -0
- package/dist/enums/ClusterStatus.enum.d.ts +8 -0
- package/dist/enums/ClusterStatus.enum.js +13 -0
- package/dist/enums/ClusterStatus.enum.js.map +7 -0
- package/dist/enums/ConsoleApiClientPermission.enum.d.ts +35 -0
- package/dist/enums/ConsoleApiClientPermission.enum.js +40 -0
- package/dist/enums/ConsoleApiClientPermission.enum.js.map +7 -0
- package/dist/enums/ErrorType.enum.d.ts +12 -0
- package/dist/enums/ErrorType.enum.js +17 -0
- package/dist/enums/ErrorType.enum.js.map +7 -0
- package/dist/enums/OrganizationRole.enum.d.ts +30 -0
- package/dist/enums/OrganizationRole.enum.js +35 -0
- package/dist/enums/OrganizationRole.enum.js.map +7 -0
- package/dist/enums/Sse.enum.d.ts +19 -0
- package/dist/enums/Sse.enum.js +26 -0
- package/dist/enums/Sse.enum.js.map +7 -0
- package/dist/index.d.ts +113 -0
- package/dist/index.js +324 -0
- package/dist/index.js.map +7 -0
- package/dist/permissions/accounts.permissions.d.ts +171 -0
- package/dist/permissions/accounts.permissions.js +562 -0
- package/dist/permissions/accounts.permissions.js.map +7 -0
- package/dist/permissions/alert-distributor.permissions.d.ts +26 -0
- package/dist/permissions/alert-distributor.permissions.js +68 -0
- package/dist/permissions/alert-distributor.permissions.js.map +7 -0
- package/dist/permissions/auditlogger.permissions.d.ts +16 -0
- package/dist/permissions/auditlogger.permissions.js +42 -0
- package/dist/permissions/auditlogger.permissions.js.map +7 -0
- package/dist/permissions/combo.d.ts +4 -0
- package/dist/permissions/combo.js +299 -0
- package/dist/permissions/combo.js.map +7 -0
- package/dist/permissions/console.permissions.d.ts +114 -0
- package/dist/permissions/console.permissions.js +369 -0
- package/dist/permissions/console.permissions.js.map +7 -0
- package/dist/permissions/notification.permissions.d.ts +36 -0
- package/dist/permissions/notification.permissions.js +101 -0
- package/dist/permissions/notification.permissions.js.map +7 -0
- package/dist/permissions/profile.permissions.d.ts +18 -0
- package/dist/permissions/profile.permissions.js +272 -0
- package/dist/permissions/profile.permissions.js.map +7 -0
- package/dist/permissions/roleExpansion.utils.d.ts +10 -0
- package/dist/permissions/roleExpansion.utils.js +27 -0
- package/dist/permissions/roleExpansion.utils.js.map +7 -0
- package/dist/types/AuditData.type.d.ts +20 -0
- package/dist/types/AuditData.type.js +1 -0
- package/dist/types/AuditData.type.js.map +7 -0
- package/dist/types/Bot.types.d.ts +44 -0
- package/dist/types/Bot.types.js +1 -0
- package/dist/types/Bot.types.js.map +7 -0
- package/dist/types/BulkOperation.type.d.ts +57 -0
- package/dist/types/BulkOperation.type.js +19 -0
- package/dist/types/BulkOperation.type.js.map +7 -0
- package/dist/types/C8ClusterComponentVersions.type.d.ts +24 -0
- package/dist/types/C8ClusterComponentVersions.type.js +26 -0
- package/dist/types/C8ClusterComponentVersions.type.js.map +7 -0
- package/dist/types/CamundaClusterLabels.type.d.ts +13 -0
- package/dist/types/CamundaClusterLabels.type.js +12 -0
- package/dist/types/CamundaClusterLabels.type.js.map +7 -0
- package/dist/types/Chargebee.type.d.ts +19 -0
- package/dist/types/Chargebee.type.js +15 -0
- package/dist/types/Chargebee.type.js.map +7 -0
- package/dist/types/ClusterBulkOperation.type.d.ts +67 -0
- package/dist/types/ClusterBulkOperation.type.js +1 -0
- package/dist/types/ClusterBulkOperation.type.js.map +7 -0
- package/dist/types/ClusterModification.type.d.ts +26 -0
- package/dist/types/ClusterModification.type.js +1 -0
- package/dist/types/ClusterModification.type.js.map +7 -0
- package/dist/types/ClusterPlanModification.type.d.ts +22 -0
- package/dist/types/ClusterPlanModification.type.js +1 -0
- package/dist/types/ClusterPlanModification.type.js.map +7 -0
- package/dist/types/ClusterPlanTypeAvailabilityClass.type.d.ts +7 -0
- package/dist/types/ClusterPlanTypeAvailabilityClass.type.js +21 -0
- package/dist/types/ClusterPlanTypeAvailabilityClass.type.js.map +7 -0
- package/dist/types/ClusterPlanTypeCategory.type.d.ts +13 -0
- package/dist/types/ClusterPlanTypeCategory.type.js +40 -0
- package/dist/types/ClusterPlanTypeCategory.type.js.map +7 -0
- package/dist/types/ClusterPlanTypesToConfig.type.d.ts +7 -0
- package/dist/types/ClusterPlanTypesToConfig.type.js +1 -0
- package/dist/types/ClusterPlanTypesToConfig.type.js.map +7 -0
- package/dist/types/ClusterPlanTypesToReserved.type.d.ts +3 -0
- package/dist/types/ClusterPlanTypesToReserved.type.js +1 -0
- package/dist/types/ClusterPlanTypesToReserved.type.js.map +7 -0
- package/dist/types/ClusterUsageMetrics.type.d.ts +49 -0
- package/dist/types/ClusterUsageMetrics.type.js +1 -0
- package/dist/types/ClusterUsageMetrics.type.js.map +7 -0
- package/dist/types/ConsoleSelfManaged.type.d.ts +200 -0
- package/dist/types/ConsoleSelfManaged.type.js +93 -0
- package/dist/types/ConsoleSelfManaged.type.js.map +7 -0
- package/dist/types/ConsoleSelfManagedAdminApi.type.d.ts +111 -0
- package/dist/types/ConsoleSelfManagedAdminApi.type.js +1 -0
- package/dist/types/ConsoleSelfManagedAdminApi.type.js.map +7 -0
- package/dist/types/Dashboard.types.d.ts +23 -0
- package/dist/types/Dashboard.types.js +1 -0
- package/dist/types/Dashboard.types.js.map +7 -0
- package/dist/types/EnterpriseIncludingValueMetrics.type.d.ts +5 -0
- package/dist/types/EnterpriseIncludingValueMetrics.type.js +1 -0
- package/dist/types/EnterpriseIncludingValueMetrics.type.js.map +7 -0
- package/dist/types/OrganizationPermission.type.d.ts +64 -0
- package/dist/types/OrganizationPermission.type.js +784 -0
- package/dist/types/OrganizationPermission.type.js.map +7 -0
- package/dist/types/Roles.d.ts +5 -0
- package/dist/types/Roles.js +9 -0
- package/dist/types/Roles.js.map +7 -0
- package/dist/types/SalesPlanType.type.d.ts +36 -0
- package/dist/types/SalesPlanType.type.js +74 -0
- package/dist/types/SalesPlanType.type.js.map +7 -0
- package/dist/types/SpamDetection.type.d.ts +2 -0
- package/dist/types/SpamDetection.type.js +8 -0
- package/dist/types/SpamDetection.type.js.map +7 -0
- package/dist/types/SseEvent.type.d.ts +96 -0
- package/dist/types/SseEvent.type.js +1 -0
- package/dist/types/SseEvent.type.js.map +7 -0
- package/dist/types/Stats.types.d.ts +86 -0
- package/dist/types/Stats.types.js +1 -0
- package/dist/types/Stats.types.js.map +7 -0
- package/dist/types/Survey.type.d.ts +38 -0
- package/dist/types/Survey.type.js +10 -0
- package/dist/types/Survey.type.js.map +7 -0
- package/dist/types/SuspendStrategy.type.d.ts +17 -0
- package/dist/types/SuspendStrategy.type.js +11 -0
- package/dist/types/SuspendStrategy.type.js.map +7 -0
- package/dist/types/Telemetry.type.d.ts +89 -0
- package/dist/types/Telemetry.type.js +218 -0
- package/dist/types/Telemetry.type.js.map +7 -0
- package/dist/types/User.type.d.ts +79 -0
- package/dist/types/User.type.js +12 -0
- package/dist/types/User.type.js.map +7 -0
- package/dist/types/ValueMetrics.type.d.ts +26 -0
- package/dist/types/ValueMetrics.type.js +1 -0
- package/dist/types/ValueMetrics.type.js.map +7 -0
- package/dist/types/hdp.types.d.ts +241 -0
- package/dist/types/hdp.types.js +16 -0
- package/dist/types/hdp.types.js.map +7 -0
- package/dist/types/notification.type.d.ts +71 -0
- package/dist/types/notification.type.js +37 -0
- package/dist/types/notification.type.js.map +7 -0
- package/dist/utils/PasswordPolicy.d.ts +13 -0
- package/dist/utils/PasswordPolicy.js +55 -0
- package/dist/utils/PasswordPolicy.js.map +7 -0
- package/dist/utils/camundiPermissionAugmenter.utils.d.ts +25 -0
- package/dist/utils/camundiPermissionAugmenter.utils.js +70 -0
- package/dist/utils/camundiPermissionAugmenter.utils.js.map +7 -0
- package/dist/utils/console-sm.utils.d.ts +6 -0
- package/dist/utils/console-sm.utils.js +30 -0
- package/dist/utils/console-sm.utils.js.map +7 -0
- package/dist/utils/enterprise-connection.utils.d.ts +7 -0
- package/dist/utils/enterprise-connection.utils.js +34 -0
- package/dist/utils/enterprise-connection.utils.js.map +7 -0
- package/dist/utils/labelValidator.utils.d.ts +5 -0
- package/dist/utils/labelValidator.utils.js +17 -0
- package/dist/utils/labelValidator.utils.js.map +7 -0
- package/dist/utils/objectMerge.utils.d.ts +20 -0
- package/dist/utils/objectMerge.utils.js +90 -0
- package/dist/utils/objectMerge.utils.js.map +7 -0
- package/dist/utils/orgs/OrgHelper.d.ts +4 -0
- package/dist/utils/orgs/OrgHelper.js +234 -0
- package/dist/utils/orgs/OrgHelper.js.map +7 -0
- package/dist/utils/settledPromises.util.d.ts +13 -0
- package/dist/utils/settledPromises.util.js +26 -0
- package/dist/utils/settledPromises.util.js.map +7 -0
- package/dist/utils/string-validation.utils.d.ts +44 -0
- package/dist/utils/string-validation.utils.js +94 -0
- package/dist/utils/string-validation.utils.js.map +7 -0
- package/dist/utils/user.utils.d.ts +10 -0
- package/dist/utils/user.utils.js +53 -0
- package/dist/utils/user.utils.js.map +7 -0
- package/dist/utils/versionCheck.utils.d.ts +15 -0
- package/dist/utils/versionCheck.utils.js +75 -0
- package/dist/utils/versionCheck.utils.js.map +7 -0
- package/package.json +39 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { OrganizationRole } from "../enums/OrganizationRole.enum.js";
|
|
2
|
+
const ORG_PREFIX = "org:";
|
|
3
|
+
function enterpriseConnectionMetadataToOrganizationAssignments(metadata) {
|
|
4
|
+
const orgAssignments = [];
|
|
5
|
+
if (metadata) {
|
|
6
|
+
for (const key in metadata) {
|
|
7
|
+
if (key.startsWith(ORG_PREFIX)) {
|
|
8
|
+
const orgId = key.replace(ORG_PREFIX, "");
|
|
9
|
+
const orgRolesAsStrings = metadata[key].split(",").map((orgRoles) => {
|
|
10
|
+
return orgRoles.trim();
|
|
11
|
+
});
|
|
12
|
+
if (orgRolesAsStrings.length === 0) {
|
|
13
|
+
orgRolesAsStrings.push(OrganizationRole.VISITOR);
|
|
14
|
+
}
|
|
15
|
+
orgAssignments.push({ orgId, roles: orgRolesAsStrings });
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return orgAssignments;
|
|
20
|
+
}
|
|
21
|
+
function organizationAssignmentsToEnterpriseConnectionMetadata(orgAssignments) {
|
|
22
|
+
const metadata = {};
|
|
23
|
+
for (const assignment of orgAssignments) {
|
|
24
|
+
const orgRolesAsString = assignment.roles.join(",");
|
|
25
|
+
const key = `${ORG_PREFIX}${assignment.orgId}`;
|
|
26
|
+
metadata[key] = orgRolesAsString;
|
|
27
|
+
}
|
|
28
|
+
return metadata;
|
|
29
|
+
}
|
|
30
|
+
export {
|
|
31
|
+
enterpriseConnectionMetadataToOrganizationAssignments,
|
|
32
|
+
organizationAssignmentsToEnterpriseConnectionMetadata
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=enterprise-connection.utils.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/enterprise-connection.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 { OrganizationRole } from '../enums/OrganizationRole.enum.js'\n\nexport interface EnterpriseConnectionOrganizationAssignment {\n orgId: string\n roles: OrganizationRole[]\n}\n\n/**\n * Helper function to convert metadata from an enterprise connection to organization assignments\n * Pattern:\n * \"org:<orgId>\": \"orgRole1,orgRole2,...\"\n * Metadata of auth0 connections only allows for string values, so we need to serialize the roles\n * We can add a max of 10 attributes, see https://auth0.com/docs/api/management/v2/connections/post-connections\n * Hint: Obviously the metadata is only added and not overwritten. To remove a key, set it to an empty string.\n */\nconst ORG_PREFIX = 'org:'\n\nexport function enterpriseConnectionMetadataToOrganizationAssignments(\n metadata: Record<string, string>,\n): EnterpriseConnectionOrganizationAssignment[] {\n const orgAssignments: EnterpriseConnectionOrganizationAssignment[] = []\n if (metadata) {\n for (const key in metadata) {\n if (key.startsWith(ORG_PREFIX)) {\n const orgId = key.replace(ORG_PREFIX, '')\n const orgRolesAsStrings = metadata[key].split(',').map((orgRoles) => {\n return orgRoles.trim() as OrganizationRole\n })\n if (orgRolesAsStrings.length === 0) {\n // This is a fallback in case the metadata is not set correctly\n orgRolesAsStrings.push(OrganizationRole.VISITOR)\n }\n orgAssignments.push({ orgId, roles: orgRolesAsStrings })\n }\n }\n }\n return orgAssignments\n}\n\nexport function organizationAssignmentsToEnterpriseConnectionMetadata(\n orgAssignments: EnterpriseConnectionOrganizationAssignment[],\n): Record<string, string> {\n const metadata: Record<string, string> = {}\n for (const assignment of orgAssignments) {\n const orgRolesAsString = assignment.roles.join(',')\n const key = `${ORG_PREFIX}${assignment.orgId}`\n metadata[key] = orgRolesAsString\n }\n return metadata\n}\n"],
|
|
5
|
+
"mappings": "AAMA,SAAS,wBAAwB;AAejC,MAAM,aAAa;AAEZ,SAAS,sDACd,UAC8C;AAC9C,QAAM,iBAA+D,CAAC;AACtE,MAAI,UAAU;AACZ,eAAW,OAAO,UAAU;AAC1B,UAAI,IAAI,WAAW,UAAU,GAAG;AAC9B,cAAM,QAAQ,IAAI,QAAQ,YAAY,EAAE;AACxC,cAAM,oBAAoB,SAAS,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,CAAC,aAAa;AACnE,iBAAO,SAAS,KAAK;AAAA,QACvB,CAAC;AACD,YAAI,kBAAkB,WAAW,GAAG;AAElC,4BAAkB,KAAK,iBAAiB,OAAO;AAAA,QACjD;AACA,uBAAe,KAAK,EAAE,OAAO,OAAO,kBAAkB,CAAC;AAAA,MACzD;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAEO,SAAS,sDACd,gBACwB;AACxB,QAAM,WAAmC,CAAC;AAC1C,aAAW,cAAc,gBAAgB;AACvC,UAAM,mBAAmB,WAAW,MAAM,KAAK,GAAG;AAClD,UAAM,MAAM,GAAG,UAAU,GAAG,WAAW,KAAK;AAC5C,aAAS,GAAG,IAAI;AAAA,EAClB;AACA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ALLOWED_CAMUNDA_LABELS
|
|
3
|
+
} from "../types/CamundaClusterLabels.type.js";
|
|
4
|
+
function validateLabels(labels) {
|
|
5
|
+
if (labels.camunda?.length > 0) {
|
|
6
|
+
if (!labels.camunda.every(
|
|
7
|
+
(camundaLabelToBeSet) => ALLOWED_CAMUNDA_LABELS.includes(camundaLabelToBeSet)
|
|
8
|
+
)) {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
export {
|
|
15
|
+
validateLabels
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=labelValidator.utils.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/labelValidator.utils.ts"],
|
|
4
|
+
"sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nimport {\n ALLOWED_CAMUNDA_LABELS,\n type CamundaClusterStage,\n} from '../types/CamundaClusterLabels.type.js'\n\nexport function validateLabels(labels: {\n custom?: string[]\n camunda?: CamundaClusterStage[]\n}): boolean {\n if (labels.camunda?.length > 0) {\n if (\n !labels.camunda.every((camundaLabelToBeSet) =>\n ALLOWED_CAMUNDA_LABELS.includes(camundaLabelToBeSet),\n )\n ) {\n return false\n }\n }\n return true\n}\n"],
|
|
5
|
+
"mappings": "AAMA;AAAA,EACE;AAAA,OAEK;AAEA,SAAS,eAAe,QAGnB;AACV,MAAI,OAAO,SAAS,SAAS,GAAG;AAC9B,QACE,CAAC,OAAO,QAAQ;AAAA,MAAM,CAAC,wBACrB,uBAAuB,SAAS,mBAAmB;AAAA,IACrD,GACA;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface SameObjectIdentifier {
|
|
2
|
+
path: string;
|
|
3
|
+
keys: string[];
|
|
4
|
+
}
|
|
5
|
+
export interface ObjectMergeOptions {
|
|
6
|
+
objectA: any;
|
|
7
|
+
objectB: any;
|
|
8
|
+
sameObjectIdentifier?: SameObjectIdentifier[];
|
|
9
|
+
arrayMergeStrategy?: 'replace' | 'merge';
|
|
10
|
+
path?: string[];
|
|
11
|
+
}
|
|
12
|
+
export declare class ObjectMergeUtils {
|
|
13
|
+
/**
|
|
14
|
+
* Merges two objects together. If a key exists in both objects, the value of the second object will be used.
|
|
15
|
+
* @param options objectB will be merged into objectA
|
|
16
|
+
* @returns
|
|
17
|
+
*/
|
|
18
|
+
static merge(options: ObjectMergeOptions): any;
|
|
19
|
+
static mergeArray(options: ObjectMergeOptions): any[];
|
|
20
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
class ObjectMergeUtils {
|
|
2
|
+
/**
|
|
3
|
+
* Merges two objects together. If a key exists in both objects, the value of the second object will be used.
|
|
4
|
+
* @param options objectB will be merged into objectA
|
|
5
|
+
* @returns
|
|
6
|
+
*/
|
|
7
|
+
static merge(options) {
|
|
8
|
+
const sameObjectIdentifier = options.sameObjectIdentifier ?? [];
|
|
9
|
+
const newObject = { ...options.objectA };
|
|
10
|
+
for (const key of Object.keys(options.objectB ?? {})) {
|
|
11
|
+
const currentPath = options.path ? [...options.path] : [];
|
|
12
|
+
currentPath.push(key);
|
|
13
|
+
if (newObject[key] === void 0) {
|
|
14
|
+
newObject[key] = options.objectB[key];
|
|
15
|
+
} else {
|
|
16
|
+
if (Array.isArray(newObject[key])) {
|
|
17
|
+
newObject[key] = ObjectMergeUtils.mergeArray({
|
|
18
|
+
objectA: newObject[key],
|
|
19
|
+
objectB: options.objectB[key],
|
|
20
|
+
sameObjectIdentifier,
|
|
21
|
+
path: currentPath
|
|
22
|
+
});
|
|
23
|
+
} else if (typeof newObject[key] === "object") {
|
|
24
|
+
newObject[key] = ObjectMergeUtils.merge({
|
|
25
|
+
objectA: newObject[key],
|
|
26
|
+
objectB: options.objectB[key],
|
|
27
|
+
sameObjectIdentifier,
|
|
28
|
+
path: currentPath
|
|
29
|
+
});
|
|
30
|
+
} else {
|
|
31
|
+
newObject[key] = options.objectB[key];
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return newObject;
|
|
36
|
+
}
|
|
37
|
+
static mergeArray(options) {
|
|
38
|
+
const newArray = [...options.objectA];
|
|
39
|
+
if (!Array.isArray(options.objectB)) {
|
|
40
|
+
return newArray;
|
|
41
|
+
}
|
|
42
|
+
const currentPath = options.path ? [...options.path] : [];
|
|
43
|
+
const currentPathAsString = currentPath.join(".");
|
|
44
|
+
const sameObjectIdentifier = options.sameObjectIdentifier ?? [];
|
|
45
|
+
const foundSameObjectIdentifier = sameObjectIdentifier.find(
|
|
46
|
+
(item) => item.path === currentPathAsString
|
|
47
|
+
);
|
|
48
|
+
if (foundSameObjectIdentifier) {
|
|
49
|
+
let newArrayIndex = 0;
|
|
50
|
+
const foundTargetObjects = [];
|
|
51
|
+
for (const sourceObject of newArray) {
|
|
52
|
+
const foundTargetObject = options.objectB.find((targetItem) => {
|
|
53
|
+
return foundSameObjectIdentifier.keys.every(
|
|
54
|
+
(key) => sourceObject[key] === targetItem[key]
|
|
55
|
+
);
|
|
56
|
+
});
|
|
57
|
+
if (foundTargetObject) {
|
|
58
|
+
newArray[newArrayIndex] = ObjectMergeUtils.merge({
|
|
59
|
+
objectA: sourceObject,
|
|
60
|
+
objectB: foundTargetObject,
|
|
61
|
+
sameObjectIdentifier,
|
|
62
|
+
path: currentPath
|
|
63
|
+
});
|
|
64
|
+
foundTargetObjects.push(foundTargetObject);
|
|
65
|
+
}
|
|
66
|
+
newArrayIndex++;
|
|
67
|
+
}
|
|
68
|
+
const otherTargetObjects = options.objectB.filter(
|
|
69
|
+
(targetItem) => !foundTargetObjects.includes(targetItem)
|
|
70
|
+
);
|
|
71
|
+
if (otherTargetObjects.length > 0) {
|
|
72
|
+
newArray.push(...otherTargetObjects);
|
|
73
|
+
}
|
|
74
|
+
} else {
|
|
75
|
+
switch (options.arrayMergeStrategy) {
|
|
76
|
+
case "merge":
|
|
77
|
+
newArray.push(...options.objectB);
|
|
78
|
+
break;
|
|
79
|
+
default:
|
|
80
|
+
newArray.splice(0, newArray.length, ...options.objectB);
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return newArray;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
export {
|
|
88
|
+
ObjectMergeUtils
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=objectMerge.utils.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/objectMerge.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 interface SameObjectIdentifier {\n path: string\n keys: string[]\n}\n\nexport interface ObjectMergeOptions {\n objectA: any\n objectB: any\n sameObjectIdentifier?: SameObjectIdentifier[]\n arrayMergeStrategy?: 'replace' | 'merge'\n path?: string[]\n}\n\nexport class ObjectMergeUtils {\n /**\n * Merges two objects together. If a key exists in both objects, the value of the second object will be used.\n * @param options objectB will be merged into objectA\n * @returns\n */\n public static merge(options: ObjectMergeOptions): any {\n const sameObjectIdentifier = options.sameObjectIdentifier ?? []\n const newObject = { ...options.objectA }\n for (const key of Object.keys(options.objectB ?? {})) {\n const currentPath = options.path ? [...options.path] : []\n currentPath.push(key)\n if (newObject[key] === undefined) {\n newObject[key] = options.objectB[key]\n } else {\n if (Array.isArray(newObject[key])) {\n newObject[key] = ObjectMergeUtils.mergeArray({\n objectA: newObject[key],\n objectB: options.objectB[key],\n sameObjectIdentifier,\n path: currentPath,\n })\n } else if (typeof newObject[key] === 'object') {\n newObject[key] = ObjectMergeUtils.merge({\n objectA: newObject[key],\n objectB: options.objectB[key],\n sameObjectIdentifier,\n path: currentPath,\n })\n } else {\n newObject[key] = options.objectB[key]\n }\n }\n }\n return newObject\n }\n\n public static mergeArray(options: ObjectMergeOptions) {\n const newArray = [...options.objectA]\n if (!Array.isArray(options.objectB)) {\n // early return if object B is not an array\n return newArray\n }\n const currentPath = options.path ? [...options.path] : []\n const currentPathAsString = currentPath.join('.')\n const sameObjectIdentifier = options.sameObjectIdentifier ?? []\n const foundSameObjectIdentifier = sameObjectIdentifier.find(\n (item) => item.path === currentPathAsString,\n )\n if (foundSameObjectIdentifier) {\n // options contain a path that matches the current one\n let newArrayIndex = 0\n const foundTargetObjects: any[] = []\n for (const sourceObject of newArray) {\n const foundTargetObject = options.objectB.find((targetItem) => {\n return foundSameObjectIdentifier.keys.every(\n (key) => sourceObject[key] === targetItem[key],\n )\n })\n if (foundTargetObject) {\n newArray[newArrayIndex] = ObjectMergeUtils.merge({\n objectA: sourceObject,\n objectB: foundTargetObject,\n sameObjectIdentifier,\n path: currentPath,\n })\n foundTargetObjects.push(foundTargetObject)\n }\n newArrayIndex++\n }\n const otherTargetObjects = options.objectB.filter(\n (targetItem) => !foundTargetObjects.includes(targetItem),\n )\n if (otherTargetObjects.length > 0) {\n newArray.push(...otherTargetObjects)\n }\n } else {\n switch (options.arrayMergeStrategy) {\n case 'merge':\n newArray.push(...options.objectB)\n break\n default:\n newArray.splice(0, newArray.length, ...options.objectB)\n break\n }\n }\n return newArray\n }\n}\n"],
|
|
5
|
+
"mappings": "AAmBO,MAAM,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM5B,OAAc,MAAM,SAAkC;AACpD,UAAM,uBAAuB,QAAQ,wBAAwB,CAAC;AAC9D,UAAM,YAAY,EAAE,GAAG,QAAQ,QAAQ;AACvC,eAAW,OAAO,OAAO,KAAK,QAAQ,WAAW,CAAC,CAAC,GAAG;AACpD,YAAM,cAAc,QAAQ,OAAO,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC;AACxD,kBAAY,KAAK,GAAG;AACpB,UAAI,UAAU,GAAG,MAAM,QAAW;AAChC,kBAAU,GAAG,IAAI,QAAQ,QAAQ,GAAG;AAAA,MACtC,OAAO;AACL,YAAI,MAAM,QAAQ,UAAU,GAAG,CAAC,GAAG;AACjC,oBAAU,GAAG,IAAI,iBAAiB,WAAW;AAAA,YAC3C,SAAS,UAAU,GAAG;AAAA,YACtB,SAAS,QAAQ,QAAQ,GAAG;AAAA,YAC5B;AAAA,YACA,MAAM;AAAA,UACR,CAAC;AAAA,QACH,WAAW,OAAO,UAAU,GAAG,MAAM,UAAU;AAC7C,oBAAU,GAAG,IAAI,iBAAiB,MAAM;AAAA,YACtC,SAAS,UAAU,GAAG;AAAA,YACtB,SAAS,QAAQ,QAAQ,GAAG;AAAA,YAC5B;AAAA,YACA,MAAM;AAAA,UACR,CAAC;AAAA,QACH,OAAO;AACL,oBAAU,GAAG,IAAI,QAAQ,QAAQ,GAAG;AAAA,QACtC;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAc,WAAW,SAA6B;AACpD,UAAM,WAAW,CAAC,GAAG,QAAQ,OAAO;AACpC,QAAI,CAAC,MAAM,QAAQ,QAAQ,OAAO,GAAG;AAEnC,aAAO;AAAA,IACT;AACA,UAAM,cAAc,QAAQ,OAAO,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC;AACxD,UAAM,sBAAsB,YAAY,KAAK,GAAG;AAChD,UAAM,uBAAuB,QAAQ,wBAAwB,CAAC;AAC9D,UAAM,4BAA4B,qBAAqB;AAAA,MACrD,CAAC,SAAS,KAAK,SAAS;AAAA,IAC1B;AACA,QAAI,2BAA2B;AAE7B,UAAI,gBAAgB;AACpB,YAAM,qBAA4B,CAAC;AACnC,iBAAW,gBAAgB,UAAU;AACnC,cAAM,oBAAoB,QAAQ,QAAQ,KAAK,CAAC,eAAe;AAC7D,iBAAO,0BAA0B,KAAK;AAAA,YACpC,CAAC,QAAQ,aAAa,GAAG,MAAM,WAAW,GAAG;AAAA,UAC/C;AAAA,QACF,CAAC;AACD,YAAI,mBAAmB;AACrB,mBAAS,aAAa,IAAI,iBAAiB,MAAM;AAAA,YAC/C,SAAS;AAAA,YACT,SAAS;AAAA,YACT;AAAA,YACA,MAAM;AAAA,UACR,CAAC;AACD,6BAAmB,KAAK,iBAAiB;AAAA,QAC3C;AACA;AAAA,MACF;AACA,YAAM,qBAAqB,QAAQ,QAAQ;AAAA,QACzC,CAAC,eAAe,CAAC,mBAAmB,SAAS,UAAU;AAAA,MACzD;AACA,UAAI,mBAAmB,SAAS,GAAG;AACjC,iBAAS,KAAK,GAAG,kBAAkB;AAAA,MACrC;AAAA,IACF,OAAO;AACL,cAAQ,QAAQ,oBAAoB;AAAA,QAClC,KAAK;AACH,mBAAS,KAAK,GAAG,QAAQ,OAAO;AAChC;AAAA,QACF;AACE,mBAAS,OAAO,GAAG,SAAS,QAAQ,GAAG,QAAQ,OAAO;AACtD;AAAA,MACJ;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { OrganizationRole } from '../../enums/OrganizationRole.enum.js';
|
|
2
|
+
import { type OrganizationPermissions } from '../../types/OrganizationPermission.type.js';
|
|
3
|
+
export declare function getUserPermissionsForOrg(orgs: any, orgId: string): OrganizationPermissions | undefined;
|
|
4
|
+
export declare function getPermissionsByRoles(roles: OrganizationRole[]): OrganizationPermissions | undefined;
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import {
|
|
2
|
+
PermissionsForOrganizationRole
|
|
3
|
+
} from "../../types/OrganizationPermission.type.js";
|
|
4
|
+
function getUserPermissionsForOrg(orgs, orgId) {
|
|
5
|
+
const relatedOrg = orgs ? orgs.find((org) => org.id === orgId) : void 0;
|
|
6
|
+
return relatedOrg ? getPermissionsByRoles(relatedOrg.roles) : void 0;
|
|
7
|
+
}
|
|
8
|
+
function getPermissionsByRoles(roles) {
|
|
9
|
+
const orgPermissions = {
|
|
10
|
+
org: {
|
|
11
|
+
clusters: {
|
|
12
|
+
create: false,
|
|
13
|
+
read: false,
|
|
14
|
+
update: false,
|
|
15
|
+
delete: false
|
|
16
|
+
},
|
|
17
|
+
clients: {
|
|
18
|
+
create: false,
|
|
19
|
+
read: false,
|
|
20
|
+
update: false,
|
|
21
|
+
delete: false
|
|
22
|
+
},
|
|
23
|
+
settings: {
|
|
24
|
+
create: false,
|
|
25
|
+
read: false,
|
|
26
|
+
update: false,
|
|
27
|
+
delete: false
|
|
28
|
+
},
|
|
29
|
+
usage: {
|
|
30
|
+
create: false,
|
|
31
|
+
read: false,
|
|
32
|
+
update: false,
|
|
33
|
+
delete: false
|
|
34
|
+
},
|
|
35
|
+
billing: {
|
|
36
|
+
create: false,
|
|
37
|
+
read: false,
|
|
38
|
+
update: false,
|
|
39
|
+
delete: false
|
|
40
|
+
},
|
|
41
|
+
users: {
|
|
42
|
+
general: {
|
|
43
|
+
create: false,
|
|
44
|
+
read: false,
|
|
45
|
+
update: false,
|
|
46
|
+
delete: false
|
|
47
|
+
},
|
|
48
|
+
owner: {
|
|
49
|
+
create: false,
|
|
50
|
+
read: false,
|
|
51
|
+
update: false,
|
|
52
|
+
delete: false
|
|
53
|
+
},
|
|
54
|
+
admin: {
|
|
55
|
+
create: false,
|
|
56
|
+
read: false,
|
|
57
|
+
update: false,
|
|
58
|
+
delete: false
|
|
59
|
+
},
|
|
60
|
+
member: {
|
|
61
|
+
create: false,
|
|
62
|
+
read: false,
|
|
63
|
+
update: false,
|
|
64
|
+
delete: false
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
activity: {
|
|
68
|
+
create: false,
|
|
69
|
+
read: false,
|
|
70
|
+
update: false,
|
|
71
|
+
delete: false
|
|
72
|
+
},
|
|
73
|
+
diagrams: {
|
|
74
|
+
create: false,
|
|
75
|
+
read: false,
|
|
76
|
+
update: false,
|
|
77
|
+
delete: false
|
|
78
|
+
},
|
|
79
|
+
forms: {
|
|
80
|
+
create: false,
|
|
81
|
+
read: false,
|
|
82
|
+
update: false,
|
|
83
|
+
delete: false
|
|
84
|
+
},
|
|
85
|
+
instances: {
|
|
86
|
+
create: false,
|
|
87
|
+
read: false,
|
|
88
|
+
update: false,
|
|
89
|
+
delete: false
|
|
90
|
+
},
|
|
91
|
+
// create === start new instances
|
|
92
|
+
workflows: {
|
|
93
|
+
create: false,
|
|
94
|
+
read: false,
|
|
95
|
+
update: false,
|
|
96
|
+
delete: false
|
|
97
|
+
},
|
|
98
|
+
// create === deploy diagrams
|
|
99
|
+
webide: {
|
|
100
|
+
create: false,
|
|
101
|
+
read: false,
|
|
102
|
+
update: false,
|
|
103
|
+
delete: false
|
|
104
|
+
},
|
|
105
|
+
earlyAccessFeatures: {
|
|
106
|
+
create: false,
|
|
107
|
+
read: false,
|
|
108
|
+
update: false,
|
|
109
|
+
delete: false
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
cluster: {
|
|
113
|
+
clients: {
|
|
114
|
+
create: false,
|
|
115
|
+
read: false,
|
|
116
|
+
update: false,
|
|
117
|
+
delete: false
|
|
118
|
+
},
|
|
119
|
+
alerts: {
|
|
120
|
+
create: false,
|
|
121
|
+
read: false,
|
|
122
|
+
update: false,
|
|
123
|
+
delete: false
|
|
124
|
+
},
|
|
125
|
+
operate: {
|
|
126
|
+
create: false,
|
|
127
|
+
read: false,
|
|
128
|
+
update: false,
|
|
129
|
+
delete: false
|
|
130
|
+
},
|
|
131
|
+
tasklist: {
|
|
132
|
+
create: false,
|
|
133
|
+
read: false,
|
|
134
|
+
update: false,
|
|
135
|
+
delete: false
|
|
136
|
+
},
|
|
137
|
+
optimize: {
|
|
138
|
+
create: false,
|
|
139
|
+
read: false,
|
|
140
|
+
update: false,
|
|
141
|
+
delete: false
|
|
142
|
+
},
|
|
143
|
+
identity: {
|
|
144
|
+
create: false,
|
|
145
|
+
read: false,
|
|
146
|
+
update: false,
|
|
147
|
+
delete: false
|
|
148
|
+
},
|
|
149
|
+
ipWhitelist: {
|
|
150
|
+
create: false,
|
|
151
|
+
read: false,
|
|
152
|
+
update: false,
|
|
153
|
+
delete: false
|
|
154
|
+
},
|
|
155
|
+
secureConnectivity: {
|
|
156
|
+
create: false,
|
|
157
|
+
read: false,
|
|
158
|
+
update: false,
|
|
159
|
+
delete: false
|
|
160
|
+
},
|
|
161
|
+
encryption: {
|
|
162
|
+
create: false,
|
|
163
|
+
read: false,
|
|
164
|
+
update: false,
|
|
165
|
+
delete: false
|
|
166
|
+
},
|
|
167
|
+
connectorSecrets: {
|
|
168
|
+
create: false,
|
|
169
|
+
read: false,
|
|
170
|
+
update: false,
|
|
171
|
+
delete: false
|
|
172
|
+
},
|
|
173
|
+
connectors: {
|
|
174
|
+
create: false,
|
|
175
|
+
read: false,
|
|
176
|
+
update: false,
|
|
177
|
+
delete: false
|
|
178
|
+
},
|
|
179
|
+
settings: {
|
|
180
|
+
resourceBasedAuthorizations: {
|
|
181
|
+
activate: {
|
|
182
|
+
create: false,
|
|
183
|
+
read: false,
|
|
184
|
+
update: false,
|
|
185
|
+
delete: false
|
|
186
|
+
},
|
|
187
|
+
configure: {
|
|
188
|
+
create: false,
|
|
189
|
+
read: false,
|
|
190
|
+
update: false,
|
|
191
|
+
delete: false
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
identityBasedAuthorizations: {
|
|
195
|
+
activate: {
|
|
196
|
+
create: false,
|
|
197
|
+
read: false,
|
|
198
|
+
update: false,
|
|
199
|
+
delete: false
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
multiTenancy: {
|
|
203
|
+
activate: {
|
|
204
|
+
create: false,
|
|
205
|
+
read: false,
|
|
206
|
+
update: false,
|
|
207
|
+
delete: false
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
};
|
|
213
|
+
const permissionsForRoles = roles.map(
|
|
214
|
+
(role) => PermissionsForOrganizationRole.get(role)
|
|
215
|
+
);
|
|
216
|
+
for (const orgRolePermissions of permissionsForRoles) {
|
|
217
|
+
mergePermissions(orgPermissions, orgRolePermissions);
|
|
218
|
+
}
|
|
219
|
+
return orgPermissions;
|
|
220
|
+
}
|
|
221
|
+
function mergePermissions(target, permission) {
|
|
222
|
+
for (const key of Object.keys(target)) {
|
|
223
|
+
if (typeof target[key] === "boolean") {
|
|
224
|
+
target[key] = target[key] || permission[key];
|
|
225
|
+
} else {
|
|
226
|
+
mergePermissions(target[key], permission[key]);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
export {
|
|
231
|
+
getPermissionsByRoles,
|
|
232
|
+
getUserPermissionsForOrg
|
|
233
|
+
};
|
|
234
|
+
//# sourceMappingURL=OrgHelper.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 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 ? orgs.find((org) => org.id === orgId) : 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
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const allSettledResultsCounts: (results: PromiseSettledResult<any>[]) => {
|
|
2
|
+
fulfilled: number;
|
|
3
|
+
rejected: number;
|
|
4
|
+
total: number;
|
|
5
|
+
};
|
|
6
|
+
export declare function getFulfilledPromises<T>(results: PromiseSettledResult<T>[]): T[];
|
|
7
|
+
export declare function getRejectedPromises<T>(results: PromiseSettledResult<T>[]): any[];
|
|
8
|
+
export declare function getSettledSummary<T>(results: PromiseSettledResult<T>[]): {
|
|
9
|
+
reasons: any[];
|
|
10
|
+
fulfilled: number;
|
|
11
|
+
rejected: number;
|
|
12
|
+
total: number;
|
|
13
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const allSettledResultsCounts = (results) => ({
|
|
2
|
+
// eslint-disable-next-line id-length
|
|
3
|
+
fulfilled: results.filter((r) => r.status === "fulfilled").length,
|
|
4
|
+
// eslint-disable-next-line id-length
|
|
5
|
+
rejected: results.filter((r) => r.status === "rejected").length,
|
|
6
|
+
total: results.length
|
|
7
|
+
});
|
|
8
|
+
function getFulfilledPromises(results) {
|
|
9
|
+
return results.filter((r) => r.status === "fulfilled").map((r) => r.value);
|
|
10
|
+
}
|
|
11
|
+
function getRejectedPromises(results) {
|
|
12
|
+
return results.filter((r) => r.status === "rejected").map((r) => r.reason);
|
|
13
|
+
}
|
|
14
|
+
function getSettledSummary(results) {
|
|
15
|
+
return {
|
|
16
|
+
...allSettledResultsCounts(results),
|
|
17
|
+
reasons: getRejectedPromises(results)
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export {
|
|
21
|
+
allSettledResultsCounts,
|
|
22
|
+
getFulfilledPromises,
|
|
23
|
+
getRejectedPromises,
|
|
24
|
+
getSettledSummary
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=settledPromises.util.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/settledPromises.util.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 const allSettledResultsCounts = (\n results: PromiseSettledResult<any>[],\n) => ({\n // eslint-disable-next-line id-length\n fulfilled: results.filter((r) => r.status === 'fulfilled').length,\n // eslint-disable-next-line id-length\n rejected: results.filter((r) => r.status === 'rejected').length,\n total: results.length,\n})\n\nexport function getFulfilledPromises<T>(\n results: PromiseSettledResult<T>[],\n): T[] {\n return (\n results\n // eslint-disable-next-line id-length\n .filter((r) => r.status === 'fulfilled')\n // eslint-disable-next-line id-length\n .map((r) => (r as PromiseFulfilledResult<T>).value)\n )\n}\nexport function getRejectedPromises<T>(results: PromiseSettledResult<T>[]) {\n return (\n results\n // eslint-disable-next-line id-length\n .filter((r) => r.status === 'rejected')\n // eslint-disable-next-line id-length\n .map((r) => (r as PromiseRejectedResult).reason)\n )\n}\nexport function getSettledSummary<T>(results: PromiseSettledResult<T>[]) {\n return {\n ...allSettledResultsCounts(results),\n reasons: getRejectedPromises(results),\n }\n}\n"],
|
|
5
|
+
"mappings": "AAMO,MAAM,0BAA0B,CACrC,aACI;AAAA;AAAA,EAEJ,WAAW,QAAQ,OAAO,CAAC,MAAM,EAAE,WAAW,WAAW,EAAE;AAAA;AAAA,EAE3D,UAAU,QAAQ,OAAO,CAAC,MAAM,EAAE,WAAW,UAAU,EAAE;AAAA,EACzD,OAAO,QAAQ;AACjB;AAEO,SAAS,qBACd,SACK;AACL,SACE,QAEG,OAAO,CAAC,MAAM,EAAE,WAAW,WAAW,EAEtC,IAAI,CAAC,MAAO,EAAgC,KAAK;AAExD;AACO,SAAS,oBAAuB,SAAoC;AACzE,SACE,QAEG,OAAO,CAAC,MAAM,EAAE,WAAW,UAAU,EAErC,IAAI,CAAC,MAAO,EAA4B,MAAM;AAErD;AACO,SAAS,kBAAqB,SAAoC;AACvE,SAAO;AAAA,IACL,GAAG,wBAAwB,OAAO;AAAA,IAClC,SAAS,oBAAoB,OAAO;AAAA,EACtC;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export declare function isValidHostname(value: string): boolean;
|
|
2
|
+
/**
|
|
3
|
+
* Validates that a client name contains only allowed characters:
|
|
4
|
+
* letters, digits, dashes, and underscores.
|
|
5
|
+
*
|
|
6
|
+
* @param name - The client name to validate
|
|
7
|
+
* @returns true if the name is valid, false otherwise
|
|
8
|
+
*/
|
|
9
|
+
export declare function isValidClientName(name: string): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Validates a single IPv4 address or CIDR notation.
|
|
12
|
+
*
|
|
13
|
+
* Valid examples:
|
|
14
|
+
* - 192.168.1.1
|
|
15
|
+
* - 10.0.0.0/8
|
|
16
|
+
* - 0.0.0.0/0
|
|
17
|
+
* - 255.255.255.255/32
|
|
18
|
+
*
|
|
19
|
+
* Invalid examples:
|
|
20
|
+
* - 999.999.999.999 (octets must be 0-255)
|
|
21
|
+
* - 1.2.3.4/55 (prefix must be 0-32)
|
|
22
|
+
* - 256.1.1.1 (octets must be 0-255)
|
|
23
|
+
* - 1.2.3 (must have 4 octets)
|
|
24
|
+
*
|
|
25
|
+
* @param cidr - The IPv4 address or CIDR notation to validate
|
|
26
|
+
* @returns true if the CIDR is valid, false otherwise
|
|
27
|
+
*/
|
|
28
|
+
export declare function isValidCIDR(cidr: string): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Validates a comma-separated list of IPv4 addresses and/or CIDR notations.
|
|
31
|
+
*
|
|
32
|
+
* Valid examples:
|
|
33
|
+
* - "192.168.1.1"
|
|
34
|
+
* - "192.168.1.1,10.0.0.0/8"
|
|
35
|
+
* - "192.168.1.1, 10.0.0.0/8" (spaces are trimmed)
|
|
36
|
+
*
|
|
37
|
+
* Invalid examples:
|
|
38
|
+
* - "192.168.1.1,999.999.999.999" (second entry is invalid)
|
|
39
|
+
* - "1.2.3.4/55" (prefix is invalid)
|
|
40
|
+
*
|
|
41
|
+
* @param cidrList - A comma-separated list of IPv4 addresses or CIDR notations
|
|
42
|
+
* @returns true if all entries in the list are valid, false otherwise
|
|
43
|
+
*/
|
|
44
|
+
export declare function isValidCIDRList(cidrList: string): boolean;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
function isValidHostname(value) {
|
|
2
|
+
if (typeof value !== "string") {
|
|
3
|
+
return false;
|
|
4
|
+
}
|
|
5
|
+
const validHostnameChars = /^[a-zA-Z0-9-.]{1,253}\.?$/gu;
|
|
6
|
+
if (!validHostnameChars.test(value)) {
|
|
7
|
+
return false;
|
|
8
|
+
}
|
|
9
|
+
if (value.endsWith(".")) {
|
|
10
|
+
value = value.slice(0, value.length - 1);
|
|
11
|
+
}
|
|
12
|
+
if (value.length > 253) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
const labels = value.split(".");
|
|
16
|
+
const isValid = labels.every((label) => {
|
|
17
|
+
const validLabelChars = /^([a-zA-Z0-9-]+)$/gu;
|
|
18
|
+
const validLabel = validLabelChars.test(label) && label.length < 64 && !label.startsWith("-") && !label.endsWith("-");
|
|
19
|
+
return validLabel;
|
|
20
|
+
});
|
|
21
|
+
return isValid;
|
|
22
|
+
}
|
|
23
|
+
const CLIENT_NAME_REGEX = /^[a-zA-Z0-9_-]+$/u;
|
|
24
|
+
function isValidClientName(name) {
|
|
25
|
+
if (typeof name !== "string") {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
if (name.trim().length === 0) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
return CLIENT_NAME_REGEX.test(name);
|
|
32
|
+
}
|
|
33
|
+
function isValidCIDR(cidr) {
|
|
34
|
+
if (typeof cidr !== "string") {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
const trimmed = cidr.trim();
|
|
38
|
+
if (trimmed.length === 0) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
const parts = trimmed.split("/");
|
|
42
|
+
if (parts.length > 2) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
const ip = parts[0];
|
|
46
|
+
const prefix = parts[1];
|
|
47
|
+
const octets = ip.split(".");
|
|
48
|
+
if (octets.length !== 4) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
for (const octet of octets) {
|
|
52
|
+
if (!/^\d+$/u.test(octet)) {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
const num = parseInt(octet, 10);
|
|
56
|
+
if (num < 0 || num > 255) {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
if (octet.length > 1 && octet.startsWith("0")) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (prefix !== void 0) {
|
|
64
|
+
if (!/^\d+$/u.test(prefix)) {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
const prefixNum = parseInt(prefix, 10);
|
|
68
|
+
if (prefixNum < 0 || prefixNum > 32) {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
function isValidCIDRList(cidrList) {
|
|
75
|
+
if (typeof cidrList !== "string") {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
const trimmed = cidrList.trim();
|
|
79
|
+
if (trimmed.length === 0) {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
const entries = trimmed.split(",");
|
|
83
|
+
if (entries.length === 0) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
return entries.every((entry) => isValidCIDR(entry));
|
|
87
|
+
}
|
|
88
|
+
export {
|
|
89
|
+
isValidCIDR,
|
|
90
|
+
isValidCIDRList,
|
|
91
|
+
isValidClientName,
|
|
92
|
+
isValidHostname
|
|
93
|
+
};
|
|
94
|
+
//# sourceMappingURL=string-validation.utils.js.map
|