@camunda/ccma-shared-types 2.0.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist/_tests/approvals/cluster-bulk-operation.spec.d.ts +1 -0
  2. package/dist/_tests/dtos/FeatureFlagOverride.dto.spec.d.ts +1 -0
  3. package/dist/_tests/permissions/session-permissions.spec.d.ts +1 -0
  4. package/dist/annotations/policy.d.ts +98 -0
  5. package/dist/annotations/policy.js +61 -0
  6. package/dist/annotations/policy.js.map +7 -0
  7. package/dist/approvals/cluster-bulk-operation.d.ts +196 -0
  8. package/dist/approvals/cluster-bulk-operation.js +127 -0
  9. package/dist/approvals/cluster-bulk-operation.js.map +7 -0
  10. package/dist/approvals/policy.d.ts +138 -9
  11. package/dist/approvals/policy.js +100 -23
  12. package/dist/approvals/policy.js.map +2 -2
  13. package/dist/approvals/use-cases.const.d.ts +114 -0
  14. package/dist/approvals/use-cases.const.js +31 -0
  15. package/dist/approvals/use-cases.const.js.map +7 -0
  16. package/dist/config/camundi-permission-rules.js +24 -3
  17. package/dist/config/camundi-permission-rules.js.map +2 -2
  18. package/dist/constants/misc.const.d.ts +2 -0
  19. package/dist/constants/misc.const.js +4 -0
  20. package/dist/constants/misc.const.js.map +2 -2
  21. package/dist/dtos/AlertSubscription.dto.d.ts +6 -0
  22. package/dist/dtos/AlertSubscription.dto.js.map +2 -2
  23. package/dist/dtos/Annotation.dto.d.ts +240 -0
  24. package/dist/dtos/Annotation.dto.js +47 -0
  25. package/dist/dtos/Annotation.dto.js.map +7 -0
  26. package/dist/dtos/ApprovalJob.dto.d.ts +408 -4
  27. package/dist/dtos/ApprovalJob.dto.js +64 -1
  28. package/dist/dtos/ApprovalJob.dto.js.map +2 -2
  29. package/dist/dtos/ClusterOwnerMove.dto.d.ts +81 -0
  30. package/dist/dtos/ClusterOwnerMove.dto.js +1 -0
  31. package/dist/dtos/ClusterOwnerMove.dto.js.map +7 -0
  32. package/dist/dtos/CommonCluster.dto.d.ts +6 -0
  33. package/dist/dtos/ControlV2.dto.d.ts +55 -3
  34. package/dist/dtos/FeatureFlagOverride.dto.d.ts +226 -0
  35. package/dist/dtos/FeatureFlagOverride.dto.js +38 -0
  36. package/dist/dtos/FeatureFlagOverride.dto.js.map +7 -0
  37. package/dist/dtos/FeatureFlags.dto.d.ts +58 -45
  38. package/dist/dtos/FeatureFlags.dto.js +10 -0
  39. package/dist/dtos/FeatureFlags.dto.js.map +3 -3
  40. package/dist/dtos/Generations.dto.d.ts +17 -0
  41. package/dist/dtos/Generations.dto.js +7 -0
  42. package/dist/dtos/Generations.dto.js.map +2 -2
  43. package/dist/dtos/Generations.dto.spec.d.ts +1 -0
  44. package/dist/dtos/K8sContext.dto.d.ts +13 -4
  45. package/dist/dtos/ReleaseTrainSanity.dto.d.ts +6 -0
  46. package/dist/enums/SystemAuditEntity.enum.d.ts +1 -0
  47. package/dist/enums/SystemAuditEntity.enum.js +1 -0
  48. package/dist/enums/SystemAuditEntity.enum.js.map +2 -2
  49. package/dist/index.d.ts +21 -10
  50. package/dist/index.js +157 -9
  51. package/dist/index.js.map +2 -2
  52. package/dist/permissions/accounts.permissions.d.ts +35 -0
  53. package/dist/permissions/accounts.permissions.js +33 -1
  54. package/dist/permissions/accounts.permissions.js.map +2 -2
  55. package/dist/permissions/combo.d.ts +9 -0
  56. package/dist/permissions/combo.js +64 -3
  57. package/dist/permissions/combo.js.map +2 -2
  58. package/dist/permissions/console.permissions.d.ts +32 -0
  59. package/dist/permissions/console.permissions.js +24 -2
  60. package/dist/permissions/console.permissions.js.map +2 -2
  61. package/dist/types/Roles.d.ts +1 -1
  62. package/dist/types/Roles.js.map +2 -2
  63. package/dist/utils/versionCheck.utils.d.ts +9 -0
  64. package/dist/utils/versionCheck.utils.js +7 -2
  65. package/dist/utils/versionCheck.utils.js.map +2 -2
  66. package/package.json +1 -1
  67. package/dist/constants/failoverRegionPairs.const.d.ts +0 -36
  68. package/dist/constants/failoverRegionPairs.const.js +0 -34
  69. package/dist/constants/failoverRegionPairs.const.js.map +0 -7
  70. /package/dist/_tests/{constants/failoverRegionPairs.const.spec.d.ts → annotations/policy.spec.d.ts} +0 -0
@@ -10,8 +10,25 @@ export interface GenerationDto {
10
10
  updatedBy: string;
11
11
  updated: Date;
12
12
  isUnsupportedStarting?: Date;
13
+ /**
14
+ * Archived generations stay in the database for the cluster audit history,
15
+ * but nothing offers them: pickers, filter facets, cluster creation and the
16
+ * upgrade readers all leave them out. Do not treat an archived generation
17
+ * as a normal upgrade option. The stored upgrade edges are unchanged, so an
18
+ * explicit upgrade by uuid over an existing edge still runs.
19
+ */
20
+ isArchived?: boolean;
13
21
  isBespoke?: boolean;
14
22
  }
23
+ /**
24
+ * Drop archived generations from a picker list. Uuids in `keep` stay in the
25
+ * result even when archived, so a selection made before archiving does not
26
+ * vanish from the control that shows it.
27
+ */
28
+ export declare function activeGenerations<T extends {
29
+ uuid: string;
30
+ isArchived?: boolean;
31
+ }>(generations: T[], keep?: Iterable<string>): T[];
15
32
  export interface GenerationWithClusterCountDto extends GenerationDto {
16
33
  clusterCount: number;
17
34
  }
@@ -1,5 +1,11 @@
1
1
  import semver from "semver";
2
2
  import { stripSecfixPostfix } from "../utils/versionCheck.utils.js";
3
+ function activeGenerations(generations, keep = []) {
4
+ const keepSet = new Set(keep);
5
+ return generations.filter(
6
+ (generation) => generation.isArchived !== true || keepSet.has(generation.uuid)
7
+ );
8
+ }
3
9
  const secfixRank = (version) => version === stripSecfixPostfix(version) ? 0 : 1;
4
10
  function sortGenerationBySemverOfZeebe(generationA, generationB) {
5
11
  const versionAvalid = generationA.versions?.zeebe !== void 0 && semver.valid(generationA.versions.zeebe.split(":")[1]) !== null;
@@ -57,6 +63,7 @@ const compareGenerationNamesNewestFirst = (nameA, nameB) => {
57
63
  return suffixB.localeCompare(suffixA, void 0, collation);
58
64
  };
59
65
  export {
66
+ activeGenerations,
60
67
  compareGenerationNamesNewestFirst,
61
68
  sortGenerationBySemverOfZeebe
62
69
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/dtos/Generations.dto.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 semver from 'semver'\nimport type { ZeebeClusterVersionsDto } from '../types/C8ClusterComponentVersions.type.js'\nimport { stripSecfixPostfix } from '../utils/versionCheck.utils.js'\n\nexport interface GenerationDto {\n name: string\n uuid: string\n versions: ZeebeClusterVersionsDto\n upgradeableFrom: GenerationDto[]\n createdBy: string\n createdByName?: string\n created: Date\n updatedBy: string\n updated: Date\n isUnsupportedStarting?: Date\n isBespoke?: boolean\n}\n\nexport interface GenerationWithClusterCountDto extends GenerationDto {\n clusterCount: number\n}\n\nexport interface UpgradableGenerationsDto {\n preferred: GenerationDto | null\n options: GenerationDto[]\n}\n\nconst secfixRank = (version: string): number =>\n version === stripSecfixPostfix(version) ? 0 : 1\n\nexport function sortGenerationBySemverOfZeebe(\n generationA: { name: string; versions?: { zeebe: string } },\n generationB: { name: string; versions?: { zeebe: string } },\n) {\n // magic sorting algorithm\n // uses the generation version of zeebe for comparison\n // if version invalid: use localeCompare\n\n const versionAvalid: boolean =\n generationA.versions?.zeebe !== undefined &&\n semver.valid(generationA.versions.zeebe.split(':')[1]) !== null\n const versionBvalid: boolean =\n generationB.versions?.zeebe !== undefined &&\n semver.valid(generationB.versions.zeebe.split(':')[1]) !== null\n\n if (versionAvalid && versionBvalid) {\n const zeebeA = generationA.versions!.zeebe.split(':')[1]\n const zeebeB = generationB.versions!.zeebe.split(':')[1]\n const byVersion = semver.compare(\n stripSecfixPostfix(zeebeB),\n stripSecfixPostfix(zeebeA),\n )\n if (byVersion !== 0) {\n return byVersion\n }\n // Both builds carry the same Camunda version here, so only the postfix\n // separates them. A secfix build holds that version plus a security patch,\n // thus it is the newer of the two and takes the higher rank.\n const bySecfix = secfixRank(zeebeB) - secfixRank(zeebeA)\n if (bySecfix !== 0) {\n return bySecfix\n }\n // Same image on both (8.9+gen5 and 8.9+gen6 both run 8.9.5). The name is\n // the only order left, so a picker does not show them in input order.\n return compareGenerationNamesNewestFirst(generationA.name, generationB.name)\n } else if (versionAvalid) {\n return -1\n } else if (versionBvalid) {\n return 1\n } else {\n return compareGenerationNamesNewestFirst(generationA.name, generationB.name)\n }\n}\n\n/** The text before the first digit: \"Camunda \" for \"Camunda 8.9+gen20\". */\nconst productPrefix = (name: string): string => {\n const firstDigit = name.search(/\\d/)\n return firstDigit === -1 ? name : name.slice(0, firstDigit)\n}\n\n/**\n * Splits a name at the first dash after the version: \"Camunda 8.10.0-alpha1\"\n * gives [\"Camunda 8.10.0\", \"alpha1\"]. A name without a dash gives an empty\n * suffix.\n */\nconst splitPrerelease = (name: string): [base: string, suffix: string] => {\n const dash = name.indexOf('-', name.search(/\\d/))\n return dash === -1 ? [name, ''] : [name.slice(0, dash), name.slice(dash + 1)]\n}\n\n/**\n * Orders generation names by product, then newest first within a product, by\n * numeric collation: `8.10` comes before `8.9`, and `gen10` before `gen9`.\n * Products stay in alphabetic order, so the Camunda generations come before\n * the older Zeebe ones. A release comes before its prereleases, so\n * `8.10.0` is above `8.10.0-alpha1`. For a list that has no zeebe image to\n * compare, such as a filter facet. When the image is known, use\n * `sortGenerationBySemverOfZeebe`.\n */\nexport const compareGenerationNamesNewestFirst = (\n nameA: string,\n nameB: string,\n): number => {\n const collation = { numeric: true, sensitivity: 'base' } as const\n const byProduct = productPrefix(nameA).localeCompare(\n productPrefix(nameB),\n undefined,\n collation,\n )\n if (byProduct !== 0) {\n return byProduct\n }\n const [baseA, suffixA] = splitPrerelease(nameA)\n const [baseB, suffixB] = splitPrerelease(nameB)\n const byBase = baseB.localeCompare(baseA, undefined, collation)\n if (byBase !== 0) {\n return byBase\n }\n if (suffixA === '' || suffixB === '') {\n return suffixA === suffixB ? 0 : suffixA === '' ? -1 : 1\n }\n return suffixB.localeCompare(suffixA, undefined, collation)\n}\n"],
5
- "mappings": "AAMA,OAAO,YAAY;AAEnB,SAAS,0BAA0B;AAyBnC,MAAM,aAAa,CAAC,YAClB,YAAY,mBAAmB,OAAO,IAAI,IAAI;AAEzC,SAAS,8BACd,aACA,aACA;AAKA,QAAM,gBACJ,YAAY,UAAU,UAAU,UAChC,OAAO,MAAM,YAAY,SAAS,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,MAAM;AAC7D,QAAM,gBACJ,YAAY,UAAU,UAAU,UAChC,OAAO,MAAM,YAAY,SAAS,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,MAAM;AAE7D,MAAI,iBAAiB,eAAe;AAClC,UAAM,SAAS,YAAY,SAAU,MAAM,MAAM,GAAG,EAAE,CAAC;AACvD,UAAM,SAAS,YAAY,SAAU,MAAM,MAAM,GAAG,EAAE,CAAC;AACvD,UAAM,YAAY,OAAO;AAAA,MACvB,mBAAmB,MAAM;AAAA,MACzB,mBAAmB,MAAM;AAAA,IAC3B;AACA,QAAI,cAAc,GAAG;AACnB,aAAO;AAAA,IACT;AAIA,UAAM,WAAW,WAAW,MAAM,IAAI,WAAW,MAAM;AACvD,QAAI,aAAa,GAAG;AAClB,aAAO;AAAA,IACT;AAGA,WAAO,kCAAkC,YAAY,MAAM,YAAY,IAAI;AAAA,EAC7E,WAAW,eAAe;AACxB,WAAO;AAAA,EACT,WAAW,eAAe;AACxB,WAAO;AAAA,EACT,OAAO;AACL,WAAO,kCAAkC,YAAY,MAAM,YAAY,IAAI;AAAA,EAC7E;AACF;AAGA,MAAM,gBAAgB,CAAC,SAAyB;AAC9C,QAAM,aAAa,KAAK,OAAO,IAAI;AACnC,SAAO,eAAe,KAAK,OAAO,KAAK,MAAM,GAAG,UAAU;AAC5D;AAOA,MAAM,kBAAkB,CAAC,SAAiD;AACxE,QAAM,OAAO,KAAK,QAAQ,KAAK,KAAK,OAAO,IAAI,CAAC;AAChD,SAAO,SAAS,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,MAAM,GAAG,IAAI,GAAG,KAAK,MAAM,OAAO,CAAC,CAAC;AAC9E;AAWO,MAAM,oCAAoC,CAC/C,OACA,UACW;AACX,QAAM,YAAY,EAAE,SAAS,MAAM,aAAa,OAAO;AACvD,QAAM,YAAY,cAAc,KAAK,EAAE;AAAA,IACrC,cAAc,KAAK;AAAA,IACnB;AAAA,IACA;AAAA,EACF;AACA,MAAI,cAAc,GAAG;AACnB,WAAO;AAAA,EACT;AACA,QAAM,CAAC,OAAO,OAAO,IAAI,gBAAgB,KAAK;AAC9C,QAAM,CAAC,OAAO,OAAO,IAAI,gBAAgB,KAAK;AAC9C,QAAM,SAAS,MAAM,cAAc,OAAO,QAAW,SAAS;AAC9D,MAAI,WAAW,GAAG;AAChB,WAAO;AAAA,EACT;AACA,MAAI,YAAY,MAAM,YAAY,IAAI;AACpC,WAAO,YAAY,UAAU,IAAI,YAAY,KAAK,KAAK;AAAA,EACzD;AACA,SAAO,QAAQ,cAAc,SAAS,QAAW,SAAS;AAC5D;",
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 semver from 'semver'\nimport type { ZeebeClusterVersionsDto } from '../types/C8ClusterComponentVersions.type.js'\nimport { stripSecfixPostfix } from '../utils/versionCheck.utils.js'\n\nexport interface GenerationDto {\n name: string\n uuid: string\n versions: ZeebeClusterVersionsDto\n upgradeableFrom: GenerationDto[]\n createdBy: string\n createdByName?: string\n created: Date\n updatedBy: string\n updated: Date\n isUnsupportedStarting?: Date\n /**\n * Archived generations stay in the database for the cluster audit history,\n * but nothing offers them: pickers, filter facets, cluster creation and the\n * upgrade readers all leave them out. Do not treat an archived generation\n * as a normal upgrade option. The stored upgrade edges are unchanged, so an\n * explicit upgrade by uuid over an existing edge still runs.\n */\n isArchived?: boolean\n isBespoke?: boolean\n}\n\n/**\n * Drop archived generations from a picker list. Uuids in `keep` stay in the\n * result even when archived, so a selection made before archiving does not\n * vanish from the control that shows it.\n */\nexport function activeGenerations<\n T extends { uuid: string; isArchived?: boolean },\n>(generations: T[], keep: Iterable<string> = []): T[] {\n const keepSet = new Set(keep)\n return generations.filter(\n (generation) =>\n generation.isArchived !== true || keepSet.has(generation.uuid),\n )\n}\n\nexport interface GenerationWithClusterCountDto extends GenerationDto {\n clusterCount: number\n}\n\nexport interface UpgradableGenerationsDto {\n preferred: GenerationDto | null\n options: GenerationDto[]\n}\n\nconst secfixRank = (version: string): number =>\n version === stripSecfixPostfix(version) ? 0 : 1\n\nexport function sortGenerationBySemverOfZeebe(\n generationA: { name: string; versions?: { zeebe: string } },\n generationB: { name: string; versions?: { zeebe: string } },\n) {\n // magic sorting algorithm\n // uses the generation version of zeebe for comparison\n // if version invalid: use localeCompare\n\n const versionAvalid: boolean =\n generationA.versions?.zeebe !== undefined &&\n semver.valid(generationA.versions.zeebe.split(':')[1]) !== null\n const versionBvalid: boolean =\n generationB.versions?.zeebe !== undefined &&\n semver.valid(generationB.versions.zeebe.split(':')[1]) !== null\n\n if (versionAvalid && versionBvalid) {\n const zeebeA = generationA.versions!.zeebe.split(':')[1]\n const zeebeB = generationB.versions!.zeebe.split(':')[1]\n const byVersion = semver.compare(\n stripSecfixPostfix(zeebeB),\n stripSecfixPostfix(zeebeA),\n )\n if (byVersion !== 0) {\n return byVersion\n }\n // Both builds carry the same Camunda version here, so only the postfix\n // separates them. A secfix build holds that version plus a security patch,\n // thus it is the newer of the two and takes the higher rank.\n const bySecfix = secfixRank(zeebeB) - secfixRank(zeebeA)\n if (bySecfix !== 0) {\n return bySecfix\n }\n // Same image on both (8.9+gen5 and 8.9+gen6 both run 8.9.5). The name is\n // the only order left, so a picker does not show them in input order.\n return compareGenerationNamesNewestFirst(generationA.name, generationB.name)\n } else if (versionAvalid) {\n return -1\n } else if (versionBvalid) {\n return 1\n } else {\n return compareGenerationNamesNewestFirst(generationA.name, generationB.name)\n }\n}\n\n/** The text before the first digit: \"Camunda \" for \"Camunda 8.9+gen20\". */\nconst productPrefix = (name: string): string => {\n const firstDigit = name.search(/\\d/)\n return firstDigit === -1 ? name : name.slice(0, firstDigit)\n}\n\n/**\n * Splits a name at the first dash after the version: \"Camunda 8.10.0-alpha1\"\n * gives [\"Camunda 8.10.0\", \"alpha1\"]. A name without a dash gives an empty\n * suffix.\n */\nconst splitPrerelease = (name: string): [base: string, suffix: string] => {\n const dash = name.indexOf('-', name.search(/\\d/))\n return dash === -1 ? [name, ''] : [name.slice(0, dash), name.slice(dash + 1)]\n}\n\n/**\n * Orders generation names by product, then newest first within a product, by\n * numeric collation: `8.10` comes before `8.9`, and `gen10` before `gen9`.\n * Products stay in alphabetic order, so the Camunda generations come before\n * the older Zeebe ones. A release comes before its prereleases, so\n * `8.10.0` is above `8.10.0-alpha1`. For a list that has no zeebe image to\n * compare, such as a filter facet. When the image is known, use\n * `sortGenerationBySemverOfZeebe`.\n */\nexport const compareGenerationNamesNewestFirst = (\n nameA: string,\n nameB: string,\n): number => {\n const collation = { numeric: true, sensitivity: 'base' } as const\n const byProduct = productPrefix(nameA).localeCompare(\n productPrefix(nameB),\n undefined,\n collation,\n )\n if (byProduct !== 0) {\n return byProduct\n }\n const [baseA, suffixA] = splitPrerelease(nameA)\n const [baseB, suffixB] = splitPrerelease(nameB)\n const byBase = baseB.localeCompare(baseA, undefined, collation)\n if (byBase !== 0) {\n return byBase\n }\n if (suffixA === '' || suffixB === '') {\n return suffixA === suffixB ? 0 : suffixA === '' ? -1 : 1\n }\n return suffixB.localeCompare(suffixA, undefined, collation)\n}\n"],
5
+ "mappings": "AAMA,OAAO,YAAY;AAEnB,SAAS,0BAA0B;AA6B5B,SAAS,kBAEd,aAAkB,OAAyB,CAAC,GAAQ;AACpD,QAAM,UAAU,IAAI,IAAI,IAAI;AAC5B,SAAO,YAAY;AAAA,IACjB,CAAC,eACC,WAAW,eAAe,QAAQ,QAAQ,IAAI,WAAW,IAAI;AAAA,EACjE;AACF;AAWA,MAAM,aAAa,CAAC,YAClB,YAAY,mBAAmB,OAAO,IAAI,IAAI;AAEzC,SAAS,8BACd,aACA,aACA;AAKA,QAAM,gBACJ,YAAY,UAAU,UAAU,UAChC,OAAO,MAAM,YAAY,SAAS,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,MAAM;AAC7D,QAAM,gBACJ,YAAY,UAAU,UAAU,UAChC,OAAO,MAAM,YAAY,SAAS,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,MAAM;AAE7D,MAAI,iBAAiB,eAAe;AAClC,UAAM,SAAS,YAAY,SAAU,MAAM,MAAM,GAAG,EAAE,CAAC;AACvD,UAAM,SAAS,YAAY,SAAU,MAAM,MAAM,GAAG,EAAE,CAAC;AACvD,UAAM,YAAY,OAAO;AAAA,MACvB,mBAAmB,MAAM;AAAA,MACzB,mBAAmB,MAAM;AAAA,IAC3B;AACA,QAAI,cAAc,GAAG;AACnB,aAAO;AAAA,IACT;AAIA,UAAM,WAAW,WAAW,MAAM,IAAI,WAAW,MAAM;AACvD,QAAI,aAAa,GAAG;AAClB,aAAO;AAAA,IACT;AAGA,WAAO,kCAAkC,YAAY,MAAM,YAAY,IAAI;AAAA,EAC7E,WAAW,eAAe;AACxB,WAAO;AAAA,EACT,WAAW,eAAe;AACxB,WAAO;AAAA,EACT,OAAO;AACL,WAAO,kCAAkC,YAAY,MAAM,YAAY,IAAI;AAAA,EAC7E;AACF;AAGA,MAAM,gBAAgB,CAAC,SAAyB;AAC9C,QAAM,aAAa,KAAK,OAAO,IAAI;AACnC,SAAO,eAAe,KAAK,OAAO,KAAK,MAAM,GAAG,UAAU;AAC5D;AAOA,MAAM,kBAAkB,CAAC,SAAiD;AACxE,QAAM,OAAO,KAAK,QAAQ,KAAK,KAAK,OAAO,IAAI,CAAC;AAChD,SAAO,SAAS,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,MAAM,GAAG,IAAI,GAAG,KAAK,MAAM,OAAO,CAAC,CAAC;AAC9E;AAWO,MAAM,oCAAoC,CAC/C,OACA,UACW;AACX,QAAM,YAAY,EAAE,SAAS,MAAM,aAAa,OAAO;AACvD,QAAM,YAAY,cAAc,KAAK,EAAE;AAAA,IACrC,cAAc,KAAK;AAAA,IACnB;AAAA,IACA;AAAA,EACF;AACA,MAAI,cAAc,GAAG;AACnB,WAAO;AAAA,EACT;AACA,QAAM,CAAC,OAAO,OAAO,IAAI,gBAAgB,KAAK;AAC9C,QAAM,CAAC,OAAO,OAAO,IAAI,gBAAgB,KAAK;AAC9C,QAAM,SAAS,MAAM,cAAc,OAAO,QAAW,SAAS;AAC9D,MAAI,WAAW,GAAG;AAChB,WAAO;AAAA,EACT;AACA,MAAI,YAAY,MAAM,YAAY,IAAI;AACpC,WAAO,YAAY,UAAU,IAAI,YAAY,KAAK,KAAK;AAAA,EACzD;AACA,SAAO,QAAQ,cAAc,SAAS,QAAW,SAAS;AAC5D;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1 @@
1
+ export {};
@@ -26,10 +26,19 @@ export interface K8sBackupConfig {
26
26
  */
27
27
  hidden?: boolean;
28
28
  /**
29
- * Set by SREs in console-admin.yaml.
30
- * True when the operator supports failover for this pairing.
31
- * For example, some GCP pairings do not get `cloneRoleId`, so a failover request fails.
32
- * This flag is informational. It does not affect `isSupportedFailoverRegionPair`.
29
+ * Set by SREs in console-admin.yaml. True when the operator supports
30
+ * failover for this pairing. For example, some GCP pairings do not get
31
+ * `cloneRoleId`, so a failover request fails.
32
+ *
33
+ * This flag is the only source for which pairings can fail over. The
34
+ * console-backend guard, the secret-replication helper, and the c4 failover
35
+ * action all read it. Each stage mounts its own console-admin.yaml, so the
36
+ * flag needs no stage branch.
37
+ *
38
+ * The flag is directional. SREs must set it on BOTH contexts of a pairing.
39
+ * The failover cluster takes the reverse pairing, thus the controller
40
+ * refuses a request when that pairing does not have the flag. If it did
41
+ * not, the new cluster could never fail back.
33
42
  */
34
43
  failover?: boolean;
35
44
  }
@@ -22,6 +22,12 @@ export type SanityFix = {
22
22
  generationName: string;
23
23
  /** When set, the delete must not be offered as selectable (e.g. clusters still run it). */
24
24
  blockedReason?: string;
25
+ } | {
26
+ type: 'archive-generation';
27
+ generationUuid: string;
28
+ generationName: string;
29
+ /** When set, the archive must not be offered as selectable (e.g. it is still an upgrade target). */
30
+ blockedReason?: string;
25
31
  };
26
32
  export interface SanityViolation {
27
33
  ruleId: string;
@@ -27,6 +27,7 @@ export declare enum SystemAuditEntityAttribute {
27
27
  GENERATION_UPGRADEABLE_TO = "Upgradeable To",
28
28
  GENERATION_SUPPORTED_UNTIL = "Supported Until",
29
29
  GENERATION_BESPOKE = "Bespoke",
30
+ GENERATION_ARCHIVED = "Archived",
30
31
  CHANNEL_NAME = "Name",
31
32
  CHANNEL_DESCRIPTION = "Description",
32
33
  CHANNEL_DEFAULT_GENERATION = "Default Generation",
@@ -21,6 +21,7 @@ var SystemAuditEntityAttribute = /* @__PURE__ */ ((SystemAuditEntityAttribute2)
21
21
  SystemAuditEntityAttribute2["GENERATION_UPGRADEABLE_TO"] = "Upgradeable To";
22
22
  SystemAuditEntityAttribute2["GENERATION_SUPPORTED_UNTIL"] = "Supported Until";
23
23
  SystemAuditEntityAttribute2["GENERATION_BESPOKE"] = "Bespoke";
24
+ SystemAuditEntityAttribute2["GENERATION_ARCHIVED"] = "Archived";
24
25
  SystemAuditEntityAttribute2["CHANNEL_NAME"] = "Name";
25
26
  SystemAuditEntityAttribute2["CHANNEL_DESCRIPTION"] = "Description";
26
27
  SystemAuditEntityAttribute2["CHANNEL_DEFAULT_GENERATION"] = "Default Generation";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/enums/SystemAuditEntity.enum.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/* eslint-disable no-shadow */\nexport enum SystemAuditEntity {\n GENERATION = 'Generation',\n CHANNEL = 'Channel',\n CLUSTER_PLAN = 'Cluster Plan',\n CLUSTER_PLAN_TYPE = 'Cluster Plan Type',\n ALPHA_FEATURE = 'Alpha Feature',\n SALES_PLAN = 'Sales Plan',\n CLUSTER_PLAN_MODIFICATION = 'Cluster Plan Modification',\n CLUSTER_BULK_OPERATION = 'Cluster Bulk Operation',\n CLUSTER_MODIFICATION = 'Cluster Modification',\n CONNECTION = 'Connection',\n RELEASE_TRAIN = 'Release Train',\n CLUSTER = 'Cluster',\n APPROVAL_JOB = 'Approval Request',\n}\n\n/**\n * Display strings for audited attributes. The `entity` + `entityAttribute` pair\n * is always the key, so duplicate display values across entities (e.g. several\n * `*_NAME = 'Name'`) are intentional and safe. `*_STATUS = 'Status'` is the\n * lifecycle attribute for the modification/operation entities; its from/to carry\n * the raw lifecycle state.\n */\nexport enum SystemAuditEntityAttribute {\n // Generation\n GENERATION_NAME = 'Name',\n GENERATION_VERSIONS = 'Versions',\n GENERATION_UPGRADEABLE_FROM = 'Upgradeable From',\n GENERATION_UPGRADEABLE_TO = 'Upgradeable To',\n GENERATION_SUPPORTED_UNTIL = 'Supported Until',\n GENERATION_BESPOKE = 'Bespoke',\n // Channel\n CHANNEL_NAME = 'Name',\n CHANNEL_DESCRIPTION = 'Description',\n CHANNEL_DEFAULT_GENERATION = 'Default Generation',\n CHANNEL_ALLOWED_GENERATIONS = 'Allowed Generations',\n CHANNEL_IS_DEFAULT = 'Is Default',\n // ClusterPlan\n CLUSTER_PLAN_MIGRATABLE_FROM = 'Migratable From',\n CLUSTER_PLAN_PERFORMANCE_EXPECTATIONS = 'Performance Expectations',\n // ClusterPlanType\n CLUSTER_PLAN_TYPE_NAME = 'Name',\n CLUSTER_PLAN_TYPE_DESCRIPTION = 'Description',\n CLUSTER_PLAN_TYPE_DEVELOPMENT = 'Development',\n CLUSTER_PLAN_TYPE_CATEGORY = 'Category',\n CLUSTER_PLAN_TYPE_AVAILABILITY_CLASS = 'Availability Class',\n CLUSTER_PLAN_TYPE_ACTIVE_PLAN = 'Active Plan',\n CLUSTER_PLAN_TYPE_LIMITS = 'Limits',\n // AlphaFeature (EarlyAccessFeature)\n ALPHA_FEATURE_NAME = 'Name',\n ALPHA_FEATURE_AVAILABLE_IN = 'Available In',\n ALPHA_FEATURE_DOCUMENTATION_LINK = 'Documentation Link',\n ALPHA_FEATURE_DESCRIPTION = 'Description',\n ALPHA_FEATURE_ACTION_LABEL = 'Action Label',\n ALPHA_FEATURE_ACTION_URL = 'Action Url',\n ALPHA_FEATURE_CLICKWRAP = 'Clickwrap',\n ALPHA_FEATURE_SALES_PLAN_TYPE_VISIBILITIES = 'Sales Plan Type Visibilities',\n // SalesPlan\n SALES_PLAN_NAME = 'Name',\n SALES_PLAN_METADATA = 'Metadata',\n SALES_PLAN_CLUSTER_PLAN_CONFIGURATION = 'Cluster Plan Configuration',\n SALES_PLAN_VERSION = 'Version',\n // ClusterPlanModification\n CLUSTER_PLAN_MODIFICATION_NAME = 'Name',\n CLUSTER_PLAN_MODIFICATION_DESCRIPTION = 'Description',\n CLUSTER_PLAN_MODIFICATION_CONFIG = 'Config',\n CLUSTER_PLAN_MODIFICATION_CLUSTER_PLANS = 'Cluster Plans',\n CLUSTER_PLAN_MODIFICATION_URL = 'Url',\n CLUSTER_PLAN_MODIFICATION_STATUS = 'Status',\n // ClusterBulkOperation\n CLUSTER_BULK_OPERATION_CLUSTERS = 'Clusters',\n CLUSTER_BULK_OPERATION_STATUS = 'Status',\n // ClusterModification (parent + config)\n CLUSTER_MODIFICATION_DESCRIPTION = 'Description',\n CLUSTER_MODIFICATION_URL = 'Url',\n CLUSTER_MODIFICATION_PLAN_MODIFICATIONS = 'Plan Modifications',\n CLUSTER_MODIFICATION_EXPIRES_AT = 'Expires At',\n CLUSTER_MODIFICATION_STATUS = 'Status',\n // Connection\n CONNECTION_NAME = 'Name',\n CONNECTION_STRATEGY = 'Strategy',\n CONNECTION_CONFIGURATION = 'Configuration',\n // Cluster (internal-only lifecycle actions with no customer-facing audit)\n CLUSTER_IP_ALLOWLIST = 'IP Allowlist',\n CLUSTER_ENV_VAR_OVERRIDE = 'Environment Variable Override',\n // A cluster plan modification that was applied to (and updated) this cluster.\n CLUSTER_APPLIED_PLAN_MODIFICATION = 'Plan Modification',\n // ApprovalJob. Every change of state of a four-eyes request is audited, not\n // only the run: the value of the trail is the answer to \"who decided what,\n // and when\", and a record of the outcome alone cannot give it.\n APPROVAL_JOB_STATUS = 'Status',\n APPROVAL_JOB_ACKS = 'Approvals',\n APPROVAL_JOB_CLOSED_REASON = 'Closure Reason',\n}\n"],
5
- "mappings": "AAOO,IAAK,oBAAL,kBAAKA,uBAAL;AACL,EAAAA,mBAAA,gBAAa;AACb,EAAAA,mBAAA,aAAU;AACV,EAAAA,mBAAA,kBAAe;AACf,EAAAA,mBAAA,uBAAoB;AACpB,EAAAA,mBAAA,mBAAgB;AAChB,EAAAA,mBAAA,gBAAa;AACb,EAAAA,mBAAA,+BAA4B;AAC5B,EAAAA,mBAAA,4BAAyB;AACzB,EAAAA,mBAAA,0BAAuB;AACvB,EAAAA,mBAAA,gBAAa;AACb,EAAAA,mBAAA,mBAAgB;AAChB,EAAAA,mBAAA,aAAU;AACV,EAAAA,mBAAA,kBAAe;AAbL,SAAAA;AAAA,GAAA;AAuBL,IAAK,6BAAL,kBAAKC,gCAAL;AAEL,EAAAA,4BAAA,qBAAkB;AAClB,EAAAA,4BAAA,yBAAsB;AACtB,EAAAA,4BAAA,iCAA8B;AAC9B,EAAAA,4BAAA,+BAA4B;AAC5B,EAAAA,4BAAA,gCAA6B;AAC7B,EAAAA,4BAAA,wBAAqB;AAErB,EAAAA,4BAAA,kBAAe;AACf,EAAAA,4BAAA,yBAAsB;AACtB,EAAAA,4BAAA,gCAA6B;AAC7B,EAAAA,4BAAA,iCAA8B;AAC9B,EAAAA,4BAAA,wBAAqB;AAErB,EAAAA,4BAAA,kCAA+B;AAC/B,EAAAA,4BAAA,2CAAwC;AAExC,EAAAA,4BAAA,4BAAyB;AACzB,EAAAA,4BAAA,mCAAgC;AAChC,EAAAA,4BAAA,mCAAgC;AAChC,EAAAA,4BAAA,gCAA6B;AAC7B,EAAAA,4BAAA,0CAAuC;AACvC,EAAAA,4BAAA,mCAAgC;AAChC,EAAAA,4BAAA,8BAA2B;AAE3B,EAAAA,4BAAA,wBAAqB;AACrB,EAAAA,4BAAA,gCAA6B;AAC7B,EAAAA,4BAAA,sCAAmC;AACnC,EAAAA,4BAAA,+BAA4B;AAC5B,EAAAA,4BAAA,gCAA6B;AAC7B,EAAAA,4BAAA,8BAA2B;AAC3B,EAAAA,4BAAA,6BAA0B;AAC1B,EAAAA,4BAAA,gDAA6C;AAE7C,EAAAA,4BAAA,qBAAkB;AAClB,EAAAA,4BAAA,yBAAsB;AACtB,EAAAA,4BAAA,2CAAwC;AACxC,EAAAA,4BAAA,wBAAqB;AAErB,EAAAA,4BAAA,oCAAiC;AACjC,EAAAA,4BAAA,2CAAwC;AACxC,EAAAA,4BAAA,sCAAmC;AACnC,EAAAA,4BAAA,6CAA0C;AAC1C,EAAAA,4BAAA,mCAAgC;AAChC,EAAAA,4BAAA,sCAAmC;AAEnC,EAAAA,4BAAA,qCAAkC;AAClC,EAAAA,4BAAA,mCAAgC;AAEhC,EAAAA,4BAAA,sCAAmC;AACnC,EAAAA,4BAAA,8BAA2B;AAC3B,EAAAA,4BAAA,6CAA0C;AAC1C,EAAAA,4BAAA,qCAAkC;AAClC,EAAAA,4BAAA,iCAA8B;AAE9B,EAAAA,4BAAA,qBAAkB;AAClB,EAAAA,4BAAA,yBAAsB;AACtB,EAAAA,4BAAA,8BAA2B;AAE3B,EAAAA,4BAAA,0BAAuB;AACvB,EAAAA,4BAAA,8BAA2B;AAE3B,EAAAA,4BAAA,uCAAoC;AAIpC,EAAAA,4BAAA,yBAAsB;AACtB,EAAAA,4BAAA,uBAAoB;AACpB,EAAAA,4BAAA,gCAA6B;AArEnB,SAAAA;AAAA,GAAA;",
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/* eslint-disable no-shadow */\nexport enum SystemAuditEntity {\n GENERATION = 'Generation',\n CHANNEL = 'Channel',\n CLUSTER_PLAN = 'Cluster Plan',\n CLUSTER_PLAN_TYPE = 'Cluster Plan Type',\n ALPHA_FEATURE = 'Alpha Feature',\n SALES_PLAN = 'Sales Plan',\n CLUSTER_PLAN_MODIFICATION = 'Cluster Plan Modification',\n CLUSTER_BULK_OPERATION = 'Cluster Bulk Operation',\n CLUSTER_MODIFICATION = 'Cluster Modification',\n CONNECTION = 'Connection',\n RELEASE_TRAIN = 'Release Train',\n CLUSTER = 'Cluster',\n APPROVAL_JOB = 'Approval Request',\n}\n\n/**\n * Display strings for audited attributes. The `entity` + `entityAttribute` pair\n * is always the key, so duplicate display values across entities (e.g. several\n * `*_NAME = 'Name'`) are intentional and safe. `*_STATUS = 'Status'` is the\n * lifecycle attribute for the modification/operation entities; its from/to carry\n * the raw lifecycle state.\n */\nexport enum SystemAuditEntityAttribute {\n // Generation\n GENERATION_NAME = 'Name',\n GENERATION_VERSIONS = 'Versions',\n GENERATION_UPGRADEABLE_FROM = 'Upgradeable From',\n GENERATION_UPGRADEABLE_TO = 'Upgradeable To',\n GENERATION_SUPPORTED_UNTIL = 'Supported Until',\n GENERATION_BESPOKE = 'Bespoke',\n GENERATION_ARCHIVED = 'Archived',\n // Channel\n CHANNEL_NAME = 'Name',\n CHANNEL_DESCRIPTION = 'Description',\n CHANNEL_DEFAULT_GENERATION = 'Default Generation',\n CHANNEL_ALLOWED_GENERATIONS = 'Allowed Generations',\n CHANNEL_IS_DEFAULT = 'Is Default',\n // ClusterPlan\n CLUSTER_PLAN_MIGRATABLE_FROM = 'Migratable From',\n CLUSTER_PLAN_PERFORMANCE_EXPECTATIONS = 'Performance Expectations',\n // ClusterPlanType\n CLUSTER_PLAN_TYPE_NAME = 'Name',\n CLUSTER_PLAN_TYPE_DESCRIPTION = 'Description',\n CLUSTER_PLAN_TYPE_DEVELOPMENT = 'Development',\n CLUSTER_PLAN_TYPE_CATEGORY = 'Category',\n CLUSTER_PLAN_TYPE_AVAILABILITY_CLASS = 'Availability Class',\n CLUSTER_PLAN_TYPE_ACTIVE_PLAN = 'Active Plan',\n CLUSTER_PLAN_TYPE_LIMITS = 'Limits',\n // AlphaFeature (EarlyAccessFeature)\n ALPHA_FEATURE_NAME = 'Name',\n ALPHA_FEATURE_AVAILABLE_IN = 'Available In',\n ALPHA_FEATURE_DOCUMENTATION_LINK = 'Documentation Link',\n ALPHA_FEATURE_DESCRIPTION = 'Description',\n ALPHA_FEATURE_ACTION_LABEL = 'Action Label',\n ALPHA_FEATURE_ACTION_URL = 'Action Url',\n ALPHA_FEATURE_CLICKWRAP = 'Clickwrap',\n ALPHA_FEATURE_SALES_PLAN_TYPE_VISIBILITIES = 'Sales Plan Type Visibilities',\n // SalesPlan\n SALES_PLAN_NAME = 'Name',\n SALES_PLAN_METADATA = 'Metadata',\n SALES_PLAN_CLUSTER_PLAN_CONFIGURATION = 'Cluster Plan Configuration',\n SALES_PLAN_VERSION = 'Version',\n // ClusterPlanModification\n CLUSTER_PLAN_MODIFICATION_NAME = 'Name',\n CLUSTER_PLAN_MODIFICATION_DESCRIPTION = 'Description',\n CLUSTER_PLAN_MODIFICATION_CONFIG = 'Config',\n CLUSTER_PLAN_MODIFICATION_CLUSTER_PLANS = 'Cluster Plans',\n CLUSTER_PLAN_MODIFICATION_URL = 'Url',\n CLUSTER_PLAN_MODIFICATION_STATUS = 'Status',\n // ClusterBulkOperation\n CLUSTER_BULK_OPERATION_CLUSTERS = 'Clusters',\n CLUSTER_BULK_OPERATION_STATUS = 'Status',\n // ClusterModification (parent + config)\n CLUSTER_MODIFICATION_DESCRIPTION = 'Description',\n CLUSTER_MODIFICATION_URL = 'Url',\n CLUSTER_MODIFICATION_PLAN_MODIFICATIONS = 'Plan Modifications',\n CLUSTER_MODIFICATION_EXPIRES_AT = 'Expires At',\n CLUSTER_MODIFICATION_STATUS = 'Status',\n // Connection\n CONNECTION_NAME = 'Name',\n CONNECTION_STRATEGY = 'Strategy',\n CONNECTION_CONFIGURATION = 'Configuration',\n // Cluster (internal-only lifecycle actions with no customer-facing audit)\n CLUSTER_IP_ALLOWLIST = 'IP Allowlist',\n CLUSTER_ENV_VAR_OVERRIDE = 'Environment Variable Override',\n // A cluster plan modification that was applied to (and updated) this cluster.\n CLUSTER_APPLIED_PLAN_MODIFICATION = 'Plan Modification',\n // ApprovalJob. Every change of state of a four-eyes request is audited, not\n // only the run: the value of the trail is the answer to \"who decided what,\n // and when\", and a record of the outcome alone cannot give it.\n APPROVAL_JOB_STATUS = 'Status',\n APPROVAL_JOB_ACKS = 'Approvals',\n APPROVAL_JOB_CLOSED_REASON = 'Closure Reason',\n}\n"],
5
+ "mappings": "AAOO,IAAK,oBAAL,kBAAKA,uBAAL;AACL,EAAAA,mBAAA,gBAAa;AACb,EAAAA,mBAAA,aAAU;AACV,EAAAA,mBAAA,kBAAe;AACf,EAAAA,mBAAA,uBAAoB;AACpB,EAAAA,mBAAA,mBAAgB;AAChB,EAAAA,mBAAA,gBAAa;AACb,EAAAA,mBAAA,+BAA4B;AAC5B,EAAAA,mBAAA,4BAAyB;AACzB,EAAAA,mBAAA,0BAAuB;AACvB,EAAAA,mBAAA,gBAAa;AACb,EAAAA,mBAAA,mBAAgB;AAChB,EAAAA,mBAAA,aAAU;AACV,EAAAA,mBAAA,kBAAe;AAbL,SAAAA;AAAA,GAAA;AAuBL,IAAK,6BAAL,kBAAKC,gCAAL;AAEL,EAAAA,4BAAA,qBAAkB;AAClB,EAAAA,4BAAA,yBAAsB;AACtB,EAAAA,4BAAA,iCAA8B;AAC9B,EAAAA,4BAAA,+BAA4B;AAC5B,EAAAA,4BAAA,gCAA6B;AAC7B,EAAAA,4BAAA,wBAAqB;AACrB,EAAAA,4BAAA,yBAAsB;AAEtB,EAAAA,4BAAA,kBAAe;AACf,EAAAA,4BAAA,yBAAsB;AACtB,EAAAA,4BAAA,gCAA6B;AAC7B,EAAAA,4BAAA,iCAA8B;AAC9B,EAAAA,4BAAA,wBAAqB;AAErB,EAAAA,4BAAA,kCAA+B;AAC/B,EAAAA,4BAAA,2CAAwC;AAExC,EAAAA,4BAAA,4BAAyB;AACzB,EAAAA,4BAAA,mCAAgC;AAChC,EAAAA,4BAAA,mCAAgC;AAChC,EAAAA,4BAAA,gCAA6B;AAC7B,EAAAA,4BAAA,0CAAuC;AACvC,EAAAA,4BAAA,mCAAgC;AAChC,EAAAA,4BAAA,8BAA2B;AAE3B,EAAAA,4BAAA,wBAAqB;AACrB,EAAAA,4BAAA,gCAA6B;AAC7B,EAAAA,4BAAA,sCAAmC;AACnC,EAAAA,4BAAA,+BAA4B;AAC5B,EAAAA,4BAAA,gCAA6B;AAC7B,EAAAA,4BAAA,8BAA2B;AAC3B,EAAAA,4BAAA,6BAA0B;AAC1B,EAAAA,4BAAA,gDAA6C;AAE7C,EAAAA,4BAAA,qBAAkB;AAClB,EAAAA,4BAAA,yBAAsB;AACtB,EAAAA,4BAAA,2CAAwC;AACxC,EAAAA,4BAAA,wBAAqB;AAErB,EAAAA,4BAAA,oCAAiC;AACjC,EAAAA,4BAAA,2CAAwC;AACxC,EAAAA,4BAAA,sCAAmC;AACnC,EAAAA,4BAAA,6CAA0C;AAC1C,EAAAA,4BAAA,mCAAgC;AAChC,EAAAA,4BAAA,sCAAmC;AAEnC,EAAAA,4BAAA,qCAAkC;AAClC,EAAAA,4BAAA,mCAAgC;AAEhC,EAAAA,4BAAA,sCAAmC;AACnC,EAAAA,4BAAA,8BAA2B;AAC3B,EAAAA,4BAAA,6CAA0C;AAC1C,EAAAA,4BAAA,qCAAkC;AAClC,EAAAA,4BAAA,iCAA8B;AAE9B,EAAAA,4BAAA,qBAAkB;AAClB,EAAAA,4BAAA,yBAAsB;AACtB,EAAAA,4BAAA,8BAA2B;AAE3B,EAAAA,4BAAA,0BAAuB;AACvB,EAAAA,4BAAA,8BAA2B;AAE3B,EAAAA,4BAAA,uCAAoC;AAIpC,EAAAA,4BAAA,yBAAsB;AACtB,EAAAA,4BAAA,uBAAoB;AACpB,EAAAA,4BAAA,gCAA6B;AAtEnB,SAAAA;AAAA,GAAA;",
6
6
  "names": ["SystemAuditEntity", "SystemAuditEntityAttribute"]
7
7
  }
package/dist/index.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  export { DAY, HOUR, MINUTE, SECOND, WEEK } from './constants/duration.const.js';
2
- export { isSupportedFailoverRegionPair, SUPPORTED_FAILOVER_REGION_PAIRS, } from './constants/failoverRegionPairs.const.js';
3
2
  export type { Stage } from './constants/misc.const.js';
4
3
  export { CAMUNDA_CLAIMS_NAMESPACE, CONSOLE_API_USER_ID, FIRSTNAME_LASTNAME_MAX_LENGTH, HOTBACKUP_MIN_CREATE_PERIOD, MAX_HARDWARE_PACKAGE_COUNT, MAX_LENGTH_CLUSTER_NAME, MINIMUM_EYEPAIRS, NAMES_OF_ENTERPRISE_SALESPLANS_WITH_SLEEPING_CLUSTERS, SECRETS_MAX_LENGTH, STARTING_PRICE_PER_MONTH_IN_EURO, TEMPORARY_CLUSTER_NAME, UNKNOWN_ACTOR_EMAIL, } from './constants/misc.const.js';
5
4
  export { getGatewayPropertyHint, getGatewayPropertyPath, isAffectedByStreamlinedDeployment, isPre89AffectedPath, PRE89_AFFECTED_PATHS, PRE89_AFFECTED_PROPERTY_PREFIXES, PRE89_GATEWAY_PROPERTY_PATHS, PRE89_GATEWAY_RESOURCE_PREFIXES, } from './constants/pre89EnvVarMapping.const.js';
@@ -9,12 +8,20 @@ export type { TrialExtensionSurveyAnswer, TrialExtensionSurveyQuestion, } from '
9
8
  export { TRIAL_EXTENSION_SURVEY_QUESTIONS } from './constants/trialExtensionSurvey.const.js';
10
9
  export { V2_BODY_IDS_MAX, V2_FILTER_IDS_MAX, V2_MAX_PAGE_LIMIT, } from './constants/v2-list.const.js';
11
10
  export { ADMIN_APP_RENAME_MIN_VERSION, APP_INTEGRATIONS_89_STREAM_CONNECTOR_BRIDGE_MIN_VERSION, APP_INTEGRATIONS_89_STREAM_MINOR, APP_INTEGRATIONS_89_STREAM_ZEEBE_MIN_VERSION, APP_INTEGRATIONS_MIN_VERSION, AUDIT_LOG_TAB_MIN_VERSION, AUTHORIZATION_TOGGLE_MIN_VERSION, AWS_ONLY_GENERATION_MIN_VERSION, BUSINESS_ID_UNIQUENESS_MIN_VERSION, BYOIDP_MIN_VERSION, CLUSTER_SECRETS_LABEL_MIN_VERSION, CLUSTER_STATISTICS_CONFIG_MIN_VERSION, CONNECTOR_MANAGEMENT_METRICS_MIN_VERSION, CONNECTOR_SECRET_SYNC_MIN_VERSION, CONNECTORS_MANAGEMENT_LINK_MIN_VERSION, ENFORCE_GROUPS_TASKLIST_V2_HIDDEN_MIN_VERSION, ENFORCE_GROUPS_TOGGLE_MIN_VERSION, GATEWAY_SPEC_8_9_MIN_VERSION, HOT_BACKUP_MIN_VERSION, IDENTITY_AUTHORIZATION_MIN_VERSION, IDENTITY_AUTHORIZATION_NOTICE_MAX_VERSION, IDENTITY_MANAGEMENT_MIN_VERSION, INTERNAL_CONNECTORS_MANAGEMENT_MIN_VERSION, JOB_DASHBOARD_MIN_VERSION, LINE_8_9_MIN_VERSION, LINE_8_10_MIN_VERSION, MCP_MIN_VERSION, MULTI_TENANCY_TOGGLE_MIN_VERSION, NEW_CLUSTER_ROLES_MIN_VERSION, OPTIMIZE_DEFAULT_ON_MIN_VERSION, OPTIMIZE_FILTERING_MIN_VERSION, OPTIONAL_TELEMETRY_MIN_VERSION, RESOURCE_BASED_AUTHORIZATIONS_MIN_VERSION, REST_API_URL_TRANSFORM_MIN_VERSION, REST_API_V2_MIN_VERSION, RESUME_ALPHA_MIN_VERSION, SECRET_SOURCE_MIN_VERSION, SECRETS_FILTER_MODE_8_6_MIN_VERSION, SECRETS_FILTER_MODE_8_7_MIN_VERSION, SECRETS_FILTER_MODE_8_8_MIN_VERSION, SECRETS_FILTER_MODE_8_9_MIN_VERSION, SECRETS_FILTER_MODE_8_10_MIN_VERSION, SESSION_CONFIG_MIN_VERSION, SWAGGER_MIN_VERSION, SWAGGER_URL_8_9_MIN_VERSION, TASKLIST_MODE_TOGGLE_MIN_VERSION, TASKLIST_UPGRADE_BANNER_MIN_VERSION, TASKLIST_V2_AUTO_ENABLE_FROM_MINOR, TASKLIST_V2_AUTO_ENABLE_TO_MINOR, TASKLIST_V2_DEFAULT_ON_MIN_VERSION, TASKLIST_V2_SETTING_MAX_VERSION, TASKLIST_V2_UPGRADE_MIN_VERSION, TASKLIST_V2_UPGRADE_TARGET_MIN_VERSION, ZEEBE_REST_URL_MIN_VERSION, } from './constants/version-gates.const.js';
11
+ export type { AnnotationActorView, AnnotationDecision, AnnotationDenialCode, } from './annotations/policy.js';
12
+ export { ANNOTATION_DENIAL_MESSAGES, canEditNote, canRemove, checkNoteBody, checkTagName, isAuthor, } from './annotations/policy.js';
13
+ export type { ClusterBulkClusterResultDto, ClusterBulkFinalStatus, ClusterBulkGenerationUpdateSettings, ClusterBulkOperationPayloadDto, ClusterBulkOperationRule, ClusterBulkPlanTypeUpdateSettings, ClusterBulkPlanUpdateSettings, ClusterBulkSettingsByType, ClusterBulkSleepWakeupSettings, ClusterBulkStepRequestDto, ClusterBulkStepResultDto, ClusterBulkTargetDto, } from './approvals/cluster-bulk-operation.js';
14
+ export { CLUSTER_BULK_OPERATION_CLUSTER_NAME_MAX_LENGTH, CLUSTER_BULK_OPERATION_MAX_CLUSTERS, CLUSTER_BULK_OPERATION_MIN_ACKS, CLUSTER_BULK_OPERATION_NAME_MAX_LENGTH, CLUSTER_BULK_OPERATION_RULES, CLUSTER_BULK_OPERATION_TEST_STAGE_MIN_ACKS, CLUSTER_BULK_OPERATION_TYPES, CLUSTER_BULK_SLEEPING_CLUSTER_DELAY_MS, clusterBulkOperationTypeOf, clusterBulkParameterOf, clusterBulkRequiredPermissions, clusterBulkResultOf, isClusterBulkYolo, } from './approvals/cluster-bulk-operation.js';
12
15
  export type { ApprovalActorView, ApprovalDecision, ApprovalDenialCode, } from './approvals/policy.js';
13
- export { canAcknowledge, canCreate, canExecute, canReject, canWithdraw, effectiveStatus, isExpired, isSameActorEmail, remainingAcks, } from './approvals/policy.js';
16
+ export { approvalPermissionCheck, canAcknowledge, canCreate, canExecute, canReject, canView, canWithdraw, effectiveStatus, hasActorEmail, hasEveryPermission, isExpired, isSameActor, isSameActorEmail, remainingAcks, requiredPermissionsOf, resolveRequiredAcks, } from './approvals/policy.js';
17
+ export type { ApprovalUseCaseType } from './approvals/use-cases.const.js';
18
+ export { APPROVAL_USE_CASE_TYPES, EXTEND_TRIAL_MAX_DAYS, EXTEND_TRIAL_MIN_DAYS, FLAG_OVERRIDE_DEFAULT_DAYS, FLAG_OVERRIDE_MAX_DAYS, FLAG_OVERRIDE_MIN_DAYS, OVERRIDES_REACH_A_READER, } from './approvals/use-cases.const.js';
14
19
  export type { ALERT_SUBSCRIPTION_REPORT_TYPES, ALERT_SUBSCRIPTION_TYPES, AlertSubscriptionDto, AlertSubscriptionEntryDto, AlertSubscriptionWebhookAuth, CheckFailedReason, } from './dtos/AlertSubscription.dto.js';
15
20
  export { FORBIDDEN_HOSTNAMES_FOR_WEBHOOK_ALERTS, HMAC_HEADER_POSITION, HMAC_SUPPORTED_ALGORITHM, } from './dtos/AlertSubscription.dto.js';
16
- export type { ApprovalAck, ApprovalActor, ApprovalExecutionMode, ApprovalJobDto, ApprovalJobStatus, ApprovalUseCaseDto, } from './dtos/ApprovalJob.dto.js';
17
- export { APPROVAL_JOB_STATUSES } from './dtos/ApprovalJob.dto.js';
21
+ export type { AnnotationActor, AnnotationDto, AnnotationEntityKind, AnnotationKind, AnnotationLookupDto, AnnotationLookupEntryDto, AnnotationTagDto, EntityAnnotationsDto, } from './dtos/Annotation.dto.js';
22
+ export { ANNOTATION_BODY_MAX, ANNOTATION_ENTITY_KIND_LABELS, ANNOTATION_ENTITY_KINDS, ANNOTATION_ENTITY_MAX, ANNOTATION_KINDS, ANNOTATION_LOOKUP_MAX_ENTITIES, ANNOTATION_LOOKUP_TAGS_MAX, ANNOTATION_PAGE_SIZE_DEFAULT, ANNOTATION_PAGE_SIZE_MAX, ANNOTATION_SEARCH_MAX_LENGTH, ANNOTATION_TAG_NAME_MAX, normalizeTagName, } from './dtos/Annotation.dto.js';
23
+ export type { ApprovalAck, ApprovalActionMode, ApprovalActor, ApprovalEntityRef, ApprovalEntityType, ApprovalExecutionMode, ApprovalJobDto, ApprovalJobStatus, ApprovalM2mActor, ApprovalProgress, ApprovalSortField, ApprovalSortOrder, ApprovalStatusCountsDto, ApprovalSummaryField, ApprovalSummaryFieldKind, ApprovalSummaryValue, ApprovalUseCaseDto, } from './dtos/ApprovalJob.dto.js';
24
+ export { APPROVAL_ACKS_MAX, APPROVAL_ENTITY_TYPES, APPROVAL_JOB_STATUSES, APPROVAL_LIST_SUMMARY_VALUES_MAX, APPROVAL_LIVE_STATUSES, APPROVAL_PAGE_SIZE_DEFAULT, APPROVAL_PAGE_SIZE_MAX, APPROVAL_PAYLOAD_ORG_FIELD, APPROVAL_REASON_MAX_LENGTH, APPROVAL_RUN_STALE_MS, APPROVAL_SEARCH_MAX_LENGTH, APPROVAL_SORT_DEFAULT, APPROVAL_SORT_FIELDS, APPROVAL_SUMMARY_FIELD_KINDS, isRunStalled, progressFraction, } from './dtos/ApprovalJob.dto.js';
18
25
  export type { AuditDto } from './dtos/Audit.dto.js';
19
26
  export type { Auth0ResourceServerDto } from './dtos/Auth0ResourceServer.dto.js';
20
27
  export type { BackupDto } from './dtos/Backup.dto.js';
@@ -24,18 +31,22 @@ export type { ClusterCreationDefaultField, ClusterCreationDefaultKey, ClusterCre
24
31
  export { CLUSTER_CREATION_DEFAULT_FIELDS } from './dtos/ClusterCreationDefaults.dto.js';
25
32
  export type { ClusterDeferredSpecChange, DeferredSpecChangeType, } from './dtos/ClusterDeferredSpecChange.dto.js';
26
33
  export type { ClusterIpWhitelistDto } from './dtos/ClusterIpWhitelist.dto.js';
34
+ export type { MoveClusterOwnerResult, MoveClusterWarnings, } from './dtos/ClusterOwnerMove.dto.js';
27
35
  export type { ClusterPlanDto } from './dtos/ClusterPlan.dto.js';
28
36
  export type { ClusterPlanTypeDto } from './dtos/ClusterPlanType.dto.js';
29
37
  export type { ClusterSpecChange, ClusterSpecChangeActor, ClusterSpecHistory, } from './dtos/ClusterSpecHistory.dto.js';
30
38
  export type { CommonClusterDto, ExternalIdpConfig, OptimizeFilteringConfig, OptimizeFilteringIncludeExclude, OptimizeFilteringPatch, SecretsFilterMode, } from './dtos/CommonCluster.dto.js';
31
39
  export type { ConsoleClusterDto } from './dtos/ConsoleCluster.dto.js';
32
- export type { ClusterActivityBucket, ClusterActivityTile, ClusterActivityV2Dto, ClusterActivityV2Response, ClusterByClientV2Dto, ClusterDatacenterOptionV2Dto, ClusterDetailV2Dto, ClusterFacetsV2Dto, ClusterListItemV2Dto, ClusterParameterOptionV2Dto, ClusterParametersV2Dto, ControlResolvedPermissions, ControlSessionDto, ControlSessionUser, CursorPage, CursorParams, ListClustersV2Params, ListOrganizationsV2Params, ListOrgMembersV2Params, OrgDetailV2Dto, OrgListItemV2Dto, OrgMemberV2Dto, OrgSummaryV2Dto, } from './dtos/ControlV2.dto.js';
40
+ export type { ClusterActivityBucket, ClusterActivityTile, ClusterActivityV2Dto, ClusterActivityV2Response, ClusterByClientV2Dto, ClusterDatacenterOptionV2Dto, ClusterDetailV2Dto, ClusterFacetsV2Dto, ClusterListItemV2Dto, ClusterLiveStateV2Dto, ClusterLiveStateV2Entry, ClusterParameterOptionV2Dto, ClusterParametersV2Dto, ControlResolvedPermissions, ControlSessionDto, ControlSessionUser, CursorPage, CursorParams, ListClustersV2Params, ListOrganizationsV2Params, ListOrgMembersV2Params, OrgDetailV2Dto, OrgListItemV2Dto, OrgMemberV2Dto, OrgSummaryV2Dto, } from './dtos/ControlV2.dto.js';
33
41
  export type { EarlyAccessFeatureDto } from './dtos/EarlyAccessFeature.dto.js';
34
42
  export type { CamundaWebApp, CamundaWebAppWithZeebe, ExternalClusterDto, ExternalOrganizationDto, } from './dtos/ExternalWebapp.dto.js';
35
- export type { Features } from './dtos/FeatureFlags.dto.js';
36
- export { compareGenerationNamesNewestFirst, type GenerationDto, type GenerationWithClusterCountDto, sortGenerationBySemverOfZeebe, type UpgradableGenerationsDto, } from './dtos/Generations.dto.js';
43
+ export type { FeatureFlagCondition, FeatureFlagOverrideDto, FeatureFlagOverridePayloadDto, FeatureFlagOverrideScope, FeatureFlagReason, FeatureFlagRowDto, FeatureFlagsDto, FeatureFlagType, } from './dtos/FeatureFlagOverride.dto.js';
44
+ export { FEATURE_FLAG_OVERRIDE_SCOPES, FEATURE_FLAG_REASONS, FEATURE_FLAG_TYPES, featureFlagOverridePermissions, featureFlagOverrideTargetProblem, normalizeFeatureFlagOverrideTarget, } from './dtos/FeatureFlagOverride.dto.js';
45
+ export type { Features, FlagGroup, FlagValues, } from './dtos/FeatureFlags.dto.js';
46
+ export { FLAG_GROUPS } from './dtos/FeatureFlags.dto.js';
47
+ export { activeGenerations, compareGenerationNamesNewestFirst, type GenerationDto, type GenerationWithClusterCountDto, sortGenerationBySemverOfZeebe, type UpgradableGenerationsDto, } from './dtos/Generations.dto.js';
37
48
  export type { Hdp } from './dtos/Hdp.dto.js';
38
- export type { K8sConfig, K8sConfigLegacyFormat, K8sContext, K8sContextDto, } from './dtos/K8sContext.dto.js';
49
+ export type { K8sBackupConfig, K8sConfig, K8sConfigLegacyFormat, K8sContext, K8sContextDto, } from './dtos/K8sContext.dto.js';
39
50
  export type { MetaDto } from './dtos/Meta.dto.js';
40
51
  export type { AutoJoinAssignment, LicensingModelType, LlmProviderName, OrganizationDto, OrganizationMetadata, OrgOwner, OrgWithNameAndSalesPlan, } from './dtos/Organization.dto.js';
41
52
  export { LICENSING_MODEL_DISPLAY_NAMES, VALID_LICENSING_MODELS, } from './dtos/Organization.dto.js';
@@ -70,7 +81,7 @@ export { SystemAuditEntity, SystemAuditEntityAttribute, } from './enums/SystemAu
70
81
  export { AccountsPermissions } from './permissions/accounts.permissions.js';
71
82
  export { AlertDistributorPermissions } from './permissions/alert-distributor.permissions.js';
72
83
  export { AuditLoggerPermissions } from './permissions/auditlogger.permissions.js';
73
- export { accountsUserFeaturesFromPermissions, consoleUserFeaturesFromPermissions, } from './permissions/combo.js';
84
+ export { accountsUserFeaturesFromPermissions, consoleUserFeaturesFromPermissions, sessionHasPermission, sessionPermissionKeysFor, } from './permissions/combo.js';
74
85
  export { ConsolePermissions } from './permissions/console.permissions.js';
75
86
  export { NotificationPermissions } from './permissions/notification.permissions.js';
76
87
  export type { OnboardConfig } from './permissions/profile.permissions.js';
@@ -149,7 +160,7 @@ export { deriveSecondaryStorageStatus, type SecondaryStorageStatus, } from './ut
149
160
  export { allSettledResultsCounts, getFulfilledPromises, getRejectedPromises, getSettledSummary, } from './utils/settledPromises.util.js';
150
161
  export { isValidAwsArn, isValidCIDR, isValidCIDRList, isValidClientName, isValidHostname, isValidPrivateLinkRegion, normalizeCIDRList, } from './utils/string-validation.utils.js';
151
162
  export { extractCamundaUserEmail, guessName, isCamundaUserId, } from './utils/user.utils.js';
152
- export { checkVersion, isAppIntegrationsVersionSupported, isGenerationResumable, isSecretsFilterModeConfigurable, isValidGenerationImage, normalizeGenerationVersion, stripSecfixPostfix, VersionCheckOperator, } from './utils/versionCheck.utils.js';
163
+ export { checkVersion, generationImageErrorMessage, isAppIntegrationsVersionSupported, isGenerationResumable, isSecretsFilterModeConfigurable, isValidGenerationImage, normalizeGenerationVersion, stripSecfixPostfix, VersionCheckOperator, } from './utils/versionCheck.utils.js';
153
164
  export { default as CAMUNDI_PERMISSION_RULES } from './config/camundi-permission-rules.js';
154
165
  export type { CamundiPermissionRules } from './config/camundi-permission-rules.types.js';
155
166
  export { augmentCamundiPermissions, getApplicableRolesForEmployee, HIBOB_CACHE_KEY, HIBOB_CACHE_NAMESPACE, isManager, } from './utils/camundiPermissionAugmenter.utils.js';
package/dist/index.js CHANGED
@@ -1,8 +1,4 @@
1
1
  import { DAY, HOUR, MINUTE, SECOND, WEEK } from "./constants/duration.const.js";
2
- import {
3
- isSupportedFailoverRegionPair,
4
- SUPPORTED_FAILOVER_REGION_PAIRS
5
- } from "./constants/failoverRegionPairs.const.js";
6
2
  import {
7
3
  CAMUNDA_CLAIMS_NAMESPACE,
8
4
  CONSOLE_API_USER_ID,
@@ -92,24 +88,104 @@ import {
92
88
  ZEEBE_REST_URL_MIN_VERSION
93
89
  } from "./constants/version-gates.const.js";
94
90
  import {
91
+ ANNOTATION_DENIAL_MESSAGES,
92
+ canEditNote,
93
+ canRemove,
94
+ checkNoteBody,
95
+ checkTagName,
96
+ isAuthor
97
+ } from "./annotations/policy.js";
98
+ import {
99
+ CLUSTER_BULK_OPERATION_CLUSTER_NAME_MAX_LENGTH,
100
+ CLUSTER_BULK_OPERATION_MAX_CLUSTERS,
101
+ CLUSTER_BULK_OPERATION_MIN_ACKS,
102
+ CLUSTER_BULK_OPERATION_NAME_MAX_LENGTH,
103
+ CLUSTER_BULK_OPERATION_RULES,
104
+ CLUSTER_BULK_OPERATION_TEST_STAGE_MIN_ACKS,
105
+ CLUSTER_BULK_OPERATION_TYPES,
106
+ CLUSTER_BULK_SLEEPING_CLUSTER_DELAY_MS,
107
+ clusterBulkOperationTypeOf,
108
+ clusterBulkParameterOf,
109
+ clusterBulkRequiredPermissions,
110
+ clusterBulkResultOf,
111
+ isClusterBulkYolo
112
+ } from "./approvals/cluster-bulk-operation.js";
113
+ import {
114
+ approvalPermissionCheck,
95
115
  canAcknowledge,
96
116
  canCreate,
97
117
  canExecute,
98
118
  canReject,
119
+ canView,
99
120
  canWithdraw,
100
121
  effectiveStatus,
122
+ hasActorEmail,
123
+ hasEveryPermission,
101
124
  isExpired,
125
+ isSameActor,
102
126
  isSameActorEmail,
103
- remainingAcks
127
+ remainingAcks,
128
+ requiredPermissionsOf,
129
+ resolveRequiredAcks
104
130
  } from "./approvals/policy.js";
131
+ import {
132
+ APPROVAL_USE_CASE_TYPES,
133
+ EXTEND_TRIAL_MAX_DAYS,
134
+ EXTEND_TRIAL_MIN_DAYS,
135
+ FLAG_OVERRIDE_DEFAULT_DAYS,
136
+ FLAG_OVERRIDE_MAX_DAYS,
137
+ FLAG_OVERRIDE_MIN_DAYS,
138
+ OVERRIDES_REACH_A_READER
139
+ } from "./approvals/use-cases.const.js";
105
140
  import {
106
141
  FORBIDDEN_HOSTNAMES_FOR_WEBHOOK_ALERTS,
107
142
  HMAC_HEADER_POSITION,
108
143
  HMAC_SUPPORTED_ALGORITHM
109
144
  } from "./dtos/AlertSubscription.dto.js";
110
- import { APPROVAL_JOB_STATUSES } from "./dtos/ApprovalJob.dto.js";
145
+ import {
146
+ ANNOTATION_BODY_MAX,
147
+ ANNOTATION_ENTITY_KIND_LABELS,
148
+ ANNOTATION_ENTITY_KINDS,
149
+ ANNOTATION_ENTITY_MAX,
150
+ ANNOTATION_KINDS,
151
+ ANNOTATION_LOOKUP_MAX_ENTITIES,
152
+ ANNOTATION_LOOKUP_TAGS_MAX,
153
+ ANNOTATION_PAGE_SIZE_DEFAULT,
154
+ ANNOTATION_PAGE_SIZE_MAX,
155
+ ANNOTATION_SEARCH_MAX_LENGTH,
156
+ ANNOTATION_TAG_NAME_MAX,
157
+ normalizeTagName
158
+ } from "./dtos/Annotation.dto.js";
159
+ import {
160
+ APPROVAL_ACKS_MAX,
161
+ APPROVAL_ENTITY_TYPES,
162
+ APPROVAL_JOB_STATUSES,
163
+ APPROVAL_LIST_SUMMARY_VALUES_MAX,
164
+ APPROVAL_LIVE_STATUSES,
165
+ APPROVAL_PAGE_SIZE_DEFAULT,
166
+ APPROVAL_PAGE_SIZE_MAX,
167
+ APPROVAL_PAYLOAD_ORG_FIELD,
168
+ APPROVAL_REASON_MAX_LENGTH,
169
+ APPROVAL_RUN_STALE_MS,
170
+ APPROVAL_SEARCH_MAX_LENGTH,
171
+ APPROVAL_SORT_DEFAULT,
172
+ APPROVAL_SORT_FIELDS,
173
+ APPROVAL_SUMMARY_FIELD_KINDS,
174
+ isRunStalled,
175
+ progressFraction
176
+ } from "./dtos/ApprovalJob.dto.js";
111
177
  import { CLUSTER_CREATION_DEFAULT_FIELDS } from "./dtos/ClusterCreationDefaults.dto.js";
112
178
  import {
179
+ FEATURE_FLAG_OVERRIDE_SCOPES,
180
+ FEATURE_FLAG_REASONS,
181
+ FEATURE_FLAG_TYPES,
182
+ featureFlagOverridePermissions,
183
+ featureFlagOverrideTargetProblem,
184
+ normalizeFeatureFlagOverrideTarget
185
+ } from "./dtos/FeatureFlagOverride.dto.js";
186
+ import { FLAG_GROUPS } from "./dtos/FeatureFlags.dto.js";
187
+ import {
188
+ activeGenerations,
113
189
  compareGenerationNamesNewestFirst,
114
190
  sortGenerationBySemverOfZeebe
115
191
  } from "./dtos/Generations.dto.js";
@@ -180,7 +256,9 @@ import { AlertDistributorPermissions } from "./permissions/alert-distributor.per
180
256
  import { AuditLoggerPermissions } from "./permissions/auditlogger.permissions.js";
181
257
  import {
182
258
  accountsUserFeaturesFromPermissions,
183
- consoleUserFeaturesFromPermissions
259
+ consoleUserFeaturesFromPermissions,
260
+ sessionHasPermission,
261
+ sessionPermissionKeysFor
184
262
  } from "./permissions/combo.js";
185
263
  import { ConsolePermissions } from "./permissions/console.permissions.js";
186
264
  import { NotificationPermissions } from "./permissions/notification.permissions.js";
@@ -332,6 +410,7 @@ import {
332
410
  } from "./utils/user.utils.js";
333
411
  import {
334
412
  checkVersion,
413
+ generationImageErrorMessage,
335
414
  isAppIntegrationsVersionSupported,
336
415
  isGenerationResumable,
337
416
  isSecretsFilterModeConfigurable,
@@ -351,7 +430,33 @@ import {
351
430
  export {
352
431
  ADMIN_APP_RENAME_MIN_VERSION,
353
432
  ALLOWED_CAMUNDA_LABELS,
433
+ ANNOTATION_BODY_MAX,
434
+ ANNOTATION_DENIAL_MESSAGES,
435
+ ANNOTATION_ENTITY_KINDS,
436
+ ANNOTATION_ENTITY_KIND_LABELS,
437
+ ANNOTATION_ENTITY_MAX,
438
+ ANNOTATION_KINDS,
439
+ ANNOTATION_LOOKUP_MAX_ENTITIES,
440
+ ANNOTATION_LOOKUP_TAGS_MAX,
441
+ ANNOTATION_PAGE_SIZE_DEFAULT,
442
+ ANNOTATION_PAGE_SIZE_MAX,
443
+ ANNOTATION_SEARCH_MAX_LENGTH,
444
+ ANNOTATION_TAG_NAME_MAX,
445
+ APPROVAL_ACKS_MAX,
446
+ APPROVAL_ENTITY_TYPES,
354
447
  APPROVAL_JOB_STATUSES,
448
+ APPROVAL_LIST_SUMMARY_VALUES_MAX,
449
+ APPROVAL_LIVE_STATUSES,
450
+ APPROVAL_PAGE_SIZE_DEFAULT,
451
+ APPROVAL_PAGE_SIZE_MAX,
452
+ APPROVAL_PAYLOAD_ORG_FIELD,
453
+ APPROVAL_REASON_MAX_LENGTH,
454
+ APPROVAL_RUN_STALE_MS,
455
+ APPROVAL_SEARCH_MAX_LENGTH,
456
+ APPROVAL_SORT_DEFAULT,
457
+ APPROVAL_SORT_FIELDS,
458
+ APPROVAL_SUMMARY_FIELD_KINDS,
459
+ APPROVAL_USE_CASE_TYPES,
355
460
  APP_INTEGRATIONS_89_STREAM_CONNECTOR_BRIDGE_MIN_VERSION,
356
461
  APP_INTEGRATIONS_89_STREAM_MINOR,
357
462
  APP_INTEGRATIONS_89_STREAM_ZEEBE_MIN_VERSION,
@@ -377,6 +482,14 @@ export {
377
482
  CAMUNDA_CLAIMS_NAMESPACE,
378
483
  default2 as CAMUNDI_PERMISSION_RULES,
379
484
  CLOUD_PROVIDER_ORDER,
485
+ CLUSTER_BULK_OPERATION_CLUSTER_NAME_MAX_LENGTH,
486
+ CLUSTER_BULK_OPERATION_MAX_CLUSTERS,
487
+ CLUSTER_BULK_OPERATION_MIN_ACKS,
488
+ CLUSTER_BULK_OPERATION_NAME_MAX_LENGTH,
489
+ CLUSTER_BULK_OPERATION_RULES,
490
+ CLUSTER_BULK_OPERATION_TEST_STAGE_MIN_ACKS,
491
+ CLUSTER_BULK_OPERATION_TYPES,
492
+ CLUSTER_BULK_SLEEPING_CLUSTER_DELAY_MS,
380
493
  CLUSTER_CREATION_DEFAULT_FIELDS,
381
494
  CLUSTER_DEFAULT_SEARCH_FIELDS,
382
495
  CLUSTER_PLAN_FIELDS,
@@ -404,8 +517,17 @@ export {
404
517
  DEFAULT_ENTERPRISE_DURATION_IN_MONTHS,
405
518
  ENFORCE_GROUPS_TASKLIST_V2_HIDDEN_MIN_VERSION,
406
519
  ENFORCE_GROUPS_TOGGLE_MIN_VERSION,
520
+ EXTEND_TRIAL_MAX_DAYS,
521
+ EXTEND_TRIAL_MIN_DAYS,
407
522
  ErrorType,
523
+ FEATURE_FLAG_OVERRIDE_SCOPES,
524
+ FEATURE_FLAG_REASONS,
525
+ FEATURE_FLAG_TYPES,
408
526
  FIRSTNAME_LASTNAME_MAX_LENGTH,
527
+ FLAG_GROUPS,
528
+ FLAG_OVERRIDE_DEFAULT_DAYS,
529
+ FLAG_OVERRIDE_MAX_DAYS,
530
+ FLAG_OVERRIDE_MIN_DAYS,
409
531
  FORBIDDEN_HOSTNAMES_FOR_WEBHOOK_ALERTS,
410
532
  FeedbackType,
411
533
  GATEWAY_SPEC_8_9_MIN_VERSION,
@@ -454,6 +576,7 @@ export {
454
576
  OPTIONAL_TELEMETRY_MIN_VERSION,
455
577
  ORGANIZATION_SEARCH_FIELDS,
456
578
  ORG_DEFAULT_SEARCH_FIELDS,
579
+ OVERRIDES_REACH_A_READER,
457
580
  ObjectMergeUtils,
458
581
  OrganizationPermissionsDescriptions,
459
582
  OrganizationRole,
@@ -486,7 +609,6 @@ export {
486
609
  SESSION_CONFIG_MIN_VERSION,
487
610
  SLEEP_CRON_ELIGIBLE_TAGS,
488
611
  STARTING_PRICE_PER_MONTH_IN_EURO,
489
- SUPPORTED_FAILOVER_REGION_PAIRS,
490
612
  SWAGGER_MIN_VERSION,
491
613
  SWAGGER_URL_8_9_MIN_VERSION,
492
614
  SalesPlanType,
@@ -521,17 +643,28 @@ export {
521
643
  WEEK,
522
644
  ZEEBE_REST_URL_MIN_VERSION,
523
645
  accountsUserFeaturesFromPermissions,
646
+ activeGenerations,
524
647
  addMonthsClamped,
525
648
  allClusterBasedLimits,
526
649
  allSalesPlanLimits,
527
650
  allSettledResultsCounts,
651
+ approvalPermissionCheck,
528
652
  augmentCamundiPermissions,
529
653
  canAcknowledge,
530
654
  canCreate,
655
+ canEditNote,
531
656
  canExecute,
532
657
  canReject,
658
+ canRemove,
659
+ canView,
533
660
  canWithdraw,
661
+ checkNoteBody,
662
+ checkTagName,
534
663
  checkVersion,
664
+ clusterBulkOperationTypeOf,
665
+ clusterBulkParameterOf,
666
+ clusterBulkRequiredPermissions,
667
+ clusterBulkResultOf,
535
668
  compareGenerationNamesNewestFirst,
536
669
  compileQuery,
537
670
  computeOrgStartDate,
@@ -547,7 +680,10 @@ export {
547
680
  enterpriseConnectionMetadataToOrganizationAssignments,
548
681
  expandRolesToPermissions,
549
682
  extractCamundaUserEmail,
683
+ featureFlagOverridePermissions,
684
+ featureFlagOverrideTargetProblem,
550
685
  findSearchField,
686
+ generationImageErrorMessage,
551
687
  getAnalyticsSalesPlanFromOrgSalesPlan,
552
688
  getApplicableRolesForEmployee,
553
689
  getCloudProviderLabel,
@@ -564,16 +700,20 @@ export {
564
700
  getSuspendStrategy,
565
701
  getUserPermissionsForOrg,
566
702
  guessName,
703
+ hasActorEmail,
567
704
  hasAvailabilityClass,
705
+ hasEveryPermission,
568
706
  hasNoAvailabilityClass,
569
707
  idSetPredicate,
570
708
  isActivitySleepEligible,
571
709
  isAffectedByStreamlinedDeployment,
572
710
  isAppIntegrationsVersionSupported,
711
+ isAuthor,
573
712
  isBulkClusterDeletionItem,
574
713
  isBulkClusterPlanTypeUpdateItem,
575
714
  isBulkClusterPlanUpdateItem,
576
715
  isCamundaUserId,
716
+ isClusterBulkYolo,
577
717
  isClusterPlanFieldSpec,
578
718
  isClusterTagEligibleForSleepCron,
579
719
  isEncryptionStatus,
@@ -583,11 +723,12 @@ export {
583
723
  isLuceneQueryError,
584
724
  isManager,
585
725
  isPre89AffectedPath,
726
+ isRunStalled,
586
727
  isSalesPlanEligibleForSleepCron,
728
+ isSameActor,
587
729
  isSameActorEmail,
588
730
  isSecretsFilterModeConfigurable,
589
731
  isSleepCronEligible,
590
- isSupportedFailoverRegionPair,
591
732
  isValidAwsArn,
592
733
  isValidCIDR,
593
734
  isValidCIDRList,
@@ -598,15 +739,22 @@ export {
598
739
  joinIdSet,
599
740
  likeArgument,
600
741
  normalizeCIDRList,
742
+ normalizeFeatureFlagOverrideTarget,
601
743
  normalizeGenerationVersion,
744
+ normalizeTagName,
602
745
  organizationAssignmentsToEnterpriseConnectionMetadata,
603
746
  parseEnvVars,
604
747
  parseKmsArn,
605
748
  parseLuceneQuery,
606
749
  passwordPolicyCheck,
607
750
  peakWithinTerm,
751
+ progressFraction,
608
752
  remainingAcks,
753
+ requiredPermissionsOf,
754
+ resolveRequiredAcks,
609
755
  serializeEnvVars,
756
+ sessionHasPermission,
757
+ sessionPermissionKeysFor,
610
758
  sortByAvailabilityClasses,
611
759
  sortByClusterPlanTypeCategory,
612
760
  sortGenerationBySemverOfZeebe,