@camunda/ccma-shared-types 5.0.0 → 6.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 (69) hide show
  1. package/dist/_tests/approvals/dns-subdomain.spec.d.ts +1 -0
  2. package/dist/_tests/approvals/expected-value.spec.d.ts +1 -0
  3. package/dist/_tests/charts/chart-query.spec.d.ts +1 -0
  4. package/dist/_tests/dashboards/definition.spec.d.ts +1 -0
  5. package/dist/_tests/utils/elasticsearchPlanPath.utils.spec.d.ts +1 -0
  6. package/dist/approvals/dns-subdomain.d.ts +12 -0
  7. package/dist/approvals/dns-subdomain.js +16 -0
  8. package/dist/approvals/dns-subdomain.js.map +7 -0
  9. package/dist/approvals/expected-value.d.ts +33 -0
  10. package/dist/approvals/expected-value.js +26 -0
  11. package/dist/approvals/expected-value.js.map +7 -0
  12. package/dist/approvals/use-cases.const.d.ts +80 -0
  13. package/dist/approvals/use-cases.const.js +42 -2
  14. package/dist/approvals/use-cases.const.js.map +2 -2
  15. package/dist/charts/chart-metrics.d.ts +35 -0
  16. package/dist/charts/chart-metrics.js +188 -0
  17. package/dist/charts/chart-metrics.js.map +7 -0
  18. package/dist/charts/chart-query.d.ts +55 -0
  19. package/dist/charts/chart-query.js +376 -0
  20. package/dist/charts/chart-query.js.map +7 -0
  21. package/dist/charts/chart-spec.d.ts +103 -0
  22. package/dist/charts/chart-spec.js +79 -0
  23. package/dist/charts/chart-spec.js.map +7 -0
  24. package/dist/charts/index.d.ts +3 -0
  25. package/dist/charts/index.js +59 -0
  26. package/dist/charts/index.js.map +7 -0
  27. package/dist/dashboards/definition.d.ts +86 -0
  28. package/dist/dashboards/definition.js +137 -0
  29. package/dist/dashboards/definition.js.map +7 -0
  30. package/dist/dtos/Annotation.dto.d.ts +1 -1
  31. package/dist/dtos/Annotation.dto.js +10 -2
  32. package/dist/dtos/Annotation.dto.js.map +2 -2
  33. package/dist/dtos/ControlV2.dto.d.ts +17 -0
  34. package/dist/dtos/Dashboard.dto.d.ts +336 -0
  35. package/dist/dtos/Dashboard.dto.js +70 -0
  36. package/dist/dtos/Dashboard.dto.js.map +7 -0
  37. package/dist/dtos/FeatureFlags.dto.d.ts +88 -54
  38. package/dist/dtos/Hdp.dto.d.ts +5 -88
  39. package/dist/dtos/Organization.dto.d.ts +10 -0
  40. package/dist/dtos/Organization.dto.js.map +1 -1
  41. package/dist/enums/SystemAuditEntity.enum.d.ts +4 -2
  42. package/dist/enums/SystemAuditEntity.enum.js +2 -0
  43. package/dist/enums/SystemAuditEntity.enum.js.map +2 -2
  44. package/dist/index.d.ts +12 -3
  45. package/dist/index.js +150 -1
  46. package/dist/index.js.map +2 -2
  47. package/dist/permissions/accounts.permissions.d.ts +12 -0
  48. package/dist/permissions/accounts.permissions.js +11 -0
  49. package/dist/permissions/accounts.permissions.js.map +2 -2
  50. package/dist/permissions/combo.js +5 -0
  51. package/dist/permissions/combo.js.map +2 -2
  52. package/dist/search/compiler.d.ts +20 -0
  53. package/dist/search/compiler.js +48 -11
  54. package/dist/search/compiler.js.map +2 -2
  55. package/dist/search/index.d.ts +1 -1
  56. package/dist/search/index.js.map +2 -2
  57. package/dist/search/parser.d.ts +3 -0
  58. package/dist/search/parser.js +3 -1
  59. package/dist/search/parser.js.map +2 -2
  60. package/dist/types/ClusterPlanFields.type.js +74 -74
  61. package/dist/types/ClusterPlanFields.type.js.map +2 -2
  62. package/dist/utils/elasticsearchPlanPath.utils.d.ts +18 -0
  63. package/dist/utils/elasticsearchPlanPath.utils.js +23 -0
  64. package/dist/utils/elasticsearchPlanPath.utils.js.map +7 -0
  65. package/dist/utils/qa-user.utils.d.ts +14 -0
  66. package/dist/utils/qa-user.utils.js +14 -0
  67. package/dist/utils/qa-user.utils.js.map +7 -0
  68. package/dist/utils/qa-user.utils.spec.d.ts +1 -0
  69. package/package.json +1 -1
@@ -88,96 +88,13 @@ export declare namespace Hdp {
88
88
  */
89
89
  priorHostingCostUsd?: number;
90
90
  /**
91
- * How the current window compares to the prior one: `up`/`down` when the
92
- * change exceeds a ±5% threshold, `flat` when it is within it. Absent
93
- * whenever `priorHostingCostUsd` is — a percent change needs a real,
94
- * non-zero base to compare against, so a cluster with no prior-window
95
- * data gets no trend rather than a misleading "up" or "down".
91
+ * How the current window compares to the prior one. The value is `up` or
92
+ * `down` when the change is more than 5%, and `flat` when it is within 5%.
93
+ * The field is absent when `priorHostingCostUsd` is absent, zero, or
94
+ * negative. A percent change needs a positive base, and a negative prior
95
+ * is a credit.
96
96
  */
97
97
  trend?: 'up' | 'down' | 'flat';
98
- /**
99
- * The cost-type split (COGS vs R&D) of `hostingCostUsd` over the same
100
- * window, from the `cost_type` column of the same HDP table. Present
101
- * only when `control.clusterHostingCostBreakdown` is on for the caller
102
- * — see `HdpDataHostingCostController.getHostingCost`. Absent rather
103
- * than computed-then-hidden when the flag is off.
104
- */
105
- costTypeBreakdown?: ClusterHostingCostByType;
106
- /**
107
- * The allocation-pool split of `hostingCostUsd` over the same window,
108
- * from the nine `allocated_*` columns of the same HDP table — see
109
- * {@link ClusterHostingCostAllocation}. Gated by the same flag as
110
- * `costTypeBreakdown`, and absent for the same reason when it is off.
111
- */
112
- allocationBreakdown?: ClusterHostingCostAllocation;
113
- }
114
- /**
115
- * The cost-type split of a `ClusterHostingCost` window. `cost_type`
116
- * classification is point-in-time against the FinOps mapping sheet, so
117
- * re-running this query later can classify the same historic day's spend
118
- * differently.
119
- *
120
- * `cogsUsd + rdUsd + otherUsd` reconciles to the window's
121
- * `hostingCostUsd` to within half a cent. `otherUsd` is not read from
122
- * the table with its own `cost_type` filter: it is `hostingCostUsd` minus
123
- * the other two, rounded to the cent. Only `otherUsd` is rounded;
124
- * `hostingCostUsd`, `cogsUsd` and `rdUsd` keep the full precision of the
125
- * table, so a sum can differ from the total by that rounding. A `cost_type` value
126
- * this split does not know about (a third category, or none at all)
127
- * still lands somewhere visible instead of vanishing from the total. A
128
- * negative `otherUsd` is possible in principle (`cogsUsd + rdUsd`
129
- * exceeding `hostingCostUsd`) and is left visible rather than clamped to
130
- * 0, because it would mean the two named sums are wrong, not that the
131
- * remainder is — clamping would hide exactly the bug a Camundi most
132
- * needs to see.
133
- */
134
- interface ClusterHostingCostByType {
135
- /** Cost of Goods Sold: the loaded cost classified as `cost_type = 'COGS'`. */
136
- cogsUsd: number;
137
- /** Research & Development: the loaded cost classified as `cost_type = 'R&D'`. */
138
- rdUsd: number;
139
- /** The window's cost that `cogsUsd` and `rdUsd` do not account for. */
140
- otherUsd: number;
141
- }
142
- /**
143
- * The allocation-pool split of a `ClusterHostingCost` window: up to nine
144
- * `allocated_*` columns of the same HDP table, each summed over the
145
- * window the same way `hostingCostUsd` is. On a `direct`/`nonprod_direct`
146
- * row, each pool is the dollar share of `loaded_cost` that one allocation
147
- * reason contributes.
148
- *
149
- * Every field is optional and present only when nonzero for the window:
150
- * a cluster rarely has all nine populated (most report a nonzero value in
151
- * only one or two), and a $0 line for the rest would be noise rather than
152
- * signal. `HdpDataHostingCostController.getHostingCost` filters the zero
153
- * ones out before returning, and leaves `allocationBreakdown` itself
154
- * absent when none of the nine are nonzero.
155
- *
156
- * These fields do NOT have to sum to `hostingCostUsd`, or to
157
- * `hostingCostUsd` minus `costTypeBreakdown`'s fields: `toolingLicenseUsd`
158
- * adds a cost (SaaS vendor tooling) rather than reallocating an existing
159
- * one, so the pools present can sum past the window's total. Read each
160
- * field as its own dollar amount, not as a share of a reconciling whole.
161
- */
162
- interface ClusterHostingCostAllocation {
163
- /** Share of shared infra namespaces inside the same client project. */
164
- infraNamespaceUsd?: number;
165
- /** Share of idle purchased GKE capacity. */
166
- gkeUnallocatedUsd?: number;
167
- /** Share of GKE system overhead (kubelet, kube-proxy, containerd). */
168
- gkeSystemOverheadUsd?: number;
169
- /** Share of spend-based CUDs that GKE cannot attribute to a namespace. */
170
- gkeUnsupportedSkuUsd?: number;
171
- /** Share of SKUs that GKE has not yet processed. */
172
- gkeUnknownUsd?: number;
173
- /** Share of `saas_prod` support projects. Paid clusters only. */
174
- saasProdSupportUsd?: number;
175
- /** Share of the account that serves both cloud estates. Paid clusters only. */
176
- awsGcpSharedUsd?: number;
177
- /** Share of SaaS vendor tooling (Tsuga, Cloudflare, DoiT, Terraform). Adds cost; does not reallocate it. */
178
- toolingLicenseUsd?: number;
179
- /** Share of shared cost inside the same `saas_non_prod` project. */
180
- nonprodSharedUsd?: number;
181
98
  }
182
99
  /** The loaded cost of one cluster over the fleet cost window. */
183
100
  interface FleetHostingCostRow {
@@ -57,6 +57,16 @@ export interface OrganizationMetadata {
57
57
  * that matches on the name of the key.
58
58
  */
59
59
  keyHash?: string;
60
+ /**
61
+ * UUID of the OpenRouter workspace that holds this key. Absent for a
62
+ * LiteLLM key, and for an OpenRouter key that lives in the default
63
+ * workspace.
64
+ *
65
+ * A key stays in its workspace for its whole life, and a list request
66
+ * covers one workspace. So the lost-hash recovery by name needs this value
67
+ * to look in the right workspace after the configured one changed.
68
+ */
69
+ workspaceId?: string;
60
70
  /**
61
71
  * The key that a provider migration replaced, kept until the delete of
62
72
  * that key is confirmed.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/dtos/Organization.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 type { OrganizationPermissions } from '../types/OrganizationPermission.type.js'\nimport type { SalesPlanType } from '../types/SalesPlanType.type.js'\nimport type { ClusterCreationDefaults } from './ClusterCreationDefaults.dto.js'\nimport type { OrganizationToSalesPlanDto } from './OrganizationToSalesPlan.dto.js'\n\nexport type LicensingModelType = 'legacy' | '2025'\n\nexport const VALID_LICENSING_MODELS: readonly LicensingModelType[] = [\n 'legacy',\n '2025',\n] as const\n\nexport const LICENSING_MODEL_DISPLAY_NAMES: Record<LicensingModelType, string> =\n {\n legacy: 'Legacy (PI, DI, TU)',\n '2025': '2025 (PI+Tenant)',\n } as const\n\n/**\n * Upstream that holds a managed LLM key.\n *\n * `@camunda-cloud/featureflags` owns the `LlmProvider` type and its rollout\n * rules. This package must not depend on that one, so the union is repeated\n * here. Keep the two in step.\n */\nexport type LlmProviderName = 'litellm' | 'openrouter'\n\nexport interface OrganizationMetadata {\n clickedRequestPaidPlan?: boolean\n /**\n * Default values for the settings of a new cluster of this organization\n * (#9732). They seed a cluster at creation and are never applied again.\n *\n * A field that is absent takes the value that the console backend writes.\n * The whole key is absent for almost every organization.\n */\n clusterDefaults?: ClusterCreationDefaults\n salesForceId?: string\n enterpriseDevOnly?: boolean\n awsOnly?: boolean\n licensingModel?: LicensingModelType\n autoJoin?: AutoJoinAssignment\n llm?: {\n tenantKey: string\n /**\n * Team that holds the key on LiteLLM.\n *\n * Optional, and every call site already treats it as such. Old LiteLLM\n * orgs got a key without a team. OpenRouter has no teams at all.\n */\n teamId?: string\n created: number\n /** Epoch ms of the last key rotation \u2014 set when the tenant key is regenerated. */\n updated?: number\n /**\n * Upstream that holds this key. Absent means `litellm`, because every key\n * from before the OpenRouter rollout is on LiteLLM.\n *\n * This value, and not the OpenRouter feature flag, decides where the\n * read, block, top-up and delete paths look for the key. A flag change\n * must never move a live key to a provider that does not hold it.\n */\n provider?: LlmProviderName\n /**\n * Handle for the key on OpenRouter, which addresses a key by hash and not\n * by its value. Absent for a LiteLLM key.\n *\n * Without it, an OpenRouter key can be found again only by a list request\n * that matches on the name of the key.\n */\n keyHash?: string\n /**\n * The key that a provider migration replaced, kept until the delete of\n * that key is confirmed.\n *\n * The migration to OpenRouter writes the new key over `tenantKey` before\n * it deletes the old one. Without this record the old key stays alive on\n * the old upstream and nothing points at it. The migration removes this\n * field when the old upstream confirms the delete, and it uses the field\n * to find the orgs that a re-run must finish.\n *\n * Absent for every org that never moved upstream.\n */\n migratedFrom?: {\n /** Upstream that holds the replaced key. */\n provider: LlmProviderName\n /** The replaced key itself. It is a credential. Never log it. */\n tenantKey: string\n /** Team that held the replaced key on LiteLLM. */\n teamId?: string\n }\n }\n}\n\nexport interface AutoJoinAssignment {\n departments: Array<{ hibobId: string; roles: string[] }>\n divisions: Array<{ hibobId: string; roles: string[] }>\n subdivisions: Array<{ hibobId: string; roles: string[] }>\n}\nexport interface OrganizationDto {\n uuid: string\n name: string\n organizationToSalesPlan?: OrganizationToSalesPlanDto\n permissions?: OrganizationPermissions\n metadata?: OrganizationMetadata\n created: Date\n internal: boolean\n}\n\nexport interface OrgOwner {\n owner: string\n email: string\n first: string\n last: string\n}\n\nexport interface OrgWithNameAndSalesPlan {\n uuid: string\n name: string | undefined\n salesPlanName: string | undefined\n salesPlanUuid: string | undefined\n salesPlanType: SalesPlanType | undefined\n}\n"],
4
+ "sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nimport type { OrganizationPermissions } from '../types/OrganizationPermission.type.js'\nimport type { SalesPlanType } from '../types/SalesPlanType.type.js'\nimport type { ClusterCreationDefaults } from './ClusterCreationDefaults.dto.js'\nimport type { OrganizationToSalesPlanDto } from './OrganizationToSalesPlan.dto.js'\n\nexport type LicensingModelType = 'legacy' | '2025'\n\nexport const VALID_LICENSING_MODELS: readonly LicensingModelType[] = [\n 'legacy',\n '2025',\n] as const\n\nexport const LICENSING_MODEL_DISPLAY_NAMES: Record<LicensingModelType, string> =\n {\n legacy: 'Legacy (PI, DI, TU)',\n '2025': '2025 (PI+Tenant)',\n } as const\n\n/**\n * Upstream that holds a managed LLM key.\n *\n * `@camunda-cloud/featureflags` owns the `LlmProvider` type and its rollout\n * rules. This package must not depend on that one, so the union is repeated\n * here. Keep the two in step.\n */\nexport type LlmProviderName = 'litellm' | 'openrouter'\n\nexport interface OrganizationMetadata {\n clickedRequestPaidPlan?: boolean\n /**\n * Default values for the settings of a new cluster of this organization\n * (#9732). They seed a cluster at creation and are never applied again.\n *\n * A field that is absent takes the value that the console backend writes.\n * The whole key is absent for almost every organization.\n */\n clusterDefaults?: ClusterCreationDefaults\n salesForceId?: string\n enterpriseDevOnly?: boolean\n awsOnly?: boolean\n licensingModel?: LicensingModelType\n autoJoin?: AutoJoinAssignment\n llm?: {\n tenantKey: string\n /**\n * Team that holds the key on LiteLLM.\n *\n * Optional, and every call site already treats it as such. Old LiteLLM\n * orgs got a key without a team. OpenRouter has no teams at all.\n */\n teamId?: string\n created: number\n /** Epoch ms of the last key rotation \u2014 set when the tenant key is regenerated. */\n updated?: number\n /**\n * Upstream that holds this key. Absent means `litellm`, because every key\n * from before the OpenRouter rollout is on LiteLLM.\n *\n * This value, and not the OpenRouter feature flag, decides where the\n * read, block, top-up and delete paths look for the key. A flag change\n * must never move a live key to a provider that does not hold it.\n */\n provider?: LlmProviderName\n /**\n * Handle for the key on OpenRouter, which addresses a key by hash and not\n * by its value. Absent for a LiteLLM key.\n *\n * Without it, an OpenRouter key can be found again only by a list request\n * that matches on the name of the key.\n */\n keyHash?: string\n /**\n * UUID of the OpenRouter workspace that holds this key. Absent for a\n * LiteLLM key, and for an OpenRouter key that lives in the default\n * workspace.\n *\n * A key stays in its workspace for its whole life, and a list request\n * covers one workspace. So the lost-hash recovery by name needs this value\n * to look in the right workspace after the configured one changed.\n */\n workspaceId?: string\n /**\n * The key that a provider migration replaced, kept until the delete of\n * that key is confirmed.\n *\n * The migration to OpenRouter writes the new key over `tenantKey` before\n * it deletes the old one. Without this record the old key stays alive on\n * the old upstream and nothing points at it. The migration removes this\n * field when the old upstream confirms the delete, and it uses the field\n * to find the orgs that a re-run must finish.\n *\n * Absent for every org that never moved upstream.\n */\n migratedFrom?: {\n /** Upstream that holds the replaced key. */\n provider: LlmProviderName\n /** The replaced key itself. It is a credential. Never log it. */\n tenantKey: string\n /** Team that held the replaced key on LiteLLM. */\n teamId?: string\n }\n }\n}\n\nexport interface AutoJoinAssignment {\n departments: Array<{ hibobId: string; roles: string[] }>\n divisions: Array<{ hibobId: string; roles: string[] }>\n subdivisions: Array<{ hibobId: string; roles: string[] }>\n}\nexport interface OrganizationDto {\n uuid: string\n name: string\n organizationToSalesPlan?: OrganizationToSalesPlanDto\n permissions?: OrganizationPermissions\n metadata?: OrganizationMetadata\n created: Date\n internal: boolean\n}\n\nexport interface OrgOwner {\n owner: string\n email: string\n first: string\n last: string\n}\n\nexport interface OrgWithNameAndSalesPlan {\n uuid: string\n name: string | undefined\n salesPlanName: string | undefined\n salesPlanUuid: string | undefined\n salesPlanType: SalesPlanType | undefined\n}\n"],
5
5
  "mappings": "AAaO,MAAM,yBAAwD;AAAA,EACnE;AAAA,EACA;AACF;AAEO,MAAM,gCACX;AAAA,EACE,QAAQ;AAAA,EACR,QAAQ;AACV;",
6
6
  "names": []
7
7
  }
@@ -11,7 +11,8 @@ export declare enum SystemAuditEntity {
11
11
  CONNECTION = "Connection",
12
12
  RELEASE_TRAIN = "Release Train",
13
13
  CLUSTER = "Cluster",
14
- APPROVAL_JOB = "Approval Request"
14
+ APPROVAL_JOB = "Approval Request",
15
+ FEATURE_FLAG = "Feature Flag"
15
16
  }
16
17
  /**
17
18
  * Display strings for audited attributes. The `entity` + `entityAttribute` pair
@@ -75,5 +76,6 @@ export declare enum SystemAuditEntityAttribute {
75
76
  CLUSTER_APPLIED_PLAN_MODIFICATION = "Plan Modification",
76
77
  APPROVAL_JOB_STATUS = "Status",
77
78
  APPROVAL_JOB_ACKS = "Approvals",
78
- APPROVAL_JOB_CLOSED_REASON = "Closure Reason"
79
+ APPROVAL_JOB_CLOSED_REASON = "Closure Reason",
80
+ FEATURE_FLAG_ROW = "Row"
79
81
  }
@@ -12,6 +12,7 @@ var SystemAuditEntity = /* @__PURE__ */ ((SystemAuditEntity2) => {
12
12
  SystemAuditEntity2["RELEASE_TRAIN"] = "Release Train";
13
13
  SystemAuditEntity2["CLUSTER"] = "Cluster";
14
14
  SystemAuditEntity2["APPROVAL_JOB"] = "Approval Request";
15
+ SystemAuditEntity2["FEATURE_FLAG"] = "Feature Flag";
15
16
  return SystemAuditEntity2;
16
17
  })(SystemAuditEntity || {});
17
18
  var SystemAuditEntityAttribute = /* @__PURE__ */ ((SystemAuditEntityAttribute2) => {
@@ -70,6 +71,7 @@ var SystemAuditEntityAttribute = /* @__PURE__ */ ((SystemAuditEntityAttribute2)
70
71
  SystemAuditEntityAttribute2["APPROVAL_JOB_STATUS"] = "Status";
71
72
  SystemAuditEntityAttribute2["APPROVAL_JOB_ACKS"] = "Approvals";
72
73
  SystemAuditEntityAttribute2["APPROVAL_JOB_CLOSED_REASON"] = "Closure Reason";
74
+ SystemAuditEntityAttribute2["FEATURE_FLAG_ROW"] = "Row";
73
75
  return SystemAuditEntityAttribute2;
74
76
  })(SystemAuditEntityAttribute || {});
75
77
  export {
@@ -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 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;",
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 FEATURE_FLAG = 'Feature Flag',\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 // FeatureFlag. One attribute for the whole row: the trail keeps the row\n // before and after, and the diff of the two shows what changed.\n FEATURE_FLAG_ROW = 'Row',\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;AACf,EAAAA,mBAAA,kBAAe;AAdL,SAAAA;AAAA,GAAA;AAwBL,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;AAG7B,EAAAA,4BAAA,sBAAmB;AAzET,SAAAA;AAAA,GAAA;",
6
6
  "names": ["SystemAuditEntity", "SystemAuditEntityAttribute"]
7
7
  }
package/dist/index.d.ts CHANGED
@@ -12,10 +12,15 @@ export type { AnnotationActorView, AnnotationDecision, AnnotationDenialCode, } f
12
12
  export { ANNOTATION_DENIAL_MESSAGES, canEditNote, canRemove, checkNoteBody, checkTagName, isAuthor, } from './annotations/policy.js';
13
13
  export type { ClusterBulkClusterResultDto, ClusterBulkFinalStatus, ClusterBulkGenerationUpdateSettings, ClusterBulkOperationPayloadDto, ClusterBulkOperationRule, ClusterBulkPlanTypeUpdateSettings, ClusterBulkPlanUpdateSettings, ClusterBulkSettingsByType, ClusterBulkSleepWakeupSettings, ClusterBulkStepRequestDto, ClusterBulkStepResultDto, ClusterBulkTargetDto, } from './approvals/cluster-bulk-operation.js';
14
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';
15
+ export { DNS_SUBDOMAIN_MAX_LENGTH, isDnsSubdomain, } from './approvals/dns-subdomain.js';
16
+ export type { ApprovalExpectedChange } from './approvals/expected-value.js';
17
+ export { isSameApprovalValue, staleApprovalKeys, } from './approvals/expected-value.js';
15
18
  export type { ApprovalActorView, ApprovalDecision, ApprovalDenialCode, } from './approvals/policy.js';
16
19
  export { approvalPermissionCheck, canAcknowledge, canCreate, canExecute, canReject, canView, canWithdraw, effectiveStatus, hasActorEmail, hasEveryPermission, isExpired, isSameActor, isSameActorEmail, remainingAcks, requiredPermissionsOf, resolveRequiredAcks, } from './approvals/policy.js';
17
20
  export type { ApprovalUseCaseType } from './approvals/use-cases.const.js';
18
- export { APPROVAL_USE_CASE_TYPES, EXTEND_TRIAL_MAX_DAYS, EXTEND_TRIAL_MIN_DAYS, } from './approvals/use-cases.const.js';
21
+ export { APPROVAL_EMAIL_MAX_LENGTH, APPROVAL_EMAIL_PATTERN, APPROVAL_USE_CASE_TYPES, EXTEND_TRIAL_MAX_DAYS, EXTEND_TRIAL_MIN_DAYS, FEATURE_FLAG_MIN_ACKS_PROD, ORG_LIMIT_TEXT_MAX_LENGTH, PLATFORM_ROLE_CHANGE_MAX_ROLES, PURGE_USERS_MAX_USERS, PURGE_USERS_REQUIRED_PERMISSIONS, USER_METADATA_EXPECTED_MAX_LENGTH, USER_METADATA_MAX_LENGTH, } from './approvals/use-cases.const.js';
22
+ export { CHART_DAY_GRAIN_MAX_DAYS, CHART_FILTER_MAX_LENGTH, CHART_GRAIN_DEFAULT, CHART_GRAINS, CHART_ID_MAX_LENGTH, CHART_METRICS, CHART_OTHER_SERIES_KEY, CHART_QUERY_MAX_LENGTH, CHART_TOP_DEFAULT, CHART_TOP_MAX, CHART_UNKNOWN_SERIES_KEY, CHART_WINDOW_AMOUNT_MAX, CHART_WINDOW_DEFAULT, CHART_WINDOW_UNITS, type ChartDimensionSpec, type ChartGrain, type ChartMetricSpec, type ChartPoint, type ChartQueryCheck, ChartQueryError, type ChartQueryErrorKind, type ChartQueryOptions, type ChartResult, type ChartSeries, type ChartSpec, type ChartUnit, type ChartWindow, type ChartWindowUnit, chartBucketStart, chartToday, chartWindowRange, findChartDimension, findChartMetric, formatChartSpec, isChartQueryError, parseChartQuery, readChartSpec, validateChartSpec, } from './charts/index.js';
23
+ export { DASHBOARD_TILE_DEFAULT_SIZE, dashboardDefinitionBytes, dashboardDefinitionFits, dashboardTileDefaultSize, emptyDashboardDefinition, isSafeDashboardLink, placeNewTile, placeNewTiles, tilesOverlap, toStoredDashboardDefinition, upgradeDashboardDefinition, } from './dashboards/definition.js';
19
24
  export type { ALERT_SUBSCRIPTION_REPORT_TYPES, ALERT_SUBSCRIPTION_TYPES, AlertSubscriptionDto, AlertSubscriptionEntryDto, AlertSubscriptionWebhookAuth, CheckFailedReason, } from './dtos/AlertSubscription.dto.js';
20
25
  export { FORBIDDEN_HOSTNAMES_FOR_WEBHOOK_ALERTS, HMAC_HEADER_POSITION, HMAC_SUPPORTED_ALGORITHM, } from './dtos/AlertSubscription.dto.js';
21
26
  export type { AnnotationActor, AnnotationDto, AnnotationEntityKind, AnnotationKind, AnnotationLookupDto, AnnotationLookupEntryDto, AnnotationTagDto, EntityAnnotationsDto, } from './dtos/Annotation.dto.js';
@@ -38,9 +43,11 @@ export type { ClusterSpecChange, ClusterSpecChangeActor, ClusterSpecHistory, } f
38
43
  export type { CommonClusterDto, ExternalIdpConfig, OptimizeFilteringConfig, OptimizeFilteringIncludeExclude, OptimizeFilteringPatch, SecretsFilterMode, } from './dtos/CommonCluster.dto.js';
39
44
  export type { ConsoleClusterDto } from './dtos/ConsoleCluster.dto.js';
40
45
  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';
46
+ export type { DashboardActor, DashboardAnnotationsQuery, DashboardAnnotationsTile, DashboardAnnotationsTileV1, DashboardCatalogue, DashboardCatalogueChartMetric, DashboardCatalogueSearchField, DashboardChartQuery, DashboardChartRender, DashboardChartTile, DashboardChartTileV3, DashboardClusterCard, DashboardClusterDetailQuery, DashboardClusterDetailTile, DashboardClusterDetailTileV2, DashboardDefinition, DashboardDefinitionV1, DashboardDefinitionV2, DashboardDefinitionV3, DashboardDto, DashboardFleetQuery, DashboardFleetQueryTile, DashboardFleetQueryTileV1, DashboardHeadingTile, DashboardHeadingTileV2, DashboardLinkTile, DashboardLinkTileV2, DashboardListDto, DashboardNewTile, DashboardNoteTile, DashboardNoteTileV2, DashboardOrgCard, DashboardOrgDetailQuery, DashboardOrgDetailTile, DashboardOrgDetailTileV2, DashboardSummaryDto, DashboardTile, DashboardTileKind, DashboardTileLayout, DashboardTileV1, DashboardTileV2, DashboardTileV3, StoredDashboardDefinition, } from './dtos/Dashboard.dto.js';
47
+ export { DASHBOARD_CHART_RENDERS, DASHBOARD_CLUSTER_CARDS, DASHBOARD_DEFINITION_BYTES_MAX, DASHBOARD_DEFINITION_VERSION, DASHBOARD_ENTITY_ID_MAX, DASHBOARD_GRID_COLUMNS, DASHBOARD_GRID_ROWS_MAX, DASHBOARD_LINK_URL_MAX, DASHBOARD_NOTE_MAX, DASHBOARD_ORG_CARDS, DASHBOARD_PAGE_SIZE_DEFAULT, DASHBOARD_PAGE_SIZE_MAX, DASHBOARD_TILE_KINDS, DASHBOARD_TILE_ROWS_MAX, DASHBOARD_TILES_MAX, DASHBOARD_TITLE_MAX, } from './dtos/Dashboard.dto.js';
41
48
  export type { EarlyAccessFeatureDto } from './dtos/EarlyAccessFeature.dto.js';
42
49
  export type { CamundaWebApp, CamundaWebAppWithZeebe, ExternalClickwrapConfigDto, ExternalClusterDto, ExternalOrganizationDto, } from './dtos/ExternalWebapp.dto.js';
43
- export type { Features } from './dtos/FeatureFlags.dto.js';
50
+ export type { CreateFeatureFlagDto, FeatureFlagAnswer, FeatureFlagDto, FeatureFlagListDto, UpdateFeatureFlagDto, } from './dtos/FeatureFlags.dto.js';
44
51
  export { activeGenerations, compareGenerationNamesNewestFirst, type GenerationDto, type GenerationWithClusterCountDto, sortGenerationBySemverOfZeebe, type UpgradableGenerationsDto, } from './dtos/Generations.dto.js';
45
52
  export type { Hdp } from './dtos/Hdp.dto.js';
46
53
  export type { K8sBackupConfig, K8sConfig, K8sConfigLegacyFormat, K8sContext, K8sContextDto, } from './dtos/K8sContext.dto.js';
@@ -60,7 +67,7 @@ export type { SystemAuditDto } from './dtos/SystemAudit.dto.js';
60
67
  export type { UsageAlertDto } from './dtos/UsageAlert.dto.js';
61
68
  export { UsageAlertInitValues, UsageAlertMetric, UsageAlertThresholdLimits, } from './dtos/UsageAlert.dto.js';
62
69
  export type { UserMetaDataDto } from './dtos/UserMetaData.dto.js';
63
- export { type AndNode, CLUSTER_DEFAULT_SEARCH_FIELDS, CLUSTER_SEARCH_FIELDS, type CompileContext, type CompiledQuery, compileQuery, type FieldBinding, findSearchField, idSetPredicate, isLuceneQueryError, joinIdSet, LuceneQueryError, likeArgument, type NotNode, ORG_DEFAULT_SEARCH_FIELDS, ORGANIZATION_SEARCH_FIELDS, type OrNode, parseLuceneQuery, type QueryNode, type RangeNode, type SearchFieldCapability, type SearchFieldSpec, type SearchFieldType, type SearchTermOperator, type TermNode, } from './search/index.js';
70
+ export { type AndNode, CLUSTER_DEFAULT_SEARCH_FIELDS, CLUSTER_SEARCH_FIELDS, type CompileContext, type CompiledQuery, compileQuery, type FieldBinding, findSearchField, idSetPredicate, isLuceneQueryError, joinIdSet, LuceneQueryError, likeArgument, type NotNode, ORG_DEFAULT_SEARCH_FIELDS, ORGANIZATION_SEARCH_FIELDS, type OrNode, parseLuceneQuery, type QueryNode, type RangeNode, type SearchFieldCapability, type SearchFieldSpec, type SearchFieldType, type SearchTermOperator, type SqlDialect, type TermNode, } from './search/index.js';
64
71
  export { AlertSubscriptionReportType, AlertSubscriptionType, } from './enums/AlertSubscription.enum.js';
65
72
  export { AuditEntity, AuditEntityAttribute } from './enums/AuditEntity.enum.js';
66
73
  export { AuditService } from './enums/AuditService.enum.js';
@@ -140,6 +147,7 @@ export { type ConnectivityStatus, deriveConnectivityMessage, deriveConnectivityS
140
147
  export { ConsoleSelfManagedUtils } from './utils/console-sm.utils.js';
141
148
  export type { CronScheduleValidationFailure, CronScheduleValidationResult, CronScheduleValidationSuccess, } from './utils/cronSchedule.utils.js';
142
149
  export { BACKUP_SCHEDULE_MIN_INTERVAL_MINUTES, validateCronSchedule, } from './utils/cronSchedule.utils.js';
150
+ export { canonicalPlan, canonicalPlanKey, } from './utils/elasticsearchPlanPath.utils.js';
143
151
  export { deriveEncryptionStatus, type EncryptionStatus, isEncryptionStatus, } from './utils/encryptionStatus.utils.js';
144
152
  export type { EnterpriseConnectionOrganizationAssignment } from './utils/enterprise-connection.utils.js';
145
153
  export { enterpriseConnectionMetadataToOrganizationAssignments, organizationAssignmentsToEnterpriseConnectionMetadata, } from './utils/enterprise-connection.utils.js';
@@ -154,6 +162,7 @@ export { computeOrgStartDate, type OrgStartDateInput, } from './utils/orgStartDa
154
162
  export { getPermissionsByRoles, getUserPermissionsForOrg, } from './utils/orgs/OrgHelper.js';
155
163
  export type { PasswordPolicyRequest, PasswordPolicyResult, } from './utils/PasswordPolicy.js';
156
164
  export { MAXLENGTH as PASSWORD_POLICY_MAXLENGTH, MINLENGTH as PASSWORD_POLICY_MINLENGTH, passwordPolicyCheck, } from './utils/PasswordPolicy.js';
165
+ export { isQaUserEmail, qaUserEmail } from './utils/qa-user.utils.js';
157
166
  export { deriveSecondaryStorageStatus, type SecondaryStorageStatus, } from './utils/secondaryStorageStatus.utils.js';
158
167
  export { allSettledResultsCounts, getFulfilledPromises, getRejectedPromises, getSettledSummary, } from './utils/settledPromises.util.js';
159
168
  export { isValidAwsArn, isValidCIDR, isValidCIDRList, isValidClientName, isValidHostname, isValidPrivateLinkRegion, normalizeCIDRList, } from './utils/string-validation.utils.js';
package/dist/index.js CHANGED
@@ -110,6 +110,14 @@ import {
110
110
  clusterBulkResultOf,
111
111
  isClusterBulkYolo
112
112
  } from "./approvals/cluster-bulk-operation.js";
113
+ import {
114
+ DNS_SUBDOMAIN_MAX_LENGTH,
115
+ isDnsSubdomain
116
+ } from "./approvals/dns-subdomain.js";
117
+ import {
118
+ isSameApprovalValue,
119
+ staleApprovalKeys
120
+ } from "./approvals/expected-value.js";
113
121
  import {
114
122
  approvalPermissionCheck,
115
123
  canAcknowledge,
@@ -129,10 +137,59 @@ import {
129
137
  resolveRequiredAcks
130
138
  } from "./approvals/policy.js";
131
139
  import {
140
+ APPROVAL_EMAIL_MAX_LENGTH,
141
+ APPROVAL_EMAIL_PATTERN,
132
142
  APPROVAL_USE_CASE_TYPES,
133
143
  EXTEND_TRIAL_MAX_DAYS,
134
- EXTEND_TRIAL_MIN_DAYS
144
+ EXTEND_TRIAL_MIN_DAYS,
145
+ FEATURE_FLAG_MIN_ACKS_PROD,
146
+ ORG_LIMIT_TEXT_MAX_LENGTH,
147
+ PLATFORM_ROLE_CHANGE_MAX_ROLES,
148
+ PURGE_USERS_MAX_USERS,
149
+ PURGE_USERS_REQUIRED_PERMISSIONS,
150
+ USER_METADATA_EXPECTED_MAX_LENGTH,
151
+ USER_METADATA_MAX_LENGTH
135
152
  } from "./approvals/use-cases.const.js";
153
+ import {
154
+ CHART_DAY_GRAIN_MAX_DAYS,
155
+ CHART_FILTER_MAX_LENGTH,
156
+ CHART_GRAIN_DEFAULT,
157
+ CHART_GRAINS,
158
+ CHART_ID_MAX_LENGTH,
159
+ CHART_METRICS,
160
+ CHART_OTHER_SERIES_KEY,
161
+ CHART_QUERY_MAX_LENGTH,
162
+ CHART_TOP_DEFAULT,
163
+ CHART_TOP_MAX,
164
+ CHART_UNKNOWN_SERIES_KEY,
165
+ CHART_WINDOW_AMOUNT_MAX,
166
+ CHART_WINDOW_DEFAULT,
167
+ CHART_WINDOW_UNITS,
168
+ ChartQueryError,
169
+ chartBucketStart,
170
+ chartToday,
171
+ chartWindowRange,
172
+ findChartDimension,
173
+ findChartMetric,
174
+ formatChartSpec,
175
+ isChartQueryError,
176
+ parseChartQuery,
177
+ readChartSpec,
178
+ validateChartSpec
179
+ } from "./charts/index.js";
180
+ import {
181
+ DASHBOARD_TILE_DEFAULT_SIZE,
182
+ dashboardDefinitionBytes,
183
+ dashboardDefinitionFits,
184
+ dashboardTileDefaultSize,
185
+ emptyDashboardDefinition,
186
+ isSafeDashboardLink,
187
+ placeNewTile,
188
+ placeNewTiles,
189
+ tilesOverlap,
190
+ toStoredDashboardDefinition,
191
+ upgradeDashboardDefinition
192
+ } from "./dashboards/definition.js";
136
193
  import {
137
194
  FORBIDDEN_HOSTNAMES_FOR_WEBHOOK_ALERTS,
138
195
  HMAC_HEADER_POSITION,
@@ -171,6 +228,24 @@ import {
171
228
  progressFraction
172
229
  } from "./dtos/ApprovalJob.dto.js";
173
230
  import { CLUSTER_CREATION_DEFAULT_FIELDS } from "./dtos/ClusterCreationDefaults.dto.js";
231
+ import {
232
+ DASHBOARD_CHART_RENDERS,
233
+ DASHBOARD_CLUSTER_CARDS,
234
+ DASHBOARD_DEFINITION_BYTES_MAX,
235
+ DASHBOARD_DEFINITION_VERSION,
236
+ DASHBOARD_ENTITY_ID_MAX,
237
+ DASHBOARD_GRID_COLUMNS,
238
+ DASHBOARD_GRID_ROWS_MAX,
239
+ DASHBOARD_LINK_URL_MAX,
240
+ DASHBOARD_NOTE_MAX,
241
+ DASHBOARD_ORG_CARDS,
242
+ DASHBOARD_PAGE_SIZE_DEFAULT,
243
+ DASHBOARD_PAGE_SIZE_MAX,
244
+ DASHBOARD_TILE_KINDS,
245
+ DASHBOARD_TILE_ROWS_MAX,
246
+ DASHBOARD_TILES_MAX,
247
+ DASHBOARD_TITLE_MAX
248
+ } from "./dtos/Dashboard.dto.js";
174
249
  import {
175
250
  activeGenerations,
176
251
  compareGenerationNamesNewestFirst,
@@ -340,6 +415,10 @@ import {
340
415
  BACKUP_SCHEDULE_MIN_INTERVAL_MINUTES,
341
416
  validateCronSchedule
342
417
  } from "./utils/cronSchedule.utils.js";
418
+ import {
419
+ canonicalPlan,
420
+ canonicalPlanKey
421
+ } from "./utils/elasticsearchPlanPath.utils.js";
343
422
  import {
344
423
  deriveEncryptionStatus,
345
424
  isEncryptionStatus
@@ -380,6 +459,7 @@ import {
380
459
  MINLENGTH,
381
460
  passwordPolicyCheck
382
461
  } from "./utils/PasswordPolicy.js";
462
+ import { isQaUserEmail, qaUserEmail } from "./utils/qa-user.utils.js";
383
463
  import {
384
464
  deriveSecondaryStorageStatus
385
465
  } from "./utils/secondaryStorageStatus.utils.js";
@@ -438,6 +518,8 @@ export {
438
518
  ANNOTATION_SEARCH_MAX_LENGTH,
439
519
  ANNOTATION_TAG_NAME_MAX,
440
520
  APPROVAL_ACKS_MAX,
521
+ APPROVAL_EMAIL_MAX_LENGTH,
522
+ APPROVAL_EMAIL_PATTERN,
441
523
  APPROVAL_ENTITY_TYPES,
442
524
  APPROVAL_JOB_STATUSES,
443
525
  APPROVAL_LIST_SUMMARY_VALUES_MAX,
@@ -476,6 +558,20 @@ export {
476
558
  BackupStatus,
477
559
  CAMUNDA_CLAIMS_NAMESPACE,
478
560
  default2 as CAMUNDI_PERMISSION_RULES,
561
+ CHART_DAY_GRAIN_MAX_DAYS,
562
+ CHART_FILTER_MAX_LENGTH,
563
+ CHART_GRAINS,
564
+ CHART_GRAIN_DEFAULT,
565
+ CHART_ID_MAX_LENGTH,
566
+ CHART_METRICS,
567
+ CHART_OTHER_SERIES_KEY,
568
+ CHART_QUERY_MAX_LENGTH,
569
+ CHART_TOP_DEFAULT,
570
+ CHART_TOP_MAX,
571
+ CHART_UNKNOWN_SERIES_KEY,
572
+ CHART_WINDOW_AMOUNT_MAX,
573
+ CHART_WINDOW_DEFAULT,
574
+ CHART_WINDOW_UNITS,
479
575
  CLOUD_PROVIDER_ORDER,
480
576
  CLUSTER_BULK_OPERATION_CLUSTER_NAME_MAX_LENGTH,
481
577
  CLUSTER_BULK_OPERATION_MAX_CLUSTERS,
@@ -495,6 +591,7 @@ export {
495
591
  CONNECTOR_MANAGEMENT_METRICS_MIN_VERSION,
496
592
  CONNECTOR_SECRET_SYNC_MIN_VERSION,
497
593
  CONSOLE_API_USER_ID,
594
+ ChartQueryError,
498
595
  ClusterBulkOperationStatus,
499
596
  ClusterBulkOperationType,
500
597
  ClusterClientPermission,
@@ -508,13 +605,32 @@ export {
508
605
  ConsoleSelfManagedUtils,
509
606
  ConsumptionData,
510
607
  ConsumptionDataType,
608
+ DASHBOARD_CHART_RENDERS,
609
+ DASHBOARD_CLUSTER_CARDS,
610
+ DASHBOARD_DEFINITION_BYTES_MAX,
611
+ DASHBOARD_DEFINITION_VERSION,
612
+ DASHBOARD_ENTITY_ID_MAX,
613
+ DASHBOARD_GRID_COLUMNS,
614
+ DASHBOARD_GRID_ROWS_MAX,
615
+ DASHBOARD_LINK_URL_MAX,
616
+ DASHBOARD_NOTE_MAX,
617
+ DASHBOARD_ORG_CARDS,
618
+ DASHBOARD_PAGE_SIZE_DEFAULT,
619
+ DASHBOARD_PAGE_SIZE_MAX,
620
+ DASHBOARD_TILES_MAX,
621
+ DASHBOARD_TILE_DEFAULT_SIZE,
622
+ DASHBOARD_TILE_KINDS,
623
+ DASHBOARD_TILE_ROWS_MAX,
624
+ DASHBOARD_TITLE_MAX,
511
625
  DAY,
512
626
  DEFAULT_ENTERPRISE_DURATION_IN_MONTHS,
627
+ DNS_SUBDOMAIN_MAX_LENGTH,
513
628
  ENFORCE_GROUPS_TASKLIST_V2_HIDDEN_MIN_VERSION,
514
629
  ENFORCE_GROUPS_TOGGLE_MIN_VERSION,
515
630
  EXTEND_TRIAL_MAX_DAYS,
516
631
  EXTEND_TRIAL_MIN_DAYS,
517
632
  ErrorType,
633
+ FEATURE_FLAG_MIN_ACKS_PROD,
518
634
  FIRSTNAME_LASTNAME_MAX_LENGTH,
519
635
  FORBIDDEN_HOSTNAMES_FOR_WEBHOOK_ALERTS,
520
636
  FeedbackType,
@@ -565,17 +681,21 @@ export {
565
681
  OPTIONAL_TELEMETRY_MIN_VERSION,
566
682
  ORGANIZATION_SEARCH_FIELDS,
567
683
  ORG_DEFAULT_SEARCH_FIELDS,
684
+ ORG_LIMIT_TEXT_MAX_LENGTH,
568
685
  ObjectMergeUtils,
569
686
  OrganizationPermissionsDescriptions,
570
687
  OrganizationRole,
571
688
  MAXLENGTH as PASSWORD_POLICY_MAXLENGTH,
572
689
  MINLENGTH as PASSWORD_POLICY_MINLENGTH,
690
+ PLATFORM_ROLE_CHANGE_MAX_ROLES,
573
691
  PRE89_AFFECTED_PATHS,
574
692
  PRE89_AFFECTED_PROPERTY_PREFIXES,
575
693
  PRE89_GATEWAY_PROPERTY_PATHS,
576
694
  PRE89_GATEWAY_RESOURCE_PREFIXES,
577
695
  PRIVATE_LINK_REGIONS,
578
696
  PROFILES,
697
+ PURGE_USERS_MAX_USERS,
698
+ PURGE_USERS_REQUIRED_PERMISSIONS,
579
699
  PermissionsForOrganizationRole,
580
700
  RESOURCE_BASED_AUTHORIZATIONS_MIN_VERSION,
581
701
  REST_API_URL_TRANSFORM_MIN_VERSION,
@@ -618,6 +738,8 @@ export {
618
738
  TRIAL_EXTENSION_SURVEY_QUESTIONS,
619
739
  Telemetry,
620
740
  UNKNOWN_ACTOR_EMAIL,
741
+ USER_METADATA_EXPECTED_MAX_LENGTH,
742
+ USER_METADATA_MAX_LENGTH,
621
743
  UnassignableOrganizationRole,
622
744
  UsageAlertInitValues,
623
745
  UsageAlertMetric,
@@ -646,6 +768,11 @@ export {
646
768
  canRemove,
647
769
  canView,
648
770
  canWithdraw,
771
+ canonicalPlan,
772
+ canonicalPlanKey,
773
+ chartBucketStart,
774
+ chartToday,
775
+ chartWindowRange,
649
776
  checkNoteBody,
650
777
  checkTagName,
651
778
  checkVersion,
@@ -657,6 +784,9 @@ export {
657
784
  compileQuery,
658
785
  computeOrgStartDate,
659
786
  consoleUserFeaturesFromPermissions,
787
+ dashboardDefinitionBytes,
788
+ dashboardDefinitionFits,
789
+ dashboardTileDefaultSize,
660
790
  deprecatedLimit,
661
791
  deriveConnectivityMessage,
662
792
  deriveConnectivityStatus,
@@ -665,10 +795,14 @@ export {
665
795
  deriveSecondaryStorageStatus,
666
796
  diffInWholeMonths,
667
797
  effectiveStatus,
798
+ emptyDashboardDefinition,
668
799
  enterpriseConnectionMetadataToOrganizationAssignments,
669
800
  expandRolesToPermissions,
670
801
  extractCamundaUserEmail,
802
+ findChartDimension,
803
+ findChartMetric,
671
804
  findSearchField,
805
+ formatChartSpec,
672
806
  generationImageErrorMessage,
673
807
  getAnalyticsSalesPlanFromOrgSalesPlan,
674
808
  getApplicableRolesForEmployee,
@@ -700,9 +834,11 @@ export {
700
834
  isBulkClusterPlanTypeUpdateItem,
701
835
  isBulkClusterPlanUpdateItem,
702
836
  isCamundaUserId,
837
+ isChartQueryError,
703
838
  isClusterBulkYolo,
704
839
  isClusterPlanFieldSpec,
705
840
  isClusterTagEligibleForSleepCron,
841
+ isDnsSubdomain,
706
842
  isEncryptionStatus,
707
843
  isExpired,
708
844
  isGenerationResumable,
@@ -713,10 +849,13 @@ export {
713
849
  isPastPreprodClusterTtl,
714
850
  isPre89AffectedPath,
715
851
  isPreprodClusterTtlStage,
852
+ isQaUserEmail,
716
853
  isRunStalled,
854
+ isSafeDashboardLink,
717
855
  isSalesPlanEligibleForSleepCron,
718
856
  isSameActor,
719
857
  isSameActorEmail,
858
+ isSameApprovalValue,
720
859
  isSecretsFilterModeConfigurable,
721
860
  isSleepCronEligible,
722
861
  isValidAwsArn,
@@ -732,13 +871,18 @@ export {
732
871
  normalizeGenerationVersion,
733
872
  normalizeTagName,
734
873
  organizationAssignmentsToEnterpriseConnectionMetadata,
874
+ parseChartQuery,
735
875
  parseEnvVars,
736
876
  parseKmsArn,
737
877
  parseLuceneQuery,
738
878
  parseNumericLimit,
739
879
  passwordPolicyCheck,
740
880
  peakWithinTerm,
881
+ placeNewTile,
882
+ placeNewTiles,
741
883
  progressFraction,
884
+ qaUserEmail,
885
+ readChartSpec,
742
886
  remainingAcks,
743
887
  requiredPermissionsOf,
744
888
  resolveRequiredAcks,
@@ -748,10 +892,15 @@ export {
748
892
  sortByAvailabilityClasses,
749
893
  sortByClusterPlanTypeCategory,
750
894
  sortGenerationBySemverOfZeebe,
895
+ staleApprovalKeys,
751
896
  stripSecfixPostfix,
897
+ tilesOverlap,
898
+ toStoredDashboardDefinition,
752
899
  toUtcDayStartMs,
753
900
  unusedClusterBasedLimits,
754
901
  unusedSalesPlanLimits,
902
+ upgradeDashboardDefinition,
903
+ validateChartSpec,
755
904
  validateCronSchedule,
756
905
  validateKmsArnForRegion,
757
906
  validateLabels