@ionite/core 0.0.24-beta.20260930.19 → 0.0.24-beta.20261003.17
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 +465 -797
- package/dist/index.js +2 -2
- package/dist/server.d.ts +416 -809
- package/dist/server.js +1 -1
- package/dist/shared/core-njzaahvy.js +4 -0
- package/package.json +1 -1
- package/dist/shared/core-4qx8trmz.js +0 -4
package/dist/index.d.ts
CHANGED
|
@@ -16,6 +16,212 @@ declare const KNOWN_WORKLOAD_KEYS: readonly ["id", "clientId", "displayName", "d
|
|
|
16
16
|
declare function customAttributes(value: object, knownKeys: readonly PropertyKey[]): Record<string, unknown> | undefined;
|
|
17
17
|
import { StandardSchemaV1 as StandardSchemaV19 } from "@standard-schema/spec";
|
|
18
18
|
import { StandardSchemaV1 as StandardSchemaV18 } from "@standard-schema/spec";
|
|
19
|
+
/**
|
|
20
|
+
* Third-party CIAM provider presets and claim mapping.
|
|
21
|
+
*
|
|
22
|
+
* Defines the built-in provider adapters used by the CIAM module for customer
|
|
23
|
+
* login. Each preset supplies default OIDC/OAuth2 endpoints, scope, branding,
|
|
24
|
+
* and a claim mapper that normalizes provider claims into a candidate customer.
|
|
25
|
+
* The application's `CustomerStore` remains the system of record: the SDK only
|
|
26
|
+
* extracts standard claims and hands a candidate to `lookup`/`upsert`.
|
|
27
|
+
*/
|
|
28
|
+
/** Built-in provider types. `oidc` is a generic OIDC provider; `magic-link` is the passwordless flow. */
|
|
29
|
+
type CIAMProviderType = "oidc" | "google" | "github" | "microsoft" | "apple" | "magic-link";
|
|
30
|
+
/** Branding colors for rendering a provider button in light and dark themes. */
|
|
31
|
+
type CIAMProviderColors = {
|
|
32
|
+
/** Background/brand color for light theme (hex or CSS color). */
|
|
33
|
+
light: string;
|
|
34
|
+
/** Background/brand color for dark theme (hex or CSS color). */
|
|
35
|
+
dark: string;
|
|
36
|
+
/** Optional secondary/accent color. */
|
|
37
|
+
secondary?: string;
|
|
38
|
+
};
|
|
39
|
+
/** Operator-supplied branding so the UI can render a provider list without hardcoding. */
|
|
40
|
+
type CIAMProviderBranding = {
|
|
41
|
+
/** Human-readable name shown on the login button (e.g. "Google"). */
|
|
42
|
+
displayName: string;
|
|
43
|
+
/** External icon URL (typically an SVG/PNG hosted on a CDN). */
|
|
44
|
+
iconUrl?: string;
|
|
45
|
+
/** Light/dark brand colors. */
|
|
46
|
+
colors?: CIAMProviderColors;
|
|
47
|
+
/** Optional provider info/marketing URL. */
|
|
48
|
+
url?: string;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* A single CIAM provider declaration. OIDC/OAuth2 endpoint and credential
|
|
52
|
+
* fields come from the ConfigSource (never application code).
|
|
53
|
+
*/
|
|
54
|
+
type CIAMProviderConfig = {
|
|
55
|
+
/** Provider adapter type. Selects defaults and claim mapping. */
|
|
56
|
+
type: CIAMProviderType;
|
|
57
|
+
/** Whether this provider is enabled. Defaults to true when omitted. */
|
|
58
|
+
enabled?: boolean;
|
|
59
|
+
/** Recommended display order (ascending). Ties broken by declaration order. */
|
|
60
|
+
order?: number;
|
|
61
|
+
/** UI branding metadata. */
|
|
62
|
+
branding?: CIAMProviderBranding;
|
|
63
|
+
/** OIDC issuer/authority (used for discovery when explicit endpoints are omitted). */
|
|
64
|
+
authority?: string;
|
|
65
|
+
/** Authorization endpoint (overrides preset). */
|
|
66
|
+
authorizationUrl?: string;
|
|
67
|
+
/** Token endpoint (overrides preset). */
|
|
68
|
+
tokenUrl?: string;
|
|
69
|
+
/** JWKS endpoint for ID token verification (overrides preset). */
|
|
70
|
+
jwksUri?: string;
|
|
71
|
+
/** OAuth2 UserInfo endpoint for providers without an ID token (e.g. GitHub). */
|
|
72
|
+
userInfoUrl?: string;
|
|
73
|
+
/** OAuth2 client id (ConfigSource-only). */
|
|
74
|
+
clientId?: string;
|
|
75
|
+
/** OAuth2 client secret (ConfigSource-only). */
|
|
76
|
+
clientSecret?: string;
|
|
77
|
+
/** Requested scope (overrides preset). */
|
|
78
|
+
scope?: string;
|
|
79
|
+
/** Apple: team id for client-secret generation. */
|
|
80
|
+
teamId?: string;
|
|
81
|
+
/** Apple: key id for client-secret generation. */
|
|
82
|
+
keyId?: string;
|
|
83
|
+
/** Apple: PKCS#8 PEM private key for client-secret generation. */
|
|
84
|
+
privateKey?: string;
|
|
85
|
+
};
|
|
86
|
+
/** Sanitized provider entry returned by the discovery endpoint for the UI. */
|
|
87
|
+
type CIAMProviderDescriptor = {
|
|
88
|
+
/** Provider key (matches the RemoteConfig map key); used as `?provider=`. */
|
|
89
|
+
name: string;
|
|
90
|
+
type: CIAMProviderType;
|
|
91
|
+
displayName: string;
|
|
92
|
+
/** SDK-derived login URL to navigate to (begins the flow). */
|
|
93
|
+
loginUrl: string;
|
|
94
|
+
iconUrl?: string;
|
|
95
|
+
colors?: CIAMProviderColors;
|
|
96
|
+
url?: string;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* Light display cookies (`${cookiesPrefix}.profile`).
|
|
100
|
+
*
|
|
101
|
+
* The envelope is SDK-owned. App code supplies only `user`. The cookie is not an
|
|
102
|
+
* authentication input: the server never reads it to resolve a session, and the browser
|
|
103
|
+
* may forge it. `expiresAt` is display metadata so a client can order entries without a
|
|
104
|
+
* round trip; authoritative expiry is the peer `${cookiesPrefix}.session` record.
|
|
105
|
+
*/
|
|
106
|
+
declare const DISPLAY_COOKIE_SUFFIX = ".profile";
|
|
107
|
+
declare const DISPLAY_COOKIE_VERSION = 1;
|
|
108
|
+
declare const DEFAULT_DISPLAY_COOKIE_MAX = 10;
|
|
109
|
+
declare const DEFAULT_DISCOVERED_COOKIE_MAX = 10;
|
|
110
|
+
declare const DEFAULT_DISCOVERED_COOKIE_TTL_SECONDS: number;
|
|
111
|
+
declare const DISCOVERED_COOKIE_PREFIX = "ion.discovered";
|
|
112
|
+
type DisplayCookieConfig = {
|
|
113
|
+
/**
|
|
114
|
+
* When true, the SDK writes a non-HttpOnly display cookie beside the opaque session cookie.
|
|
115
|
+
* ConfigSource-only. Default false.
|
|
116
|
+
*/
|
|
117
|
+
enabled?: boolean;
|
|
118
|
+
/**
|
|
119
|
+
* How many display cookies a single response may leave on the browser, newest session window
|
|
120
|
+
* first. ConfigSource-only. Values below 1 fall back to {@link DEFAULT_DISPLAY_COOKIE_MAX}.
|
|
121
|
+
* @default 10
|
|
122
|
+
*/
|
|
123
|
+
max?: number;
|
|
124
|
+
/**
|
|
125
|
+
* Session-less tenant hints written by an App after an explicit directory lookup.
|
|
126
|
+
* ConfigSource-only and off unless `enabled` is true.
|
|
127
|
+
*/
|
|
128
|
+
discovered?: DiscoveredDisplayCookieConfig;
|
|
129
|
+
};
|
|
130
|
+
type DiscoveredDisplayCookieConfig = {
|
|
131
|
+
enabled?: boolean;
|
|
132
|
+
/** Browser hint lifetime. This is not a session expiry. @default 14400 */
|
|
133
|
+
ttlSeconds?: number;
|
|
134
|
+
/** Independent cap; discovered hints never displace live-session entries. @default 10 */
|
|
135
|
+
max?: number;
|
|
136
|
+
};
|
|
137
|
+
/** What `${basePath}/auth/user` and `${basePath}/auth/customer` return. ConfigSource-only. */
|
|
138
|
+
type UserEndpointPolicy = "full" | "display" | "off";
|
|
139
|
+
type DisplayUser = Record<string, string | number | boolean | null>;
|
|
140
|
+
type DisplayAuthType = "sso" | "ciam";
|
|
141
|
+
type DisplayCookieEnvelope = {
|
|
142
|
+
v: typeof DISPLAY_COOKIE_VERSION;
|
|
143
|
+
/**
|
|
144
|
+
* Session envelopes omit this field (absent means `'session'`) so the wire format stays identical
|
|
145
|
+
* to cookies written before discovered hints existed; only discovered hints set it explicitly.
|
|
146
|
+
* Readers must treat `undefined` as `'session'`.
|
|
147
|
+
*/
|
|
148
|
+
kind?: "session" | "discovered";
|
|
149
|
+
tenantId?: string;
|
|
150
|
+
authType: DisplayAuthType;
|
|
151
|
+
/** ISO timestamp copied from the session window at write time. Display only. */
|
|
152
|
+
expiresAt: string;
|
|
153
|
+
user: DisplayUser;
|
|
154
|
+
tenantName?: string;
|
|
155
|
+
};
|
|
156
|
+
type DisplayIdentity = {
|
|
157
|
+
name?: string;
|
|
158
|
+
email?: string;
|
|
159
|
+
avatar?: string;
|
|
160
|
+
};
|
|
161
|
+
declare function resolveDisplayCookieMax(max: number | undefined): number;
|
|
162
|
+
declare function resolveDiscoveredCookieMax(max: number | undefined): number;
|
|
163
|
+
declare function resolveDiscoveredCookieTtlSeconds(ttlSeconds: number | undefined): number;
|
|
164
|
+
declare function defaultDisplayUser(identity: DisplayIdentity): DisplayUser;
|
|
165
|
+
/** Drop non-primitives and auth-bearing keys. Display cookies carry UI fields only. */
|
|
166
|
+
declare function sanitizeDisplayUser(value: unknown): DisplayUser;
|
|
167
|
+
/**
|
|
168
|
+
* AppDev projection runs on the full user (including custom attributes). When omitted, or when it
|
|
169
|
+
* throws, the cookie carries name, email, and avatar only. Forbidden and non-primitive fields are
|
|
170
|
+
* dropped either way — a projector cannot put a session id or token into the cookie.
|
|
171
|
+
*/
|
|
172
|
+
declare function projectDisplayUser<TUser extends object>(user: TUser, projector?: (user: TUser) => unknown): DisplayUser;
|
|
173
|
+
declare function encodeDisplayCookie(envelope: DisplayCookieEnvelope): string;
|
|
174
|
+
declare function decodeDisplayCookie(raw: string): DisplayCookieEnvelope | undefined;
|
|
175
|
+
type ParsedDisplayCookie = {
|
|
176
|
+
name: string;
|
|
177
|
+
prefix: string;
|
|
178
|
+
envelope: DisplayCookieEnvelope;
|
|
179
|
+
};
|
|
180
|
+
declare function readDisplayCookies(cookieHeader: string | null | undefined): ParsedDisplayCookie[];
|
|
181
|
+
/** Client ordering: newest session window first. Invalid timestamps sort last. */
|
|
182
|
+
declare function compareDisplayExpiryDesc(a: string | undefined, b: string | undefined): number;
|
|
183
|
+
declare function profileCookieName(cookiesPrefix: string): string;
|
|
184
|
+
declare function discoveredProfileCookieName(tenantId: string): string;
|
|
185
|
+
/**
|
|
186
|
+
* Minimal logger interface compatible with common structured logging patterns.
|
|
187
|
+
*/
|
|
188
|
+
interface Logger {
|
|
189
|
+
trace(message?: unknown, ...optionalParams: unknown[]): void;
|
|
190
|
+
debug(message?: unknown, ...optionalParams: unknown[]): void;
|
|
191
|
+
info(message?: unknown, ...optionalParams: unknown[]): void;
|
|
192
|
+
warn(message?: unknown, ...optionalParams: unknown[]): void;
|
|
193
|
+
error(message?: unknown, ...optionalParams: unknown[]): void;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Renders a structured logger call as one greppable line while leaving the source fields separate
|
|
197
|
+
* for telemetry exporters.
|
|
198
|
+
*/
|
|
199
|
+
declare function formatLogLine(level: keyof Logger, message: unknown, optionalParams?: unknown[], timestamp?: Date): string;
|
|
200
|
+
/**
|
|
201
|
+
* No-op implementation — does nothing for any log level
|
|
202
|
+
*/
|
|
203
|
+
declare const silentLogger: Logger;
|
|
204
|
+
/**
|
|
205
|
+
* Default logger used until an ionite instance is configured with
|
|
206
|
+
* an OpenTelemetry-backed logger or an application-provided logger.
|
|
207
|
+
*/
|
|
208
|
+
declare const defaultLogger: Logger;
|
|
209
|
+
/**
|
|
210
|
+
* Logger that logs messages debug, info, warn, and error to the console.
|
|
211
|
+
*/
|
|
212
|
+
declare const debugLogger: Logger;
|
|
213
|
+
/**
|
|
214
|
+
* Logger that logs messages info, warn, and error to the console.
|
|
215
|
+
*/
|
|
216
|
+
declare const infoLogger: Logger;
|
|
217
|
+
/**
|
|
218
|
+
* Logger that logs messages warn and error to the console.
|
|
219
|
+
*/
|
|
220
|
+
declare const warnLogger: Logger;
|
|
221
|
+
/**
|
|
222
|
+
* Human-readable single-line console logger for local application output.
|
|
223
|
+
*/
|
|
224
|
+
declare const prettyLogger: Logger;
|
|
19
225
|
/** Synchronous, in-memory read surface for one code catalog entity kind. */
|
|
20
226
|
type CodeCatalogNamespace<TEntity> = {
|
|
21
227
|
get(id: string): TEntity | undefined;
|
|
@@ -94,6 +300,7 @@ declare function deprecateRetiredCodeCatalogRows(code: CodeCatalog | undefined,
|
|
|
94
300
|
* visible. Returns undefined when neither source is wired.
|
|
95
301
|
*/
|
|
96
302
|
declare function unionCatalogRead(code: CodeCatalog | undefined, store: AccessCatalogStore | undefined): AccessCatalogStore | undefined;
|
|
303
|
+
import { StandardSchemaV1 as StandardSchemaV15 } from "@standard-schema/spec";
|
|
97
304
|
/**
|
|
98
305
|
* Resolve an access subject/target/resource reference (a string id or an object carrying one) to its
|
|
99
306
|
* canonical, trimmed string id. This is the single id-resolution rule shared across the authz stack
|
|
@@ -109,54 +316,6 @@ declare function accessRefId(value: unknown): string;
|
|
|
109
316
|
*/
|
|
110
317
|
declare function accessRootId(change: AccessChange): string;
|
|
111
318
|
/**
|
|
112
|
-
* ConfigSource-only block that lets an issuing IdP's token claims satisfy `has*` checks.
|
|
113
|
-
* Placed independently on `sso`, each CIAM provider, and each incoming workload IdP.
|
|
114
|
-
* Absent means that issuer's claims never satisfy entitlements.
|
|
115
|
-
*
|
|
116
|
-
* Derived rows are session-scoped for users and customers (expanded onto the session at login
|
|
117
|
-
* and refresh) and per-request for workloads. They are never written to the access stores.
|
|
118
|
-
*/
|
|
119
|
-
type ClaimsAsEntitlements = {
|
|
120
|
-
/**
|
|
121
|
-
* Claim names to read. A dotted path addresses a nested claim (`realm_access.roles`).
|
|
122
|
-
* `scope` is space-delimited; every other string claim is one value; arrays contribute each string.
|
|
123
|
-
* Required and non-empty.
|
|
124
|
-
*/
|
|
125
|
-
claims: string[];
|
|
126
|
-
/**
|
|
127
|
-
* Expand a matched catalog role or group into the permissions it confers.
|
|
128
|
-
* Default false: a claim value matches only the catalog id it names.
|
|
129
|
-
*/
|
|
130
|
-
expand?: boolean;
|
|
131
|
-
/**
|
|
132
|
-
* Let catalog-bound resources on expanded rows satisfy resource-scoped checks.
|
|
133
|
-
* Default false. Ignored unless `expand` is true: a claim string cannot name a resource.
|
|
134
|
-
*/
|
|
135
|
-
resources?: boolean;
|
|
136
|
-
};
|
|
137
|
-
/** One effective entitlement derived from a token claim. Not a stored grant. */
|
|
138
|
-
type DerivedEntitlement = {
|
|
139
|
-
targetType: OaaAccessTargetType;
|
|
140
|
-
target: string;
|
|
141
|
-
/** Set only when the plane opted into `resources` and the catalog row binds this resource. */
|
|
142
|
-
resource?: string;
|
|
143
|
-
/** Claim name the value was read from. */
|
|
144
|
-
claim: string;
|
|
145
|
-
/** Expansion root id when the row came from catalog expansion. Absent for a direct id match. */
|
|
146
|
-
root?: string;
|
|
147
|
-
};
|
|
148
|
-
/** Secret-free projection of a configured claims block, including whether the App can persist it. */
|
|
149
|
-
type ClaimsAsEntitlementsDescription = {
|
|
150
|
-
claims: string[];
|
|
151
|
-
expand: boolean;
|
|
152
|
-
resources: boolean;
|
|
153
|
-
/**
|
|
154
|
-
* User and customer planes: the session store declares it persists `Session.entitlements`.
|
|
155
|
-
* Workload plane: always true (nothing is stored).
|
|
156
|
-
*/
|
|
157
|
-
capable: boolean;
|
|
158
|
-
};
|
|
159
|
-
/**
|
|
160
319
|
* Shared minimal identity fields used to build both the workforce user
|
|
161
320
|
* record (`BaseUser`) and the CIAM customer record (`BaseCustomer`), as well
|
|
162
321
|
* as the authenticated session types (`WorkforceUser`, `Customer`).
|
|
@@ -971,10 +1130,11 @@ type WorkloadIdentity = {
|
|
|
971
1130
|
/** Granted OAuth scopes (space-delimited). */
|
|
972
1131
|
scope?: string;
|
|
973
1132
|
/**
|
|
974
|
-
*
|
|
975
|
-
*
|
|
1133
|
+
* Whether the trusted IdP that validated this token opts into honoring its OAuth `scope` claim as
|
|
1134
|
+
* entitlements (per-IdP intent, resolved at validation time). Consumed by the request-level `has*`
|
|
1135
|
+
* helpers; `undefined` falls back to the global `RemoteConfig.authz.scopesAsEntitlements`.
|
|
976
1136
|
*/
|
|
977
|
-
|
|
1137
|
+
scopesAsEntitlements?: boolean;
|
|
978
1138
|
/**
|
|
979
1139
|
* Enterprise Controlled ID for this workload (`ecid:<realm>:<opaque>`), when carried on the token
|
|
980
1140
|
* `ecid` claim or enriched from a wired `WorkloadIdentityStore`. A workload is its own governance
|
|
@@ -1420,12 +1580,6 @@ interface WorkloadIdentityStore<TExtended = object> {
|
|
|
1420
1580
|
* policy (flag, auto-revoke + notify, or simply audit).
|
|
1421
1581
|
*/
|
|
1422
1582
|
type IamDeltaMode = "patch";
|
|
1423
|
-
/** ConfigSource-owned authenticated destination for the AccessRequests protocol. */
|
|
1424
|
-
type AccessRequestsDestination = {
|
|
1425
|
-
url: string;
|
|
1426
|
-
/** Named outgoing workload client. Omit to use the default workload server identity. */
|
|
1427
|
-
audience?: string;
|
|
1428
|
-
};
|
|
1429
1583
|
type AccessRequestCreate = {
|
|
1430
1584
|
subject: string;
|
|
1431
1585
|
subjectType: SubjectType;
|
|
@@ -1512,8 +1666,6 @@ interface IamDeltaEmitter {
|
|
|
1512
1666
|
* whose IAM aggregates by pull alone may still submit requests.
|
|
1513
1667
|
*/
|
|
1514
1668
|
requestAccess(input: AccessRequestCreate): Promise<AccessRequestResult>;
|
|
1515
|
-
/** Read the current state of a request previously submitted to this destination. */
|
|
1516
|
-
getAccessRequest(id: string): Promise<AccessRequestResult>;
|
|
1517
1669
|
/**
|
|
1518
1670
|
* Read a previously captured destination reference without making a network request. Returns
|
|
1519
1671
|
* undefined until the resource has been resolved or pushed to the configured IAM destination.
|
|
@@ -1523,657 +1675,84 @@ interface IamDeltaEmitter {
|
|
|
1523
1675
|
isReady(): boolean;
|
|
1524
1676
|
ready(timeout?: number): Promise<void>;
|
|
1525
1677
|
}
|
|
1526
|
-
|
|
1527
|
-
type
|
|
1528
|
-
/** Branding colors for rendering a provider button in light and dark themes. */
|
|
1529
|
-
type CIAMProviderColors = {
|
|
1530
|
-
/** Background/brand color for light theme (hex or CSS color). */
|
|
1531
|
-
light: string;
|
|
1532
|
-
/** Background/brand color for dark theme (hex or CSS color). */
|
|
1533
|
-
dark: string;
|
|
1534
|
-
/** Optional secondary/accent color. */
|
|
1535
|
-
secondary?: string;
|
|
1536
|
-
};
|
|
1537
|
-
/** Operator-supplied branding so the UI can render a provider list without hardcoding. */
|
|
1538
|
-
type CIAMProviderBranding = {
|
|
1539
|
-
/** Human-readable name shown on the login button (e.g. "Google"). */
|
|
1540
|
-
displayName: string;
|
|
1541
|
-
/** External icon URL (typically an SVG/PNG hosted on a CDN). */
|
|
1542
|
-
iconUrl?: string;
|
|
1543
|
-
/** Light/dark brand colors. */
|
|
1544
|
-
colors?: CIAMProviderColors;
|
|
1545
|
-
/** Optional provider info/marketing URL. */
|
|
1546
|
-
url?: string;
|
|
1547
|
-
};
|
|
1678
|
+
import { StandardSchemaV1 as StandardSchemaV14 } from "@standard-schema/spec";
|
|
1679
|
+
type ChangeListener = () => void;
|
|
1548
1680
|
/**
|
|
1549
|
-
*
|
|
1550
|
-
*
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
/** Provider adapter type. Selects defaults and claim mapping. */
|
|
1554
|
-
type: CIAMProviderType;
|
|
1555
|
-
/** Whether this provider is enabled. Defaults to true when omitted. */
|
|
1556
|
-
enabled?: boolean;
|
|
1557
|
-
/** Recommended display order (ascending). Ties broken by declaration order. */
|
|
1558
|
-
order?: number;
|
|
1559
|
-
/** UI branding metadata. */
|
|
1560
|
-
branding?: CIAMProviderBranding;
|
|
1561
|
-
/** OIDC issuer/authority (used for discovery when explicit endpoints are omitted). */
|
|
1562
|
-
authority?: string;
|
|
1563
|
-
/** Authorization endpoint (overrides preset). */
|
|
1564
|
-
authorizationUrl?: string;
|
|
1565
|
-
/** Token endpoint (overrides preset). */
|
|
1566
|
-
tokenUrl?: string;
|
|
1567
|
-
/** JWKS endpoint for ID token verification (overrides preset). */
|
|
1568
|
-
jwksUri?: string;
|
|
1569
|
-
/** OAuth2 UserInfo endpoint for providers without an ID token (e.g. GitHub). */
|
|
1570
|
-
userInfoUrl?: string;
|
|
1571
|
-
/** OAuth2 client id (ConfigSource-only). */
|
|
1572
|
-
clientId?: string;
|
|
1573
|
-
/** OAuth2 client secret (ConfigSource-only). */
|
|
1574
|
-
clientSecret?: string;
|
|
1575
|
-
/** Requested scope (overrides preset). */
|
|
1576
|
-
scope?: string;
|
|
1577
|
-
/** Apple: team id for client-secret generation. */
|
|
1578
|
-
teamId?: string;
|
|
1579
|
-
/** Apple: key id for client-secret generation. */
|
|
1580
|
-
keyId?: string;
|
|
1581
|
-
/** Apple: PKCS#8 PEM private key for client-secret generation. */
|
|
1582
|
-
privateKey?: string;
|
|
1583
|
-
/**
|
|
1584
|
-
* ConfigSource-only. When set, this provider's token claims are derived into session-scoped
|
|
1585
|
-
* customer entitlements at login. Magic link has no issuer and ignores this block.
|
|
1586
|
-
*/
|
|
1587
|
-
claimsAsEntitlements?: ClaimsAsEntitlements;
|
|
1588
|
-
/** ConfigSource-only IdP assignment workflow used when IAM assignment is `'idp'`. */
|
|
1589
|
-
accessRequests?: AccessRequestsDestination;
|
|
1590
|
-
};
|
|
1591
|
-
/** Sanitized provider entry returned by the discovery endpoint for the UI. */
|
|
1592
|
-
type CIAMProviderDescriptor = {
|
|
1593
|
-
/** Provider key (matches the RemoteConfig map key); used as `?provider=`. */
|
|
1594
|
-
name: string;
|
|
1595
|
-
type: CIAMProviderType;
|
|
1596
|
-
displayName: string;
|
|
1597
|
-
/** SDK-derived login URL to navigate to (begins the flow). */
|
|
1598
|
-
loginUrl: string;
|
|
1599
|
-
iconUrl?: string;
|
|
1600
|
-
colors?: CIAMProviderColors;
|
|
1601
|
-
url?: string;
|
|
1602
|
-
};
|
|
1603
|
-
/**
|
|
1604
|
-
* Light display cookies (`${cookiesPrefix}.profile`).
|
|
1605
|
-
*
|
|
1606
|
-
* The envelope is SDK-owned. App code supplies only `user`. The cookie is not an
|
|
1607
|
-
* authentication input: the server never reads it to resolve a session, and the browser
|
|
1608
|
-
* may forge it. `expiresAt` is display metadata so a client can order entries without a
|
|
1609
|
-
* round trip; authoritative expiry is the peer `${cookiesPrefix}.session` record.
|
|
1610
|
-
*/
|
|
1611
|
-
declare const DISPLAY_COOKIE_SUFFIX = ".profile";
|
|
1612
|
-
declare const DISPLAY_COOKIE_VERSION = 1;
|
|
1613
|
-
declare const DEFAULT_DISPLAY_COOKIE_MAX = 10;
|
|
1614
|
-
declare const DEFAULT_DISCOVERED_COOKIE_MAX = 10;
|
|
1615
|
-
declare const DEFAULT_DISCOVERED_COOKIE_TTL_SECONDS: number;
|
|
1616
|
-
declare const DISCOVERED_COOKIE_PREFIX = "ion.discovered";
|
|
1617
|
-
type DisplayCookieConfig = {
|
|
1618
|
-
/**
|
|
1619
|
-
* When true, the SDK writes a non-HttpOnly display cookie beside the opaque session cookie.
|
|
1620
|
-
* ConfigSource-only. Default false.
|
|
1621
|
-
*/
|
|
1622
|
-
enabled?: boolean;
|
|
1623
|
-
/**
|
|
1624
|
-
* How many display cookies a single response may leave on the browser, newest session window
|
|
1625
|
-
* first. ConfigSource-only. Values below 1 fall back to {@link DEFAULT_DISPLAY_COOKIE_MAX}.
|
|
1626
|
-
* @default 10
|
|
1627
|
-
*/
|
|
1628
|
-
max?: number;
|
|
1629
|
-
/**
|
|
1630
|
-
* Session-less tenant hints written by an App after an explicit directory lookup.
|
|
1631
|
-
* ConfigSource-only and off unless `enabled` is true.
|
|
1632
|
-
*/
|
|
1633
|
-
discovered?: DiscoveredDisplayCookieConfig;
|
|
1634
|
-
};
|
|
1635
|
-
type DiscoveredDisplayCookieConfig = {
|
|
1636
|
-
enabled?: boolean;
|
|
1637
|
-
/** Browser hint lifetime. This is not a session expiry. @default 14400 */
|
|
1638
|
-
ttlSeconds?: number;
|
|
1639
|
-
/** Independent cap; discovered hints never displace live-session entries. @default 10 */
|
|
1640
|
-
max?: number;
|
|
1641
|
-
};
|
|
1642
|
-
/** What `${basePath}/auth/user` and `${basePath}/auth/customer` return. ConfigSource-only. */
|
|
1643
|
-
type UserEndpointPolicy = "full" | "display" | "off";
|
|
1644
|
-
type DisplayUser = Record<string, string | number | boolean | null>;
|
|
1645
|
-
type DisplayAuthType = "sso" | "ciam";
|
|
1646
|
-
type DisplayCookieEnvelope = {
|
|
1647
|
-
v: typeof DISPLAY_COOKIE_VERSION;
|
|
1648
|
-
/**
|
|
1649
|
-
* Session envelopes omit this field (absent means `'session'`) so the wire format stays identical
|
|
1650
|
-
* to cookies written before discovered hints existed; only discovered hints set it explicitly.
|
|
1651
|
-
* Readers must treat `undefined` as `'session'`.
|
|
1652
|
-
*/
|
|
1653
|
-
kind?: "session" | "discovered";
|
|
1654
|
-
tenantId?: string;
|
|
1655
|
-
authType: DisplayAuthType;
|
|
1656
|
-
/** ISO timestamp copied from the session window at write time. Display only. */
|
|
1657
|
-
expiresAt: string;
|
|
1658
|
-
user: DisplayUser;
|
|
1659
|
-
tenantName?: string;
|
|
1660
|
-
};
|
|
1661
|
-
type DisplayIdentity = {
|
|
1662
|
-
name?: string;
|
|
1663
|
-
email?: string;
|
|
1664
|
-
avatar?: string;
|
|
1665
|
-
};
|
|
1666
|
-
declare function resolveDisplayCookieMax(max: number | undefined): number;
|
|
1667
|
-
declare function resolveDiscoveredCookieMax(max: number | undefined): number;
|
|
1668
|
-
declare function resolveDiscoveredCookieTtlSeconds(ttlSeconds: number | undefined): number;
|
|
1669
|
-
declare function defaultDisplayUser(identity: DisplayIdentity): DisplayUser;
|
|
1670
|
-
/** Drop non-primitives and auth-bearing keys. Display cookies carry UI fields only. */
|
|
1671
|
-
declare function sanitizeDisplayUser(value: unknown): DisplayUser;
|
|
1672
|
-
/**
|
|
1673
|
-
* AppDev projection runs on the full user (including custom attributes). When omitted, or when it
|
|
1674
|
-
* throws, the cookie carries name, email, and avatar only. Forbidden and non-primitive fields are
|
|
1675
|
-
* dropped either way — a projector cannot put a session id or token into the cookie.
|
|
1676
|
-
*/
|
|
1677
|
-
declare function projectDisplayUser<TUser extends object>(user: TUser, projector?: (user: TUser) => unknown): DisplayUser;
|
|
1678
|
-
declare function encodeDisplayCookie(envelope: DisplayCookieEnvelope): string;
|
|
1679
|
-
declare function decodeDisplayCookie(raw: string): DisplayCookieEnvelope | undefined;
|
|
1680
|
-
type ParsedDisplayCookie = {
|
|
1681
|
-
name: string;
|
|
1682
|
-
prefix: string;
|
|
1683
|
-
envelope: DisplayCookieEnvelope;
|
|
1684
|
-
};
|
|
1685
|
-
declare function readDisplayCookies(cookieHeader: string | null | undefined): ParsedDisplayCookie[];
|
|
1686
|
-
/** Client ordering: newest session window first. Invalid timestamps sort last. */
|
|
1687
|
-
declare function compareDisplayExpiryDesc(a: string | undefined, b: string | undefined): number;
|
|
1688
|
-
declare function profileCookieName(cookiesPrefix: string): string;
|
|
1689
|
-
declare function discoveredProfileCookieName(tenantId: string): string;
|
|
1690
|
-
/**
|
|
1691
|
-
* Minimal logger interface compatible with common structured logging patterns.
|
|
1692
|
-
*/
|
|
1693
|
-
interface Logger {
|
|
1694
|
-
trace(message?: unknown, ...optionalParams: unknown[]): void;
|
|
1695
|
-
debug(message?: unknown, ...optionalParams: unknown[]): void;
|
|
1696
|
-
info(message?: unknown, ...optionalParams: unknown[]): void;
|
|
1697
|
-
warn(message?: unknown, ...optionalParams: unknown[]): void;
|
|
1698
|
-
error(message?: unknown, ...optionalParams: unknown[]): void;
|
|
1699
|
-
}
|
|
1700
|
-
/**
|
|
1701
|
-
* Renders a structured logger call as one greppable line while leaving the source fields separate
|
|
1702
|
-
* for telemetry exporters.
|
|
1703
|
-
*/
|
|
1704
|
-
declare function formatLogLine(level: keyof Logger, message: unknown, optionalParams?: unknown[], timestamp?: Date): string;
|
|
1705
|
-
/**
|
|
1706
|
-
* No-op implementation — does nothing for any log level
|
|
1707
|
-
*/
|
|
1708
|
-
declare const silentLogger: Logger;
|
|
1709
|
-
/**
|
|
1710
|
-
* Default logger used until an ionite instance is configured with
|
|
1711
|
-
* an OpenTelemetry-backed logger or an application-provided logger.
|
|
1712
|
-
*/
|
|
1713
|
-
declare const defaultLogger: Logger;
|
|
1714
|
-
/**
|
|
1715
|
-
* Logger that logs messages debug, info, warn, and error to the console.
|
|
1716
|
-
*/
|
|
1717
|
-
declare const debugLogger: Logger;
|
|
1718
|
-
/**
|
|
1719
|
-
* Logger that logs messages info, warn, and error to the console.
|
|
1720
|
-
*/
|
|
1721
|
-
declare const infoLogger: Logger;
|
|
1722
|
-
/**
|
|
1723
|
-
* Logger that logs messages warn and error to the console.
|
|
1724
|
-
*/
|
|
1725
|
-
declare const warnLogger: Logger;
|
|
1726
|
-
/**
|
|
1727
|
-
* Human-readable single-line console logger for local application output.
|
|
1728
|
-
*/
|
|
1729
|
-
declare const prettyLogger: Logger;
|
|
1730
|
-
import { StandardSchemaV1 as StandardSchemaV15 } from "@standard-schema/spec";
|
|
1731
|
-
type ChangeListener = () => void;
|
|
1732
|
-
/**
|
|
1733
|
-
* Reactive source/adapter contract. Implemented by config-source-backed adapters
|
|
1734
|
-
* (for example `SecretsSource`) to advertise change subscription and source liveness.
|
|
1735
|
-
* `isAvailable()` here is an adapter liveness hook and is intentionally distinct from
|
|
1736
|
-
* module readiness (`ModuleReadiness.isReady()` / `ready()`).
|
|
1681
|
+
* Reactive source/adapter contract. Implemented by config-source-backed adapters
|
|
1682
|
+
* (for example `SecretsSource`) to advertise change subscription and source liveness.
|
|
1683
|
+
* `isAvailable()` here is an adapter liveness hook and is intentionally distinct from
|
|
1684
|
+
* module readiness (`ModuleReadiness.isReady()` / `ready()`).
|
|
1737
1685
|
*/
|
|
1738
1686
|
type ReactiveHandle = {
|
|
1739
|
-
beforeChange?(listener: ChangeListener): () => void;
|
|
1740
|
-
afterChange?(listener: ChangeListener): () => void;
|
|
1741
|
-
isAvailable?(): boolean;
|
|
1742
|
-
};
|
|
1743
|
-
/**
|
|
1744
|
-
* Readiness contract for reactive module/service handles whose usability depends on
|
|
1745
|
-
* RemoteConfig that can arrive or change at runtime (for example `ion.secrets`,
|
|
1746
|
-
* `ion.workload`, `ion.otel`, `ion.authz.oaa`).
|
|
1747
|
-
*
|
|
1748
|
-
* - `isReady()` is a synchronous check; use it in request handlers and health probes and
|
|
1749
|
-
* return 503 (or branch) when false instead of blocking.
|
|
1750
|
-
* - `ready(timeout?)` resolves once the handle first becomes usable; use it at startup or
|
|
1751
|
-
* as a feature gate. With no timeout it waits indefinitely; with `timeout > 0` it rejects
|
|
1752
|
-
* after that many milliseconds.
|
|
1753
|
-
*/
|
|
1754
|
-
type ModuleReadiness = {
|
|
1755
|
-
beforeChange?(listener: ChangeListener): () => void;
|
|
1756
|
-
afterChange?(listener: ChangeListener): () => void;
|
|
1757
|
-
isReady?(): boolean;
|
|
1758
|
-
ready?(timeout?: number): Promise<void>;
|
|
1759
|
-
};
|
|
1760
|
-
/**
|
|
1761
|
-
* Canonical ionite module names used by the holistic readiness report and the
|
|
1762
|
-
* `requireReady([...])` helper. These are the config-driven module handles whose readiness can be
|
|
1763
|
-
* composed; `ion.isReady()` itself stays the narrow "config applied" signal and is NOT one of these.
|
|
1764
|
-
*
|
|
1765
|
-
* IAM-delta egress is intentionally NOT a member. Delta patch-back is best-effort and non-fatal (a
|
|
1766
|
-
* failed push only logs `degraded` and is reconciled by a later full sync — the Batch 7 drift-signal
|
|
1767
|
-
* contract), so folding it into `iam` readiness would let a delta-target outage make
|
|
1768
|
-
* `requireReady(['iam'])` false and take the app out of rotation for a signal that is designed not to
|
|
1769
|
-
* block. Apps that DO treat delta as a hard dependency can gate on `ion.iam.delta.isReady()` /
|
|
1770
|
-
* `ion.iam.delta.ready()` explicitly instead.
|
|
1771
|
-
*/
|
|
1772
|
-
type ModuleName = "sso" | "ciam" | "iam" | "workload" | "otel" | "secrets" | "kms" | "authz" | "tm";
|
|
1773
|
-
/** Per-module readiness snapshot in {@link ReadinessReport}. */
|
|
1774
|
-
type ModuleReadinessState = {
|
|
1775
|
-
/** Whether the module is active (present/requested) in the effective config. Inactive modules never block readiness. */
|
|
1776
|
-
active: boolean;
|
|
1777
|
-
/** Synchronous readiness of the module right now (mirrors the module's own `isReady()`). */
|
|
1778
|
-
ready: boolean;
|
|
1779
|
-
/** Human-readable explanation when the module is `active` but not `ready`. */
|
|
1780
|
-
reason?: string;
|
|
1781
|
-
};
|
|
1782
|
-
/**
|
|
1783
|
-
* Holistic, read-only readiness snapshot for an ionite instance. Returned by
|
|
1784
|
-
* `ion.readiness()` and used by the built-in `${basePath}/readyz` endpoint. This is composition
|
|
1785
|
-
* DATA, not a request gate: applications combine it (via `ion.requireReady([...])`) with their own
|
|
1786
|
-
* non-ionite dependency checks to build their health endpoints.
|
|
1787
|
-
*/
|
|
1788
|
-
type ReadinessReport = {
|
|
1789
|
-
/** True when config has been applied (`applied`) and every ACTIVE module is ready. */
|
|
1790
|
-
ok: boolean;
|
|
1791
|
-
/** Whether RemoteConfig has been applied at least once (mirrors `ion.isReady()`). */
|
|
1792
|
-
applied: boolean;
|
|
1793
|
-
/** Per-module readiness keyed by {@link ModuleName}. */
|
|
1794
|
-
modules: Record<ModuleName, ModuleReadinessState>;
|
|
1795
|
-
/** Most recent config-application outcome (last applied time and last error, if any). */
|
|
1796
|
-
config: ConfigApplyStatus;
|
|
1797
|
-
};
|
|
1798
|
-
/** Result of `ion.requireReady(names)`: a synchronous, declarative readiness gate over selected modules. */
|
|
1799
|
-
type RequireReadyResult = {
|
|
1800
|
-
/** True when config is applied and every requested module is ready. */
|
|
1801
|
-
ok: boolean;
|
|
1802
|
-
/** The requested modules that are not ready, with reasons when available. */
|
|
1803
|
-
notReady: Array<{
|
|
1804
|
-
name: ModuleName;
|
|
1805
|
-
reason?: string;
|
|
1806
|
-
}>;
|
|
1807
|
-
};
|
|
1808
|
-
type CapabilityKey = "sso.login" | "sso.jit" | "sso.logout" | "sso.back_channel_logout" | "sso.claims_authz" | "ciam.magic_link" | "ciam.oidc_login" | "ciam.customer" | "ciam.logout" | "ciam.claims_authz" | "iam.users" | "iam.groups" | "iam.workloads" | "iam.customers" | "workload.incoming" | "workload.outgoing" | "workload.claims_authz" | "authz.oaa" | "authz.access_requests" | "tm.integration";
|
|
1809
|
-
type CapabilityEndpointUrls = {
|
|
1810
|
-
readyzUrl: string;
|
|
1811
|
-
capabilitiezUrl: string;
|
|
1812
|
-
sso: {
|
|
1813
|
-
loginUrl: string;
|
|
1814
|
-
userUrl: string;
|
|
1815
|
-
logoutUrl: string;
|
|
1816
|
-
logoutBackChannelUrl: string;
|
|
1817
|
-
refreshUrl: string;
|
|
1818
|
-
callbackUrl: string;
|
|
1819
|
-
};
|
|
1820
|
-
workload: {
|
|
1821
|
-
validateUrl: string;
|
|
1822
|
-
jwksUrl: string;
|
|
1823
|
-
};
|
|
1824
|
-
iam: {
|
|
1825
|
-
basePath: string;
|
|
1826
|
-
usersUrl: string;
|
|
1827
|
-
groupsUrl: string;
|
|
1828
|
-
workloadsUrl: string;
|
|
1829
|
-
customersUrl: string;
|
|
1830
|
-
};
|
|
1831
|
-
ciam: {
|
|
1832
|
-
magicLinkUrl: string;
|
|
1833
|
-
magicLinkLoginUrl: string;
|
|
1834
|
-
customerUrl: string;
|
|
1835
|
-
customerLoginUrl: string;
|
|
1836
|
-
customerCallbackUrl: string;
|
|
1837
|
-
customerProvidersUrl: string;
|
|
1838
|
-
logoutUrl: string;
|
|
1839
|
-
};
|
|
1840
|
-
};
|
|
1841
|
-
type CapabilityState = {
|
|
1842
|
-
module: ModuleName;
|
|
1843
|
-
active: boolean;
|
|
1844
|
-
ready: boolean;
|
|
1845
|
-
testable: boolean;
|
|
1846
|
-
urls?: string[];
|
|
1847
|
-
reason?: string;
|
|
1848
|
-
};
|
|
1849
|
-
type CapabilitiezManifest = {
|
|
1850
|
-
sdk: {
|
|
1851
|
-
/** Runtime @ionite/server version serving this manifest. */
|
|
1852
|
-
version: string;
|
|
1853
|
-
/** Version of the stable capability/test-unit vocabulary. */
|
|
1854
|
-
catalogVersion: number;
|
|
1855
|
-
};
|
|
1856
|
-
basePath: string;
|
|
1857
|
-
urls: CapabilityEndpointUrls;
|
|
1858
|
-
modules: Record<ModuleName, ModuleReadinessState>;
|
|
1859
|
-
capabilities: Record<CapabilityKey, CapabilityState>;
|
|
1860
|
-
/**
|
|
1861
|
-
* True when FrameworkConfig wired a live LFV callback transport. Boolean only — the transport
|
|
1862
|
-
* object, Redis URL, and credentials are never exposed.
|
|
1863
|
-
*/
|
|
1864
|
-
lfvCallbackTransport: boolean;
|
|
1865
|
-
};
|
|
1866
|
-
type OtelSignalName = "traces" | "metrics" | "logs";
|
|
1867
|
-
type OtelProtocol = "http/protobuf" | "http/json";
|
|
1868
|
-
type OtelProviderType = "otlp" | "grafana-lgtm" | "datadog" | "splunk" | "elastic";
|
|
1869
|
-
type OtelLogLevel = "trace" | "debug" | "info" | "warn" | "error";
|
|
1870
|
-
type OtelLevels = Partial<Record<OtelLogLevel, boolean>>;
|
|
1871
|
-
/** Local console mirror policy: disable it or set its minimum emitted severity. */
|
|
1872
|
-
type OtelConsoleMode = "off" | OtelLogLevel;
|
|
1873
|
-
type OtelAttributeValue = string | number | boolean | string[] | number[] | boolean[];
|
|
1874
|
-
type OtelAttributes = Record<string, OtelAttributeValue>;
|
|
1875
|
-
type OtelSignalConfig = {
|
|
1876
|
-
/** Per-signal OTLP endpoint. When omitted, the module appends /v1/{signal} to `endpoint`. */
|
|
1877
|
-
endpoint?: string;
|
|
1878
|
-
headers?: Record<string, string>;
|
|
1879
|
-
timeoutMillis?: number;
|
|
1880
|
-
concurrencyLimit?: number;
|
|
1881
|
-
};
|
|
1882
|
-
type OtelMetricsSignalConfig = OtelSignalConfig & {
|
|
1883
|
-
exportIntervalMillis?: number;
|
|
1884
|
-
exportTimeoutMillis?: number;
|
|
1885
|
-
};
|
|
1886
|
-
type OtelOAuthClientCredentialsConfig = {
|
|
1887
|
-
tokenUrl: string;
|
|
1888
|
-
clientId: string;
|
|
1889
|
-
clientSecret: string;
|
|
1890
|
-
scope?: string;
|
|
1891
|
-
audience?: string;
|
|
1892
|
-
headers?: Record<string, string>;
|
|
1893
|
-
};
|
|
1894
|
-
type OtelLogRecord = {
|
|
1895
|
-
severityNumber?: number;
|
|
1896
|
-
severityText?: string;
|
|
1897
|
-
body?: unknown;
|
|
1898
|
-
attributes?: Record<string, unknown>;
|
|
1899
|
-
};
|
|
1900
|
-
/**
|
|
1901
|
-
* OpenTelemetry config supplied by ConfigSource/RemoteConfig.
|
|
1902
|
-
* Keep environment-specific URLs and credentials here, not in FrameworkConfig.
|
|
1903
|
-
*/
|
|
1904
|
-
type OtelConfig = {
|
|
1905
|
-
type?: OtelProviderType;
|
|
1906
|
-
name: string;
|
|
1907
|
-
endpoint?: string;
|
|
1908
|
-
protocol?: OtelProtocol;
|
|
1909
|
-
headers?: Record<string, string>;
|
|
1910
|
-
apiKey?: string;
|
|
1911
|
-
/** Name of a `RemoteConfig.kms` key pool used for exporter authentication. */
|
|
1912
|
-
apiKeyPool?: string;
|
|
1913
|
-
apiKeyHeader?: string;
|
|
1914
|
-
oauth?: OtelOAuthClientCredentialsConfig;
|
|
1915
|
-
version?: string;
|
|
1916
|
-
deploymentEnvironment?: string;
|
|
1917
|
-
resourceAttributes?: OtelAttributes;
|
|
1918
|
-
levels?: OtelLevels;
|
|
1919
|
-
/** `'off'` exports only to OTel; a level dual-emits at or above that severity. Defaults to `'info'`. */
|
|
1920
|
-
console?: OtelConsoleMode;
|
|
1921
|
-
traces?: boolean | OtelSignalConfig;
|
|
1922
|
-
metrics?: boolean | OtelMetricsSignalConfig;
|
|
1923
|
-
logs?: boolean | OtelSignalConfig;
|
|
1924
|
-
};
|
|
1925
|
-
/**
|
|
1926
|
-
* OpenTelemetry app/runtime wiring supplied by code.
|
|
1927
|
-
* Instrumentation instances and callbacks live here because they are framework-specific code.
|
|
1928
|
-
*/
|
|
1929
|
-
type FrameworkOtelConfig = {
|
|
1930
|
-
levels?: OtelLevels;
|
|
1931
|
-
instrument?: unknown[];
|
|
1932
|
-
/** Optional app-owned destination/renderer for records admitted by `RemoteConfig.otel.console`. */
|
|
1933
|
-
console?: (record: OtelLogRecord) => void;
|
|
1934
|
-
spanProcessors?: unknown[];
|
|
1935
|
-
metricReaders?: unknown[];
|
|
1936
|
-
logRecordProcessors?: unknown[];
|
|
1937
|
-
sampler?: unknown;
|
|
1938
|
-
textMapPropagator?: unknown;
|
|
1939
|
-
contextManager?: unknown;
|
|
1940
|
-
configure?: (options: Record<string, unknown>) => Record<string, unknown> | void;
|
|
1941
|
-
};
|
|
1942
|
-
type Otel = {
|
|
1943
|
-
/** Secret-free, JSON-serializable configuration and readiness summary. */
|
|
1944
|
-
describe(): OtelDescription;
|
|
1945
|
-
beforeChange(listener: ChangeListener): () => void;
|
|
1946
|
-
afterChange(listener: ChangeListener): () => void;
|
|
1947
|
-
isReady(): boolean;
|
|
1948
|
-
ready(timeout?: number): Promise<void>;
|
|
1949
|
-
logger: Logger;
|
|
1950
|
-
forceFlush(): Promise<void>;
|
|
1951
|
-
shutdown(): Promise<void>;
|
|
1952
|
-
};
|
|
1953
|
-
type ModuleDescriptionBase<TModule extends ModuleName> = {
|
|
1954
|
-
module: TModule;
|
|
1955
|
-
active: boolean;
|
|
1956
|
-
ready: boolean;
|
|
1957
|
-
};
|
|
1958
|
-
type CookieDescription = {
|
|
1959
|
-
prefix?: string;
|
|
1960
|
-
path?: string;
|
|
1961
|
-
secure?: boolean;
|
|
1962
|
-
sameSite?: "Strict" | "Lax";
|
|
1963
|
-
domain?: string;
|
|
1964
|
-
};
|
|
1965
|
-
type SsoDescription = ModuleDescriptionBase<"sso"> & {
|
|
1966
|
-
authority?: string;
|
|
1967
|
-
tokenUrl?: string;
|
|
1968
|
-
authorizationUrl?: string;
|
|
1969
|
-
clientId?: string;
|
|
1970
|
-
redirectUri?: string;
|
|
1971
|
-
responseType?: "code";
|
|
1972
|
-
scope?: string;
|
|
1973
|
-
silentRedirectUri?: string;
|
|
1974
|
-
jwksUri?: string;
|
|
1975
|
-
endSessionEndpoint?: string;
|
|
1976
|
-
revocationEndpoint?: string;
|
|
1977
|
-
cookies: CookieDescription;
|
|
1978
|
-
loginStateTtl?: number;
|
|
1979
|
-
rotationGraceSeconds?: number;
|
|
1980
|
-
sessionWindowSeconds?: number;
|
|
1981
|
-
displayCookie?: DisplayCookieConfig;
|
|
1982
|
-
jit: {
|
|
1983
|
-
enabled: boolean;
|
|
1984
|
-
userStore: boolean;
|
|
1985
|
-
};
|
|
1986
|
-
sessionStore: boolean;
|
|
1987
|
-
/** Present when RemoteConfig configured claim-derived entitlements for this workforce issuer. */
|
|
1988
|
-
claimsAsEntitlements?: ClaimsAsEntitlementsDescription;
|
|
1989
|
-
urls: Partial<CapabilityEndpointUrls["sso"]>;
|
|
1990
|
-
};
|
|
1991
|
-
type CiamProviderDescription = {
|
|
1992
|
-
name: string;
|
|
1993
|
-
type: CIAMProviderType;
|
|
1994
|
-
enabled: boolean;
|
|
1995
|
-
order?: number;
|
|
1996
|
-
branding?: CIAMProviderBranding;
|
|
1997
|
-
authority?: string;
|
|
1998
|
-
authorizationUrl?: string;
|
|
1999
|
-
tokenUrl?: string;
|
|
2000
|
-
jwksUri?: string;
|
|
2001
|
-
userInfoUrl?: string;
|
|
2002
|
-
clientId?: string;
|
|
2003
|
-
scope?: string;
|
|
2004
|
-
claimsAsEntitlements?: ClaimsAsEntitlementsDescription;
|
|
2005
|
-
loginUrl: string;
|
|
2006
|
-
};
|
|
2007
|
-
type CiamDescription = ModuleDescriptionBase<"ciam"> & {
|
|
2008
|
-
magicLinkTtl?: number;
|
|
2009
|
-
loginStateTtl?: number;
|
|
2010
|
-
sessionTtl?: number;
|
|
2011
|
-
cookies: CookieDescription;
|
|
2012
|
-
displayCookie?: DisplayCookieConfig;
|
|
2013
|
-
jit: {
|
|
2014
|
-
enabled: boolean;
|
|
2015
|
-
customerStore: boolean;
|
|
2016
|
-
};
|
|
2017
|
-
sessionStore: boolean;
|
|
2018
|
-
magicLinkStore: boolean;
|
|
2019
|
-
providers: CiamProviderDescription[];
|
|
2020
|
-
urls: Partial<CapabilityEndpointUrls["ciam"]>;
|
|
2021
|
-
};
|
|
2022
|
-
type IamPrincipalDescription = {
|
|
2023
|
-
enabled: boolean;
|
|
2024
|
-
assignment: IamAssignmentPolicy;
|
|
2025
|
-
delta?: "patch";
|
|
2026
|
-
storeWired: boolean;
|
|
2027
|
-
};
|
|
2028
|
-
type AccessRequestsChannelsDescription = {
|
|
2029
|
-
iam?: string;
|
|
2030
|
-
sso?: string;
|
|
2031
|
-
ciam: Record<string, string>;
|
|
2032
|
-
};
|
|
2033
|
-
type IamDescription = ModuleDescriptionBase<"iam"> & {
|
|
2034
|
-
url?: string;
|
|
2035
|
-
deltaAudience?: string;
|
|
2036
|
-
accessRequests: AccessRequestsChannelsDescription;
|
|
2037
|
-
users: IamPrincipalDescription;
|
|
2038
|
-
workloads: IamPrincipalDescription;
|
|
2039
|
-
customers: IamPrincipalDescription;
|
|
2040
|
-
groups: {
|
|
2041
|
-
enabled: boolean;
|
|
2042
|
-
catalogWired: boolean;
|
|
2043
|
-
};
|
|
2044
|
-
urls: Partial<CapabilityEndpointUrls["iam"]>;
|
|
2045
|
-
};
|
|
2046
|
-
type WorkloadTrustedIdpDescription = {
|
|
2047
|
-
issuer: string;
|
|
2048
|
-
jwksUri: string;
|
|
2049
|
-
audience: string | string[];
|
|
2050
|
-
claimsAsEntitlements?: ClaimsAsEntitlementsDescription;
|
|
2051
|
-
};
|
|
2052
|
-
type WorkloadClientDescription = {
|
|
2053
|
-
name: string;
|
|
2054
|
-
ready: boolean;
|
|
2055
|
-
clientId?: string;
|
|
2056
|
-
workloadId?: string;
|
|
2057
|
-
idpTokenUrl?: string;
|
|
2058
|
-
scope?: string;
|
|
2059
|
-
audience?: string;
|
|
2060
|
-
authMethod: "client_secret" | "private_key_jwt" | "server_only";
|
|
2061
|
-
};
|
|
2062
|
-
type WorkloadDescription = ModuleDescriptionBase<"workload"> & {
|
|
2063
|
-
incoming: {
|
|
2064
|
-
trustedIdps: WorkloadTrustedIdpDescription[];
|
|
2065
|
-
};
|
|
2066
|
-
outgoing: WorkloadClientDescription[];
|
|
2067
|
-
urls: Partial<CapabilityEndpointUrls["workload"]>;
|
|
2068
|
-
};
|
|
2069
|
-
type SecretsSourceDescription = {
|
|
2070
|
-
name: string;
|
|
2071
|
-
type: "dev" | "gcp" | "vault" | "aws" | "azure";
|
|
2072
|
-
ready: boolean;
|
|
2073
|
-
url?: string;
|
|
2074
|
-
clientId?: string;
|
|
2075
|
-
authMethod?: string;
|
|
2076
|
-
};
|
|
2077
|
-
type SecretsDescription = ModuleDescriptionBase<"secrets"> & {
|
|
2078
|
-
sources: SecretsSourceDescription[];
|
|
2079
|
-
};
|
|
2080
|
-
type KmsPoolDescription = {
|
|
2081
|
-
name: string;
|
|
2082
|
-
source?: string;
|
|
2083
|
-
path: string;
|
|
2084
|
-
ready: boolean;
|
|
2085
|
-
};
|
|
2086
|
-
type KmsDescription = ModuleDescriptionBase<"kms"> & {
|
|
2087
|
-
pools: KmsPoolDescription[];
|
|
2088
|
-
};
|
|
2089
|
-
type OtelSignalDescription = {
|
|
2090
|
-
enabled: boolean;
|
|
2091
|
-
endpoint?: string;
|
|
2092
|
-
timeoutMillis?: number;
|
|
2093
|
-
concurrencyLimit?: number;
|
|
2094
|
-
exportIntervalMillis?: number;
|
|
2095
|
-
exportTimeoutMillis?: number;
|
|
2096
|
-
};
|
|
2097
|
-
type OtelDescription = ModuleDescriptionBase<"otel"> & {
|
|
2098
|
-
type?: OtelProviderType;
|
|
2099
|
-
name?: string;
|
|
2100
|
-
endpoint?: string;
|
|
2101
|
-
protocol?: OtelProtocol;
|
|
2102
|
-
apiKeyPool?: string;
|
|
2103
|
-
apiKeyHeader?: string;
|
|
2104
|
-
oauth?: {
|
|
2105
|
-
tokenUrl: string;
|
|
2106
|
-
clientId: string;
|
|
2107
|
-
scope?: string;
|
|
2108
|
-
audience?: string;
|
|
2109
|
-
};
|
|
2110
|
-
version?: string;
|
|
2111
|
-
deploymentEnvironment?: string;
|
|
2112
|
-
resourceAttributes?: OtelAttributes;
|
|
2113
|
-
levels?: OtelLevels;
|
|
2114
|
-
console?: OtelConsoleMode;
|
|
2115
|
-
signals: {
|
|
2116
|
-
traces: OtelSignalDescription;
|
|
2117
|
-
metrics: OtelSignalDescription;
|
|
2118
|
-
logs: OtelSignalDescription;
|
|
2119
|
-
};
|
|
1687
|
+
beforeChange?(listener: ChangeListener): () => void;
|
|
1688
|
+
afterChange?(listener: ChangeListener): () => void;
|
|
1689
|
+
isAvailable?(): boolean;
|
|
2120
1690
|
};
|
|
2121
|
-
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
}>;
|
|
2138
|
-
oaa?: OaaDescription;
|
|
2139
|
-
stores: {
|
|
2140
|
-
accessStore: boolean;
|
|
2141
|
-
accessIndex: boolean;
|
|
2142
|
-
catalogStore: boolean;
|
|
2143
|
-
resources: boolean;
|
|
2144
|
-
};
|
|
1691
|
+
/**
|
|
1692
|
+
* Readiness contract for reactive module/service handles whose usability depends on
|
|
1693
|
+
* RemoteConfig that can arrive or change at runtime (for example `ion.secrets`,
|
|
1694
|
+
* `ion.workload`, `ion.otel`, `ion.authz.oaa`).
|
|
1695
|
+
*
|
|
1696
|
+
* - `isReady()` is a synchronous check; use it in request handlers and health probes and
|
|
1697
|
+
* return 503 (or branch) when false instead of blocking.
|
|
1698
|
+
* - `ready(timeout?)` resolves once the handle first becomes usable; use it at startup or
|
|
1699
|
+
* as a feature gate. With no timeout it waits indefinitely; with `timeout > 0` it rejects
|
|
1700
|
+
* after that many milliseconds.
|
|
1701
|
+
*/
|
|
1702
|
+
type ModuleReadiness = {
|
|
1703
|
+
beforeChange?(listener: ChangeListener): () => void;
|
|
1704
|
+
afterChange?(listener: ChangeListener): () => void;
|
|
1705
|
+
isReady?(): boolean;
|
|
1706
|
+
ready?(timeout?: number): Promise<void>;
|
|
2145
1707
|
};
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
|
|
2152
|
-
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
1708
|
+
/**
|
|
1709
|
+
* Canonical ionite module names used by the holistic readiness report and the
|
|
1710
|
+
* `requireReady([...])` helper. These are the config-driven module handles whose readiness can be
|
|
1711
|
+
* composed; `ion.isReady()` itself stays the narrow "config applied" signal and is NOT one of these.
|
|
1712
|
+
*
|
|
1713
|
+
* IAM-delta egress is intentionally NOT a member. Delta patch-back is best-effort and non-fatal (a
|
|
1714
|
+
* failed push only logs `degraded` and is reconciled by a later full sync — the Batch 7 drift-signal
|
|
1715
|
+
* contract), so folding it into `iam` readiness would let a delta-target outage make
|
|
1716
|
+
* `requireReady(['iam'])` false and take the app out of rotation for a signal that is designed not to
|
|
1717
|
+
* block. Apps that DO treat delta as a hard dependency can gate on `ion.iam.delta.isReady()` /
|
|
1718
|
+
* `ion.iam.delta.ready()` explicitly instead.
|
|
1719
|
+
*/
|
|
1720
|
+
type ModuleName = "sso" | "ciam" | "iam" | "workload" | "otel" | "secrets" | "kms" | "authz" | "tm";
|
|
1721
|
+
/** Per-module readiness snapshot in {@link ReadinessReport}. */
|
|
1722
|
+
type ModuleReadinessState = {
|
|
1723
|
+
/** Whether the module is active (present/requested) in the effective config. Inactive modules never block readiness. */
|
|
1724
|
+
active: boolean;
|
|
1725
|
+
/** Synchronous readiness of the module right now (mirrors the module's own `isReady()`). */
|
|
1726
|
+
ready: boolean;
|
|
1727
|
+
/** Human-readable explanation when the module is `active` but not `ready`. */
|
|
1728
|
+
reason?: string;
|
|
2159
1729
|
};
|
|
2160
|
-
|
|
2161
|
-
|
|
2162
|
-
|
|
2163
|
-
|
|
2164
|
-
|
|
2165
|
-
|
|
2166
|
-
|
|
2167
|
-
|
|
2168
|
-
urls: CapabilityEndpointUrls;
|
|
1730
|
+
/**
|
|
1731
|
+
* Holistic, read-only readiness snapshot for an ionite instance. Returned by
|
|
1732
|
+
* `ion.readiness()` and used by the built-in `${basePath}/readyz` endpoint. This is composition
|
|
1733
|
+
* DATA, not a request gate: applications combine it (via `ion.requireReady([...])`) with their own
|
|
1734
|
+
* non-ionite dependency checks to build their health endpoints.
|
|
1735
|
+
*/
|
|
1736
|
+
type ReadinessReport = {
|
|
1737
|
+
/** True when config has been applied (`applied`) and every ACTIVE module is ready. */
|
|
2169
1738
|
ok: boolean;
|
|
1739
|
+
/** Whether RemoteConfig has been applied at least once (mirrors `ion.isReady()`). */
|
|
2170
1740
|
applied: boolean;
|
|
1741
|
+
/** Per-module readiness keyed by {@link ModuleName}. */
|
|
1742
|
+
modules: Record<ModuleName, ModuleReadinessState>;
|
|
1743
|
+
/** Most recent config-application outcome (last applied time and last error, if any). */
|
|
2171
1744
|
config: ConfigApplyStatus;
|
|
2172
|
-
|
|
2173
|
-
|
|
1745
|
+
};
|
|
1746
|
+
/** Result of `ion.requireReady(names)`: a synchronous, declarative readiness gate over selected modules. */
|
|
1747
|
+
type RequireReadyResult = {
|
|
1748
|
+
/** True when config is applied and every requested module is ready. */
|
|
1749
|
+
ok: boolean;
|
|
1750
|
+
/** The requested modules that are not ready, with reasons when available. */
|
|
1751
|
+
notReady: Array<{
|
|
1752
|
+
name: ModuleName;
|
|
1753
|
+
reason?: string;
|
|
2174
1754
|
}>;
|
|
2175
1755
|
};
|
|
2176
|
-
import { StandardSchemaV1 as StandardSchemaV14 } from "@standard-schema/spec";
|
|
2177
1756
|
/**
|
|
2178
1757
|
* Token caching for workload identity authentication.
|
|
2179
1758
|
*
|
|
@@ -2364,10 +1943,12 @@ type WorkloadConfigBase = {
|
|
|
2364
1943
|
*/
|
|
2365
1944
|
audience?: string;
|
|
2366
1945
|
/**
|
|
2367
|
-
* Per-IdP intent (incoming/server role only):
|
|
2368
|
-
* `
|
|
1946
|
+
* Per-IdP intent (incoming/server role only): when `true`, tokens validated against THIS trust
|
|
1947
|
+
* anchor have their OAuth `scope` claim auto-honored as entitlements by the request-level `has*`
|
|
1948
|
+
* helpers (audience-bound). Mirrors `RemoteConfig.authz.scopesAsEntitlements` but scoped to a single
|
|
1949
|
+
* trusted IdP so first-party scopes can be honored while federated/third-party ones are not.
|
|
2369
1950
|
*/
|
|
2370
|
-
|
|
1951
|
+
scopesAsEntitlements?: boolean;
|
|
2371
1952
|
/**
|
|
2372
1953
|
* Default OAuth2 scopes (space-delimited)
|
|
2373
1954
|
*/
|
|
@@ -2477,10 +2058,21 @@ type ClientCredentialsWorkloadConfig = WorkloadConfigBase & {
|
|
|
2477
2058
|
*/
|
|
2478
2059
|
clientId: string;
|
|
2479
2060
|
/**
|
|
2480
|
-
* OAuth2 client secret
|
|
2481
|
-
*
|
|
2061
|
+
* OAuth2 client secret. Omit it to authenticate with a federated token instead
|
|
2062
|
+
* (see `federatedTokenFile`). A client secret wins when both are present.
|
|
2482
2063
|
*/
|
|
2483
|
-
clientSecret
|
|
2064
|
+
clientSecret?: string;
|
|
2065
|
+
/**
|
|
2066
|
+
* Path to a projected federated token (e.g. AKS Workload Identity), sent as a jwt-bearer
|
|
2067
|
+
* `client_assertion` in place of `client_secret`. Defaults to `AZURE_FEDERATED_TOKEN_FILE`.
|
|
2068
|
+
* Read on every acquisition because the platform rotates it.
|
|
2069
|
+
*/
|
|
2070
|
+
federatedTokenFile?: string;
|
|
2071
|
+
/**
|
|
2072
|
+
* `managed_identity`: get the token from the platform's managed identity endpoint instead of an
|
|
2073
|
+
* IdP token URL. `clientId` is the managed identity's client ID; `scope` names the audience.
|
|
2074
|
+
*/
|
|
2075
|
+
authMethod?: "managed_identity";
|
|
2484
2076
|
};
|
|
2485
2077
|
/**
|
|
2486
2078
|
* Server-Only Workload Configuration
|
|
@@ -2514,7 +2106,7 @@ type ServerOnlyWorkloadConfig = WorkloadConfigBase & {
|
|
|
2514
2106
|
* detected based on which fields are present:
|
|
2515
2107
|
*
|
|
2516
2108
|
* - **JWT Bearer Grant**: Requires `workload_id` + `private_key`
|
|
2517
|
-
* - **Client Credentials**: Requires `client_id` + `client_secret`
|
|
2109
|
+
* - **Client Credentials**: Requires `client_id` + `client_secret`, a federated token file, or `authMethod: "managed_identity"`
|
|
2518
2110
|
* - **Server-Only**: Only `jwks_uri` (and optionally `issuer`) for token validation
|
|
2519
2111
|
*
|
|
2520
2112
|
* The developer uses the same API regardless of mode - the library handles the details.
|
|
@@ -2543,8 +2135,8 @@ type TrustedIdp = {
|
|
|
2543
2135
|
* one of these values (with `azp` fallback). REQUIRED: prevents cross-app token reuse.
|
|
2544
2136
|
*/
|
|
2545
2137
|
audience: string | string[];
|
|
2546
|
-
/** Per-IdP
|
|
2547
|
-
|
|
2138
|
+
/** Per-IdP scopesAsEntitlements intent (see {@link WorkloadConfigBase.scopesAsEntitlements}). */
|
|
2139
|
+
scopesAsEntitlements?: boolean;
|
|
2548
2140
|
};
|
|
2549
2141
|
/**
|
|
2550
2142
|
* Workload config with separate incoming (server) and outgoing (client) roles.
|
|
@@ -2587,8 +2179,6 @@ interface WorkloadGetToken {
|
|
|
2587
2179
|
* Workload Identity Authentication Interface
|
|
2588
2180
|
*/
|
|
2589
2181
|
type Workload = WorkloadConfig & ModuleReadiness & Required<Pick<ModuleReadiness, "isReady" | "ready">> & {
|
|
2590
|
-
/** Secret-free, JSON-serializable configuration and readiness summary. */
|
|
2591
|
-
describe: () => WorkloadDescription;
|
|
2592
2182
|
/**
|
|
2593
2183
|
* Returns a token for this workload configuration.
|
|
2594
2184
|
* The optional argument overrides the configured default scope.
|
|
@@ -2603,9 +2193,7 @@ type Workload = WorkloadConfig & ModuleReadiness & Required<Pick<ModuleReadiness
|
|
|
2603
2193
|
/** Framework-agnostic request handler for the Workload module (token, validate, jwks, refresh). */
|
|
2604
2194
|
handler: (request: Request) => Promise<Response>;
|
|
2605
2195
|
};
|
|
2606
|
-
type WorkloadClient = Pick<Workload, "getToken" | "refreshToken" | "generateJWTAssertion" | "revokeToken" | "beforeChange" | "afterChange" | "isReady" | "ready"
|
|
2607
|
-
describe(): WorkloadClientDescription;
|
|
2608
|
-
};
|
|
2196
|
+
type WorkloadClient = Pick<Workload, "getToken" | "refreshToken" | "generateJWTAssertion" | "revokeToken" | "beforeChange" | "afterChange" | "isReady" | "ready">;
|
|
2609
2197
|
/**
|
|
2610
2198
|
* SCIM Error response structure
|
|
2611
2199
|
*/
|
|
@@ -2779,7 +2367,6 @@ type IAMAccessRequestsConfig = {
|
|
|
2779
2367
|
request: AccessRequestResult;
|
|
2780
2368
|
created: boolean;
|
|
2781
2369
|
}>;
|
|
2782
|
-
get?: (id: string) => Promise<AccessRequestResult | undefined>;
|
|
2783
2370
|
};
|
|
2784
2371
|
type IAMEntitlementRequestUrlContext = {
|
|
2785
2372
|
request: Request;
|
|
@@ -3037,8 +2624,6 @@ type IAMUsersInbound = {
|
|
|
3037
2624
|
* - `users_inbound` is available when `userStore` is configured
|
|
3038
2625
|
*/
|
|
3039
2626
|
type IAM = Omit<IAMConfig, "users" | "workloads" | "customers" | "groups"> & {
|
|
3040
|
-
/** Secret-free, JSON-serializable configuration and readiness summary. */
|
|
3041
|
-
describe: () => IamDescription;
|
|
3042
2627
|
users: IamPrincipalKind;
|
|
3043
2628
|
workloads: IamPrincipalKind;
|
|
3044
2629
|
customers: IamPrincipalKind;
|
|
@@ -3223,8 +2808,6 @@ type KmsPoolSlot = {
|
|
|
3223
2808
|
ready(timeout?: number): Promise<void>;
|
|
3224
2809
|
};
|
|
3225
2810
|
type KmsPool = {
|
|
3226
|
-
/** Secret-free, JSON-serializable pool configuration and readiness summary. */
|
|
3227
|
-
describe(): KmsPoolDescription;
|
|
3228
2811
|
/**
|
|
3229
2812
|
* Returns the current granted key for slot 0. Calls wait on one shared local subscription until a
|
|
3230
2813
|
* grant is available; repeated calls resolve from the local cache and never initiate a vault request.
|
|
@@ -3257,8 +2840,6 @@ type KmsPool = {
|
|
|
3257
2840
|
* (`ion.kms.<name>`); use `getPool(name)` when the name is dynamic.
|
|
3258
2841
|
*/
|
|
3259
2842
|
type Kms = ModuleReadiness & {
|
|
3260
|
-
/** Secret-free, JSON-serializable configuration and readiness summary. */
|
|
3261
|
-
describe(): KmsDescription;
|
|
3262
2843
|
readonly config: Readonly<KmsConfig>;
|
|
3263
2844
|
listPools(): string[];
|
|
3264
2845
|
getPool(name: string): KmsPool;
|
|
@@ -3269,6 +2850,91 @@ type Kms = ModuleReadiness & {
|
|
|
3269
2850
|
declare function parseKmsPoolDocument(value: unknown): KmsPoolDocument;
|
|
3270
2851
|
/** Parse and fail closed on a vault-stored KMS key-material document. */
|
|
3271
2852
|
declare function parseKmsPoolControlDocument(value: unknown): KmsPoolControlDocument;
|
|
2853
|
+
type OtelSignalName = "traces" | "metrics" | "logs";
|
|
2854
|
+
type OtelProtocol = "http/protobuf" | "http/json";
|
|
2855
|
+
type OtelProviderType = "otlp" | "grafana-lgtm" | "datadog" | "splunk" | "elastic";
|
|
2856
|
+
type OtelLogLevel = "trace" | "debug" | "info" | "warn" | "error";
|
|
2857
|
+
type OtelLevels = Partial<Record<OtelLogLevel, boolean>>;
|
|
2858
|
+
/** Local console mirror policy: disable it or set its minimum emitted severity. */
|
|
2859
|
+
type OtelConsoleMode = "off" | OtelLogLevel;
|
|
2860
|
+
type OtelAttributeValue = string | number | boolean | string[] | number[] | boolean[];
|
|
2861
|
+
type OtelAttributes = Record<string, OtelAttributeValue>;
|
|
2862
|
+
type OtelSignalConfig = {
|
|
2863
|
+
/** Per-signal OTLP endpoint. When omitted, the module appends /v1/{signal} to `endpoint`. */
|
|
2864
|
+
endpoint?: string;
|
|
2865
|
+
headers?: Record<string, string>;
|
|
2866
|
+
timeoutMillis?: number;
|
|
2867
|
+
concurrencyLimit?: number;
|
|
2868
|
+
};
|
|
2869
|
+
type OtelMetricsSignalConfig = OtelSignalConfig & {
|
|
2870
|
+
exportIntervalMillis?: number;
|
|
2871
|
+
exportTimeoutMillis?: number;
|
|
2872
|
+
};
|
|
2873
|
+
type OtelOAuthClientCredentialsConfig = {
|
|
2874
|
+
tokenUrl: string;
|
|
2875
|
+
clientId: string;
|
|
2876
|
+
clientSecret: string;
|
|
2877
|
+
scope?: string;
|
|
2878
|
+
audience?: string;
|
|
2879
|
+
headers?: Record<string, string>;
|
|
2880
|
+
};
|
|
2881
|
+
type OtelLogRecord = {
|
|
2882
|
+
severityNumber?: number;
|
|
2883
|
+
severityText?: string;
|
|
2884
|
+
body?: unknown;
|
|
2885
|
+
attributes?: Record<string, unknown>;
|
|
2886
|
+
};
|
|
2887
|
+
/**
|
|
2888
|
+
* OpenTelemetry config supplied by ConfigSource/RemoteConfig.
|
|
2889
|
+
* Keep environment-specific URLs and credentials here, not in FrameworkConfig.
|
|
2890
|
+
*/
|
|
2891
|
+
type OtelConfig = {
|
|
2892
|
+
type?: OtelProviderType;
|
|
2893
|
+
name: string;
|
|
2894
|
+
endpoint?: string;
|
|
2895
|
+
protocol?: OtelProtocol;
|
|
2896
|
+
headers?: Record<string, string>;
|
|
2897
|
+
apiKey?: string;
|
|
2898
|
+
/** Name of a `RemoteConfig.kms` key pool used for exporter authentication. */
|
|
2899
|
+
apiKeyPool?: string;
|
|
2900
|
+
apiKeyHeader?: string;
|
|
2901
|
+
oauth?: OtelOAuthClientCredentialsConfig;
|
|
2902
|
+
version?: string;
|
|
2903
|
+
deploymentEnvironment?: string;
|
|
2904
|
+
resourceAttributes?: OtelAttributes;
|
|
2905
|
+
levels?: OtelLevels;
|
|
2906
|
+
/** `'off'` exports only to OTel; a level dual-emits at or above that severity. Defaults to `'info'`. */
|
|
2907
|
+
console?: OtelConsoleMode;
|
|
2908
|
+
traces?: boolean | OtelSignalConfig;
|
|
2909
|
+
metrics?: boolean | OtelMetricsSignalConfig;
|
|
2910
|
+
logs?: boolean | OtelSignalConfig;
|
|
2911
|
+
};
|
|
2912
|
+
/**
|
|
2913
|
+
* OpenTelemetry app/runtime wiring supplied by code.
|
|
2914
|
+
* Instrumentation instances and callbacks live here because they are framework-specific code.
|
|
2915
|
+
*/
|
|
2916
|
+
type FrameworkOtelConfig = {
|
|
2917
|
+
levels?: OtelLevels;
|
|
2918
|
+
instrument?: unknown[];
|
|
2919
|
+
/** Optional app-owned destination/renderer for records admitted by `RemoteConfig.otel.console`. */
|
|
2920
|
+
console?: (record: OtelLogRecord) => void;
|
|
2921
|
+
spanProcessors?: unknown[];
|
|
2922
|
+
metricReaders?: unknown[];
|
|
2923
|
+
logRecordProcessors?: unknown[];
|
|
2924
|
+
sampler?: unknown;
|
|
2925
|
+
textMapPropagator?: unknown;
|
|
2926
|
+
contextManager?: unknown;
|
|
2927
|
+
configure?: (options: Record<string, unknown>) => Record<string, unknown> | void;
|
|
2928
|
+
};
|
|
2929
|
+
type Otel = {
|
|
2930
|
+
beforeChange(listener: ChangeListener): () => void;
|
|
2931
|
+
afterChange(listener: ChangeListener): () => void;
|
|
2932
|
+
isReady(): boolean;
|
|
2933
|
+
ready(timeout?: number): Promise<void>;
|
|
2934
|
+
logger: Logger;
|
|
2935
|
+
forceFlush(): Promise<void>;
|
|
2936
|
+
shutdown(): Promise<void>;
|
|
2937
|
+
};
|
|
3272
2938
|
/**
|
|
3273
2939
|
* Session management for tracking user sessions and enabling backchannel logout.
|
|
3274
2940
|
*
|
|
@@ -3361,12 +3027,6 @@ type Session<TExtended = object> = {
|
|
|
3361
3027
|
*/
|
|
3362
3028
|
claims?: Record<string, unknown>;
|
|
3363
3029
|
/**
|
|
3364
|
-
* Entitlements derived from token claims at login and refresh. Session-scoped: they die with the
|
|
3365
|
-
* record (TTL, rotation, back-channel logout) and are never written to the access stores.
|
|
3366
|
-
* Only meaningful when the store declares {@link SessionStoreCapabilities.derivedEntitlements}.
|
|
3367
|
-
*/
|
|
3368
|
-
entitlements?: DerivedEntitlement[];
|
|
3369
|
-
/**
|
|
3370
3030
|
* Optional access-token claims for modules that keep access/id claims separate.
|
|
3371
3031
|
*/
|
|
3372
3032
|
accessClaims?: Record<string, unknown>;
|
|
@@ -3403,21 +3063,7 @@ type Session<TExtended = object> = {
|
|
|
3403
3063
|
* }
|
|
3404
3064
|
* ```
|
|
3405
3065
|
*/
|
|
3406
|
-
/**
|
|
3407
|
-
* Store-declared capabilities. The SDK does not probe a custom store (a write at init is forbidden);
|
|
3408
|
-
* a store that omits the declaration is treated as incapable.
|
|
3409
|
-
*/
|
|
3410
|
-
type SessionStoreCapabilities = {
|
|
3411
|
-
/**
|
|
3412
|
-
* The store persists {@link Session.entitlements} round-trip. JSON-backed stores (the SDK Redis
|
|
3413
|
-
* and in-memory implementations) declare this. A column-mapped SQL store declares it only after
|
|
3414
|
-
* it has a column for the derived set.
|
|
3415
|
-
*/
|
|
3416
|
-
derivedEntitlements?: boolean;
|
|
3417
|
-
};
|
|
3418
3066
|
interface SessionStore<TExtended = object> {
|
|
3419
|
-
/** Declaration of what this store persists beyond the required session fields. */
|
|
3420
|
-
readonly capabilities?: SessionStoreCapabilities;
|
|
3421
3067
|
/**
|
|
3422
3068
|
* Create a new session in the store.
|
|
3423
3069
|
*
|
|
@@ -3750,13 +3396,6 @@ type SSOConfig<
|
|
|
3750
3396
|
*/
|
|
3751
3397
|
userStore?: UserStore<TUserData>;
|
|
3752
3398
|
/**
|
|
3753
|
-
* ConfigSource-only. When set, the named token claims are derived into session-scoped
|
|
3754
|
-
* entitlements at login and refresh. Never set from application code.
|
|
3755
|
-
*/
|
|
3756
|
-
claimsAsEntitlements?: ClaimsAsEntitlements;
|
|
3757
|
-
/** ConfigSource-only IdP assignment workflow used when IAM assignment is `'idp'`. */
|
|
3758
|
-
accessRequests?: AccessRequestsDestination;
|
|
3759
|
-
/**
|
|
3760
3399
|
* Enable Just-In-Time (JIT) user provisioning.
|
|
3761
3400
|
* When enabled, new users are automatically created in the userStore on their first login.
|
|
3762
3401
|
* When disabled (default), only existing users in the userStore are updated on login.
|
|
@@ -3856,8 +3495,6 @@ type SSO<
|
|
|
3856
3495
|
TSessionData = Record<string, never>,
|
|
3857
3496
|
TUserData = Record<string, never>
|
|
3858
3497
|
> = SSOConfig<TSessionData, TUserData> & {
|
|
3859
|
-
/** Secret-free, JSON-serializable configuration and readiness summary. */
|
|
3860
|
-
describe: () => SsoDescription;
|
|
3861
3498
|
getUser: (request: Request) => Promise<WorkforceUser | undefined>;
|
|
3862
3499
|
/**
|
|
3863
3500
|
* Degraded-aware resolution: distinguishes a signed-out visitor (`unauthenticated`) from a failed
|
|
@@ -4205,12 +3842,7 @@ type SecretsValidators = {
|
|
|
4205
3842
|
*/
|
|
4206
3843
|
validateSourceConfig?(sourceName: string, config: SecretsSourceConfig): void;
|
|
4207
3844
|
};
|
|
4208
|
-
type DescribedSecretsSource = SecretsSource & {
|
|
4209
|
-
describe(): SecretsSourceDescription;
|
|
4210
|
-
};
|
|
4211
3845
|
type Secrets = ModuleReadiness & {
|
|
4212
|
-
/** Secret-free, JSON-serializable configuration and readiness summary. */
|
|
4213
|
-
describe(): SecretsDescription;
|
|
4214
3846
|
/**
|
|
4215
3847
|
* Liveness across configured sources. Returns false when any ready source reports a degraded
|
|
4216
3848
|
* `isAvailable()` (e.g. an HTTP-poll source whose upstream is failing). Surfaced in
|
|
@@ -4222,7 +3854,7 @@ type Secrets = ModuleReadiness & {
|
|
|
4222
3854
|
/** Returns configured secrets source names/keys. */
|
|
4223
3855
|
listSecretsSources(): string[];
|
|
4224
3856
|
/** Gets a named secrets source client. Throws when missing. */
|
|
4225
|
-
getSecretsSource(sourceName: string):
|
|
3857
|
+
getSecretsSource(sourceName: string): SecretsSource;
|
|
4226
3858
|
/** Creates a lazy handle for a secret in a named source. */
|
|
4227
3859
|
get(sourceName: string, path: string, options?: SecretsOperationOptions): SecretHandle;
|
|
4228
3860
|
/** Reads a secret from a named secrets source client. */
|
|
@@ -4672,6 +4304,17 @@ type TrustedProvisioningClient = {
|
|
|
4672
4304
|
type AuthzConfig = {
|
|
4673
4305
|
oaa?: AuthzOaaConfig;
|
|
4674
4306
|
/**
|
|
4307
|
+
* RemoteConfig/Ops-governed intent. When `true`, the request-level `has*` helpers auto-honor a
|
|
4308
|
+
* principal's OAuth token `scope` claims as entitlements: an app-wide check (no `resource` arg)
|
|
4309
|
+
* also allows when the target id matches a granted scope. Default `false` (secure): scopes never
|
|
4310
|
+
* satisfy `has*` and authorization comes solely from the `AccessAssignmentStore`/`AccessIndex` (IAM/SCIM).
|
|
4311
|
+
* Read at check time so it can be flipped live. This NEVER affects token validation, and the
|
|
4312
|
+
* explicit `hasScope*` helpers are always available regardless of this flag. Resource-scoped
|
|
4313
|
+
* checks (a `resource` arg supplied) are never satisfied by scopes. For workload principals this is
|
|
4314
|
+
* a fallback only: a matched trusted IdP's per-entry `scopesAsEntitlements` takes precedence.
|
|
4315
|
+
*/
|
|
4316
|
+
scopesAsEntitlements?: boolean;
|
|
4317
|
+
/**
|
|
4675
4318
|
* Config-declared trusted provisioning clients (read-path overlay; ConfigSource/ECI-owned). Each
|
|
4676
4319
|
* entry pre-authorizes a workload client to hold specific permissions without a stored grant. See
|
|
4677
4320
|
* {@link TrustedProvisioningClient}. Honored in the request-level `has*` helpers BEFORE the
|
|
@@ -4752,11 +4395,11 @@ type FrameworkConfig = {
|
|
|
4752
4395
|
* `afterLogout` callbacks, which are code-only and therefore kept. RemoteConfig-only intent flags (e.g. IAM `users`/`groups`
|
|
4753
4396
|
* enablement) are also stripped from code.
|
|
4754
4397
|
*/
|
|
4755
|
-
type SSOConfigFromCode = Omit<SSOConfig, "loginUrl" | "userUrl" | "logoutUrl" | "logoutBackChannelUrl" | "refreshUrl" | "redirectUri"
|
|
4398
|
+
type SSOConfigFromCode = Omit<SSOConfig, "loginUrl" | "userUrl" | "logoutUrl" | "logoutBackChannelUrl" | "refreshUrl" | "redirectUri">;
|
|
4756
4399
|
type IAMConfigFromCode = Omit<IAMConfig, "usersUrl" | "groupsUrl" | "workloadsUrl" | "customersUrl" | "users" | "workloads" | "customers" | "groups" | "discovery" | "deltaAudience"> & {
|
|
4757
4400
|
discovery?: Omit<IAMDiscoveryConfig, "basePath">;
|
|
4758
4401
|
};
|
|
4759
|
-
type WorkloadServerConfigFromCode = Omit<Partial<WorkloadConfig>, "tokenUrl" | "validateUrl" | "jwksUrl" | "refreshUrl"
|
|
4402
|
+
type WorkloadServerConfigFromCode = Omit<Partial<WorkloadConfig>, "tokenUrl" | "validateUrl" | "jwksUrl" | "refreshUrl">;
|
|
4760
4403
|
type FrameworkWorkloadConfigFromCode = WorkloadServerConfigFromCode | {
|
|
4761
4404
|
incoming?: WorkloadServerConfigFromCode;
|
|
4762
4405
|
outgoing?: FrameworkWorkloadIncomingOutgoing["outgoing"];
|
|
@@ -5175,8 +4818,6 @@ type CIAM<
|
|
|
5175
4818
|
TMagicLinkData = Record<string, never>,
|
|
5176
4819
|
TCustomerData = Record<string, never>
|
|
5177
4820
|
> = CIAMConfig<TMagicLinkData, TCustomerData> & {
|
|
5178
|
-
/** Secret-free, JSON-serializable configuration and readiness summary. */
|
|
5179
|
-
describe: () => CiamDescription;
|
|
5180
4821
|
getCustomer: (request: Request) => Promise<Customer | undefined>;
|
|
5181
4822
|
/**
|
|
5182
4823
|
* Degraded-aware resolution: distinguishes a signed-out visitor (`unauthenticated`) from a failed
|
|
@@ -5320,15 +4961,6 @@ type IoniteBase = {
|
|
|
5320
4961
|
* module is ready; `notReady` lists the requested modules that are not ready, with reasons.
|
|
5321
4962
|
*/
|
|
5322
4963
|
requireReady(names: ModuleName[]): RequireReadyResult;
|
|
5323
|
-
/**
|
|
5324
|
-
* Returns an allow-listed, JSON-serializable snapshot for privileged App-owned diagnostics.
|
|
5325
|
-
* Unlike `config`, this never contains credentials, secret values, stores, or callbacks.
|
|
5326
|
-
*
|
|
5327
|
-
* Diagnostics only: each call rebuilds the readiness report and every module projection. Call it
|
|
5328
|
-
* from an admin loader, never per request; handlers and health probes use `isReady()` /
|
|
5329
|
-
* `requireReady()`.
|
|
5330
|
-
*/
|
|
5331
|
-
describe(): IoniteDescription;
|
|
5332
4964
|
/** Most recent RemoteConfig application outcome (last applied time and last error, if any). */
|
|
5333
4965
|
configStatus: ConfigApplyStatus;
|
|
5334
4966
|
/** Release config subscriptions and background resources. */
|
|
@@ -5349,8 +4981,8 @@ type ResolvedRoute = {
|
|
|
5349
4981
|
/**
|
|
5350
4982
|
* Authorization required to invoke this route. When set, the router enforces it (deny-by-default)
|
|
5351
4983
|
* before the handler runs: the caller must hold the {@link EndpointPermission.permission} as a
|
|
5352
|
-
* granted entitlement, or
|
|
5353
|
-
*
|
|
4984
|
+
* granted entitlement, or—when `RemoteConfig.authz.scopesAsEntitlements` is enabled—carry the
|
|
4985
|
+
* matching OAuth scope. Login/public/discovery routes omit it.
|
|
5354
4986
|
*
|
|
5355
4987
|
* Three states, chosen so a custom `resolve` cannot silently drop authorization by omission:
|
|
5356
4988
|
* - a permission object → enforce it;
|
|
@@ -5640,8 +5272,6 @@ type TenantIntegrationView = {
|
|
|
5640
5272
|
integration: TenantIntegration;
|
|
5641
5273
|
};
|
|
5642
5274
|
type TenantManagement<TTenant extends BaseTenant = BaseTenant> = ModuleReadiness & {
|
|
5643
|
-
/** Secret-free, JSON-serializable configuration and readiness summary. */
|
|
5644
|
-
describe(): TmDescription;
|
|
5645
5275
|
handler(request: Request): Promise<Response>;
|
|
5646
5276
|
getTenant(id: string): Promise<TTenant | undefined>;
|
|
5647
5277
|
recordConsent(input: RecordTenantConsentInput): Promise<TTenant>;
|
|
@@ -6318,8 +5948,6 @@ interface OaaClient<
|
|
|
6318
5948
|
TCustomer = BaseCustomer,
|
|
6319
5949
|
TWorkload = BaseWorkloadIdentity
|
|
6320
5950
|
> {
|
|
6321
|
-
/** Secret-free, JSON-serializable OAA configuration and readiness summary. */
|
|
6322
|
-
describe(): OaaDescription;
|
|
6323
5951
|
pushUser(user: TUser): Promise<void>;
|
|
6324
5952
|
pushCustomer(customer: TCustomer): Promise<void>;
|
|
6325
5953
|
pushWorkload(workload: TWorkload): Promise<void>;
|
|
@@ -6438,8 +6066,6 @@ type ReconcileReport = {
|
|
|
6438
6066
|
* wired they deny by default (`{ allow: false }`, `metadata.reason = 'access_index_not_configured'`).
|
|
6439
6067
|
*/
|
|
6440
6068
|
type Authz = {
|
|
6441
|
-
/** Secret-free, JSON-serializable configuration and readiness summary. */
|
|
6442
|
-
describe(): AuthzDescription;
|
|
6443
6069
|
oaa: OaaClient;
|
|
6444
6070
|
/** Read the effective catalog union (materialized rows plus unmaterialized code templates). */
|
|
6445
6071
|
entitlements: {
|
|
@@ -6491,9 +6117,9 @@ type Authz = {
|
|
|
6491
6117
|
*/
|
|
6492
6118
|
grant(change: AccessChange): Promise<AccessChange>;
|
|
6493
6119
|
/**
|
|
6494
|
-
* Submit one grant or revoke request on a principal's behalf.
|
|
6495
|
-
*
|
|
6496
|
-
*
|
|
6120
|
+
* Submit one grant or revoke request on a principal's behalf. Allowed only when that kind's
|
|
6121
|
+
* assignment policy is `'iam-request'`. One operation maps to one approval decision, status,
|
|
6122
|
+
* and tracking URL. Authenticated with the module-wide `deltaAudience` workload client.
|
|
6497
6123
|
*/
|
|
6498
6124
|
requestAccess(change: {
|
|
6499
6125
|
subject: AccessChange["subject"];
|
|
@@ -6502,20 +6128,6 @@ type Authz = {
|
|
|
6502
6128
|
target: AccessChange["target"];
|
|
6503
6129
|
operation: "grant" | "revoke";
|
|
6504
6130
|
justification?: string;
|
|
6505
|
-
/** CIAM provider key. Required only when multiple providers expose an AccessRequests channel. */
|
|
6506
|
-
provider?: string;
|
|
6507
|
-
}): Promise<{
|
|
6508
|
-
id: string;
|
|
6509
|
-
status: "pending" | "approved" | "denied";
|
|
6510
|
-
operation: "grant" | "revoke";
|
|
6511
|
-
trackingUrl: string;
|
|
6512
|
-
}>;
|
|
6513
|
-
/** Read the destination-owned state of an on-behalf access request. */
|
|
6514
|
-
getAccessRequest(input: {
|
|
6515
|
-
id: string;
|
|
6516
|
-
subjectType: SubjectType;
|
|
6517
|
-
/** CIAM provider key. Required only when multiple providers expose an AccessRequests channel. */
|
|
6518
|
-
provider?: string;
|
|
6519
6131
|
}): Promise<{
|
|
6520
6132
|
id: string;
|
|
6521
6133
|
status: "pending" | "approved" | "denied";
|
|
@@ -6535,10 +6147,8 @@ type Authz = {
|
|
|
6535
6147
|
* - `'iam'` — never assign in-app; show a request link (or a read-only entitlement table).
|
|
6536
6148
|
* - `'iam-request'` — never assign in-app; the app submits a request on the principal's behalf via
|
|
6537
6149
|
* {@link Authz.requestAccess}.
|
|
6538
|
-
* - `'idp'` — the claims-bearing SSO/CIAM provider is assigner of record; requests use that
|
|
6539
|
-
* provider's ConfigSource-owned AccessRequests channel.
|
|
6540
6150
|
*/
|
|
6541
|
-
type IamAssignmentPolicy = "app" | "iam" | "iam-request"
|
|
6151
|
+
type IamAssignmentPolicy = "app" | "iam" | "iam-request";
|
|
6542
6152
|
/**
|
|
6543
6153
|
* Thrown by {@link Authz.grant} when the Ops-owned assignment policy forbids in-app assignment.
|
|
6544
6154
|
* `requestUrl` is the IAM-written entitlement receipt when one exists, so the app can send the
|
|
@@ -6589,6 +6199,64 @@ declare function trustedClientPermissionsForPrincipal(authz: AuthzConfig | null
|
|
|
6589
6199
|
* OAA full sync — they are NEVER written to a store or materialized into the AccessIndex.
|
|
6590
6200
|
*/
|
|
6591
6201
|
declare function configTrustedClientGrants(authz: AuthzConfig | null | undefined): AccessChange[];
|
|
6202
|
+
type CapabilityKey = "sso.login" | "sso.jit" | "sso.logout" | "sso.back_channel_logout" | "ciam.magic_link" | "ciam.oidc_login" | "ciam.customer" | "ciam.logout" | "iam.users" | "iam.groups" | "iam.workloads" | "iam.customers" | "workload.incoming" | "workload.outgoing" | "authz.oaa" | "tm.integration";
|
|
6203
|
+
type CapabilityEndpointUrls = {
|
|
6204
|
+
readyzUrl: string;
|
|
6205
|
+
capabilitiezUrl: string;
|
|
6206
|
+
sso: {
|
|
6207
|
+
loginUrl: string;
|
|
6208
|
+
userUrl: string;
|
|
6209
|
+
logoutUrl: string;
|
|
6210
|
+
logoutBackChannelUrl: string;
|
|
6211
|
+
refreshUrl: string;
|
|
6212
|
+
callbackUrl: string;
|
|
6213
|
+
};
|
|
6214
|
+
workload: {
|
|
6215
|
+
validateUrl: string;
|
|
6216
|
+
jwksUrl: string;
|
|
6217
|
+
};
|
|
6218
|
+
iam: {
|
|
6219
|
+
basePath: string;
|
|
6220
|
+
usersUrl: string;
|
|
6221
|
+
groupsUrl: string;
|
|
6222
|
+
workloadsUrl: string;
|
|
6223
|
+
customersUrl: string;
|
|
6224
|
+
};
|
|
6225
|
+
ciam: {
|
|
6226
|
+
magicLinkUrl: string;
|
|
6227
|
+
magicLinkLoginUrl: string;
|
|
6228
|
+
customerUrl: string;
|
|
6229
|
+
customerLoginUrl: string;
|
|
6230
|
+
customerCallbackUrl: string;
|
|
6231
|
+
customerProvidersUrl: string;
|
|
6232
|
+
logoutUrl: string;
|
|
6233
|
+
};
|
|
6234
|
+
};
|
|
6235
|
+
type CapabilityState = {
|
|
6236
|
+
module: ModuleName;
|
|
6237
|
+
active: boolean;
|
|
6238
|
+
ready: boolean;
|
|
6239
|
+
testable: boolean;
|
|
6240
|
+
urls?: string[];
|
|
6241
|
+
reason?: string;
|
|
6242
|
+
};
|
|
6243
|
+
type CapabilitiezManifest = {
|
|
6244
|
+
sdk: {
|
|
6245
|
+
/** Runtime @ionite/server version serving this manifest. */
|
|
6246
|
+
version: string;
|
|
6247
|
+
/** Version of the stable capability/test-unit vocabulary. */
|
|
6248
|
+
catalogVersion: number;
|
|
6249
|
+
};
|
|
6250
|
+
basePath: string;
|
|
6251
|
+
urls: CapabilityEndpointUrls;
|
|
6252
|
+
modules: Record<ModuleName, ModuleReadinessState>;
|
|
6253
|
+
capabilities: Record<CapabilityKey, CapabilityState>;
|
|
6254
|
+
/**
|
|
6255
|
+
* True when FrameworkConfig wired a live LFV callback transport. Boolean only — the transport
|
|
6256
|
+
* object, Redis URL, and credentials are never exposed.
|
|
6257
|
+
*/
|
|
6258
|
+
lfvCallbackTransport: boolean;
|
|
6259
|
+
};
|
|
6592
6260
|
/**
|
|
6593
6261
|
* Fields a {@link ConfigSource} may attach to a thrown error so the SDK can classify load/subscribe
|
|
6594
6262
|
* failures structurally instead of by fragile message-substring matching (§2.1). All fields are
|
|
@@ -6957,4 +6625,4 @@ type LfvErrorResponse = {
|
|
|
6957
6625
|
};
|
|
6958
6626
|
/** Generates a ULID */
|
|
6959
6627
|
declare function generateULID(prefix?: string): string;
|
|
6960
|
-
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, 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, TmIntegratorConfig, 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 };
|
|
6628
|
+
export { ACCEPT_JSON, ACCEPT_OCTET_STREAM, ACCEPT_SCIM, ACCEPT_XML, AccessAssignmentStore, AccessCatalogStore, AccessChange, AccessCheckReason, AccessCheckResult, AccessCheckTarget, AccessIndex, AccessMutationResult, AccessMutationStatus, AccessProvenance, AccessRef, AccessRequestCreate, AccessRequestResult, AccessStatus, Address, ApplicationValidators, AssignmentPolicyError, AuthenticatedPrincipal, AuthenticatedUser, Authz, AuthzConfig, AuthzDecision, 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, ClientCredentialsWorkloadConfig, CodeCatalog, CodeCatalogInput, CodeCatalogNamespace, ConfigApplyStatus, ConfigChangeCallback, ConfigChangeOptions, ConfigChangeResult, ConfigErrorKind, ConfigExportEnvelope, ConfigLocator, ConfigSource, ConfigSourceEnv, ConfigSourceError, ConfigSourceErrorInit, ConfigSourceResolver, ConfigSourceType, ConfigSubscriptionOptions, ConnectRequestContext, 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, 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, IamPrincipalKind, IamPrincipalKindFlag, IdTokenClaims, IdentityResolution, InMemoryTenantStoreOptions, InferSecretType, Ionite, IoniteBase, 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, KmsIssuedKey, KmsIssuerEvent, KmsIssuerEventListener, KmsIssuerEventName, KmsKey, KmsKeyState, KmsParkDisposition, KmsParkReport, KmsParkRequest, KmsParkResult, KmsPool, KmsPoolConfig, KmsPoolControlDocument, 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, ModuleName, ModuleReadiness, ModuleReadinessState, Name, NoReserved, OCTET_STREAM_MEDIA_TYPE, OaaAccessChangeBatchItem, OaaAccessTargetType, OaaClient, OaaPrincipalPopulation, OaaSyncInput, OaaSyncOptions, OaaSyncResult, OidcCallbackParams, Otel, OtelAttributeValue, OtelAttributes, OtelConfig, OtelConsoleMode, OtelLevels, OtelLogLevel, OtelLogRecord, OtelMetricsSignalConfig, OtelOAuthClientCredentialsConfig, OtelProtocol, OtelProviderType, OtelSignalConfig, 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, SecretsModuleConfig, SecretsOperationOptions, SecretsSource, SecretsSourceConfig, SecretsSourceMap, SecretsSourceType, SecretsSubscriptionOptions, SecretsValidators, SecretsWriteOptions, ServerOnlyWorkloadConfig, Session, SessionStore, SetTenantIntegrationOptions, 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, TmIntegratorConfig, TokenResponse, TokenValidationResult, TrustedIdp, TrustedProvisioningClient, UnexpectedBodySummary, UpdateTenantRequest, UserEndpointPolicy, UserStore, UserStoreOptions, UsersInboundHandlerConfig, ValidateResult, VaultConfigLocator, VaultLfvSecretsConfig, VaultSecretsConfig, VaultWebSocketAuthHeader, VaultWebSocketSecretsConfig, VaultWorkloadAuthConfig, WorkforceUser, Workload, WorkloadClient, WorkloadConfig, WorkloadConfigMap, WorkloadGetToken, WorkloadIdentity, WorkloadIdentityStore, WorkloadIncomingOutgoing, WorkloadPrincipal, WorkloadTokenResponse, WorkloadTokenStore, 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 };
|