@ionite/core 0.0.24-beta.20261006.21 → 0.0.24-beta.20261007.23

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/index.d.ts CHANGED
@@ -14,6 +14,122 @@ declare const KNOWN_BASE_CUSTOMER_KEYS: readonly ["id", "userName", "name", "ema
14
14
  declare const KNOWN_WORKLOAD_KEYS: readonly ["id", "clientId", "displayName", "description", "externalId", "providerId", "requestUrl", "ecid", "active", "scopes", "createdAt", "updatedAt", "metadata"];
15
15
  /** Return the AppDev-owned, enumerable attributes on an object, omitting SDK keys and undefined values. */
16
16
  declare function customAttributes(value: object, knownKeys: readonly PropertyKey[]): Record<string, unknown> | undefined;
17
+ /**
18
+ * Minimal logger interface compatible with common structured logging patterns.
19
+ */
20
+ interface Logger {
21
+ trace(message?: unknown, ...optionalParams: unknown[]): void;
22
+ debug(message?: unknown, ...optionalParams: unknown[]): void;
23
+ info(message?: unknown, ...optionalParams: unknown[]): void;
24
+ warn(message?: unknown, ...optionalParams: unknown[]): void;
25
+ error(message?: unknown, ...optionalParams: unknown[]): void;
26
+ }
27
+ /**
28
+ * Renders a structured logger call as one greppable line while leaving the source fields separate
29
+ * for telemetry exporters.
30
+ */
31
+ declare function formatLogLine(level: keyof Logger, message: unknown, optionalParams?: unknown[], timestamp?: Date): string;
32
+ /**
33
+ * No-op implementation — does nothing for any log level
34
+ */
35
+ declare const silentLogger: Logger;
36
+ /**
37
+ * Default logger used until an ionite instance is configured with
38
+ * an OpenTelemetry-backed logger or an application-provided logger.
39
+ */
40
+ declare const defaultLogger: Logger;
41
+ /**
42
+ * Logger that logs messages debug, info, warn, and error to the console.
43
+ */
44
+ declare const debugLogger: Logger;
45
+ /**
46
+ * Logger that logs messages info, warn, and error to the console.
47
+ */
48
+ declare const infoLogger: Logger;
49
+ /**
50
+ * Logger that logs messages warn and error to the console.
51
+ */
52
+ declare const warnLogger: Logger;
53
+ /**
54
+ * Human-readable single-line console logger for local application output.
55
+ */
56
+ declare const prettyLogger: Logger;
57
+ /** Runtime identity attached when an error leaves an ionite handle. */
58
+ type IoniteErrorContext = {
59
+ /** `RemoteConfig.id` of the runtime that threw. On a tenant runtime this is the tenant id. */
60
+ ionId?: string;
61
+ /** Logger for that runtime. Non-enumerable on the error so serializers cannot reach a live handle. */
62
+ log?: Logger;
63
+ };
64
+ type IoniteErrorOptions = ErrorOptions & {
65
+ /**
66
+ * Client HTTP status. Always the status an App should send. Defaults to 500.
67
+ * Transport errors put the upstream status on {@link IoniteErrorOptions.upstreamStatus}.
68
+ */
69
+ status?: number;
70
+ /** Upstream transport status. Server-side only: never returned by {@link IoniteError.response}. */
71
+ upstreamStatus?: number;
72
+ /** Client-safe reason code. When set, it is the `error` field of {@link IoniteError.response}. Never put `message` here. */
73
+ statusText?: string;
74
+ /** Client-safe explanation. Returned as `detail` only when `statusText` is set. */
75
+ detail?: string;
76
+ ionId?: string;
77
+ log?: Logger;
78
+ };
79
+ type IoniteErrorJson = {
80
+ name: string;
81
+ _tag: string;
82
+ status: number;
83
+ statusText?: string;
84
+ detail?: string;
85
+ ionId?: string;
86
+ };
87
+ type IoniteLogAttributes = Record<string, string | number | boolean | undefined>;
88
+ /**
89
+ * Base error for ionite runtimes.
90
+ *
91
+ * The runtime that throws stamps `ionId` and a non-enumerable `log` so an App error hook can log on
92
+ * the right tenant without the SDK knowing the framework. `message` and `upstreamStatus` are
93
+ * server-side. {@link IoniteError.response} returns `statusText`, `detail`, and
94
+ * {@link IoniteError.safeBody}.
95
+ *
96
+ * `status` is always the client HTTP status. The App owns the hook that logs and returns a response;
97
+ * the SDK decides only for the protocol routes it serves.
98
+ */
99
+ declare class IoniteError extends Error {
100
+ /** Client HTTP status. Always set. */
101
+ readonly status: number;
102
+ /** Upstream transport status. Absent from {@link IoniteError.response} and {@link IoniteError.toJSON}. */
103
+ readonly upstreamStatus?: number;
104
+ readonly statusText?: string;
105
+ readonly detail?: string;
106
+ ionId?: string;
107
+ /** Effect `catchTag` discriminator. Equals the class name. */
108
+ readonly _tag: string;
109
+ /** Non-enumerable. Absent from `JSON.stringify` and `toJSON`. */
110
+ log?: Logger;
111
+ constructor(message: string, options?: IoniteErrorOptions);
112
+ /** Attach runtime context only where it is still unset. The innermost handle wins. */
113
+ attachContext(ctx: IoniteErrorContext): this;
114
+ /** Extra client-safe JSON fields. Included only when `statusText` is set. */
115
+ protected safeBody(): Record<string, unknown>;
116
+ toLogAttributes(): IoniteLogAttributes;
117
+ /**
118
+ * Default client response. JSON unless the request asks for HTML and not JSON, in which case the
119
+ * body is plain text of `detail`, else `statusText`, else `Internal Server Error`.
120
+ * `message` and `upstreamStatus` are never included.
121
+ */
122
+ response(request?: Request): Response;
123
+ toJSON(): IoniteErrorJson;
124
+ /**
125
+ * Normalize any thrown value. An existing {@link IoniteError} is returned unchanged aside from
126
+ * filling unset context. Anything else is wrapped at status 500 with the original as `cause`.
127
+ * A foreign `status` is not copied: it is not App response policy.
128
+ */
129
+ static from(error: unknown, ctx?: IoniteErrorContext): IoniteError;
130
+ }
131
+ /** Log attributes from an error that implements {@link IoniteError.toLogAttributes}, if any. */
132
+ declare function errorLogAttributes(error: unknown): IoniteLogAttributes | undefined;
17
133
  import { StandardSchemaV1 as StandardSchemaV19 } from "@standard-schema/spec";
18
134
  import { StandardSchemaV1 as StandardSchemaV18 } from "@standard-schema/spec";
19
135
  /** Synchronous, in-memory read surface for one code catalog entity kind. */
@@ -1578,6 +1694,19 @@ type CIAMProviderConfig = {
1578
1694
  claimsAsEntitlements?: ClaimsAsEntitlements;
1579
1695
  /** ConfigSource-only IdP assignment workflow used when IAM assignment is `'idp'`. */
1580
1696
  accessRequests?: AccessRequestsDestination;
1697
+ /**
1698
+ * Microsoft only. Which Entra tenants may sign in when the provider uses a
1699
+ * multi-tenant authority (`/common`, `/organizations`, `/consumers`). Entra mints
1700
+ * tenant-scoped issuers (`https://login.microsoftonline.com/{tid}/v2.0`), so no
1701
+ * single `authority` can be compared by strict equality; this constrains the
1702
+ * accepted `tid` instead.
1703
+ *
1704
+ * `'any'` (default) accepts any work/school tenant and personal accounts,
1705
+ * `'consumers'` accepts only personal Microsoft accounts, and an array accepts
1706
+ * only the listed tenant GUIDs. Ignored when `authority` names a single tenant —
1707
+ * that keeps the strict-equality check.
1708
+ */
1709
+ allowedTenants?: "any" | "consumers" | string[];
1581
1710
  };
1582
1711
  /** Sanitized provider entry returned by the discovery endpoint for the UI. */
1583
1712
  type CIAMProviderDescriptor = {
@@ -1678,46 +1807,6 @@ declare function readDisplayCookies(cookieHeader: string | null | undefined): Pa
1678
1807
  declare function compareDisplayExpiryDesc(a: string | undefined, b: string | undefined): number;
1679
1808
  declare function profileCookieName(cookiesPrefix: string): string;
1680
1809
  declare function discoveredProfileCookieName(tenantId: string): string;
1681
- /**
1682
- * Minimal logger interface compatible with common structured logging patterns.
1683
- */
1684
- interface Logger {
1685
- trace(message?: unknown, ...optionalParams: unknown[]): void;
1686
- debug(message?: unknown, ...optionalParams: unknown[]): void;
1687
- info(message?: unknown, ...optionalParams: unknown[]): void;
1688
- warn(message?: unknown, ...optionalParams: unknown[]): void;
1689
- error(message?: unknown, ...optionalParams: unknown[]): void;
1690
- }
1691
- /**
1692
- * Renders a structured logger call as one greppable line while leaving the source fields separate
1693
- * for telemetry exporters.
1694
- */
1695
- declare function formatLogLine(level: keyof Logger, message: unknown, optionalParams?: unknown[], timestamp?: Date): string;
1696
- /**
1697
- * No-op implementation — does nothing for any log level
1698
- */
1699
- declare const silentLogger: Logger;
1700
- /**
1701
- * Default logger used until an ionite instance is configured with
1702
- * an OpenTelemetry-backed logger or an application-provided logger.
1703
- */
1704
- declare const defaultLogger: Logger;
1705
- /**
1706
- * Logger that logs messages debug, info, warn, and error to the console.
1707
- */
1708
- declare const debugLogger: Logger;
1709
- /**
1710
- * Logger that logs messages info, warn, and error to the console.
1711
- */
1712
- declare const infoLogger: Logger;
1713
- /**
1714
- * Logger that logs messages warn and error to the console.
1715
- */
1716
- declare const warnLogger: Logger;
1717
- /**
1718
- * Human-readable single-line console logger for local application output.
1719
- */
1720
- declare const prettyLogger: Logger;
1721
1810
  import { StandardSchemaV1 as StandardSchemaV15 } from "@standard-schema/spec";
1722
1811
  type ChangeListener = () => void;
1723
1812
  /**
@@ -2048,7 +2137,7 @@ type WorkloadClientDescription = {
2048
2137
  idpTokenUrl?: string;
2049
2138
  scope?: string;
2050
2139
  audience?: string;
2051
- authMethod: "client_secret" | "private_key_jwt" | "server_only";
2140
+ authMethod: "client_secret" | "federated_token" | "managed_identity" | "private_key_jwt" | "server_only";
2052
2141
  };
2053
2142
  type WorkloadDescription = ModuleDescriptionBase<"workload"> & {
2054
2143
  incoming: {
@@ -2149,6 +2238,8 @@ type TmDescription = ModuleDescriptionBase<"tm"> & {
2149
2238
  };
2150
2239
  consentTtlSeconds?: number;
2151
2240
  maxRedeemAttempts?: number;
2241
+ /** Effective `action_required` request-token lifetime, including the one-hour default. */
2242
+ requestTokenTtlSeconds: number;
2152
2243
  };
2153
2244
  type ModuleDescription = SsoDescription | CiamDescription | IamDescription | WorkloadDescription | SecretsDescription | KmsDescription | OtelDescription | AuthzDescription | TmDescription;
2154
2245
  type IoniteDescription = {
@@ -2470,10 +2561,21 @@ type ClientCredentialsWorkloadConfig = WorkloadConfigBase & {
2470
2561
  */
2471
2562
  clientId: string;
2472
2563
  /**
2473
- * OAuth2 client secret
2474
- * REQUIRED for Client Credentials mode
2564
+ * OAuth2 client secret. Omit it to authenticate with a federated token instead
2565
+ * (see `federatedTokenFile`). A client secret wins when both are present.
2475
2566
  */
2476
- clientSecret: string;
2567
+ clientSecret?: string;
2568
+ /**
2569
+ * Path to a projected federated token (e.g. AKS Workload Identity), sent as a jwt-bearer
2570
+ * `client_assertion` in place of `client_secret`. Defaults to `AZURE_FEDERATED_TOKEN_FILE`.
2571
+ * Read on every acquisition because the platform rotates it.
2572
+ */
2573
+ federatedTokenFile?: string;
2574
+ /**
2575
+ * `managed_identity`: get the token from the platform's managed identity endpoint instead of an
2576
+ * IdP token URL. `clientId` is the managed identity's client ID; `scope` names the audience.
2577
+ */
2578
+ authMethod?: "managed_identity";
2477
2579
  };
2478
2580
  /**
2479
2581
  * Server-Only Workload Configuration
@@ -2507,7 +2609,7 @@ type ServerOnlyWorkloadConfig = WorkloadConfigBase & {
2507
2609
  * detected based on which fields are present:
2508
2610
  *
2509
2611
  * - **JWT Bearer Grant**: Requires `workload_id` + `private_key`
2510
- * - **Client Credentials**: Requires `client_id` + `client_secret`
2612
+ * - **Client Credentials**: Requires `client_id` + `client_secret`, a federated token file, or `authMethod: "managed_identity"`
2511
2613
  * - **Server-Only**: Only `jwks_uri` (and optionally `issuer`) for token validation
2512
2614
  *
2513
2615
  * The developer uses the same API regardless of mode - the library handles the details.
@@ -4008,12 +4110,23 @@ declare function defineSecretType<T>(input: SecretTypeInput<T>): SecretTypeDescr
4008
4110
  declare function defineSecretType(input: SecretTypeInput<unknown>): SecretTypeDescriptor<unknown>;
4009
4111
  declare function defaultSecretContentType(format?: SecretFormat): SecretContentType;
4010
4112
  /** Raised before decoding when a stored secret does not match the requested runtime contract. */
4011
- declare class SecretContentTypeMismatchError extends Error {
4113
+ declare class SecretContentTypeMismatchError extends IoniteError {
4012
4114
  readonly expected: SecretContentType;
4013
4115
  readonly received: SecretContentType;
4014
4116
  constructor(expected: SecretContentType, received: SecretContentType);
4015
4117
  }
4016
4118
  type SecretFormat = "jsonc" | "env" | "text" | "binary" | "yaml" | "toml" | "xml";
4119
+ /** How a vault-compatible source reads a secret: direct HTTP, the shared websocket, or LFV delivery. */
4120
+ type SecretsTransport = "http" | "websocket" | "lfv";
4121
+ /**
4122
+ * Log-safe locator of a secrets backend. Carries only the read transport and the server URL (with
4123
+ * userinfo, query, and fragment removed) — never tokens, client secrets, or trust material. Config
4124
+ * sources built over a client copy it into `ConfigSource.origin`.
4125
+ */
4126
+ type SecretsSourceOrigin = {
4127
+ transport?: SecretsTransport;
4128
+ url?: string;
4129
+ };
4017
4130
  /**
4018
4131
  * Self-describing content metadata persisted with a secret. `typeId` identifies an authoring preset;
4019
4132
  * decoding never depends on the preset registry because the resolved format/mime/schema travel with
@@ -4130,6 +4243,8 @@ type FrameworkLfvConfig = {
4130
4243
  };
4131
4244
  type SecretsSource = ReactiveHandle & ModuleReadiness & {
4132
4245
  type: SecretsSourceType;
4246
+ /** Optional log-safe backend locator. Built-in sources set it; it must never carry credentials. */
4247
+ origin?: SecretsSourceOrigin;
4133
4248
  /** Creates a lazy, Bun.file-style handle. No I/O occurs until an accessor is awaited. */
4134
4249
  get(path: string, options?: SecretsOperationOptions): SecretHandle;
4135
4250
  getFullSecret: <T>(path: string, options?: SecretsOperationOptions) => Promise<Secret<T>>;
@@ -4483,6 +4598,28 @@ type AzureSecretsConfig = {
4483
4598
  ttl?: number;
4484
4599
  };
4485
4600
  type ConfigSourceType = "vault" | "azure" | "aws" | "gcp" | "mirror";
4601
+ /**
4602
+ * Log-safe description of where a `ConfigSource` reads RemoteConfig from. It carries locators only:
4603
+ * the source kind, the read transport, the server URL (userinfo, query, and fragment removed), and
4604
+ * the document path. It never carries tokens, client secrets, or trust material. The SDK emits it
4605
+ * as `ion.config.source.*` attributes on `RemoteConfig applied.` and on config load/apply failure
4606
+ * lines so operators can tell which backend and document produced the running configuration.
4607
+ */
4608
+ type ConfigSourceOrigin = {
4609
+ type: ConfigSourceType;
4610
+ /**
4611
+ * Transport a vault-backed source reads the document through. When a direct `url` and a
4612
+ * `websocket.url` are both configured, reads use HTTP and the websocket carries live updates;
4613
+ * this field reports the read path.
4614
+ */
4615
+ transport?: SecretsTransport;
4616
+ /** Server URL without userinfo, query, or fragment. */
4617
+ url?: string;
4618
+ /** Document path (vault path or Key Vault secret name) holding the RemoteConfig. */
4619
+ path?: string;
4620
+ /** `mirror` only: the authoritative upstream the destination document is mirrored from. */
4621
+ from?: ConfigSourceOrigin;
4622
+ };
4486
4623
  type ConfigSourceEnv = {
4487
4624
  ION_CONFIG_TYPE?: ConfigSourceType;
4488
4625
  ION_VAULT_URL?: string;
@@ -4942,7 +5079,7 @@ type RemoteConfigRetryContext = {
4942
5079
  maxDelayMs: number;
4943
5080
  /** Best-effort source error code when known. */
4944
5081
  code?: string;
4945
- /** Best-effort source status when known. */
5082
+ /** Best-effort upstream transport status when known. Not a client HTTP status. */
4946
5083
  status?: number;
4947
5084
  /** Config source transport when known, such as "vault", "azure", or "aws". */
4948
5085
  sourceType?: ConfigSourceType | string;
@@ -4982,6 +5119,11 @@ type ConfigSubscriptionOptions = {
4982
5119
  */
4983
5120
  type ConfigChangeCallback = (config: RemoteConfig, frameworkConfig: ModifiableFrameworkConfig, oldConfig: RemoteConfig | undefined) => ConfigChangeResult | void | Promise<ConfigChangeResult | void>;
4984
5121
  type ConfigSource = {
5122
+ /**
5123
+ * Optional log-safe locator of this source (see {@link ConfigSourceOrigin}). Built-in sources set
5124
+ * it; custom sources MAY. Never include credentials.
5125
+ */
5126
+ origin?: ConfigSourceOrigin;
4985
5127
  load(): Promise<RemoteConfig>;
4986
5128
  /**
4987
5129
  * Called when the config changes.
@@ -5486,15 +5628,6 @@ interface TenantWebhookPayload {
5486
5628
  expiresAt?: string;
5487
5629
  error?: string;
5488
5630
  }
5489
- type IoniteErrorOptions = ErrorOptions & {
5490
- status?: number;
5491
- statusText?: string;
5492
- };
5493
- declare class IoniteError extends Error {
5494
- readonly status?: number;
5495
- readonly statusText?: string;
5496
- constructor(message: string, options?: IoniteErrorOptions);
5497
- }
5498
5631
  type TenantValidators<
5499
5632
  TCreateTenantRequest extends CreateTenantRequest = CreateTenantRequest,
5500
5633
  TUpdateTenantRequest extends UpdateTenantRequest = UpdateTenantRequest,
@@ -5589,6 +5722,11 @@ type RemoteTmConfig = {
5589
5722
  ionite: TmIoniteConfig;
5590
5723
  consentTtlSeconds?: number;
5591
5724
  maxRedeemAttempts?: number;
5725
+ /**
5726
+ * Lifetime, in seconds, of an App-minted `action_required` request token. Minimum 60; omitted
5727
+ * means {@link DEFAULT_REQUEST_TOKEN_TTL_SECONDS} (one hour). ConfigSource-only.
5728
+ */
5729
+ requestTokenTtlSeconds?: number;
5592
5730
  };
5593
5731
  type StagedIntegration = {
5594
5732
  handle: string;
@@ -5662,12 +5800,28 @@ type TenantIntegrationView = {
5662
5800
  state: TenantIntegrationStatus;
5663
5801
  integration: TenantIntegration;
5664
5802
  };
5803
+ type ActionRequiredPlan = {
5804
+ requestToken: string;
5805
+ actionUrl: string;
5806
+ expiresAt: string;
5807
+ };
5808
+ type ActionRequiredInput = {
5809
+ /** App-owned completion path, for example `/onboard`. */
5810
+ path: string;
5811
+ /** Public origin the browser uses to open the action URL. */
5812
+ origin: string;
5813
+ };
5665
5814
  type TenantManagement<TTenant extends BaseTenant = BaseTenant> = ModuleReadiness & {
5666
5815
  /** Secret-free, JSON-serializable configuration and readiness summary. */
5667
5816
  describe(): TmDescription;
5668
5817
  handler(request: Request): Promise<Response>;
5669
5818
  getTenant(id: string): Promise<TTenant | undefined>;
5670
5819
  recordConsent(input: RecordTenantConsentInput): Promise<TTenant>;
5820
+ /**
5821
+ * Mint the `action_required` fields TM requires: a request token, a browser action URL, and an
5822
+ * expiry. The lifetime comes from `RemoteConfig.tm.requestTokenTtlSeconds` (default one hour).
5823
+ */
5824
+ actionRequired(input: ActionRequiredInput): ActionRequiredPlan;
5671
5825
  };
5672
5826
  declare function tmIntegrationState(tenant: BaseTenant | undefined, now?: number): TenantIntegrationView;
5673
5827
  /**
@@ -6200,18 +6354,21 @@ declare function assertRequiredSubjectType(value: unknown, label?: string): asse
6200
6354
  * A granted "root" relationship between a principal and a catalog target. Roots are the source of
6201
6355
  * truth in the AccessAssignmentStore; the AccessIndex is materialized from roots + the catalog.
6202
6356
  */
6203
- type AccessChange<
6357
+ /**
6358
+ * App-facing input to {@link Authz.grant} and {@link Authz.revoke}. Named so a request body can be
6359
+ * declared once (`satisfies GrantRequest`) and reused. The durable record is {@link AccessChange},
6360
+ * which adds the store-assigned `id`.
6361
+ */
6362
+ type GrantRequest<
6204
6363
  TUser = BaseUser,
6205
6364
  TGroup = Group,
6206
6365
  TRole = Role,
6207
6366
  TPermission = Permission
6208
6367
  > = {
6209
- /** Deterministic id derived from `subjectType:subject:targetType:target[:scope]`; assigned by stores/orchestration. */
6210
- id?: string;
6211
6368
  subject: AccessRef<TUser>;
6212
6369
  /** The principal kind this grant is for. Required; never inferred or defaulted. */
6213
6370
  subjectType: SubjectType;
6214
- targetType: OaaAccessTargetType;
6371
+ targetType: EntitlementType;
6215
6372
  target: AccessRef<TGroup | TRole | TPermission>;
6216
6373
  /** Specific resource ids this grant is scoped to (maps to OAA assignment `resources`). */
6217
6374
  resources?: string[];
@@ -6223,6 +6380,33 @@ type AccessChange<
6223
6380
  status?: AccessStatus;
6224
6381
  metadata?: Record<string, unknown>;
6225
6382
  };
6383
+ type AccessChange<
6384
+ TUser = BaseUser,
6385
+ TGroup = Group,
6386
+ TRole = Role,
6387
+ TPermission = Permission
6388
+ > = GrantRequest<TUser, TGroup, TRole, TPermission> & {
6389
+ /** Deterministic id derived from `subjectType:subject:targetType:target[:scope]`; assigned by stores/orchestration. */
6390
+ id?: string;
6391
+ };
6392
+ /** One grant or revoke submitted through {@link Authz.requestAccess}. */
6393
+ type AccessRequestInput = {
6394
+ subject: GrantRequest["subject"];
6395
+ subjectType: SubjectType;
6396
+ targetType: EntitlementType;
6397
+ target: GrantRequest["target"];
6398
+ operation: "grant" | "revoke";
6399
+ justification?: string;
6400
+ /** CIAM provider key. Required only when multiple providers expose an AccessRequests channel. */
6401
+ provider?: string;
6402
+ };
6403
+ /** Lookup for {@link Authz.getAccessRequest}. */
6404
+ type AccessRequestLookup = {
6405
+ id: string;
6406
+ subjectType: SubjectType;
6407
+ /** CIAM provider key. Required only when multiple providers expose an AccessRequests channel. */
6408
+ provider?: string;
6409
+ };
6226
6410
  /**
6227
6411
  * Granted access **roots** — the durable source of truth for direct assignments
6228
6412
  * (`subject → group | role | permission`). Each root is one explicit grant (for example
@@ -6556,44 +6740,20 @@ type Authz = {
6556
6740
  * index. IAM SCIM ingress does **not** use this path (it stays policy-exempt). Throws
6557
6741
  * {@link AssignmentPolicyError} when Ops forbids in-app assignment for the principal kind.
6558
6742
  */
6559
- grant(change: AccessChange): Promise<AccessChange>;
6743
+ grant(change: GrantRequest): Promise<AccessChange>;
6560
6744
  /**
6561
6745
  * Submit one grant or revoke request on a principal's behalf. Under `'iam-request'`, targets the
6562
6746
  * IAM destination; under `'idp'`, targets the claims-bearing SSO/CIAM provider. One operation
6563
6747
  * maps to one approval decision, status, and tracking URL.
6564
6748
  */
6565
- requestAccess(change: {
6566
- subject: AccessChange["subject"];
6567
- subjectType: SubjectType;
6568
- targetType: EntitlementType;
6569
- target: AccessChange["target"];
6570
- operation: "grant" | "revoke";
6571
- justification?: string;
6572
- /** CIAM provider key. Required only when multiple providers expose an AccessRequests channel. */
6573
- provider?: string;
6574
- }): Promise<{
6575
- id: string;
6576
- status: "pending" | "approved" | "denied";
6577
- operation: "grant" | "revoke";
6578
- trackingUrl: string;
6579
- }>;
6749
+ requestAccess(change: AccessRequestInput): Promise<AccessRequestResult>;
6580
6750
  /** Read the destination-owned state of an on-behalf access request. */
6581
- getAccessRequest(input: {
6582
- id: string;
6583
- subjectType: SubjectType;
6584
- /** CIAM provider key. Required only when multiple providers expose an AccessRequests channel. */
6585
- provider?: string;
6586
- }): Promise<{
6587
- id: string;
6588
- status: "pending" | "approved" | "denied";
6589
- operation: "grant" | "revoke";
6590
- trackingUrl: string;
6591
- }>;
6751
+ getAccessRequest(input: AccessRequestLookup): Promise<AccessRequestResult>;
6592
6752
  /**
6593
6753
  * App-facing revoke of a granted root. Does not re-check assignment policy (removing access is
6594
6754
  * always allowed from the app once the root exists).
6595
6755
  */
6596
- revoke(change: AccessChange): Promise<void>;
6756
+ revoke(change: GrantRequest): Promise<void>;
6597
6757
  };
6598
6758
  /**
6599
6759
  * Ops-owned assignment policy for one principal kind (`RemoteConfig.iam.{users,workloads,customers}.assignment`).
@@ -6611,10 +6771,12 @@ type IamAssignmentPolicy = "app" | "iam" | "iam-request" | "idp";
6611
6771
  * `requestUrl` is the IAM-written entitlement receipt when one exists, so the app can send the
6612
6772
  * caller to the request page without catching a generic error.
6613
6773
  */
6614
- declare class AssignmentPolicyError extends Error {
6774
+ declare class AssignmentPolicyError extends IoniteError {
6615
6775
  readonly policy: IamAssignmentPolicy;
6616
6776
  readonly requestUrl?: string;
6617
6777
  constructor(message: string, policy: IamAssignmentPolicy, requestUrl?: string);
6778
+ protected safeBody(): Record<string, unknown>;
6779
+ toLogAttributes(): IoniteLogAttributes;
6618
6780
  }
6619
6781
  /** Why an {@link AccessCheckResult} resolved the way it did. */
6620
6782
  type AccessCheckReason = "ok" | "unauthenticated" | "forbidden" | "not_configured";
@@ -6688,38 +6850,32 @@ type ConfigSourceErrorInit = {
6688
6850
  * the same fields) for the initial-load retry policy to make the right call. See
6689
6851
  * https://ionite.com/docs/llms-configuration.txt.
6690
6852
  */
6691
- declare class ConfigSourceError extends Error {
6853
+ declare class ConfigSourceError extends IoniteError {
6692
6854
  readonly kind: RemoteConfigLoadErrorKind;
6693
6855
  readonly recoverable?: boolean;
6694
6856
  readonly code?: string;
6695
- readonly status?: number;
6696
6857
  readonly path?: string;
6697
6858
  readonly sourceType?: ConfigSourceType | string;
6698
6859
  constructor(message: string, init: ConfigSourceErrorInit);
6699
6860
  }
6700
6861
  declare function isConfigSourceError(value: unknown): value is ConfigSourceError;
6701
6862
  /**
6702
- * Enterprise Controlled ID (ECID) helpers.
6703
- *
6704
- * The ECID is a stable, system-of-record-owned identifier for a single identity (a person or a
6705
- * non-human governance root), used to correlate that identity's many accounts across systems. It is
6706
- * minted and owned by the enterprise SOR (via an ECI such as ionite), never by the application.
6707
- *
6708
- * Format: `ecid:<realm>:<opaque>`
6709
- * - `ecid` fixed, self-describing scheme prefix.
6710
- * - `<realm>` the MINTING AUTHORITY's id (its `RemoteConfig.id`) — the SOR/ECI tenant, NOT each
6711
- * App's own id. Using each App's id would give one person a different ECID per app.
6712
- * - `<opaque>` an opaque, non-semantic token (ULID / UUIDv7 class). No PII.
6713
- *
6714
- * This module is data-only and client-safe (no server imports), so it can be re-exported from the
6715
- * main `@ionite/core` entry without pulling server code into client bundles.
6716
- *
6717
- * See https://ionite.com/docs/llms-ecid.txt for the full contract.
6863
+ * Reduce a backend URL to the part that is safe to log: scheme, host, port, and pathname. Userinfo
6864
+ * (`user:pass@`), the query string, and the fragment are dropped because tokens and client ids are
6865
+ * commonly carried there. A value that does not parse as an absolute URL is withheld entirely rather
6866
+ * than risk logging credential-bearing text.
6867
+ */
6868
+ declare function describeOriginUrl(url: string | undefined): string | undefined;
6869
+ /**
6870
+ * Flatten a {@link ConfigSourceOrigin} into stable log attributes under `prefix` (default
6871
+ * `ion.config.source`). A mirror's upstream lands under `${prefix}.from.*`. Undefined fields are
6872
+ * omitted so the resulting record only ever names what the source actually knows.
6718
6873
  */
6874
+ declare function configSourceOriginLogFields(origin: ConfigSourceOrigin | undefined, prefix?: string): Record<string, string>;
6719
6875
  /** The fixed ECID scheme prefix. */
6720
6876
  declare const ECID_SCHEME = "ecid";
6721
6877
  /** Thrown when an ECID string (or a segment) is malformed. */
6722
- declare class EcidFormatError extends Error {
6878
+ declare class EcidFormatError extends IoniteError {
6723
6879
  constructor(message: string);
6724
6880
  }
6725
6881
  /** Parsed ECID segments. */
@@ -6836,13 +6992,14 @@ declare const remoteConfigSecretType: SecretTypeDescriptor<RemoteConfig>;
6836
6992
  * whole push can be replayed over a partial push and converge.
6837
6993
  */
6838
6994
  type StoreConflictKind = "already_exists" | "unique_violation";
6839
- declare class StoreConflictError extends Error {
6995
+ declare class StoreConflictError extends IoniteError {
6840
6996
  /** Stable discriminator so callers can branch without an `instanceof` across package boundaries. */
6841
6997
  readonly code: "conflict";
6842
6998
  readonly kind: StoreConflictKind;
6843
6999
  /** The conflicting field/index name, when applicable (e.g. `'userName'`). */
6844
7000
  readonly field?: string;
6845
7001
  constructor(message: string, kind: StoreConflictKind, field?: string);
7002
+ protected safeBody(): Record<string, unknown>;
6846
7003
  }
6847
7004
  declare function isStoreConflictError(value: unknown): value is StoreConflictError;
6848
7005
  type TenantPathNamespace = {
@@ -7024,4 +7181,4 @@ type LfvErrorResponse = {
7024
7181
  };
7025
7182
  /** Generates a ULID */
7026
7183
  declare function generateULID(prefix?: string): string;
7027
- export { ACCEPT_JSON, ACCEPT_OCTET_STREAM, ACCEPT_SCIM, ACCEPT_XML, AccessAssignmentStore, AccessCatalogStore, AccessChange, AccessCheckReason, AccessCheckResult, AccessCheckTarget, AccessIndex, AccessMutationResult, AccessMutationStatus, AccessProvenance, AccessRef, AccessRequestCreate, AccessRequestResult, AccessRequestsDestination, AccessStatus, Address, ApplicationValidators, AssignmentPolicyError, AuthenticatedPrincipal, AuthenticatedUser, Authz, AuthzConfig, AuthzDecision, AuthzDescription, AuthzEntityBase, AuthzOaaConfig, AuthzOaaPrincipalConfig, AuthzScimGroupExtension, AuthzScimGroupType, AwsConfigLocator, AwsSecretsConfig, AzureAuthMethod, AzureConfigLocator, AzureSecretsConfig, BaseCustomer, BaseTenant, BaseUser, BaseWorkloadIdentity, CANONICAL_RISK_LEVELS, CIAM, CIAMConfig, CIAMConfigFromCode, CIAMConfigFromCodeInput, CIAMProviderBranding, CIAMProviderColors, CIAMProviderConfig, CIAMProviderDescriptor, CIAMProviderType, CIAMValidators, CONTENT_TYPE_FORM, CONTENT_TYPE_JSON, CONTENT_TYPE_OCTET_STREAM, CONTENT_TYPE_SCIM, CONTENT_TYPE_XML, CacheConfig, CachedWorkloadToken, CapabilitiezManifest, CapabilityEndpointUrls, CapabilityKey, CapabilityState, CatalogChange, CatalogChangeKind, CatalogChangeListener, CatalogEntityKind, ChangeListener, CiamDescription, CiamProviderDescription, ClaimsAsEntitlements, ClaimsAsEntitlementsDescription, ClientCredentialsWorkloadConfig, CodeCatalog, CodeCatalogInput, CodeCatalogNamespace, ConfigApplyStatus, ConfigChangeCallback, ConfigChangeOptions, ConfigChangeResult, ConfigErrorKind, ConfigExportEnvelope, ConfigLocator, ConfigSource, ConfigSourceEnv, ConfigSourceError, ConfigSourceErrorInit, ConfigSourceResolver, ConfigSourceType, ConfigSubscriptionOptions, ConnectRequestContext, CookieDescription, CreateGroupOptions, CreateTenantRequest, CreateUserOptions, Customer, CustomerStore, CustomerStoreOptions, DEFAULT_DISCOVERED_COOKIE_MAX, DEFAULT_DISCOVERED_COOKIE_TTL_SECONDS, DEFAULT_DISPLAY_COOKIE_MAX, DEFAULT_RISK_LEVEL, DEFAULT_SECRET_MIME_TYPES, DEFAULT_TENANT_API_NAMESPACE, DEFAULT_TENANT_UI_NAMESPACE, DISCOVERED_COOKIE_PREFIX, DISPLAY_COOKIE_SUFFIX, DISPLAY_COOKIE_VERSION, DerivedEntitlement, DescribedSecretsSource, DestinationReference, DevSecretsConfig, DiscoveredDisplayCookieConfig, DisplayAuthType, DisplayCookieConfig, DisplayCookieEnvelope, DisplayIdentity, DisplayUser, ECID_SCHEME, EcidFormatError, EffectiveEdge, EgressChannelOutcome, EgressOutcome, Email, EndpointOperation, EndpointPermission, EnterpriseExtension, Entitlement, EntitlementType, EntityStore, EnvironmentType, FORM_MEDIA_TYPE, FrameworkConfig, FrameworkConfigInput, FrameworkLfvConfig, FrameworkOtelConfig, FrameworkSecretsModuleConfig, FrameworkSecretsSourceConfig, FrameworkStores, FrameworkTmConfig, FrameworkWorkloadConfig, FrameworkWorkloadConfigFromCode, FrameworkWorkloadIncomingOutgoing, GcpConfigLocator, GcpSecretsConfig, Group, GroupMember, GroupResource, GroupsInboundHandlerConfig, IAM, IAMAccessRequestsConfig, IAMAppRegistry, IAMAppValidators, IAMConfig, IAMConfigFromCode, IAMDiscoveryConfig, IAMDiscoveryContext, IAMDiscoveryHandlerConfig, IAMEndpointFlag, IAMGroupsInbound, IAMGroupsOutbound, IAMHandlerConfig, IAMInboundCustomersConfig, IAMInboundPrincipalContext, IAMInboundUserContext, IAMInboundUsersConfig, IAMInboundWorkloadsConfig, IAMPrincipalsInbound, IAMUsersInbound, IAMValidators, ION_AUTHZ_GROUP_SCHEMA, ION_AUTHZ_OAA_SYNC, ION_CAPABILITIEZ_READ, ION_CIAM_MAGIC_LINK_CREATE, ION_ENDPOINT_PERMISSIONS, ION_IAM_ACCESS_REQUESTS_WRITE, ION_IAM_CUSTOMERS_WRITE, ION_IAM_GROUPS_WRITE, ION_IAM_READ, ION_IAM_USERS_WRITE, ION_IAM_WORKLOADS_WRITE, ION_SCIM_CUSTOMER_SCHEMA, ION_SCIM_USER_EXTENSION_URN, ION_SCIM_WORKLOAD_SCHEMA, ION_SDK_PERMISSIONS, ION_TENANT_MANAGE, IamAssignmentPolicy, IamDeltaEmitter, IamDeltaMode, IamDeltaReconcileInput, IamDeltaReconcileResult, IamDeltaResourceType, IamDescription, IamPrincipalDescription, IamPrincipalKind, IamPrincipalKindFlag, IdTokenClaims, IdentityResolution, InMemoryTenantStoreOptions, InboundEntitlementDecision, InboundEntitlementRequest, InferSecretType, Ionite, IoniteBase, IoniteDescription, IoniteError, IoniteErrorOptions, IoniteUserExtension, IoniteValidators, JSON_MEDIA_TYPE, JWTAssertionClaims, JwtBearerWorkloadConfig, KNOWN_BASE_CUSTOMER_KEYS, KNOWN_BASE_USER_KEYS, KNOWN_ENTITLEMENT_KEYS, KNOWN_WORKLOAD_KEYS, Kms, KmsAddKeysRequest, KmsAddKeysResult, KmsAllocationPolicy, KmsAllocationStrategy, KmsConfig, KmsDescription, KmsIssuedKey, KmsIssuerEvent, KmsIssuerEventListener, KmsIssuerEventName, KmsKey, KmsKeyState, KmsParkDisposition, KmsParkReport, KmsParkRequest, KmsParkResult, KmsPool, KmsPoolConfig, KmsPoolControlDocument, KmsPoolDescription, KmsPoolDocument, KmsPoolIssuer, KmsPoolListener, KmsPoolSlot, KmsRevokeKeyRequest, KmsRevokeKeyResult, LfvActionAcceptedResponse, LfvActionName, LfvActionRequestBase, LfvCallbackEnvelope, LfvCallbackHeaders, LfvCallbackKind, LfvCallbackTransport, LfvEd25519PrivateJwk, LfvEd25519PublicJwk, LfvErrorCode, LfvErrorResponse, LfvJwks, LfvOtpRequest, LfvOtpResponse, ListFilter, ListOptions, ListResult, Logger, MagicLink, MagicLinkStore, MetaData, MirrorConfigLocator, ModifiableFrameworkConfig, ModuleDescription, ModuleDescriptionBase, ModuleName, ModuleReadiness, ModuleReadinessState, Name, NoReserved, OCTET_STREAM_MEDIA_TYPE, OaaAccessChangeBatchItem, OaaAccessTargetType, OaaClient, OaaDescription, OaaPrincipalPopulation, OaaSyncInput, OaaSyncOptions, OaaSyncResult, OidcCallbackParams, Otel, OtelAttributeValue, OtelAttributes, OtelConfig, OtelConsoleMode, OtelDescription, OtelLevels, OtelLogLevel, OtelLogRecord, OtelMetricsSignalConfig, OtelOAuthClientCredentialsConfig, OtelProtocol, OtelProviderType, OtelSignalConfig, OtelSignalDescription, OtelSignalName, PLATFORM_ASSIGNABLE_SUBJECT_TYPES, ParsedEcid, Permission, PhoneNumber, Photo, PrincipalInboundHandlerConfig, ReactiveHandle, ReadJsonResponseOptions, ReadinessReport, ReadyAccessCatalogEntry, ReadyzEndpointConfig, ReconcileReport, RecordTenantConsentInput, RegisterIAMAppError, RegisterIAMAppPayload, RegisterIAMAppResult, RegisterSSOAppError, RegisterSSOAppPayload, RegisterSSOAppResult, RemoteConfig, RemoteConfigLoadErrorKind, RemoteConfigRetryContext, RemoteConfigRetryHook, RemoteConfigRetryOptions, RemoteTmConfig, RequireReadyResult, ResolvedRoute, ResolvedVaultLfvSecretsConfig, Resource, ResourceChange, ResourceChangeListener, ResourceProvider, RiskLevel, Role, RouteFilterResult, RouteModule, RoutingOptions, SCIM_MEDIA_TYPE, SSO, SSOAppRegistry, SSOAppValidators, SSOConfig, SSOConfigFromCode, SSOHandlerConfig, SSOValidators, ScimAuthenticationScheme, ScimCustomer, ScimError, Group2 as ScimGroup, ScimListResponse, ScimMutationSummary, ScimResourceType, ScimResourceTypeSchemaExtension, ScimResult, Role2 as ScimRole, ScimSchemaAttributeDefinition, ScimSchemaDefinition, ScimServiceProviderConfig, User as ScimUser, ScimWorkload, Secret, SecretContentType, SecretContentTypeMismatchError, SecretEvent, SecretEventListener, SecretEventName, SecretFormat, SecretHandle, SecretLifecycleRequest, SecretRequestSeverity, SecretTypeDescriptor, SecretTypeInput, SecretTypeRegistryEntry, Secrets, SecretsDescription, SecretsModuleConfig, SecretsOperationOptions, SecretsSource, SecretsSourceConfig, SecretsSourceDescription, SecretsSourceMap, SecretsSourceType, SecretsSubscriptionOptions, SecretsValidators, SecretsWriteOptions, ServerOnlyWorkloadConfig, Session, SessionStore, SetTenantIntegrationOptions, SsoDescription, StagedIntegration, StandardSchemaWithValidate, StateCookie, StoreConflictError, StoreConflictKind, SubjectRef, SubjectScope, SubjectType, SubjectTypeScoping, SubscriptionMode, TenantDirectory, TenantDirectoryIdentity, TenantHostMatch, TenantHostRoutingStrategy, TenantIntegration, TenantIntegrationStatus, TenantIntegrationView, TenantIonCache, TenantManagement, TenantPathMatch, TenantPathNamespace, TenantPathRoutingStrategy, TenantResponse, TenantRoutingStrategy, TenantSelectorRoutingStrategy, TenantStatus, TenantStore, TenantValidators, TenantWebhookPayload, TmDescription, TmIoniteConfig, TokenResponse, TokenValidationResult, TrustedIdp, TrustedProvisioningClient, UnexpectedBodySummary, UpdateTenantRequest, UserEndpointPolicy, UserStore, UserStoreOptions, UsersInboundHandlerConfig, ValidateResult, VaultConfigLocator, VaultLfvSecretsConfig, VaultSecretsConfig, VaultWebSocketAuthHeader, VaultWebSocketSecretsConfig, VaultWorkloadAuthConfig, WorkforceUser, Workload, WorkloadClient, WorkloadClientDescription, WorkloadConfig, WorkloadConfigMap, WorkloadDescription, WorkloadGetToken, WorkloadIdentity, WorkloadIdentityStore, WorkloadIncomingOutgoing, WorkloadPrincipal, WorkloadTokenResponse, WorkloadTokenStore, WorkloadTrustedIdpDescription, WorkloadValidators, X509Certificate, XML_MEDIA_TYPE, accessRefId, accessRootId, assertEcid, assertRequiredSubjectType, assertValidSubjectTypeScoping, buildTenantPath, buildTenantUrl, catalogEntityStore, claimsToUser, compareDisplayExpiryDesc, configTrustedClientGrants, customAttributes, customerResourceSchema, debugLogger, decodeDisplayCookie, decodeUser, deepEqualPlain, defaultDisplayUser, defaultLogger, defaultSecretContentType, defineCatalog, defineSecretType, deprecateRetiredCodeCatalogRows, discoveredProfileCookieName, encodeDisplayCookie, formatEcid, formatLogLine, generateULID, getCodeCatalogEntity, groupResourceSchema, idTokenClaimsSchema, infoLogger, isCodeCatalog, isConfigLocator, isConfigSourceError, isEcid, isJsonResponse, isStoreConflictError, jwtAssertionClaimsSchema, list, listGenerator, matchTenantHost, matchTenantPath, matchesListFilter, materializeCodeCatalogEntity, mergeCodeCatalogEntity, mergeConfig, must, normalizeTenantBaseDomain, normalizeTenantPathNamespace, normalizeTenantRoutingStrategy, oidcCallbackSchema, parseEcid, parseJsonc, parseKmsPoolControlDocument, parseKmsPoolDocument, prettyLogger, profileCookieName, projectDisplayUser, readDisplayCookies, readJsonResponse, readyCatalogEntry, remoteConfigSecretType, resolveDiscoveredCookieMax, resolveDiscoveredCookieTtlSeconds, resolveDisplayCookieMax, sanitizeDisplayUser, serializeConfig, silentLogger, stableConfigHash, stripJsonComments, tmIntegrationState, toCodeCatalog, tokenResponseSchema, trimTrailingSlash, trustedClientPermissionsForPrincipal, unexpectedBodySummary, unionCatalogRead, userSchema, validationFailureResponse, version, waitOn, warnLogger, withValidate, workloadResourceSchema, workloadTokenResponseSchema };
7184
+ export { ACCEPT_JSON, ACCEPT_OCTET_STREAM, ACCEPT_SCIM, ACCEPT_XML, AccessAssignmentStore, AccessCatalogStore, AccessChange, AccessCheckReason, AccessCheckResult, AccessCheckTarget, AccessIndex, AccessMutationResult, AccessMutationStatus, AccessProvenance, AccessRef, AccessRequestCreate, AccessRequestInput, AccessRequestLookup, AccessRequestResult, AccessRequestsDestination, AccessStatus, ActionRequiredInput, ActionRequiredPlan, Address, ApplicationValidators, AssignmentPolicyError, AuthenticatedPrincipal, AuthenticatedUser, Authz, AuthzConfig, AuthzDecision, AuthzDescription, AuthzEntityBase, AuthzOaaConfig, AuthzOaaPrincipalConfig, AuthzScimGroupExtension, AuthzScimGroupType, AwsConfigLocator, AwsSecretsConfig, AzureAuthMethod, AzureConfigLocator, AzureSecretsConfig, BaseCustomer, BaseTenant, BaseUser, BaseWorkloadIdentity, CANONICAL_RISK_LEVELS, CIAM, CIAMConfig, CIAMConfigFromCode, CIAMConfigFromCodeInput, CIAMProviderBranding, CIAMProviderColors, CIAMProviderConfig, CIAMProviderDescriptor, CIAMProviderType, CIAMValidators, CONTENT_TYPE_FORM, CONTENT_TYPE_JSON, CONTENT_TYPE_OCTET_STREAM, CONTENT_TYPE_SCIM, CONTENT_TYPE_XML, CacheConfig, CachedWorkloadToken, CapabilitiezManifest, CapabilityEndpointUrls, CapabilityKey, CapabilityState, CatalogChange, CatalogChangeKind, CatalogChangeListener, CatalogEntityKind, ChangeListener, CiamDescription, CiamProviderDescription, ClaimsAsEntitlements, ClaimsAsEntitlementsDescription, ClientCredentialsWorkloadConfig, CodeCatalog, CodeCatalogInput, CodeCatalogNamespace, ConfigApplyStatus, ConfigChangeCallback, ConfigChangeOptions, ConfigChangeResult, ConfigErrorKind, ConfigExportEnvelope, ConfigLocator, ConfigSource, ConfigSourceEnv, ConfigSourceError, ConfigSourceErrorInit, ConfigSourceOrigin, ConfigSourceResolver, ConfigSourceType, ConfigSubscriptionOptions, ConnectRequestContext, CookieDescription, CreateGroupOptions, CreateTenantRequest, CreateUserOptions, Customer, CustomerStore, CustomerStoreOptions, DEFAULT_DISCOVERED_COOKIE_MAX, DEFAULT_DISCOVERED_COOKIE_TTL_SECONDS, DEFAULT_DISPLAY_COOKIE_MAX, DEFAULT_RISK_LEVEL, DEFAULT_SECRET_MIME_TYPES, DEFAULT_TENANT_API_NAMESPACE, DEFAULT_TENANT_UI_NAMESPACE, DISCOVERED_COOKIE_PREFIX, DISPLAY_COOKIE_SUFFIX, DISPLAY_COOKIE_VERSION, DerivedEntitlement, DescribedSecretsSource, DestinationReference, DevSecretsConfig, DiscoveredDisplayCookieConfig, DisplayAuthType, DisplayCookieConfig, DisplayCookieEnvelope, DisplayIdentity, DisplayUser, ECID_SCHEME, EcidFormatError, EffectiveEdge, EgressChannelOutcome, EgressOutcome, Email, EndpointOperation, EndpointPermission, EnterpriseExtension, Entitlement, EntitlementType, EntityStore, EnvironmentType, FORM_MEDIA_TYPE, FrameworkConfig, FrameworkConfigInput, FrameworkLfvConfig, FrameworkOtelConfig, FrameworkSecretsModuleConfig, FrameworkSecretsSourceConfig, FrameworkStores, FrameworkTmConfig, FrameworkWorkloadConfig, FrameworkWorkloadConfigFromCode, FrameworkWorkloadIncomingOutgoing, GcpConfigLocator, GcpSecretsConfig, GrantRequest, Group, GroupMember, GroupResource, GroupsInboundHandlerConfig, IAM, IAMAccessRequestsConfig, IAMAppRegistry, IAMAppValidators, IAMConfig, IAMConfigFromCode, IAMDiscoveryConfig, IAMDiscoveryContext, IAMDiscoveryHandlerConfig, IAMEndpointFlag, IAMGroupsInbound, IAMGroupsOutbound, IAMHandlerConfig, IAMInboundCustomersConfig, IAMInboundPrincipalContext, IAMInboundUserContext, IAMInboundUsersConfig, IAMInboundWorkloadsConfig, IAMPrincipalsInbound, IAMUsersInbound, IAMValidators, ION_AUTHZ_GROUP_SCHEMA, ION_AUTHZ_OAA_SYNC, ION_CAPABILITIEZ_READ, ION_CIAM_MAGIC_LINK_CREATE, ION_ENDPOINT_PERMISSIONS, ION_IAM_ACCESS_REQUESTS_WRITE, ION_IAM_CUSTOMERS_WRITE, ION_IAM_GROUPS_WRITE, ION_IAM_READ, ION_IAM_USERS_WRITE, ION_IAM_WORKLOADS_WRITE, ION_SCIM_CUSTOMER_SCHEMA, ION_SCIM_USER_EXTENSION_URN, ION_SCIM_WORKLOAD_SCHEMA, ION_SDK_PERMISSIONS, ION_TENANT_MANAGE, IamAssignmentPolicy, IamDeltaEmitter, IamDeltaMode, IamDeltaReconcileInput, IamDeltaReconcileResult, IamDeltaResourceType, IamDescription, IamPrincipalDescription, IamPrincipalKind, IamPrincipalKindFlag, IdTokenClaims, IdentityResolution, InMemoryTenantStoreOptions, InboundEntitlementDecision, InboundEntitlementRequest, InferSecretType, Ionite, IoniteBase, IoniteDescription, IoniteError, IoniteErrorContext, IoniteErrorJson, IoniteErrorOptions, IoniteLogAttributes, IoniteUserExtension, IoniteValidators, JSON_MEDIA_TYPE, JWTAssertionClaims, JwtBearerWorkloadConfig, KNOWN_BASE_CUSTOMER_KEYS, KNOWN_BASE_USER_KEYS, KNOWN_ENTITLEMENT_KEYS, KNOWN_WORKLOAD_KEYS, Kms, KmsAddKeysRequest, KmsAddKeysResult, KmsAllocationPolicy, KmsAllocationStrategy, KmsConfig, KmsDescription, KmsIssuedKey, KmsIssuerEvent, KmsIssuerEventListener, KmsIssuerEventName, KmsKey, KmsKeyState, KmsParkDisposition, KmsParkReport, KmsParkRequest, KmsParkResult, KmsPool, KmsPoolConfig, KmsPoolControlDocument, KmsPoolDescription, KmsPoolDocument, KmsPoolIssuer, KmsPoolListener, KmsPoolSlot, KmsRevokeKeyRequest, KmsRevokeKeyResult, LfvActionAcceptedResponse, LfvActionName, LfvActionRequestBase, LfvCallbackEnvelope, LfvCallbackHeaders, LfvCallbackKind, LfvCallbackTransport, LfvEd25519PrivateJwk, LfvEd25519PublicJwk, LfvErrorCode, LfvErrorResponse, LfvJwks, LfvOtpRequest, LfvOtpResponse, ListFilter, ListOptions, ListResult, Logger, MagicLink, MagicLinkStore, MetaData, MirrorConfigLocator, ModifiableFrameworkConfig, ModuleDescription, ModuleDescriptionBase, ModuleName, ModuleReadiness, ModuleReadinessState, Name, NoReserved, OCTET_STREAM_MEDIA_TYPE, OaaAccessChangeBatchItem, OaaAccessTargetType, OaaClient, OaaDescription, OaaPrincipalPopulation, OaaSyncInput, OaaSyncOptions, OaaSyncResult, OidcCallbackParams, Otel, OtelAttributeValue, OtelAttributes, OtelConfig, OtelConsoleMode, OtelDescription, OtelLevels, OtelLogLevel, OtelLogRecord, OtelMetricsSignalConfig, OtelOAuthClientCredentialsConfig, OtelProtocol, OtelProviderType, OtelSignalConfig, OtelSignalDescription, OtelSignalName, PLATFORM_ASSIGNABLE_SUBJECT_TYPES, ParsedEcid, Permission, PhoneNumber, Photo, PrincipalInboundHandlerConfig, ReactiveHandle, ReadJsonResponseOptions, ReadinessReport, ReadyAccessCatalogEntry, ReadyzEndpointConfig, ReconcileReport, RecordTenantConsentInput, RegisterIAMAppError, RegisterIAMAppPayload, RegisterIAMAppResult, RegisterSSOAppError, RegisterSSOAppPayload, RegisterSSOAppResult, RemoteConfig, RemoteConfigLoadErrorKind, RemoteConfigRetryContext, RemoteConfigRetryHook, RemoteConfigRetryOptions, RemoteTmConfig, RequireReadyResult, ResolvedRoute, ResolvedVaultLfvSecretsConfig, Resource, ResourceChange, ResourceChangeListener, ResourceProvider, RiskLevel, Role, RouteFilterResult, RouteModule, RoutingOptions, SCIM_MEDIA_TYPE, SSO, SSOAppRegistry, SSOAppValidators, SSOConfig, SSOConfigFromCode, SSOHandlerConfig, SSOValidators, ScimAuthenticationScheme, ScimCustomer, ScimError, Group2 as ScimGroup, ScimListResponse, ScimMutationSummary, ScimResourceType, ScimResourceTypeSchemaExtension, ScimResult, Role2 as ScimRole, ScimSchemaAttributeDefinition, ScimSchemaDefinition, ScimServiceProviderConfig, User as ScimUser, ScimWorkload, Secret, SecretContentType, SecretContentTypeMismatchError, SecretEvent, SecretEventListener, SecretEventName, SecretFormat, SecretHandle, SecretLifecycleRequest, SecretRequestSeverity, SecretTypeDescriptor, SecretTypeInput, SecretTypeRegistryEntry, Secrets, SecretsDescription, SecretsModuleConfig, SecretsOperationOptions, SecretsSource, SecretsSourceConfig, SecretsSourceDescription, SecretsSourceMap, SecretsSourceOrigin, SecretsSourceType, SecretsSubscriptionOptions, SecretsTransport, SecretsValidators, SecretsWriteOptions, ServerOnlyWorkloadConfig, Session, SessionStore, SetTenantIntegrationOptions, SsoDescription, StagedIntegration, StandardSchemaWithValidate, StateCookie, StoreConflictError, StoreConflictKind, SubjectRef, SubjectScope, SubjectType, SubjectTypeScoping, SubscriptionMode, TenantDirectory, TenantDirectoryIdentity, TenantHostMatch, TenantHostRoutingStrategy, TenantIntegration, TenantIntegrationStatus, TenantIntegrationView, TenantIonCache, TenantManagement, TenantPathMatch, TenantPathNamespace, TenantPathRoutingStrategy, TenantResponse, TenantRoutingStrategy, TenantSelectorRoutingStrategy, TenantStatus, TenantStore, TenantValidators, TenantWebhookPayload, TmDescription, TmIoniteConfig, TokenResponse, TokenValidationResult, TrustedIdp, TrustedProvisioningClient, UnexpectedBodySummary, UpdateTenantRequest, UserEndpointPolicy, UserStore, UserStoreOptions, UsersInboundHandlerConfig, ValidateResult, VaultConfigLocator, VaultLfvSecretsConfig, VaultSecretsConfig, VaultWebSocketAuthHeader, VaultWebSocketSecretsConfig, VaultWorkloadAuthConfig, WorkforceUser, Workload, WorkloadClient, WorkloadClientDescription, WorkloadConfig, WorkloadConfigMap, WorkloadDescription, WorkloadGetToken, WorkloadIdentity, WorkloadIdentityStore, WorkloadIncomingOutgoing, WorkloadPrincipal, WorkloadTokenResponse, WorkloadTokenStore, WorkloadTrustedIdpDescription, WorkloadValidators, X509Certificate, XML_MEDIA_TYPE, accessRefId, accessRootId, assertEcid, assertRequiredSubjectType, assertValidSubjectTypeScoping, buildTenantPath, buildTenantUrl, catalogEntityStore, claimsToUser, compareDisplayExpiryDesc, configSourceOriginLogFields, configTrustedClientGrants, customAttributes, customerResourceSchema, debugLogger, decodeDisplayCookie, decodeUser, deepEqualPlain, defaultDisplayUser, defaultLogger, defaultSecretContentType, defineCatalog, defineSecretType, deprecateRetiredCodeCatalogRows, describeOriginUrl, discoveredProfileCookieName, encodeDisplayCookie, errorLogAttributes, formatEcid, formatLogLine, generateULID, getCodeCatalogEntity, groupResourceSchema, idTokenClaimsSchema, infoLogger, isCodeCatalog, isConfigLocator, isConfigSourceError, isEcid, isJsonResponse, isStoreConflictError, jwtAssertionClaimsSchema, list, listGenerator, matchTenantHost, matchTenantPath, matchesListFilter, materializeCodeCatalogEntity, mergeCodeCatalogEntity, mergeConfig, must, normalizeTenantBaseDomain, normalizeTenantPathNamespace, normalizeTenantRoutingStrategy, oidcCallbackSchema, parseEcid, parseJsonc, parseKmsPoolControlDocument, parseKmsPoolDocument, prettyLogger, profileCookieName, projectDisplayUser, readDisplayCookies, readJsonResponse, readyCatalogEntry, remoteConfigSecretType, resolveDiscoveredCookieMax, resolveDiscoveredCookieTtlSeconds, resolveDisplayCookieMax, sanitizeDisplayUser, serializeConfig, silentLogger, stableConfigHash, stripJsonComments, tmIntegrationState, toCodeCatalog, tokenResponseSchema, trimTrailingSlash, trustedClientPermissionsForPrincipal, unexpectedBodySummary, unionCatalogRead, userSchema, validationFailureResponse, version, waitOn, warnLogger, withValidate, workloadResourceSchema, workloadTokenResponseSchema };