@ionite/core 0.0.24-beta.20260930.19 → 0.0.24-beta.20261003.16
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 +457 -794
- package/dist/index.js +2 -2
- package/dist/server.d.ts +412 -810
- 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
|
-
};
|
|
1548
|
-
/**
|
|
1549
|
-
* A single CIAM provider declaration. OIDC/OAuth2 endpoint and credential
|
|
1550
|
-
* fields come from the ConfigSource (never application code).
|
|
1551
|
-
*/
|
|
1552
|
-
type CIAMProviderConfig = {
|
|
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;
|
|
1678
|
+
import { StandardSchemaV1 as StandardSchemaV14 } from "@standard-schema/spec";
|
|
1679
|
+
type ChangeListener = () => void;
|
|
1732
1680
|
/**
|
|
1733
1681
|
* Reactive source/adapter contract. Implemented by config-source-backed adapters
|
|
1734
1682
|
* (for example `SecretsSource`) to advertise change subscription and source liveness.
|
|
1735
1683
|
* `isAvailable()` here is an adapter liveness hook and is intentionally distinct from
|
|
1736
1684
|
* module readiness (`ModuleReadiness.isReady()` / `ready()`).
|
|
1737
|
-
*/
|
|
1738
|
-
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
|
-
};
|
|
1685
|
+
*/
|
|
1686
|
+
type ReactiveHandle = {
|
|
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,16 @@ 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;
|
|
2484
2071
|
};
|
|
2485
2072
|
/**
|
|
2486
2073
|
* Server-Only Workload Configuration
|
|
@@ -2543,8 +2130,8 @@ type TrustedIdp = {
|
|
|
2543
2130
|
* one of these values (with `azp` fallback). REQUIRED: prevents cross-app token reuse.
|
|
2544
2131
|
*/
|
|
2545
2132
|
audience: string | string[];
|
|
2546
|
-
/** Per-IdP
|
|
2547
|
-
|
|
2133
|
+
/** Per-IdP scopesAsEntitlements intent (see {@link WorkloadConfigBase.scopesAsEntitlements}). */
|
|
2134
|
+
scopesAsEntitlements?: boolean;
|
|
2548
2135
|
};
|
|
2549
2136
|
/**
|
|
2550
2137
|
* Workload config with separate incoming (server) and outgoing (client) roles.
|
|
@@ -2587,8 +2174,6 @@ interface WorkloadGetToken {
|
|
|
2587
2174
|
* Workload Identity Authentication Interface
|
|
2588
2175
|
*/
|
|
2589
2176
|
type Workload = WorkloadConfig & ModuleReadiness & Required<Pick<ModuleReadiness, "isReady" | "ready">> & {
|
|
2590
|
-
/** Secret-free, JSON-serializable configuration and readiness summary. */
|
|
2591
|
-
describe: () => WorkloadDescription;
|
|
2592
2177
|
/**
|
|
2593
2178
|
* Returns a token for this workload configuration.
|
|
2594
2179
|
* The optional argument overrides the configured default scope.
|
|
@@ -2603,9 +2188,7 @@ type Workload = WorkloadConfig & ModuleReadiness & Required<Pick<ModuleReadiness
|
|
|
2603
2188
|
/** Framework-agnostic request handler for the Workload module (token, validate, jwks, refresh). */
|
|
2604
2189
|
handler: (request: Request) => Promise<Response>;
|
|
2605
2190
|
};
|
|
2606
|
-
type WorkloadClient = Pick<Workload, "getToken" | "refreshToken" | "generateJWTAssertion" | "revokeToken" | "beforeChange" | "afterChange" | "isReady" | "ready"
|
|
2607
|
-
describe(): WorkloadClientDescription;
|
|
2608
|
-
};
|
|
2191
|
+
type WorkloadClient = Pick<Workload, "getToken" | "refreshToken" | "generateJWTAssertion" | "revokeToken" | "beforeChange" | "afterChange" | "isReady" | "ready">;
|
|
2609
2192
|
/**
|
|
2610
2193
|
* SCIM Error response structure
|
|
2611
2194
|
*/
|
|
@@ -2779,7 +2362,6 @@ type IAMAccessRequestsConfig = {
|
|
|
2779
2362
|
request: AccessRequestResult;
|
|
2780
2363
|
created: boolean;
|
|
2781
2364
|
}>;
|
|
2782
|
-
get?: (id: string) => Promise<AccessRequestResult | undefined>;
|
|
2783
2365
|
};
|
|
2784
2366
|
type IAMEntitlementRequestUrlContext = {
|
|
2785
2367
|
request: Request;
|
|
@@ -3037,8 +2619,6 @@ type IAMUsersInbound = {
|
|
|
3037
2619
|
* - `users_inbound` is available when `userStore` is configured
|
|
3038
2620
|
*/
|
|
3039
2621
|
type IAM = Omit<IAMConfig, "users" | "workloads" | "customers" | "groups"> & {
|
|
3040
|
-
/** Secret-free, JSON-serializable configuration and readiness summary. */
|
|
3041
|
-
describe: () => IamDescription;
|
|
3042
2622
|
users: IamPrincipalKind;
|
|
3043
2623
|
workloads: IamPrincipalKind;
|
|
3044
2624
|
customers: IamPrincipalKind;
|
|
@@ -3223,8 +2803,6 @@ type KmsPoolSlot = {
|
|
|
3223
2803
|
ready(timeout?: number): Promise<void>;
|
|
3224
2804
|
};
|
|
3225
2805
|
type KmsPool = {
|
|
3226
|
-
/** Secret-free, JSON-serializable pool configuration and readiness summary. */
|
|
3227
|
-
describe(): KmsPoolDescription;
|
|
3228
2806
|
/**
|
|
3229
2807
|
* Returns the current granted key for slot 0. Calls wait on one shared local subscription until a
|
|
3230
2808
|
* grant is available; repeated calls resolve from the local cache and never initiate a vault request.
|
|
@@ -3257,8 +2835,6 @@ type KmsPool = {
|
|
|
3257
2835
|
* (`ion.kms.<name>`); use `getPool(name)` when the name is dynamic.
|
|
3258
2836
|
*/
|
|
3259
2837
|
type Kms = ModuleReadiness & {
|
|
3260
|
-
/** Secret-free, JSON-serializable configuration and readiness summary. */
|
|
3261
|
-
describe(): KmsDescription;
|
|
3262
2838
|
readonly config: Readonly<KmsConfig>;
|
|
3263
2839
|
listPools(): string[];
|
|
3264
2840
|
getPool(name: string): KmsPool;
|
|
@@ -3269,6 +2845,91 @@ type Kms = ModuleReadiness & {
|
|
|
3269
2845
|
declare function parseKmsPoolDocument(value: unknown): KmsPoolDocument;
|
|
3270
2846
|
/** Parse and fail closed on a vault-stored KMS key-material document. */
|
|
3271
2847
|
declare function parseKmsPoolControlDocument(value: unknown): KmsPoolControlDocument;
|
|
2848
|
+
type OtelSignalName = "traces" | "metrics" | "logs";
|
|
2849
|
+
type OtelProtocol = "http/protobuf" | "http/json";
|
|
2850
|
+
type OtelProviderType = "otlp" | "grafana-lgtm" | "datadog" | "splunk" | "elastic";
|
|
2851
|
+
type OtelLogLevel = "trace" | "debug" | "info" | "warn" | "error";
|
|
2852
|
+
type OtelLevels = Partial<Record<OtelLogLevel, boolean>>;
|
|
2853
|
+
/** Local console mirror policy: disable it or set its minimum emitted severity. */
|
|
2854
|
+
type OtelConsoleMode = "off" | OtelLogLevel;
|
|
2855
|
+
type OtelAttributeValue = string | number | boolean | string[] | number[] | boolean[];
|
|
2856
|
+
type OtelAttributes = Record<string, OtelAttributeValue>;
|
|
2857
|
+
type OtelSignalConfig = {
|
|
2858
|
+
/** Per-signal OTLP endpoint. When omitted, the module appends /v1/{signal} to `endpoint`. */
|
|
2859
|
+
endpoint?: string;
|
|
2860
|
+
headers?: Record<string, string>;
|
|
2861
|
+
timeoutMillis?: number;
|
|
2862
|
+
concurrencyLimit?: number;
|
|
2863
|
+
};
|
|
2864
|
+
type OtelMetricsSignalConfig = OtelSignalConfig & {
|
|
2865
|
+
exportIntervalMillis?: number;
|
|
2866
|
+
exportTimeoutMillis?: number;
|
|
2867
|
+
};
|
|
2868
|
+
type OtelOAuthClientCredentialsConfig = {
|
|
2869
|
+
tokenUrl: string;
|
|
2870
|
+
clientId: string;
|
|
2871
|
+
clientSecret: string;
|
|
2872
|
+
scope?: string;
|
|
2873
|
+
audience?: string;
|
|
2874
|
+
headers?: Record<string, string>;
|
|
2875
|
+
};
|
|
2876
|
+
type OtelLogRecord = {
|
|
2877
|
+
severityNumber?: number;
|
|
2878
|
+
severityText?: string;
|
|
2879
|
+
body?: unknown;
|
|
2880
|
+
attributes?: Record<string, unknown>;
|
|
2881
|
+
};
|
|
2882
|
+
/**
|
|
2883
|
+
* OpenTelemetry config supplied by ConfigSource/RemoteConfig.
|
|
2884
|
+
* Keep environment-specific URLs and credentials here, not in FrameworkConfig.
|
|
2885
|
+
*/
|
|
2886
|
+
type OtelConfig = {
|
|
2887
|
+
type?: OtelProviderType;
|
|
2888
|
+
name: string;
|
|
2889
|
+
endpoint?: string;
|
|
2890
|
+
protocol?: OtelProtocol;
|
|
2891
|
+
headers?: Record<string, string>;
|
|
2892
|
+
apiKey?: string;
|
|
2893
|
+
/** Name of a `RemoteConfig.kms` key pool used for exporter authentication. */
|
|
2894
|
+
apiKeyPool?: string;
|
|
2895
|
+
apiKeyHeader?: string;
|
|
2896
|
+
oauth?: OtelOAuthClientCredentialsConfig;
|
|
2897
|
+
version?: string;
|
|
2898
|
+
deploymentEnvironment?: string;
|
|
2899
|
+
resourceAttributes?: OtelAttributes;
|
|
2900
|
+
levels?: OtelLevels;
|
|
2901
|
+
/** `'off'` exports only to OTel; a level dual-emits at or above that severity. Defaults to `'info'`. */
|
|
2902
|
+
console?: OtelConsoleMode;
|
|
2903
|
+
traces?: boolean | OtelSignalConfig;
|
|
2904
|
+
metrics?: boolean | OtelMetricsSignalConfig;
|
|
2905
|
+
logs?: boolean | OtelSignalConfig;
|
|
2906
|
+
};
|
|
2907
|
+
/**
|
|
2908
|
+
* OpenTelemetry app/runtime wiring supplied by code.
|
|
2909
|
+
* Instrumentation instances and callbacks live here because they are framework-specific code.
|
|
2910
|
+
*/
|
|
2911
|
+
type FrameworkOtelConfig = {
|
|
2912
|
+
levels?: OtelLevels;
|
|
2913
|
+
instrument?: unknown[];
|
|
2914
|
+
/** Optional app-owned destination/renderer for records admitted by `RemoteConfig.otel.console`. */
|
|
2915
|
+
console?: (record: OtelLogRecord) => void;
|
|
2916
|
+
spanProcessors?: unknown[];
|
|
2917
|
+
metricReaders?: unknown[];
|
|
2918
|
+
logRecordProcessors?: unknown[];
|
|
2919
|
+
sampler?: unknown;
|
|
2920
|
+
textMapPropagator?: unknown;
|
|
2921
|
+
contextManager?: unknown;
|
|
2922
|
+
configure?: (options: Record<string, unknown>) => Record<string, unknown> | void;
|
|
2923
|
+
};
|
|
2924
|
+
type Otel = {
|
|
2925
|
+
beforeChange(listener: ChangeListener): () => void;
|
|
2926
|
+
afterChange(listener: ChangeListener): () => void;
|
|
2927
|
+
isReady(): boolean;
|
|
2928
|
+
ready(timeout?: number): Promise<void>;
|
|
2929
|
+
logger: Logger;
|
|
2930
|
+
forceFlush(): Promise<void>;
|
|
2931
|
+
shutdown(): Promise<void>;
|
|
2932
|
+
};
|
|
3272
2933
|
/**
|
|
3273
2934
|
* Session management for tracking user sessions and enabling backchannel logout.
|
|
3274
2935
|
*
|
|
@@ -3361,12 +3022,6 @@ type Session<TExtended = object> = {
|
|
|
3361
3022
|
*/
|
|
3362
3023
|
claims?: Record<string, unknown>;
|
|
3363
3024
|
/**
|
|
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
3025
|
* Optional access-token claims for modules that keep access/id claims separate.
|
|
3371
3026
|
*/
|
|
3372
3027
|
accessClaims?: Record<string, unknown>;
|
|
@@ -3403,21 +3058,7 @@ type Session<TExtended = object> = {
|
|
|
3403
3058
|
* }
|
|
3404
3059
|
* ```
|
|
3405
3060
|
*/
|
|
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
3061
|
interface SessionStore<TExtended = object> {
|
|
3419
|
-
/** Declaration of what this store persists beyond the required session fields. */
|
|
3420
|
-
readonly capabilities?: SessionStoreCapabilities;
|
|
3421
3062
|
/**
|
|
3422
3063
|
* Create a new session in the store.
|
|
3423
3064
|
*
|
|
@@ -3750,13 +3391,6 @@ type SSOConfig<
|
|
|
3750
3391
|
*/
|
|
3751
3392
|
userStore?: UserStore<TUserData>;
|
|
3752
3393
|
/**
|
|
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
3394
|
* Enable Just-In-Time (JIT) user provisioning.
|
|
3761
3395
|
* When enabled, new users are automatically created in the userStore on their first login.
|
|
3762
3396
|
* When disabled (default), only existing users in the userStore are updated on login.
|
|
@@ -3856,8 +3490,6 @@ type SSO<
|
|
|
3856
3490
|
TSessionData = Record<string, never>,
|
|
3857
3491
|
TUserData = Record<string, never>
|
|
3858
3492
|
> = SSOConfig<TSessionData, TUserData> & {
|
|
3859
|
-
/** Secret-free, JSON-serializable configuration and readiness summary. */
|
|
3860
|
-
describe: () => SsoDescription;
|
|
3861
3493
|
getUser: (request: Request) => Promise<WorkforceUser | undefined>;
|
|
3862
3494
|
/**
|
|
3863
3495
|
* Degraded-aware resolution: distinguishes a signed-out visitor (`unauthenticated`) from a failed
|
|
@@ -4205,12 +3837,7 @@ type SecretsValidators = {
|
|
|
4205
3837
|
*/
|
|
4206
3838
|
validateSourceConfig?(sourceName: string, config: SecretsSourceConfig): void;
|
|
4207
3839
|
};
|
|
4208
|
-
type DescribedSecretsSource = SecretsSource & {
|
|
4209
|
-
describe(): SecretsSourceDescription;
|
|
4210
|
-
};
|
|
4211
3840
|
type Secrets = ModuleReadiness & {
|
|
4212
|
-
/** Secret-free, JSON-serializable configuration and readiness summary. */
|
|
4213
|
-
describe(): SecretsDescription;
|
|
4214
3841
|
/**
|
|
4215
3842
|
* Liveness across configured sources. Returns false when any ready source reports a degraded
|
|
4216
3843
|
* `isAvailable()` (e.g. an HTTP-poll source whose upstream is failing). Surfaced in
|
|
@@ -4222,7 +3849,7 @@ type Secrets = ModuleReadiness & {
|
|
|
4222
3849
|
/** Returns configured secrets source names/keys. */
|
|
4223
3850
|
listSecretsSources(): string[];
|
|
4224
3851
|
/** Gets a named secrets source client. Throws when missing. */
|
|
4225
|
-
getSecretsSource(sourceName: string):
|
|
3852
|
+
getSecretsSource(sourceName: string): SecretsSource;
|
|
4226
3853
|
/** Creates a lazy handle for a secret in a named source. */
|
|
4227
3854
|
get(sourceName: string, path: string, options?: SecretsOperationOptions): SecretHandle;
|
|
4228
3855
|
/** Reads a secret from a named secrets source client. */
|
|
@@ -4672,6 +4299,17 @@ type TrustedProvisioningClient = {
|
|
|
4672
4299
|
type AuthzConfig = {
|
|
4673
4300
|
oaa?: AuthzOaaConfig;
|
|
4674
4301
|
/**
|
|
4302
|
+
* RemoteConfig/Ops-governed intent. When `true`, the request-level `has*` helpers auto-honor a
|
|
4303
|
+
* principal's OAuth token `scope` claims as entitlements: an app-wide check (no `resource` arg)
|
|
4304
|
+
* also allows when the target id matches a granted scope. Default `false` (secure): scopes never
|
|
4305
|
+
* satisfy `has*` and authorization comes solely from the `AccessAssignmentStore`/`AccessIndex` (IAM/SCIM).
|
|
4306
|
+
* Read at check time so it can be flipped live. This NEVER affects token validation, and the
|
|
4307
|
+
* explicit `hasScope*` helpers are always available regardless of this flag. Resource-scoped
|
|
4308
|
+
* checks (a `resource` arg supplied) are never satisfied by scopes. For workload principals this is
|
|
4309
|
+
* a fallback only: a matched trusted IdP's per-entry `scopesAsEntitlements` takes precedence.
|
|
4310
|
+
*/
|
|
4311
|
+
scopesAsEntitlements?: boolean;
|
|
4312
|
+
/**
|
|
4675
4313
|
* Config-declared trusted provisioning clients (read-path overlay; ConfigSource/ECI-owned). Each
|
|
4676
4314
|
* entry pre-authorizes a workload client to hold specific permissions without a stored grant. See
|
|
4677
4315
|
* {@link TrustedProvisioningClient}. Honored in the request-level `has*` helpers BEFORE the
|
|
@@ -4752,11 +4390,11 @@ type FrameworkConfig = {
|
|
|
4752
4390
|
* `afterLogout` callbacks, which are code-only and therefore kept. RemoteConfig-only intent flags (e.g. IAM `users`/`groups`
|
|
4753
4391
|
* enablement) are also stripped from code.
|
|
4754
4392
|
*/
|
|
4755
|
-
type SSOConfigFromCode = Omit<SSOConfig, "loginUrl" | "userUrl" | "logoutUrl" | "logoutBackChannelUrl" | "refreshUrl" | "redirectUri"
|
|
4393
|
+
type SSOConfigFromCode = Omit<SSOConfig, "loginUrl" | "userUrl" | "logoutUrl" | "logoutBackChannelUrl" | "refreshUrl" | "redirectUri">;
|
|
4756
4394
|
type IAMConfigFromCode = Omit<IAMConfig, "usersUrl" | "groupsUrl" | "workloadsUrl" | "customersUrl" | "users" | "workloads" | "customers" | "groups" | "discovery" | "deltaAudience"> & {
|
|
4757
4395
|
discovery?: Omit<IAMDiscoveryConfig, "basePath">;
|
|
4758
4396
|
};
|
|
4759
|
-
type WorkloadServerConfigFromCode = Omit<Partial<WorkloadConfig>, "tokenUrl" | "validateUrl" | "jwksUrl" | "refreshUrl"
|
|
4397
|
+
type WorkloadServerConfigFromCode = Omit<Partial<WorkloadConfig>, "tokenUrl" | "validateUrl" | "jwksUrl" | "refreshUrl">;
|
|
4760
4398
|
type FrameworkWorkloadConfigFromCode = WorkloadServerConfigFromCode | {
|
|
4761
4399
|
incoming?: WorkloadServerConfigFromCode;
|
|
4762
4400
|
outgoing?: FrameworkWorkloadIncomingOutgoing["outgoing"];
|
|
@@ -5175,8 +4813,6 @@ type CIAM<
|
|
|
5175
4813
|
TMagicLinkData = Record<string, never>,
|
|
5176
4814
|
TCustomerData = Record<string, never>
|
|
5177
4815
|
> = CIAMConfig<TMagicLinkData, TCustomerData> & {
|
|
5178
|
-
/** Secret-free, JSON-serializable configuration and readiness summary. */
|
|
5179
|
-
describe: () => CiamDescription;
|
|
5180
4816
|
getCustomer: (request: Request) => Promise<Customer | undefined>;
|
|
5181
4817
|
/**
|
|
5182
4818
|
* Degraded-aware resolution: distinguishes a signed-out visitor (`unauthenticated`) from a failed
|
|
@@ -5320,15 +4956,6 @@ type IoniteBase = {
|
|
|
5320
4956
|
* module is ready; `notReady` lists the requested modules that are not ready, with reasons.
|
|
5321
4957
|
*/
|
|
5322
4958
|
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
4959
|
/** Most recent RemoteConfig application outcome (last applied time and last error, if any). */
|
|
5333
4960
|
configStatus: ConfigApplyStatus;
|
|
5334
4961
|
/** Release config subscriptions and background resources. */
|
|
@@ -5349,8 +4976,8 @@ type ResolvedRoute = {
|
|
|
5349
4976
|
/**
|
|
5350
4977
|
* Authorization required to invoke this route. When set, the router enforces it (deny-by-default)
|
|
5351
4978
|
* before the handler runs: the caller must hold the {@link EndpointPermission.permission} as a
|
|
5352
|
-
* granted entitlement, or
|
|
5353
|
-
*
|
|
4979
|
+
* granted entitlement, or—when `RemoteConfig.authz.scopesAsEntitlements` is enabled—carry the
|
|
4980
|
+
* matching OAuth scope. Login/public/discovery routes omit it.
|
|
5354
4981
|
*
|
|
5355
4982
|
* Three states, chosen so a custom `resolve` cannot silently drop authorization by omission:
|
|
5356
4983
|
* - a permission object → enforce it;
|
|
@@ -5640,8 +5267,6 @@ type TenantIntegrationView = {
|
|
|
5640
5267
|
integration: TenantIntegration;
|
|
5641
5268
|
};
|
|
5642
5269
|
type TenantManagement<TTenant extends BaseTenant = BaseTenant> = ModuleReadiness & {
|
|
5643
|
-
/** Secret-free, JSON-serializable configuration and readiness summary. */
|
|
5644
|
-
describe(): TmDescription;
|
|
5645
5270
|
handler(request: Request): Promise<Response>;
|
|
5646
5271
|
getTenant(id: string): Promise<TTenant | undefined>;
|
|
5647
5272
|
recordConsent(input: RecordTenantConsentInput): Promise<TTenant>;
|
|
@@ -6318,8 +5943,6 @@ interface OaaClient<
|
|
|
6318
5943
|
TCustomer = BaseCustomer,
|
|
6319
5944
|
TWorkload = BaseWorkloadIdentity
|
|
6320
5945
|
> {
|
|
6321
|
-
/** Secret-free, JSON-serializable OAA configuration and readiness summary. */
|
|
6322
|
-
describe(): OaaDescription;
|
|
6323
5946
|
pushUser(user: TUser): Promise<void>;
|
|
6324
5947
|
pushCustomer(customer: TCustomer): Promise<void>;
|
|
6325
5948
|
pushWorkload(workload: TWorkload): Promise<void>;
|
|
@@ -6438,8 +6061,6 @@ type ReconcileReport = {
|
|
|
6438
6061
|
* wired they deny by default (`{ allow: false }`, `metadata.reason = 'access_index_not_configured'`).
|
|
6439
6062
|
*/
|
|
6440
6063
|
type Authz = {
|
|
6441
|
-
/** Secret-free, JSON-serializable configuration and readiness summary. */
|
|
6442
|
-
describe(): AuthzDescription;
|
|
6443
6064
|
oaa: OaaClient;
|
|
6444
6065
|
/** Read the effective catalog union (materialized rows plus unmaterialized code templates). */
|
|
6445
6066
|
entitlements: {
|
|
@@ -6491,9 +6112,9 @@ type Authz = {
|
|
|
6491
6112
|
*/
|
|
6492
6113
|
grant(change: AccessChange): Promise<AccessChange>;
|
|
6493
6114
|
/**
|
|
6494
|
-
* Submit one grant or revoke request on a principal's behalf.
|
|
6495
|
-
*
|
|
6496
|
-
*
|
|
6115
|
+
* Submit one grant or revoke request on a principal's behalf. Allowed only when that kind's
|
|
6116
|
+
* assignment policy is `'iam-request'`. One operation maps to one approval decision, status,
|
|
6117
|
+
* and tracking URL. Authenticated with the module-wide `deltaAudience` workload client.
|
|
6497
6118
|
*/
|
|
6498
6119
|
requestAccess(change: {
|
|
6499
6120
|
subject: AccessChange["subject"];
|
|
@@ -6502,20 +6123,6 @@ type Authz = {
|
|
|
6502
6123
|
target: AccessChange["target"];
|
|
6503
6124
|
operation: "grant" | "revoke";
|
|
6504
6125
|
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
6126
|
}): Promise<{
|
|
6520
6127
|
id: string;
|
|
6521
6128
|
status: "pending" | "approved" | "denied";
|
|
@@ -6535,10 +6142,8 @@ type Authz = {
|
|
|
6535
6142
|
* - `'iam'` — never assign in-app; show a request link (or a read-only entitlement table).
|
|
6536
6143
|
* - `'iam-request'` — never assign in-app; the app submits a request on the principal's behalf via
|
|
6537
6144
|
* {@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
6145
|
*/
|
|
6541
|
-
type IamAssignmentPolicy = "app" | "iam" | "iam-request"
|
|
6146
|
+
type IamAssignmentPolicy = "app" | "iam" | "iam-request";
|
|
6542
6147
|
/**
|
|
6543
6148
|
* Thrown by {@link Authz.grant} when the Ops-owned assignment policy forbids in-app assignment.
|
|
6544
6149
|
* `requestUrl` is the IAM-written entitlement receipt when one exists, so the app can send the
|
|
@@ -6589,6 +6194,64 @@ declare function trustedClientPermissionsForPrincipal(authz: AuthzConfig | null
|
|
|
6589
6194
|
* OAA full sync — they are NEVER written to a store or materialized into the AccessIndex.
|
|
6590
6195
|
*/
|
|
6591
6196
|
declare function configTrustedClientGrants(authz: AuthzConfig | null | undefined): AccessChange[];
|
|
6197
|
+
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";
|
|
6198
|
+
type CapabilityEndpointUrls = {
|
|
6199
|
+
readyzUrl: string;
|
|
6200
|
+
capabilitiezUrl: string;
|
|
6201
|
+
sso: {
|
|
6202
|
+
loginUrl: string;
|
|
6203
|
+
userUrl: string;
|
|
6204
|
+
logoutUrl: string;
|
|
6205
|
+
logoutBackChannelUrl: string;
|
|
6206
|
+
refreshUrl: string;
|
|
6207
|
+
callbackUrl: string;
|
|
6208
|
+
};
|
|
6209
|
+
workload: {
|
|
6210
|
+
validateUrl: string;
|
|
6211
|
+
jwksUrl: string;
|
|
6212
|
+
};
|
|
6213
|
+
iam: {
|
|
6214
|
+
basePath: string;
|
|
6215
|
+
usersUrl: string;
|
|
6216
|
+
groupsUrl: string;
|
|
6217
|
+
workloadsUrl: string;
|
|
6218
|
+
customersUrl: string;
|
|
6219
|
+
};
|
|
6220
|
+
ciam: {
|
|
6221
|
+
magicLinkUrl: string;
|
|
6222
|
+
magicLinkLoginUrl: string;
|
|
6223
|
+
customerUrl: string;
|
|
6224
|
+
customerLoginUrl: string;
|
|
6225
|
+
customerCallbackUrl: string;
|
|
6226
|
+
customerProvidersUrl: string;
|
|
6227
|
+
logoutUrl: string;
|
|
6228
|
+
};
|
|
6229
|
+
};
|
|
6230
|
+
type CapabilityState = {
|
|
6231
|
+
module: ModuleName;
|
|
6232
|
+
active: boolean;
|
|
6233
|
+
ready: boolean;
|
|
6234
|
+
testable: boolean;
|
|
6235
|
+
urls?: string[];
|
|
6236
|
+
reason?: string;
|
|
6237
|
+
};
|
|
6238
|
+
type CapabilitiezManifest = {
|
|
6239
|
+
sdk: {
|
|
6240
|
+
/** Runtime @ionite/server version serving this manifest. */
|
|
6241
|
+
version: string;
|
|
6242
|
+
/** Version of the stable capability/test-unit vocabulary. */
|
|
6243
|
+
catalogVersion: number;
|
|
6244
|
+
};
|
|
6245
|
+
basePath: string;
|
|
6246
|
+
urls: CapabilityEndpointUrls;
|
|
6247
|
+
modules: Record<ModuleName, ModuleReadinessState>;
|
|
6248
|
+
capabilities: Record<CapabilityKey, CapabilityState>;
|
|
6249
|
+
/**
|
|
6250
|
+
* True when FrameworkConfig wired a live LFV callback transport. Boolean only — the transport
|
|
6251
|
+
* object, Redis URL, and credentials are never exposed.
|
|
6252
|
+
*/
|
|
6253
|
+
lfvCallbackTransport: boolean;
|
|
6254
|
+
};
|
|
6592
6255
|
/**
|
|
6593
6256
|
* Fields a {@link ConfigSource} may attach to a thrown error so the SDK can classify load/subscribe
|
|
6594
6257
|
* failures structurally instead of by fragile message-substring matching (§2.1). All fields are
|
|
@@ -6957,4 +6620,4 @@ type LfvErrorResponse = {
|
|
|
6957
6620
|
};
|
|
6958
6621
|
/** Generates a ULID */
|
|
6959
6622
|
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 };
|
|
6623
|
+
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 };
|