@camunda/ccma-shared-types 7.9.0 → 8.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.
- package/dist/constants/version-gates.const.d.ts +5 -11
- package/dist/constants/version-gates.const.js.map +2 -2
- package/dist/dtos/ControlV2.dto.d.ts +6 -4
- package/dist/dtos/ControlV2.dto.js.map +1 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.js +0 -4
- package/dist/index.js.map +2 -2
- package/package.json +1 -1
- package/dist/types/ConsoleSelfManaged.type.d.ts +0 -199
- package/dist/types/ConsoleSelfManaged.type.js +0 -93
- package/dist/types/ConsoleSelfManaged.type.js.map +0 -7
- package/dist/types/ConsoleSelfManagedAdminApi.type.d.ts +0 -111
- package/dist/types/ConsoleSelfManagedAdminApi.type.js +0 -1
- package/dist/types/ConsoleSelfManagedAdminApi.type.js.map +0 -7
- package/dist/utils/console-sm.utils.d.ts +0 -6
- package/dist/utils/console-sm.utils.js +0 -30
- package/dist/utils/console-sm.utils.js.map +0 -7
|
@@ -65,7 +65,7 @@ export declare const AUTHORIZATION_TOGGLE_MIN_VERSION = "8.8.0-alpha4";
|
|
|
65
65
|
/**
|
|
66
66
|
* Identity manages users, groups and tenants. The cluster shows the Identity
|
|
67
67
|
* screens (c4 cluster details, user details, group details, management widget,
|
|
68
|
-
* console-frontend
|
|
68
|
+
* console-frontend), and the CRD spec sends the
|
|
69
69
|
* internal client IDs to Identity
|
|
70
70
|
* (`K8sSpecUtils.clusterHasEnabledIdentityIntegration`).
|
|
71
71
|
*
|
|
@@ -149,14 +149,9 @@ export declare const INTERNAL_CONNECTORS_MANAGEMENT_MIN_VERSION = "8.8.0-alpha1"
|
|
|
149
149
|
* and the restart button. Under this floor the pages show the inbound-only
|
|
150
150
|
* table.
|
|
151
151
|
*
|
|
152
|
-
*
|
|
153
|
-
* The c4 connector-management widgets compare
|
|
152
|
+
* The c4 connector-management widgets compare it against
|
|
154
153
|
* `generation.versions.connectorBridge`
|
|
155
|
-
* (`useConnectorManagementRuntime.checkClusterVersion`).
|
|
156
|
-
* console-sm-frontend pages compare the generation name of the cluster
|
|
157
|
-
* (`page.getData().generation`). Both sites had the same literal before the
|
|
158
|
-
* gates moved here, so this constant keeps that. Do not read it as one
|
|
159
|
-
* question until the two readers compare the same field.
|
|
154
|
+
* (`useConnectorManagementRuntime.checkClusterVersion`).
|
|
160
155
|
*/
|
|
161
156
|
export declare const CONNECTOR_MANAGEMENT_METRICS_MIN_VERSION = "8.10.0-alpha3";
|
|
162
157
|
/**
|
|
@@ -214,11 +209,10 @@ export declare const SWAGGER_URL_8_9_MIN_VERSION = "8.9.0";
|
|
|
214
209
|
/** The MCP toggle and the MCP client tab are offered (c4). */
|
|
215
210
|
export declare const MCP_MIN_VERSION = "8.9.0-alpha4";
|
|
216
211
|
/**
|
|
217
|
-
* Identity is called "Admin" from here on (c4 navigation and overview tab
|
|
218
|
-
* console-sm-frontend). The URL and the permission still say `identity`.
|
|
212
|
+
* Identity is called "Admin" from here on (c4 navigation and overview tab). The URL and the permission still say `identity`.
|
|
219
213
|
*/
|
|
220
214
|
export declare const ADMIN_APP_RENAME_MIN_VERSION = "8.9.0-alpha5";
|
|
221
|
-
/** The job dashboard is offered (c4 overview tab
|
|
215
|
+
/** The job dashboard is offered (c4 overview tab). */
|
|
222
216
|
export declare const JOB_DASHBOARD_MIN_VERSION = "8.9.0-alpha5";
|
|
223
217
|
/** The cluster serves the statistics config endpoint (c4 cluster details). */
|
|
224
218
|
export declare const CLUSTER_STATISTICS_CONFIG_MIN_VERSION = "8.9.0-alpha5";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/constants/version-gates.const.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/**\n * Central list of the cluster version floors that gate features.\n *\n * Every `checkVersion({ versionToCompareTo })` / `checkClusterVersion()` call in\n * the apps and in `packages/c4` reads its floor from here. Put a new floor here\n * before you use it. Do not write a version literal at the call site \u2014 the same\n * feature is usually gated in more than one place (a c4 tile, a console-backend\n * guard, a CRD spec), and two literals drift. Incident #9703 was two copies of\n * one floor that disagreed.\n *\n * `packages/c3` keeps its own copy of the version helpers and is out of scope:\n * it is a public package that this repo must not change.\n *\n * The values compare with semver, so the spelling of a floor decides which\n * prerelease cohort it covers:\n * - `8.10.0-0` and `8.10.0-alpha0` sort below every `8.10.0-alphaN`.\n * - `8.10.0-alpha1` sorts above `alpha0` but below `alpha2`.\n * - `8.10.0` sorts above ALL `8.10.0-*` prereleases.\n *\n * Two constants in this file can hold the same value. Then they gate different\n * features and can move apart. When a name is an alias of another constant, the\n * two answer the same question and must never drift.\n *\n * A call site compares a floor against the zeebe version of the generation,\n * unless the comment of the constant names a different field. Name that field\n * in the comment when you add a floor for one, because the same number means a\n * different thing for `connectorBridge` or for a generation name.\n */\n\n// ---------------------------------------------------------------------------\n// Release-line floors\n//\n// Used where the code asks \"is this generation on the 8.x line?\" and no single\n// feature owns the answer. Both spell the line start as `-0`, so every\n// prerelease of that line is included.\n// ---------------------------------------------------------------------------\n\n/** Start of the 8.9 line, prereleases included. */\nexport const LINE_8_9_MIN_VERSION = '8.9.0-0'\n\n/** Start of the 8.10 line, prereleases included. */\nexport const LINE_8_10_MIN_VERSION = '8.10.0-0'\n\n// ---------------------------------------------------------------------------\n// Backups\n// ---------------------------------------------------------------------------\n\n/** Hot backups are available on the cluster (c4 hot-backups tab). */\nexport const HOT_BACKUP_MIN_VERSION = '8.2.4'\n\n// ---------------------------------------------------------------------------\n// Identity, authorizations and roles\n// ---------------------------------------------------------------------------\n\n/**\n * The \"enforce groups\" toggle is offered (c4 settings tile). The tile also\n * disappears again on 8.8 clusters that run Tasklist V2 \u2014 see\n * `ENFORCE_GROUPS_TASKLIST_V2_HIDDEN_MIN_VERSION`.\n */\nexport const ENFORCE_GROUPS_TOGGLE_MIN_VERSION = '8.5.0-alpha2'\n\n/** Resource-based authorizations exist. Replaced by identity authorizations. */\nexport const RESOURCE_BASED_AUTHORIZATIONS_MIN_VERSION = '8.6.0'\n\n/**\n * Identity-based authorizations replace the resource-based ones. Read as an\n * upper bound by the c4 settings tile: below this the cluster still shows the\n * resource-based section.\n */\nexport const IDENTITY_AUTHORIZATION_MIN_VERSION = '8.8.0-alpha1'\n\n/**\n * Upper bound of the \"your upgrade turns on identity authorizations\" notice in\n * the c4 overview tab. The notice is for 8.8-line targets only, so an 8.9\n * target does not show it.\n */\nexport const IDENTITY_AUTHORIZATION_NOTICE_MAX_VERSION = '8.9.0-alpha1'\n\n/**\n * The cluster uses the 8.8 role model, so the legacy per-cluster roles are\n * gone (c4 user-details and management widgets).\n */\nexport const NEW_CLUSTER_ROLES_MIN_VERSION = '8.8.0-alpha4'\n\n/**\n * The authorizations toggle is offered while creating a cluster (c4 create\n * cluster wizard).\n */\nexport const AUTHORIZATION_TOGGLE_MIN_VERSION = '8.8.0-alpha4'\n\n/**\n * Identity manages users, groups and tenants. The cluster shows the Identity\n * screens (c4 cluster details, user details, group details, management widget,\n * console-frontend and console-sm-frontend), and the CRD spec sends the\n * internal client IDs to Identity\n * (`K8sSpecUtils.clusterHasEnabledIdentityIntegration`).\n *\n * console-backend used `8.8.0-alpha4` until the gates moved here. That floor\n * was one alpha under the frontend. As a result, an 8.8.0-alpha4 cluster got\n * its `internalClientIDs` sent to an Identity that the UI did not show. There\n * is one floor now, on the version the UI has always used.\n */\nexport const IDENTITY_MANAGEMENT_MIN_VERSION = '8.8.0-alpha5'\n\n/** The multi-tenancy toggle is offered (c4 settings tile). */\nexport const MULTI_TENANCY_TOGGLE_MIN_VERSION = '8.8.0-alpha7'\n\n/** Business-ID uniqueness toggle is offered (c4 settings tile). */\nexport const BUSINESS_ID_UNIQUENESS_MIN_VERSION = '8.9.0-alpha5'\n\n// ---------------------------------------------------------------------------\n// Tasklist\n// ---------------------------------------------------------------------------\n\n/**\n * The current generation is good enough to upgrade to Tasklist V2 (c4 overview\n * tab).\n */\nexport const TASKLIST_V2_UPGRADE_MIN_VERSION = '8.7.0-alpha4'\n\n/**\n * The upgrade target carries Tasklist V2 (c4 overview tab). Pairs with\n * `LINE_8_10_MIN_VERSION` as the upper bound, because from 8.10 on the setting\n * is gone.\n */\nexport const TASKLIST_V2_UPGRADE_TARGET_MIN_VERSION = '8.8.0-alpha1'\n\n/**\n * A new cluster gets `tasklistV2Enabled` by default (console-backend cluster\n * creation). Reads the generation's tasklist version when it has one, else\n * zeebe.\n */\nexport const TASKLIST_V2_DEFAULT_ON_MIN_VERSION = '8.8.0'\n\n/**\n * From this version, the c4 settings tile hides the \"enforce groups\" toggle on\n * a cluster that runs Tasklist V2. The tile reads the constant with `>=`, and\n * it also needs `tasklistV2Enabled` to be true.\n *\n * The name says MIN because of that `>=`. The other MAX names in this file mark\n * the version where a gate stops, and their call sites read them with `<`.\n */\nexport const ENFORCE_GROUPS_TASKLIST_V2_HIDDEN_MIN_VERSION = '8.8.0'\n\n/** The Tasklist upgrade banner is offered (c4 settings tile). */\nexport const TASKLIST_UPGRADE_BANNER_MIN_VERSION = '8.8.0-alpha2'\n\n/**\n * The Tasklist mode toggle is offered while creating a cluster (c4 create\n * cluster wizard). Upper bound is `LINE_8_10_MIN_VERSION`.\n */\nexport const TASKLIST_MODE_TOGGLE_MIN_VERSION = '8.8.0-alpha8'\n\n/**\n * Minor-version pair that turns Tasklist V2 on during a generation update\n * (console-backend). Both are read with `VersionCheckOperator.SameMinor`: an\n * 8.7 cluster that moves to an 8.8 generation gets the setting.\n */\nexport const TASKLIST_V2_AUTO_ENABLE_FROM_MINOR = '8.7.0'\nexport const TASKLIST_V2_AUTO_ENABLE_TO_MINOR = '8.8.0'\n\n/**\n * The version where the Tasklist V2 flag stops to mean anything, because there\n * is no Tasklist V1 left to switch away from. Two readers use it. The CRD spec\n * stops to emit the Tasklist V2 mode environment variable\n * (`K8sSpecUtils.shouldSkipTasklistV2ModeEnvVar`). The accounts-frontend\n * support rows stop to show the flag.\n *\n * Spelled `8.10.0` and NOT `LINE_8_10_MIN_VERSION` (`8.10.0-0`). Cluster\n * creation sets the flag on every generation from\n * `TASKLIST_V2_DEFAULT_ON_MIN_VERSION` on. An 8.10 prerelease thus carries a\n * live value, and it must stay under this bound.\n *\n * c4 bounds its own Tasklist V2 checks with `LINE_8_10_MIN_VERSION` instead.\n * That constant answers a different question: can Console still offer the\n * Tasklist upgrade to this cluster. It correctly leaves out the 8.10\n * prereleases.\n */\nexport const TASKLIST_V2_SETTING_MAX_VERSION = '8.10.0'\n\n// ---------------------------------------------------------------------------\n// Connectors\n// ---------------------------------------------------------------------------\n\n/** The internal connectors-management page exists (c4 overview tab link). */\nexport const CONNECTORS_MANAGEMENT_LINK_MIN_VERSION = '8.7.0-alpha1'\n\n/**\n * The applications list offers \"Manage\" for connectors (c4 overview tab).\n * Matches what console-frontend has always done.\n */\nexport const INTERNAL_CONNECTORS_MANAGEMENT_MIN_VERSION = '8.8.0-alpha1'\n\n/**\n * Connector management shows the outbound connectors, the per-connector metrics\n * and the restart button. Under this floor the pages show the inbound-only\n * table.\n *\n * CAUTION: the two readers compare this floor against different version fields.\n * The c4 connector-management widgets compare\n * `generation.versions.connectorBridge`\n * (`useConnectorManagementRuntime.checkClusterVersion`). The\n * console-sm-frontend pages compare the generation name of the cluster\n * (`page.getData().generation`). Both sites had the same literal before the\n * gates moved here, so this constant keeps that. Do not read it as one\n * question until the two readers compare the same field.\n */\nexport const CONNECTOR_MANAGEMENT_METRICS_MIN_VERSION = '8.10.0-alpha3'\n\n/**\n * The secrets filter mode setting is offered on the 8.6 line (zeebe). Shared by\n * isSecretsFilterModeConfigurable (c4 settings tile + console-backend update\n * guard).\n */\nexport const SECRETS_FILTER_MODE_8_6_MIN_VERSION = '8.6.28'\n\n/** Same setting, floor for the 8.7 line. */\nexport const SECRETS_FILTER_MODE_8_7_MIN_VERSION = '8.7.25'\n\n/** Same setting, floor for the 8.8 line. */\nexport const SECRETS_FILTER_MODE_8_8_MIN_VERSION = '8.8.19'\n\n/**\n * Same setting, floor for the 8.9 line. The env var works from 8.9.7, but the\n * default stays DISABLED until 8.9.10. The floor waits for that default\n * change, so the toggle never shows an unset value with an unknown default.\n */\nexport const SECRETS_FILTER_MODE_8_9_MIN_VERSION = '8.9.10'\n\n/**\n * Same setting, floor for the 8.10 line and every line above it.\n *\n * This is the last floor: isSecretsFilterModeConfigurable applies it to all\n * versions above the 8.9 line, so 8.11 and later need no floor of their own.\n *\n * Two different reasons keep the versions below it out, and the second one is\n * why this floor is alpha6 and not alpha5:\n *\n * - alpha1 to alpha4 shipped the DISABLED default. Same reason as 8.9.7-8.9.9.\n * - alpha5 shipped the STRICT default, but not the Connectors change that this\n * setting needs. SaaS runs Connectors with legacy.mode=FALLBACK from the 8.10\n * line on, and the Connectors runtime of alpha5 refuses to start unless\n * FALLBACK is paired with STRICT\n * (ConnectorsAutoConfiguration.checkLegacyFallbackSecretFilter). A customer\n * who selects LAX or DISABLED on alpha5 crashes their own Connectors runtime\n * at startup, so the toggle must stay hidden there.\n *\n * Connectors removed that check after the alpha5 release (2026-09-03). The\n * removal is in the SNAPSHOT images and lands in the releases from alpha6 on.\n * SNAPSHOT clusters run the newest images, so they get the toggle.\n */\nexport const SECRETS_FILTER_MODE_8_10_MIN_VERSION = '8.10.0-alpha6'\n\n// ---------------------------------------------------------------------------\n// APIs and cluster URLs\n// ---------------------------------------------------------------------------\n\n/** The client details page can transform the cluster URL string (c4). */\nexport const REST_API_URL_TRANSFORM_MIN_VERSION = '8.6.0'\n\n/** The cluster publishes a Zeebe REST URL, so the client details page uses it. */\nexport const ZEEBE_REST_URL_MIN_VERSION = '8.8.0-alpha1'\n\n/** The cluster serves the v2 REST API under `<clusterUrl>/v2` (c4). */\nexport const REST_API_V2_MIN_VERSION = '8.10.0-alpha1'\n\n/** The Swagger toggle and the Swagger link are offered (c4). */\nexport const SWAGGER_MIN_VERSION = '8.8.0-alpha8'\n\n/**\n * The Swagger URL moves to its 8.9 shape (c4 `buildClusterSwaggerUrl`).\n * Spelled `8.9.0`, so 8.9 prereleases keep the older URL.\n */\nexport const SWAGGER_URL_8_9_MIN_VERSION = '8.9.0'\n\n/** The MCP toggle and the MCP client tab are offered (c4). */\nexport const MCP_MIN_VERSION = '8.9.0-alpha4'\n\n// ---------------------------------------------------------------------------\n// Apps, tabs and dashboards\n// ---------------------------------------------------------------------------\n\n/**\n * Identity is called \"Admin\" from here on (c4 navigation and overview tab,\n * console-sm-frontend). The URL and the permission still say `identity`.\n */\nexport const ADMIN_APP_RENAME_MIN_VERSION = '8.9.0-alpha5'\n\n/** The job dashboard is offered (c4 overview tab and console-sm-frontend). */\nexport const JOB_DASHBOARD_MIN_VERSION = '8.9.0-alpha5'\n\n/** The cluster serves the statistics config endpoint (c4 cluster details). */\nexport const CLUSTER_STATISTICS_CONFIG_MIN_VERSION = '8.9.0-alpha5'\n\n/** The audit log tab is offered (c4 cluster details). */\nexport const AUDIT_LOG_TAB_MIN_VERSION = '8.9.0-alpha5'\n\n// ---------------------------------------------------------------------------\n// Cluster spec and provisioning\n// ---------------------------------------------------------------------------\n\n/** Only 8.7 and newer generations are offered to AWS-only orgs (console-backend). */\nexport const AWS_ONLY_GENERATION_MIN_VERSION = '8.7.0'\n\n/**\n * The gateway spec takes its 8.9 shape (console-backend\n * `K8sSpecUtils.getGatewaySpec`). Spelled `-alpha0`, so every 8.9 prerelease\n * is included.\n */\nexport const GATEWAY_SPEC_8_9_MIN_VERSION = '8.9.0-alpha0'\n\n/**\n * The operator wires the session idle-timeout config through to Operate,\n * Tasklist and the unified app (camunda-security-library ADR-0042,\n * camunda-operator#5863). This floor matches the `SessionConfigSupported` gate\n * of the operator. The CRD spec and the c4 settings tile both read it, which is\n * why it lives here.\n */\nexport const SESSION_CONFIG_MIN_VERSION = '8.10.0-alpha5'\n\n/** A new cluster gets Optimize turned on by default (console-backend). */\nexport const OPTIMIZE_DEFAULT_ON_MIN_VERSION = '8.10.0-alpha5'\n\n// ---------------------------------------------------------------------------\n// Secrets, BYOIDP, Optimize and App Integrations\n//\n// Moved here from misc.const.ts. Same names, same values.\n// ---------------------------------------------------------------------------\n/**\n * Minimum cluster (zeebe) version for the Optimize data-filters feature. Shared by\n * the c4 settings tile, the new-cluster default, and CRD spec generation so the gate\n * stays consistent. Stricter than the operator's own gate (Camunda >= 8.9.0-alpha1,\n * where the exporter starts honoring the filters) \u2014 this is the product rollout gate.\n */\nexport const OPTIMIZE_FILTERING_MIN_VERSION = '8.10.0-alpha1'\n\n/**\n * Minimum cluster (zeebe) version at which the operator understands the new\n * cluster-secret CRDs (camunda-operator#5760) \u2014 SecretSource and SecretSync exist and\n * reconcile. Governs *provisioning the CRs*, nothing about which store they point at:\n * SecretSource provisioning (K8sClusterController.ensureSecretSource) and BYOIDP's\n * oidcProviders emission, which needs a SecretSource to deliver its clientSecretRef\n * (ByoidpSecretDeliveryController.deliverSecret refuses without one).\n *\n * BYOIDP is live up to prod, so this floor must stay at the generation BYOIDP\n * shipped on. Raising it would strand BYOIDP on every alpha below the new value.\n */\nexport const SECRET_SOURCE_MIN_VERSION = '8.10.0-alpha3'\n\n/**\n * Minimum cluster (zeebe) version for BYOIDP (external identity provider, #3190).\n * Shared by the c4 settings tile gate and the console-backend update guard so both\n * stay in lockstep.\n *\n * Aliased to SECRET_SOURCE_MIN_VERSION rather than repeating the literal: BYOIDP\n * needs the SecretSource/SecretSync CRDs to exist and nothing more (it delivers its\n * clientSecret through the SecretSource), so the two answer the same question and a\n * second literal would only let them drift. It is NOT CONNECTOR_SECRET_SYNC_MIN_VERSION\n * \u2014 that one is higher, and gating BYOIDP on it would strand BYOIDP on every alpha,\n * where it currently ships to prod.\n */\nexport const BYOIDP_MIN_VERSION = SECRET_SOURCE_MIN_VERSION\n\n/**\n * Minimum cluster (zeebe) version at which a cluster's *connector and internal*\n * secrets live in the new per-stage secret manager rather than the legacy store.\n *\n * Higher than SECRET_SOURCE_MIN_VERSION on purpose: a cluster can have a\n * SecretSource (so BYOIDP works) while its connector secrets are still in the legacy\n * store and it gets no connector SecretSync. The one thing that must never drift is\n * the pair inside THIS concern: store routing\n * (ConnectorSecretsController.resolveSecretManagerTarget), the connector SecretSync\n * and its projection into the broker's file store (K8sSpecUtils.getSecretStoresSpec),\n * the pre-8.10-backup mirror check, and the upgrade-copy crossing check\n * (GenerationController.crossesInto810) all read THIS constant. #9703 was those\n * disagreeing \u2014 where Console writes a secret must equal where the cluster reads it.\n *\n * Was the 8.10 GA line (`8.10.0`) until the connector-secret changes landed on\n * `8.10.0-alpha5` (2026-09-02). The floor moved down to that alpha because the\n * ordering requirement below was already met at that time: no\n * `8.10.0-alpha5` cluster existed yet, on any stage. So no cluster's secrets\n * were left in the legacy store under the new floor.\n *\n * Why alphas normally stay out: routing is version-based with no persisted \"which\n * store holds this cluster's secrets\" marker, so a cluster above the floor while the\n * feature gate is off has its secrets in the legacy store, and enabling the gate\n * later reroutes it to a store nobody ever populated. The copy that would fix that\n * (GenerationController.crossesInto810 -> copyConnectorSecretsToNewManager) only\n * fires on a generation CHANGE, and alpha generations have no upgrade chain at all\n * (`upgradeableFrom = []`, ReleaseTrainController.handleAlpha) \u2014 an alpha cluster is\n * created on its generation and stays there. So an alpha cohort above this floor\n * could never be migrated; the ~200 8.10.0-alpha4 clusters on prod are exactly that\n * cohort, and they stay below THIS floor (`alpha4 < alpha5`), so they are unaffected.\n *\n * The remaining ordering requirement is that a stage's gate be enabled before the\n * first at-floor cluster exists on it \u2014 which for SNAPSHOT-tagged clusters (at-floor\n * by design, since they run the newest operator) still has to be respected by hand. A\n * future move to `8.10.0-alpha6` or higher must check the same thing this move did:\n * no cluster already sitting at that version on any stage.\n */\nexport const CONNECTOR_SECRET_SYNC_MIN_VERSION = '8.10.0-alpha5'\n\n/**\n * Version floors for App Integrations (#8536). The fix landed as patches on\n * the 8.9 stream (zeebe >=8.9.14 AND connectorBridge >=8.9.7), everything\n * from 8.10.0-alpha4 on already carries both fixes. Shared by\n * isAppIntegrationsVersionSupported (c4 settings tile + console-backend\n * update guard) so the gate logic and its error message stay in lockstep.\n */\nexport const APP_INTEGRATIONS_MIN_VERSION = '8.10.0-alpha4'\nexport const APP_INTEGRATIONS_89_STREAM_ZEEBE_MIN_VERSION = '8.9.14'\nexport const APP_INTEGRATIONS_89_STREAM_CONNECTOR_BRIDGE_MIN_VERSION = '8.9.7'\n\n/**\n * Minor selector for the 8.9 stream, read with `VersionCheckOperator.SameMinor`\n * by `isAppIntegrationsVersionSupported`. It picks the stream, it is not a\n * floor: the floors are the two constants above.\n */\nexport const APP_INTEGRATIONS_89_STREAM_MINOR = '8.9.0'\n\n/**\n * The cluster details header calls the secrets \"cluster secrets\" instead of\n * the legacy name (c4).\n *\n * Aliased to CONNECTOR_SECRET_SYNC_MIN_VERSION rather than repeating the\n * literal: the label must follow the store the cluster actually uses, so the\n * two answer the same question.\n */\nexport const CLUSTER_SECRETS_LABEL_MIN_VERSION =\n CONNECTOR_SECRET_SYNC_MIN_VERSION\n\n/**\n * Minimum cluster (zeebe) version that runs the analytics exporter, thus the\n * floor for optional telemetry.\n *\n * The number comes from the operator: `AnalyticsExporterSupported` in\n * `pkg/features/features.go` reads `>= 8.10.0-alpha1`, and below it\n * `zeebe_statefulset.go` adds no exporter env vars at all. A cluster under the\n * floor sends no analytics telemetry, OPTIONAL or CONTRACTUAL, thus the row\n * has no state to show and the toggle has nothing to switch.\n */\nexport const OPTIONAL_TELEMETRY_MIN_VERSION = '8.10.0-alpha1'\n\n// ---------------------------------------------------------------------------\n// Suspend and resume\n// ---------------------------------------------------------------------------\n\n/**\n * Lowest ALPHA generation that a suspended cluster can resume from. A cluster\n * on an alpha under this floor stays suspended forever.\n * `isGenerationResumable` reads this floor. The c4 resume actions and the\n * console-backend wake-up guards share that function.\n *\n * The floor applies to alphas only. A release generation under it, 8.9 or\n * 8.8 for example, resumes as before. Those lines have an upgrade chain, so a\n * customer can move off them. An alpha has no upgrade chain\n * (`upgradeableFrom = []`, `ReleaseTrainController.handleAlpha`). A cluster\n * starts on its alpha generation and stays there, so the only way off an old\n * alpha is a new cluster. A bulk operation suspends that cohort, and this floor\n * then refuses the wake-up.\n *\n * Spelled `8.10.0-alpha5` and not `-0`, because the cohort to retire is every\n * alpha under alpha5. It holds the same value as\n * `CONNECTOR_SECRET_SYNC_MIN_VERSION` today. The alphas under that floor keep\n * their connector secrets in the legacy store, and no migration can move them.\n * It stays a constant of its own, because it answers a different question and\n * the two values can move apart.\n */\nexport const RESUME_ALPHA_MIN_VERSION = '8.10.0-alpha5'\n\n// ---------------------------------------------------------------------------\n// Generation upgrades\n// ---------------------------------------------------------------------------\n\n/**\n * The cluster serves the public upgrade status endpoint\n * `cluster/v2/status/upgrade` (PDP-3067, camunda/camunda#61876). From this\n * floor the upgrade gate of console-backend asks the cluster if it finished\n * the migrations of its last upgrade. Under it, the 24-hour grace period\n * decides.\n *\n * Spelled `8.10.0`, which sorts over all `8.10.0-*` prereleases. The endpoint\n * lands in the first release of the 8.10 line. The alphas do not have it, and\n * they stay on the grace period.\n */\nexport const UPGRADE_READINESS_MIN_VERSION = '8.10.0'\n"],
|
|
5
|
-
"mappings": "AA4CO,MAAM,uBAAuB;AAG7B,MAAM,wBAAwB;AAO9B,MAAM,yBAAyB;AAW/B,MAAM,oCAAoC;AAG1C,MAAM,4CAA4C;AAOlD,MAAM,qCAAqC;AAO3C,MAAM,4CAA4C;AAMlD,MAAM,gCAAgC;AAMtC,MAAM,mCAAmC;AAczC,MAAM,kCAAkC;AAGxC,MAAM,mCAAmC;AAGzC,MAAM,qCAAqC;AAU3C,MAAM,kCAAkC;AAOxC,MAAM,yCAAyC;AAO/C,MAAM,qCAAqC;AAU3C,MAAM,gDAAgD;AAGtD,MAAM,sCAAsC;AAM5C,MAAM,mCAAmC;AAOzC,MAAM,qCAAqC;AAC3C,MAAM,mCAAmC;AAmBzC,MAAM,kCAAkC;AAOxC,MAAM,yCAAyC;AAM/C,MAAM,6CAA6C;
|
|
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/**\n * Central list of the cluster version floors that gate features.\n *\n * Every `checkVersion({ versionToCompareTo })` / `checkClusterVersion()` call in\n * the apps and in `packages/c4` reads its floor from here. Put a new floor here\n * before you use it. Do not write a version literal at the call site \u2014 the same\n * feature is usually gated in more than one place (a c4 tile, a console-backend\n * guard, a CRD spec), and two literals drift. Incident #9703 was two copies of\n * one floor that disagreed.\n *\n * `packages/c3` keeps its own copy of the version helpers and is out of scope:\n * it is a public package that this repo must not change.\n *\n * The values compare with semver, so the spelling of a floor decides which\n * prerelease cohort it covers:\n * - `8.10.0-0` and `8.10.0-alpha0` sort below every `8.10.0-alphaN`.\n * - `8.10.0-alpha1` sorts above `alpha0` but below `alpha2`.\n * - `8.10.0` sorts above ALL `8.10.0-*` prereleases.\n *\n * Two constants in this file can hold the same value. Then they gate different\n * features and can move apart. When a name is an alias of another constant, the\n * two answer the same question and must never drift.\n *\n * A call site compares a floor against the zeebe version of the generation,\n * unless the comment of the constant names a different field. Name that field\n * in the comment when you add a floor for one, because the same number means a\n * different thing for `connectorBridge` or for a generation name.\n */\n\n// ---------------------------------------------------------------------------\n// Release-line floors\n//\n// Used where the code asks \"is this generation on the 8.x line?\" and no single\n// feature owns the answer. Both spell the line start as `-0`, so every\n// prerelease of that line is included.\n// ---------------------------------------------------------------------------\n\n/** Start of the 8.9 line, prereleases included. */\nexport const LINE_8_9_MIN_VERSION = '8.9.0-0'\n\n/** Start of the 8.10 line, prereleases included. */\nexport const LINE_8_10_MIN_VERSION = '8.10.0-0'\n\n// ---------------------------------------------------------------------------\n// Backups\n// ---------------------------------------------------------------------------\n\n/** Hot backups are available on the cluster (c4 hot-backups tab). */\nexport const HOT_BACKUP_MIN_VERSION = '8.2.4'\n\n// ---------------------------------------------------------------------------\n// Identity, authorizations and roles\n// ---------------------------------------------------------------------------\n\n/**\n * The \"enforce groups\" toggle is offered (c4 settings tile). The tile also\n * disappears again on 8.8 clusters that run Tasklist V2 \u2014 see\n * `ENFORCE_GROUPS_TASKLIST_V2_HIDDEN_MIN_VERSION`.\n */\nexport const ENFORCE_GROUPS_TOGGLE_MIN_VERSION = '8.5.0-alpha2'\n\n/** Resource-based authorizations exist. Replaced by identity authorizations. */\nexport const RESOURCE_BASED_AUTHORIZATIONS_MIN_VERSION = '8.6.0'\n\n/**\n * Identity-based authorizations replace the resource-based ones. Read as an\n * upper bound by the c4 settings tile: below this the cluster still shows the\n * resource-based section.\n */\nexport const IDENTITY_AUTHORIZATION_MIN_VERSION = '8.8.0-alpha1'\n\n/**\n * Upper bound of the \"your upgrade turns on identity authorizations\" notice in\n * the c4 overview tab. The notice is for 8.8-line targets only, so an 8.9\n * target does not show it.\n */\nexport const IDENTITY_AUTHORIZATION_NOTICE_MAX_VERSION = '8.9.0-alpha1'\n\n/**\n * The cluster uses the 8.8 role model, so the legacy per-cluster roles are\n * gone (c4 user-details and management widgets).\n */\nexport const NEW_CLUSTER_ROLES_MIN_VERSION = '8.8.0-alpha4'\n\n/**\n * The authorizations toggle is offered while creating a cluster (c4 create\n * cluster wizard).\n */\nexport const AUTHORIZATION_TOGGLE_MIN_VERSION = '8.8.0-alpha4'\n\n/**\n * Identity manages users, groups and tenants. The cluster shows the Identity\n * screens (c4 cluster details, user details, group details, management widget,\n * console-frontend), and the CRD spec sends the\n * internal client IDs to Identity\n * (`K8sSpecUtils.clusterHasEnabledIdentityIntegration`).\n *\n * console-backend used `8.8.0-alpha4` until the gates moved here. That floor\n * was one alpha under the frontend. As a result, an 8.8.0-alpha4 cluster got\n * its `internalClientIDs` sent to an Identity that the UI did not show. There\n * is one floor now, on the version the UI has always used.\n */\nexport const IDENTITY_MANAGEMENT_MIN_VERSION = '8.8.0-alpha5'\n\n/** The multi-tenancy toggle is offered (c4 settings tile). */\nexport const MULTI_TENANCY_TOGGLE_MIN_VERSION = '8.8.0-alpha7'\n\n/** Business-ID uniqueness toggle is offered (c4 settings tile). */\nexport const BUSINESS_ID_UNIQUENESS_MIN_VERSION = '8.9.0-alpha5'\n\n// ---------------------------------------------------------------------------\n// Tasklist\n// ---------------------------------------------------------------------------\n\n/**\n * The current generation is good enough to upgrade to Tasklist V2 (c4 overview\n * tab).\n */\nexport const TASKLIST_V2_UPGRADE_MIN_VERSION = '8.7.0-alpha4'\n\n/**\n * The upgrade target carries Tasklist V2 (c4 overview tab). Pairs with\n * `LINE_8_10_MIN_VERSION` as the upper bound, because from 8.10 on the setting\n * is gone.\n */\nexport const TASKLIST_V2_UPGRADE_TARGET_MIN_VERSION = '8.8.0-alpha1'\n\n/**\n * A new cluster gets `tasklistV2Enabled` by default (console-backend cluster\n * creation). Reads the generation's tasklist version when it has one, else\n * zeebe.\n */\nexport const TASKLIST_V2_DEFAULT_ON_MIN_VERSION = '8.8.0'\n\n/**\n * From this version, the c4 settings tile hides the \"enforce groups\" toggle on\n * a cluster that runs Tasklist V2. The tile reads the constant with `>=`, and\n * it also needs `tasklistV2Enabled` to be true.\n *\n * The name says MIN because of that `>=`. The other MAX names in this file mark\n * the version where a gate stops, and their call sites read them with `<`.\n */\nexport const ENFORCE_GROUPS_TASKLIST_V2_HIDDEN_MIN_VERSION = '8.8.0'\n\n/** The Tasklist upgrade banner is offered (c4 settings tile). */\nexport const TASKLIST_UPGRADE_BANNER_MIN_VERSION = '8.8.0-alpha2'\n\n/**\n * The Tasklist mode toggle is offered while creating a cluster (c4 create\n * cluster wizard). Upper bound is `LINE_8_10_MIN_VERSION`.\n */\nexport const TASKLIST_MODE_TOGGLE_MIN_VERSION = '8.8.0-alpha8'\n\n/**\n * Minor-version pair that turns Tasklist V2 on during a generation update\n * (console-backend). Both are read with `VersionCheckOperator.SameMinor`: an\n * 8.7 cluster that moves to an 8.8 generation gets the setting.\n */\nexport const TASKLIST_V2_AUTO_ENABLE_FROM_MINOR = '8.7.0'\nexport const TASKLIST_V2_AUTO_ENABLE_TO_MINOR = '8.8.0'\n\n/**\n * The version where the Tasklist V2 flag stops to mean anything, because there\n * is no Tasklist V1 left to switch away from. Two readers use it. The CRD spec\n * stops to emit the Tasklist V2 mode environment variable\n * (`K8sSpecUtils.shouldSkipTasklistV2ModeEnvVar`). The accounts-frontend\n * support rows stop to show the flag.\n *\n * Spelled `8.10.0` and NOT `LINE_8_10_MIN_VERSION` (`8.10.0-0`). Cluster\n * creation sets the flag on every generation from\n * `TASKLIST_V2_DEFAULT_ON_MIN_VERSION` on. An 8.10 prerelease thus carries a\n * live value, and it must stay under this bound.\n *\n * c4 bounds its own Tasklist V2 checks with `LINE_8_10_MIN_VERSION` instead.\n * That constant answers a different question: can Console still offer the\n * Tasklist upgrade to this cluster. It correctly leaves out the 8.10\n * prereleases.\n */\nexport const TASKLIST_V2_SETTING_MAX_VERSION = '8.10.0'\n\n// ---------------------------------------------------------------------------\n// Connectors\n// ---------------------------------------------------------------------------\n\n/** The internal connectors-management page exists (c4 overview tab link). */\nexport const CONNECTORS_MANAGEMENT_LINK_MIN_VERSION = '8.7.0-alpha1'\n\n/**\n * The applications list offers \"Manage\" for connectors (c4 overview tab).\n * Matches what console-frontend has always done.\n */\nexport const INTERNAL_CONNECTORS_MANAGEMENT_MIN_VERSION = '8.8.0-alpha1'\n\n/**\n * Connector management shows the outbound connectors, the per-connector metrics\n * and the restart button. Under this floor the pages show the inbound-only\n * table.\n *\n * The c4 connector-management widgets compare it against\n * `generation.versions.connectorBridge`\n * (`useConnectorManagementRuntime.checkClusterVersion`).\n */\nexport const CONNECTOR_MANAGEMENT_METRICS_MIN_VERSION = '8.10.0-alpha3'\n\n/**\n * The secrets filter mode setting is offered on the 8.6 line (zeebe). Shared by\n * isSecretsFilterModeConfigurable (c4 settings tile + console-backend update\n * guard).\n */\nexport const SECRETS_FILTER_MODE_8_6_MIN_VERSION = '8.6.28'\n\n/** Same setting, floor for the 8.7 line. */\nexport const SECRETS_FILTER_MODE_8_7_MIN_VERSION = '8.7.25'\n\n/** Same setting, floor for the 8.8 line. */\nexport const SECRETS_FILTER_MODE_8_8_MIN_VERSION = '8.8.19'\n\n/**\n * Same setting, floor for the 8.9 line. The env var works from 8.9.7, but the\n * default stays DISABLED until 8.9.10. The floor waits for that default\n * change, so the toggle never shows an unset value with an unknown default.\n */\nexport const SECRETS_FILTER_MODE_8_9_MIN_VERSION = '8.9.10'\n\n/**\n * Same setting, floor for the 8.10 line and every line above it.\n *\n * This is the last floor: isSecretsFilterModeConfigurable applies it to all\n * versions above the 8.9 line, so 8.11 and later need no floor of their own.\n *\n * Two different reasons keep the versions below it out, and the second one is\n * why this floor is alpha6 and not alpha5:\n *\n * - alpha1 to alpha4 shipped the DISABLED default. Same reason as 8.9.7-8.9.9.\n * - alpha5 shipped the STRICT default, but not the Connectors change that this\n * setting needs. SaaS runs Connectors with legacy.mode=FALLBACK from the 8.10\n * line on, and the Connectors runtime of alpha5 refuses to start unless\n * FALLBACK is paired with STRICT\n * (ConnectorsAutoConfiguration.checkLegacyFallbackSecretFilter). A customer\n * who selects LAX or DISABLED on alpha5 crashes their own Connectors runtime\n * at startup, so the toggle must stay hidden there.\n *\n * Connectors removed that check after the alpha5 release (2026-09-03). The\n * removal is in the SNAPSHOT images and lands in the releases from alpha6 on.\n * SNAPSHOT clusters run the newest images, so they get the toggle.\n */\nexport const SECRETS_FILTER_MODE_8_10_MIN_VERSION = '8.10.0-alpha6'\n\n// ---------------------------------------------------------------------------\n// APIs and cluster URLs\n// ---------------------------------------------------------------------------\n\n/** The client details page can transform the cluster URL string (c4). */\nexport const REST_API_URL_TRANSFORM_MIN_VERSION = '8.6.0'\n\n/** The cluster publishes a Zeebe REST URL, so the client details page uses it. */\nexport const ZEEBE_REST_URL_MIN_VERSION = '8.8.0-alpha1'\n\n/** The cluster serves the v2 REST API under `<clusterUrl>/v2` (c4). */\nexport const REST_API_V2_MIN_VERSION = '8.10.0-alpha1'\n\n/** The Swagger toggle and the Swagger link are offered (c4). */\nexport const SWAGGER_MIN_VERSION = '8.8.0-alpha8'\n\n/**\n * The Swagger URL moves to its 8.9 shape (c4 `buildClusterSwaggerUrl`).\n * Spelled `8.9.0`, so 8.9 prereleases keep the older URL.\n */\nexport const SWAGGER_URL_8_9_MIN_VERSION = '8.9.0'\n\n/** The MCP toggle and the MCP client tab are offered (c4). */\nexport const MCP_MIN_VERSION = '8.9.0-alpha4'\n\n// ---------------------------------------------------------------------------\n// Apps, tabs and dashboards\n// ---------------------------------------------------------------------------\n\n/**\n * Identity is called \"Admin\" from here on (c4 navigation and overview tab). The URL and the permission still say `identity`.\n */\nexport const ADMIN_APP_RENAME_MIN_VERSION = '8.9.0-alpha5'\n\n/** The job dashboard is offered (c4 overview tab). */\nexport const JOB_DASHBOARD_MIN_VERSION = '8.9.0-alpha5'\n\n/** The cluster serves the statistics config endpoint (c4 cluster details). */\nexport const CLUSTER_STATISTICS_CONFIG_MIN_VERSION = '8.9.0-alpha5'\n\n/** The audit log tab is offered (c4 cluster details). */\nexport const AUDIT_LOG_TAB_MIN_VERSION = '8.9.0-alpha5'\n\n// ---------------------------------------------------------------------------\n// Cluster spec and provisioning\n// ---------------------------------------------------------------------------\n\n/** Only 8.7 and newer generations are offered to AWS-only orgs (console-backend). */\nexport const AWS_ONLY_GENERATION_MIN_VERSION = '8.7.0'\n\n/**\n * The gateway spec takes its 8.9 shape (console-backend\n * `K8sSpecUtils.getGatewaySpec`). Spelled `-alpha0`, so every 8.9 prerelease\n * is included.\n */\nexport const GATEWAY_SPEC_8_9_MIN_VERSION = '8.9.0-alpha0'\n\n/**\n * The operator wires the session idle-timeout config through to Operate,\n * Tasklist and the unified app (camunda-security-library ADR-0042,\n * camunda-operator#5863). This floor matches the `SessionConfigSupported` gate\n * of the operator. The CRD spec and the c4 settings tile both read it, which is\n * why it lives here.\n */\nexport const SESSION_CONFIG_MIN_VERSION = '8.10.0-alpha5'\n\n/** A new cluster gets Optimize turned on by default (console-backend). */\nexport const OPTIMIZE_DEFAULT_ON_MIN_VERSION = '8.10.0-alpha5'\n\n// ---------------------------------------------------------------------------\n// Secrets, BYOIDP, Optimize and App Integrations\n//\n// Moved here from misc.const.ts. Same names, same values.\n// ---------------------------------------------------------------------------\n/**\n * Minimum cluster (zeebe) version for the Optimize data-filters feature. Shared by\n * the c4 settings tile, the new-cluster default, and CRD spec generation so the gate\n * stays consistent. Stricter than the operator's own gate (Camunda >= 8.9.0-alpha1,\n * where the exporter starts honoring the filters) \u2014 this is the product rollout gate.\n */\nexport const OPTIMIZE_FILTERING_MIN_VERSION = '8.10.0-alpha1'\n\n/**\n * Minimum cluster (zeebe) version at which the operator understands the new\n * cluster-secret CRDs (camunda-operator#5760) \u2014 SecretSource and SecretSync exist and\n * reconcile. Governs *provisioning the CRs*, nothing about which store they point at:\n * SecretSource provisioning (K8sClusterController.ensureSecretSource) and BYOIDP's\n * oidcProviders emission, which needs a SecretSource to deliver its clientSecretRef\n * (ByoidpSecretDeliveryController.deliverSecret refuses without one).\n *\n * BYOIDP is live up to prod, so this floor must stay at the generation BYOIDP\n * shipped on. Raising it would strand BYOIDP on every alpha below the new value.\n */\nexport const SECRET_SOURCE_MIN_VERSION = '8.10.0-alpha3'\n\n/**\n * Minimum cluster (zeebe) version for BYOIDP (external identity provider, #3190).\n * Shared by the c4 settings tile gate and the console-backend update guard so both\n * stay in lockstep.\n *\n * Aliased to SECRET_SOURCE_MIN_VERSION rather than repeating the literal: BYOIDP\n * needs the SecretSource/SecretSync CRDs to exist and nothing more (it delivers its\n * clientSecret through the SecretSource), so the two answer the same question and a\n * second literal would only let them drift. It is NOT CONNECTOR_SECRET_SYNC_MIN_VERSION\n * \u2014 that one is higher, and gating BYOIDP on it would strand BYOIDP on every alpha,\n * where it currently ships to prod.\n */\nexport const BYOIDP_MIN_VERSION = SECRET_SOURCE_MIN_VERSION\n\n/**\n * Minimum cluster (zeebe) version at which a cluster's *connector and internal*\n * secrets live in the new per-stage secret manager rather than the legacy store.\n *\n * Higher than SECRET_SOURCE_MIN_VERSION on purpose: a cluster can have a\n * SecretSource (so BYOIDP works) while its connector secrets are still in the legacy\n * store and it gets no connector SecretSync. The one thing that must never drift is\n * the pair inside THIS concern: store routing\n * (ConnectorSecretsController.resolveSecretManagerTarget), the connector SecretSync\n * and its projection into the broker's file store (K8sSpecUtils.getSecretStoresSpec),\n * the pre-8.10-backup mirror check, and the upgrade-copy crossing check\n * (GenerationController.crossesInto810) all read THIS constant. #9703 was those\n * disagreeing \u2014 where Console writes a secret must equal where the cluster reads it.\n *\n * Was the 8.10 GA line (`8.10.0`) until the connector-secret changes landed on\n * `8.10.0-alpha5` (2026-09-02). The floor moved down to that alpha because the\n * ordering requirement below was already met at that time: no\n * `8.10.0-alpha5` cluster existed yet, on any stage. So no cluster's secrets\n * were left in the legacy store under the new floor.\n *\n * Why alphas normally stay out: routing is version-based with no persisted \"which\n * store holds this cluster's secrets\" marker, so a cluster above the floor while the\n * feature gate is off has its secrets in the legacy store, and enabling the gate\n * later reroutes it to a store nobody ever populated. The copy that would fix that\n * (GenerationController.crossesInto810 -> copyConnectorSecretsToNewManager) only\n * fires on a generation CHANGE, and alpha generations have no upgrade chain at all\n * (`upgradeableFrom = []`, ReleaseTrainController.handleAlpha) \u2014 an alpha cluster is\n * created on its generation and stays there. So an alpha cohort above this floor\n * could never be migrated; the ~200 8.10.0-alpha4 clusters on prod are exactly that\n * cohort, and they stay below THIS floor (`alpha4 < alpha5`), so they are unaffected.\n *\n * The remaining ordering requirement is that a stage's gate be enabled before the\n * first at-floor cluster exists on it \u2014 which for SNAPSHOT-tagged clusters (at-floor\n * by design, since they run the newest operator) still has to be respected by hand. A\n * future move to `8.10.0-alpha6` or higher must check the same thing this move did:\n * no cluster already sitting at that version on any stage.\n */\nexport const CONNECTOR_SECRET_SYNC_MIN_VERSION = '8.10.0-alpha5'\n\n/**\n * Version floors for App Integrations (#8536). The fix landed as patches on\n * the 8.9 stream (zeebe >=8.9.14 AND connectorBridge >=8.9.7), everything\n * from 8.10.0-alpha4 on already carries both fixes. Shared by\n * isAppIntegrationsVersionSupported (c4 settings tile + console-backend\n * update guard) so the gate logic and its error message stay in lockstep.\n */\nexport const APP_INTEGRATIONS_MIN_VERSION = '8.10.0-alpha4'\nexport const APP_INTEGRATIONS_89_STREAM_ZEEBE_MIN_VERSION = '8.9.14'\nexport const APP_INTEGRATIONS_89_STREAM_CONNECTOR_BRIDGE_MIN_VERSION = '8.9.7'\n\n/**\n * Minor selector for the 8.9 stream, read with `VersionCheckOperator.SameMinor`\n * by `isAppIntegrationsVersionSupported`. It picks the stream, it is not a\n * floor: the floors are the two constants above.\n */\nexport const APP_INTEGRATIONS_89_STREAM_MINOR = '8.9.0'\n\n/**\n * The cluster details header calls the secrets \"cluster secrets\" instead of\n * the legacy name (c4).\n *\n * Aliased to CONNECTOR_SECRET_SYNC_MIN_VERSION rather than repeating the\n * literal: the label must follow the store the cluster actually uses, so the\n * two answer the same question.\n */\nexport const CLUSTER_SECRETS_LABEL_MIN_VERSION =\n CONNECTOR_SECRET_SYNC_MIN_VERSION\n\n/**\n * Minimum cluster (zeebe) version that runs the analytics exporter, thus the\n * floor for optional telemetry.\n *\n * The number comes from the operator: `AnalyticsExporterSupported` in\n * `pkg/features/features.go` reads `>= 8.10.0-alpha1`, and below it\n * `zeebe_statefulset.go` adds no exporter env vars at all. A cluster under the\n * floor sends no analytics telemetry, OPTIONAL or CONTRACTUAL, thus the row\n * has no state to show and the toggle has nothing to switch.\n */\nexport const OPTIONAL_TELEMETRY_MIN_VERSION = '8.10.0-alpha1'\n\n// ---------------------------------------------------------------------------\n// Suspend and resume\n// ---------------------------------------------------------------------------\n\n/**\n * Lowest ALPHA generation that a suspended cluster can resume from. A cluster\n * on an alpha under this floor stays suspended forever.\n * `isGenerationResumable` reads this floor. The c4 resume actions and the\n * console-backend wake-up guards share that function.\n *\n * The floor applies to alphas only. A release generation under it, 8.9 or\n * 8.8 for example, resumes as before. Those lines have an upgrade chain, so a\n * customer can move off them. An alpha has no upgrade chain\n * (`upgradeableFrom = []`, `ReleaseTrainController.handleAlpha`). A cluster\n * starts on its alpha generation and stays there, so the only way off an old\n * alpha is a new cluster. A bulk operation suspends that cohort, and this floor\n * then refuses the wake-up.\n *\n * Spelled `8.10.0-alpha5` and not `-0`, because the cohort to retire is every\n * alpha under alpha5. It holds the same value as\n * `CONNECTOR_SECRET_SYNC_MIN_VERSION` today. The alphas under that floor keep\n * their connector secrets in the legacy store, and no migration can move them.\n * It stays a constant of its own, because it answers a different question and\n * the two values can move apart.\n */\nexport const RESUME_ALPHA_MIN_VERSION = '8.10.0-alpha5'\n\n// ---------------------------------------------------------------------------\n// Generation upgrades\n// ---------------------------------------------------------------------------\n\n/**\n * The cluster serves the public upgrade status endpoint\n * `cluster/v2/status/upgrade` (PDP-3067, camunda/camunda#61876). From this\n * floor the upgrade gate of console-backend asks the cluster if it finished\n * the migrations of its last upgrade. Under it, the 24-hour grace period\n * decides.\n *\n * Spelled `8.10.0`, which sorts over all `8.10.0-*` prereleases. The endpoint\n * lands in the first release of the 8.10 line. The alphas do not have it, and\n * they stay on the grace period.\n */\nexport const UPGRADE_READINESS_MIN_VERSION = '8.10.0'\n"],
|
|
5
|
+
"mappings": "AA4CO,MAAM,uBAAuB;AAG7B,MAAM,wBAAwB;AAO9B,MAAM,yBAAyB;AAW/B,MAAM,oCAAoC;AAG1C,MAAM,4CAA4C;AAOlD,MAAM,qCAAqC;AAO3C,MAAM,4CAA4C;AAMlD,MAAM,gCAAgC;AAMtC,MAAM,mCAAmC;AAczC,MAAM,kCAAkC;AAGxC,MAAM,mCAAmC;AAGzC,MAAM,qCAAqC;AAU3C,MAAM,kCAAkC;AAOxC,MAAM,yCAAyC;AAO/C,MAAM,qCAAqC;AAU3C,MAAM,gDAAgD;AAGtD,MAAM,sCAAsC;AAM5C,MAAM,mCAAmC;AAOzC,MAAM,qCAAqC;AAC3C,MAAM,mCAAmC;AAmBzC,MAAM,kCAAkC;AAOxC,MAAM,yCAAyC;AAM/C,MAAM,6CAA6C;AAWnD,MAAM,2CAA2C;AAOjD,MAAM,sCAAsC;AAG5C,MAAM,sCAAsC;AAG5C,MAAM,sCAAsC;AAO5C,MAAM,sCAAsC;AAwB5C,MAAM,uCAAuC;AAO7C,MAAM,qCAAqC;AAG3C,MAAM,6BAA6B;AAGnC,MAAM,0BAA0B;AAGhC,MAAM,sBAAsB;AAM5B,MAAM,8BAA8B;AAGpC,MAAM,kBAAkB;AASxB,MAAM,+BAA+B;AAGrC,MAAM,4BAA4B;AAGlC,MAAM,wCAAwC;AAG9C,MAAM,4BAA4B;AAOlC,MAAM,kCAAkC;AAOxC,MAAM,+BAA+B;AASrC,MAAM,6BAA6B;AAGnC,MAAM,kCAAkC;AAaxC,MAAM,iCAAiC;AAavC,MAAM,4BAA4B;AAclC,MAAM,qBAAqB;AAuC3B,MAAM,oCAAoC;AAS1C,MAAM,+BAA+B;AACrC,MAAM,+CAA+C;AACrD,MAAM,0DAA0D;AAOhE,MAAM,mCAAmC;AAUzC,MAAM,oCACX;AAYK,MAAM,iCAAiC;AA2BvC,MAAM,2BAA2B;AAiBjC,MAAM,gCAAgC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -288,11 +288,13 @@ export interface ListClustersV2Params extends CursorParams {
|
|
|
288
288
|
* by the DB-backed columns behind these list columns (the values are the
|
|
289
289
|
* frontend column `key`s, mapped to SQL expressions in the controller):
|
|
290
290
|
* `orgName` (owner id), `autoUpdate`, `planName`, `planTypeName`, `generation`,
|
|
291
|
-
* `channel`, `stageTag` (the single `camunda` label)
|
|
292
|
-
*
|
|
293
|
-
*
|
|
291
|
+
* `channel`, `stageTag` (the single `camunda` label), `ttlExpiresAt` (a
|
|
292
|
+
* cluster with no expiry is last in both directions; a reader who may not
|
|
293
|
+
* see the TTL gets the default sort). `status`/`region` are intentionally
|
|
294
|
+
* excluded — they're computed from live K8s state / context config, not SQL
|
|
295
|
+
* columns.
|
|
294
296
|
*/
|
|
295
|
-
sort?: 'name' | 'created' | 'orgName' | 'autoUpdate' | 'planName' | 'planTypeName' | 'generation' | 'channel' | 'stageTag';
|
|
297
|
+
sort?: 'name' | 'created' | 'orgName' | 'autoUpdate' | 'planName' | 'planTypeName' | 'generation' | 'channel' | 'stageTag' | 'ttlExpiresAt';
|
|
296
298
|
order?: 'asc' | 'desc';
|
|
297
299
|
filter?: {
|
|
298
300
|
status?: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/dtos/ControlV2.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 { CamundaClusterStage } from '../types/CamundaClusterLabels.type.js'\nimport type { ClusterPlanTypesToReserved } from '../types/ClusterPlanTypesToReserved.type.js'\nimport type { ClusterTtlDto } from '../types/ClusterTtl.type.js'\nimport type { SalesPlanType } from '../types/SalesPlanType.type.js'\nimport type { LicensingModelType } from './Organization.dto.js'\n\n// ============================================================================\n// Control (v2) API contract\n//\n// Purpose-built, list-optimized DTOs for the new Control frontend, served by the\n// `/v2` routers on accounts-backend and console-backend. Cursor-paginated, and\n// pre-shaped server-side so the client does no normalization. See\n// copilot/CONTROL_FRONTEND_SPEC.md \u00A710.\n// ============================================================================\n\n/** Generic cursor-paginated response. `nextCursor === null` on the last page. */\nexport interface CursorPage<T> {\n items: T[]\n nextCursor: string | null\n}\n\n/** Cursor pagination query params shared by all v2 list endpoints. */\nexport interface CursorParams {\n cursor?: string\n limit?: number\n}\n\n// ---- Session (GET /v2/session) -------------------------------------------\n\nexport interface ControlSessionUser {\n id: string\n email: string\n name: string\n}\n\n/**\n * Flat map of resolved capability flags for the signed-in user, computed\n * server-side from the existing JWT-claim + Auth0-metadata model (kept as-is,\n * spec Q12). The shell uses these to gate navigation; the backend flattens its\n * `Features` object into the subset the nav needs.\n */\nexport type ControlResolvedPermissions = Record<string, boolean>\n\nexport interface OrgSummaryV2Dto {\n id: string\n name: string\n role: string\n clusterCount: number\n}\n\nexport interface ControlSessionDto {\n user: ControlSessionUser\n permissions: ControlResolvedPermissions\n organizations: OrgSummaryV2Dto[]\n}\n\n// ---- Organizations (GET /v2/organizations) -------------------------------\n\nexport interface OrgListItemV2Dto {\n id: string\n name: string\n /** ISO-8601; part of the cursor key. */\n created: string\n internal: boolean\n salesPlanType?: SalesPlanType\n /** Concrete plan name (`SalesPlan.name`), distinct from the tier `salesPlanType`. */\n salesPlanName?: string\n salesForceId?: string\n /** ISO-8601 end of the trial, when the org is or was on a trial plan. */\n trialExpiresAt?: string\n /**\n * Persisted trial state: `true` when the trial ran out, `false` while it\n * runs. Absent when the org is not on a trial plan or the state is not set.\n */\n trialExpired?: boolean\n /** Org metadata flag: the org can only create clusters on AWS. */\n awsOnly?: boolean\n /** Org metadata flag: enterprise plan limited to development use. */\n enterpriseDevOnly?: boolean\n /** Org metadata: which licensing model prices the org. */\n licensingModel?: LicensingModelType\n /**\n * The cluster plan types the org reserved, by plan type uuid, with the\n * count. Absent when the org has no sales plan, and also when it has one\n * that holds no reserved map (the column is nullable). The export of\n * reservations and clusters of the Organizations page reads it.\n */\n clusterPlanTypesToReserved?: ClusterPlanTypesToReserved\n}\n\nexport interface ListOrganizationsV2Params extends CursorParams {\n q?: string\n /**\n * Lucene-style query over the org fields (see `ORGANIZATION_SEARCH_FIELDS`).\n * ANDed with `q`/`filter` server-side; a bare term behaves like `q`.\n */\n query?: string\n sort?: 'name' | 'created' | 'internal' | 'salesPlanType' | 'salesPlanName'\n order?: 'asc' | 'desc'\n filter?: {\n internal?: boolean\n /** Sales plan tiers (`SalesPlanType`); multi-select, matched with `IN (...)`. */\n salesPlanTypes?: SalesPlanType[]\n /**\n * Concrete plan names (`SalesPlan.name`, distinct from the tier); backs the\n * \"Sales plan name\" filter. Multi-select, matched with `IN (...)`.\n */\n salesPlanNames?: string[]\n /** ISO-8601 lower bound on `created` (age-bucket filters). */\n createdAfter?: string\n /** ISO-8601 upper bound on `created` (age-bucket filters). */\n createdBefore?: string\n /**\n * Restrict to these org uuids. Backs cross-backend lookups (e.g. org by\n * cluster name / client id: resolve owner ids on console, then filter\n * here \u2014 spec \u00A714.1 L).\n */\n ids?: string[]\n /**\n * Only organizations that can create clusters on AWS alone (true), or\n * every other organization (false). Reads `metadata.awsOnly`; an\n * organization with no value counts as not AWS-only, as the accounts\n * tool reads it.\n */\n awsOnly?: boolean\n /**\n * Only organizations that hold a reservation above zero for one of\n * these cluster plan type uuids. Reads\n * `organizationToSalesPlan.clusterPlanTypesToReserved`.\n */\n reservedPlanTypeIds?: string[]\n }\n}\n\nexport interface OrgDetailV2Dto extends OrgListItemV2Dto {\n /** Full detail fields are added as the detail page is built (Phase 3). */\n metadata?: Record<string, unknown>\n}\n\nexport interface OrgMemberV2Dto {\n userId: string\n email: string\n name?: string\n roles: string[]\n status: 'active' | 'invited'\n /** ISO-8601. */\n invitedAt?: string\n /** ISO-8601. */\n joinedAt?: string\n}\n\nexport interface ListOrgMembersV2Params extends CursorParams {\n q?: string\n}\n\n// ---- Clusters (GET /v2/clusters) -----------------------------------------\n\nexport interface ClusterListItemV2Dto {\n id: string\n name: string\n orgId: string\n orgName: string\n /** Normalized server-side; augmented on the fly from the K8s watcher (\u00A79.4 B1). */\n status: string\n /**\n * The `metadata.generation` of the ZeebeCluster CR, from the K8s watcher at\n * the time of the read, as in `ClusterLiveStateV2Entry`. A row thus carries\n * the baseline that a poll of `GET /v2/clusters/live-state` compares with.\n * Absent when the watcher does not know the cluster, or on an older\n * console-backend.\n */\n specGeneration?: number\n /**\n * Cluster environment stage (dev/test/stage/prod), from the single `camunda`\n * label. Absent when the cluster has no camunda label or more than one, so a\n * surface can only trust it when it is set \u2014 the same guard the cluster\n * detail page and accounts use.\n */\n stageTag?: CamundaClusterStage\n /** Plan type name (`ClusterPlanType.name`). Backs the \"Plan type\" column. */\n planTypeName: string\n /**\n * Plan type uuid (`ClusterPlanType.uuid`). The key that the org reserved map\n * (`clusterPlanTypesToReserved`) uses, so the Control org \"Reservations\" tab\n * can group clusters by plan type to compute the used count.\n */\n planTypeId?: string\n /**\n * Hardware-package count for the cluster (advanced offering). One cluster can\n * use more than one package, so the used-reservation total sums this value\n * across the org's clusters. Undefined when the source value is unknown; the\n * client then counts the cluster as one package.\n */\n numberOfAllocatedHwPackages?: number\n /** Concrete plan name (`ClusterPlan.name`). Backs the \"Plan\" column. */\n planName?: string\n /**\n * Concrete plan uuid (`ClusterPlan.uuid`). Names are not unique, so this is\n * the key to compare a cluster with a target plan.\n */\n planId?: string\n /** Generation name, for display. Group and filter by `generationId`. */\n generation: string\n /** Generation uuid. Names are not unique, so this is the grouping key. */\n generationId?: string\n region: string\n /** Display-only; not a sort/filter key (\u00A79.4 B2). */\n load?: number\n updateAvailable: boolean\n /** Auto-update setting (distinct from `updateAvailable`). */\n autoUpdate: boolean\n /** Release channel name, when the cluster is on one. */\n channel?: string\n /** ISO-8601; part of the cursor key. */\n created: string\n /**\n * User id of the creator, e.g. `samlp|Okta|jane.doe@camunda.com`. Absent\n * when a background flow created the cluster, for an old cluster that has\n * no record of its creator, or on an older console-backend. Also absent\n * for a caller without `canReadAllClusterInfo`: the org clusters route\n * serves members of the org too (see `canReadClusterCreator`).\n */\n createdBy?: string\n /**\n * ISO-8601 instant of the last suspend. Absent when the cluster is awake:\n * `Cluster.wakeUp()` clears the column, thus this is the time since the last\n * suspend and not the total time that the cluster was asleep.\n */\n suspendedAt?: string\n /** The \"Authorizations\" toggle of cluster create. */\n identityBackendChecksEnabled?: boolean\n multiTenancyEnabled?: boolean\n /** BYOIDP. */\n externalIdpEnabled?: boolean\n /** Session idle timeout. */\n sessionMaxInactiveIntervalMinutes?: number\n sessionHeartbeatEnabled?: boolean\n /** BYOK: `encryption` is `External`. The key can still be missing. */\n byokEnabled?: boolean\n /** The cluster has at least one external monitoring (BYOM) client. */\n externalMonitoringEnabled?: boolean\n /** The cluster has a `secure_connectivity` row (AWS PrivateLink). */\n privateConnectivityEnabled?: boolean\n /**\n * The cluster TTL. Absent where `CommonClusterDto.ttl` is absent for the\n * same reader: on every stage other than dev and int, prod included. Also\n * absent for a member of the org on the org clusters route, and on an older\n * console-backend.\n */\n ttl?: ClusterTtlDto\n}\n\n/** Detail extends the list shape; richer fields are added in Phase 3. */\nexport type ClusterDetailV2Dto = ClusterListItemV2Dto\n\n/**\n * How much work a cluster did, inside the 30-day activity window.\n *\n * `idle` and `unknown` are different facts and must stay apart. `idle` is\n * evidence that the cluster did no work. `unknown` is the absence of\n * evidence: on the dev stage most clusters have no row at all.\n *\n * The source is the Holistic Data Platform (HDP), which holds one row per\n * cluster, per day, per value metric. The window is 30 days, thus a bucket\n * for \"did work, but more than 30 days ago\" is not possible.\n */\nexport type ClusterActivityBucket =\n /** Work inside the 30-day window. */\n | 'active'\n /** Rows exist inside the window. All values are zero. */\n | 'idle'\n /** No row at all inside the window. */\n | 'unknown'\n\n/** Quick-filter tiles on the clusters list. */\nexport type ClusterActivityTile =\n | 'all'\n | 'active'\n | 'idle'\n | 'unknown'\n /** More than 90 days old, and not active. */\n | 'old-idle'\n /** No more than 30 days old, with no work and no data. */\n | 'new-idle'\n\nexport interface ClusterActivityV2Dto {\n clusterId: string\n /**\n * ISO-8601 instant of the last UTC day with work. HDP buckets by day, thus\n * the time part is always midnight. Absent when the cluster did no work\n * inside the window.\n */\n lastActiveAt?: string\n processInstances30d: number\n bucket: ClusterActivityBucket\n}\n\nexport interface ClusterActivityV2Response {\n /**\n * One entry per live cluster that has an HDP row inside the window. A\n * cluster in the `unknown` bucket has no entry, because the bucket means\n * that no row exists.\n */\n items: ClusterActivityV2Dto[]\n /** Fleet-wide tile counts. The server joins `cluster.created` for the age tiles. */\n counts: Record<ClusterActivityTile, number>\n /** ISO-8601 instant when the server assembled this response. */\n fetchedAt: string\n /** The number of days that the window covers. */\n windowDays: number\n}\n\n/** The modification state of a cluster, as the Clusters list filters it. */\nexport const CLUSTER_MODIFICATION_STATES = [\n 'active',\n 'planned',\n 'archived',\n 'none',\n] as const\nexport type ClusterModificationState =\n (typeof CLUSTER_MODIFICATION_STATES)[number]\n\nexport interface ListClustersV2Params extends CursorParams {\n q?: string\n /**\n * Lucene-style query over the cluster fields (see `CLUSTER_SEARCH_FIELDS`).\n * ANDed with `q`/`filter` server-side; a bare term behaves like `q`.\n */\n query?: string\n /**\n * Server-side sort key. Beyond `name`/`created`, the clusters list also sorts\n * by the DB-backed columns behind these list columns (the values are the\n * frontend column `key`s, mapped to SQL expressions in the controller):\n * `orgName` (owner id), `autoUpdate`, `planName`, `planTypeName`, `generation`,\n * `channel`, `stageTag` (the single `camunda` label). `status`/`region` are\n * intentionally excluded \u2014 they're computed from live K8s state / context\n * config, not SQL columns.\n */\n sort?:\n | 'name'\n | 'created'\n | 'orgName'\n | 'autoUpdate'\n | 'planName'\n | 'planTypeName'\n | 'generation'\n | 'channel'\n | 'stageTag'\n order?: 'asc' | 'desc'\n filter?: {\n status?: string\n /**\n * Cluster plan TYPE name (maps to `planType.name`; legacy single-value\n * param, still used by the plan-type detail page's cluster-distribution\n * read \u2014 kept alongside `planTypeNames` rather than replaced).\n */\n plan?: string\n /**\n * Restrict to these plan TYPE names (`planType.name`); the Control\n * clusters list's multi-select \"Plan type\" filter.\n */\n planTypeNames?: string[]\n /**\n * Restrict to these concrete plan names (`plan.name`, the `ClusterPlan`\n * entity \u2014 NOT the plan type); backs the Control clusters list's \"Plan\"\n * filter, whose dropdown is sourced from `ClusterPlan` via\n * `/clusters/parameters`. Corrected in #9325 (second pass): a prior fix\n * on this branch mistakenly repointed this at `planType.name` to match a\n * dropdown that was, at the time, wrongly sourced from `ClusterPlanType`\n * \u2014 but the dropdown was the actual bug. Both the dropdown and this query\n * now consistently reference `ClusterPlan`. Distinct from `planTypeNames`\n * above, which is the separate \"Plan type\" filter over `ClusterPlanType`.\n */\n planNames?: string[]\n /**\n * Restrict to these generation uuids (`generation.uuid`). Never by name:\n * a generation name is not unique, so one name can match two generations.\n */\n generationIds?: string[]\n /** Restrict to these cloud providers (resolved via the k8s-context config). */\n providers?: string[]\n /** Exact k8s context uuid. */\n k8sContext?: string\n /**\n * Restrict to these k8s context (datacenter) uuids; the Control clusters\n * list's multi-select \"Datacenter\" filter, which matches the context\n * identity, mirroring the accounts clusters list's \"Filter by Datacenter\".\n */\n k8sContexts?: string[]\n orgId?: string\n /** Restrict to these owner org uuids (cross-backend sales-plan filters). */\n orgIds?: string[]\n /** Restrict to these cluster uuids (prefilter-by-id). */\n ids?: string[]\n /** Restrict to clusters that these user ids created (`cluster.createdBy`). */\n createdBy?: string[]\n /** Auto-update on/off. */\n autoUpdate?: boolean\n /** Internal (Camunda-owned) clusters only / excluded. */\n internal?: boolean\n /** Only clusters with (true) / without (false) an active modification. */\n hasActiveModification?: boolean\n /**\n * Only clusters whose plan is (true) / is not (false) the active plan of\n * their plan type. The accounts clusters list calls it \"on most recent\n * ClusterPlan\"; a cluster that is not is one a plan update would move.\n */\n onActivePlan?: boolean\n /**\n * Only clusters whose generation is (true) / is not (false) unsupported\n * now: `isUnsupportedStarting` is set and in the past.\n */\n unsupportedGeneration?: boolean\n /**\n * Only clusters with (true) / without (false) the legacy environment\n * variable override of the cluster row (`overrideEnvVars`). Modification\n * configs replaced it; a cluster that still has one needs a look.\n */\n legacyEnvVars?: boolean\n /**\n * Restrict to clusters in one of these modification states. `active` is\n * an active config, `planned` a modification with no active config that\n * is not archived, `archived` only archived modifications, `none` no\n * modification at all. The states are exclusive, so several select the\n * union.\n */\n modificationStates?: ClusterModificationState[]\n /** Only clusters with (true) / without (false) the flag of the same name. */\n byokEnabled?: boolean\n externalMonitoringEnabled?: boolean\n privateConnectivityEnabled?: boolean\n /**\n * Zeebe minor-version prefix match on the generation's versions (e.g.\n * \"8.7\" matches zeebe 8.7.x).\n */\n minorVersion?: string\n /** Restrict to these release channel names. */\n channels?: string[]\n /**\n * ISO-8601 lower bound on `created` (e.g. \"created in the last 7 days\").\n * Inclusive: a cluster created at this instant matches.\n */\n createdAfter?: string\n /**\n * ISO-8601 upper bound on `created`. Pairs with `createdAfter` for the\n * age axis. Exclusive: a cluster created at this instant does not match.\n */\n createdBefore?: string\n /**\n * ISO-8601 upper bound on `suspendedAt`, thus \"asleep since at least N\n * days\". Exclusive, as `createdBefore` is. A cluster that is awake never\n * matches: `Cluster.wakeUp()` clears the column.\n *\n * The bound is the time since the last suspend. A cluster that woke up for\n * one minute and then slept again starts from zero, thus this filter finds\n * the clusters that nobody touched, not the clusters that did no work.\n */\n suspendedBefore?: string\n /**\n * ISO-8601 lower bound on `suspendedAt`, thus \"asleep for not more than N\n * days\". Inclusive, as `createdAfter` is. It makes the suspension-age\n * range together with `suspendedBefore`.\n *\n * A cluster that is awake never matches, for the same reason as\n * `suspendedBefore`.\n */\n suspendedAfter?: string\n /**\n * Restrict to these activity buckets. The controller resolves the buckets\n * to a cluster id set from the cached HDP activity map, the same way\n * `filter.status` resolves K8s state to a cluster id set.\n */\n activity?: ClusterActivityBucket[]\n /**\n * `expiring` keeps the clusters whose TTL has an expiry, `unlimited` the\n * clusters whose TTL is unlimited.\n */\n ttl?: ClusterTtlFilter\n /**\n * ISO-8601 upper bound on the TTL expiry. Exclusive, as `createdBefore`\n * is. A cluster with an unlimited TTL never matches.\n */\n ttlExpiresBefore?: string\n }\n}\n\n/** ClusterTtlFilter is the value of `ListClustersV2Params.filter.ttl`. */\nexport type ClusterTtlFilter = 'expiring' | 'unlimited'\n\nexport interface ClusterParameterOptionV2Dto {\n id: string\n name: string\n}\n\n/**\n * A datacenter (k8s context) option for the clusters list's \"Datacenter\" filter.\n * `id` is the context uuid (matched by `filter.k8sContexts`); `region`/`provider`\n * come from the context config and let the dropdown be grouped by provider and\n * show the region, mirroring the accounts clusters list.\n */\nexport interface ClusterDatacenterOptionV2Dto\n extends ClusterParameterOptionV2Dto {\n region?: string\n provider?: string\n}\n\nexport interface ClusterParametersV2Dto {\n plans: ClusterParameterOptionV2Dto[]\n generations: ClusterParameterOptionV2Dto[]\n datacenters: ClusterDatacenterOptionV2Dto[]\n}\n\n/**\n * One cluster in the watcher memory of console-backend: `[id, status,\n * specGeneration]`. `status` is lowercase, as in `ClusterListItemV2Dto`.\n * `specGeneration` is the `metadata.generation` of the ZeebeCluster CR.\n * Kubernetes increments it on each change of the spec, for example a new\n * generation or a new plan. It is `0` when the CR does not give one.\n */\nexport type ClusterLiveStateV2Entry = [\n id: string,\n status: string,\n specGeneration: number,\n]\n\n/**\n * The whole fleet as the watcher sees it (GET /v2/clusters/live-state). The\n * route reads memory only, never the database, thus a client can poll it every\n * second. The entries are sorted by id, thus two equal states give the same\n * body and the same ETag, also on two pods. A pod that is late gives a\n * different body until it gets the same watch events.\n */\nexport interface ClusterLiveStateV2Dto {\n items: ClusterLiveStateV2Entry[]\n}\n\n/**\n * Aggregated cluster distribution counts (GET /v2/clusters/facets), backing\n * the list page's distribution charts and quick-filter tiles without a\n * client-side full-table scan (spec \u00A714.0 hybrid model). SQL-backed facets\n * (generation/planType/channel/autoUpdate) come from GROUP BYs; status and\n * provider are aggregated in-app from the K8s watcher / context config.\n */\nexport interface ClusterFacetsV2Dto {\n total: number\n status: Record<string, number>\n /** Keyed by generation uuid, not name: names are not unique. */\n generation: Record<string, number>\n planType: Record<string, number>\n channel: Record<string, number>\n provider: Record<string, number>\n autoUpdate: { on: number; off: number }\n /** Clusters with an active (non-archived) modification. */\n activeModifications: number\n /**\n * Keyed by the user id of the creator. Only Camundi ids (see\n * `isCamundaUserId`): the \"Created by\" filter lists Camundis, and the id of\n * a customer does not belong in a fleet-wide facet. Absent on an older\n * console-backend.\n */\n createdBy?: Record<string, number>\n}\n\n/** Cluster/owner resolution for a Zeebe client id (cross-backend org search). */\nexport interface ClusterByClientV2Dto {\n clusterId: string\n orgId: string\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 { CamundaClusterStage } from '../types/CamundaClusterLabels.type.js'\nimport type { ClusterPlanTypesToReserved } from '../types/ClusterPlanTypesToReserved.type.js'\nimport type { ClusterTtlDto } from '../types/ClusterTtl.type.js'\nimport type { SalesPlanType } from '../types/SalesPlanType.type.js'\nimport type { LicensingModelType } from './Organization.dto.js'\n\n// ============================================================================\n// Control (v2) API contract\n//\n// Purpose-built, list-optimized DTOs for the new Control frontend, served by the\n// `/v2` routers on accounts-backend and console-backend. Cursor-paginated, and\n// pre-shaped server-side so the client does no normalization. See\n// copilot/CONTROL_FRONTEND_SPEC.md \u00A710.\n// ============================================================================\n\n/** Generic cursor-paginated response. `nextCursor === null` on the last page. */\nexport interface CursorPage<T> {\n items: T[]\n nextCursor: string | null\n}\n\n/** Cursor pagination query params shared by all v2 list endpoints. */\nexport interface CursorParams {\n cursor?: string\n limit?: number\n}\n\n// ---- Session (GET /v2/session) -------------------------------------------\n\nexport interface ControlSessionUser {\n id: string\n email: string\n name: string\n}\n\n/**\n * Flat map of resolved capability flags for the signed-in user, computed\n * server-side from the existing JWT-claim + Auth0-metadata model (kept as-is,\n * spec Q12). The shell uses these to gate navigation; the backend flattens its\n * `Features` object into the subset the nav needs.\n */\nexport type ControlResolvedPermissions = Record<string, boolean>\n\nexport interface OrgSummaryV2Dto {\n id: string\n name: string\n role: string\n clusterCount: number\n}\n\nexport interface ControlSessionDto {\n user: ControlSessionUser\n permissions: ControlResolvedPermissions\n organizations: OrgSummaryV2Dto[]\n}\n\n// ---- Organizations (GET /v2/organizations) -------------------------------\n\nexport interface OrgListItemV2Dto {\n id: string\n name: string\n /** ISO-8601; part of the cursor key. */\n created: string\n internal: boolean\n salesPlanType?: SalesPlanType\n /** Concrete plan name (`SalesPlan.name`), distinct from the tier `salesPlanType`. */\n salesPlanName?: string\n salesForceId?: string\n /** ISO-8601 end of the trial, when the org is or was on a trial plan. */\n trialExpiresAt?: string\n /**\n * Persisted trial state: `true` when the trial ran out, `false` while it\n * runs. Absent when the org is not on a trial plan or the state is not set.\n */\n trialExpired?: boolean\n /** Org metadata flag: the org can only create clusters on AWS. */\n awsOnly?: boolean\n /** Org metadata flag: enterprise plan limited to development use. */\n enterpriseDevOnly?: boolean\n /** Org metadata: which licensing model prices the org. */\n licensingModel?: LicensingModelType\n /**\n * The cluster plan types the org reserved, by plan type uuid, with the\n * count. Absent when the org has no sales plan, and also when it has one\n * that holds no reserved map (the column is nullable). The export of\n * reservations and clusters of the Organizations page reads it.\n */\n clusterPlanTypesToReserved?: ClusterPlanTypesToReserved\n}\n\nexport interface ListOrganizationsV2Params extends CursorParams {\n q?: string\n /**\n * Lucene-style query over the org fields (see `ORGANIZATION_SEARCH_FIELDS`).\n * ANDed with `q`/`filter` server-side; a bare term behaves like `q`.\n */\n query?: string\n sort?: 'name' | 'created' | 'internal' | 'salesPlanType' | 'salesPlanName'\n order?: 'asc' | 'desc'\n filter?: {\n internal?: boolean\n /** Sales plan tiers (`SalesPlanType`); multi-select, matched with `IN (...)`. */\n salesPlanTypes?: SalesPlanType[]\n /**\n * Concrete plan names (`SalesPlan.name`, distinct from the tier); backs the\n * \"Sales plan name\" filter. Multi-select, matched with `IN (...)`.\n */\n salesPlanNames?: string[]\n /** ISO-8601 lower bound on `created` (age-bucket filters). */\n createdAfter?: string\n /** ISO-8601 upper bound on `created` (age-bucket filters). */\n createdBefore?: string\n /**\n * Restrict to these org uuids. Backs cross-backend lookups (e.g. org by\n * cluster name / client id: resolve owner ids on console, then filter\n * here \u2014 spec \u00A714.1 L).\n */\n ids?: string[]\n /**\n * Only organizations that can create clusters on AWS alone (true), or\n * every other organization (false). Reads `metadata.awsOnly`; an\n * organization with no value counts as not AWS-only, as the accounts\n * tool reads it.\n */\n awsOnly?: boolean\n /**\n * Only organizations that hold a reservation above zero for one of\n * these cluster plan type uuids. Reads\n * `organizationToSalesPlan.clusterPlanTypesToReserved`.\n */\n reservedPlanTypeIds?: string[]\n }\n}\n\nexport interface OrgDetailV2Dto extends OrgListItemV2Dto {\n /** Full detail fields are added as the detail page is built (Phase 3). */\n metadata?: Record<string, unknown>\n}\n\nexport interface OrgMemberV2Dto {\n userId: string\n email: string\n name?: string\n roles: string[]\n status: 'active' | 'invited'\n /** ISO-8601. */\n invitedAt?: string\n /** ISO-8601. */\n joinedAt?: string\n}\n\nexport interface ListOrgMembersV2Params extends CursorParams {\n q?: string\n}\n\n// ---- Clusters (GET /v2/clusters) -----------------------------------------\n\nexport interface ClusterListItemV2Dto {\n id: string\n name: string\n orgId: string\n orgName: string\n /** Normalized server-side; augmented on the fly from the K8s watcher (\u00A79.4 B1). */\n status: string\n /**\n * The `metadata.generation` of the ZeebeCluster CR, from the K8s watcher at\n * the time of the read, as in `ClusterLiveStateV2Entry`. A row thus carries\n * the baseline that a poll of `GET /v2/clusters/live-state` compares with.\n * Absent when the watcher does not know the cluster, or on an older\n * console-backend.\n */\n specGeneration?: number\n /**\n * Cluster environment stage (dev/test/stage/prod), from the single `camunda`\n * label. Absent when the cluster has no camunda label or more than one, so a\n * surface can only trust it when it is set \u2014 the same guard the cluster\n * detail page and accounts use.\n */\n stageTag?: CamundaClusterStage\n /** Plan type name (`ClusterPlanType.name`). Backs the \"Plan type\" column. */\n planTypeName: string\n /**\n * Plan type uuid (`ClusterPlanType.uuid`). The key that the org reserved map\n * (`clusterPlanTypesToReserved`) uses, so the Control org \"Reservations\" tab\n * can group clusters by plan type to compute the used count.\n */\n planTypeId?: string\n /**\n * Hardware-package count for the cluster (advanced offering). One cluster can\n * use more than one package, so the used-reservation total sums this value\n * across the org's clusters. Undefined when the source value is unknown; the\n * client then counts the cluster as one package.\n */\n numberOfAllocatedHwPackages?: number\n /** Concrete plan name (`ClusterPlan.name`). Backs the \"Plan\" column. */\n planName?: string\n /**\n * Concrete plan uuid (`ClusterPlan.uuid`). Names are not unique, so this is\n * the key to compare a cluster with a target plan.\n */\n planId?: string\n /** Generation name, for display. Group and filter by `generationId`. */\n generation: string\n /** Generation uuid. Names are not unique, so this is the grouping key. */\n generationId?: string\n region: string\n /** Display-only; not a sort/filter key (\u00A79.4 B2). */\n load?: number\n updateAvailable: boolean\n /** Auto-update setting (distinct from `updateAvailable`). */\n autoUpdate: boolean\n /** Release channel name, when the cluster is on one. */\n channel?: string\n /** ISO-8601; part of the cursor key. */\n created: string\n /**\n * User id of the creator, e.g. `samlp|Okta|jane.doe@camunda.com`. Absent\n * when a background flow created the cluster, for an old cluster that has\n * no record of its creator, or on an older console-backend. Also absent\n * for a caller without `canReadAllClusterInfo`: the org clusters route\n * serves members of the org too (see `canReadClusterCreator`).\n */\n createdBy?: string\n /**\n * ISO-8601 instant of the last suspend. Absent when the cluster is awake:\n * `Cluster.wakeUp()` clears the column, thus this is the time since the last\n * suspend and not the total time that the cluster was asleep.\n */\n suspendedAt?: string\n /** The \"Authorizations\" toggle of cluster create. */\n identityBackendChecksEnabled?: boolean\n multiTenancyEnabled?: boolean\n /** BYOIDP. */\n externalIdpEnabled?: boolean\n /** Session idle timeout. */\n sessionMaxInactiveIntervalMinutes?: number\n sessionHeartbeatEnabled?: boolean\n /** BYOK: `encryption` is `External`. The key can still be missing. */\n byokEnabled?: boolean\n /** The cluster has at least one external monitoring (BYOM) client. */\n externalMonitoringEnabled?: boolean\n /** The cluster has a `secure_connectivity` row (AWS PrivateLink). */\n privateConnectivityEnabled?: boolean\n /**\n * The cluster TTL. Absent where `CommonClusterDto.ttl` is absent for the\n * same reader: on every stage other than dev and int, prod included. Also\n * absent for a member of the org on the org clusters route, and on an older\n * console-backend.\n */\n ttl?: ClusterTtlDto\n}\n\n/** Detail extends the list shape; richer fields are added in Phase 3. */\nexport type ClusterDetailV2Dto = ClusterListItemV2Dto\n\n/**\n * How much work a cluster did, inside the 30-day activity window.\n *\n * `idle` and `unknown` are different facts and must stay apart. `idle` is\n * evidence that the cluster did no work. `unknown` is the absence of\n * evidence: on the dev stage most clusters have no row at all.\n *\n * The source is the Holistic Data Platform (HDP), which holds one row per\n * cluster, per day, per value metric. The window is 30 days, thus a bucket\n * for \"did work, but more than 30 days ago\" is not possible.\n */\nexport type ClusterActivityBucket =\n /** Work inside the 30-day window. */\n | 'active'\n /** Rows exist inside the window. All values are zero. */\n | 'idle'\n /** No row at all inside the window. */\n | 'unknown'\n\n/** Quick-filter tiles on the clusters list. */\nexport type ClusterActivityTile =\n | 'all'\n | 'active'\n | 'idle'\n | 'unknown'\n /** More than 90 days old, and not active. */\n | 'old-idle'\n /** No more than 30 days old, with no work and no data. */\n | 'new-idle'\n\nexport interface ClusterActivityV2Dto {\n clusterId: string\n /**\n * ISO-8601 instant of the last UTC day with work. HDP buckets by day, thus\n * the time part is always midnight. Absent when the cluster did no work\n * inside the window.\n */\n lastActiveAt?: string\n processInstances30d: number\n bucket: ClusterActivityBucket\n}\n\nexport interface ClusterActivityV2Response {\n /**\n * One entry per live cluster that has an HDP row inside the window. A\n * cluster in the `unknown` bucket has no entry, because the bucket means\n * that no row exists.\n */\n items: ClusterActivityV2Dto[]\n /** Fleet-wide tile counts. The server joins `cluster.created` for the age tiles. */\n counts: Record<ClusterActivityTile, number>\n /** ISO-8601 instant when the server assembled this response. */\n fetchedAt: string\n /** The number of days that the window covers. */\n windowDays: number\n}\n\n/** The modification state of a cluster, as the Clusters list filters it. */\nexport const CLUSTER_MODIFICATION_STATES = [\n 'active',\n 'planned',\n 'archived',\n 'none',\n] as const\nexport type ClusterModificationState =\n (typeof CLUSTER_MODIFICATION_STATES)[number]\n\nexport interface ListClustersV2Params extends CursorParams {\n q?: string\n /**\n * Lucene-style query over the cluster fields (see `CLUSTER_SEARCH_FIELDS`).\n * ANDed with `q`/`filter` server-side; a bare term behaves like `q`.\n */\n query?: string\n /**\n * Server-side sort key. Beyond `name`/`created`, the clusters list also sorts\n * by the DB-backed columns behind these list columns (the values are the\n * frontend column `key`s, mapped to SQL expressions in the controller):\n * `orgName` (owner id), `autoUpdate`, `planName`, `planTypeName`, `generation`,\n * `channel`, `stageTag` (the single `camunda` label), `ttlExpiresAt` (a\n * cluster with no expiry is last in both directions; a reader who may not\n * see the TTL gets the default sort). `status`/`region` are intentionally\n * excluded \u2014 they're computed from live K8s state / context config, not SQL\n * columns.\n */\n sort?:\n | 'name'\n | 'created'\n | 'orgName'\n | 'autoUpdate'\n | 'planName'\n | 'planTypeName'\n | 'generation'\n | 'channel'\n | 'stageTag'\n | 'ttlExpiresAt'\n order?: 'asc' | 'desc'\n filter?: {\n status?: string\n /**\n * Cluster plan TYPE name (maps to `planType.name`; legacy single-value\n * param, still used by the plan-type detail page's cluster-distribution\n * read \u2014 kept alongside `planTypeNames` rather than replaced).\n */\n plan?: string\n /**\n * Restrict to these plan TYPE names (`planType.name`); the Control\n * clusters list's multi-select \"Plan type\" filter.\n */\n planTypeNames?: string[]\n /**\n * Restrict to these concrete plan names (`plan.name`, the `ClusterPlan`\n * entity \u2014 NOT the plan type); backs the Control clusters list's \"Plan\"\n * filter, whose dropdown is sourced from `ClusterPlan` via\n * `/clusters/parameters`. Corrected in #9325 (second pass): a prior fix\n * on this branch mistakenly repointed this at `planType.name` to match a\n * dropdown that was, at the time, wrongly sourced from `ClusterPlanType`\n * \u2014 but the dropdown was the actual bug. Both the dropdown and this query\n * now consistently reference `ClusterPlan`. Distinct from `planTypeNames`\n * above, which is the separate \"Plan type\" filter over `ClusterPlanType`.\n */\n planNames?: string[]\n /**\n * Restrict to these generation uuids (`generation.uuid`). Never by name:\n * a generation name is not unique, so one name can match two generations.\n */\n generationIds?: string[]\n /** Restrict to these cloud providers (resolved via the k8s-context config). */\n providers?: string[]\n /** Exact k8s context uuid. */\n k8sContext?: string\n /**\n * Restrict to these k8s context (datacenter) uuids; the Control clusters\n * list's multi-select \"Datacenter\" filter, which matches the context\n * identity, mirroring the accounts clusters list's \"Filter by Datacenter\".\n */\n k8sContexts?: string[]\n orgId?: string\n /** Restrict to these owner org uuids (cross-backend sales-plan filters). */\n orgIds?: string[]\n /** Restrict to these cluster uuids (prefilter-by-id). */\n ids?: string[]\n /** Restrict to clusters that these user ids created (`cluster.createdBy`). */\n createdBy?: string[]\n /** Auto-update on/off. */\n autoUpdate?: boolean\n /** Internal (Camunda-owned) clusters only / excluded. */\n internal?: boolean\n /** Only clusters with (true) / without (false) an active modification. */\n hasActiveModification?: boolean\n /**\n * Only clusters whose plan is (true) / is not (false) the active plan of\n * their plan type. The accounts clusters list calls it \"on most recent\n * ClusterPlan\"; a cluster that is not is one a plan update would move.\n */\n onActivePlan?: boolean\n /**\n * Only clusters whose generation is (true) / is not (false) unsupported\n * now: `isUnsupportedStarting` is set and in the past.\n */\n unsupportedGeneration?: boolean\n /**\n * Only clusters with (true) / without (false) the legacy environment\n * variable override of the cluster row (`overrideEnvVars`). Modification\n * configs replaced it; a cluster that still has one needs a look.\n */\n legacyEnvVars?: boolean\n /**\n * Restrict to clusters in one of these modification states. `active` is\n * an active config, `planned` a modification with no active config that\n * is not archived, `archived` only archived modifications, `none` no\n * modification at all. The states are exclusive, so several select the\n * union.\n */\n modificationStates?: ClusterModificationState[]\n /** Only clusters with (true) / without (false) the flag of the same name. */\n byokEnabled?: boolean\n externalMonitoringEnabled?: boolean\n privateConnectivityEnabled?: boolean\n /**\n * Zeebe minor-version prefix match on the generation's versions (e.g.\n * \"8.7\" matches zeebe 8.7.x).\n */\n minorVersion?: string\n /** Restrict to these release channel names. */\n channels?: string[]\n /**\n * ISO-8601 lower bound on `created` (e.g. \"created in the last 7 days\").\n * Inclusive: a cluster created at this instant matches.\n */\n createdAfter?: string\n /**\n * ISO-8601 upper bound on `created`. Pairs with `createdAfter` for the\n * age axis. Exclusive: a cluster created at this instant does not match.\n */\n createdBefore?: string\n /**\n * ISO-8601 upper bound on `suspendedAt`, thus \"asleep since at least N\n * days\". Exclusive, as `createdBefore` is. A cluster that is awake never\n * matches: `Cluster.wakeUp()` clears the column.\n *\n * The bound is the time since the last suspend. A cluster that woke up for\n * one minute and then slept again starts from zero, thus this filter finds\n * the clusters that nobody touched, not the clusters that did no work.\n */\n suspendedBefore?: string\n /**\n * ISO-8601 lower bound on `suspendedAt`, thus \"asleep for not more than N\n * days\". Inclusive, as `createdAfter` is. It makes the suspension-age\n * range together with `suspendedBefore`.\n *\n * A cluster that is awake never matches, for the same reason as\n * `suspendedBefore`.\n */\n suspendedAfter?: string\n /**\n * Restrict to these activity buckets. The controller resolves the buckets\n * to a cluster id set from the cached HDP activity map, the same way\n * `filter.status` resolves K8s state to a cluster id set.\n */\n activity?: ClusterActivityBucket[]\n /**\n * `expiring` keeps the clusters whose TTL has an expiry, `unlimited` the\n * clusters whose TTL is unlimited.\n */\n ttl?: ClusterTtlFilter\n /**\n * ISO-8601 upper bound on the TTL expiry. Exclusive, as `createdBefore`\n * is. A cluster with an unlimited TTL never matches.\n */\n ttlExpiresBefore?: string\n }\n}\n\n/** ClusterTtlFilter is the value of `ListClustersV2Params.filter.ttl`. */\nexport type ClusterTtlFilter = 'expiring' | 'unlimited'\n\nexport interface ClusterParameterOptionV2Dto {\n id: string\n name: string\n}\n\n/**\n * A datacenter (k8s context) option for the clusters list's \"Datacenter\" filter.\n * `id` is the context uuid (matched by `filter.k8sContexts`); `region`/`provider`\n * come from the context config and let the dropdown be grouped by provider and\n * show the region, mirroring the accounts clusters list.\n */\nexport interface ClusterDatacenterOptionV2Dto\n extends ClusterParameterOptionV2Dto {\n region?: string\n provider?: string\n}\n\nexport interface ClusterParametersV2Dto {\n plans: ClusterParameterOptionV2Dto[]\n generations: ClusterParameterOptionV2Dto[]\n datacenters: ClusterDatacenterOptionV2Dto[]\n}\n\n/**\n * One cluster in the watcher memory of console-backend: `[id, status,\n * specGeneration]`. `status` is lowercase, as in `ClusterListItemV2Dto`.\n * `specGeneration` is the `metadata.generation` of the ZeebeCluster CR.\n * Kubernetes increments it on each change of the spec, for example a new\n * generation or a new plan. It is `0` when the CR does not give one.\n */\nexport type ClusterLiveStateV2Entry = [\n id: string,\n status: string,\n specGeneration: number,\n]\n\n/**\n * The whole fleet as the watcher sees it (GET /v2/clusters/live-state). The\n * route reads memory only, never the database, thus a client can poll it every\n * second. The entries are sorted by id, thus two equal states give the same\n * body and the same ETag, also on two pods. A pod that is late gives a\n * different body until it gets the same watch events.\n */\nexport interface ClusterLiveStateV2Dto {\n items: ClusterLiveStateV2Entry[]\n}\n\n/**\n * Aggregated cluster distribution counts (GET /v2/clusters/facets), backing\n * the list page's distribution charts and quick-filter tiles without a\n * client-side full-table scan (spec \u00A714.0 hybrid model). SQL-backed facets\n * (generation/planType/channel/autoUpdate) come from GROUP BYs; status and\n * provider are aggregated in-app from the K8s watcher / context config.\n */\nexport interface ClusterFacetsV2Dto {\n total: number\n status: Record<string, number>\n /** Keyed by generation uuid, not name: names are not unique. */\n generation: Record<string, number>\n planType: Record<string, number>\n channel: Record<string, number>\n provider: Record<string, number>\n autoUpdate: { on: number; off: number }\n /** Clusters with an active (non-archived) modification. */\n activeModifications: number\n /**\n * Keyed by the user id of the creator. Only Camundi ids (see\n * `isCamundaUserId`): the \"Created by\" filter lists Camundis, and the id of\n * a customer does not belong in a fleet-wide facet. Absent on an older\n * console-backend.\n */\n createdBy?: Record<string, number>\n}\n\n/** Cluster/owner resolution for a Zeebe client id (cross-backend org search). */\nexport interface ClusterByClientV2Dto {\n clusterId: string\n orgId: string\n}\n"],
|
|
5
5
|
"mappings": "AA+TO,MAAM,8BAA8B;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -124,8 +124,6 @@ export type { ClusterPlanTypesToReserved } from './types/ClusterPlanTypesToReser
|
|
|
124
124
|
export type { ClusterTtlDeletionPayload, ClusterTtlDeletionResult, ClusterTtlDto, ClusterTtlDuration, ClusterTtlOption, ClusterTtlUnlimited, UpdateClusterTtlBody, } from './types/ClusterTtl.type.js';
|
|
125
125
|
export { CLUSTER_TTL_BACKFILL_REASON, CLUSTER_TTL_DURATION_MS, CLUSTER_TTL_DURATIONS, CLUSTER_TTL_FEATURE_FLAG, CLUSTER_TTL_OPTIONS, CLUSTER_TTL_UNLIMITED_LINK_MAX_LENGTH, CLUSTER_TTL_UNLIMITED_REASON_MAX_LENGTH, clusterTtlExpiresAt, DEFAULT_CLUSTER_TTL_OPTION, extendClusterTtl, isClusterTtlDuration, isClusterTtlOption, isClusterTtlStage, isHttpUrl, isPastClusterTtl, validateClusterTtlUnlimited, } from './types/ClusterTtl.type.js';
|
|
126
126
|
export type { ClusterUsageDataRequest, ClusterUsageMetadataDto, ClusterUsageMetricsAddRequestByMetricHeap, ClusterUsageMetricsData, ClusterUsageMetricsFilter, ClusterUsageOrgStartDate, } from './types/ClusterUsageMetrics.type.js';
|
|
127
|
-
export { ConsoleSM } from './types/ConsoleSelfManaged.type.js';
|
|
128
|
-
export type { ConsoleSMAdminApi } from './types/ConsoleSelfManagedAdminApi.type.js';
|
|
129
127
|
export type { DashboardConfig, DashboardMappingItem, DashboardMappingTarget, DashboardResultPrimitive, DashboardResultRow, EngineeringOperationsDashboardResponse, } from './types/Dashboard.types.js';
|
|
130
128
|
export type { EnterpriseIncludingValueMetrics } from './types/EnterpriseIncludingValueMetrics.type.js';
|
|
131
129
|
export type { HdpTenantUsageBreakdown, HdpTenantUsagePerClusterPoint, HdpTenantUsagePoint, } from './types/HdpTenantUsage.type.js';
|
|
@@ -156,7 +154,6 @@ export { UserMetadataEvent } from './types/User.type.js';
|
|
|
156
154
|
export type { UniqueTaskUser, ValueMetrics, ValueMetricsPerYearMonth, } from './types/ValueMetrics.type.js';
|
|
157
155
|
export { CLOUD_PROVIDER_ORDER, getCloudProviderLabel, getCloudProviderRank, } from './utils/cloudProvider.utils.js';
|
|
158
156
|
export { type ConnectivityStatus, deriveConnectivityMessage, deriveConnectivityStatus, } from './utils/connectivityStatus.utils.js';
|
|
159
|
-
export { ConsoleSelfManagedUtils } from './utils/console-sm.utils.js';
|
|
160
157
|
export type { CronScheduleValidationFailure, CronScheduleValidationResult, CronScheduleValidationSuccess, } from './utils/cronSchedule.utils.js';
|
|
161
158
|
export { BACKUP_SCHEDULE_MIN_INTERVAL_MINUTES, validateCronSchedule, } from './utils/cronSchedule.utils.js';
|
|
162
159
|
export { canonicalPlan, canonicalPlanKey, } from './utils/elasticsearchPlanPath.utils.js';
|
package/dist/index.js
CHANGED
|
@@ -433,7 +433,6 @@ import {
|
|
|
433
433
|
isPastClusterTtl,
|
|
434
434
|
validateClusterTtlUnlimited
|
|
435
435
|
} from "./types/ClusterTtl.type.js";
|
|
436
|
-
import { ConsoleSM } from "./types/ConsoleSelfManaged.type.js";
|
|
437
436
|
import {
|
|
438
437
|
AlertSubscriptionReportType as AlertSubscriptionReportType2,
|
|
439
438
|
AlertSubscriptionType as AlertSubscriptionType2,
|
|
@@ -478,7 +477,6 @@ import {
|
|
|
478
477
|
deriveConnectivityMessage,
|
|
479
478
|
deriveConnectivityStatus
|
|
480
479
|
} from "./utils/connectivityStatus.utils.js";
|
|
481
|
-
import { ConsoleSelfManagedUtils } from "./utils/console-sm.utils.js";
|
|
482
480
|
import {
|
|
483
481
|
BACKUP_SCHEDULE_MIN_INTERVAL_MINUTES,
|
|
484
482
|
validateCronSchedule
|
|
@@ -709,8 +707,6 @@ export {
|
|
|
709
707
|
ClusterStatus,
|
|
710
708
|
ConsoleAPIClientPermission,
|
|
711
709
|
ConsolePermissions,
|
|
712
|
-
ConsoleSM,
|
|
713
|
-
ConsoleSelfManagedUtils,
|
|
714
710
|
ConsumptionData,
|
|
715
711
|
ConsumptionDataType,
|
|
716
712
|
DASHBOARD_CHART_RENDERS,
|
package/dist/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.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// ============================================================================\n// Constants (runtime values)\n// ============================================================================\n\nexport {\n CUSTOM_GENERATION_MAX_PER_REQUESTER,\n CUSTOM_GENERATION_MAX_UPGRADEABLE_FROM,\n CUSTOM_GENERATION_NAME_MAX_LENGTH,\n CUSTOM_GENERATION_NAME_MIN_LENGTH,\n checkNewGenerationVersions,\n isCustomGenerationStage,\n} from './constants/custom-generation.const.js'\nexport {\n CUSTOM_HARDWARE_SIZING_BROKER_TOTAL_CAPS,\n CUSTOM_HARDWARE_SIZING_COUNT_CAPS,\n CUSTOM_HARDWARE_SIZING_ELASTICSEARCH_TOTAL_CAPS,\n CUSTOM_HARDWARE_SIZING_MAX_AUTO_RESIZE_INCREASE_GI,\n CUSTOM_HARDWARE_SIZING_MAX_PLAN_JSON_LENGTH,\n CUSTOM_HARDWARE_SIZING_MAX_PLANS_PER_REQUESTER,\n CUSTOM_HARDWARE_SIZING_NAME_MAX_LENGTH,\n CUSTOM_HARDWARE_SIZING_NAME_MIN_LENGTH,\n CUSTOM_HARDWARE_SIZING_REPLICA_SET_TOTAL_CAPS,\n CUSTOM_HARDWARE_SIZING_RESOURCE_CAPS,\n checkCustomHardwareSizing,\n isCustomHardwareSizingStage,\n parseKubernetesQuantity,\n} from './constants/custom-hardware-sizing.const.js'\nexport { DAY, HOUR, MINUTE, SECOND, WEEK } from './constants/duration.const.js'\nexport type { Stage } from './constants/misc.const.js'\nexport {\n CAMUNDA_CLAIMS_NAMESPACE,\n CONSOLE_API_USER_ID,\n FIRSTNAME_LASTNAME_MAX_LENGTH,\n HOTBACKUP_MIN_CREATE_PERIOD,\n MAX_HARDWARE_PACKAGE_COUNT,\n MAX_LENGTH_CLUSTER_NAME,\n MINIMUM_EYEPAIRS,\n NAMES_OF_ENTERPRISE_SALESPLANS_WITH_SLEEPING_CLUSTERS,\n SECRETS_MAX_LENGTH,\n STARTING_PRICE_PER_MONTH_IN_EURO,\n TEMPORARY_CLUSTER_NAME,\n UNKNOWN_ACTOR_EMAIL,\n} from './constants/misc.const.js'\nexport {\n getGatewayPropertyHint,\n getGatewayPropertyPath,\n isAffectedByStreamlinedDeployment,\n isPre89AffectedPath,\n PRE89_AFFECTED_PATHS,\n PRE89_AFFECTED_PROPERTY_PREFIXES,\n PRE89_GATEWAY_PROPERTY_PATHS,\n PRE89_GATEWAY_RESOURCE_PREFIXES,\n} from './constants/pre89EnvVarMapping.const.js'\nexport { PRIVATE_LINK_REGIONS } from './constants/privateLinkRegions.const.js'\nexport { SECURE_CONNECTIVITY_ALLOWED_ENTRIES_LIMIT } from './constants/secureConnectivity.const.js'\nexport { isSelfServiceClusterModificationStage } from './constants/self-service-cluster-modification.const.js'\nexport type {\n TrialExtensionSurveyAnswer,\n TrialExtensionSurveyQuestion,\n} from './constants/trialExtensionSurvey.const.js'\nexport { TRIAL_EXTENSION_SURVEY_QUESTIONS } from './constants/trialExtensionSurvey.const.js'\nexport {\n V2_BODY_IDS_MAX,\n V2_FILTER_IDS_MAX,\n V2_MAX_PAGE_LIMIT,\n} from './constants/v2-list.const.js'\nexport {\n ADMIN_APP_RENAME_MIN_VERSION,\n APP_INTEGRATIONS_89_STREAM_CONNECTOR_BRIDGE_MIN_VERSION,\n APP_INTEGRATIONS_89_STREAM_MINOR,\n APP_INTEGRATIONS_89_STREAM_ZEEBE_MIN_VERSION,\n APP_INTEGRATIONS_MIN_VERSION,\n AUDIT_LOG_TAB_MIN_VERSION,\n AUTHORIZATION_TOGGLE_MIN_VERSION,\n AWS_ONLY_GENERATION_MIN_VERSION,\n BUSINESS_ID_UNIQUENESS_MIN_VERSION,\n BYOIDP_MIN_VERSION,\n CLUSTER_SECRETS_LABEL_MIN_VERSION,\n CLUSTER_STATISTICS_CONFIG_MIN_VERSION,\n CONNECTOR_MANAGEMENT_METRICS_MIN_VERSION,\n CONNECTOR_SECRET_SYNC_MIN_VERSION,\n CONNECTORS_MANAGEMENT_LINK_MIN_VERSION,\n ENFORCE_GROUPS_TASKLIST_V2_HIDDEN_MIN_VERSION,\n ENFORCE_GROUPS_TOGGLE_MIN_VERSION,\n GATEWAY_SPEC_8_9_MIN_VERSION,\n HOT_BACKUP_MIN_VERSION,\n IDENTITY_AUTHORIZATION_MIN_VERSION,\n IDENTITY_AUTHORIZATION_NOTICE_MAX_VERSION,\n IDENTITY_MANAGEMENT_MIN_VERSION,\n INTERNAL_CONNECTORS_MANAGEMENT_MIN_VERSION,\n JOB_DASHBOARD_MIN_VERSION,\n LINE_8_9_MIN_VERSION,\n LINE_8_10_MIN_VERSION,\n MCP_MIN_VERSION,\n MULTI_TENANCY_TOGGLE_MIN_VERSION,\n NEW_CLUSTER_ROLES_MIN_VERSION,\n OPTIMIZE_DEFAULT_ON_MIN_VERSION,\n OPTIMIZE_FILTERING_MIN_VERSION,\n OPTIONAL_TELEMETRY_MIN_VERSION,\n RESOURCE_BASED_AUTHORIZATIONS_MIN_VERSION,\n REST_API_URL_TRANSFORM_MIN_VERSION,\n REST_API_V2_MIN_VERSION,\n RESUME_ALPHA_MIN_VERSION,\n SECRET_SOURCE_MIN_VERSION,\n SECRETS_FILTER_MODE_8_6_MIN_VERSION,\n SECRETS_FILTER_MODE_8_7_MIN_VERSION,\n SECRETS_FILTER_MODE_8_8_MIN_VERSION,\n SECRETS_FILTER_MODE_8_9_MIN_VERSION,\n SECRETS_FILTER_MODE_8_10_MIN_VERSION,\n SESSION_CONFIG_MIN_VERSION,\n SWAGGER_MIN_VERSION,\n SWAGGER_URL_8_9_MIN_VERSION,\n TASKLIST_MODE_TOGGLE_MIN_VERSION,\n TASKLIST_UPGRADE_BANNER_MIN_VERSION,\n TASKLIST_V2_AUTO_ENABLE_FROM_MINOR,\n TASKLIST_V2_AUTO_ENABLE_TO_MINOR,\n TASKLIST_V2_DEFAULT_ON_MIN_VERSION,\n TASKLIST_V2_SETTING_MAX_VERSION,\n TASKLIST_V2_UPGRADE_MIN_VERSION,\n TASKLIST_V2_UPGRADE_TARGET_MIN_VERSION,\n UPGRADE_READINESS_MIN_VERSION,\n ZEEBE_REST_URL_MIN_VERSION,\n} from './constants/version-gates.const.js'\n\n// ============================================================================\n// DTOs - Types (interfaces and type aliases)\n// ============================================================================\n\n// Annotations - the notes and the tags that a Camundi attaches to a fleet\n// entity. The wire types and the rules are pure and browser-safe, so\n// control-backend and control-frontend run the same code.\nexport type {\n AnnotationActorView,\n AnnotationDecision,\n AnnotationDenialCode,\n} from './annotations/policy.js'\nexport {\n ANNOTATION_DENIAL_MESSAGES,\n canEditNote,\n canRemove,\n checkNoteBody,\n checkTagName,\n isAuthor,\n} from './annotations/policy.js'\nexport type {\n ClusterBulkClusterResultDto,\n ClusterBulkFinalStatus,\n ClusterBulkGenerationUpdateSettings,\n ClusterBulkOperationPayloadDto,\n ClusterBulkOperationRule,\n ClusterBulkPlanTypeUpdateSettings,\n ClusterBulkPlanUpdateSettings,\n ClusterBulkSettingsByType,\n ClusterBulkSleepWakeupSettings,\n ClusterBulkStepRequestDto,\n ClusterBulkStepResultDto,\n ClusterBulkTargetDto,\n} from './approvals/cluster-bulk-operation.js'\nexport {\n CLUSTER_BULK_OPERATION_CLUSTER_NAME_MAX_LENGTH,\n CLUSTER_BULK_OPERATION_MAX_CLUSTERS,\n CLUSTER_BULK_OPERATION_MIN_ACKS,\n CLUSTER_BULK_OPERATION_NAME_MAX_LENGTH,\n CLUSTER_BULK_OPERATION_RULES,\n CLUSTER_BULK_OPERATION_TEST_STAGE_MIN_ACKS,\n CLUSTER_BULK_OPERATION_TYPES,\n CLUSTER_BULK_SLEEPING_CLUSTER_DELAY_MS,\n clusterBulkOperationTypeOf,\n clusterBulkParameterOf,\n clusterBulkRequiredPermissions,\n clusterBulkResultOf,\n isClusterBulkYolo,\n} from './approvals/cluster-bulk-operation.js'\nexport {\n DNS_SUBDOMAIN_MAX_LENGTH,\n isDnsSubdomain,\n} from './approvals/dns-subdomain.js'\nexport type { ApprovalExpectedChange } from './approvals/expected-value.js'\nexport {\n isSameApprovalValue,\n staleApprovalKeys,\n} from './approvals/expected-value.js'\nexport type {\n ApprovalActorView,\n ApprovalDecision,\n ApprovalDenialCode,\n} from './approvals/policy.js'\nexport {\n approvalPermissionCheck,\n canAcknowledge,\n canCreate,\n canExecute,\n canReject,\n canView,\n canWithdraw,\n effectiveStatus,\n hasActorEmail,\n hasEveryPermission,\n isExpired,\n isSameActor,\n isSameActorEmail,\n remainingAcks,\n requiredPermissionsOf,\n resolveRequiredAcks,\n} from './approvals/policy.js'\nexport type { ApprovalUseCaseType } from './approvals/use-cases.const.js'\nexport {\n APPROVAL_EMAIL_MAX_LENGTH,\n APPROVAL_EMAIL_PATTERN,\n APPROVAL_USE_CASE_TYPES,\n ENTERPRISE_ONBOARDING_METRIC_MAX,\n ENTERPRISE_ONBOARDING_NAME_MAX_LENGTH,\n ENTERPRISE_ONBOARDING_RESERVATION_MAX,\n ENTERPRISE_ONBOARDING_SFDC_ID_MAX_LENGTH,\n ENTERPRISE_ONBOARDING_TERM_MAX_MONTHS,\n ENTERPRISE_ONBOARDING_TERM_MIN_MONTHS,\n EXTEND_TRIAL_MAX_DAYS,\n EXTEND_TRIAL_MIN_DAYS,\n FEATURE_FLAG_MIN_ACKS_PROD,\n GENERATION_VERSION_VALUE_MAX_LENGTH,\n GENERATION_VERSIONS_MAX_GENERATIONS,\n isCalendarDay,\n ORG_LIMIT_TEXT_MAX_LENGTH,\n PERSONAL_ORGANIZATION_MAX_PER_REQUESTER,\n PERSONAL_ORGANIZATION_NAME_MAX_LENGTH,\n PERSONAL_ORGANIZATION_NAME_MIN_LENGTH,\n PLATFORM_ROLE_CHANGE_MAX_ROLES,\n PURGE_USERS_MAX_USERS,\n PURGE_USERS_REQUIRED_PERMISSIONS,\n USER_METADATA_EXPECTED_MAX_LENGTH,\n USER_METADATA_MAX_LENGTH,\n} from './approvals/use-cases.const.js'\n// The chart query of a dashboard tile (catalogue, language, result).\nexport {\n CHART_DAY_GRAIN_MAX_DAYS,\n CHART_FILTER_MAX_LENGTH,\n CHART_GRAIN_DEFAULT,\n CHART_GRAINS,\n CHART_ID_MAX_LENGTH,\n CHART_METRICS,\n CHART_OTHER_SERIES_KEY,\n CHART_QUERY_MAX_LENGTH,\n CHART_TOP_DEFAULT,\n CHART_TOP_MAX,\n CHART_UNKNOWN_SERIES_KEY,\n CHART_WINDOW_AMOUNT_MAX,\n CHART_WINDOW_DEFAULT,\n CHART_WINDOW_UNITS,\n type ChartDimensionSpec,\n type ChartGrain,\n type ChartMetricSpec,\n type ChartPoint,\n type ChartQueryCheck,\n ChartQueryError,\n type ChartQueryErrorKind,\n type ChartQueryOptions,\n type ChartResult,\n type ChartSeries,\n type ChartSpec,\n type ChartUnit,\n type ChartWindow,\n type ChartWindowUnit,\n chartBucketStart,\n chartToday,\n chartWindowRange,\n findChartDimension,\n findChartMetric,\n formatChartSpec,\n isChartQueryError,\n parseChartQuery,\n readChartSpec,\n validateChartSpec,\n} from './charts/index.js'\n// Dashboards - the tiles of a dashboard hold filters and never data. The\n// wire types and the placement rules are pure, so control-backend and\n// control-frontend run the same code.\nexport {\n DASHBOARD_TILE_DEFAULT_SIZE,\n dashboardDefinitionBytes,\n dashboardDefinitionFits,\n dashboardTileDefaultSize,\n emptyDashboardDefinition,\n isSafeDashboardLink,\n placeNewTile,\n placeNewTiles,\n tilesOverlap,\n toStoredDashboardDefinition,\n upgradeDashboardDefinition,\n} from './dashboards/definition.js'\nexport type {\n ALERT_SUBSCRIPTION_REPORT_TYPES,\n ALERT_SUBSCRIPTION_TYPES,\n AlertSubscriptionDto,\n AlertSubscriptionEntryDto,\n AlertSubscriptionWebhookAuth,\n CheckFailedReason,\n} from './dtos/AlertSubscription.dto.js'\n// DTOs - Values (constants)\nexport {\n FORBIDDEN_HOSTNAMES_FOR_WEBHOOK_ALERTS,\n HMAC_HEADER_POSITION,\n HMAC_SUPPORTED_ALGORITHM,\n} from './dtos/AlertSubscription.dto.js'\nexport type {\n AnnotationActor,\n AnnotationDto,\n AnnotationEntityKind,\n AnnotationKind,\n AnnotationLookupDto,\n AnnotationLookupEntryDto,\n AnnotationTagDto,\n EntityAnnotationsDto,\n} from './dtos/Annotation.dto.js'\nexport {\n ANNOTATION_BODY_MAX,\n ANNOTATION_ENTITY_KIND_LABELS,\n ANNOTATION_ENTITY_KINDS,\n ANNOTATION_ENTITY_MAX,\n ANNOTATION_KINDS,\n ANNOTATION_LOOKUP_MAX_ENTITIES,\n ANNOTATION_LOOKUP_TAGS_MAX,\n ANNOTATION_PAGE_SIZE_DEFAULT,\n ANNOTATION_PAGE_SIZE_MAX,\n ANNOTATION_SEARCH_MAX_LENGTH,\n ANNOTATION_TAG_NAME_MAX,\n normalizeTagName,\n} from './dtos/Annotation.dto.js'\n// Approvals - the wire types, and the rules that read them. Both are pure and\n// browser-safe, so control-backend, control-frontend and cloudbot run the same\n// code and cannot disagree.\nexport type {\n ApprovalAck,\n ApprovalActionMode,\n ApprovalActor,\n ApprovalEntityRef,\n ApprovalEntityType,\n ApprovalExecutionMode,\n ApprovalJobDto,\n ApprovalJobStatus,\n ApprovalM2mActor,\n ApprovalProgress,\n ApprovalSortField,\n ApprovalSortOrder,\n ApprovalStatusCountsDto,\n ApprovalSummaryField,\n ApprovalSummaryFieldKind,\n ApprovalSummaryValue,\n ApprovalUseCaseDto,\n} from './dtos/ApprovalJob.dto.js'\nexport {\n APPROVAL_ACKS_MAX,\n APPROVAL_ENTITY_TYPES,\n APPROVAL_JOB_STATUSES,\n APPROVAL_LIST_SUMMARY_VALUES_MAX,\n APPROVAL_LIVE_STATUSES,\n APPROVAL_PAGE_SIZE_DEFAULT,\n APPROVAL_PAGE_SIZE_MAX,\n APPROVAL_PAYLOAD_ORG_FIELD,\n APPROVAL_REASON_MAX_LENGTH,\n APPROVAL_RUN_STALE_MS,\n APPROVAL_SEARCH_MAX_LENGTH,\n APPROVAL_SORT_DEFAULT,\n APPROVAL_SORT_FIELDS,\n APPROVAL_SUMMARY_FIELD_KINDS,\n isRunStalled,\n progressFraction,\n} from './dtos/ApprovalJob.dto.js'\nexport type { AuditDto } from './dtos/Audit.dto.js'\nexport type { Auth0ResourceServerDto } from './dtos/Auth0ResourceServer.dto.js'\nexport type { BackupDto } from './dtos/Backup.dto.js'\nexport type { BackupScheduleDto } from './dtos/BackupSchedule.dto.js'\nexport type { ByomClientDto, ByomStatus } from './dtos/ByomClient.dto.js'\nexport type {\n ClusterCreationDefaultField,\n ClusterCreationDefaultKey,\n ClusterCreationDefaults,\n} from './dtos/ClusterCreationDefaults.dto.js'\nexport { CLUSTER_CREATION_DEFAULT_FIELDS } from './dtos/ClusterCreationDefaults.dto.js'\nexport type {\n ClusterDeferredSpecChange,\n DeferredSpecChangeType,\n} from './dtos/ClusterDeferredSpecChange.dto.js'\nexport type { ClusterIpWhitelistDto } from './dtos/ClusterIpWhitelist.dto.js'\nexport type {\n MoveClusterOwnerResult,\n MoveClusterWarnings,\n} from './dtos/ClusterOwnerMove.dto.js'\nexport type { ClusterPlanDto } from './dtos/ClusterPlan.dto.js'\nexport type { ClusterPlanTypeDto } from './dtos/ClusterPlanType.dto.js'\nexport type {\n ChangeClusterPlanTypeResult,\n ClusterModificationConfigRef,\n ClusterPlanTypeChangeRefusal,\n ClusterPlanTypeStateDto,\n} from './dtos/ClusterPlanTypeChange.dto.js'\nexport {\n CLUSTER_PLAN_TYPE_CHANGE_REFUSALS,\n clusterPlanTypeChangeRefusalOf,\n} from './dtos/ClusterPlanTypeChange.dto.js'\nexport type {\n ClusterSpecChange,\n ClusterSpecChangeActor,\n ClusterSpecHistory,\n} from './dtos/ClusterSpecHistory.dto.js'\nexport type {\n CommonClusterDto,\n ExternalIdpConfig,\n OptimizeFilteringConfig,\n OptimizeFilteringIncludeExclude,\n OptimizeFilteringPatch,\n SecretsFilterMode,\n} from './dtos/CommonCluster.dto.js'\nexport type { ConsoleClusterDto } from './dtos/ConsoleCluster.dto.js'\nexport type {\n ClusterActivityBucket,\n ClusterActivityTile,\n ClusterActivityV2Dto,\n ClusterActivityV2Response,\n ClusterByClientV2Dto,\n ClusterDatacenterOptionV2Dto,\n ClusterDetailV2Dto,\n ClusterFacetsV2Dto,\n ClusterListItemV2Dto,\n ClusterLiveStateV2Dto,\n ClusterLiveStateV2Entry,\n ClusterModificationState,\n ClusterParameterOptionV2Dto,\n ClusterParametersV2Dto,\n ClusterTtlFilter,\n ControlResolvedPermissions,\n ControlSessionDto,\n ControlSessionUser,\n CursorPage,\n CursorParams,\n ListClustersV2Params,\n ListOrganizationsV2Params,\n ListOrgMembersV2Params,\n OrgDetailV2Dto,\n OrgListItemV2Dto,\n OrgMemberV2Dto,\n OrgSummaryV2Dto,\n} from './dtos/ControlV2.dto.js'\nexport { CLUSTER_MODIFICATION_STATES } from './dtos/ControlV2.dto.js'\nexport type {\n DashboardActor,\n DashboardAnnotationsQuery,\n DashboardAnnotationsTile,\n DashboardAnnotationsTileV1,\n DashboardCatalogue,\n DashboardCatalogueChartMetric,\n DashboardCatalogueSearchField,\n DashboardChartQuery,\n DashboardChartRender,\n DashboardChartTile,\n DashboardChartTileV3,\n DashboardClusterCard,\n DashboardClusterDetailQuery,\n DashboardClusterDetailTile,\n DashboardClusterDetailTileV2,\n DashboardDefinition,\n DashboardDefinitionV1,\n DashboardDefinitionV2,\n DashboardDefinitionV3,\n DashboardDto,\n DashboardFleetQuery,\n DashboardFleetQueryTile,\n DashboardFleetQueryTileV1,\n DashboardHeadingTile,\n DashboardHeadingTileV2,\n DashboardLinkTile,\n DashboardLinkTileV2,\n DashboardListDto,\n DashboardNewTile,\n DashboardNoteTile,\n DashboardNoteTileV2,\n DashboardOrgCard,\n DashboardOrgDetailQuery,\n DashboardOrgDetailTile,\n DashboardOrgDetailTileV2,\n DashboardSummaryDto,\n DashboardTile,\n DashboardTileKind,\n DashboardTileLayout,\n DashboardTileV1,\n DashboardTileV2,\n DashboardTileV3,\n StoredDashboardDefinition,\n} from './dtos/Dashboard.dto.js'\nexport {\n DASHBOARD_CHART_RENDERS,\n DASHBOARD_CLUSTER_CARDS,\n DASHBOARD_DEFINITION_BYTES_MAX,\n DASHBOARD_DEFINITION_VERSION,\n DASHBOARD_ENTITY_ID_MAX,\n DASHBOARD_GRID_COLUMNS,\n DASHBOARD_GRID_ROWS_MAX,\n DASHBOARD_LINK_URL_MAX,\n DASHBOARD_NOTE_MAX,\n DASHBOARD_ORG_CARDS,\n DASHBOARD_PAGE_SIZE_DEFAULT,\n DASHBOARD_PAGE_SIZE_MAX,\n DASHBOARD_TILE_KINDS,\n DASHBOARD_TILE_ROWS_MAX,\n DASHBOARD_TILES_MAX,\n DASHBOARD_TITLE_MAX,\n} from './dtos/Dashboard.dto.js'\nexport type { EarlyAccessFeatureDto } from './dtos/EarlyAccessFeature.dto.js'\nexport type {\n CamundaWebApp,\n CamundaWebAppWithZeebe,\n ExternalClickwrapConfigDto,\n ExternalClusterDto,\n ExternalOrganizationDto,\n} from './dtos/ExternalWebapp.dto.js'\nexport type {\n CreateFeatureFlagDto,\n FeatureFlagAnswer,\n FeatureFlagDto,\n FeatureFlagListDto,\n UpdateFeatureFlagDto,\n} from './dtos/FeatureFlags.dto.js'\n// Functions\nexport {\n activeGenerations,\n compareGenerationNamesNewestFirst,\n type GenerationDto,\n type GenerationWithClusterCountDto,\n sortGenerationBySemverOfZeebe,\n type UpgradableGenerationsDto,\n} from './dtos/Generations.dto.js'\nexport type { ChangeGenerationVersionsResult } from './dtos/GenerationVersionsChange.dto.js'\n// Namespace (type-only - contains only interfaces)\nexport type { Hdp } from './dtos/Hdp.dto.js'\nexport type {\n K8sBackupConfig,\n K8sConfig,\n K8sConfigLegacyFormat,\n K8sContext,\n K8sContextDto,\n} from './dtos/K8sContext.dto.js'\nexport type {\n M2mTokenCountDto,\n M2mTokenCountsDto,\n} from './dtos/M2mTokenCount.dto.js'\nexport type { MetaDto } from './dtos/Meta.dto.js'\nexport type {\n AutoJoinAssignment,\n LicensingModelType,\n LlmProviderName,\n OrganizationDto,\n OrganizationMetadata,\n OrgOwner,\n OrgWithNameAndSalesPlan,\n} from './dtos/Organization.dto.js'\nexport {\n LICENSING_MODEL_DISPLAY_NAMES,\n VALID_LICENSING_MODELS,\n} from './dtos/Organization.dto.js'\nexport type { OrganizationMemberDto } from './dtos/OrganizationMember.dto.js'\nexport type { OrganizationToSalesPlanDto } from './dtos/OrganizationToSalesPlan.dto.js'\nexport type {\n ReleaseTrainSanityReport,\n SanityFix,\n SanityRuleInfo,\n SanitySeverity,\n SanityViolation,\n} from './dtos/ReleaseTrainSanity.dto.js'\nexport type { RestoreDto, RestoreState } from './dtos/Restore.dto.js'\n// SalesPlan.dto - Types\nexport type {\n ClusterLimits,\n ConsumptionDataItem,\n Limits,\n SalesPlanDto,\n SalesPlanMetadata,\n} from './dtos/SalesPlan.dto.js'\n// SalesPlan.dto - Values (constants and functions)\nexport {\n allClusterBasedLimits,\n allSalesPlanLimits,\n clusterPlanWhiteListIds,\n deprecatedLimit,\n generationWhiteListIds,\n isLimitKeyEnabled,\n isLimitOfferedOnStage,\n isUnlockedClusterPlansStage,\n MAX_CLUSTER_CLIENTS_DEFAULT,\n MAX_CLUSTER_CLIENTS_DEV,\n RETENTION_LIMIT_DEFAULT,\n RETENTION_LIMIT_MAXIMUM,\n RETENTION_LIMIT_MINIMUM,\n unusedClusterBasedLimits,\n unusedSalesPlanLimits,\n} from './dtos/SalesPlan.dto.js'\nexport type { SecureConnectivityDto } from './dtos/SecureConnectivity.dto.js'\nexport type { SignupDto } from './dtos/Signup.dto.js'\nexport type {\n StorybookConfig,\n StorybookConfigBackup,\n StorybookConfigChannel,\n StorybookConfigDatacenter,\n StorybookConfigGeneration,\n} from './dtos/StorybookConfig.dto.js'\nexport type { SystemAuditDto } from './dtos/SystemAudit.dto.js'\nexport type {\n UpgradeReadinessDto,\n UpgradeReadinessSource,\n UpgradeReadinessState,\n} from './dtos/UpgradeReadiness.dto.js'\n// UsageAlert.dto - Types\nexport type { UsageAlertDto } from './dtos/UsageAlert.dto.js'\n// UsageAlert.dto - Values (enum and constants)\nexport {\n UsageAlertInitValues,\n UsageAlertMetric,\n UsageAlertThresholdLimits,\n} from './dtos/UsageAlert.dto.js'\nexport type { UserMetaDataDto } from './dtos/UserMetaData.dto.js'\n// Lucene-style table search (parser + AST \u2192 SQL compiler + field registries).\nexport {\n type AndNode,\n CLUSTER_DEFAULT_SEARCH_FIELDS,\n CLUSTER_SEARCH_FIELDS,\n CLUSTER_TTL_SEARCH_FIELDS,\n type CompileContext,\n type CompiledQuery,\n clusterSearchFieldsForStage,\n compileQuery,\n type FieldBinding,\n findSearchField,\n idSetPredicate,\n isLuceneQueryError,\n joinIdSet,\n LuceneQueryError,\n likeArgument,\n type NotNode,\n ORG_DEFAULT_SEARCH_FIELDS,\n ORGANIZATION_SEARCH_FIELDS,\n type OrNode,\n parseLuceneQuery,\n type QueryNode,\n type RangeNode,\n type SearchFieldCapability,\n type SearchFieldSpec,\n type SearchFieldType,\n type SearchTermOperator,\n type SqlDialect,\n type TermNode,\n} from './search/index.js'\nexport { upgradeGateReason } from './utils/upgradeGateReason.utils.js'\n\n// ============================================================================\n// Enums (runtime values)\n// ============================================================================\n\nexport {\n AlertSubscriptionReportType,\n AlertSubscriptionType,\n} from './enums/AlertSubscription.enum.js'\nexport { AuditEntity, AuditEntityAttribute } from './enums/AuditEntity.enum.js'\nexport { AuditService } from './enums/AuditService.enum.js'\nexport { BackupStatus } from './enums/BackupStatus.enum.js'\nexport {\n ClusterBulkOperationStatus,\n ClusterBulkOperationType,\n} from './enums/ClusterBulkOperation.enum.js'\nexport { ClusterClientPermission } from './enums/ClusterClientPermissions.enum.js'\nexport { ClusterEncryptionKey } from './enums/ClusterEncryptionKey.enum.js'\nexport { ClusterStatus } from './enums/ClusterStatus.enum.js'\nexport { ConsoleAPIClientPermission } from './enums/ConsoleApiClientPermission.enum.js'\nexport { ErrorType } from './enums/ErrorType.enum.js'\nexport type {\n AssignableOrganizationRoleType,\n OrganizationRoleType,\n UnassignableOrganizationRoleType,\n} from './enums/OrganizationRole.enum.js'\nexport {\n AssignableOrganizationRole,\n LegacyHeldOrganizationRole,\n OrganizationRole,\n UnassignableOrganizationRole,\n} from './enums/OrganizationRole.enum.js'\nexport { SseEntity, SseType } from './enums/Sse.enum.js'\nexport {\n SystemAuditEntity,\n SystemAuditEntityAttribute,\n} from './enums/SystemAuditEntity.enum.js'\n\n// ============================================================================\n// Permissions - Namespaces (runtime values)\n// ============================================================================\n\nexport { AccountsPermissions } from './permissions/accounts.permissions.js'\nexport { AlertDistributorPermissions } from './permissions/alert-distributor.permissions.js'\nexport { AuditLoggerPermissions } from './permissions/auditlogger.permissions.js'\nexport {\n accountsUserFeaturesFromPermissions,\n consoleUserFeaturesFromPermissions,\n sessionHasPermission,\n sessionPermissionKeysFor,\n} from './permissions/combo.js'\nexport { ConsolePermissions } from './permissions/console.permissions.js'\nexport { NotificationPermissions } from './permissions/notification.permissions.js'\n// profile.permissions - Types\nexport type { OnboardConfig } from './permissions/profile.permissions.js'\n// profile.permissions - Values (constants)\n// NOTE: the `allowed` email lists (CLOUD_TEAM_EMAILS, SRE_TEAM_EMAILS, etc.)\n// intentionally live in the private `@camunda-cloud/shared-backend` package\n// instead of here, since this package is published publicly to npm.\nexport { PROFILES } from './permissions/profile.permissions.js'\nexport { expandRolesToPermissions } from './permissions/roleExpansion.utils.js'\n\n// ============================================================================\n// Types - Type-only exports (interfaces and type aliases)\n// ============================================================================\n\nexport type { AuditData } from './types/AuditData.type.js'\n// AutoSleep.type - Types\nexport type {\n ActivitySleepEligibilityOptions,\n SleepCronEligibilityOptions,\n} from './types/AutoSleep.type.js'\n// AutoSleep.type - Values (constants and functions)\nexport {\n INTERNAL_LOW_HARDWARE_PLAN_NAME,\n isActivitySleepEligible,\n isClusterTagEligibleForSleepCron,\n isSalesPlanEligibleForSleepCron,\n isSleepCronEligible,\n SLEEP_CRON_ELIGIBLE_TAGS,\n} from './types/AutoSleep.type.js'\nexport type {\n BotContext,\n BotOptions,\n BotRequest,\n GetUserDetailsResponse,\n ListRolesForUserResponse,\n UpdateUserRolesRequest,\n UpdateUserRolesResponse,\n UserContext,\n UserDetails,\n} from './types/Bot.types.js'\n// BulkOperation.type - Types\nexport type {\n BulkClusterDeletionContent,\n BulkClusterDeletionItem,\n BulkClusterGenerationUpdateItem,\n BulkClusterPlanTypeUpdateContent,\n BulkClusterPlanTypeUpdateItem,\n BulkClusterPlanUpdateContent,\n BulkClusterPlanUpdateItem,\n BulkGenerationUpdateContent,\n GenericBulkClusterOperationContent,\n GenericBulkOperationContent,\n GenericClusterBulkOperationItem,\n} from './types/BulkOperation.type.js'\n// BulkOperation.type - Functions (type guards)\nexport {\n isBulkClusterDeletionItem,\n isBulkClusterPlanTypeUpdateItem,\n isBulkClusterPlanUpdateItem,\n isIsBulkClusterGenerationUpdateIten,\n} from './types/BulkOperation.type.js'\n// C8ClusterComponentVersions.type - Types\nexport type {\n GenerationImageVersionsDto,\n ImmutableZeebeClusterVersionsDto,\n MutableZeebeClusterVersionsDto,\n ZeebeClusterVersionsDto,\n} from './types/C8ClusterComponentVersions.type.js'\n// C8ClusterComponentVersions.type - Values (constants)\nexport {\n AllThings,\n GENERATION_IMAGE_VERSION_KEYS,\n ImmutableThings,\n MutableThings,\n} from './types/C8ClusterComponentVersions.type.js'\n// CamundaClusterLabels.type - Types\nexport type {\n CamundaClusterStage,\n CamundaClusterStageLabel,\n ClusterLabels,\n} from './types/CamundaClusterLabels.type.js'\n// CamundaClusterLabels.type - Values (constants)\nexport {\n ALLOWED_CAMUNDA_LABELS,\n StageClusterLabels,\n} from './types/CamundaClusterLabels.type.js'\n// Chargebee.type - Types\nexport type { SubscriptionItem } from './types/Chargebee.type.js'\n// Chargebee.type - Values (enums)\nexport { ConsumptionData, ConsumptionDataType } from './types/Chargebee.type.js'\n// ClusterBulkOperation.type - Types\nexport type {\n ClusterBulkOperationAck,\n ClusterBulkOperationClusterDto,\n ClusterBulkOperationContent,\n ClusterBulkOperationDto,\n ClusterBulkOperationGenerationUpdateParameter,\n ClusterBulkOperationParameter,\n ClusterBulkOperationPlanTypeUpdateParameter,\n ClusterBulkOperationPlanUpdateParameter,\n ClusterBulkOperationPostContent,\n ClusterSleepWakeupParameter,\n} from './types/ClusterBulkOperation.type.js'\nexport type {\n ClusterModificationConfigDto,\n ClusterModificationDto,\n} from './types/ClusterModification.type.js'\n// ClusterPlanFields.type - Values (field spec and type guard)\nexport {\n CLUSTER_PLAN_FIELDS,\n type ClusterPlanFieldSpec,\n type ClusterPlanFieldTree,\n isClusterPlanFieldSpec,\n} from './types/ClusterPlanFields.type.js'\nexport type {\n ClusterPlanModificationAck,\n ClusterPlanModificationConfig,\n ClusterPlanModificationDto,\n} from './types/ClusterPlanModification.type.js'\n// ClusterPlanTypeAvailabilityClass.type - Values (enum and function)\nexport {\n ClusterPlanTypeAvailabilityClass,\n hasNoAvailabilityClass,\n sortByAvailabilityClasses,\n} from './types/ClusterPlanTypeAvailabilityClass.type.js'\n// ClusterPlanTypeCategory.type - Values (enum and functions)\nexport {\n ClusterPlanTypeCategory,\n hasAvailabilityClass,\n sortByClusterPlanTypeCategory,\n} from './types/ClusterPlanTypeCategory.type.js'\nexport type { ClusterPlanTypesToConfig } from './types/ClusterPlanTypesToConfig.type.js'\nexport type { ClusterPlanTypesToReserved } from './types/ClusterPlanTypesToReserved.type.js'\nexport type {\n ClusterTtlDeletionPayload,\n ClusterTtlDeletionResult,\n ClusterTtlDto,\n ClusterTtlDuration,\n ClusterTtlOption,\n ClusterTtlUnlimited,\n UpdateClusterTtlBody,\n} from './types/ClusterTtl.type.js'\nexport {\n CLUSTER_TTL_BACKFILL_REASON,\n CLUSTER_TTL_DURATION_MS,\n CLUSTER_TTL_DURATIONS,\n CLUSTER_TTL_FEATURE_FLAG,\n CLUSTER_TTL_OPTIONS,\n CLUSTER_TTL_UNLIMITED_LINK_MAX_LENGTH,\n CLUSTER_TTL_UNLIMITED_REASON_MAX_LENGTH,\n clusterTtlExpiresAt,\n DEFAULT_CLUSTER_TTL_OPTION,\n extendClusterTtl,\n isClusterTtlDuration,\n isClusterTtlOption,\n isClusterTtlStage,\n isHttpUrl,\n isPastClusterTtl,\n validateClusterTtlUnlimited,\n} from './types/ClusterTtl.type.js'\nexport type {\n ClusterUsageDataRequest,\n ClusterUsageMetadataDto,\n ClusterUsageMetricsAddRequestByMetricHeap,\n ClusterUsageMetricsData,\n ClusterUsageMetricsFilter,\n ClusterUsageOrgStartDate,\n} from './types/ClusterUsageMetrics.type.js'\n// Namespace with runtime values (consts, functions, enums)\nexport { ConsoleSM } from './types/ConsoleSelfManaged.type.js'\n// Namespace (type-only - contains only interfaces)\nexport type { ConsoleSMAdminApi } from './types/ConsoleSelfManagedAdminApi.type.js'\n// Dashboard.types - Types\nexport type {\n DashboardConfig,\n DashboardMappingItem,\n DashboardMappingTarget,\n DashboardResultPrimitive,\n DashboardResultRow,\n EngineeringOperationsDashboardResponse,\n} from './types/Dashboard.types.js'\nexport type { EnterpriseIncludingValueMetrics } from './types/EnterpriseIncludingValueMetrics.type.js'\nexport type {\n HdpTenantUsageBreakdown,\n HdpTenantUsagePerClusterPoint,\n HdpTenantUsagePoint,\n} from './types/HdpTenantUsage.type.js'\n// hdp.types - Types (interfaces)\nexport type {\n AlertSubscription as HdpAlertSubscription,\n Audit as HdpAudit,\n ByomClient as HdpByomClient,\n Channel as HdpChannel,\n Cluster as HdpCluster,\n ClusterBackup as HdpClusterBackup,\n ClusterBackupSchedule as HdpClusterBackupSchedule,\n ClusterBulkOperation as HdpClusterBulkOperation,\n ClusterClient as HdpClusterClient,\n ClusterModification as HdpClusterModification,\n ClusterPlan as HdpClusterPlan,\n ClusterPlanType as HdpClusterPlanType,\n ConnectorSecret as HdpConnectorSecret,\n ConsoleApiClient as HdpConsoleApiClient,\n Datacenter as HdpDatacenter,\n Generation as HdpGeneration,\n HdpBackendChangeEvent,\n HdpClusterModificationConfig,\n HdpDisk,\n HdpEntity,\n HdpPrometheusDataCapacityDataPoint,\n Invite as HdpInvite,\n LlmSpend as HdpLlmSpend,\n Organization as HdpOrganization,\n SecureConnectivity as HdpSecureConnectivity,\n SystemAudit as HdpSystemAudit,\n TelemetryData as HdpTelemetryData,\n UsageAlert as HdpUsageAlert,\n User as HdpUser,\n UserLogin as HdpUserLogin,\n} from './types/hdp.types.js'\n// hdp.types - Values (enums)\nexport {\n AlertSubscriptionReportType as HdpAlertSubscriptionReportType,\n AlertSubscriptionType as HdpAlertSubscriptionType,\n HDP_DISKS,\n} from './types/hdp.types.js'\n// notification.type - Types\nexport type {\n GlobalNotification,\n NotificationDto,\n NotificationMeta,\n NotificationOptions,\n NotificationPermission,\n NotificationSource,\n NotificationState,\n NotificationType,\n OrgNotification,\n UserNotification,\n UserOrgNotification,\n} from './types/notification.type.js'\n// notification.type - Values (enums and constants)\nexport {\n NotificationPermissionValues,\n NotificationSourceEnum,\n NotificationStateEnum,\n NotificationTypeEnum,\n} from './types/notification.type.js'\n// OrganizationPermission.type - Types\nexport type {\n CreateReadUpdateDelete,\n OrganizationPermissions,\n} from './types/OrganizationPermission.type.js'\n// OrganizationPermission.type - Values (constants)\nexport {\n OrganizationPermissionsDescriptions,\n PermissionsForOrganizationRole,\n} from './types/OrganizationPermission.type.js'\nexport {\n getPreprodClusterTtlHours,\n isPastPreprodClusterTtl,\n isPreprodClusterTtlStage,\n parseNumericLimit,\n} from './types/PreprodClusterTtl.type.js'\n// Roles.js - Types\nexport type {\n AccountRoles,\n ConsoleRoles,\n ModelerRoles,\n Roles,\n} from './types/Roles.js'\n// Roles.js - Values (constants)\nexport { SAFE_ROLES } from './types/Roles.js'\n// SalesPlanType.type - Types\nexport type {\n DisplayedSalesPlan,\n RevisitedSalesPlanName,\n} from './types/SalesPlanType.type.js'\n// SalesPlanType.type - Values (enums and functions)\nexport {\n AnalyticsSalesPlanType,\n getAnalyticsSalesPlanFromOrgSalesPlan,\n getDisplayedSalesPlan,\n getRevisitedSalesPlanName,\n OPTIMIZE_DISABLED_PLAN_TYPES,\n SalesPlanType,\n} from './types/SalesPlanType.type.js'\n// SpamDetection.type - Types\nexport type { SpamDetectionPatterns } from './types/SpamDetection.type.js'\n// SpamDetection.type - Values (constants)\nexport { TEERGRUBE_PATTERNS } from './types/SpamDetection.type.js'\nexport type {\n AlertSubscriptionSseEvent,\n BackupSseEvent,\n ClusterClientSseEvent,\n ClusterSseEvent,\n ConnectorSecretsSseEvent,\n ConsoleApiClientSseEvent,\n ConsoleSseEvent,\n MonitoringSseEvent,\n SecureConnectivitySseEvent,\n SseClusterPayload,\n SseMonitoringPayload,\n SseSecureConnectivityPayload,\n} from './types/SseEvent.type.js'\n// Namespace (type-only - contains only interfaces)\nexport type { AccountsStats } from './types/Stats.types.js'\n// Survey.type - Types\nexport type { Persona, SurveyDto } from './types/Survey.type.js'\n// Survey.type - Values (enum)\nexport { FeedbackType } from './types/Survey.type.js'\n// SuspendStrategy.type - Types\nexport type {\n GetSuspendStrategyOptions,\n SuspendStrategy,\n} from './types/SuspendStrategy.type.js'\n// SuspendStrategy.type - Values (function)\nexport { getSuspendStrategy } from './types/SuspendStrategy.type.js'\nexport type { SystemAuditData } from './types/SystemAuditData.type.js'\n\n// Namespace (runtime value)\nexport { Telemetry } from './types/Telemetry.type.js'\n\n// TrialManagement.types - Types\nexport type {\n ExtensionListItem,\n ExtensionListResponse,\n OrgTrialDetail,\n TrialExtensionSource,\n TrialManagementStats,\n} from './types/TrialManagement.types.js'\n\n// User.type - Types\nexport type {\n AccountsData,\n AppMetadata,\n BasicUser,\n BlockedFor,\n Identity,\n OrgMembership,\n User,\n UserMetadata,\n UserRequest,\n} from './types/User.type.js'\n\n// User.type - Values (enum)\nexport { UserMetadataEvent } from './types/User.type.js'\n\nexport type {\n UniqueTaskUser,\n ValueMetrics,\n ValueMetricsPerYearMonth,\n} from './types/ValueMetrics.type.js'\n\n// ============================================================================\n// Utils - Classes (runtime values)\n// ============================================================================\n\nexport {\n CLOUD_PROVIDER_ORDER,\n getCloudProviderLabel,\n getCloudProviderRank,\n} from './utils/cloudProvider.utils.js'\nexport {\n type ConnectivityStatus,\n deriveConnectivityMessage,\n deriveConnectivityStatus,\n} from './utils/connectivityStatus.utils.js'\nexport { ConsoleSelfManagedUtils } from './utils/console-sm.utils.js'\nexport type {\n CronScheduleValidationFailure,\n CronScheduleValidationResult,\n CronScheduleValidationSuccess,\n} from './utils/cronSchedule.utils.js'\nexport {\n BACKUP_SCHEDULE_MIN_INTERVAL_MINUTES,\n validateCronSchedule,\n} from './utils/cronSchedule.utils.js'\nexport {\n canonicalPlan,\n canonicalPlanKey,\n} from './utils/elasticsearchPlanPath.utils.js'\nexport {\n deriveEncryptionStatus,\n type EncryptionStatus,\n isEncryptionStatus,\n} from './utils/encryptionStatus.utils.js'\n// enterprise-connection.utils - Types\nexport type { EnterpriseConnectionOrganizationAssignment } from './utils/enterprise-connection.utils.js'\n// enterprise-connection.utils - Values (functions)\nexport {\n enterpriseConnectionMetadataToOrganizationAssignments,\n organizationAssignmentsToEnterpriseConnectionMetadata,\n} from './utils/enterprise-connection.utils.js'\nexport {\n addMonthsClamped,\n DEFAULT_ENTERPRISE_DURATION_IN_MONTHS,\n diffInWholeMonths,\n type EnterpriseTermWindow,\n getCurrentEnterpriseTerm,\n peakWithinTerm,\n toUtcDayStartMs,\n} from './utils/enterpriseTerm.utils.js'\nexport type { EnvVarEntry } from './utils/envVars.js'\nexport { parseEnvVars, serializeEnvVars } from './utils/envVars.js'\nexport {\n deriveFailoverKeyPolicyPrincipals,\n type FailoverKeyPolicyPrincipals,\n} from './utils/failoverKeyPolicy.utils.js'\nexport type {\n JvmOptionsModificationKey,\n ParsedJvmOption,\n} from './utils/jvmOptions.js'\nexport {\n addsEnvVarsOverrideValue,\n isJvmOptionsModificationKey,\n isUnderJvmSpec,\n JVM_OPTION_MAX_LENGTH,\n JVM_OPTION_PATTERN,\n JVM_OPTIONS_MAX_ITEMS,\n JVM_OPTIONS_MODIFICATION_KEYS,\n JVM_OPTIONS_TARGETS,\n joinJvmOptions,\n parseJvmOption,\n requiresEnvVarsOverride,\n splitJvmOptions,\n validateJvmOptions,\n validateJvmOptionsValue,\n} from './utils/jvmOptions.js'\nexport {\n KMS_ARN,\n KMS_MRK_ARN,\n type KmsArnValidationError,\n type ParsedKmsArn,\n parseKmsArn,\n validateKmsArnForRegion,\n} from './utils/kmsArn.utils.js'\nexport { validateLabels } from './utils/labelValidator.utils.js'\nexport { ObjectMergeUtils } from './utils/objectMerge.utils.js'\nexport {\n computeOrgStartDate,\n type OrgStartDateInput,\n} from './utils/orgStartDate.utils.js'\nexport {\n getPermissionsByRoles,\n getUserPermissionsForOrg,\n} from './utils/orgs/OrgHelper.js'\n\n// PasswordPolicy - Types\nexport type {\n PasswordPolicyRequest,\n PasswordPolicyResult,\n} from './utils/PasswordPolicy.js'\n\n// PasswordPolicy - Values (constants and function)\nexport {\n MAXLENGTH as PASSWORD_POLICY_MAXLENGTH,\n MINLENGTH as PASSWORD_POLICY_MINLENGTH,\n passwordPolicyCheck,\n} from './utils/PasswordPolicy.js'\nexport { isQaUserEmail, qaUserEmail } from './utils/qa-user.utils.js'\nexport {\n deriveSecondaryStorageStatus,\n type SecondaryStorageStatus,\n} from './utils/secondaryStorageStatus.utils.js'\nexport {\n allSettledResultsCounts,\n getFulfilledPromises,\n getRejectedPromises,\n getSettledSummary,\n} from './utils/settledPromises.util.js'\nexport {\n isValidAwsArn,\n isValidCIDR,\n isValidCIDRList,\n isValidClientName,\n isValidHostname,\n isValidPrivateLinkRegion,\n normalizeCIDRList,\n} from './utils/string-validation.utils.js'\nexport {\n extractCamundaUserEmail,\n guessName,\n isCamundaUserId,\n} from './utils/user.utils.js'\n\n// versionCheck.utils - Values (enum and function)\nexport {\n checkVersion,\n generationImageErrorMessage,\n isAppIntegrationsVersionSupported,\n isGenerationResumable,\n isSecretsFilterModeConfigurable,\n isValidGenerationImage,\n normalizeGenerationVersion,\n stripSecfixPostfix,\n VersionCheckOperator,\n} from './utils/versionCheck.utils.js'\n\n// ============================================================================\n// Config - Configuration files and types\n// ============================================================================\n\nexport { default as CAMUNDI_PERMISSION_RULES } from './config/camundi-permission-rules.js'\nexport type { CamundiPermissionRules } from './config/camundi-permission-rules.types.js'\n\nexport {\n augmentCamundiPermissions,\n getApplicableRolesForEmployee,\n HIBOB_CACHE_KEY,\n HIBOB_CACHE_NAMESPACE,\n isManager,\n} from './utils/camundiPermissionAugmenter.utils.js'\n"],
|
|
5
|
-
"mappings": "AAUA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,KAAK,MAAM,QAAQ,QAAQ,YAAY;AAEhD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,4BAA4B;AACrC,SAAS,iDAAiD;AAC1D,SAAS,6CAA6C;AAKtD,SAAS,wCAAwC;AACjD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAcP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAeP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAMP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAMA;AAAA,EASA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAIP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAUP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAWP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAuBP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAWP,SAAS,uCAAuC;AAkBhD;AAAA,EACE;AAAA,EACA;AAAA,OACK;AA4CP,SAAS,mCAAmC;AA8C5C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAiBP;AAAA,EACE;AAAA,EACA;AAAA,EAGA;AAAA,OAEK;AAyBP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAoBP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAmBP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EAEA;AAAA,OASK;AACP,SAAS,yBAAyB;AAMlC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,aAAa,4BAA4B;AAClD,SAAS,oBAAoB;AAC7B,SAAS,oBAAoB;AAC7B;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,+BAA+B;AACxC,SAAS,4BAA4B;AACrC,SAAS,qBAAqB;AAC9B,SAAS,kCAAkC;AAC3C,SAAS,iBAAiB;AAM1B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,WAAW,eAAe;AACnC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAMP,SAAS,2BAA2B;AACpC,SAAS,mCAAmC;AAC5C,SAAS,8BAA8B;AACvC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,0BAA0B;AACnC,SAAS,+BAA+B;AAOxC,SAAS,gBAAgB;AACzB,SAAS,gCAAgC;AAazC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AA2BP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AASP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAQP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAIP,SAAS,iBAAiB,2BAA2B;AAmBrD;AAAA,EACE;AAAA,EAGA;AAAA,OACK;AAOP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAYP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;
|
|
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// ============================================================================\n// Constants (runtime values)\n// ============================================================================\n\nexport {\n CUSTOM_GENERATION_MAX_PER_REQUESTER,\n CUSTOM_GENERATION_MAX_UPGRADEABLE_FROM,\n CUSTOM_GENERATION_NAME_MAX_LENGTH,\n CUSTOM_GENERATION_NAME_MIN_LENGTH,\n checkNewGenerationVersions,\n isCustomGenerationStage,\n} from './constants/custom-generation.const.js'\nexport {\n CUSTOM_HARDWARE_SIZING_BROKER_TOTAL_CAPS,\n CUSTOM_HARDWARE_SIZING_COUNT_CAPS,\n CUSTOM_HARDWARE_SIZING_ELASTICSEARCH_TOTAL_CAPS,\n CUSTOM_HARDWARE_SIZING_MAX_AUTO_RESIZE_INCREASE_GI,\n CUSTOM_HARDWARE_SIZING_MAX_PLAN_JSON_LENGTH,\n CUSTOM_HARDWARE_SIZING_MAX_PLANS_PER_REQUESTER,\n CUSTOM_HARDWARE_SIZING_NAME_MAX_LENGTH,\n CUSTOM_HARDWARE_SIZING_NAME_MIN_LENGTH,\n CUSTOM_HARDWARE_SIZING_REPLICA_SET_TOTAL_CAPS,\n CUSTOM_HARDWARE_SIZING_RESOURCE_CAPS,\n checkCustomHardwareSizing,\n isCustomHardwareSizingStage,\n parseKubernetesQuantity,\n} from './constants/custom-hardware-sizing.const.js'\nexport { DAY, HOUR, MINUTE, SECOND, WEEK } from './constants/duration.const.js'\nexport type { Stage } from './constants/misc.const.js'\nexport {\n CAMUNDA_CLAIMS_NAMESPACE,\n CONSOLE_API_USER_ID,\n FIRSTNAME_LASTNAME_MAX_LENGTH,\n HOTBACKUP_MIN_CREATE_PERIOD,\n MAX_HARDWARE_PACKAGE_COUNT,\n MAX_LENGTH_CLUSTER_NAME,\n MINIMUM_EYEPAIRS,\n NAMES_OF_ENTERPRISE_SALESPLANS_WITH_SLEEPING_CLUSTERS,\n SECRETS_MAX_LENGTH,\n STARTING_PRICE_PER_MONTH_IN_EURO,\n TEMPORARY_CLUSTER_NAME,\n UNKNOWN_ACTOR_EMAIL,\n} from './constants/misc.const.js'\nexport {\n getGatewayPropertyHint,\n getGatewayPropertyPath,\n isAffectedByStreamlinedDeployment,\n isPre89AffectedPath,\n PRE89_AFFECTED_PATHS,\n PRE89_AFFECTED_PROPERTY_PREFIXES,\n PRE89_GATEWAY_PROPERTY_PATHS,\n PRE89_GATEWAY_RESOURCE_PREFIXES,\n} from './constants/pre89EnvVarMapping.const.js'\nexport { PRIVATE_LINK_REGIONS } from './constants/privateLinkRegions.const.js'\nexport { SECURE_CONNECTIVITY_ALLOWED_ENTRIES_LIMIT } from './constants/secureConnectivity.const.js'\nexport { isSelfServiceClusterModificationStage } from './constants/self-service-cluster-modification.const.js'\nexport type {\n TrialExtensionSurveyAnswer,\n TrialExtensionSurveyQuestion,\n} from './constants/trialExtensionSurvey.const.js'\nexport { TRIAL_EXTENSION_SURVEY_QUESTIONS } from './constants/trialExtensionSurvey.const.js'\nexport {\n V2_BODY_IDS_MAX,\n V2_FILTER_IDS_MAX,\n V2_MAX_PAGE_LIMIT,\n} from './constants/v2-list.const.js'\nexport {\n ADMIN_APP_RENAME_MIN_VERSION,\n APP_INTEGRATIONS_89_STREAM_CONNECTOR_BRIDGE_MIN_VERSION,\n APP_INTEGRATIONS_89_STREAM_MINOR,\n APP_INTEGRATIONS_89_STREAM_ZEEBE_MIN_VERSION,\n APP_INTEGRATIONS_MIN_VERSION,\n AUDIT_LOG_TAB_MIN_VERSION,\n AUTHORIZATION_TOGGLE_MIN_VERSION,\n AWS_ONLY_GENERATION_MIN_VERSION,\n BUSINESS_ID_UNIQUENESS_MIN_VERSION,\n BYOIDP_MIN_VERSION,\n CLUSTER_SECRETS_LABEL_MIN_VERSION,\n CLUSTER_STATISTICS_CONFIG_MIN_VERSION,\n CONNECTOR_MANAGEMENT_METRICS_MIN_VERSION,\n CONNECTOR_SECRET_SYNC_MIN_VERSION,\n CONNECTORS_MANAGEMENT_LINK_MIN_VERSION,\n ENFORCE_GROUPS_TASKLIST_V2_HIDDEN_MIN_VERSION,\n ENFORCE_GROUPS_TOGGLE_MIN_VERSION,\n GATEWAY_SPEC_8_9_MIN_VERSION,\n HOT_BACKUP_MIN_VERSION,\n IDENTITY_AUTHORIZATION_MIN_VERSION,\n IDENTITY_AUTHORIZATION_NOTICE_MAX_VERSION,\n IDENTITY_MANAGEMENT_MIN_VERSION,\n INTERNAL_CONNECTORS_MANAGEMENT_MIN_VERSION,\n JOB_DASHBOARD_MIN_VERSION,\n LINE_8_9_MIN_VERSION,\n LINE_8_10_MIN_VERSION,\n MCP_MIN_VERSION,\n MULTI_TENANCY_TOGGLE_MIN_VERSION,\n NEW_CLUSTER_ROLES_MIN_VERSION,\n OPTIMIZE_DEFAULT_ON_MIN_VERSION,\n OPTIMIZE_FILTERING_MIN_VERSION,\n OPTIONAL_TELEMETRY_MIN_VERSION,\n RESOURCE_BASED_AUTHORIZATIONS_MIN_VERSION,\n REST_API_URL_TRANSFORM_MIN_VERSION,\n REST_API_V2_MIN_VERSION,\n RESUME_ALPHA_MIN_VERSION,\n SECRET_SOURCE_MIN_VERSION,\n SECRETS_FILTER_MODE_8_6_MIN_VERSION,\n SECRETS_FILTER_MODE_8_7_MIN_VERSION,\n SECRETS_FILTER_MODE_8_8_MIN_VERSION,\n SECRETS_FILTER_MODE_8_9_MIN_VERSION,\n SECRETS_FILTER_MODE_8_10_MIN_VERSION,\n SESSION_CONFIG_MIN_VERSION,\n SWAGGER_MIN_VERSION,\n SWAGGER_URL_8_9_MIN_VERSION,\n TASKLIST_MODE_TOGGLE_MIN_VERSION,\n TASKLIST_UPGRADE_BANNER_MIN_VERSION,\n TASKLIST_V2_AUTO_ENABLE_FROM_MINOR,\n TASKLIST_V2_AUTO_ENABLE_TO_MINOR,\n TASKLIST_V2_DEFAULT_ON_MIN_VERSION,\n TASKLIST_V2_SETTING_MAX_VERSION,\n TASKLIST_V2_UPGRADE_MIN_VERSION,\n TASKLIST_V2_UPGRADE_TARGET_MIN_VERSION,\n UPGRADE_READINESS_MIN_VERSION,\n ZEEBE_REST_URL_MIN_VERSION,\n} from './constants/version-gates.const.js'\n\n// ============================================================================\n// DTOs - Types (interfaces and type aliases)\n// ============================================================================\n\n// Annotations - the notes and the tags that a Camundi attaches to a fleet\n// entity. The wire types and the rules are pure and browser-safe, so\n// control-backend and control-frontend run the same code.\nexport type {\n AnnotationActorView,\n AnnotationDecision,\n AnnotationDenialCode,\n} from './annotations/policy.js'\nexport {\n ANNOTATION_DENIAL_MESSAGES,\n canEditNote,\n canRemove,\n checkNoteBody,\n checkTagName,\n isAuthor,\n} from './annotations/policy.js'\nexport type {\n ClusterBulkClusterResultDto,\n ClusterBulkFinalStatus,\n ClusterBulkGenerationUpdateSettings,\n ClusterBulkOperationPayloadDto,\n ClusterBulkOperationRule,\n ClusterBulkPlanTypeUpdateSettings,\n ClusterBulkPlanUpdateSettings,\n ClusterBulkSettingsByType,\n ClusterBulkSleepWakeupSettings,\n ClusterBulkStepRequestDto,\n ClusterBulkStepResultDto,\n ClusterBulkTargetDto,\n} from './approvals/cluster-bulk-operation.js'\nexport {\n CLUSTER_BULK_OPERATION_CLUSTER_NAME_MAX_LENGTH,\n CLUSTER_BULK_OPERATION_MAX_CLUSTERS,\n CLUSTER_BULK_OPERATION_MIN_ACKS,\n CLUSTER_BULK_OPERATION_NAME_MAX_LENGTH,\n CLUSTER_BULK_OPERATION_RULES,\n CLUSTER_BULK_OPERATION_TEST_STAGE_MIN_ACKS,\n CLUSTER_BULK_OPERATION_TYPES,\n CLUSTER_BULK_SLEEPING_CLUSTER_DELAY_MS,\n clusterBulkOperationTypeOf,\n clusterBulkParameterOf,\n clusterBulkRequiredPermissions,\n clusterBulkResultOf,\n isClusterBulkYolo,\n} from './approvals/cluster-bulk-operation.js'\nexport {\n DNS_SUBDOMAIN_MAX_LENGTH,\n isDnsSubdomain,\n} from './approvals/dns-subdomain.js'\nexport type { ApprovalExpectedChange } from './approvals/expected-value.js'\nexport {\n isSameApprovalValue,\n staleApprovalKeys,\n} from './approvals/expected-value.js'\nexport type {\n ApprovalActorView,\n ApprovalDecision,\n ApprovalDenialCode,\n} from './approvals/policy.js'\nexport {\n approvalPermissionCheck,\n canAcknowledge,\n canCreate,\n canExecute,\n canReject,\n canView,\n canWithdraw,\n effectiveStatus,\n hasActorEmail,\n hasEveryPermission,\n isExpired,\n isSameActor,\n isSameActorEmail,\n remainingAcks,\n requiredPermissionsOf,\n resolveRequiredAcks,\n} from './approvals/policy.js'\nexport type { ApprovalUseCaseType } from './approvals/use-cases.const.js'\nexport {\n APPROVAL_EMAIL_MAX_LENGTH,\n APPROVAL_EMAIL_PATTERN,\n APPROVAL_USE_CASE_TYPES,\n ENTERPRISE_ONBOARDING_METRIC_MAX,\n ENTERPRISE_ONBOARDING_NAME_MAX_LENGTH,\n ENTERPRISE_ONBOARDING_RESERVATION_MAX,\n ENTERPRISE_ONBOARDING_SFDC_ID_MAX_LENGTH,\n ENTERPRISE_ONBOARDING_TERM_MAX_MONTHS,\n ENTERPRISE_ONBOARDING_TERM_MIN_MONTHS,\n EXTEND_TRIAL_MAX_DAYS,\n EXTEND_TRIAL_MIN_DAYS,\n FEATURE_FLAG_MIN_ACKS_PROD,\n GENERATION_VERSION_VALUE_MAX_LENGTH,\n GENERATION_VERSIONS_MAX_GENERATIONS,\n isCalendarDay,\n ORG_LIMIT_TEXT_MAX_LENGTH,\n PERSONAL_ORGANIZATION_MAX_PER_REQUESTER,\n PERSONAL_ORGANIZATION_NAME_MAX_LENGTH,\n PERSONAL_ORGANIZATION_NAME_MIN_LENGTH,\n PLATFORM_ROLE_CHANGE_MAX_ROLES,\n PURGE_USERS_MAX_USERS,\n PURGE_USERS_REQUIRED_PERMISSIONS,\n USER_METADATA_EXPECTED_MAX_LENGTH,\n USER_METADATA_MAX_LENGTH,\n} from './approvals/use-cases.const.js'\n// The chart query of a dashboard tile (catalogue, language, result).\nexport {\n CHART_DAY_GRAIN_MAX_DAYS,\n CHART_FILTER_MAX_LENGTH,\n CHART_GRAIN_DEFAULT,\n CHART_GRAINS,\n CHART_ID_MAX_LENGTH,\n CHART_METRICS,\n CHART_OTHER_SERIES_KEY,\n CHART_QUERY_MAX_LENGTH,\n CHART_TOP_DEFAULT,\n CHART_TOP_MAX,\n CHART_UNKNOWN_SERIES_KEY,\n CHART_WINDOW_AMOUNT_MAX,\n CHART_WINDOW_DEFAULT,\n CHART_WINDOW_UNITS,\n type ChartDimensionSpec,\n type ChartGrain,\n type ChartMetricSpec,\n type ChartPoint,\n type ChartQueryCheck,\n ChartQueryError,\n type ChartQueryErrorKind,\n type ChartQueryOptions,\n type ChartResult,\n type ChartSeries,\n type ChartSpec,\n type ChartUnit,\n type ChartWindow,\n type ChartWindowUnit,\n chartBucketStart,\n chartToday,\n chartWindowRange,\n findChartDimension,\n findChartMetric,\n formatChartSpec,\n isChartQueryError,\n parseChartQuery,\n readChartSpec,\n validateChartSpec,\n} from './charts/index.js'\n// Dashboards - the tiles of a dashboard hold filters and never data. The\n// wire types and the placement rules are pure, so control-backend and\n// control-frontend run the same code.\nexport {\n DASHBOARD_TILE_DEFAULT_SIZE,\n dashboardDefinitionBytes,\n dashboardDefinitionFits,\n dashboardTileDefaultSize,\n emptyDashboardDefinition,\n isSafeDashboardLink,\n placeNewTile,\n placeNewTiles,\n tilesOverlap,\n toStoredDashboardDefinition,\n upgradeDashboardDefinition,\n} from './dashboards/definition.js'\nexport type {\n ALERT_SUBSCRIPTION_REPORT_TYPES,\n ALERT_SUBSCRIPTION_TYPES,\n AlertSubscriptionDto,\n AlertSubscriptionEntryDto,\n AlertSubscriptionWebhookAuth,\n CheckFailedReason,\n} from './dtos/AlertSubscription.dto.js'\n// DTOs - Values (constants)\nexport {\n FORBIDDEN_HOSTNAMES_FOR_WEBHOOK_ALERTS,\n HMAC_HEADER_POSITION,\n HMAC_SUPPORTED_ALGORITHM,\n} from './dtos/AlertSubscription.dto.js'\nexport type {\n AnnotationActor,\n AnnotationDto,\n AnnotationEntityKind,\n AnnotationKind,\n AnnotationLookupDto,\n AnnotationLookupEntryDto,\n AnnotationTagDto,\n EntityAnnotationsDto,\n} from './dtos/Annotation.dto.js'\nexport {\n ANNOTATION_BODY_MAX,\n ANNOTATION_ENTITY_KIND_LABELS,\n ANNOTATION_ENTITY_KINDS,\n ANNOTATION_ENTITY_MAX,\n ANNOTATION_KINDS,\n ANNOTATION_LOOKUP_MAX_ENTITIES,\n ANNOTATION_LOOKUP_TAGS_MAX,\n ANNOTATION_PAGE_SIZE_DEFAULT,\n ANNOTATION_PAGE_SIZE_MAX,\n ANNOTATION_SEARCH_MAX_LENGTH,\n ANNOTATION_TAG_NAME_MAX,\n normalizeTagName,\n} from './dtos/Annotation.dto.js'\n// Approvals - the wire types, and the rules that read them. Both are pure and\n// browser-safe, so control-backend, control-frontend and cloudbot run the same\n// code and cannot disagree.\nexport type {\n ApprovalAck,\n ApprovalActionMode,\n ApprovalActor,\n ApprovalEntityRef,\n ApprovalEntityType,\n ApprovalExecutionMode,\n ApprovalJobDto,\n ApprovalJobStatus,\n ApprovalM2mActor,\n ApprovalProgress,\n ApprovalSortField,\n ApprovalSortOrder,\n ApprovalStatusCountsDto,\n ApprovalSummaryField,\n ApprovalSummaryFieldKind,\n ApprovalSummaryValue,\n ApprovalUseCaseDto,\n} from './dtos/ApprovalJob.dto.js'\nexport {\n APPROVAL_ACKS_MAX,\n APPROVAL_ENTITY_TYPES,\n APPROVAL_JOB_STATUSES,\n APPROVAL_LIST_SUMMARY_VALUES_MAX,\n APPROVAL_LIVE_STATUSES,\n APPROVAL_PAGE_SIZE_DEFAULT,\n APPROVAL_PAGE_SIZE_MAX,\n APPROVAL_PAYLOAD_ORG_FIELD,\n APPROVAL_REASON_MAX_LENGTH,\n APPROVAL_RUN_STALE_MS,\n APPROVAL_SEARCH_MAX_LENGTH,\n APPROVAL_SORT_DEFAULT,\n APPROVAL_SORT_FIELDS,\n APPROVAL_SUMMARY_FIELD_KINDS,\n isRunStalled,\n progressFraction,\n} from './dtos/ApprovalJob.dto.js'\nexport type { AuditDto } from './dtos/Audit.dto.js'\nexport type { Auth0ResourceServerDto } from './dtos/Auth0ResourceServer.dto.js'\nexport type { BackupDto } from './dtos/Backup.dto.js'\nexport type { BackupScheduleDto } from './dtos/BackupSchedule.dto.js'\nexport type { ByomClientDto, ByomStatus } from './dtos/ByomClient.dto.js'\nexport type {\n ClusterCreationDefaultField,\n ClusterCreationDefaultKey,\n ClusterCreationDefaults,\n} from './dtos/ClusterCreationDefaults.dto.js'\nexport { CLUSTER_CREATION_DEFAULT_FIELDS } from './dtos/ClusterCreationDefaults.dto.js'\nexport type {\n ClusterDeferredSpecChange,\n DeferredSpecChangeType,\n} from './dtos/ClusterDeferredSpecChange.dto.js'\nexport type { ClusterIpWhitelistDto } from './dtos/ClusterIpWhitelist.dto.js'\nexport type {\n MoveClusterOwnerResult,\n MoveClusterWarnings,\n} from './dtos/ClusterOwnerMove.dto.js'\nexport type { ClusterPlanDto } from './dtos/ClusterPlan.dto.js'\nexport type { ClusterPlanTypeDto } from './dtos/ClusterPlanType.dto.js'\nexport type {\n ChangeClusterPlanTypeResult,\n ClusterModificationConfigRef,\n ClusterPlanTypeChangeRefusal,\n ClusterPlanTypeStateDto,\n} from './dtos/ClusterPlanTypeChange.dto.js'\nexport {\n CLUSTER_PLAN_TYPE_CHANGE_REFUSALS,\n clusterPlanTypeChangeRefusalOf,\n} from './dtos/ClusterPlanTypeChange.dto.js'\nexport type {\n ClusterSpecChange,\n ClusterSpecChangeActor,\n ClusterSpecHistory,\n} from './dtos/ClusterSpecHistory.dto.js'\nexport type {\n CommonClusterDto,\n ExternalIdpConfig,\n OptimizeFilteringConfig,\n OptimizeFilteringIncludeExclude,\n OptimizeFilteringPatch,\n SecretsFilterMode,\n} from './dtos/CommonCluster.dto.js'\nexport type { ConsoleClusterDto } from './dtos/ConsoleCluster.dto.js'\nexport type {\n ClusterActivityBucket,\n ClusterActivityTile,\n ClusterActivityV2Dto,\n ClusterActivityV2Response,\n ClusterByClientV2Dto,\n ClusterDatacenterOptionV2Dto,\n ClusterDetailV2Dto,\n ClusterFacetsV2Dto,\n ClusterListItemV2Dto,\n ClusterLiveStateV2Dto,\n ClusterLiveStateV2Entry,\n ClusterModificationState,\n ClusterParameterOptionV2Dto,\n ClusterParametersV2Dto,\n ClusterTtlFilter,\n ControlResolvedPermissions,\n ControlSessionDto,\n ControlSessionUser,\n CursorPage,\n CursorParams,\n ListClustersV2Params,\n ListOrganizationsV2Params,\n ListOrgMembersV2Params,\n OrgDetailV2Dto,\n OrgListItemV2Dto,\n OrgMemberV2Dto,\n OrgSummaryV2Dto,\n} from './dtos/ControlV2.dto.js'\nexport { CLUSTER_MODIFICATION_STATES } from './dtos/ControlV2.dto.js'\nexport type {\n DashboardActor,\n DashboardAnnotationsQuery,\n DashboardAnnotationsTile,\n DashboardAnnotationsTileV1,\n DashboardCatalogue,\n DashboardCatalogueChartMetric,\n DashboardCatalogueSearchField,\n DashboardChartQuery,\n DashboardChartRender,\n DashboardChartTile,\n DashboardChartTileV3,\n DashboardClusterCard,\n DashboardClusterDetailQuery,\n DashboardClusterDetailTile,\n DashboardClusterDetailTileV2,\n DashboardDefinition,\n DashboardDefinitionV1,\n DashboardDefinitionV2,\n DashboardDefinitionV3,\n DashboardDto,\n DashboardFleetQuery,\n DashboardFleetQueryTile,\n DashboardFleetQueryTileV1,\n DashboardHeadingTile,\n DashboardHeadingTileV2,\n DashboardLinkTile,\n DashboardLinkTileV2,\n DashboardListDto,\n DashboardNewTile,\n DashboardNoteTile,\n DashboardNoteTileV2,\n DashboardOrgCard,\n DashboardOrgDetailQuery,\n DashboardOrgDetailTile,\n DashboardOrgDetailTileV2,\n DashboardSummaryDto,\n DashboardTile,\n DashboardTileKind,\n DashboardTileLayout,\n DashboardTileV1,\n DashboardTileV2,\n DashboardTileV3,\n StoredDashboardDefinition,\n} from './dtos/Dashboard.dto.js'\nexport {\n DASHBOARD_CHART_RENDERS,\n DASHBOARD_CLUSTER_CARDS,\n DASHBOARD_DEFINITION_BYTES_MAX,\n DASHBOARD_DEFINITION_VERSION,\n DASHBOARD_ENTITY_ID_MAX,\n DASHBOARD_GRID_COLUMNS,\n DASHBOARD_GRID_ROWS_MAX,\n DASHBOARD_LINK_URL_MAX,\n DASHBOARD_NOTE_MAX,\n DASHBOARD_ORG_CARDS,\n DASHBOARD_PAGE_SIZE_DEFAULT,\n DASHBOARD_PAGE_SIZE_MAX,\n DASHBOARD_TILE_KINDS,\n DASHBOARD_TILE_ROWS_MAX,\n DASHBOARD_TILES_MAX,\n DASHBOARD_TITLE_MAX,\n} from './dtos/Dashboard.dto.js'\nexport type { EarlyAccessFeatureDto } from './dtos/EarlyAccessFeature.dto.js'\nexport type {\n CamundaWebApp,\n CamundaWebAppWithZeebe,\n ExternalClickwrapConfigDto,\n ExternalClusterDto,\n ExternalOrganizationDto,\n} from './dtos/ExternalWebapp.dto.js'\nexport type {\n CreateFeatureFlagDto,\n FeatureFlagAnswer,\n FeatureFlagDto,\n FeatureFlagListDto,\n UpdateFeatureFlagDto,\n} from './dtos/FeatureFlags.dto.js'\n// Functions\nexport {\n activeGenerations,\n compareGenerationNamesNewestFirst,\n type GenerationDto,\n type GenerationWithClusterCountDto,\n sortGenerationBySemverOfZeebe,\n type UpgradableGenerationsDto,\n} from './dtos/Generations.dto.js'\nexport type { ChangeGenerationVersionsResult } from './dtos/GenerationVersionsChange.dto.js'\n// Namespace (type-only - contains only interfaces)\nexport type { Hdp } from './dtos/Hdp.dto.js'\nexport type {\n K8sBackupConfig,\n K8sConfig,\n K8sConfigLegacyFormat,\n K8sContext,\n K8sContextDto,\n} from './dtos/K8sContext.dto.js'\nexport type {\n M2mTokenCountDto,\n M2mTokenCountsDto,\n} from './dtos/M2mTokenCount.dto.js'\nexport type { MetaDto } from './dtos/Meta.dto.js'\nexport type {\n AutoJoinAssignment,\n LicensingModelType,\n LlmProviderName,\n OrganizationDto,\n OrganizationMetadata,\n OrgOwner,\n OrgWithNameAndSalesPlan,\n} from './dtos/Organization.dto.js'\nexport {\n LICENSING_MODEL_DISPLAY_NAMES,\n VALID_LICENSING_MODELS,\n} from './dtos/Organization.dto.js'\nexport type { OrganizationMemberDto } from './dtos/OrganizationMember.dto.js'\nexport type { OrganizationToSalesPlanDto } from './dtos/OrganizationToSalesPlan.dto.js'\nexport type {\n ReleaseTrainSanityReport,\n SanityFix,\n SanityRuleInfo,\n SanitySeverity,\n SanityViolation,\n} from './dtos/ReleaseTrainSanity.dto.js'\nexport type { RestoreDto, RestoreState } from './dtos/Restore.dto.js'\n// SalesPlan.dto - Types\nexport type {\n ClusterLimits,\n ConsumptionDataItem,\n Limits,\n SalesPlanDto,\n SalesPlanMetadata,\n} from './dtos/SalesPlan.dto.js'\n// SalesPlan.dto - Values (constants and functions)\nexport {\n allClusterBasedLimits,\n allSalesPlanLimits,\n clusterPlanWhiteListIds,\n deprecatedLimit,\n generationWhiteListIds,\n isLimitKeyEnabled,\n isLimitOfferedOnStage,\n isUnlockedClusterPlansStage,\n MAX_CLUSTER_CLIENTS_DEFAULT,\n MAX_CLUSTER_CLIENTS_DEV,\n RETENTION_LIMIT_DEFAULT,\n RETENTION_LIMIT_MAXIMUM,\n RETENTION_LIMIT_MINIMUM,\n unusedClusterBasedLimits,\n unusedSalesPlanLimits,\n} from './dtos/SalesPlan.dto.js'\nexport type { SecureConnectivityDto } from './dtos/SecureConnectivity.dto.js'\nexport type { SignupDto } from './dtos/Signup.dto.js'\nexport type {\n StorybookConfig,\n StorybookConfigBackup,\n StorybookConfigChannel,\n StorybookConfigDatacenter,\n StorybookConfigGeneration,\n} from './dtos/StorybookConfig.dto.js'\nexport type { SystemAuditDto } from './dtos/SystemAudit.dto.js'\nexport type {\n UpgradeReadinessDto,\n UpgradeReadinessSource,\n UpgradeReadinessState,\n} from './dtos/UpgradeReadiness.dto.js'\n// UsageAlert.dto - Types\nexport type { UsageAlertDto } from './dtos/UsageAlert.dto.js'\n// UsageAlert.dto - Values (enum and constants)\nexport {\n UsageAlertInitValues,\n UsageAlertMetric,\n UsageAlertThresholdLimits,\n} from './dtos/UsageAlert.dto.js'\nexport type { UserMetaDataDto } from './dtos/UserMetaData.dto.js'\n// Lucene-style table search (parser + AST \u2192 SQL compiler + field registries).\nexport {\n type AndNode,\n CLUSTER_DEFAULT_SEARCH_FIELDS,\n CLUSTER_SEARCH_FIELDS,\n CLUSTER_TTL_SEARCH_FIELDS,\n type CompileContext,\n type CompiledQuery,\n clusterSearchFieldsForStage,\n compileQuery,\n type FieldBinding,\n findSearchField,\n idSetPredicate,\n isLuceneQueryError,\n joinIdSet,\n LuceneQueryError,\n likeArgument,\n type NotNode,\n ORG_DEFAULT_SEARCH_FIELDS,\n ORGANIZATION_SEARCH_FIELDS,\n type OrNode,\n parseLuceneQuery,\n type QueryNode,\n type RangeNode,\n type SearchFieldCapability,\n type SearchFieldSpec,\n type SearchFieldType,\n type SearchTermOperator,\n type SqlDialect,\n type TermNode,\n} from './search/index.js'\nexport { upgradeGateReason } from './utils/upgradeGateReason.utils.js'\n\n// ============================================================================\n// Enums (runtime values)\n// ============================================================================\n\nexport {\n AlertSubscriptionReportType,\n AlertSubscriptionType,\n} from './enums/AlertSubscription.enum.js'\nexport { AuditEntity, AuditEntityAttribute } from './enums/AuditEntity.enum.js'\nexport { AuditService } from './enums/AuditService.enum.js'\nexport { BackupStatus } from './enums/BackupStatus.enum.js'\nexport {\n ClusterBulkOperationStatus,\n ClusterBulkOperationType,\n} from './enums/ClusterBulkOperation.enum.js'\nexport { ClusterClientPermission } from './enums/ClusterClientPermissions.enum.js'\nexport { ClusterEncryptionKey } from './enums/ClusterEncryptionKey.enum.js'\nexport { ClusterStatus } from './enums/ClusterStatus.enum.js'\nexport { ConsoleAPIClientPermission } from './enums/ConsoleApiClientPermission.enum.js'\nexport { ErrorType } from './enums/ErrorType.enum.js'\nexport type {\n AssignableOrganizationRoleType,\n OrganizationRoleType,\n UnassignableOrganizationRoleType,\n} from './enums/OrganizationRole.enum.js'\nexport {\n AssignableOrganizationRole,\n LegacyHeldOrganizationRole,\n OrganizationRole,\n UnassignableOrganizationRole,\n} from './enums/OrganizationRole.enum.js'\nexport { SseEntity, SseType } from './enums/Sse.enum.js'\nexport {\n SystemAuditEntity,\n SystemAuditEntityAttribute,\n} from './enums/SystemAuditEntity.enum.js'\n\n// ============================================================================\n// Permissions - Namespaces (runtime values)\n// ============================================================================\n\nexport { AccountsPermissions } from './permissions/accounts.permissions.js'\nexport { AlertDistributorPermissions } from './permissions/alert-distributor.permissions.js'\nexport { AuditLoggerPermissions } from './permissions/auditlogger.permissions.js'\nexport {\n accountsUserFeaturesFromPermissions,\n consoleUserFeaturesFromPermissions,\n sessionHasPermission,\n sessionPermissionKeysFor,\n} from './permissions/combo.js'\nexport { ConsolePermissions } from './permissions/console.permissions.js'\nexport { NotificationPermissions } from './permissions/notification.permissions.js'\n// profile.permissions - Types\nexport type { OnboardConfig } from './permissions/profile.permissions.js'\n// profile.permissions - Values (constants)\n// NOTE: the `allowed` email lists (CLOUD_TEAM_EMAILS, SRE_TEAM_EMAILS, etc.)\n// intentionally live in the private `@camunda-cloud/shared-backend` package\n// instead of here, since this package is published publicly to npm.\nexport { PROFILES } from './permissions/profile.permissions.js'\nexport { expandRolesToPermissions } from './permissions/roleExpansion.utils.js'\n\n// ============================================================================\n// Types - Type-only exports (interfaces and type aliases)\n// ============================================================================\n\nexport type { AuditData } from './types/AuditData.type.js'\n// AutoSleep.type - Types\nexport type {\n ActivitySleepEligibilityOptions,\n SleepCronEligibilityOptions,\n} from './types/AutoSleep.type.js'\n// AutoSleep.type - Values (constants and functions)\nexport {\n INTERNAL_LOW_HARDWARE_PLAN_NAME,\n isActivitySleepEligible,\n isClusterTagEligibleForSleepCron,\n isSalesPlanEligibleForSleepCron,\n isSleepCronEligible,\n SLEEP_CRON_ELIGIBLE_TAGS,\n} from './types/AutoSleep.type.js'\nexport type {\n BotContext,\n BotOptions,\n BotRequest,\n GetUserDetailsResponse,\n ListRolesForUserResponse,\n UpdateUserRolesRequest,\n UpdateUserRolesResponse,\n UserContext,\n UserDetails,\n} from './types/Bot.types.js'\n// BulkOperation.type - Types\nexport type {\n BulkClusterDeletionContent,\n BulkClusterDeletionItem,\n BulkClusterGenerationUpdateItem,\n BulkClusterPlanTypeUpdateContent,\n BulkClusterPlanTypeUpdateItem,\n BulkClusterPlanUpdateContent,\n BulkClusterPlanUpdateItem,\n BulkGenerationUpdateContent,\n GenericBulkClusterOperationContent,\n GenericBulkOperationContent,\n GenericClusterBulkOperationItem,\n} from './types/BulkOperation.type.js'\n// BulkOperation.type - Functions (type guards)\nexport {\n isBulkClusterDeletionItem,\n isBulkClusterPlanTypeUpdateItem,\n isBulkClusterPlanUpdateItem,\n isIsBulkClusterGenerationUpdateIten,\n} from './types/BulkOperation.type.js'\n// C8ClusterComponentVersions.type - Types\nexport type {\n GenerationImageVersionsDto,\n ImmutableZeebeClusterVersionsDto,\n MutableZeebeClusterVersionsDto,\n ZeebeClusterVersionsDto,\n} from './types/C8ClusterComponentVersions.type.js'\n// C8ClusterComponentVersions.type - Values (constants)\nexport {\n AllThings,\n GENERATION_IMAGE_VERSION_KEYS,\n ImmutableThings,\n MutableThings,\n} from './types/C8ClusterComponentVersions.type.js'\n// CamundaClusterLabels.type - Types\nexport type {\n CamundaClusterStage,\n CamundaClusterStageLabel,\n ClusterLabels,\n} from './types/CamundaClusterLabels.type.js'\n// CamundaClusterLabels.type - Values (constants)\nexport {\n ALLOWED_CAMUNDA_LABELS,\n StageClusterLabels,\n} from './types/CamundaClusterLabels.type.js'\n// Chargebee.type - Types\nexport type { SubscriptionItem } from './types/Chargebee.type.js'\n// Chargebee.type - Values (enums)\nexport { ConsumptionData, ConsumptionDataType } from './types/Chargebee.type.js'\n// ClusterBulkOperation.type - Types\nexport type {\n ClusterBulkOperationAck,\n ClusterBulkOperationClusterDto,\n ClusterBulkOperationContent,\n ClusterBulkOperationDto,\n ClusterBulkOperationGenerationUpdateParameter,\n ClusterBulkOperationParameter,\n ClusterBulkOperationPlanTypeUpdateParameter,\n ClusterBulkOperationPlanUpdateParameter,\n ClusterBulkOperationPostContent,\n ClusterSleepWakeupParameter,\n} from './types/ClusterBulkOperation.type.js'\nexport type {\n ClusterModificationConfigDto,\n ClusterModificationDto,\n} from './types/ClusterModification.type.js'\n// ClusterPlanFields.type - Values (field spec and type guard)\nexport {\n CLUSTER_PLAN_FIELDS,\n type ClusterPlanFieldSpec,\n type ClusterPlanFieldTree,\n isClusterPlanFieldSpec,\n} from './types/ClusterPlanFields.type.js'\nexport type {\n ClusterPlanModificationAck,\n ClusterPlanModificationConfig,\n ClusterPlanModificationDto,\n} from './types/ClusterPlanModification.type.js'\n// ClusterPlanTypeAvailabilityClass.type - Values (enum and function)\nexport {\n ClusterPlanTypeAvailabilityClass,\n hasNoAvailabilityClass,\n sortByAvailabilityClasses,\n} from './types/ClusterPlanTypeAvailabilityClass.type.js'\n// ClusterPlanTypeCategory.type - Values (enum and functions)\nexport {\n ClusterPlanTypeCategory,\n hasAvailabilityClass,\n sortByClusterPlanTypeCategory,\n} from './types/ClusterPlanTypeCategory.type.js'\nexport type { ClusterPlanTypesToConfig } from './types/ClusterPlanTypesToConfig.type.js'\nexport type { ClusterPlanTypesToReserved } from './types/ClusterPlanTypesToReserved.type.js'\nexport type {\n ClusterTtlDeletionPayload,\n ClusterTtlDeletionResult,\n ClusterTtlDto,\n ClusterTtlDuration,\n ClusterTtlOption,\n ClusterTtlUnlimited,\n UpdateClusterTtlBody,\n} from './types/ClusterTtl.type.js'\nexport {\n CLUSTER_TTL_BACKFILL_REASON,\n CLUSTER_TTL_DURATION_MS,\n CLUSTER_TTL_DURATIONS,\n CLUSTER_TTL_FEATURE_FLAG,\n CLUSTER_TTL_OPTIONS,\n CLUSTER_TTL_UNLIMITED_LINK_MAX_LENGTH,\n CLUSTER_TTL_UNLIMITED_REASON_MAX_LENGTH,\n clusterTtlExpiresAt,\n DEFAULT_CLUSTER_TTL_OPTION,\n extendClusterTtl,\n isClusterTtlDuration,\n isClusterTtlOption,\n isClusterTtlStage,\n isHttpUrl,\n isPastClusterTtl,\n validateClusterTtlUnlimited,\n} from './types/ClusterTtl.type.js'\nexport type {\n ClusterUsageDataRequest,\n ClusterUsageMetadataDto,\n ClusterUsageMetricsAddRequestByMetricHeap,\n ClusterUsageMetricsData,\n ClusterUsageMetricsFilter,\n ClusterUsageOrgStartDate,\n} from './types/ClusterUsageMetrics.type.js'\n// Dashboard.types - Types\nexport type {\n DashboardConfig,\n DashboardMappingItem,\n DashboardMappingTarget,\n DashboardResultPrimitive,\n DashboardResultRow,\n EngineeringOperationsDashboardResponse,\n} from './types/Dashboard.types.js'\nexport type { EnterpriseIncludingValueMetrics } from './types/EnterpriseIncludingValueMetrics.type.js'\nexport type {\n HdpTenantUsageBreakdown,\n HdpTenantUsagePerClusterPoint,\n HdpTenantUsagePoint,\n} from './types/HdpTenantUsage.type.js'\n// hdp.types - Types (interfaces)\nexport type {\n AlertSubscription as HdpAlertSubscription,\n Audit as HdpAudit,\n ByomClient as HdpByomClient,\n Channel as HdpChannel,\n Cluster as HdpCluster,\n ClusterBackup as HdpClusterBackup,\n ClusterBackupSchedule as HdpClusterBackupSchedule,\n ClusterBulkOperation as HdpClusterBulkOperation,\n ClusterClient as HdpClusterClient,\n ClusterModification as HdpClusterModification,\n ClusterPlan as HdpClusterPlan,\n ClusterPlanType as HdpClusterPlanType,\n ConnectorSecret as HdpConnectorSecret,\n ConsoleApiClient as HdpConsoleApiClient,\n Datacenter as HdpDatacenter,\n Generation as HdpGeneration,\n HdpBackendChangeEvent,\n HdpClusterModificationConfig,\n HdpDisk,\n HdpEntity,\n HdpPrometheusDataCapacityDataPoint,\n Invite as HdpInvite,\n LlmSpend as HdpLlmSpend,\n Organization as HdpOrganization,\n SecureConnectivity as HdpSecureConnectivity,\n SystemAudit as HdpSystemAudit,\n TelemetryData as HdpTelemetryData,\n UsageAlert as HdpUsageAlert,\n User as HdpUser,\n UserLogin as HdpUserLogin,\n} from './types/hdp.types.js'\n// hdp.types - Values (enums)\nexport {\n AlertSubscriptionReportType as HdpAlertSubscriptionReportType,\n AlertSubscriptionType as HdpAlertSubscriptionType,\n HDP_DISKS,\n} from './types/hdp.types.js'\n// notification.type - Types\nexport type {\n GlobalNotification,\n NotificationDto,\n NotificationMeta,\n NotificationOptions,\n NotificationPermission,\n NotificationSource,\n NotificationState,\n NotificationType,\n OrgNotification,\n UserNotification,\n UserOrgNotification,\n} from './types/notification.type.js'\n// notification.type - Values (enums and constants)\nexport {\n NotificationPermissionValues,\n NotificationSourceEnum,\n NotificationStateEnum,\n NotificationTypeEnum,\n} from './types/notification.type.js'\n// OrganizationPermission.type - Types\nexport type {\n CreateReadUpdateDelete,\n OrganizationPermissions,\n} from './types/OrganizationPermission.type.js'\n// OrganizationPermission.type - Values (constants)\nexport {\n OrganizationPermissionsDescriptions,\n PermissionsForOrganizationRole,\n} from './types/OrganizationPermission.type.js'\nexport {\n getPreprodClusterTtlHours,\n isPastPreprodClusterTtl,\n isPreprodClusterTtlStage,\n parseNumericLimit,\n} from './types/PreprodClusterTtl.type.js'\n// Roles.js - Types\nexport type {\n AccountRoles,\n ConsoleRoles,\n ModelerRoles,\n Roles,\n} from './types/Roles.js'\n// Roles.js - Values (constants)\nexport { SAFE_ROLES } from './types/Roles.js'\n// SalesPlanType.type - Types\nexport type {\n DisplayedSalesPlan,\n RevisitedSalesPlanName,\n} from './types/SalesPlanType.type.js'\n// SalesPlanType.type - Values (enums and functions)\nexport {\n AnalyticsSalesPlanType,\n getAnalyticsSalesPlanFromOrgSalesPlan,\n getDisplayedSalesPlan,\n getRevisitedSalesPlanName,\n OPTIMIZE_DISABLED_PLAN_TYPES,\n SalesPlanType,\n} from './types/SalesPlanType.type.js'\n// SpamDetection.type - Types\nexport type { SpamDetectionPatterns } from './types/SpamDetection.type.js'\n// SpamDetection.type - Values (constants)\nexport { TEERGRUBE_PATTERNS } from './types/SpamDetection.type.js'\nexport type {\n AlertSubscriptionSseEvent,\n BackupSseEvent,\n ClusterClientSseEvent,\n ClusterSseEvent,\n ConnectorSecretsSseEvent,\n ConsoleApiClientSseEvent,\n ConsoleSseEvent,\n MonitoringSseEvent,\n SecureConnectivitySseEvent,\n SseClusterPayload,\n SseMonitoringPayload,\n SseSecureConnectivityPayload,\n} from './types/SseEvent.type.js'\n// Namespace (type-only - contains only interfaces)\nexport type { AccountsStats } from './types/Stats.types.js'\n// Survey.type - Types\nexport type { Persona, SurveyDto } from './types/Survey.type.js'\n// Survey.type - Values (enum)\nexport { FeedbackType } from './types/Survey.type.js'\n// SuspendStrategy.type - Types\nexport type {\n GetSuspendStrategyOptions,\n SuspendStrategy,\n} from './types/SuspendStrategy.type.js'\n// SuspendStrategy.type - Values (function)\nexport { getSuspendStrategy } from './types/SuspendStrategy.type.js'\nexport type { SystemAuditData } from './types/SystemAuditData.type.js'\n\n// Namespace (runtime value)\nexport { Telemetry } from './types/Telemetry.type.js'\n\n// TrialManagement.types - Types\nexport type {\n ExtensionListItem,\n ExtensionListResponse,\n OrgTrialDetail,\n TrialExtensionSource,\n TrialManagementStats,\n} from './types/TrialManagement.types.js'\n\n// User.type - Types\nexport type {\n AccountsData,\n AppMetadata,\n BasicUser,\n BlockedFor,\n Identity,\n OrgMembership,\n User,\n UserMetadata,\n UserRequest,\n} from './types/User.type.js'\n\n// User.type - Values (enum)\nexport { UserMetadataEvent } from './types/User.type.js'\n\nexport type {\n UniqueTaskUser,\n ValueMetrics,\n ValueMetricsPerYearMonth,\n} from './types/ValueMetrics.type.js'\n\n// ============================================================================\n// Utils - Classes (runtime values)\n// ============================================================================\n\nexport {\n CLOUD_PROVIDER_ORDER,\n getCloudProviderLabel,\n getCloudProviderRank,\n} from './utils/cloudProvider.utils.js'\nexport {\n type ConnectivityStatus,\n deriveConnectivityMessage,\n deriveConnectivityStatus,\n} from './utils/connectivityStatus.utils.js'\nexport type {\n CronScheduleValidationFailure,\n CronScheduleValidationResult,\n CronScheduleValidationSuccess,\n} from './utils/cronSchedule.utils.js'\nexport {\n BACKUP_SCHEDULE_MIN_INTERVAL_MINUTES,\n validateCronSchedule,\n} from './utils/cronSchedule.utils.js'\nexport {\n canonicalPlan,\n canonicalPlanKey,\n} from './utils/elasticsearchPlanPath.utils.js'\nexport {\n deriveEncryptionStatus,\n type EncryptionStatus,\n isEncryptionStatus,\n} from './utils/encryptionStatus.utils.js'\n// enterprise-connection.utils - Types\nexport type { EnterpriseConnectionOrganizationAssignment } from './utils/enterprise-connection.utils.js'\n// enterprise-connection.utils - Values (functions)\nexport {\n enterpriseConnectionMetadataToOrganizationAssignments,\n organizationAssignmentsToEnterpriseConnectionMetadata,\n} from './utils/enterprise-connection.utils.js'\nexport {\n addMonthsClamped,\n DEFAULT_ENTERPRISE_DURATION_IN_MONTHS,\n diffInWholeMonths,\n type EnterpriseTermWindow,\n getCurrentEnterpriseTerm,\n peakWithinTerm,\n toUtcDayStartMs,\n} from './utils/enterpriseTerm.utils.js'\nexport type { EnvVarEntry } from './utils/envVars.js'\nexport { parseEnvVars, serializeEnvVars } from './utils/envVars.js'\nexport {\n deriveFailoverKeyPolicyPrincipals,\n type FailoverKeyPolicyPrincipals,\n} from './utils/failoverKeyPolicy.utils.js'\nexport type {\n JvmOptionsModificationKey,\n ParsedJvmOption,\n} from './utils/jvmOptions.js'\nexport {\n addsEnvVarsOverrideValue,\n isJvmOptionsModificationKey,\n isUnderJvmSpec,\n JVM_OPTION_MAX_LENGTH,\n JVM_OPTION_PATTERN,\n JVM_OPTIONS_MAX_ITEMS,\n JVM_OPTIONS_MODIFICATION_KEYS,\n JVM_OPTIONS_TARGETS,\n joinJvmOptions,\n parseJvmOption,\n requiresEnvVarsOverride,\n splitJvmOptions,\n validateJvmOptions,\n validateJvmOptionsValue,\n} from './utils/jvmOptions.js'\nexport {\n KMS_ARN,\n KMS_MRK_ARN,\n type KmsArnValidationError,\n type ParsedKmsArn,\n parseKmsArn,\n validateKmsArnForRegion,\n} from './utils/kmsArn.utils.js'\nexport { validateLabels } from './utils/labelValidator.utils.js'\nexport { ObjectMergeUtils } from './utils/objectMerge.utils.js'\nexport {\n computeOrgStartDate,\n type OrgStartDateInput,\n} from './utils/orgStartDate.utils.js'\nexport {\n getPermissionsByRoles,\n getUserPermissionsForOrg,\n} from './utils/orgs/OrgHelper.js'\n\n// PasswordPolicy - Types\nexport type {\n PasswordPolicyRequest,\n PasswordPolicyResult,\n} from './utils/PasswordPolicy.js'\n\n// PasswordPolicy - Values (constants and function)\nexport {\n MAXLENGTH as PASSWORD_POLICY_MAXLENGTH,\n MINLENGTH as PASSWORD_POLICY_MINLENGTH,\n passwordPolicyCheck,\n} from './utils/PasswordPolicy.js'\nexport { isQaUserEmail, qaUserEmail } from './utils/qa-user.utils.js'\nexport {\n deriveSecondaryStorageStatus,\n type SecondaryStorageStatus,\n} from './utils/secondaryStorageStatus.utils.js'\nexport {\n allSettledResultsCounts,\n getFulfilledPromises,\n getRejectedPromises,\n getSettledSummary,\n} from './utils/settledPromises.util.js'\nexport {\n isValidAwsArn,\n isValidCIDR,\n isValidCIDRList,\n isValidClientName,\n isValidHostname,\n isValidPrivateLinkRegion,\n normalizeCIDRList,\n} from './utils/string-validation.utils.js'\nexport {\n extractCamundaUserEmail,\n guessName,\n isCamundaUserId,\n} from './utils/user.utils.js'\n\n// versionCheck.utils - Values (enum and function)\nexport {\n checkVersion,\n generationImageErrorMessage,\n isAppIntegrationsVersionSupported,\n isGenerationResumable,\n isSecretsFilterModeConfigurable,\n isValidGenerationImage,\n normalizeGenerationVersion,\n stripSecfixPostfix,\n VersionCheckOperator,\n} from './utils/versionCheck.utils.js'\n\n// ============================================================================\n// Config - Configuration files and types\n// ============================================================================\n\nexport { default as CAMUNDI_PERMISSION_RULES } from './config/camundi-permission-rules.js'\nexport type { CamundiPermissionRules } from './config/camundi-permission-rules.types.js'\n\nexport {\n augmentCamundiPermissions,\n getApplicableRolesForEmployee,\n HIBOB_CACHE_KEY,\n HIBOB_CACHE_NAMESPACE,\n isManager,\n} from './utils/camundiPermissionAugmenter.utils.js'\n"],
|
|
5
|
+
"mappings": "AAUA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,KAAK,MAAM,QAAQ,QAAQ,YAAY;AAEhD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,4BAA4B;AACrC,SAAS,iDAAiD;AAC1D,SAAS,6CAA6C;AAKtD,SAAS,wCAAwC;AACjD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAcP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAeP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAMP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAMA;AAAA,EASA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAIP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAUP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAWP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAuBP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAWP,SAAS,uCAAuC;AAkBhD;AAAA,EACE;AAAA,EACA;AAAA,OACK;AA4CP,SAAS,mCAAmC;AA8C5C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAiBP;AAAA,EACE;AAAA,EACA;AAAA,EAGA;AAAA,OAEK;AAyBP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAoBP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAmBP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EAEA;AAAA,OASK;AACP,SAAS,yBAAyB;AAMlC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,aAAa,4BAA4B;AAClD,SAAS,oBAAoB;AAC7B,SAAS,oBAAoB;AAC7B;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,+BAA+B;AACxC,SAAS,4BAA4B;AACrC,SAAS,qBAAqB;AAC9B,SAAS,kCAAkC;AAC3C,SAAS,iBAAiB;AAM1B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,WAAW,eAAe;AACnC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAMP,SAAS,2BAA2B;AACpC,SAAS,mCAAmC;AAC5C,SAAS,8BAA8B;AACvC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,0BAA0B;AACnC,SAAS,+BAA+B;AAOxC,SAAS,gBAAgB;AACzB,SAAS,gCAAgC;AAazC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AA2BP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AASP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAQP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAIP,SAAS,iBAAiB,2BAA2B;AAmBrD;AAAA,EACE;AAAA,EAGA;AAAA,OACK;AAOP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAYP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AA0DP;AAAA,EACiC,+BAA/BA;AAAA,EACyB,yBAAzBC;AAAA,EACA;AAAA,OACK;AAgBP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAOP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AASP,SAAS,kBAAkB;AAO3B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAIP,SAAS,0BAA0B;AAoBnC,SAAS,oBAAoB;AAO7B,SAAS,0BAA0B;AAInC,SAAS,iBAAiB;AAyB1B,SAAS,yBAAyB;AAYlC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EAEE;AAAA,EACA;AAAA,OACK;AAMP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EAEA;AAAA,OACK;AAIP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,cAAc,wBAAwB;AAC/C;AAAA,EACE;AAAA,OAEK;AAKP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,OACK;AACP,SAAS,sBAAsB;AAC/B,SAAS,wBAAwB;AACjC;AAAA,EACE;AAAA,OAEK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AASP;AAAA,EACe;AAAA,EACA;AAAA,EACb;AAAA,OACK;AACP,SAAS,eAAe,mBAAmB;AAC3C;AAAA,EACE;AAAA,OAEK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAMP,SAAoB,WAAXC,gBAA2C;AAGpD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;",
|
|
6
6
|
"names": ["AlertSubscriptionReportType", "AlertSubscriptionType", "default"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
export declare namespace ConsoleSM {
|
|
2
|
-
const CONFIG_UNSET = "unset";
|
|
3
|
-
type Status = 'healthy' | 'unhealthy' | 'unknown';
|
|
4
|
-
type AppType = 'zeebe-broker' | 'zeebe-gateway' | 'operate' | 'tasklist' | 'optimize' | 'modeler' | 'console' | 'identity' | 'connectors' | 'orchestration' | 'orchestrationIdentity' | 'unknown';
|
|
5
|
-
function NameByAppType(appType: AppType): string;
|
|
6
|
-
type ClusterType = 'automation' | 'management';
|
|
7
|
-
interface App {
|
|
8
|
-
type: AppType;
|
|
9
|
-
id: string;
|
|
10
|
-
status: Status;
|
|
11
|
-
url: string;
|
|
12
|
-
urls?: {
|
|
13
|
-
grpc: string;
|
|
14
|
-
http: string;
|
|
15
|
-
};
|
|
16
|
-
generation: string;
|
|
17
|
-
readiness?: string;
|
|
18
|
-
metrics?: string;
|
|
19
|
-
}
|
|
20
|
-
interface CamundaLicense {
|
|
21
|
-
validLicense: boolean;
|
|
22
|
-
licenseType: string;
|
|
23
|
-
isCommercial?: boolean;
|
|
24
|
-
expiresAt?: string;
|
|
25
|
-
}
|
|
26
|
-
interface DiscoveredCluster {
|
|
27
|
-
license: CamundaLicense;
|
|
28
|
-
clusterId: string;
|
|
29
|
-
clusterName: string;
|
|
30
|
-
version: string;
|
|
31
|
-
properties?: Record<string, string>;
|
|
32
|
-
}
|
|
33
|
-
interface Cluster {
|
|
34
|
-
/**
|
|
35
|
-
* Unique identifier of the cluster
|
|
36
|
-
*/
|
|
37
|
-
uuid: string;
|
|
38
|
-
/**
|
|
39
|
-
* Name of the cluster
|
|
40
|
-
*/
|
|
41
|
-
name: string;
|
|
42
|
-
/**
|
|
43
|
-
* Tags of the cluster, example: dev, stage, prod
|
|
44
|
-
*/
|
|
45
|
-
tags?: string[];
|
|
46
|
-
/**
|
|
47
|
-
* Custom properties of the cluster
|
|
48
|
-
*/
|
|
49
|
-
customProperties?: Array<{
|
|
50
|
-
description?: string;
|
|
51
|
-
links?: Array<{
|
|
52
|
-
name?: string;
|
|
53
|
-
url?: string;
|
|
54
|
-
}>;
|
|
55
|
-
}>;
|
|
56
|
-
/**
|
|
57
|
-
* Namespace the cluster is running in.
|
|
58
|
-
*/
|
|
59
|
-
namespace: string;
|
|
60
|
-
/**
|
|
61
|
-
* Indicates if a cluster is healthy or not
|
|
62
|
-
*/
|
|
63
|
-
status: Status;
|
|
64
|
-
/**
|
|
65
|
-
* This is the current version of the running cluster
|
|
66
|
-
*/
|
|
67
|
-
generation: string;
|
|
68
|
-
/**
|
|
69
|
-
* We're distinguishing between automation and management clusters. Management clusters include applications that act globally in an installed context, like Console or Modeler. Automation clusters are the Zeebe clusters including applications like Operate, Tasklist and Optimize.
|
|
70
|
-
*/
|
|
71
|
-
type: ClusterType;
|
|
72
|
-
/**
|
|
73
|
-
* The list of applications running in the cluster
|
|
74
|
-
*/
|
|
75
|
-
apps: App[];
|
|
76
|
-
/**
|
|
77
|
-
* audit events of the cluster
|
|
78
|
-
*/
|
|
79
|
-
audit?: Array<{
|
|
80
|
-
ts: number;
|
|
81
|
-
}>;
|
|
82
|
-
/**
|
|
83
|
-
* Custom properties added by the discovery process.
|
|
84
|
-
*/
|
|
85
|
-
discoveredClusterProperties?: Record<string, string>;
|
|
86
|
-
/**
|
|
87
|
-
* The cluster license information
|
|
88
|
-
*/
|
|
89
|
-
license?: CamundaLicense;
|
|
90
|
-
}
|
|
91
|
-
type TelemetryState = 'disabled' | 'online' | 'download';
|
|
92
|
-
type LicanseState = 'disabled' | 'valid' | 'invalid';
|
|
93
|
-
interface AppConfig {
|
|
94
|
-
auth: {
|
|
95
|
-
clientId: string;
|
|
96
|
-
audience: string;
|
|
97
|
-
issuer: string;
|
|
98
|
-
type: string;
|
|
99
|
-
disabled: boolean;
|
|
100
|
-
redirectTrailingSlash: boolean;
|
|
101
|
-
redirectUrl: string;
|
|
102
|
-
resource?: string;
|
|
103
|
-
};
|
|
104
|
-
customerContext: {
|
|
105
|
-
customerId: string;
|
|
106
|
-
installationId: string;
|
|
107
|
-
telemetry: TelemetryState;
|
|
108
|
-
license: LicanseState;
|
|
109
|
-
isCommercial: boolean;
|
|
110
|
-
expiresAt: number | undefined;
|
|
111
|
-
discoveryModeEnabled: boolean;
|
|
112
|
-
};
|
|
113
|
-
fatalErrors: FatalError[];
|
|
114
|
-
}
|
|
115
|
-
interface UsageMetrics {
|
|
116
|
-
total: number;
|
|
117
|
-
}
|
|
118
|
-
interface UsageMetricsInstances extends UsageMetrics {
|
|
119
|
-
}
|
|
120
|
-
interface UsageMetricsTaskUsers extends UsageMetrics {
|
|
121
|
-
assignees: string[];
|
|
122
|
-
}
|
|
123
|
-
interface UsageMetricsForCluster {
|
|
124
|
-
id: string;
|
|
125
|
-
processInstances: UsageMetricsInstances;
|
|
126
|
-
decisionInstances: UsageMetricsInstances;
|
|
127
|
-
taskUsers: UsageMetricsTaskUsers;
|
|
128
|
-
activeTenants?: UsageMetricsInstances;
|
|
129
|
-
}
|
|
130
|
-
interface ConfigParams {
|
|
131
|
-
csm_context_path: string;
|
|
132
|
-
}
|
|
133
|
-
interface SendEventOptions<T> {
|
|
134
|
-
type: 'status' | 'keepalive' | 'cluster-update';
|
|
135
|
-
payload: T;
|
|
136
|
-
}
|
|
137
|
-
interface SseKeepAlivePayload {
|
|
138
|
-
keepAlive: boolean;
|
|
139
|
-
}
|
|
140
|
-
type FatalErrorType = 'configmap-not-found' | 'api-token-unauthorized' | 'api-token-unset' | 'customer-context-unset' | 'automation-clusters-unset' | 'management-cluster-unset' | 'jwks-not-reachable' | 'backend-error' | 'auth-config-incomplete' | 'mobx-error';
|
|
141
|
-
const FataErrorDescriptions: Record<FatalErrorType, {
|
|
142
|
-
message: string;
|
|
143
|
-
fatal: boolean;
|
|
144
|
-
}>;
|
|
145
|
-
interface FatalError {
|
|
146
|
-
type: FatalErrorType;
|
|
147
|
-
message: string;
|
|
148
|
-
ts: number;
|
|
149
|
-
fatal: boolean;
|
|
150
|
-
count: number;
|
|
151
|
-
}
|
|
152
|
-
interface DebugData {
|
|
153
|
-
configmap: string;
|
|
154
|
-
configmapOverride?: string;
|
|
155
|
-
envvars: Array<{
|
|
156
|
-
key: string;
|
|
157
|
-
value: string;
|
|
158
|
-
}>;
|
|
159
|
-
}
|
|
160
|
-
namespace Health {
|
|
161
|
-
export enum EndpointSource {
|
|
162
|
-
CONFIG_OR_ENV = "Extra Values or Environment Variables",
|
|
163
|
-
CONFIGMAP = "ConfigMap"
|
|
164
|
-
}
|
|
165
|
-
export enum TEAM {
|
|
166
|
-
UNSET = "U",
|
|
167
|
-
CONSOLE = "C",
|
|
168
|
-
DISTRIBUTION = "D"
|
|
169
|
-
}
|
|
170
|
-
interface BaseContext {
|
|
171
|
-
type: 'endpoint' | 'configuration';
|
|
172
|
-
team: TEAM;
|
|
173
|
-
}
|
|
174
|
-
export interface Endpoint extends BaseContext {
|
|
175
|
-
type: 'endpoint';
|
|
176
|
-
name: string;
|
|
177
|
-
url: string;
|
|
178
|
-
source: EndpointSource;
|
|
179
|
-
method?: 'post';
|
|
180
|
-
ignore?: boolean;
|
|
181
|
-
}
|
|
182
|
-
export interface Configuration extends BaseContext {
|
|
183
|
-
type: 'configuration';
|
|
184
|
-
source: string;
|
|
185
|
-
}
|
|
186
|
-
export type Context = Endpoint | Configuration;
|
|
187
|
-
export interface Result {
|
|
188
|
-
problemIdentitfied: boolean;
|
|
189
|
-
message: string;
|
|
190
|
-
context: Context;
|
|
191
|
-
ts?: number;
|
|
192
|
-
}
|
|
193
|
-
export interface HealthCheck {
|
|
194
|
-
ts: number;
|
|
195
|
-
results: Result[];
|
|
196
|
-
}
|
|
197
|
-
export {};
|
|
198
|
-
}
|
|
199
|
-
}
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
var ConsoleSM;
|
|
2
|
-
((ConsoleSM2) => {
|
|
3
|
-
ConsoleSM2.CONFIG_UNSET = "unset";
|
|
4
|
-
function NameByAppType(appType) {
|
|
5
|
-
switch (appType) {
|
|
6
|
-
case "zeebe-broker":
|
|
7
|
-
return "Zeebe";
|
|
8
|
-
case "zeebe-gateway":
|
|
9
|
-
return "Zeebe Gateway";
|
|
10
|
-
case "operate":
|
|
11
|
-
return "Operate";
|
|
12
|
-
case "tasklist":
|
|
13
|
-
return "Tasklist";
|
|
14
|
-
case "optimize":
|
|
15
|
-
return "Optimize";
|
|
16
|
-
case "modeler":
|
|
17
|
-
return "Modeler";
|
|
18
|
-
case "console":
|
|
19
|
-
return "Console";
|
|
20
|
-
case "identity":
|
|
21
|
-
return "Identity";
|
|
22
|
-
case "connectors":
|
|
23
|
-
return "Connectors";
|
|
24
|
-
case "orchestration":
|
|
25
|
-
return "Orchestration";
|
|
26
|
-
case "orchestrationIdentity":
|
|
27
|
-
return "Identity";
|
|
28
|
-
default:
|
|
29
|
-
return "Unknown";
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
ConsoleSM2.NameByAppType = NameByAppType;
|
|
33
|
-
ConsoleSM2.FataErrorDescriptions = {
|
|
34
|
-
"configmap-not-found": {
|
|
35
|
-
message: "Failed to read file with configmap data",
|
|
36
|
-
fatal: true
|
|
37
|
-
},
|
|
38
|
-
"api-token-unset": {
|
|
39
|
-
message: "Telemetry API token not set",
|
|
40
|
-
fatal: false
|
|
41
|
-
},
|
|
42
|
-
"api-token-unauthorized": {
|
|
43
|
-
message: "Telemetry API token unauthorized",
|
|
44
|
-
fatal: false
|
|
45
|
-
},
|
|
46
|
-
"customer-context-unset": {
|
|
47
|
-
message: "Customer Id or Installation Id not set",
|
|
48
|
-
fatal: false
|
|
49
|
-
},
|
|
50
|
-
"automation-clusters-unset": {
|
|
51
|
-
message: "No automation clusters found",
|
|
52
|
-
fatal: false
|
|
53
|
-
},
|
|
54
|
-
"management-cluster-unset": {
|
|
55
|
-
message: "No management cluster found",
|
|
56
|
-
fatal: false
|
|
57
|
-
},
|
|
58
|
-
"jwks-not-reachable": {
|
|
59
|
-
message: "JWKS for authentication is not reachable",
|
|
60
|
-
fatal: true
|
|
61
|
-
},
|
|
62
|
-
"backend-error": {
|
|
63
|
-
message: "Backend error",
|
|
64
|
-
fatal: true
|
|
65
|
-
},
|
|
66
|
-
"auth-config-incomplete": {
|
|
67
|
-
message: "Auth Config incomplete. Please make sure to set all required values.",
|
|
68
|
-
fatal: true
|
|
69
|
-
},
|
|
70
|
-
"mobx-error": {
|
|
71
|
-
message: "Something went wrong with object assignments.",
|
|
72
|
-
fatal: false
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
let Health;
|
|
76
|
-
((Health2) => {
|
|
77
|
-
let EndpointSource;
|
|
78
|
-
((EndpointSource2) => {
|
|
79
|
-
EndpointSource2["CONFIG_OR_ENV"] = "Extra Values or Environment Variables";
|
|
80
|
-
EndpointSource2["CONFIGMAP"] = "ConfigMap";
|
|
81
|
-
})(EndpointSource = Health2.EndpointSource || (Health2.EndpointSource = {}));
|
|
82
|
-
let TEAM;
|
|
83
|
-
((TEAM2) => {
|
|
84
|
-
TEAM2["UNSET"] = "U";
|
|
85
|
-
TEAM2["CONSOLE"] = "C";
|
|
86
|
-
TEAM2["DISTRIBUTION"] = "D";
|
|
87
|
-
})(TEAM = Health2.TEAM || (Health2.TEAM = {}));
|
|
88
|
-
})(Health = ConsoleSM2.Health || (ConsoleSM2.Health = {}));
|
|
89
|
-
})(ConsoleSM || (ConsoleSM = {}));
|
|
90
|
-
export {
|
|
91
|
-
ConsoleSM
|
|
92
|
-
};
|
|
93
|
-
//# sourceMappingURL=ConsoleSelfManaged.type.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/types/ConsoleSelfManaged.type.ts"],
|
|
4
|
-
"sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nexport namespace ConsoleSM {\n export const CONFIG_UNSET = 'unset'\n export type Status = 'healthy' | 'unhealthy' | 'unknown'\n\n export type AppType =\n | 'zeebe-broker'\n | 'zeebe-gateway'\n | 'operate'\n | 'tasklist'\n | 'optimize'\n | 'modeler'\n | 'console'\n | 'identity'\n | 'connectors'\n | 'orchestration'\n | 'orchestrationIdentity'\n | 'unknown'\n\n export function NameByAppType(appType: AppType): string {\n switch (appType) {\n case 'zeebe-broker':\n return 'Zeebe'\n case 'zeebe-gateway':\n return 'Zeebe Gateway'\n case 'operate':\n return 'Operate'\n case 'tasklist':\n return 'Tasklist'\n case 'optimize':\n return 'Optimize'\n case 'modeler':\n return 'Modeler'\n case 'console':\n return 'Console'\n case 'identity':\n return 'Identity'\n case 'connectors':\n return 'Connectors'\n case 'orchestration':\n return 'Orchestration'\n case 'orchestrationIdentity':\n return 'Identity'\n default:\n return 'Unknown'\n }\n }\n\n export type ClusterType = 'automation' | 'management'\n\n export interface App {\n type: AppType\n id: string\n status: Status\n url: string\n urls?: {\n grpc: string\n http: string\n }\n generation: string\n readiness?: string\n metrics?: string\n }\n\n export interface CamundaLicense {\n validLicense: boolean\n licenseType: string\n isCommercial?: boolean\n expiresAt?: string\n }\n\n export interface DiscoveredCluster {\n license: CamundaLicense\n clusterId: string\n clusterName: string\n version: string\n properties?: Record<string, string>\n }\n\n export interface Cluster {\n /**\n * Unique identifier of the cluster\n */\n uuid: string\n /**\n * Name of the cluster\n */\n name: string\n /**\n * Tags of the cluster, example: dev, stage, prod\n */\n tags?: string[]\n /**\n * Custom properties of the cluster\n */\n customProperties?: Array<{\n description?: string\n links?: Array<{\n name?: string\n url?: string\n }>\n }>\n /**\n * Namespace the cluster is running in.\n */\n namespace: string\n /**\n * Indicates if a cluster is healthy or not\n */\n status: Status\n /**\n * This is the current version of the running cluster\n */\n generation: string\n /**\n * We're distinguishing between automation and management clusters. Management clusters include applications that act globally in an installed context, like Console or Modeler. Automation clusters are the Zeebe clusters including applications like Operate, Tasklist and Optimize.\n */\n type: ClusterType\n /**\n * The list of applications running in the cluster\n */\n apps: App[]\n /**\n * audit events of the cluster\n */\n audit?: Array<{\n ts: number\n }>\n /**\n * Custom properties added by the discovery process.\n */\n discoveredClusterProperties?: Record<string, string>\n /**\n * The cluster license information\n */\n license?: CamundaLicense\n }\n\n export type TelemetryState = 'disabled' | 'online' | 'download'\n export type LicanseState = 'disabled' | 'valid' | 'invalid'\n\n export interface AppConfig {\n auth: {\n clientId: string\n audience: string\n issuer: string\n type: string\n disabled: boolean\n redirectTrailingSlash: boolean\n redirectUrl: string\n resource?: string\n }\n customerContext: {\n customerId: string\n installationId: string\n telemetry: TelemetryState\n license: LicanseState\n isCommercial: boolean\n expiresAt: number | undefined\n discoveryModeEnabled: boolean\n }\n fatalErrors: FatalError[]\n }\n\n export interface UsageMetrics {\n total: number\n }\n\n export interface UsageMetricsInstances extends UsageMetrics {}\n\n export interface UsageMetricsTaskUsers extends UsageMetrics {\n assignees: string[]\n }\n\n export interface UsageMetricsForCluster {\n id: string\n processInstances: UsageMetricsInstances\n decisionInstances: UsageMetricsInstances\n taskUsers: UsageMetricsTaskUsers\n activeTenants?: UsageMetricsInstances\n }\n\n // CONFIG PARAMS\n\n export interface ConfigParams {\n csm_context_path: string\n }\n\n // SSE\n\n export interface SendEventOptions<T> {\n type: 'status' | 'keepalive' | 'cluster-update'\n payload: T\n }\n\n export interface SseKeepAlivePayload {\n keepAlive: boolean\n }\n\n // Fatal Errors\n\n export type FatalErrorType =\n | 'configmap-not-found'\n | 'api-token-unauthorized'\n | 'api-token-unset'\n | 'customer-context-unset'\n | 'automation-clusters-unset'\n | 'management-cluster-unset'\n | 'jwks-not-reachable'\n | 'backend-error'\n | 'auth-config-incomplete'\n | 'mobx-error'\n\n export const FataErrorDescriptions: Record<\n FatalErrorType,\n { message: string; fatal: boolean }\n > = {\n 'configmap-not-found': {\n message: 'Failed to read file with configmap data',\n fatal: true,\n },\n 'api-token-unset': {\n message: 'Telemetry API token not set',\n fatal: false,\n },\n 'api-token-unauthorized': {\n message: 'Telemetry API token unauthorized',\n fatal: false,\n },\n 'customer-context-unset': {\n message: 'Customer Id or Installation Id not set',\n fatal: false,\n },\n 'automation-clusters-unset': {\n message: 'No automation clusters found',\n fatal: false,\n },\n 'management-cluster-unset': {\n message: 'No management cluster found',\n fatal: false,\n },\n 'jwks-not-reachable': {\n message: 'JWKS for authentication is not reachable',\n fatal: true,\n },\n 'backend-error': {\n message: 'Backend error',\n fatal: true,\n },\n 'auth-config-incomplete': {\n message:\n 'Auth Config incomplete. Please make sure to set all required values.',\n fatal: true,\n },\n 'mobx-error': {\n message: 'Something went wrong with object assignments.',\n fatal: false,\n },\n }\n\n export interface FatalError {\n type: FatalErrorType\n message: string\n ts: number\n fatal: boolean\n count: number\n }\n\n // DEBUG\n\n export interface DebugData {\n configmap: string\n configmapOverride?: string\n envvars: Array<{ key: string; value: string }>\n }\n\n // ///////////////////////////////////////////////////////////////////////////7\n // HEALTH CHECK\n\n export namespace Health {\n // eslint-disable-next-line no-shadow\n export enum EndpointSource {\n CONFIG_OR_ENV = 'Extra Values or Environment Variables',\n CONFIGMAP = 'ConfigMap',\n }\n\n // eslint-disable-next-line no-shadow\n export enum TEAM {\n UNSET = 'U',\n CONSOLE = 'C',\n DISTRIBUTION = 'D',\n }\n\n interface BaseContext {\n type: 'endpoint' | 'configuration'\n team: TEAM\n }\n\n export interface Endpoint extends BaseContext {\n type: 'endpoint'\n name: string\n url: string\n source: EndpointSource\n method?: 'post'\n ignore?: boolean\n }\n\n export interface Configuration extends BaseContext {\n type: 'configuration'\n source: string\n }\n\n export type Context = Endpoint | Configuration\n\n export interface Result {\n problemIdentitfied: boolean\n message: string\n context: Context\n ts?: number\n }\n\n export interface HealthCheck {\n ts: number\n results: Result[]\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "AAMO,IAAU;AAAA,CAAV,CAAUA,eAAV;AACE,EAAMA,WAAA,eAAe;AAiBrB,WAAS,cAAc,SAA0B;AACtD,YAAQ,SAAS;AAAA,MACf,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT;AACE,eAAO;AAAA,IACX;AAAA,EACF;AA3BO,EAAAA,WAAS;AAkMT,EAAMA,WAAA,wBAGT;AAAA,IACF,uBAAuB;AAAA,MACrB,SAAS;AAAA,MACT,OAAO;AAAA,IACT;AAAA,IACA,mBAAmB;AAAA,MACjB,SAAS;AAAA,MACT,OAAO;AAAA,IACT;AAAA,IACA,0BAA0B;AAAA,MACxB,SAAS;AAAA,MACT,OAAO;AAAA,IACT;AAAA,IACA,0BAA0B;AAAA,MACxB,SAAS;AAAA,MACT,OAAO;AAAA,IACT;AAAA,IACA,6BAA6B;AAAA,MAC3B,SAAS;AAAA,MACT,OAAO;AAAA,IACT;AAAA,IACA,4BAA4B;AAAA,MAC1B,SAAS;AAAA,MACT,OAAO;AAAA,IACT;AAAA,IACA,sBAAsB;AAAA,MACpB,SAAS;AAAA,MACT,OAAO;AAAA,IACT;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,OAAO;AAAA,IACT;AAAA,IACA,0BAA0B;AAAA,MACxB,SACE;AAAA,MACF,OAAO;AAAA,IACT;AAAA,IACA,cAAc;AAAA,MACZ,SAAS;AAAA,MACT,OAAO;AAAA,IACT;AAAA,EACF;AAqBO,MAAU;AAAV,IAAUC,YAAV;AAEE,QAAK;AAAL,MAAKC,oBAAL;AACL,MAAAA,gBAAA,mBAAgB;AAChB,MAAAA,gBAAA,eAAY;AAAA,OAFF,iBAAAD,QAAA,mBAAAA,QAAA;AAML,QAAK;AAAL,MAAKE,UAAL;AACL,MAAAA,MAAA,WAAQ;AACR,MAAAA,MAAA,aAAU;AACV,MAAAA,MAAA,kBAAe;AAAA,OAHL,OAAAF,QAAA,SAAAA,QAAA;AAAA,KARG,SAAAD,WAAA,WAAAA,WAAA;AAAA,GAtRF;",
|
|
6
|
-
"names": ["ConsoleSM", "Health", "EndpointSource", "TEAM"]
|
|
7
|
-
}
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
export declare namespace ConsoleSMAdminApi {
|
|
2
|
-
type Status = 'healthy' | 'unhealthy' | 'unknown';
|
|
3
|
-
type AppType = 'zeebe-broker' | 'zeebe-gateway' | 'operate' | 'tasklist' | 'optimize' | 'modeler' | 'console' | 'identity' | 'unknown';
|
|
4
|
-
type ClusterType = 'automation' | 'management';
|
|
5
|
-
interface App {
|
|
6
|
-
/**
|
|
7
|
-
* What application is running in the cluster, like Zeebe, Operate, Tasklist, ...
|
|
8
|
-
*/
|
|
9
|
-
type: AppType;
|
|
10
|
-
/**
|
|
11
|
-
* Unique identifier of the application
|
|
12
|
-
*/
|
|
13
|
-
id: string;
|
|
14
|
-
/**
|
|
15
|
-
* Indicates if an application is healthy or not
|
|
16
|
-
*/
|
|
17
|
-
status: Status;
|
|
18
|
-
/**
|
|
19
|
-
* The public URL of the application
|
|
20
|
-
*/
|
|
21
|
-
url: string;
|
|
22
|
-
/**
|
|
23
|
-
* This is the current version of the running application
|
|
24
|
-
*/
|
|
25
|
-
generation: string;
|
|
26
|
-
/**
|
|
27
|
-
* The readiness URL of the application
|
|
28
|
-
*/
|
|
29
|
-
readiness?: string;
|
|
30
|
-
/**
|
|
31
|
-
* The metrics URL of the application
|
|
32
|
-
*/
|
|
33
|
-
metrics?: string;
|
|
34
|
-
}
|
|
35
|
-
interface Cluster {
|
|
36
|
-
/**
|
|
37
|
-
* Unique identifier of the cluster
|
|
38
|
-
*/
|
|
39
|
-
uuid: string;
|
|
40
|
-
/**
|
|
41
|
-
* Name of the cluster
|
|
42
|
-
*/
|
|
43
|
-
name: string;
|
|
44
|
-
/**
|
|
45
|
-
* Tags of the cluster, example: dev, stage, prod
|
|
46
|
-
*/
|
|
47
|
-
tags?: string[];
|
|
48
|
-
/**
|
|
49
|
-
* Custom properties of the cluster
|
|
50
|
-
*/
|
|
51
|
-
customProperties?: Array<{
|
|
52
|
-
description?: string;
|
|
53
|
-
links?: Array<{
|
|
54
|
-
name?: string;
|
|
55
|
-
url?: string;
|
|
56
|
-
}>;
|
|
57
|
-
}>;
|
|
58
|
-
/**
|
|
59
|
-
* Namespace the cluster is running in.
|
|
60
|
-
*/
|
|
61
|
-
namespace: string;
|
|
62
|
-
/**
|
|
63
|
-
* Indicates if a cluster is healthy or not
|
|
64
|
-
*/
|
|
65
|
-
status: Status;
|
|
66
|
-
/**
|
|
67
|
-
* This is the current version of the running cluster
|
|
68
|
-
*/
|
|
69
|
-
generation: string;
|
|
70
|
-
/**
|
|
71
|
-
* We're distinguishing between automation and management clusters. Management clusters include applications that act globally in an installed context, like Console or Modeler. Automation clusters are the Zeebe clusters including applications like Operate, Tasklist and Optimize.
|
|
72
|
-
*/
|
|
73
|
-
type: ClusterType;
|
|
74
|
-
/**
|
|
75
|
-
* The list of applications running in the cluster
|
|
76
|
-
*/
|
|
77
|
-
apps: App[];
|
|
78
|
-
}
|
|
79
|
-
interface UsageMetrics {
|
|
80
|
-
/**
|
|
81
|
-
* The number of usage metrics for a specific type.
|
|
82
|
-
*/
|
|
83
|
-
total: number;
|
|
84
|
-
}
|
|
85
|
-
interface UsageMetricsInstances extends UsageMetrics {
|
|
86
|
-
}
|
|
87
|
-
interface UsageMetricsTaskUsers extends UsageMetrics {
|
|
88
|
-
/**
|
|
89
|
-
* The users that tasks have been assigned to.
|
|
90
|
-
*/
|
|
91
|
-
assignees: string[];
|
|
92
|
-
}
|
|
93
|
-
interface UsageMetricsForCluster {
|
|
94
|
-
/**
|
|
95
|
-
* The identifier of the cluster.
|
|
96
|
-
*/
|
|
97
|
-
id: string;
|
|
98
|
-
/**
|
|
99
|
-
* The usage metrics for started process instances.
|
|
100
|
-
*/
|
|
101
|
-
processInstances: UsageMetricsInstances;
|
|
102
|
-
/**
|
|
103
|
-
* The usage metrics for executed decision instances.
|
|
104
|
-
*/
|
|
105
|
-
decisionInstances: UsageMetricsInstances;
|
|
106
|
-
/**
|
|
107
|
-
* The usage metrics for assigned task users.
|
|
108
|
-
*/
|
|
109
|
-
taskUsers: UsageMetricsTaskUsers;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=ConsoleSelfManagedAdminApi.type.js.map
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
class ConsoleSelfManagedUtils {
|
|
2
|
-
static getMockedClusters(options) {
|
|
3
|
-
const clusterCount = options.clusterCount ?? 1;
|
|
4
|
-
const clusters = [];
|
|
5
|
-
for (let i = 0; i < clusterCount; i++) {
|
|
6
|
-
clusters.push({
|
|
7
|
-
uuid: `dummy-uuid-${i}`,
|
|
8
|
-
name: `Dummy Cluster ${i}`,
|
|
9
|
-
namespace: `dummy-namespace-${i}`,
|
|
10
|
-
status: "healthy",
|
|
11
|
-
generation: "dummy-generation",
|
|
12
|
-
type: "automation",
|
|
13
|
-
apps: [
|
|
14
|
-
{
|
|
15
|
-
type: "zeebe-broker",
|
|
16
|
-
id: "dummy-id",
|
|
17
|
-
generation: "dummy-generation",
|
|
18
|
-
status: "healthy",
|
|
19
|
-
url: "https://camunda.io"
|
|
20
|
-
}
|
|
21
|
-
]
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
return clusters;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
export {
|
|
28
|
-
ConsoleSelfManagedUtils
|
|
29
|
-
};
|
|
30
|
-
//# sourceMappingURL=console-sm.utils.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/console-sm.utils.ts"],
|
|
4
|
-
"sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nimport type { ConsoleSM } from '../types/ConsoleSelfManaged.type.js'\n\nexport class ConsoleSelfManagedUtils {\n public static getMockedClusters(options: {\n clusterCount?: number\n }): ConsoleSM.Cluster[] {\n const clusterCount = options.clusterCount ?? 1\n const clusters: ConsoleSM.Cluster[] = []\n for (let i = 0; i < clusterCount; i++) {\n clusters.push({\n uuid: `dummy-uuid-${i}`,\n name: `Dummy Cluster ${i}`,\n namespace: `dummy-namespace-${i}`,\n status: 'healthy',\n generation: 'dummy-generation',\n type: 'automation',\n apps: [\n {\n type: 'zeebe-broker',\n id: 'dummy-id',\n generation: 'dummy-generation',\n status: 'healthy',\n url: 'https://camunda.io',\n },\n ],\n })\n }\n return clusters\n }\n}\n"],
|
|
5
|
-
"mappings": "AAQO,MAAM,wBAAwB;AAAA,EACnC,OAAc,kBAAkB,SAER;AACtB,UAAM,eAAe,QAAQ,gBAAgB;AAC7C,UAAM,WAAgC,CAAC;AACvC,aAAS,IAAI,GAAG,IAAI,cAAc,KAAK;AACrC,eAAS,KAAK;AAAA,QACZ,MAAM,cAAc,CAAC;AAAA,QACrB,MAAM,iBAAiB,CAAC;AAAA,QACxB,WAAW,mBAAmB,CAAC;AAAA,QAC/B,QAAQ;AAAA,QACR,YAAY;AAAA,QACZ,MAAM;AAAA,QACN,MAAM;AAAA,UACJ;AAAA,YACE,MAAM;AAAA,YACN,IAAI;AAAA,YACJ,YAAY;AAAA,YACZ,QAAQ;AAAA,YACR,KAAK;AAAA,UACP;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT;AACF;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|