@meshmakers/octo-services 3.4.1480 → 3.5.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.
@@ -1,14 +1,14 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { inject, Injector, Injectable, InjectionToken, NgModule, makeEnvironmentProviders } from '@angular/core';
3
3
  import { onError } from '@apollo/client/link/error';
4
- import { MessageService, DataSourceBase, PagedResultDto, provideMmSharedServices } from '@meshmakers/shared-services';
4
+ import { MessageService, MM_CALLER_HANDLED_STATUSES, DataSourceBase, PagedResultDto, provideMmSharedServices } from '@meshmakers/shared-services';
5
5
  import { ApolloLink, InMemoryCache } from '@apollo/client/core';
6
6
  import { CombinedGraphQLErrors } from '@apollo/client';
7
7
  import * as i1 from 'apollo-angular';
8
8
  import { gql } from 'apollo-angular';
9
9
  import { map, catchError, finalize } from 'rxjs/operators';
10
10
  import { of, firstValueFrom, map as map$1, Subject, throwError, from, filter } from 'rxjs';
11
- import { HttpClient, HttpParams, HttpErrorResponse, HttpHeaders } from '@angular/common/http';
11
+ import { HttpClient, HttpParams, HttpErrorResponse, HttpContext, HttpHeaders } from '@angular/common/http';
12
12
  import { Upload } from 'tus-js-client';
13
13
  import { AuthorizeService } from '@meshmakers/shared-auth';
14
14
 
@@ -21,6 +21,12 @@ class OctoServiceOptions {
21
21
  }
22
22
  }
23
23
 
24
+ /**
25
+ * Operation context flag: errors of an operation with `context: { [OCTO_SILENT_ERRORS]: true }`
26
+ * are logged to the console only, never shown as a toast. For best-effort background reads whose
27
+ * caller handles the failure itself (e.g. the Settings counts, AB#5523).
28
+ */
29
+ const OCTO_SILENT_ERRORS = 'octoSilentErrors';
24
30
  class OctoErrorLink extends ApolloLink {
25
31
  errorLink;
26
32
  injector = inject(Injector);
@@ -28,8 +34,12 @@ class OctoErrorLink extends ApolloLink {
28
34
  super();
29
35
  // There is currently no other way to inject a service into an Apollo Link,
30
36
  // because Apollo deprecated without replacement
31
- this.errorLink = onError(({ error }) => {
37
+ this.errorLink = onError(({ error, operation }) => {
32
38
  if (error) {
39
+ if (OctoErrorLink.isSilent(operation)) {
40
+ console.warn(`GraphQL error in ${operation?.operationName ?? 'operation'} (not shown)`, error);
41
+ return;
42
+ }
33
43
  if (error instanceof CombinedGraphQLErrors) {
34
44
  this.showError(error);
35
45
  }
@@ -43,6 +53,15 @@ class OctoErrorLink extends ApolloLink {
43
53
  // lets the original error propagate to the caller's own error handling.
44
54
  });
45
55
  }
56
+ /** True when the operation opted out of error toasts ({@link OCTO_SILENT_ERRORS}). */
57
+ static isSilent(operation) {
58
+ try {
59
+ return operation?.getContext?.()?.[OCTO_SILENT_ERRORS] === true;
60
+ }
61
+ catch {
62
+ return false;
63
+ }
64
+ }
46
65
  showErrorLike(error) {
47
66
  // Network connectivity errors (HTTP status 0) are already handled by MmHttpErrorInterceptor
48
67
  // which either shows the connection error overlay (via ON_CONNECTION_LOST) or a toast.
@@ -200,6 +219,258 @@ class LevelMetaData {
200
219
  }
201
220
  }
202
221
 
222
+ /**
223
+ * SECRET value type (AB#5528) — frontend contract types and helpers (AB#5542).
224
+ *
225
+ * Contract: `octo-construction-kit-engine/docs/secret-frontend-handover.md` §2 (asset repository
226
+ * GraphQL) and §4/§8 (identity providers REST). Field names are binding.
227
+ *
228
+ * The generated `globalTypes.ts` carries the SECRET round-2 schema (`OctoSecretStateDto { isSet
229
+ * keyMissing setAt }`, `secretIsSet` / `secretKeyMissing` / `secretSetAt`, `clearSecretAttributes`,
230
+ * `Query.secrets`). The shapes below accept the generated DTOs structurally; `keyMissing` / `setAt`
231
+ * stay optional so documents (or older backends) without them still map, and `setAt` accepts the
232
+ * ISO string Apollo actually delivers as well as a `Date`.
233
+ *
234
+ * Rules (decisions 2026-10-06):
235
+ * - A secret is never read. Typed fields select `{ isSet keyMissing setAt }`, generic attribute
236
+ * lists select `secretIsSet secretKeyMissing secretSetAt` (`value` is always null for secrets).
237
+ * - Input: a non-empty string sets / rotates; omitted, `null` or `""` keeps the stored value.
238
+ * Clearing is explicit: the camelCase name goes into `clearSecretAttributes` (only optional
239
+ * secrets; a new value and a clear for the same field in one request are rejected).
240
+ * - Placeholders (`<…>`, `TODO_SET_*`) have no meaning — they are ordinary values.
241
+ * - `keyMissing` (value stored, key id unknown in this environment) reads as `isSet: false` for
242
+ * consumers; the UI shows "Key missing — re-enter".
243
+ */
244
+ /** The CK value type name of a secret attribute as reported by the CK model API (`AttributeValueTypesDto.Secret = 17`). */
245
+ const SECRET_VALUE_TYPE = 'SECRET';
246
+ /** Whether a CK value type is the SECRET value type (case-insensitive). */
247
+ function isSecretValueType(valueType) {
248
+ return !!valueType && valueType.toUpperCase() === SECRET_VALUE_TYPE;
249
+ }
250
+ function toDate(value) {
251
+ if (!value)
252
+ return null;
253
+ const d = value instanceof Date ? value : new Date(value);
254
+ return Number.isNaN(d.getTime()) ? null : d;
255
+ }
256
+ /** Normalises a typed `OctoSecretState` (null/undefined = not set). */
257
+ function toSecretState(state) {
258
+ return {
259
+ isSet: state?.isSet === true,
260
+ keyMissing: state?.keyMissing === true,
261
+ setAt: toDate(state?.setAt),
262
+ };
263
+ }
264
+ /**
265
+ * The secret state of a generic attribute, or `null` when the attribute is not a secret
266
+ * (`secretIsSet` is null for every non-secret attribute).
267
+ */
268
+ function secretStateFromAttribute(attribute) {
269
+ if (!attribute || (attribute.secretIsSet !== true && attribute.secretIsSet !== false))
270
+ return null;
271
+ return {
272
+ isSet: attribute.secretIsSet,
273
+ keyMissing: attribute.secretKeyMissing === true,
274
+ setAt: toDate(attribute.secretSetAt),
275
+ };
276
+ }
277
+ /**
278
+ * Whether a value is a secret state object (`{ isSet }` marker or a {@link SecretState}) rather than
279
+ * a plain value — e.g. a SECRET record member read through the generic API. Only objects whose keys
280
+ * are a subset of `isSet` / `keyMissing` / `setAt` with a boolean `isSet` qualify.
281
+ */
282
+ function isSecretStateObject(value) {
283
+ if (!value || typeof value !== 'object' || Array.isArray(value) || value instanceof Date)
284
+ return false;
285
+ const record = value;
286
+ return typeof record['isSet'] === 'boolean'
287
+ && Object.keys(record).every((k) => k === 'isSet' || k === 'keyMissing' || k === 'setAt' || k === '__typename');
288
+ }
289
+ /** Display status: key missing wins (it implies `isSet: false`), then set / not set. */
290
+ function secretStatusOf(state) {
291
+ if (state?.keyMissing)
292
+ return 'keyMissing';
293
+ return state?.isSet ? 'set' : 'notSet';
294
+ }
295
+ /**
296
+ * Whether a secret counts as present for "required" checks: set, or stored but unreadable (the
297
+ * server treats a key-missing secret as present, handover §2).
298
+ */
299
+ function isSecretPresent(state) {
300
+ return state?.isSet === true || state?.keyMissing === true;
301
+ }
302
+ /**
303
+ * The wire value of a typed secret input: the string when the user typed one, else `undefined`
304
+ * (= omit = keep). Never trims — whitespace can be part of a secret.
305
+ */
306
+ function secretInputValue(typed) {
307
+ return typeof typed === 'string' && typed.length > 0 ? typed : undefined;
308
+ }
309
+ const DEFAULT_SECRET_STATUS_LABELS = {
310
+ set: 'Set',
311
+ setAt: 'Set · set at {setAt}',
312
+ notSet: 'Not set',
313
+ keyMissing: 'Key missing — re-enter',
314
+ };
315
+ /**
316
+ * Human-readable status: "Set · set at …" / "Set" (legacy, no timestamp) / "Not set" /
317
+ * "Key missing — re-enter".
318
+ */
319
+ function formatSecretStatus(state, formatDate = (d) => d.toLocaleString(), labels = DEFAULT_SECRET_STATUS_LABELS) {
320
+ switch (secretStatusOf(state)) {
321
+ case 'keyMissing':
322
+ return labels.keyMissing;
323
+ case 'set':
324
+ return state?.setAt ? labels.setAt.replace('{setAt}', formatDate(state.setAt)) : labels.set;
325
+ default:
326
+ return labels.notSet;
327
+ }
328
+ }
329
+
330
+ /**
331
+ * Secret-safe attribute selection for generic runtime GraphQL documents (AB#5542).
332
+ *
333
+ * The generic `attributes` field of `RtEntity` / `RtAssociation` returns EVERY attribute of the
334
+ * entity — passwords, client secrets, API keys included — when its `attributeNames` argument is
335
+ * omitted (or bound to a variable the caller leaves `undefined`). Until the SECRET value type
336
+ * (AB#5528) lets the server mask those values, every generic document must pass an explicit,
337
+ * non-nullable list, and callers that derive the list from CK metadata must leave out
338
+ * credential-like attributes. These helpers are that rule in one place:
339
+ *
340
+ * - {@link isCredentialLikeAttributeName}: the name heuristic (suffix based, camelCase or PascalCase).
341
+ * - {@link isSecretAttributeCandidate}: THE rule — explicit decision, `secret` CK metadata, else the
342
+ * name heuristic for textual value types only.
343
+ * - {@link toAttributeNameFilter}: name-only list for read-only callers without type information.
344
+ * - {@link toUniqueCamelCaseNames}: camelCase + de-duplication for type-aware callers.
345
+ * The server compares camelCase names only, and one list also filters the sub-attributes of records.
346
+ *
347
+ * SECRET value type (AB#5528): an attribute whose value type is `SECRET` is ALWAYS a secret — no
348
+ * explicit decision or metadata can opt it out. The server never projects its value (`value` is
349
+ * null, `secretIsSet` / `{ isSet }` report the state, see `secret-state.ts`). The metadata marker
350
+ * and the name heuristic remain only as the FALLBACK for non-SECRET attributes (models that have
351
+ * not switched their credentials to SECRET yet, handover note §1 phase 2 before phase 3).
352
+ */
353
+ /**
354
+ * Credential-like name suffixes (lower case). Matched against the END of the attribute name so
355
+ * that `password`, `adminPassword`, `privateKeyPassphrase`, `clientSecret`, `botToken`,
356
+ * `refreshToken`, `apiKey`, `secretKey`, `connectionString` match, while `maxTokens`,
357
+ * `tokensPerDay`, `tokenEndpoint` or `receivesClusterSecrets` do not.
358
+ */
359
+ const CREDENTIAL_ATTRIBUTE_NAME_SUFFIXES = [
360
+ 'password',
361
+ 'passphrase',
362
+ 'secret',
363
+ 'secretkey',
364
+ 'token',
365
+ 'apikey',
366
+ 'privatekey',
367
+ 'connectionstring',
368
+ 'credential',
369
+ 'credentials',
370
+ 'encryptedvalue',
371
+ ];
372
+ /** CK value types that can carry a credential (anything textual). */
373
+ const TEXTUAL_VALUE_TYPES = new Set(['STRING', 'STRING_ARRAY']);
374
+ /** Lower-cases the first character, like the server's `ToCamelCase` used by the `attributeNames` filter. */
375
+ function toCamelCaseAttributeName(name) {
376
+ return name.length === 0 ? name : name.charAt(0).toLowerCase() + name.slice(1);
377
+ }
378
+ /** Whether an attribute name looks like a credential (password, secret, token, API key, …). */
379
+ function isCredentialLikeAttributeName(name) {
380
+ if (!name)
381
+ return false;
382
+ const normalised = name.replace(/[^a-zA-Z0-9]/g, '').toLowerCase();
383
+ return CREDENTIAL_ATTRIBUTE_NAME_SUFFIXES.some((suffix) => normalised.endsWith(suffix));
384
+ }
385
+ /** Whether a CK value type can hold a credential (textual). `undefined` (unknown) counts as textual. */
386
+ function isTextualValueType(valueType) {
387
+ return !valueType || TEXTUAL_VALUE_TYPES.has(valueType.toUpperCase());
388
+ }
389
+ /**
390
+ * THE credential rule of the frontend (AB#5542; entity forms, runtime browser, meshboard, Data
391
+ * Explorer all use it). An attribute is a secret candidate when
392
+ * 0. its value type is `SECRET` (always; cannot be opted out), else
393
+ * 1. the caller decided explicitly (`secret: true|false`, e.g. form `Secret: false` opts out), else
394
+ * 2. its CK metadata says `secret: true|false`, else
395
+ * 3. it is TEXTUAL (`STRING`, `STRING_ARRAY`, unknown) and its name is credential-like
396
+ * ({@link isCredentialLikeAttributeName}). Non-textual attributes (`isSecret: BOOLEAN`,
397
+ * `maxTokens: INT`, a `credentials` RECORD) are never secrets by name.
398
+ */
399
+ function isSecretAttributeCandidate(attribute) {
400
+ if (isSecretValueType(attribute.attributeValueType))
401
+ return true;
402
+ if (attribute.secret === true || attribute.secret === false)
403
+ return attribute.secret;
404
+ const marker = (attribute.metaData ?? []).find((m) => !!m && m.key?.toLowerCase() === 'secret');
405
+ if (marker) {
406
+ const value = (marker.value ?? '').trim().toLowerCase();
407
+ if (value === 'true')
408
+ return true;
409
+ if (value === 'false')
410
+ return false;
411
+ }
412
+ if (!isTextualValueType(attribute.attributeValueType))
413
+ return false;
414
+ return isCredentialLikeAttributeName(attribute.attributeName);
415
+ }
416
+ /** camelCase, de-duplicated, without empty entries — no secret filtering (callers decided already). */
417
+ function toUniqueCamelCaseNames(names) {
418
+ const result = [];
419
+ const seen = new Set();
420
+ for (const name of names) {
421
+ if (!name)
422
+ continue;
423
+ const camel = toCamelCaseAttributeName(name);
424
+ if (seen.has(camel))
425
+ continue;
426
+ seen.add(camel);
427
+ result.push(camel);
428
+ }
429
+ return result;
430
+ }
431
+ /**
432
+ * Builds the value of an `attributeNames` argument from names WITHOUT type information (widget
433
+ * configuration, user-picked fields): camelCase, de-duplicated, without empty and credential-like
434
+ * names. Because the type is unknown, the name rule is applied conservatively — use it only for
435
+ * READ-ONLY displays. Anything that is written back must derive its list type-aware
436
+ * ({@link isSecretAttributeCandidate}, octo-ui `SecretSafeAttributeNamesService`), otherwise a
437
+ * dropped non-secret attribute (`isSecret: BOOLEAN`) would be saved back empty.
438
+ * Always returns an array, so a `[String!]!` variable can never fall back to "all attributes".
439
+ */
440
+ function toAttributeNameFilter(names) {
441
+ return toUniqueCamelCaseNames([...names].filter((name) => !isCredentialLikeAttributeName(name)));
442
+ }
443
+ /**
444
+ * Whether a query column (`attributePath` such as `password`, `endpoint.apiKey`,
445
+ * `parent->clientSecret`) is a secret candidate: its last path segment by the shared rule.
446
+ * Column pickers hide these so users cannot add credential columns to runtime queries
447
+ * (AB#5542 — query rows would project the value).
448
+ */
449
+ function isSecretQueryColumn(attributePath, attributeValueType) {
450
+ if (!attributePath)
451
+ return false;
452
+ const lastSegment = attributePath.split(/->|\.|\//).pop() ?? attributePath;
453
+ return isSecretAttributeCandidate({ attributeName: lastSegment, attributeValueType });
454
+ }
455
+
456
+ /**
457
+ * Bot services REST DTOs of the SECRET value type administration (AB#5528 / AB#5544, frontend
458
+ * handover §9). Mirror `Meshmakers.Octo.Communication.Contracts.DataTransferObjects`
459
+ * (`SecretEnvironmentStatusDto`, `SecretSweepRunDto`, `SecretSweepDumpDto`,
460
+ * `SecretFormCountsReportDto`); enums travel as names, JSON is camelCase, timestamps are ISO-8601
461
+ * strings. No DTO ever carries a secret value.
462
+ */
463
+ /** `SecretEnvironmentStatusDto.warnings` codes (handover §9/§14). */
464
+ const SECRET_STATUS_WARNING_NO_KEY_RING = 'NoKeyRing';
465
+ const SECRET_STATUS_WARNING_NO_LEGACY_V1_KEY = 'NoLegacyV1Key';
466
+ /** An existing encrypted dump's key id is not in the key ring: that dump cannot be restored (handover §14). */
467
+ const SECRET_STATUS_WARNING_DUMP_KEY_MISSING = 'DumpKeyMissing';
468
+ /** The pseudo key id of a legacy enc:v1 value (handover §10); shown as "legacy key (enc:v1)". */
469
+ const SECRET_LEGACY_V1_KEY_ID = 'enc:v1';
470
+ /** Error codes of the dump restore (`statusDescription` of the 409 body, handover §14). */
471
+ const SECRET_DUMP_RESTORE_ERROR_DUMP_DELETED = 'DumpDeleted';
472
+ const SECRET_DUMP_RESTORE_ERROR_DUMP_KEY_MISSING = 'DumpKeyMissing';
473
+
203
474
  var HealthStatus;
204
475
  (function (HealthStatus) {
205
476
  /*
@@ -358,6 +629,14 @@ var AssociationModOptionsDto;
358
629
  AssociationModOptionsDto["CreateDto"] = "CREATE";
359
630
  AssociationModOptionsDto["DeleteDto"] = "DELETE";
360
631
  })(AssociationModOptionsDto || (AssociationModOptionsDto = {}));
632
+ /** Who owns an attribute value, and therefore what installing the blueprint again does to it (AB#5187). SEED_OWNED: the blueprint owns the value - re-applying the blueprint OVERWRITES whatever the tenant has, and the value is carried in an exported runtime model. TENANT_OWNED: the tenant owns the value - re-applying the blueprint KEEPS the tenant's value and only seeds it on a fresh tenant, and the value IS still carried in an exported runtime model. RUNTIME_STATE: a service, operator, pipeline or job writes the value - re-applying the blueprint KEEPS it, and it is NOT carried in an exported runtime model. SECRET: a credential such as an API key, client secret, token or password - re-applying the blueprint KEEPS it, and it is NOT carried in an exported runtime model. */
633
+ var AttributeOwnershipDto;
634
+ (function (AttributeOwnershipDto) {
635
+ AttributeOwnershipDto["RuntimeStateDto"] = "RUNTIME_STATE";
636
+ AttributeOwnershipDto["SecretDto"] = "SECRET";
637
+ AttributeOwnershipDto["SeedOwnedDto"] = "SEED_OWNED";
638
+ AttributeOwnershipDto["TenantOwnedDto"] = "TENANT_OWNED";
639
+ })(AttributeOwnershipDto || (AttributeOwnershipDto = {}));
361
640
  /** Enum of valid attribute types */
362
641
  var AttributeValueTypeDto;
363
642
  (function (AttributeValueTypeDto) {
@@ -377,6 +656,7 @@ var AttributeValueTypeDto;
377
656
  AttributeValueTypeDto["IntArrayDto"] = "INT_ARRAY";
378
657
  AttributeValueTypeDto["RecordDto"] = "RECORD";
379
658
  AttributeValueTypeDto["RecordArrayDto"] = "RECORD_ARRAY";
659
+ AttributeValueTypeDto["SecretDto"] = "SECRET";
380
660
  AttributeValueTypeDto["StringDto"] = "STRING";
381
661
  AttributeValueTypeDto["StringArrayDto"] = "STRING_ARRAY";
382
662
  AttributeValueTypeDto["TimeSpanDto"] = "TIME_SPAN";
@@ -982,6 +1262,30 @@ var SearchFilterTypesDto;
982
1262
  SearchFilterTypesDto["AttributeFilterDto"] = "ATTRIBUTE_FILTER";
983
1263
  SearchFilterTypesDto["TextSearchDto"] = "TEXT_SEARCH";
984
1264
  })(SearchFilterTypesDto || (SearchFilterTypesDto = {}));
1265
+ /** Storage form of a secret value. Never the value. */
1266
+ var SecretStorageFormDto;
1267
+ (function (SecretStorageFormDto) {
1268
+ /** Stored value cannot be parsed (reads as not set, warning logged). */
1269
+ SecretStorageFormDto["CorruptDto"] = "CORRUPT";
1270
+ /** Legacy enc:v1 (instance key). */
1271
+ SecretStorageFormDto["EncV1Dto"] = "ENC_V1";
1272
+ /** Protected, key id known. */
1273
+ SecretStorageFormDto["EncV2Dto"] = "ENC_V2";
1274
+ /** Protected, key id not in this environment's key ring. */
1275
+ SecretStorageFormDto["KeyMissingDto"] = "KEY_MISSING";
1276
+ /** Null or missing. */
1277
+ SecretStorageFormDto["NotSetDto"] = "NOT_SET";
1278
+ /** Legacy clear text still stored (before the Encrypt sweep). */
1279
+ SecretStorageFormDto["PlaintextDto"] = "PLAINTEXT";
1280
+ })(SecretStorageFormDto || (SecretStorageFormDto = {}));
1281
+ /** How a RevealSecret@1 node refers to a secret. */
1282
+ var SecretUsageMatchDto;
1283
+ (function (SecretUsageMatchDto) {
1284
+ /** The node resolves the entity at run time (rtIdPath) on the same CK type and attribute. */
1285
+ SecretUsageMatchDto["ByTypeDto"] = "BY_TYPE";
1286
+ /** The node names the CK type, rtId and attribute of the secret. */
1287
+ SecretUsageMatchDto["ExactDto"] = "EXACT";
1288
+ })(SecretUsageMatchDto || (SecretUsageMatchDto = {}));
985
1289
  /** Civil-boundary policy for a series query that spans multiple reference time zones (AB#4190). */
986
1290
  var SeriesComparisonPolicyDto;
987
1291
  (function (SeriesComparisonPolicyDto) {
@@ -1166,6 +1470,13 @@ var SystemAiWorkspaceModeDto;
1166
1470
  SystemAiWorkspaceModeDto["PerSessionDto"] = "PER_SESSION";
1167
1471
  SystemAiWorkspaceModeDto["PoolDto"] = "POOL";
1168
1472
  })(SystemAiWorkspaceModeDto || (SystemAiWorkspaceModeDto = {}));
1473
+ /** Runtime entities of construction kit enum 'System.Communication/AdapterSharingMode' */
1474
+ var SystemCommunicationAdapterSharingModeDto;
1475
+ (function (SystemCommunicationAdapterSharingModeDto) {
1476
+ SystemCommunicationAdapterSharingModeDto["DescendantsDto"] = "DESCENDANTS";
1477
+ SystemCommunicationAdapterSharingModeDto["DescendantsAndSiblingsDto"] = "DESCENDANTS_AND_SIBLINGS";
1478
+ SystemCommunicationAdapterSharingModeDto["NotSharedDto"] = "NOT_SHARED";
1479
+ })(SystemCommunicationAdapterSharingModeDto || (SystemCommunicationAdapterSharingModeDto = {}));
1169
1480
  /** Runtime entities of construction kit enum 'System.Communication/CommunicationState' */
1170
1481
  var SystemCommunicationCommunicationStateDto;
1171
1482
  (function (SystemCommunicationCommunicationStateDto) {
@@ -1202,11 +1513,18 @@ var SystemCommunicationHelmChannelDto;
1202
1513
  SystemCommunicationHelmChannelDto["DevDto"] = "DEV";
1203
1514
  SystemCommunicationHelmChannelDto["ReleaseDto"] = "RELEASE";
1204
1515
  })(SystemCommunicationHelmChannelDto || (SystemCommunicationHelmChannelDto = {}));
1516
+ /** Runtime entities of construction kit enum 'System.Communication/HelmRepositoryPurpose' */
1517
+ var SystemCommunicationHelmRepositoryPurposeDto;
1518
+ (function (SystemCommunicationHelmRepositoryPurposeDto) {
1519
+ SystemCommunicationHelmRepositoryPurposeDto["AdaptersDto"] = "ADAPTERS";
1520
+ SystemCommunicationHelmRepositoryPurposeDto["ApplicationsDto"] = "APPLICATIONS";
1521
+ })(SystemCommunicationHelmRepositoryPurposeDto || (SystemCommunicationHelmRepositoryPurposeDto = {}));
1205
1522
  /** Runtime entities of construction kit enum 'System.Communication/LifecycleMode' */
1206
1523
  var SystemCommunicationLifecycleModeDto;
1207
1524
  (function (SystemCommunicationLifecycleModeDto) {
1208
1525
  SystemCommunicationLifecycleModeDto["AlwaysOnDto"] = "ALWAYS_ON";
1209
1526
  SystemCommunicationLifecycleModeDto["AutoDto"] = "AUTO";
1527
+ SystemCommunicationLifecycleModeDto["LeasedDto"] = "LEASED";
1210
1528
  SystemCommunicationLifecycleModeDto["OnDemandDto"] = "ON_DEMAND";
1211
1529
  })(SystemCommunicationLifecycleModeDto || (SystemCommunicationLifecycleModeDto = {}));
1212
1530
  /** Runtime entities of construction kit enum 'System.Communication/LifecycleState' */
@@ -1217,6 +1535,12 @@ var SystemCommunicationLifecycleStateDto;
1217
1535
  SystemCommunicationLifecycleStateDto["RunningDto"] = "RUNNING";
1218
1536
  SystemCommunicationLifecycleStateDto["WakingDto"] = "WAKING";
1219
1537
  })(SystemCommunicationLifecycleStateDto || (SystemCommunicationLifecycleStateDto = {}));
1538
+ /** Runtime entities of construction kit enum 'System.Communication/PipelineExecutionClass' */
1539
+ var SystemCommunicationPipelineExecutionClassDto;
1540
+ (function (SystemCommunicationPipelineExecutionClassDto) {
1541
+ SystemCommunicationPipelineExecutionClassDto["BatchDto"] = "BATCH";
1542
+ SystemCommunicationPipelineExecutionClassDto["InteractiveDto"] = "INTERACTIVE";
1543
+ })(SystemCommunicationPipelineExecutionClassDto || (SystemCommunicationPipelineExecutionClassDto = {}));
1220
1544
  /** Runtime entities of construction kit enum 'System.Communication/PipelineExecutionStatus' */
1221
1545
  var SystemCommunicationPipelineExecutionStatusDto;
1222
1546
  (function (SystemCommunicationPipelineExecutionStatusDto) {
@@ -1224,6 +1548,7 @@ var SystemCommunicationPipelineExecutionStatusDto;
1224
1548
  SystemCommunicationPipelineExecutionStatusDto["CompletedDto"] = "COMPLETED";
1225
1549
  SystemCommunicationPipelineExecutionStatusDto["FailedDto"] = "FAILED";
1226
1550
  SystemCommunicationPipelineExecutionStatusDto["InterruptedDto"] = "INTERRUPTED";
1551
+ SystemCommunicationPipelineExecutionStatusDto["QueuedDto"] = "QUEUED";
1227
1552
  SystemCommunicationPipelineExecutionStatusDto["RunningDto"] = "RUNNING";
1228
1553
  })(SystemCommunicationPipelineExecutionStatusDto || (SystemCommunicationPipelineExecutionStatusDto = {}));
1229
1554
  /** Runtime entities of construction kit enum 'System.Communication/PipelineTriggerType' */
@@ -1234,6 +1559,13 @@ var SystemCommunicationPipelineTriggerTypeDto;
1234
1559
  SystemCommunicationPipelineTriggerTypeDto["ScheduledDto"] = "SCHEDULED";
1235
1560
  SystemCommunicationPipelineTriggerTypeDto["StartupDto"] = "STARTUP";
1236
1561
  })(SystemCommunicationPipelineTriggerTypeDto || (SystemCommunicationPipelineTriggerTypeDto = {}));
1562
+ /** Runtime entities of construction kit enum 'System.Communication/PoolScaleUpPolicy' */
1563
+ var SystemCommunicationPoolScaleUpPolicyDto;
1564
+ (function (SystemCommunicationPoolScaleUpPolicyDto) {
1565
+ SystemCommunicationPoolScaleUpPolicyDto["QueueDepthDto"] = "QUEUE_DEPTH";
1566
+ SystemCommunicationPoolScaleUpPolicyDto["QueueDepthOrWaitSecondsDto"] = "QUEUE_DEPTH_OR_WAIT_SECONDS";
1567
+ SystemCommunicationPoolScaleUpPolicyDto["QueueWaitSecondsDto"] = "QUEUE_WAIT_SECONDS";
1568
+ })(SystemCommunicationPoolScaleUpPolicyDto || (SystemCommunicationPoolScaleUpPolicyDto = {}));
1237
1569
  /** Runtime entities of construction kit enum 'System.Communication/SignalRegistrationAction' */
1238
1570
  var SystemCommunicationSignalRegistrationActionDto;
1239
1571
  (function (SystemCommunicationSignalRegistrationActionDto) {
@@ -1490,6 +1822,14 @@ var SystemStreamDataCkComputedColumnStateDto;
1490
1822
  /** A backfill has been scheduled for this computed column but has not started yet. Consumers still see the previous archive state. */
1491
1823
  SystemStreamDataCkComputedColumnStateDto["PendingDto"] = "PENDING";
1492
1824
  })(SystemStreamDataCkComputedColumnStateDto || (SystemStreamDataCkComputedColumnStateDto = {}));
1825
+ /** Runtime entities of construction kit enum 'System.StreamData/CkConflictKeyOrder' */
1826
+ var SystemStreamDataCkConflictKeyOrderDto;
1827
+ (function (SystemStreamDataCkConflictKeyOrderDto) {
1828
+ /** The greater value is the better one. Use for timestamps, sequence numbers and versions, where later or higher supersedes earlier. */
1829
+ SystemStreamDataCkConflictKeyOrderDto["HigherWinsDto"] = "HIGHER_WINS";
1830
+ /** The smaller value is the better one. Use for rank-like codes numbered best-first, where a lower code must never be displaced by a higher one. */
1831
+ SystemStreamDataCkConflictKeyOrderDto["LowerWinsDto"] = "LOWER_WINS";
1832
+ })(SystemStreamDataCkConflictKeyOrderDto || (SystemStreamDataCkConflictKeyOrderDto = {}));
1493
1833
  /** Runtime entities of construction kit enum 'System.StreamData/CkRecomputeChangeKind' */
1494
1834
  var SystemStreamDataCkRecomputeChangeKindDto;
1495
1835
  (function (SystemStreamDataCkRecomputeChangeKindDto) {
@@ -1675,10 +2015,12 @@ const result = {
1675
2015
  "SystemBotAttributeAggregateConfiguration",
1676
2016
  "SystemBotFixup",
1677
2017
  "SystemCommunicationAdapter",
2018
+ "SystemCommunicationAdapterPool",
1678
2019
  "SystemCommunicationAiConfiguration",
1679
2020
  "SystemCommunicationApplication",
1680
2021
  "SystemCommunicationDataFlow",
1681
2022
  "SystemCommunicationDataPointMapping",
2023
+ "SystemCommunicationDeploymentSite",
1682
2024
  "SystemCommunicationDiscordConfiguration",
1683
2025
  "SystemCommunicationEMailReceiverConfiguration",
1684
2026
  "SystemCommunicationEMailSenderConfiguration",
@@ -1687,13 +2029,13 @@ const result = {
1687
2029
  "SystemCommunicationFinApiConfiguration",
1688
2030
  "SystemCommunicationGrafanaConfiguration",
1689
2031
  "SystemCommunicationHelmRepositoryConfiguration",
2032
+ "SystemCommunicationLentAdapterPool",
1690
2033
  "SystemCommunicationLoxoneConfiguration",
1691
2034
  "SystemCommunicationMicrosoftGraphConfiguration",
1692
2035
  "SystemCommunicationPipeline",
1693
2036
  "SystemCommunicationPipelineExecution",
1694
2037
  "SystemCommunicationPipelineStatistics",
1695
2038
  "SystemCommunicationPipelineTrigger",
1696
- "SystemCommunicationPool",
1697
2039
  "SystemCommunicationSapConfiguration",
1698
2040
  "SystemCommunicationServiceAccountConfiguration",
1699
2041
  "SystemCommunicationSftpConfiguration",
@@ -1752,6 +2094,7 @@ const result = {
1752
2094
  "SystemUIBranding",
1753
2095
  "SystemUIDashboard",
1754
2096
  "SystemUIDashboardWidget",
2097
+ "SystemUIEntityForm",
1755
2098
  "SystemUIMappingCoverageConfiguration",
1756
2099
  "SystemUIProcessDiagram",
1757
2100
  "SystemUISymbolDefinition",
@@ -2039,10 +2382,12 @@ const result = {
2039
2382
  "SystemBotAttributeAggregateConfiguration",
2040
2383
  "SystemBotFixup",
2041
2384
  "SystemCommunicationAdapter",
2385
+ "SystemCommunicationAdapterPool",
2042
2386
  "SystemCommunicationAiConfiguration",
2043
2387
  "SystemCommunicationApplication",
2044
2388
  "SystemCommunicationDataFlow",
2045
2389
  "SystemCommunicationDataPointMapping",
2390
+ "SystemCommunicationDeploymentSite",
2046
2391
  "SystemCommunicationDiscordConfiguration",
2047
2392
  "SystemCommunicationEMailReceiverConfiguration",
2048
2393
  "SystemCommunicationEMailSenderConfiguration",
@@ -2051,13 +2396,13 @@ const result = {
2051
2396
  "SystemCommunicationFinApiConfiguration",
2052
2397
  "SystemCommunicationGrafanaConfiguration",
2053
2398
  "SystemCommunicationHelmRepositoryConfiguration",
2399
+ "SystemCommunicationLentAdapterPool",
2054
2400
  "SystemCommunicationLoxoneConfiguration",
2055
2401
  "SystemCommunicationMicrosoftGraphConfiguration",
2056
2402
  "SystemCommunicationPipeline",
2057
2403
  "SystemCommunicationPipelineExecution",
2058
2404
  "SystemCommunicationPipelineStatistics",
2059
2405
  "SystemCommunicationPipelineTrigger",
2060
- "SystemCommunicationPool",
2061
2406
  "SystemCommunicationSapConfiguration",
2062
2407
  "SystemCommunicationServiceAccountConfiguration",
2063
2408
  "SystemCommunicationSftpConfiguration",
@@ -2116,6 +2461,7 @@ const result = {
2116
2461
  "SystemUIBranding",
2117
2462
  "SystemUIDashboard",
2118
2463
  "SystemUIDashboardWidget",
2464
+ "SystemUIEntityForm",
2119
2465
  "SystemUIMappingCoverageConfiguration",
2120
2466
  "SystemUIProcessDiagram",
2121
2467
  "SystemUISymbolDefinition",
@@ -2284,12 +2630,18 @@ const result = {
2284
2630
  "SystemBotAttributeAggregateConfiguration_ConfiguredByUnion": [
2285
2631
  "SystemBotAttributeAggregateConfiguration"
2286
2632
  ],
2633
+ "SystemCommunicationAdapterPool_PoolServiceAccountOfUnion": [
2634
+ "SystemCommunicationAdapterPool"
2635
+ ],
2287
2636
  "SystemCommunicationAdapter_AdapterExecutionsUnion": [
2288
2637
  "SystemCommunicationAdapter"
2289
2638
  ],
2290
2639
  "SystemCommunicationAdapter_ExecutedByUnion": [
2291
2640
  "SystemCommunicationAdapter"
2292
2641
  ],
2642
+ "SystemCommunicationAdapter_LentToUnion": [
2643
+ "SystemCommunicationAdapter"
2644
+ ],
2293
2645
  "SystemCommunicationAdapter_PipelineServiceAccountOfUnion": [
2294
2646
  "SystemCommunicationAdapter"
2295
2647
  ],
@@ -2304,27 +2656,37 @@ const result = {
2304
2656
  ],
2305
2657
  "SystemCommunicationDeployableEntityInterface": [
2306
2658
  "SystemCommunicationAdapter",
2659
+ "SystemCommunicationAdapterPool",
2307
2660
  "SystemCommunicationApplication",
2308
2661
  "SystemCommunicationDeployableWorkload",
2662
+ "SystemCommunicationDeploymentSite",
2309
2663
  "SystemCommunicationPipeline",
2310
- "SystemCommunicationPipelineTrigger",
2311
- "SystemCommunicationPool"
2664
+ "SystemCommunicationPipelineTrigger"
2312
2665
  ],
2313
2666
  "SystemCommunicationDeployableWorkloadInterface": [
2314
2667
  "SystemCommunicationAdapter",
2668
+ "SystemCommunicationAdapterPool",
2315
2669
  "SystemCommunicationApplication"
2316
2670
  ],
2317
2671
  "SystemCommunicationDeployableWorkload_HelmRepositoryUsedByUnion": [
2318
2672
  "SystemCommunicationAdapter",
2673
+ "SystemCommunicationAdapterPool",
2319
2674
  "SystemCommunicationApplication"
2320
2675
  ],
2321
- "SystemCommunicationDeployableWorkload_ManagesUnion": [
2676
+ "SystemCommunicationDeployableWorkload_HostsUnion": [
2322
2677
  "SystemCommunicationAdapter",
2678
+ "SystemCommunicationAdapterPool",
2323
2679
  "SystemCommunicationApplication"
2324
2680
  ],
2681
+ "SystemCommunicationDeploymentSite_HostedByUnion": [
2682
+ "SystemCommunicationDeploymentSite"
2683
+ ],
2325
2684
  "SystemCommunicationHelmRepositoryConfiguration_HelmRepositoryUnion": [
2326
2685
  "SystemCommunicationHelmRepositoryConfiguration"
2327
2686
  ],
2687
+ "SystemCommunicationLentAdapterPool_LentFromUnion": [
2688
+ "SystemCommunicationLentAdapterPool"
2689
+ ],
2328
2690
  "SystemCommunicationPipelineExecution_ExecutedPipelineUnion": [
2329
2691
  "SystemCommunicationPipelineExecution"
2330
2692
  ],
@@ -2362,12 +2724,12 @@ const result = {
2362
2724
  "SystemCommunicationPipeline_UsedByUnion": [
2363
2725
  "SystemCommunicationPipeline"
2364
2726
  ],
2365
- "SystemCommunicationPool_ManagedByUnion": [
2366
- "SystemCommunicationPool"
2367
- ],
2368
2727
  "SystemCommunicationServiceAccountConfiguration_PipelineServiceAccountUnion": [
2369
2728
  "SystemCommunicationServiceAccountConfiguration"
2370
2729
  ],
2730
+ "SystemCommunicationServiceAccountConfiguration_PoolServiceAccountUnion": [
2731
+ "SystemCommunicationServiceAccountConfiguration"
2732
+ ],
2371
2733
  "SystemCommunicationTag_TaggedByUnion": [
2372
2734
  "SystemCommunicationTag"
2373
2735
  ],
@@ -2498,12 +2860,14 @@ const result = {
2498
2860
  "SystemBotAttributeAggregateConfiguration",
2499
2861
  "SystemBotFixup",
2500
2862
  "SystemCommunicationAdapter",
2863
+ "SystemCommunicationAdapterPool",
2501
2864
  "SystemCommunicationAiConfiguration",
2502
2865
  "SystemCommunicationApplication",
2503
2866
  "SystemCommunicationDataFlow",
2504
2867
  "SystemCommunicationDataPointMapping",
2505
2868
  "SystemCommunicationDeployableEntity",
2506
2869
  "SystemCommunicationDeployableWorkload",
2870
+ "SystemCommunicationDeploymentSite",
2507
2871
  "SystemCommunicationDiscordConfiguration",
2508
2872
  "SystemCommunicationEMailReceiverConfiguration",
2509
2873
  "SystemCommunicationEMailSenderConfiguration",
@@ -2512,13 +2876,13 @@ const result = {
2512
2876
  "SystemCommunicationFinApiConfiguration",
2513
2877
  "SystemCommunicationGrafanaConfiguration",
2514
2878
  "SystemCommunicationHelmRepositoryConfiguration",
2879
+ "SystemCommunicationLentAdapterPool",
2515
2880
  "SystemCommunicationLoxoneConfiguration",
2516
2881
  "SystemCommunicationMicrosoftGraphConfiguration",
2517
2882
  "SystemCommunicationPipeline",
2518
2883
  "SystemCommunicationPipelineExecution",
2519
2884
  "SystemCommunicationPipelineStatistics",
2520
2885
  "SystemCommunicationPipelineTrigger",
2521
- "SystemCommunicationPool",
2522
2886
  "SystemCommunicationSapConfiguration",
2523
2887
  "SystemCommunicationServiceAccountConfiguration",
2524
2888
  "SystemCommunicationSftpConfiguration",
@@ -2585,6 +2949,7 @@ const result = {
2585
2949
  "SystemUIBranding",
2586
2950
  "SystemUIDashboard",
2587
2951
  "SystemUIDashboardWidget",
2952
+ "SystemUIEntityForm",
2588
2953
  "SystemUIMappingCoverageConfiguration",
2589
2954
  "SystemUIProcessDiagram",
2590
2955
  "SystemUISymbolDefinition",
@@ -2681,10 +3046,12 @@ const result = {
2681
3046
  "SystemBotAttributeAggregateConfiguration",
2682
3047
  "SystemBotFixup",
2683
3048
  "SystemCommunicationAdapter",
3049
+ "SystemCommunicationAdapterPool",
2684
3050
  "SystemCommunicationAiConfiguration",
2685
3051
  "SystemCommunicationApplication",
2686
3052
  "SystemCommunicationDataFlow",
2687
3053
  "SystemCommunicationDataPointMapping",
3054
+ "SystemCommunicationDeploymentSite",
2688
3055
  "SystemCommunicationDiscordConfiguration",
2689
3056
  "SystemCommunicationEMailReceiverConfiguration",
2690
3057
  "SystemCommunicationEMailSenderConfiguration",
@@ -2693,13 +3060,13 @@ const result = {
2693
3060
  "SystemCommunicationFinApiConfiguration",
2694
3061
  "SystemCommunicationGrafanaConfiguration",
2695
3062
  "SystemCommunicationHelmRepositoryConfiguration",
3063
+ "SystemCommunicationLentAdapterPool",
2696
3064
  "SystemCommunicationLoxoneConfiguration",
2697
3065
  "SystemCommunicationMicrosoftGraphConfiguration",
2698
3066
  "SystemCommunicationPipeline",
2699
3067
  "SystemCommunicationPipelineExecution",
2700
3068
  "SystemCommunicationPipelineStatistics",
2701
3069
  "SystemCommunicationPipelineTrigger",
2702
- "SystemCommunicationPool",
2703
3070
  "SystemCommunicationSapConfiguration",
2704
3071
  "SystemCommunicationServiceAccountConfiguration",
2705
3072
  "SystemCommunicationSftpConfiguration",
@@ -2758,6 +3125,7 @@ const result = {
2758
3125
  "SystemUIBranding",
2759
3126
  "SystemUIDashboard",
2760
3127
  "SystemUIDashboardWidget",
3128
+ "SystemUIEntityForm",
2761
3129
  "SystemUIMappingCoverageConfiguration",
2762
3130
  "SystemUIProcessDiagram",
2763
3131
  "SystemUISymbolDefinition",
@@ -2853,10 +3221,12 @@ const result = {
2853
3221
  "SystemBotAttributeAggregateConfiguration",
2854
3222
  "SystemBotFixup",
2855
3223
  "SystemCommunicationAdapter",
3224
+ "SystemCommunicationAdapterPool",
2856
3225
  "SystemCommunicationAiConfiguration",
2857
3226
  "SystemCommunicationApplication",
2858
3227
  "SystemCommunicationDataFlow",
2859
3228
  "SystemCommunicationDataPointMapping",
3229
+ "SystemCommunicationDeploymentSite",
2860
3230
  "SystemCommunicationDiscordConfiguration",
2861
3231
  "SystemCommunicationEMailReceiverConfiguration",
2862
3232
  "SystemCommunicationEMailSenderConfiguration",
@@ -2865,13 +3235,13 @@ const result = {
2865
3235
  "SystemCommunicationFinApiConfiguration",
2866
3236
  "SystemCommunicationGrafanaConfiguration",
2867
3237
  "SystemCommunicationHelmRepositoryConfiguration",
3238
+ "SystemCommunicationLentAdapterPool",
2868
3239
  "SystemCommunicationLoxoneConfiguration",
2869
3240
  "SystemCommunicationMicrosoftGraphConfiguration",
2870
3241
  "SystemCommunicationPipeline",
2871
3242
  "SystemCommunicationPipelineExecution",
2872
3243
  "SystemCommunicationPipelineStatistics",
2873
3244
  "SystemCommunicationPipelineTrigger",
2874
- "SystemCommunicationPool",
2875
3245
  "SystemCommunicationSapConfiguration",
2876
3246
  "SystemCommunicationServiceAccountConfiguration",
2877
3247
  "SystemCommunicationSftpConfiguration",
@@ -2930,6 +3300,7 @@ const result = {
2930
3300
  "SystemUIBranding",
2931
3301
  "SystemUIDashboard",
2932
3302
  "SystemUIDashboardWidget",
3303
+ "SystemUIEntityForm",
2933
3304
  "SystemUIMappingCoverageConfiguration",
2934
3305
  "SystemUIProcessDiagram",
2935
3306
  "SystemUISymbolDefinition",
@@ -3025,10 +3396,12 @@ const result = {
3025
3396
  "SystemBotAttributeAggregateConfiguration",
3026
3397
  "SystemBotFixup",
3027
3398
  "SystemCommunicationAdapter",
3399
+ "SystemCommunicationAdapterPool",
3028
3400
  "SystemCommunicationAiConfiguration",
3029
3401
  "SystemCommunicationApplication",
3030
3402
  "SystemCommunicationDataFlow",
3031
3403
  "SystemCommunicationDataPointMapping",
3404
+ "SystemCommunicationDeploymentSite",
3032
3405
  "SystemCommunicationDiscordConfiguration",
3033
3406
  "SystemCommunicationEMailReceiverConfiguration",
3034
3407
  "SystemCommunicationEMailSenderConfiguration",
@@ -3037,13 +3410,13 @@ const result = {
3037
3410
  "SystemCommunicationFinApiConfiguration",
3038
3411
  "SystemCommunicationGrafanaConfiguration",
3039
3412
  "SystemCommunicationHelmRepositoryConfiguration",
3413
+ "SystemCommunicationLentAdapterPool",
3040
3414
  "SystemCommunicationLoxoneConfiguration",
3041
3415
  "SystemCommunicationMicrosoftGraphConfiguration",
3042
3416
  "SystemCommunicationPipeline",
3043
3417
  "SystemCommunicationPipelineExecution",
3044
3418
  "SystemCommunicationPipelineStatistics",
3045
3419
  "SystemCommunicationPipelineTrigger",
3046
- "SystemCommunicationPool",
3047
3420
  "SystemCommunicationSapConfiguration",
3048
3421
  "SystemCommunicationServiceAccountConfiguration",
3049
3422
  "SystemCommunicationSftpConfiguration",
@@ -3102,6 +3475,7 @@ const result = {
3102
3475
  "SystemUIBranding",
3103
3476
  "SystemUIDashboard",
3104
3477
  "SystemUIDashboardWidget",
3478
+ "SystemUIEntityForm",
3105
3479
  "SystemUIMappingCoverageConfiguration",
3106
3480
  "SystemUIProcessDiagram",
3107
3481
  "SystemUISymbolDefinition",
@@ -3197,10 +3571,12 @@ const result = {
3197
3571
  "SystemBotAttributeAggregateConfiguration",
3198
3572
  "SystemBotFixup",
3199
3573
  "SystemCommunicationAdapter",
3574
+ "SystemCommunicationAdapterPool",
3200
3575
  "SystemCommunicationAiConfiguration",
3201
3576
  "SystemCommunicationApplication",
3202
3577
  "SystemCommunicationDataFlow",
3203
3578
  "SystemCommunicationDataPointMapping",
3579
+ "SystemCommunicationDeploymentSite",
3204
3580
  "SystemCommunicationDiscordConfiguration",
3205
3581
  "SystemCommunicationEMailReceiverConfiguration",
3206
3582
  "SystemCommunicationEMailSenderConfiguration",
@@ -3209,13 +3585,13 @@ const result = {
3209
3585
  "SystemCommunicationFinApiConfiguration",
3210
3586
  "SystemCommunicationGrafanaConfiguration",
3211
3587
  "SystemCommunicationHelmRepositoryConfiguration",
3588
+ "SystemCommunicationLentAdapterPool",
3212
3589
  "SystemCommunicationLoxoneConfiguration",
3213
3590
  "SystemCommunicationMicrosoftGraphConfiguration",
3214
3591
  "SystemCommunicationPipeline",
3215
3592
  "SystemCommunicationPipelineExecution",
3216
3593
  "SystemCommunicationPipelineStatistics",
3217
3594
  "SystemCommunicationPipelineTrigger",
3218
- "SystemCommunicationPool",
3219
3595
  "SystemCommunicationSapConfiguration",
3220
3596
  "SystemCommunicationServiceAccountConfiguration",
3221
3597
  "SystemCommunicationSftpConfiguration",
@@ -3274,6 +3650,7 @@ const result = {
3274
3650
  "SystemUIBranding",
3275
3651
  "SystemUIDashboard",
3276
3652
  "SystemUIDashboardWidget",
3653
+ "SystemUIEntityForm",
3277
3654
  "SystemUIMappingCoverageConfiguration",
3278
3655
  "SystemUIProcessDiagram",
3279
3656
  "SystemUISymbolDefinition",
@@ -3369,10 +3746,12 @@ const result = {
3369
3746
  "SystemBotAttributeAggregateConfiguration",
3370
3747
  "SystemBotFixup",
3371
3748
  "SystemCommunicationAdapter",
3749
+ "SystemCommunicationAdapterPool",
3372
3750
  "SystemCommunicationAiConfiguration",
3373
3751
  "SystemCommunicationApplication",
3374
3752
  "SystemCommunicationDataFlow",
3375
3753
  "SystemCommunicationDataPointMapping",
3754
+ "SystemCommunicationDeploymentSite",
3376
3755
  "SystemCommunicationDiscordConfiguration",
3377
3756
  "SystemCommunicationEMailReceiverConfiguration",
3378
3757
  "SystemCommunicationEMailSenderConfiguration",
@@ -3381,13 +3760,13 @@ const result = {
3381
3760
  "SystemCommunicationFinApiConfiguration",
3382
3761
  "SystemCommunicationGrafanaConfiguration",
3383
3762
  "SystemCommunicationHelmRepositoryConfiguration",
3763
+ "SystemCommunicationLentAdapterPool",
3384
3764
  "SystemCommunicationLoxoneConfiguration",
3385
3765
  "SystemCommunicationMicrosoftGraphConfiguration",
3386
3766
  "SystemCommunicationPipeline",
3387
3767
  "SystemCommunicationPipelineExecution",
3388
3768
  "SystemCommunicationPipelineStatistics",
3389
3769
  "SystemCommunicationPipelineTrigger",
3390
- "SystemCommunicationPool",
3391
3770
  "SystemCommunicationSapConfiguration",
3392
3771
  "SystemCommunicationServiceAccountConfiguration",
3393
3772
  "SystemCommunicationSftpConfiguration",
@@ -3446,6 +3825,7 @@ const result = {
3446
3825
  "SystemUIBranding",
3447
3826
  "SystemUIDashboard",
3448
3827
  "SystemUIDashboardWidget",
3828
+ "SystemUIEntityForm",
3449
3829
  "SystemUIMappingCoverageConfiguration",
3450
3830
  "SystemUIProcessDiagram",
3451
3831
  "SystemUISymbolDefinition",
@@ -3541,10 +3921,12 @@ const result = {
3541
3921
  "SystemBotAttributeAggregateConfiguration",
3542
3922
  "SystemBotFixup",
3543
3923
  "SystemCommunicationAdapter",
3924
+ "SystemCommunicationAdapterPool",
3544
3925
  "SystemCommunicationAiConfiguration",
3545
3926
  "SystemCommunicationApplication",
3546
3927
  "SystemCommunicationDataFlow",
3547
3928
  "SystemCommunicationDataPointMapping",
3929
+ "SystemCommunicationDeploymentSite",
3548
3930
  "SystemCommunicationDiscordConfiguration",
3549
3931
  "SystemCommunicationEMailReceiverConfiguration",
3550
3932
  "SystemCommunicationEMailSenderConfiguration",
@@ -3553,13 +3935,13 @@ const result = {
3553
3935
  "SystemCommunicationFinApiConfiguration",
3554
3936
  "SystemCommunicationGrafanaConfiguration",
3555
3937
  "SystemCommunicationHelmRepositoryConfiguration",
3938
+ "SystemCommunicationLentAdapterPool",
3556
3939
  "SystemCommunicationLoxoneConfiguration",
3557
3940
  "SystemCommunicationMicrosoftGraphConfiguration",
3558
3941
  "SystemCommunicationPipeline",
3559
3942
  "SystemCommunicationPipelineExecution",
3560
3943
  "SystemCommunicationPipelineStatistics",
3561
3944
  "SystemCommunicationPipelineTrigger",
3562
- "SystemCommunicationPool",
3563
3945
  "SystemCommunicationSapConfiguration",
3564
3946
  "SystemCommunicationServiceAccountConfiguration",
3565
3947
  "SystemCommunicationSftpConfiguration",
@@ -3618,6 +4000,7 @@ const result = {
3618
4000
  "SystemUIBranding",
3619
4001
  "SystemUIDashboard",
3620
4002
  "SystemUIDashboardWidget",
4003
+ "SystemUIEntityForm",
3621
4004
  "SystemUIMappingCoverageConfiguration",
3622
4005
  "SystemUIProcessDiagram",
3623
4006
  "SystemUISymbolDefinition",
@@ -3739,6 +4122,7 @@ const result = {
3739
4122
  "SystemUIBranding",
3740
4123
  "SystemUIDashboard",
3741
4124
  "SystemUIDashboardWidget",
4125
+ "SystemUIEntityForm",
3742
4126
  "SystemUIMappingCoverageConfiguration",
3743
4127
  "SystemUIProcessDiagram",
3744
4128
  "SystemUISymbolDefinition",
@@ -4039,8 +4423,12 @@ class AttributeSelectorService {
4039
4423
  if (!type) {
4040
4424
  return { items: [], totalCount: 0 };
4041
4425
  }
4042
- const items = (type.availableQueryColumns?.items || [])
4043
- .filter((item) => item !== null)
4426
+ const all = (type.availableQueryColumns?.items || [])
4427
+ .filter((item) => item !== null);
4428
+ // Credential columns are never offered (SECRET-safe, AB#5542): a runtime query row would
4429
+ // project their value in clear text.
4430
+ const items = all
4431
+ .filter(item => !isSecretQueryColumn(item.attributePath, item.attributeValueType))
4044
4432
  .map(item => ({
4045
4433
  attributePath: item.attributePath,
4046
4434
  attributeValueType: item.attributeValueType,
@@ -4048,7 +4436,7 @@ class AttributeSelectorService {
4048
4436
  }));
4049
4437
  return {
4050
4438
  items,
4051
- totalCount: type.availableQueryColumns?.totalCount || 0
4439
+ totalCount: Math.max(0, (type.availableQueryColumns?.totalCount || 0) - (all.length - items.length))
4052
4440
  };
4053
4441
  }));
4054
4442
  }
@@ -5009,6 +5397,169 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImpor
5009
5397
  }]
5010
5398
  }] });
5011
5399
 
5400
+ /**
5401
+ * Bot services REST client of the SECRET value type administration (AB#5528 / AB#5544, frontend
5402
+ * handover §9): environment encryption status, tenant secret sweeps and their pre-sweep dumps.
5403
+ * Like {@link BotService}, every call takes the tenant explicitly and addresses
5404
+ * `{botServices}{tenantId}/v1/...`. Methods return `null` when the bot service URL is not
5405
+ * configured; HTTP errors (403 missing role, 400 `ConfirmationRequired`) are rethrown as
5406
+ * `HttpErrorResponse` for the caller.
5407
+ *
5408
+ * Roles (handover §6, §14): status — any user with tenant access; sweep runs — `AdminPanelManagement`;
5409
+ * starting a sweep, deleting a dump and restoring a dump — `SecretManagement`.
5410
+ *
5411
+ * Tenant (handover §13, §14): the `{tenantId}/v1/secrets/...` routes (status, sweep runs, dump
5412
+ * delete, dump restore) accept only the token's OWN tenant — always pass the current tenant, never a child tenant
5413
+ * (child-tenant links only navigate into that tenant). A restore appears as a run with
5414
+ * `trigger: Restore`, mode `Encrypt` and `dump: null`.
5415
+ */
5416
+ class BotSecretsService {
5417
+ httpClient = inject(HttpClient);
5418
+ configurationService = inject(CONFIGURATION_SERVICE);
5419
+ baseUrl(tenantId) {
5420
+ const botServicesUrl = this.configurationService.config?.botServices;
5421
+ return botServicesUrl ? `${botServicesUrl}${tenantId}/v1/` : null;
5422
+ }
5423
+ /** `GET {tenantId}/v1/secrets/status` — environment-level, identical in every tenant. */
5424
+ async getSecretEnvironmentStatus(tenantId) {
5425
+ const baseUrl = this.baseUrl(tenantId);
5426
+ if (!baseUrl)
5427
+ return null;
5428
+ return firstValueFrom(this.httpClient.get(`${baseUrl}secrets/status`));
5429
+ }
5430
+ /**
5431
+ * `POST {tenantId}/v1/jobs/secret-sweep?mode=&confirm=` — Encrypt and CleanupUnreadable need
5432
+ * `confirm = true` (the server answers `400 ConfirmationRequired` otherwise and takes a
5433
+ * pre-sweep dump first). Role `SecretManagement`.
5434
+ */
5435
+ async startSecretSweep(tenantId, mode, confirm = false) {
5436
+ const baseUrl = this.baseUrl(tenantId);
5437
+ if (!baseUrl)
5438
+ return null;
5439
+ let params = new HttpParams().set('mode', mode);
5440
+ if (confirm) {
5441
+ params = params.set('confirm', true);
5442
+ }
5443
+ return firstValueFrom(this.httpClient.post(`${baseUrl}jobs/secret-sweep`, null, { params }));
5444
+ }
5445
+ /**
5446
+ * `GET {tenantId}/v1/jobs/secret-sweep/report` — the last sweep report of the tenant (counts,
5447
+ * unreadable / cleared references, never values); `null` when there is none (`404`) or the bot
5448
+ * service URL is not configured. Role `AdminPanelManagement`.
5449
+ */
5450
+ async getSecretSweepReport(tenantId) {
5451
+ const baseUrl = this.baseUrl(tenantId);
5452
+ if (!baseUrl)
5453
+ return null;
5454
+ try {
5455
+ return await firstValueFrom(this.httpClient.get(`${baseUrl}jobs/secret-sweep/report`));
5456
+ }
5457
+ catch (error) {
5458
+ if (error instanceof HttpErrorResponse && error.status === 404)
5459
+ return null;
5460
+ throw error;
5461
+ }
5462
+ }
5463
+ /**
5464
+ * `GET {tenantId}/v1/secrets/sweep-runs?limit=` — newest first. Role `AdminPanelManagement`.
5465
+ * A `403` is rethrown WITHOUT the global "Access denied" toast (`MM_CALLER_HANDLED_STATUSES`): the
5466
+ * caller explains it in place.
5467
+ */
5468
+ async getSecretSweepRuns(tenantId, limit = 20) {
5469
+ const baseUrl = this.baseUrl(tenantId);
5470
+ if (!baseUrl)
5471
+ return null;
5472
+ const params = new HttpParams().set('limit', limit);
5473
+ const context = new HttpContext().set(MM_CALLER_HANDLED_STATUSES, [403]);
5474
+ return (await firstValueFrom(this.httpClient.get(`${baseUrl}secrets/sweep-runs`, { params, context }))) ?? [];
5475
+ }
5476
+ /**
5477
+ * `DELETE {tenantId}/v1/secrets/sweep-runs/{runId}/dump` — deletes a pre-sweep dump before it
5478
+ * expires. `404` (unknown run / no dump) and `409` (already deleted) map to a result instead of an
5479
+ * error; other errors (e.g. `403` without `SecretManagement`) are rethrown.
5480
+ */
5481
+ async deleteSecretSweepDump(tenantId, runId) {
5482
+ const baseUrl = this.baseUrl(tenantId);
5483
+ if (!baseUrl)
5484
+ return null;
5485
+ try {
5486
+ await firstValueFrom(this.httpClient.delete(`${baseUrl}secrets/sweep-runs/${encodeURIComponent(runId)}/dump`));
5487
+ return 'Deleted';
5488
+ }
5489
+ catch (error) {
5490
+ if (error instanceof HttpErrorResponse && error.status === 404)
5491
+ return 'NotFound';
5492
+ if (error instanceof HttpErrorResponse && error.status === 409)
5493
+ return 'AlreadyDeleted';
5494
+ throw error;
5495
+ }
5496
+ }
5497
+ /**
5498
+ * `POST {tenantId}/v1/secrets/sweep-runs/{runId}/restore-dump?confirm=` (handover §14, AB#5559) —
5499
+ * restores the run's pre-sweep dump into the tenant (replaces the tenant database, then a Verify
5500
+ * runs). Role `SecretManagement`, own tenant only; `confirm = true` only after the user confirmed.
5501
+ * 🔴 A dump taken before the first Encrypt holds plaintext secrets: restoring it brings them back.
5502
+ *
5503
+ * Every documented answer (200 / 400 / 403 / 404 / 409) is mapped to a
5504
+ * {@link SecretSweepDumpRestoreResult} and kept away from the global error toast
5505
+ * (`MM_CALLER_HANDLED_STATUSES`); other errors (network, 5xx) are rethrown.
5506
+ */
5507
+ async restoreSecretSweepDump(tenantId, runId, confirm = false) {
5508
+ const baseUrl = this.baseUrl(tenantId);
5509
+ if (!baseUrl)
5510
+ return null;
5511
+ let params = new HttpParams();
5512
+ if (confirm) {
5513
+ params = params.set('confirm', true);
5514
+ }
5515
+ const context = new HttpContext().set(MM_CALLER_HANDLED_STATUSES, [400, 403, 404, 409]);
5516
+ try {
5517
+ const response = await firstValueFrom(this.httpClient.post(`${baseUrl}secrets/sweep-runs/${encodeURIComponent(runId)}/restore-dump`, null, { params, context }));
5518
+ return { status: 'Started', jobId: response?.jobId ?? '' };
5519
+ }
5520
+ catch (error) {
5521
+ if (!(error instanceof HttpErrorResponse))
5522
+ throw error;
5523
+ const message = errorMessageOf(error);
5524
+ switch (error.status) {
5525
+ case 400:
5526
+ return { status: 'ConfirmationRequired', message };
5527
+ case 403:
5528
+ return { status: 'Forbidden', message };
5529
+ case 404:
5530
+ return { status: 'NotFound', message };
5531
+ case 409:
5532
+ return { status: errorCodeOf(error) === SECRET_DUMP_RESTORE_ERROR_DUMP_KEY_MISSING ? 'DumpKeyMissing' : 'DumpDeleted', message };
5533
+ default:
5534
+ throw error;
5535
+ }
5536
+ }
5537
+ }
5538
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: BotSecretsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5539
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: BotSecretsService, providedIn: 'root' });
5540
+ }
5541
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: BotSecretsService, decorators: [{
5542
+ type: Injectable,
5543
+ args: [{ providedIn: 'root' }]
5544
+ }] });
5545
+ /** The code of a bot error body (`statusDescription`, handover §12; `code` / `errorCode` tolerated). */
5546
+ function errorCodeOf(error) {
5547
+ const body = error.error;
5548
+ const code = body && typeof body === 'object' ? (body.code ?? body.errorCode ?? body.statusDescription) : null;
5549
+ if (typeof code === 'string')
5550
+ return code;
5551
+ // A body that arrives as text (no JSON content type) still names the code.
5552
+ if (typeof error.error === 'string' && error.error.includes(SECRET_DUMP_RESTORE_ERROR_DUMP_KEY_MISSING)) {
5553
+ return SECRET_DUMP_RESTORE_ERROR_DUMP_KEY_MISSING;
5554
+ }
5555
+ return null;
5556
+ }
5557
+ /** The value-free message of a bot error body, if any. */
5558
+ function errorMessageOf(error) {
5559
+ const body = error.error;
5560
+ return body && typeof body === 'object' && typeof body.message === 'string' && body.message ? body.message : null;
5561
+ }
5562
+
5012
5563
  class HealthService {
5013
5564
  httpClient = inject(HttpClient);
5014
5565
  configurationService = inject(CONFIGURATION_SERVICE);
@@ -5098,6 +5649,105 @@ class IdentityService {
5098
5649
  }
5099
5650
  return null;
5100
5651
  }
5652
+ /**
5653
+ * Reads one page of the slim user directory of the current tenant
5654
+ * (`GET {tenant}/v1/users/directory?skip=&take=&search=`, AB#5859): id and display name only.
5655
+ *
5656
+ * Unlike {@link getUsers} (`users/getPaged`, which requires the `UserManagement` role once the
5657
+ * identity service enforces tenant roles), the directory is available to any signed-in user of
5658
+ * the own tenant — the token's tenant must equal the route tenant. It is meant for pickers
5659
+ * (group members, assignees, ...) that need nothing but a user id and a name.
5660
+ *
5661
+ * Availability: introduced on the identity branch `feat/gerald/identity-rest-role-authz`, not yet
5662
+ * released. Identity versions without the endpoint answer **404**; the error is propagated as
5663
+ * `HttpErrorResponse`. Use {@link getUserDirectoryWithFallback} to transparently fall back to
5664
+ * `users/getPaged` on such versions.
5665
+ *
5666
+ * @param skip Number of entries to skip (negative values are treated as 0).
5667
+ * @param take Page size; clamped to 1..500 (the server limit). Non-finite values use 100.
5668
+ * @param search Optional case-insensitive substring of the display name; omitted when empty.
5669
+ * The server never matches user names or e-mail addresses.
5670
+ * @returns The page (sorted by display name, then id), or `null` when no identity URL is configured.
5671
+ */
5672
+ async getUserDirectory(skip, take, search) {
5673
+ const baseUrl = await this.getApiBaseUrl();
5674
+ if (!baseUrl) {
5675
+ return null;
5676
+ }
5677
+ return this.fetchUserDirectory(baseUrl, skip, take, search);
5678
+ }
5679
+ /**
5680
+ * Like {@link getUserDirectory}, but falls back to `users/getPaged` when the identity service does
5681
+ * not know the directory endpoint yet (404). The missing capability is remembered per tenant for
5682
+ * the lifetime of this (root) service, so the 404 is hit at most once per tenant and session.
5683
+ *
5684
+ * The fallback maps {@link UserDto} to {@link UserDirectoryEntryDto} with the server's display
5685
+ * name rule ("First Last", else the user name) and applies `search` to the returned page only —
5686
+ * it is a best-effort bridge for old identity versions, and it still needs `UserManagement`
5687
+ * wherever `getPaged` requires it. Errors other than the 404 (401, 403, 5xx, ...) are propagated.
5688
+ */
5689
+ async getUserDirectoryWithFallback(skip, take, search) {
5690
+ const baseUrl = await this.getApiBaseUrl();
5691
+ if (!baseUrl) {
5692
+ return null;
5693
+ }
5694
+ if (!this.tenantsWithoutUserDirectory.has(baseUrl)) {
5695
+ try {
5696
+ return await this.fetchUserDirectory(baseUrl, skip, take, search);
5697
+ }
5698
+ catch (error) {
5699
+ if (!(error instanceof HttpErrorResponse) || error.status !== 404) {
5700
+ throw error;
5701
+ }
5702
+ this.tenantsWithoutUserDirectory.add(baseUrl);
5703
+ }
5704
+ }
5705
+ const page = await this.getUsers(Math.max(0, Math.trunc(skip) || 0), IdentityService.clampDirectoryTake(take));
5706
+ if (!page) {
5707
+ return null;
5708
+ }
5709
+ const term = search?.trim().toLowerCase() ?? '';
5710
+ const list = (page.list ?? [])
5711
+ .map(user => IdentityService.toUserDirectoryEntry(user))
5712
+ .filter(entry => !term || entry.displayName.toLowerCase().includes(term));
5713
+ return {
5714
+ skip: page.skip,
5715
+ take: page.take,
5716
+ totalCount: term ? list.length : page.totalCount,
5717
+ list
5718
+ };
5719
+ }
5720
+ /** Base URLs (= tenants) whose identity service answered 404 for `users/directory`. */
5721
+ tenantsWithoutUserDirectory = new Set();
5722
+ static maxUserDirectoryPageSize = 500;
5723
+ static clampDirectoryTake(take) {
5724
+ if (!Number.isFinite(take)) {
5725
+ return 100;
5726
+ }
5727
+ return Math.min(IdentityService.maxUserDirectoryPageSize, Math.max(1, Math.trunc(take)));
5728
+ }
5729
+ static toUserDirectoryEntry(user) {
5730
+ const fullName = [user.firstName, user.lastName]
5731
+ .filter(n => !!n && n.trim().length > 0)
5732
+ .map(n => n.trim())
5733
+ .join(' ');
5734
+ return { userId: user.userId, displayName: fullName.length > 0 ? fullName : (user.name ?? '') };
5735
+ }
5736
+ async fetchUserDirectory(baseUrl, skip, take, search) {
5737
+ let params = new HttpParams()
5738
+ .set('skip', Math.max(0, Math.trunc(skip) || 0).toString())
5739
+ .set('take', IdentityService.clampDirectoryTake(take).toString());
5740
+ const term = search?.trim();
5741
+ if (term) {
5742
+ // HttpParams URL-encodes the value.
5743
+ params = params.set('search', term);
5744
+ }
5745
+ const response = await firstValueFrom(this.httpClient.get(baseUrl + 'users/directory', {
5746
+ params,
5747
+ observe: 'response'
5748
+ }));
5749
+ return response.body;
5750
+ }
5101
5751
  async getUserDetails(userName) {
5102
5752
  const baseUrl = await this.getApiBaseUrl();
5103
5753
  if (baseUrl) {
@@ -5890,7 +6540,12 @@ class JobManagementService {
5890
6540
  link.click();
5891
6541
  }
5892
6542
  }
5893
- async waitForJob(jobId, title, operation) {
6543
+ /**
6544
+ * Polls a job until it ends and shows its error on failure.
6545
+ * @param formatErrorDetails optional formatter for the failure text, e.g. to append an explanation
6546
+ * of known message codes (the Studio explains the SECRET compiler messages of a CK import, AB#5544).
6547
+ */
6548
+ async waitForJob(jobId, title, operation, formatErrorDetails) {
5894
6549
  let cancelled = false;
5895
6550
  const progressSubject = new Subject();
5896
6551
  const progressDialog = this.progressWindowService.showIndeterminateProgress(title, progressSubject.asObservable(), {
@@ -5916,7 +6571,7 @@ class JobManagementService {
5916
6571
  }
5917
6572
  else {
5918
6573
  const errorDetails = jobDto.errorMessage || jobDto.reason || 'Unknown error';
5919
- this.messageService.showErrorWithDetails(errorDetails, operation);
6574
+ this.messageService.showErrorWithDetails(formatErrorDetails ? formatErrorDetails(errorDetails) : errorDetails, operation);
5920
6575
  }
5921
6576
  break;
5922
6577
  }
@@ -5960,7 +6615,7 @@ class CommunicationService {
5960
6615
  /**
5961
6616
  * Enables the Communication feature for a tenant. Installs the
5962
6617
  * `System.Communication` CK model and provisions the required runtime wiring
5963
- * for adapters/pools. Errors propagate to the caller.
6618
+ * for adapters/deployment sites. Errors propagate to the caller.
5964
6619
  */
5965
6620
  async enableCommunication(tenantId) {
5966
6621
  if (!this.communicationServicesUrl) {
@@ -5972,7 +6627,7 @@ class CommunicationService {
5972
6627
  /**
5973
6628
  * Disables the Communication feature for a tenant. Reversible flag flip that
5974
6629
  * removes the trigger schedules and unloads the tenant from the controller;
5975
- * nothing is undeployed. Refused with 409 while pools or workloads of the
6630
+ * nothing is undeployed. Refused with 409 while deployment sites or workloads of the
5976
6631
  * tenant are still deployed (AB#4255) — the error body names them. The UI
5977
6632
  * must confirm before calling. Errors propagate to the caller.
5978
6633
  */
@@ -6024,8 +6679,16 @@ class CommunicationService {
6024
6679
  * supplied UTC timestamp are returned, keeping subsequent refreshes light.
6025
6680
  */
6026
6681
  async getAdapterMetrics(tenantId, adapterRtId, adapterCkTypeId, since) {
6682
+ return (await this.getAdapterMetricsResult(tenantId, adapterRtId, adapterCkTypeId, since)).samples;
6683
+ }
6684
+ /**
6685
+ * Like {@link getAdapterMetrics}, but reports a 404 (adapter not connected / unknown to the
6686
+ * controller) as `notFound: true` instead of hiding it, so pollers can back off (AB#5546).
6687
+ * Other errors are rethrown.
6688
+ */
6689
+ async getAdapterMetricsResult(tenantId, adapterRtId, adapterCkTypeId, since) {
6027
6690
  if (!this.communicationServicesUrl) {
6028
- return [];
6691
+ return { samples: [], notFound: false };
6029
6692
  }
6030
6693
  const rtEntityId = encodeURIComponent(`${adapterCkTypeId}@${adapterRtId}`);
6031
6694
  const uri = `${this.communicationServicesUrl}${tenantId}/v1/adapter/${rtEntityId}/metrics`;
@@ -6035,53 +6698,67 @@ class CommunicationService {
6035
6698
  }
6036
6699
  return firstValueFrom(this.httpClient
6037
6700
  .get(uri, { params, headers: this.noCacheHeaders })
6038
- .pipe(catchError((err) => {
6701
+ .pipe(map((samples) => ({ samples: samples ?? [], notFound: false })), catchError((err) => {
6039
6702
  // 404 = adapter not connected yet / unknown to the controller;
6040
6703
  // surface as "no samples" so the UI can render an empty state
6041
6704
  // instead of a toast.
6042
6705
  if (err.status === 404) {
6043
- return of([]);
6706
+ return of({ samples: [], notFound: true });
6044
6707
  }
6045
6708
  return throwError(() => err);
6046
6709
  })));
6047
6710
  }
6048
6711
  // ============================================================================
6049
- // Pool-Level Adapter Deployment
6712
+ // Deployment-Site-Level Deployment (System.Communication 4.x)
6050
6713
  // ============================================================================
6051
6714
  /**
6052
- * Deploys a pool. For Cloud-environment pools, this triggers the central
6053
- * Communication Operator to provision the corresponding CommunicationPool
6054
- * CR and broker secret. Edge-environment pools transition state without
6055
- * any operator notification.
6715
+ * Deploys a deployment site (`System.Communication/DeploymentSite`, the CK type that was
6716
+ * `Pool` before System.Communication 4.x). For Cloud-environment sites, this triggers the
6717
+ * central Communication Operator to provision the corresponding `CommunicationPool` CR and
6718
+ * broker secret. Edge-environment sites transition state without any operator notification.
6719
+ *
6720
+ * The method keeps its name (`deployPool`) so callers stay source compatible; the wire contract
6721
+ * is the controller's `DeploymentSiteController`:
6722
+ * `POST {communicationServices}{tenantId}/v1/deploymentsite/deploy?deploymentSiteRtId=…`.
6723
+ * These route and parameter literals are the server's contract, not a naming preference — check
6724
+ * any change against the controller's `[Route]` / `[FromQuery]` (AB#5271, AB#5842).
6725
+ *
6726
+ * @param poolRtId runtime id of the deployment site
6056
6727
  */
6057
6728
  async deployPool(tenantId, poolRtId) {
6058
6729
  if (this.communicationServicesUrl) {
6059
- const params = new HttpParams().set('poolRtId', poolRtId);
6060
- const uri = `${this.communicationServicesUrl}${tenantId}/v1/pool/deploy`;
6730
+ const params = new HttpParams().set('deploymentSiteRtId', poolRtId);
6731
+ const uri = `${this.communicationServicesUrl}${tenantId}/v1/deploymentsite/deploy`;
6061
6732
  await firstValueFrom(this.httpClient.post(uri, null, { params, observe: 'response' }));
6062
6733
  }
6063
6734
  }
6064
6735
  /**
6065
- * Undeploys a pool. For Cloud-environment pools, this notifies the central
6066
- * Communication Operator to remove the CommunicationPool CR and broker
6067
- * secret.
6736
+ * Undeploys a deployment site. For Cloud-environment sites, this notifies the central
6737
+ * Communication Operator to remove the `CommunicationPool` CR and broker secret.
6738
+ *
6739
+ * Wire contract: `POST {communicationServices}{tenantId}/v1/deploymentsite/undeploy?deploymentSiteRtId=…`
6740
+ * (see {@link deployPool}).
6741
+ *
6742
+ * @param poolRtId runtime id of the deployment site
6068
6743
  */
6069
6744
  async undeployPool(tenantId, poolRtId) {
6070
6745
  if (this.communicationServicesUrl) {
6071
- const params = new HttpParams().set('poolRtId', poolRtId);
6072
- const uri = `${this.communicationServicesUrl}${tenantId}/v1/pool/undeploy`;
6746
+ const params = new HttpParams().set('deploymentSiteRtId', poolRtId);
6747
+ const uri = `${this.communicationServicesUrl}${tenantId}/v1/deploymentsite/undeploy`;
6073
6748
  await firstValueFrom(this.httpClient.post(uri, null, { params, observe: 'response' }));
6074
6749
  }
6075
6750
  }
6076
6751
  /**
6077
- * Deploys a single workload (Adapter or Application) via its parent
6078
- * pool. Independent of pool deploy — the workload's pool must already
6079
- * be deployed, but only this workload's helm-install fires.
6752
+ * Deploys a single workload (Adapter, Application or AdapterPool) via the deployment site that
6753
+ * hosts it. Independent of the site's own deploy — the site must already be deployed, but only
6754
+ * this workload's helm-install fires.
6755
+ *
6756
+ * Wire contract: `POST {communicationServices}{tenantId}/v1/deploymentsite/workloads/deploy?workloadRtId=…`.
6080
6757
  */
6081
6758
  async deployWorkload(tenantId, workloadRtId) {
6082
6759
  if (this.communicationServicesUrl) {
6083
6760
  const params = new HttpParams().set('workloadRtId', workloadRtId);
6084
- const uri = `${this.communicationServicesUrl}${tenantId}/v1/pool/workloads/deploy`;
6761
+ const uri = `${this.communicationServicesUrl}${tenantId}/v1/deploymentsite/workloads/deploy`;
6085
6762
  await firstValueFrom(this.httpClient.post(uri, null, { params, observe: 'response' }));
6086
6763
  }
6087
6764
  }
@@ -6116,13 +6793,15 @@ class CommunicationService {
6116
6793
  return response ?? [];
6117
6794
  }
6118
6795
  /**
6119
- * Undeploys a single workload (Adapter or Application). Triggers a
6120
- * helm-uninstall for the workload only; the pool itself stays deployed.
6796
+ * Undeploys a single workload (Adapter, Application or AdapterPool). Triggers a helm-uninstall
6797
+ * for the workload only; the hosting deployment site stays deployed.
6798
+ *
6799
+ * Wire contract: `POST {communicationServices}{tenantId}/v1/deploymentsite/workloads/undeploy?workloadRtId=…`.
6121
6800
  */
6122
6801
  async undeployWorkload(tenantId, workloadRtId) {
6123
6802
  if (this.communicationServicesUrl) {
6124
6803
  const params = new HttpParams().set('workloadRtId', workloadRtId);
6125
- const uri = `${this.communicationServicesUrl}${tenantId}/v1/pool/workloads/undeploy`;
6804
+ const uri = `${this.communicationServicesUrl}${tenantId}/v1/deploymentsite/workloads/undeploy`;
6126
6805
  await firstValueFrom(this.httpClient.post(uri, null, { params, observe: 'response' }));
6127
6806
  }
6128
6807
  }
@@ -6256,6 +6935,26 @@ class CommunicationService {
6256
6935
  const uri = `${this.communicationServicesUrl}${tenantId}/v1/adapter/${adapterRtId}/serviceAccount/rotateSecret`;
6257
6936
  return await firstValueFrom(this.httpClient.post(uri, null));
6258
6937
  }
6938
+ /**
6939
+ * Rotates the client secret of a `ServiceAccountConfiguration` (`POST
6940
+ * /serviceAccount/{configurationRtId}/rotateSecret`, OctoMesh AB#5111) — the
6941
+ * configuration-bound variant of {@link rotateAdapterServiceAccountSecret} with the same core
6942
+ * logic and result: an adapter-owned configuration is rotated through its adapter server-side,
6943
+ * a standalone (declared) one directly. Roles are never touched.
6944
+ *
6945
+ * Same contract as the adapter-bound call: the result carries **no secret**, the old secret is
6946
+ * invalid once this resolves, and the pipelines / data flows using the account keep presenting
6947
+ * it until they are redeployed (`requiresPipelineRedeploy`, `message`). Throws when the
6948
+ * communication services URL is missing or the controller refuses (the error text says that
6949
+ * the previous secret remains in effect).
6950
+ */
6951
+ async rotateServiceAccountConfigurationSecret(tenantId, configurationRtId) {
6952
+ if (!this.communicationServicesUrl) {
6953
+ throw new Error('Communication services URL is not configured');
6954
+ }
6955
+ const uri = `${this.communicationServicesUrl}${tenantId}/v1/serviceAccount/${configurationRtId}/rotateSecret`;
6956
+ return await firstValueFrom(this.httpClient.post(uri, null));
6957
+ }
6259
6958
  /**
6260
6959
  * Enables or disables debug capture for a pipeline via the dedicated debug
6261
6960
  * endpoint (`PATCH /pipeline/{id}/debug`). This is the ONLY way debug capture
@@ -6690,7 +7389,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImpor
6690
7389
  }] });
6691
7390
 
6692
7391
  const GetEntitiesByCkTypeDocumentDto = gql `
6693
- query getEntitiesByCkType($ckTypeId: String!, $rtId: OctoObjectId, $after: String, $first: Int, $searchFilter: SearchFilter, $fieldFilters: [FieldFilter], $sort: [Sort]) {
7392
+ query getEntitiesByCkType($ckTypeId: String!, $attributeNames: [String!]!, $rtId: OctoObjectId, $after: String, $first: Int, $searchFilter: SearchFilter, $fieldFilters: [FieldFilter], $sort: [Sort]) {
6694
7393
  runtime {
6695
7394
  runtimeEntities(
6696
7395
  ckId: $ckTypeId
@@ -6710,7 +7409,7 @@ const GetEntitiesByCkTypeDocumentDto = gql `
6710
7409
  rtDisplayDescription
6711
7410
  rtCreationDateTime
6712
7411
  rtChangedDateTime
6713
- attributes(resolveEnumValuesToNames: true) {
7412
+ attributes(attributeNames: $attributeNames, resolveEnumValuesToNames: true) {
6714
7413
  items {
6715
7414
  attributeName
6716
7415
  value
@@ -6750,6 +7449,8 @@ class RuntimeEntitySelectDataSource {
6750
7449
  const result = await firstValueFrom(this.getEntitiesByCkTypeGQL.fetch({
6751
7450
  variables: {
6752
7451
  ckTypeId: this.ckTypeId,
7452
+ // Only rt* fields are displayed — no attributes (SECRET-safe, AB#5542).
7453
+ attributeNames: [],
6753
7454
  first: take ?? 10,
6754
7455
  fieldFilters: [
6755
7456
  // Search by the engine-computed display name (AB#4813); rtId matching required exact
@@ -6811,6 +7512,7 @@ class RuntimeEntityDialogDataSource {
6811
7512
  return from(this.getEntitiesByCkTypeGQL.fetch({
6812
7513
  variables: {
6813
7514
  ckTypeId: this.ckTypeId,
7515
+ attributeNames: [],
6814
7516
  first: options.take,
6815
7517
  after: options.skip > 0 ? btoa(`arrayconnection:${options.skip - 1}`) : undefined,
6816
7518
  fieldFilters: fieldFilters.length > 0 ? fieldFilters : undefined
@@ -7147,5 +7849,5 @@ function provideOctoServices(octoServiceOptions) {
7147
7849
  * Generated bundle index. Do not edit.
7148
7850
  */
7149
7851
 
7150
- export { AggregationInputTypesDto, AggregationTypeDto, AggregationTypesDto, AiService, ArchiveStorageHealthDto, AssetRepoGraphQlDataSource, AssetRepoService, AssociationModOptionsDto, AttributeSelectorService, AttributeValueTypeDto, BasicEnergyCarrierTypeDto, BasicEnergyDataQualityDto, BasicEnergyFacilityTypeDto, BasicEnergyProductionTypeDto, BasicEnergyStateDto, BasicLegalEntityTypeDto, BasicSalutationDto, BasicTypeOfTelephoneBasicDto, BasicTypeOfTelephoneEnhancedDto, BasicUnitOfMeasureDto, BlueprintConflictResolutionDto, BlueprintUpdateModeDto, BotService, BucketAlignmentDto, BucketAlignmentInputDto, CONFIGURATION_SERVICE, CkExtensionUpdateOperationsDto, CkModelCatalogService, CkModelService, CkRollupFunctionDto, CkTypeAttributeService, CkTypeMetaData, CkTypeSelectorService, CommunicationService, DeepGraphDirectionDto, DeleteStrategiesDto, DeploymentState, EnergyCommunityBillingCycleDto, EnergyCommunityBillingDocumentStateDto, EnergyCommunityBillingTypeDto, EnergyCommunityTaxProcedureCreditNoteDto, EnvironmentCarbonScopeDto, EnvironmentComplianceCategoryDto, EnvironmentComplianceStatusDto, EnvironmentEnergySourceDto, EnvironmentGoalStateDto, FieldFilterOperatorsDto, FormulaResultTypeDto, GetCkModelByIdDocumentDto, GetCkModelByIdDtoGQL, GetCkRecordAttributesDocumentDto, GetCkRecordAttributesDtoGQL, GetCkTypeAttributesDocumentDto, GetCkTypeAttributesDtoGQL, GetCkTypeAvailableQueryColumnsDocumentDto, GetCkTypeAvailableQueryColumnsDtoGQL, GetCkTypesDocumentDto, GetCkTypesDtoGQL, GetDerivedCkTypesDocumentDto, GetDerivedCkTypesDtoGQL, GetEntitiesByCkTypeDocumentDto, GetEntitiesByCkTypeDtoGQL, GraphDirectionDto, GraphQL, GraphQLCloneIgnoredProperties, GraphQLCommonIgnoredProperties, GraphQlDataSource, HealthService, HealthStatus, IDENTITY_PROVIDER_TYPE_LABELS, IdentityProviderType, IdentityService, ImportStrategyDto, IndustryBasicAlarmPriorityDto, IndustryBasicAlarmSourceTypeDto, IndustryBasicAlarmStateDto, IndustryBasicAlarmTypeDto, IndustryBasicIecDataTypeDto, IndustryBasicMachineCapabilitiesDto, IndustryBasicMachineStateDto, IndustryEnergyDemandResponseMarketDto, IndustryEnergyDemandResponseStatusDto, IndustryEnergyTariffTypeDto, IndustryMaintenanceAggregationTypeDto, IndustryMaintenanceCostCategoryDto, IndustryMaintenanceEnergyBalanceGroupDto, IndustryMaintenanceEnergyBalanceProductDto, IndustryMaintenanceEnergyBalanceUnitDto, IndustryMaintenanceOrderPriorityDto, IndustryMaintenanceOrderStateDto, IndustryMaintenanceOrderTypeDto, IndustryMaintenanceServiceTypeDto, IndustryManufacturingFeedbackSyncStateDto, IndustryManufacturingProductionOrderItemStateDto, IndustryManufacturingProductionOrderStateDto, JobManagementService, LevelMetaData, LoggerSeverity, ModelStateDto, MultiplicitiesDto, NavigationFilterModeDto, OctoErrorLink, OctoGraphQLServiceBase, OctoSdkDemoCustomerStatusDto, OctoSdkDemoNetworkOperatorDto, OctoSdkDemoOperatingStatusDto, OctoServiceOptions, OctoServicesModule, PagedGraphResultDto, ProgressValue, ProgressWindowService, QueryModeDto, ReportingService, RtAssociationMetaData, RuntimeEntityDialogDataSource, RuntimeEntitySelectDataSource, SearchFilterTypesDto, SeriesComparisonPolicyDto, SeriesResolutionSignalDto, SortOrdersDto, SystemAggregationTypesDto, SystemAiApprovalModeDto, SystemAiApprovalReasonDto, SystemAiApprovalStatusDto, SystemAiAuthModeDto, SystemAiConflictModeDto, SystemAiCredentialKindDto, SystemAiJobKindDto, SystemAiJobStatusDto, SystemAiKnowledgeKindDto, SystemAiLeaseStatusDto, SystemAiModelTierDto, SystemAiRiskLevelDto, SystemAiSessionEventKindDto, SystemAiSessionStatusDto, SystemAiSubscriptionScopeDto, SystemAiTicketScopeDto, SystemAiTicketStatusDto, SystemAiWorkspaceModeDto, SystemCommunicationCommunicationStateDto, SystemCommunicationConfigurationStateDto, SystemCommunicationDeploymentStateDto, SystemCommunicationEnvironmentDto, SystemCommunicationHelmChannelDto, SystemCommunicationLifecycleModeDto, SystemCommunicationLifecycleStateDto, SystemCommunicationPipelineExecutionStatusDto, SystemCommunicationPipelineTriggerTypeDto, SystemCommunicationSignalRegistrationActionDto, SystemCommunicationSignalRegistrationStateDto, SystemEnvironmentModesDto, SystemFieldFilterOperatorDto, SystemIdentityDataPolicyEnforcementModeDto, SystemIdentityDataPolicyScopeDto, SystemIdentityIdentifierKindDto, SystemIdentityIdentifierSourceDto, SystemIdentityTokenExpirationDto, SystemIdentityTokenTypeDto, SystemIdentityTokenUsageDto, SystemIdentityTrustLevelDto, SystemMaintenanceLevelsDto, SystemNavigationFilterModesDto, SystemNotificationEventLevelsDto, SystemNotificationEventSourcesDto, SystemNotificationEventStatesDto, SystemNotificationNotificationTypesDto, SystemNotificationRenderingTypesDto, SystemQueryTypesDto, SystemSortOrdersDto, SystemStreamDataBucketAlignmentDto, SystemStreamDataCkArchiveStatusDto, SystemStreamDataCkComputedColumnResultTypeDto, SystemStreamDataCkComputedColumnStateDto, SystemStreamDataCkRecomputeChangeKindDto, SystemStreamDataCkRecomputeChangeSourceDto, SystemStreamDataCkRecomputeJobStateDto, SystemStreamDataCkRecomputeTriggerDto, SystemStreamDataCkRollupFunctionDto, TENANT_ID_PROVIDER, TusUploadService, UpdateTypeDto, buildTusEndpoint, octoDataIdFromObject, result as possibleTypes, provideOctoServices };
7852
+ export { AggregationInputTypesDto, AggregationTypeDto, AggregationTypesDto, AiService, ArchiveStorageHealthDto, AssetRepoGraphQlDataSource, AssetRepoService, AssociationModOptionsDto, AttributeOwnershipDto, AttributeSelectorService, AttributeValueTypeDto, BasicEnergyCarrierTypeDto, BasicEnergyDataQualityDto, BasicEnergyFacilityTypeDto, BasicEnergyProductionTypeDto, BasicEnergyStateDto, BasicLegalEntityTypeDto, BasicSalutationDto, BasicTypeOfTelephoneBasicDto, BasicTypeOfTelephoneEnhancedDto, BasicUnitOfMeasureDto, BlueprintConflictResolutionDto, BlueprintUpdateModeDto, BotSecretsService, BotService, BucketAlignmentDto, BucketAlignmentInputDto, CONFIGURATION_SERVICE, CREDENTIAL_ATTRIBUTE_NAME_SUFFIXES, CkExtensionUpdateOperationsDto, CkModelCatalogService, CkModelService, CkRollupFunctionDto, CkTypeAttributeService, CkTypeMetaData, CkTypeSelectorService, CommunicationService, DEFAULT_SECRET_STATUS_LABELS, DeepGraphDirectionDto, DeleteStrategiesDto, DeploymentState, EnergyCommunityBillingCycleDto, EnergyCommunityBillingDocumentStateDto, EnergyCommunityBillingTypeDto, EnergyCommunityTaxProcedureCreditNoteDto, EnvironmentCarbonScopeDto, EnvironmentComplianceCategoryDto, EnvironmentComplianceStatusDto, EnvironmentEnergySourceDto, EnvironmentGoalStateDto, FieldFilterOperatorsDto, FormulaResultTypeDto, GetCkModelByIdDocumentDto, GetCkModelByIdDtoGQL, GetCkRecordAttributesDocumentDto, GetCkRecordAttributesDtoGQL, GetCkTypeAttributesDocumentDto, GetCkTypeAttributesDtoGQL, GetCkTypeAvailableQueryColumnsDocumentDto, GetCkTypeAvailableQueryColumnsDtoGQL, GetCkTypesDocumentDto, GetCkTypesDtoGQL, GetDerivedCkTypesDocumentDto, GetDerivedCkTypesDtoGQL, GetEntitiesByCkTypeDocumentDto, GetEntitiesByCkTypeDtoGQL, GraphDirectionDto, GraphQL, GraphQLCloneIgnoredProperties, GraphQLCommonIgnoredProperties, GraphQlDataSource, HealthService, HealthStatus, IDENTITY_PROVIDER_TYPE_LABELS, IdentityProviderType, IdentityService, ImportStrategyDto, IndustryBasicAlarmPriorityDto, IndustryBasicAlarmSourceTypeDto, IndustryBasicAlarmStateDto, IndustryBasicAlarmTypeDto, IndustryBasicIecDataTypeDto, IndustryBasicMachineCapabilitiesDto, IndustryBasicMachineStateDto, IndustryEnergyDemandResponseMarketDto, IndustryEnergyDemandResponseStatusDto, IndustryEnergyTariffTypeDto, IndustryMaintenanceAggregationTypeDto, IndustryMaintenanceCostCategoryDto, IndustryMaintenanceEnergyBalanceGroupDto, IndustryMaintenanceEnergyBalanceProductDto, IndustryMaintenanceEnergyBalanceUnitDto, IndustryMaintenanceOrderPriorityDto, IndustryMaintenanceOrderStateDto, IndustryMaintenanceOrderTypeDto, IndustryMaintenanceServiceTypeDto, IndustryManufacturingFeedbackSyncStateDto, IndustryManufacturingProductionOrderItemStateDto, IndustryManufacturingProductionOrderStateDto, JobManagementService, LevelMetaData, LoggerSeverity, ModelStateDto, MultiplicitiesDto, NavigationFilterModeDto, OCTO_SILENT_ERRORS, OctoErrorLink, OctoGraphQLServiceBase, OctoSdkDemoCustomerStatusDto, OctoSdkDemoNetworkOperatorDto, OctoSdkDemoOperatingStatusDto, OctoServiceOptions, OctoServicesModule, PagedGraphResultDto, ProgressValue, ProgressWindowService, QueryModeDto, ReportingService, RtAssociationMetaData, RuntimeEntityDialogDataSource, RuntimeEntitySelectDataSource, SECRET_DUMP_RESTORE_ERROR_DUMP_DELETED, SECRET_DUMP_RESTORE_ERROR_DUMP_KEY_MISSING, SECRET_LEGACY_V1_KEY_ID, SECRET_STATUS_WARNING_DUMP_KEY_MISSING, SECRET_STATUS_WARNING_NO_KEY_RING, SECRET_STATUS_WARNING_NO_LEGACY_V1_KEY, SECRET_VALUE_TYPE, SearchFilterTypesDto, SecretStorageFormDto, SecretUsageMatchDto, SeriesComparisonPolicyDto, SeriesResolutionSignalDto, SortOrdersDto, SystemAggregationTypesDto, SystemAiApprovalModeDto, SystemAiApprovalReasonDto, SystemAiApprovalStatusDto, SystemAiAuthModeDto, SystemAiConflictModeDto, SystemAiCredentialKindDto, SystemAiJobKindDto, SystemAiJobStatusDto, SystemAiKnowledgeKindDto, SystemAiLeaseStatusDto, SystemAiModelTierDto, SystemAiRiskLevelDto, SystemAiSessionEventKindDto, SystemAiSessionStatusDto, SystemAiSubscriptionScopeDto, SystemAiTicketScopeDto, SystemAiTicketStatusDto, SystemAiWorkspaceModeDto, SystemCommunicationAdapterSharingModeDto, SystemCommunicationCommunicationStateDto, SystemCommunicationConfigurationStateDto, SystemCommunicationDeploymentStateDto, SystemCommunicationEnvironmentDto, SystemCommunicationHelmChannelDto, SystemCommunicationHelmRepositoryPurposeDto, SystemCommunicationLifecycleModeDto, SystemCommunicationLifecycleStateDto, SystemCommunicationPipelineExecutionClassDto, SystemCommunicationPipelineExecutionStatusDto, SystemCommunicationPipelineTriggerTypeDto, SystemCommunicationPoolScaleUpPolicyDto, SystemCommunicationSignalRegistrationActionDto, SystemCommunicationSignalRegistrationStateDto, SystemEnvironmentModesDto, SystemFieldFilterOperatorDto, SystemIdentityDataPolicyEnforcementModeDto, SystemIdentityDataPolicyScopeDto, SystemIdentityIdentifierKindDto, SystemIdentityIdentifierSourceDto, SystemIdentityTokenExpirationDto, SystemIdentityTokenTypeDto, SystemIdentityTokenUsageDto, SystemIdentityTrustLevelDto, SystemMaintenanceLevelsDto, SystemNavigationFilterModesDto, SystemNotificationEventLevelsDto, SystemNotificationEventSourcesDto, SystemNotificationEventStatesDto, SystemNotificationNotificationTypesDto, SystemNotificationRenderingTypesDto, SystemQueryTypesDto, SystemSortOrdersDto, SystemStreamDataBucketAlignmentDto, SystemStreamDataCkArchiveStatusDto, SystemStreamDataCkComputedColumnResultTypeDto, SystemStreamDataCkComputedColumnStateDto, SystemStreamDataCkConflictKeyOrderDto, SystemStreamDataCkRecomputeChangeKindDto, SystemStreamDataCkRecomputeChangeSourceDto, SystemStreamDataCkRecomputeJobStateDto, SystemStreamDataCkRecomputeTriggerDto, SystemStreamDataCkRollupFunctionDto, TENANT_ID_PROVIDER, TusUploadService, UpdateTypeDto, buildTusEndpoint, formatSecretStatus, isCredentialLikeAttributeName, isSecretAttributeCandidate, isSecretPresent, isSecretQueryColumn, isSecretStateObject, isSecretValueType, isTextualValueType, octoDataIdFromObject, result as possibleTypes, provideOctoServices, secretInputValue, secretStateFromAttribute, secretStatusOf, toAttributeNameFilter, toCamelCaseAttributeName, toSecretState, toUniqueCamelCaseNames };
7151
7853
  //# sourceMappingURL=meshmakers-octo-services.mjs.map