@camstack/addon-auth 1.2.143 → 1.2.144
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/{dist-fzt8gRGY.mjs → dist-0YTEFDYk.js} +682 -1
- package/dist/{dist-DscyrBBw.js → dist-ChwITXNa.mjs} +457 -196
- package/dist/oidc/auth-oidc.addon.js +6 -83
- package/dist/oidc/auth-oidc.addon.mjs +1 -78
- package/dist/webauthn/_stub.js +1 -1
- package/dist/webauthn/{_virtual_mf-localSharedImportMap___mfe_internal__addon_auth_webauthn_widgets-CDD1e9sj.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_auth_webauthn_widgets-ZRpCO_gp.mjs} +2 -2
- package/dist/webauthn/_virtual_mf___mfe_internal__addon_auth_webauthn_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-xhY74yma.mjs +26 -0
- package/dist/webauthn/auth-webauthn.addon.js +1 -1
- package/dist/webauthn/auth-webauthn.addon.mjs +1 -1
- package/dist/webauthn/{hostInit-Ch3QCBTy.mjs → hostInit-YhJ9npQM.mjs} +2 -2
- package/dist/webauthn/remoteEntry.js +1 -1
- package/package.json +1 -1
- package/dist/webauthn/_virtual_mf___mfe_internal__addon_auth_webauthn_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-BlpPaWg4.mjs +0 -26
|
@@ -1,3 +1,37 @@
|
|
|
1
|
+
//#region \0rolldown/runtime.js
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __esmMin = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
9
|
+
var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
|
|
10
|
+
var __exportAll = (all, no_symbols) => {
|
|
11
|
+
let target = {};
|
|
12
|
+
for (var name in all) __defProp(target, name, {
|
|
13
|
+
get: all[name],
|
|
14
|
+
enumerable: true
|
|
15
|
+
});
|
|
16
|
+
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
17
|
+
return target;
|
|
18
|
+
};
|
|
19
|
+
var __copyProps = (to, from, except, desc) => {
|
|
20
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
21
|
+
key = keys[i];
|
|
22
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
23
|
+
get: ((k) => from[k]).bind(null, key),
|
|
24
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
return to;
|
|
28
|
+
};
|
|
29
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
30
|
+
value: mod,
|
|
31
|
+
enumerable: true
|
|
32
|
+
}) : target, mod));
|
|
33
|
+
var __toCommonJS = (mod) => __hasOwnProp.call(mod, "module.exports") ? mod["module.exports"] : __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
34
|
+
require("node:crypto");
|
|
1
35
|
//#region ../types/dist/event-category-C4hVnRo8.mjs
|
|
2
36
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
3
37
|
EventCategory["SystemBoot"] = "system.boot";
|
|
@@ -12292,6 +12326,242 @@ var ConvertResultSchema = object({
|
|
|
12292
12326
|
* One name, two readers (the OIDC addon that sets it, the hub that checks it).
|
|
12293
12327
|
*/
|
|
12294
12328
|
var SSO_STATE_COOKIE = "camstack_sso_state";
|
|
12329
|
+
/**
|
|
12330
|
+
* Device certificates (D855) — the wire contract shared by the hub, the admin
|
|
12331
|
+
* UI and the native viewer.
|
|
12332
|
+
*
|
|
12333
|
+
* A device (a phone) generates its OWN P-256 key pair in hardware (Secure
|
|
12334
|
+
* Enclave / Android Keystore / a non-extractable WebCrypto key). The private
|
|
12335
|
+
* key never travels. The hub signs the PUBLIC key into an X.509 leaf under a
|
|
12336
|
+
* dedicated device CA; the device later proves possession of the key by
|
|
12337
|
+
* signing a hub-issued nonce, and the hub answers with the same session a
|
|
12338
|
+
* password login opens.
|
|
12339
|
+
*
|
|
12340
|
+
* Everything on the wire is a small string (a PEM, a base64url signature):
|
|
12341
|
+
* D613 is about bulk bytes, and a certificate is ~600 bytes.
|
|
12342
|
+
*/
|
|
12343
|
+
/** Signature algorithm of every device credential: ECDSA, curve P-256, SHA-256. */
|
|
12344
|
+
var DEVICE_CERT_SIGNATURE = "ecdsa-p256-sha256";
|
|
12345
|
+
/** First line of every signed message; a change of format bumps the version. */
|
|
12346
|
+
var DEVICE_SIGNATURE_MESSAGE_VERSION = "camstack-device-cert-v1";
|
|
12347
|
+
_enum([
|
|
12348
|
+
"login",
|
|
12349
|
+
"renew",
|
|
12350
|
+
"revoke"
|
|
12351
|
+
]);
|
|
12352
|
+
var DevicePlatformSchema = _enum([
|
|
12353
|
+
"ios",
|
|
12354
|
+
"android",
|
|
12355
|
+
"web",
|
|
12356
|
+
"other"
|
|
12357
|
+
]);
|
|
12358
|
+
var Base64UrlSchema = string().min(1).max(4096).regex(/^[A-Za-z0-9_-]+$/);
|
|
12359
|
+
var PemSchema = string().min(1).max(16384);
|
|
12360
|
+
/**
|
|
12361
|
+
* Why a device-certificate endpoint said no. Distinct from a transport / 5xx
|
|
12362
|
+
* failure: those carry no reason and mean "try again", never "the credential is
|
|
12363
|
+
* dead". The viewer switches on this exhaustively.
|
|
12364
|
+
*/
|
|
12365
|
+
var DeviceRefusalReasonSchema = _enum([
|
|
12366
|
+
"revoked",
|
|
12367
|
+
"unknown-credential",
|
|
12368
|
+
"expired",
|
|
12369
|
+
"bad-signature",
|
|
12370
|
+
"nonce-invalid",
|
|
12371
|
+
"rate-limited",
|
|
12372
|
+
"invalid-certificate",
|
|
12373
|
+
"superseded",
|
|
12374
|
+
"user-gone",
|
|
12375
|
+
"unavailable",
|
|
12376
|
+
"code-invalid",
|
|
12377
|
+
"self-enrollment-disabled",
|
|
12378
|
+
"step-up-required",
|
|
12379
|
+
"bad-public-key"
|
|
12380
|
+
]);
|
|
12381
|
+
var DeviceRefusalSchema = object({
|
|
12382
|
+
ok: literal(false),
|
|
12383
|
+
reason: DeviceRefusalReasonSchema,
|
|
12384
|
+
definitive: boolean(),
|
|
12385
|
+
retryAfterSeconds: number().optional()
|
|
12386
|
+
});
|
|
12387
|
+
object({
|
|
12388
|
+
code: string().min(1).max(256),
|
|
12389
|
+
/** SubjectPublicKeyInfo DER of the device's P-256 public key, base64url. */
|
|
12390
|
+
publicKeySpki: Base64UrlSchema,
|
|
12391
|
+
deviceName: string().min(1).max(80).optional(),
|
|
12392
|
+
platform: DevicePlatformSchema
|
|
12393
|
+
});
|
|
12394
|
+
discriminatedUnion("ok", [object({
|
|
12395
|
+
credentialId: string(),
|
|
12396
|
+
certPem: PemSchema,
|
|
12397
|
+
/** The device CA certificate the leaf chains to. */
|
|
12398
|
+
chainPem: PemSchema,
|
|
12399
|
+
notAfter: number(),
|
|
12400
|
+
user: object({
|
|
12401
|
+
id: string(),
|
|
12402
|
+
username: string()
|
|
12403
|
+
})
|
|
12404
|
+
}).extend({ ok: literal(true) }), DeviceRefusalSchema]);
|
|
12405
|
+
object({
|
|
12406
|
+
/** The single-use step-up proof (`auth.deviceEnrollProofFrom…`). */
|
|
12407
|
+
proof: string().min(1).max(512),
|
|
12408
|
+
publicKeySpki: Base64UrlSchema,
|
|
12409
|
+
deviceName: string().min(1).max(80),
|
|
12410
|
+
platform: DevicePlatformSchema
|
|
12411
|
+
});
|
|
12412
|
+
object({
|
|
12413
|
+
proof: string(),
|
|
12414
|
+
expiresAt: number()
|
|
12415
|
+
});
|
|
12416
|
+
discriminatedUnion("ok", [object({
|
|
12417
|
+
nonce: string(),
|
|
12418
|
+
/** The origin to put in the signed message. The app compares it to the hub it dialled. */
|
|
12419
|
+
origin: string(),
|
|
12420
|
+
expiresAt: number(),
|
|
12421
|
+
signature: literal(DEVICE_CERT_SIGNATURE)
|
|
12422
|
+
}).extend({ ok: literal(true) }), DeviceRefusalSchema]);
|
|
12423
|
+
object({
|
|
12424
|
+
certPem: PemSchema,
|
|
12425
|
+
nonce: string().min(1).max(256),
|
|
12426
|
+
/** ECDSA P-256 SHA-256 over {@link buildDeviceSignatureMessage}; raw r||s or DER, base64url. */
|
|
12427
|
+
signature: Base64UrlSchema
|
|
12428
|
+
});
|
|
12429
|
+
discriminatedUnion("ok", [object({
|
|
12430
|
+
credentialId: string(),
|
|
12431
|
+
certPem: PemSchema,
|
|
12432
|
+
chainPem: PemSchema,
|
|
12433
|
+
notAfter: number()
|
|
12434
|
+
}).extend({ ok: literal(true) }), DeviceRefusalSchema]);
|
|
12435
|
+
discriminatedUnion("ok", [object({
|
|
12436
|
+
ok: literal(true),
|
|
12437
|
+
credentialId: string(),
|
|
12438
|
+
sessionsEnded: number().int()
|
|
12439
|
+
}), DeviceRefusalSchema]);
|
|
12440
|
+
var DeviceCredentialStatusSchema = _enum([
|
|
12441
|
+
"active",
|
|
12442
|
+
"expired",
|
|
12443
|
+
"revoked"
|
|
12444
|
+
]);
|
|
12445
|
+
var DeviceCredentialSchema = object({
|
|
12446
|
+
id: string(),
|
|
12447
|
+
userId: string(),
|
|
12448
|
+
username: string().nullable(),
|
|
12449
|
+
deviceName: string(),
|
|
12450
|
+
platform: DevicePlatformSchema,
|
|
12451
|
+
enrolledVia: _enum(["qr", "self"]),
|
|
12452
|
+
/** SHA-256 of the leaf certificate DER, colon-hex. */
|
|
12453
|
+
fingerprint: string(),
|
|
12454
|
+
issuedAt: number(),
|
|
12455
|
+
expiresAt: number(),
|
|
12456
|
+
lastUsedAt: number().nullable(),
|
|
12457
|
+
lastUsedFrom: string().nullable(),
|
|
12458
|
+
revokedAt: number().nullable(),
|
|
12459
|
+
/** `admin:<userId>` | `user:<userId>` | `device` | `user-deleted`. */
|
|
12460
|
+
revokedBy: string().nullable(),
|
|
12461
|
+
status: DeviceCredentialStatusSchema
|
|
12462
|
+
});
|
|
12463
|
+
var StartEnrollmentOutputSchema = object({
|
|
12464
|
+
/** Shown once; only its hash is kept. */
|
|
12465
|
+
code: string(),
|
|
12466
|
+
expiresAt: number(),
|
|
12467
|
+
/** `camstack://enroll?hub=…&code=…` — what the QR encodes. */
|
|
12468
|
+
enrollUrl: string(),
|
|
12469
|
+
/** The hub origin in the link, or `null` when the hub could not name one (the link then has no `hub`). */
|
|
12470
|
+
hubOrigin: string().nullable(),
|
|
12471
|
+
/** Every origin the apps may try (role `appConnections`). */
|
|
12472
|
+
hubOrigins: array(string())
|
|
12473
|
+
});
|
|
12474
|
+
object({
|
|
12475
|
+
kind: literal("device-certificate"),
|
|
12476
|
+
id: literal("device-certificate"),
|
|
12477
|
+
label: string(),
|
|
12478
|
+
stage: literal("primary"),
|
|
12479
|
+
/** tRPC paths under the hub's `auth` router, so a client names no literal. */
|
|
12480
|
+
challengePath: literal("auth.getDeviceChallenge"),
|
|
12481
|
+
revokePath: literal("auth.revokeOwnDeviceCertificate"),
|
|
12482
|
+
enrollSelfPath: literal("auth.enrollSelf"),
|
|
12483
|
+
loginPath: literal("auth.loginWithDeviceCertificate"),
|
|
12484
|
+
renewPath: literal("auth.renewDeviceCertificate"),
|
|
12485
|
+
signature: literal(DEVICE_CERT_SIGNATURE),
|
|
12486
|
+
messageVersion: literal(DEVICE_SIGNATURE_MESSAGE_VERSION),
|
|
12487
|
+
/** Which clients can execute it: a native app silently, a browser with a non-extractable WebCrypto key. */
|
|
12488
|
+
clients: array(_enum(["native", "web"]))
|
|
12489
|
+
});
|
|
12490
|
+
/** host[:port] — a DNS name, IPv4 or bracketed IPv6. No userinfo, path or spaces. */
|
|
12491
|
+
var AUTHORITY_RE = /^(?:[a-z0-9.-]+|\[[0-9a-f:.]+\])(?::\d{1,5})?$/i;
|
|
12492
|
+
/** Same grammar as the hub's `parseForwardedPrefix` (spa-mount.ts). */
|
|
12493
|
+
var PREFIX_RE = /^\/[A-Za-z0-9_\-.]+(?:\/[A-Za-z0-9_\-.]+)*$/;
|
|
12494
|
+
var MAX_PREFIX_LENGTH = 512;
|
|
12495
|
+
/** First value of a possibly comma-joined forwarded header (the client-most proxy). */
|
|
12496
|
+
function firstValue(value) {
|
|
12497
|
+
if (value === void 0) return null;
|
|
12498
|
+
const first = value.split(",")[0]?.trim() ?? "";
|
|
12499
|
+
return first.length === 0 ? null : first;
|
|
12500
|
+
}
|
|
12501
|
+
/** `scheme://host[:port]` normalised by WHATWG URL, or `null` if it is not an http(s) origin. */
|
|
12502
|
+
function normalizeOrigin(value) {
|
|
12503
|
+
try {
|
|
12504
|
+
const url = new URL(value);
|
|
12505
|
+
if (url.protocol !== "https:" && url.protocol !== "http:") return null;
|
|
12506
|
+
if (url.username !== "" || url.password !== "") return null;
|
|
12507
|
+
return url.origin;
|
|
12508
|
+
} catch {
|
|
12509
|
+
return null;
|
|
12510
|
+
}
|
|
12511
|
+
}
|
|
12512
|
+
/** The mount prefix the relay named (no trailing slash), or `''`. Invalid = absent. */
|
|
12513
|
+
function requestMountPrefix(headers) {
|
|
12514
|
+
const raw = headers["x-forwarded-prefix"];
|
|
12515
|
+
if (raw === void 0 || raw.length === 0 || raw.length > MAX_PREFIX_LENGTH) return "";
|
|
12516
|
+
const trimmed = raw.endsWith("/") ? raw.slice(0, -1) : raw;
|
|
12517
|
+
if (trimmed === "" || !PREFIX_RE.test(trimmed)) return "";
|
|
12518
|
+
if (trimmed.split("/").some((segment) => segment === ".." || segment === ".")) return "";
|
|
12519
|
+
return trimmed;
|
|
12520
|
+
}
|
|
12521
|
+
/**
|
|
12522
|
+
* The origins the request CLAIMS, most specific first: the proxy's
|
|
12523
|
+
* `X-Forwarded-Host` over `Host`; the named `X-Forwarded-Proto`, or https
|
|
12524
|
+
* then http when none is named (the hub terminates TLS itself on 4443).
|
|
12525
|
+
*/
|
|
12526
|
+
function claimedRequestOrigins(headers) {
|
|
12527
|
+
const authority = firstValue(headers["x-forwarded-host"]) ?? firstValue(headers["host"]);
|
|
12528
|
+
if (authority === null || !AUTHORITY_RE.test(authority)) return [];
|
|
12529
|
+
const proto = firstValue(headers["x-forwarded-proto"])?.toLowerCase() ?? null;
|
|
12530
|
+
const schemes = proto === "https" || proto === "http" ? [proto] : proto === null ? ["https", "http"] : [];
|
|
12531
|
+
const out = [];
|
|
12532
|
+
for (const scheme of schemes) {
|
|
12533
|
+
const origin = normalizeOrigin(`${scheme}://${authority}`);
|
|
12534
|
+
if (origin !== null) out.push(origin);
|
|
12535
|
+
}
|
|
12536
|
+
return out;
|
|
12537
|
+
}
|
|
12538
|
+
/** Every origin the hub advertises itself at, normalised. Never the app link, never loopback. */
|
|
12539
|
+
function advertisedHubOrigins(book) {
|
|
12540
|
+
const candidates = [];
|
|
12541
|
+
for (const row of book.rows) {
|
|
12542
|
+
if (row.kind === "app-link" || row.kind === "loopback") continue;
|
|
12543
|
+
candidates.push(row.baseUrl);
|
|
12544
|
+
}
|
|
12545
|
+
const { publicEndpoint, internal, appConnections } = book.roles;
|
|
12546
|
+
if (publicEndpoint.resolved !== null) candidates.push(publicEndpoint.resolved);
|
|
12547
|
+
if (internal.resolved !== null) candidates.push(internal.resolved);
|
|
12548
|
+
candidates.push(...appConnections.resolved);
|
|
12549
|
+
candidates.push(...book.listenerOrigins ?? []);
|
|
12550
|
+
const out = /* @__PURE__ */ new Set();
|
|
12551
|
+
for (const candidate of candidates) {
|
|
12552
|
+
const origin = normalizeOrigin(candidate);
|
|
12553
|
+
if (origin !== null) out.add(origin);
|
|
12554
|
+
}
|
|
12555
|
+
return out;
|
|
12556
|
+
}
|
|
12557
|
+
/**
|
|
12558
|
+
* The origin to send the browser back to: the first claimed origin that is in
|
|
12559
|
+
* `allowed`, or `null` (the caller then uses its default address).
|
|
12560
|
+
*/
|
|
12561
|
+
function pickRequestOrigin(headers, allowed) {
|
|
12562
|
+
for (const origin of claimedRequestOrigins(headers)) if (allowed.has(origin)) return origin;
|
|
12563
|
+
return null;
|
|
12564
|
+
}
|
|
12295
12565
|
var ExpressionBindingSourceSchema = union([
|
|
12296
12566
|
object({
|
|
12297
12567
|
kind: literal("field").optional(),
|
|
@@ -15898,6 +16168,136 @@ method(object({
|
|
|
15898
16168
|
kind: "mutation",
|
|
15899
16169
|
auth: "admin"
|
|
15900
16170
|
}), method(object({}), array(KeychainSecretMetaSchema).readonly(), { auth: "admin" }), method(object({}), KeychainStateSchema, { auth: "admin" });
|
|
16171
|
+
var DeviceCaStatusSchema = discriminatedUnion("state", [
|
|
16172
|
+
object({ state: literal("absent") }),
|
|
16173
|
+
object({
|
|
16174
|
+
state: literal("ready"),
|
|
16175
|
+
subject: string(),
|
|
16176
|
+
fingerprintSha256: string(),
|
|
16177
|
+
validTo: string()
|
|
16178
|
+
}),
|
|
16179
|
+
object({
|
|
16180
|
+
state: literal("unavailable"),
|
|
16181
|
+
reason: string()
|
|
16182
|
+
})
|
|
16183
|
+
]);
|
|
16184
|
+
var DeviceCertificateSettingsSchema = object({ selfEnrollment: _enum(["allowed", "disabled"]) });
|
|
16185
|
+
method(object({
|
|
16186
|
+
userId: string().min(1).optional(),
|
|
16187
|
+
includeRevoked: boolean().default(false)
|
|
16188
|
+
}), array(DeviceCredentialSchema).readonly(), { auth: "admin" }), method(object({
|
|
16189
|
+
userId: string().min(1),
|
|
16190
|
+
deviceName: string().min(1).max(80)
|
|
16191
|
+
}), StartEnrollmentOutputSchema, {
|
|
16192
|
+
kind: "mutation",
|
|
16193
|
+
auth: "admin",
|
|
16194
|
+
caller: "required"
|
|
16195
|
+
}), method(object({ id: string().min(1) }), object({
|
|
16196
|
+
revoked: boolean(),
|
|
16197
|
+
sessionsEnded: number().int(),
|
|
16198
|
+
status: DeviceCredentialStatusSchema
|
|
16199
|
+
}), {
|
|
16200
|
+
kind: "mutation",
|
|
16201
|
+
auth: "admin",
|
|
16202
|
+
caller: "required"
|
|
16203
|
+
}), method(object({}), DeviceCertificateSettingsSchema, { auth: "admin" }), method(DeviceCertificateSettingsSchema, DeviceCertificateSettingsSchema, {
|
|
16204
|
+
kind: "mutation",
|
|
16205
|
+
auth: "admin"
|
|
16206
|
+
}), method(object({ id: string().min(1) }), object({ result: _enum([
|
|
16207
|
+
"deleted",
|
|
16208
|
+
"live",
|
|
16209
|
+
"unknown"
|
|
16210
|
+
]) }), {
|
|
16211
|
+
kind: "mutation",
|
|
16212
|
+
auth: "admin",
|
|
16213
|
+
caller: "required"
|
|
16214
|
+
}), method(object({}), DeviceCaStatusSchema, { auth: "admin" }), method(object({
|
|
16215
|
+
id: string().min(1),
|
|
16216
|
+
deviceName: string().min(1).max(80)
|
|
16217
|
+
}), object({ renamed: boolean() }), {
|
|
16218
|
+
kind: "mutation",
|
|
16219
|
+
auth: "admin"
|
|
16220
|
+
});
|
|
16221
|
+
/**
|
|
16222
|
+
* `node-certificates` - what a node holds and the two renewals the hub drives
|
|
16223
|
+
* (D856): the node's MESH leaf (mutual TLS to the hub) and its HTTPS leaf (issued
|
|
16224
|
+
* from the hub's local CA so a device that trusts the hub root trusts the node).
|
|
16225
|
+
*
|
|
16226
|
+
* Provided by the AGENT RUNTIME (the synthetic `agent-runtime` addon id, like
|
|
16227
|
+
* `server-management`): the hub reaches it through the ordinary node-pinned
|
|
16228
|
+
* capability call - no new Moleculer action. The hub's own certificates are
|
|
16229
|
+
* handled in-process by the hub (`certificates` router), so this cap has no hub
|
|
16230
|
+
* provider.
|
|
16231
|
+
*
|
|
16232
|
+
* No private key ever crosses the mesh: the node generates its key pair, sends a
|
|
16233
|
+
* CSR, and the hub returns only the signed certificate.
|
|
16234
|
+
*/
|
|
16235
|
+
var MeshLeafInfoSchema = object({
|
|
16236
|
+
cn: string(),
|
|
16237
|
+
serial: string(),
|
|
16238
|
+
fingerprintSha256: string(),
|
|
16239
|
+
notBefore: number(),
|
|
16240
|
+
notAfter: number()
|
|
16241
|
+
});
|
|
16242
|
+
var HttpsLeafInfoSchema = object({
|
|
16243
|
+
fingerprintSha256: string(),
|
|
16244
|
+
issuer: string(),
|
|
16245
|
+
sans: array(string()),
|
|
16246
|
+
notBefore: number(),
|
|
16247
|
+
notAfter: number()
|
|
16248
|
+
});
|
|
16249
|
+
var NodeHttpsStateSchema = discriminatedUnion("state", [object({
|
|
16250
|
+
state: literal("served"),
|
|
16251
|
+
leaf: HttpsLeafInfoSchema
|
|
16252
|
+
}), object({
|
|
16253
|
+
state: literal("not-issued"),
|
|
16254
|
+
reason: string()
|
|
16255
|
+
})]);
|
|
16256
|
+
method(object({}), object({
|
|
16257
|
+
nodeId: string(),
|
|
16258
|
+
mesh: MeshLeafInfoSchema.nullable(),
|
|
16259
|
+
https: NodeHttpsStateSchema
|
|
16260
|
+
}), { auth: "admin" }), method(object({}), object({ csrPem: string() }), {
|
|
16261
|
+
kind: "mutation",
|
|
16262
|
+
auth: "admin"
|
|
16263
|
+
}), method(object({
|
|
16264
|
+
certPem: string().min(1),
|
|
16265
|
+
caCertPem: string().min(1),
|
|
16266
|
+
confirmWithinMs: number().int().min(1e4).max(6e5)
|
|
16267
|
+
}), object({
|
|
16268
|
+
fingerprintSha256: string(),
|
|
16269
|
+
serial: string()
|
|
16270
|
+
}), {
|
|
16271
|
+
kind: "mutation",
|
|
16272
|
+
auth: "admin"
|
|
16273
|
+
}), method(object({ fingerprintSha256: string() }), object({ confirmed: boolean() }), {
|
|
16274
|
+
kind: "mutation",
|
|
16275
|
+
auth: "admin"
|
|
16276
|
+
}), method(object({}), object({ rolledBack: boolean() }), {
|
|
16277
|
+
kind: "mutation",
|
|
16278
|
+
auth: "admin"
|
|
16279
|
+
}), method(object({}), object({
|
|
16280
|
+
csrPem: string(),
|
|
16281
|
+
hostnames: array(string()),
|
|
16282
|
+
addresses: array(string()),
|
|
16283
|
+
/** SHA-256 of the hub local CA this node pinned at its first install; `null` before one. */
|
|
16284
|
+
pinnedCaFingerprintSha256: string().nullable()
|
|
16285
|
+
}), {
|
|
16286
|
+
kind: "mutation",
|
|
16287
|
+
auth: "admin"
|
|
16288
|
+
}), method(object({
|
|
16289
|
+
certPem: string().min(1),
|
|
16290
|
+
caCertPem: string().min(1),
|
|
16291
|
+
/**
|
|
16292
|
+
* The hub signals that its local CA was rotated (D227) and this leaf chains to the NEW
|
|
16293
|
+
* one. Only the hub, over the authenticated mesh, can say so; a leaf with a different CA
|
|
16294
|
+
* and no signal is refused.
|
|
16295
|
+
*/
|
|
16296
|
+
caRotation: boolean().optional()
|
|
16297
|
+
}), HttpsLeafInfoSchema, {
|
|
16298
|
+
kind: "mutation",
|
|
16299
|
+
auth: "admin"
|
|
16300
|
+
});
|
|
15901
16301
|
var KeychainKeySourceSchema = object({
|
|
15902
16302
|
kind: _enum([
|
|
15903
16303
|
"config-file",
|
|
@@ -61878,6 +62278,54 @@ Object.freeze({
|
|
|
61878
62278
|
addonId: null,
|
|
61879
62279
|
access: "create"
|
|
61880
62280
|
},
|
|
62281
|
+
"deviceCredentials.deleteDeviceCredential": {
|
|
62282
|
+
capName: "device-credentials",
|
|
62283
|
+
capScope: "system",
|
|
62284
|
+
addonId: null,
|
|
62285
|
+
access: "delete"
|
|
62286
|
+
},
|
|
62287
|
+
"deviceCredentials.getDeviceCaStatus": {
|
|
62288
|
+
capName: "device-credentials",
|
|
62289
|
+
capScope: "system",
|
|
62290
|
+
addonId: null,
|
|
62291
|
+
access: "view"
|
|
62292
|
+
},
|
|
62293
|
+
"deviceCredentials.getDeviceCertificateSettings": {
|
|
62294
|
+
capName: "device-credentials",
|
|
62295
|
+
capScope: "system",
|
|
62296
|
+
addonId: null,
|
|
62297
|
+
access: "view"
|
|
62298
|
+
},
|
|
62299
|
+
"deviceCredentials.listDeviceCredentials": {
|
|
62300
|
+
capName: "device-credentials",
|
|
62301
|
+
capScope: "system",
|
|
62302
|
+
addonId: null,
|
|
62303
|
+
access: "view"
|
|
62304
|
+
},
|
|
62305
|
+
"deviceCredentials.renameDeviceCredential": {
|
|
62306
|
+
capName: "device-credentials",
|
|
62307
|
+
capScope: "system",
|
|
62308
|
+
addonId: null,
|
|
62309
|
+
access: "create"
|
|
62310
|
+
},
|
|
62311
|
+
"deviceCredentials.revokeDeviceCredential": {
|
|
62312
|
+
capName: "device-credentials",
|
|
62313
|
+
capScope: "system",
|
|
62314
|
+
addonId: null,
|
|
62315
|
+
access: "delete"
|
|
62316
|
+
},
|
|
62317
|
+
"deviceCredentials.setDeviceCertificateSettings": {
|
|
62318
|
+
capName: "device-credentials",
|
|
62319
|
+
capScope: "system",
|
|
62320
|
+
addonId: null,
|
|
62321
|
+
access: "create"
|
|
62322
|
+
},
|
|
62323
|
+
"deviceCredentials.startEnrollment": {
|
|
62324
|
+
capName: "device-credentials",
|
|
62325
|
+
capScope: "system",
|
|
62326
|
+
addonId: null,
|
|
62327
|
+
access: "create"
|
|
62328
|
+
},
|
|
61881
62329
|
"deviceDiscovery.adoptDevice": {
|
|
61882
62330
|
capName: "device-discovery",
|
|
61883
62331
|
capScope: "device",
|
|
@@ -64038,6 +64486,48 @@ Object.freeze({
|
|
|
64038
64486
|
addonId: null,
|
|
64039
64487
|
access: "create"
|
|
64040
64488
|
},
|
|
64489
|
+
"nodeCertificates.confirmMeshLeaf": {
|
|
64490
|
+
capName: "node-certificates",
|
|
64491
|
+
capScope: "system",
|
|
64492
|
+
addonId: null,
|
|
64493
|
+
access: "create"
|
|
64494
|
+
},
|
|
64495
|
+
"nodeCertificates.getCertificates": {
|
|
64496
|
+
capName: "node-certificates",
|
|
64497
|
+
capScope: "system",
|
|
64498
|
+
addonId: null,
|
|
64499
|
+
access: "view"
|
|
64500
|
+
},
|
|
64501
|
+
"nodeCertificates.installHttpsCertificate": {
|
|
64502
|
+
capName: "node-certificates",
|
|
64503
|
+
capScope: "system",
|
|
64504
|
+
addonId: null,
|
|
64505
|
+
access: "create"
|
|
64506
|
+
},
|
|
64507
|
+
"nodeCertificates.installMeshLeaf": {
|
|
64508
|
+
capName: "node-certificates",
|
|
64509
|
+
capScope: "system",
|
|
64510
|
+
addonId: null,
|
|
64511
|
+
access: "create"
|
|
64512
|
+
},
|
|
64513
|
+
"nodeCertificates.prepareHttpsCertificate": {
|
|
64514
|
+
capName: "node-certificates",
|
|
64515
|
+
capScope: "system",
|
|
64516
|
+
addonId: null,
|
|
64517
|
+
access: "create"
|
|
64518
|
+
},
|
|
64519
|
+
"nodeCertificates.prepareMeshRenewal": {
|
|
64520
|
+
capName: "node-certificates",
|
|
64521
|
+
capScope: "system",
|
|
64522
|
+
addonId: null,
|
|
64523
|
+
access: "create"
|
|
64524
|
+
},
|
|
64525
|
+
"nodeCertificates.rollbackMeshLeaf": {
|
|
64526
|
+
capName: "node-certificates",
|
|
64527
|
+
capScope: "system",
|
|
64528
|
+
addonId: null,
|
|
64529
|
+
access: "create"
|
|
64530
|
+
},
|
|
64041
64531
|
"nodes.clusterAddonStatus": {
|
|
64042
64532
|
capName: "nodes",
|
|
64043
64533
|
capScope: "system",
|
|
@@ -71973,4 +72463,195 @@ DEFAULT_NATIVE_LEASE_SETTINGS.admission;
|
|
|
71973
72463
|
var MB = 1024 * 1024;
|
|
71974
72464
|
1024 * MB, 3072 * MB;
|
|
71975
72465
|
//#endregion
|
|
71976
|
-
|
|
72466
|
+
Object.defineProperty(exports, "BaseAddon", {
|
|
72467
|
+
enumerable: true,
|
|
72468
|
+
get: function() {
|
|
72469
|
+
return BaseAddon;
|
|
72470
|
+
}
|
|
72471
|
+
});
|
|
72472
|
+
Object.defineProperty(exports, "SECRET_CLEAR", {
|
|
72473
|
+
enumerable: true,
|
|
72474
|
+
get: function() {
|
|
72475
|
+
return SECRET_CLEAR;
|
|
72476
|
+
}
|
|
72477
|
+
});
|
|
72478
|
+
Object.defineProperty(exports, "SSO_STATE_COOKIE", {
|
|
72479
|
+
enumerable: true,
|
|
72480
|
+
get: function() {
|
|
72481
|
+
return SSO_STATE_COOKIE;
|
|
72482
|
+
}
|
|
72483
|
+
});
|
|
72484
|
+
Object.defineProperty(exports, "__commonJSMin", {
|
|
72485
|
+
enumerable: true,
|
|
72486
|
+
get: function() {
|
|
72487
|
+
return __commonJSMin;
|
|
72488
|
+
}
|
|
72489
|
+
});
|
|
72490
|
+
Object.defineProperty(exports, "__esmMin", {
|
|
72491
|
+
enumerable: true,
|
|
72492
|
+
get: function() {
|
|
72493
|
+
return __esmMin;
|
|
72494
|
+
}
|
|
72495
|
+
});
|
|
72496
|
+
Object.defineProperty(exports, "__exportAll", {
|
|
72497
|
+
enumerable: true,
|
|
72498
|
+
get: function() {
|
|
72499
|
+
return __exportAll;
|
|
72500
|
+
}
|
|
72501
|
+
});
|
|
72502
|
+
Object.defineProperty(exports, "__toCommonJS", {
|
|
72503
|
+
enumerable: true,
|
|
72504
|
+
get: function() {
|
|
72505
|
+
return __toCommonJS;
|
|
72506
|
+
}
|
|
72507
|
+
});
|
|
72508
|
+
Object.defineProperty(exports, "__toESM", {
|
|
72509
|
+
enumerable: true,
|
|
72510
|
+
get: function() {
|
|
72511
|
+
return __toESM;
|
|
72512
|
+
}
|
|
72513
|
+
});
|
|
72514
|
+
Object.defineProperty(exports, "addonRoutesCapability", {
|
|
72515
|
+
enumerable: true,
|
|
72516
|
+
get: function() {
|
|
72517
|
+
return addonRoutesCapability;
|
|
72518
|
+
}
|
|
72519
|
+
});
|
|
72520
|
+
Object.defineProperty(exports, "addonWidgetsSourceCapability", {
|
|
72521
|
+
enumerable: true,
|
|
72522
|
+
get: function() {
|
|
72523
|
+
return addonWidgetsSourceCapability;
|
|
72524
|
+
}
|
|
72525
|
+
});
|
|
72526
|
+
Object.defineProperty(exports, "advertisedHubOrigins", {
|
|
72527
|
+
enumerable: true,
|
|
72528
|
+
get: function() {
|
|
72529
|
+
return advertisedHubOrigins;
|
|
72530
|
+
}
|
|
72531
|
+
});
|
|
72532
|
+
Object.defineProperty(exports, "array", {
|
|
72533
|
+
enumerable: true,
|
|
72534
|
+
get: function() {
|
|
72535
|
+
return array;
|
|
72536
|
+
}
|
|
72537
|
+
});
|
|
72538
|
+
Object.defineProperty(exports, "arrayItemFieldPath", {
|
|
72539
|
+
enumerable: true,
|
|
72540
|
+
get: function() {
|
|
72541
|
+
return arrayItemFieldPath;
|
|
72542
|
+
}
|
|
72543
|
+
});
|
|
72544
|
+
Object.defineProperty(exports, "authProviderCapability", {
|
|
72545
|
+
enumerable: true,
|
|
72546
|
+
get: function() {
|
|
72547
|
+
return authProviderCapability;
|
|
72548
|
+
}
|
|
72549
|
+
});
|
|
72550
|
+
Object.defineProperty(exports, "boolean", {
|
|
72551
|
+
enumerable: true,
|
|
72552
|
+
get: function() {
|
|
72553
|
+
return boolean;
|
|
72554
|
+
}
|
|
72555
|
+
});
|
|
72556
|
+
Object.defineProperty(exports, "buildAddonRouteProvider", {
|
|
72557
|
+
enumerable: true,
|
|
72558
|
+
get: function() {
|
|
72559
|
+
return buildAddonRouteProvider;
|
|
72560
|
+
}
|
|
72561
|
+
});
|
|
72562
|
+
Object.defineProperty(exports, "claimedRequestOrigins", {
|
|
72563
|
+
enumerable: true,
|
|
72564
|
+
get: function() {
|
|
72565
|
+
return claimedRequestOrigins;
|
|
72566
|
+
}
|
|
72567
|
+
});
|
|
72568
|
+
Object.defineProperty(exports, "errMsg", {
|
|
72569
|
+
enumerable: true,
|
|
72570
|
+
get: function() {
|
|
72571
|
+
return errMsg;
|
|
72572
|
+
}
|
|
72573
|
+
});
|
|
72574
|
+
Object.defineProperty(exports, "globalSecretScope", {
|
|
72575
|
+
enumerable: true,
|
|
72576
|
+
get: function() {
|
|
72577
|
+
return globalSecretScope;
|
|
72578
|
+
}
|
|
72579
|
+
});
|
|
72580
|
+
Object.defineProperty(exports, "isSecretClear", {
|
|
72581
|
+
enumerable: true,
|
|
72582
|
+
get: function() {
|
|
72583
|
+
return isSecretClear;
|
|
72584
|
+
}
|
|
72585
|
+
});
|
|
72586
|
+
Object.defineProperty(exports, "isSecretMarker", {
|
|
72587
|
+
enumerable: true,
|
|
72588
|
+
get: function() {
|
|
72589
|
+
return isSecretMarker;
|
|
72590
|
+
}
|
|
72591
|
+
});
|
|
72592
|
+
Object.defineProperty(exports, "loginMethodCapability", {
|
|
72593
|
+
enumerable: true,
|
|
72594
|
+
get: function() {
|
|
72595
|
+
return loginMethodCapability;
|
|
72596
|
+
}
|
|
72597
|
+
});
|
|
72598
|
+
Object.defineProperty(exports, "normalizeOrigin", {
|
|
72599
|
+
enumerable: true,
|
|
72600
|
+
get: function() {
|
|
72601
|
+
return normalizeOrigin;
|
|
72602
|
+
}
|
|
72603
|
+
});
|
|
72604
|
+
Object.defineProperty(exports, "number", {
|
|
72605
|
+
enumerable: true,
|
|
72606
|
+
get: function() {
|
|
72607
|
+
return number;
|
|
72608
|
+
}
|
|
72609
|
+
});
|
|
72610
|
+
Object.defineProperty(exports, "object", {
|
|
72611
|
+
enumerable: true,
|
|
72612
|
+
get: function() {
|
|
72613
|
+
return object;
|
|
72614
|
+
}
|
|
72615
|
+
});
|
|
72616
|
+
Object.defineProperty(exports, "oidcConnectionsCapability", {
|
|
72617
|
+
enumerable: true,
|
|
72618
|
+
get: function() {
|
|
72619
|
+
return oidcConnectionsCapability;
|
|
72620
|
+
}
|
|
72621
|
+
});
|
|
72622
|
+
Object.defineProperty(exports, "pickRequestOrigin", {
|
|
72623
|
+
enumerable: true,
|
|
72624
|
+
get: function() {
|
|
72625
|
+
return pickRequestOrigin;
|
|
72626
|
+
}
|
|
72627
|
+
});
|
|
72628
|
+
Object.defineProperty(exports, "requestMountPrefix", {
|
|
72629
|
+
enumerable: true,
|
|
72630
|
+
get: function() {
|
|
72631
|
+
return requestMountPrefix;
|
|
72632
|
+
}
|
|
72633
|
+
});
|
|
72634
|
+
Object.defineProperty(exports, "resolveIconKey", {
|
|
72635
|
+
enumerable: true,
|
|
72636
|
+
get: function() {
|
|
72637
|
+
return resolveIconKey;
|
|
72638
|
+
}
|
|
72639
|
+
});
|
|
72640
|
+
Object.defineProperty(exports, "string", {
|
|
72641
|
+
enumerable: true,
|
|
72642
|
+
get: function() {
|
|
72643
|
+
return string;
|
|
72644
|
+
}
|
|
72645
|
+
});
|
|
72646
|
+
Object.defineProperty(exports, "toSecretFieldView", {
|
|
72647
|
+
enumerable: true,
|
|
72648
|
+
get: function() {
|
|
72649
|
+
return toSecretFieldView;
|
|
72650
|
+
}
|
|
72651
|
+
});
|
|
72652
|
+
Object.defineProperty(exports, "userPasskeysCapability", {
|
|
72653
|
+
enumerable: true,
|
|
72654
|
+
get: function() {
|
|
72655
|
+
return userPasskeysCapability;
|
|
72656
|
+
}
|
|
72657
|
+
});
|