@camstack/system 1.2.427 → 1.2.429
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/agent-https-names-CpUSuP4w.js +120 -0
- package/dist/agent-https-names-uetr4OQl.mjs +91 -0
- package/dist/auth/auth-audit-log.d.ts +1 -1
- package/dist/auth/device-ca-store.d.ts +57 -0
- package/dist/auth/device-ca.d.ts +75 -0
- package/dist/auth/device-credential-manager.d.ts +154 -0
- package/dist/auth/login-session-manager.d.ts +14 -2
- package/dist/auth/user-management-internal.d.ts +10 -1
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
- package/dist/builtins/alerts/alerts.addon.js +1 -1
- package/dist/builtins/alerts/alerts.addon.mjs +1 -1
- package/dist/builtins/autotrack/index.js +1 -1
- package/dist/builtins/autotrack/index.mjs +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +2 -2
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +2 -2
- package/dist/builtins/calendars/calendars.addon.js +1 -1
- package/dist/builtins/calendars/calendars.addon.mjs +1 -1
- package/dist/builtins/camera-grid/index.js +1 -1
- package/dist/builtins/camera-grid/index.mjs +1 -1
- package/dist/builtins/composer/composer.addon.js +2 -2
- package/dist/builtins/composer/composer.addon.mjs +2 -2
- package/dist/builtins/console-logging/index.js +1 -1
- package/dist/builtins/console-logging/index.mjs +1 -1
- package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
- package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
- package/dist/builtins/device-manager/device-manager.addon.js +2 -2
- package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
- package/dist/builtins/hub-forwarder/index.js +1 -1
- package/dist/builtins/hub-forwarder/index.mjs +1 -1
- package/dist/builtins/keychain/index.js +10 -6
- package/dist/builtins/keychain/index.mjs +8 -4
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
- package/dist/builtins/local-auth/local-auth.addon.d.ts +6 -0
- package/dist/builtins/local-auth/local-auth.addon.js +955 -47
- package/dist/builtins/local-auth/local-auth.addon.mjs +946 -41
- package/dist/builtins/local-network/local-network.addon.js +2 -2
- package/dist/builtins/local-network/local-network.addon.mjs +2 -2
- package/dist/builtins/loki-logging/index.js +1 -1
- package/dist/builtins/loki-logging/index.mjs +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
- package/dist/builtins/platform-probe/index.js +1 -1
- package/dist/builtins/platform-probe/index.mjs +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
- package/dist/builtins/snapshot/index.js +1 -1
- package/dist/builtins/snapshot/index.mjs +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
- package/dist/builtins/sqlite-storage/index.js +1 -1
- package/dist/builtins/sqlite-storage/index.mjs +1 -1
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +3 -3
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +3 -3
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
- package/dist/builtins/system-config/system-config.addon.d.ts +18 -0
- package/dist/builtins/system-config/system-config.addon.js +834 -18
- package/dist/builtins/system-config/system-config.addon.mjs +819 -19
- package/dist/builtins/winston-logging/index.js +1 -1
- package/dist/builtins/winston-logging/index.mjs +1 -1
- package/dist/{composition-sources-DvCGZEUI.js → composition-sources-C2VNX6tF.js} +1 -1
- package/dist/{composition-sources-BQNxXQZG.mjs → composition-sources-SYtYuAgh.mjs} +1 -1
- package/dist/{constants-CR4If_lP.mjs → constants-CKuWoWvc.mjs} +1 -1
- package/dist/{constants-CCSJGnjs.js → constants-RI-hGP5S.js} +1 -1
- package/dist/device-ca-BWfdDB3k.js +462 -0
- package/dist/device-ca-R7DKKZL6.mjs +355 -0
- package/dist/{dist-BQG3QFg7.js → dist-Bgy_AmwX.js} +554 -0
- package/dist/{dist-DHSJV4Qc.mjs → dist-CSSfTM18.mjs} +507 -1
- package/dist/file-host-worker.js +1 -1
- package/dist/file-host-worker.mjs +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.js +59 -12
- package/dist/index.mjs +10 -9
- package/dist/kernel/index.d.ts +2 -2
- package/dist/kernel/moleculer/mesh-mtls/index.d.ts +4 -1
- package/dist/kernel/moleculer/mesh-mtls/mesh-certificate-registry.d.ts +91 -0
- package/dist/kernel/moleculer/mesh-mtls/mesh-enroll.d.ts +4 -0
- package/dist/kernel/moleculer/mesh-mtls/mesh-peer-transport.d.ts +23 -0
- package/dist/kernel/moleculer/mesh-mtls/mesh-renewal.d.ts +126 -0
- package/dist/kernel/moleculer/mesh-mtls/mesh-tls-gate.d.ts +40 -0
- package/dist/kernel/moleculer/mesh-mtls/tls-tcp-transporter.d.ts +15 -0
- package/dist/{restore-archive-DH1Pxq_1.mjs → restore-archive-AIwMHO5_.mjs} +1 -1
- package/dist/{restore-archive-Dccm8lkA.js → restore-archive-BYUEMsog.js} +1 -1
- package/dist/{retired-settings-keys-BfGaSeQI.js → retired-settings-keys-BTPkRLTS.js} +1 -1
- package/dist/{retired-settings-keys-CPz7zpza.mjs → retired-settings-keys-H0rYXT27.mjs} +1 -1
- package/dist/tls/agent-https-names.d.ts +27 -0
- package/dist/tls/agent-https.d.ts +111 -0
- package/dist/tls/cert-issue.d.ts +7 -0
- package/dist/tls/index.d.ts +3 -0
- package/dist/{tls-BgImdxCO.js → tls-C5IYg3V5.js} +406 -0
- package/dist/{tls-CaOLZ09W.mjs → tls-CpcGkeJV.mjs} +314 -4
- package/dist/{wal-maintenance-DItkuOvu.js → wal-maintenance-BSGsxKW7.js} +0 -0
- package/dist/{wal-maintenance-Drqhcjit.mjs → wal-maintenance-DW0FfGV7.mjs} +0 -0
- package/package.json +4 -1
- package/dist/jwt-signing-key-BZm055IP.js +0 -174
- package/dist/jwt-signing-key-DL-qk1SM.mjs +0 -127
|
@@ -9769,6 +9769,206 @@ function scopesAllowAddon(scopes, addonId, access) {
|
|
|
9769
9769
|
return scopes.some((s) => s.type === "addon" && s.target === addonId && s.access.includes(access));
|
|
9770
9770
|
}
|
|
9771
9771
|
/**
|
|
9772
|
+
* Device certificates (D855) — the wire contract shared by the hub, the admin
|
|
9773
|
+
* UI and the native viewer.
|
|
9774
|
+
*
|
|
9775
|
+
* A device (a phone) generates its OWN P-256 key pair in hardware (Secure
|
|
9776
|
+
* Enclave / Android Keystore / a non-extractable WebCrypto key). The private
|
|
9777
|
+
* key never travels. The hub signs the PUBLIC key into an X.509 leaf under a
|
|
9778
|
+
* dedicated device CA; the device later proves possession of the key by
|
|
9779
|
+
* signing a hub-issued nonce, and the hub answers with the same session a
|
|
9780
|
+
* password login opens.
|
|
9781
|
+
*
|
|
9782
|
+
* Everything on the wire is a small string (a PEM, a base64url signature):
|
|
9783
|
+
* D613 is about bulk bytes, and a certificate is ~600 bytes.
|
|
9784
|
+
*/
|
|
9785
|
+
/** Signature algorithm of every device credential: ECDSA, curve P-256, SHA-256. */
|
|
9786
|
+
var DEVICE_CERT_SIGNATURE = "ecdsa-p256-sha256";
|
|
9787
|
+
/** First line of every signed message; a change of format bumps the version. */
|
|
9788
|
+
var DEVICE_SIGNATURE_MESSAGE_VERSION = "camstack-device-cert-v1";
|
|
9789
|
+
z.enum([
|
|
9790
|
+
"login",
|
|
9791
|
+
"renew",
|
|
9792
|
+
"revoke"
|
|
9793
|
+
]);
|
|
9794
|
+
/** One-shot enrollment code and login nonce lifetimes. */
|
|
9795
|
+
var DEVICE_ENROLLMENT_TTL_MS = 10 * 6e4;
|
|
9796
|
+
var DEVICE_NONCE_TTL_MS = 6e4;
|
|
9797
|
+
/** SAN URI prefixes of a device leaf. */
|
|
9798
|
+
var DEVICE_SAN_CREDENTIAL_PREFIX = "camstack:credential:";
|
|
9799
|
+
var DEVICE_SAN_USER_PREFIX = "camstack:user:";
|
|
9800
|
+
/**
|
|
9801
|
+
* The exact bytes a device signs (UTF-8, `\n` separators, no trailing newline):
|
|
9802
|
+
*
|
|
9803
|
+
* camstack-device-cert-v1
|
|
9804
|
+
* <login|renew>
|
|
9805
|
+
* <origin> the hub origin returned by `getDeviceChallenge`
|
|
9806
|
+
* <nonce>
|
|
9807
|
+
*
|
|
9808
|
+
* The origin is part of the message so a signature collected by a look-alike
|
|
9809
|
+
* hub is worthless on the real one; the hub additionally binds the nonce to
|
|
9810
|
+
* the origin it issued it for and refuses any other.
|
|
9811
|
+
*/
|
|
9812
|
+
function buildDeviceSignatureMessage(input) {
|
|
9813
|
+
return [
|
|
9814
|
+
DEVICE_SIGNATURE_MESSAGE_VERSION,
|
|
9815
|
+
input.purpose,
|
|
9816
|
+
input.origin,
|
|
9817
|
+
input.nonce
|
|
9818
|
+
].join("\n");
|
|
9819
|
+
}
|
|
9820
|
+
/** The deep link a QR carries: `camstack://enroll?hub=<origin>&code=<code>`. */
|
|
9821
|
+
function buildDeviceEnrollmentLink(input) {
|
|
9822
|
+
const query = new URLSearchParams();
|
|
9823
|
+
if (input.hub !== void 0) query.set("hub", input.hub);
|
|
9824
|
+
query.set("code", input.code);
|
|
9825
|
+
return `${input.scheme ?? "camstack"}://enroll?${query.toString()}`;
|
|
9826
|
+
}
|
|
9827
|
+
var DevicePlatformSchema = z.enum([
|
|
9828
|
+
"ios",
|
|
9829
|
+
"android",
|
|
9830
|
+
"web",
|
|
9831
|
+
"other"
|
|
9832
|
+
]);
|
|
9833
|
+
var Base64UrlSchema = z.string().min(1).max(4096).regex(/^[A-Za-z0-9_-]+$/);
|
|
9834
|
+
var PemSchema = z.string().min(1).max(16384);
|
|
9835
|
+
/**
|
|
9836
|
+
* Why a device-certificate endpoint said no. Distinct from a transport / 5xx
|
|
9837
|
+
* failure: those carry no reason and mean "try again", never "the credential is
|
|
9838
|
+
* dead". The viewer switches on this exhaustively.
|
|
9839
|
+
*/
|
|
9840
|
+
var DeviceRefusalReasonSchema = z.enum([
|
|
9841
|
+
"revoked",
|
|
9842
|
+
"unknown-credential",
|
|
9843
|
+
"expired",
|
|
9844
|
+
"bad-signature",
|
|
9845
|
+
"nonce-invalid",
|
|
9846
|
+
"rate-limited",
|
|
9847
|
+
"invalid-certificate",
|
|
9848
|
+
"superseded",
|
|
9849
|
+
"user-gone",
|
|
9850
|
+
"unavailable",
|
|
9851
|
+
"code-invalid",
|
|
9852
|
+
"self-enrollment-disabled",
|
|
9853
|
+
"step-up-required",
|
|
9854
|
+
"bad-public-key"
|
|
9855
|
+
]);
|
|
9856
|
+
var DeviceRefusalSchema = z.object({
|
|
9857
|
+
ok: z.literal(false),
|
|
9858
|
+
reason: DeviceRefusalReasonSchema,
|
|
9859
|
+
definitive: z.boolean(),
|
|
9860
|
+
retryAfterSeconds: z.number().optional()
|
|
9861
|
+
});
|
|
9862
|
+
z.object({
|
|
9863
|
+
code: z.string().min(1).max(256),
|
|
9864
|
+
/** SubjectPublicKeyInfo DER of the device's P-256 public key, base64url. */
|
|
9865
|
+
publicKeySpki: Base64UrlSchema,
|
|
9866
|
+
deviceName: z.string().min(1).max(80).optional(),
|
|
9867
|
+
platform: DevicePlatformSchema
|
|
9868
|
+
});
|
|
9869
|
+
var CompleteEnrollmentOutputSchema = z.object({
|
|
9870
|
+
credentialId: z.string(),
|
|
9871
|
+
certPem: PemSchema,
|
|
9872
|
+
/** The device CA certificate the leaf chains to. */
|
|
9873
|
+
chainPem: PemSchema,
|
|
9874
|
+
notAfter: z.number(),
|
|
9875
|
+
user: z.object({
|
|
9876
|
+
id: z.string(),
|
|
9877
|
+
username: z.string()
|
|
9878
|
+
})
|
|
9879
|
+
});
|
|
9880
|
+
z.discriminatedUnion("ok", [CompleteEnrollmentOutputSchema.extend({ ok: z.literal(true) }), DeviceRefusalSchema]);
|
|
9881
|
+
z.object({
|
|
9882
|
+
/** The single-use step-up proof (`auth.deviceEnrollProofFrom…`). */
|
|
9883
|
+
proof: z.string().min(1).max(512),
|
|
9884
|
+
publicKeySpki: Base64UrlSchema,
|
|
9885
|
+
deviceName: z.string().min(1).max(80),
|
|
9886
|
+
platform: DevicePlatformSchema
|
|
9887
|
+
});
|
|
9888
|
+
z.object({
|
|
9889
|
+
proof: z.string(),
|
|
9890
|
+
expiresAt: z.number()
|
|
9891
|
+
});
|
|
9892
|
+
var DeviceChallengeSchema = z.object({
|
|
9893
|
+
nonce: z.string(),
|
|
9894
|
+
/** The origin to put in the signed message. The app compares it to the hub it dialled. */
|
|
9895
|
+
origin: z.string(),
|
|
9896
|
+
expiresAt: z.number(),
|
|
9897
|
+
signature: z.literal(DEVICE_CERT_SIGNATURE)
|
|
9898
|
+
});
|
|
9899
|
+
z.discriminatedUnion("ok", [DeviceChallengeSchema.extend({ ok: z.literal(true) }), DeviceRefusalSchema]);
|
|
9900
|
+
z.object({
|
|
9901
|
+
certPem: PemSchema,
|
|
9902
|
+
nonce: z.string().min(1).max(256),
|
|
9903
|
+
/** ECDSA P-256 SHA-256 over {@link buildDeviceSignatureMessage}; raw r||s or DER, base64url. */
|
|
9904
|
+
signature: Base64UrlSchema
|
|
9905
|
+
});
|
|
9906
|
+
var RenewDeviceCertificateOutputSchema = z.object({
|
|
9907
|
+
credentialId: z.string(),
|
|
9908
|
+
certPem: PemSchema,
|
|
9909
|
+
chainPem: PemSchema,
|
|
9910
|
+
notAfter: z.number()
|
|
9911
|
+
});
|
|
9912
|
+
z.discriminatedUnion("ok", [RenewDeviceCertificateOutputSchema.extend({ ok: z.literal(true) }), DeviceRefusalSchema]);
|
|
9913
|
+
z.discriminatedUnion("ok", [z.object({
|
|
9914
|
+
ok: z.literal(true),
|
|
9915
|
+
credentialId: z.string(),
|
|
9916
|
+
sessionsEnded: z.number().int()
|
|
9917
|
+
}), DeviceRefusalSchema]);
|
|
9918
|
+
function formatDeviceRevoker(revoker) {
|
|
9919
|
+
return revoker.kind === "device" ? "device" : `${revoker.kind}:${revoker.userId}`;
|
|
9920
|
+
}
|
|
9921
|
+
var DeviceCredentialStatusSchema = z.enum([
|
|
9922
|
+
"active",
|
|
9923
|
+
"expired",
|
|
9924
|
+
"revoked"
|
|
9925
|
+
]);
|
|
9926
|
+
var DeviceCredentialSchema = z.object({
|
|
9927
|
+
id: z.string(),
|
|
9928
|
+
userId: z.string(),
|
|
9929
|
+
username: z.string().nullable(),
|
|
9930
|
+
deviceName: z.string(),
|
|
9931
|
+
platform: DevicePlatformSchema,
|
|
9932
|
+
enrolledVia: z.enum(["qr", "self"]),
|
|
9933
|
+
/** SHA-256 of the leaf certificate DER, colon-hex. */
|
|
9934
|
+
fingerprint: z.string(),
|
|
9935
|
+
issuedAt: z.number(),
|
|
9936
|
+
expiresAt: z.number(),
|
|
9937
|
+
lastUsedAt: z.number().nullable(),
|
|
9938
|
+
lastUsedFrom: z.string().nullable(),
|
|
9939
|
+
revokedAt: z.number().nullable(),
|
|
9940
|
+
/** `admin:<userId>` | `user:<userId>` | `device` | `user-deleted`. */
|
|
9941
|
+
revokedBy: z.string().nullable(),
|
|
9942
|
+
status: DeviceCredentialStatusSchema
|
|
9943
|
+
});
|
|
9944
|
+
var StartEnrollmentOutputSchema = z.object({
|
|
9945
|
+
/** Shown once; only its hash is kept. */
|
|
9946
|
+
code: z.string(),
|
|
9947
|
+
expiresAt: z.number(),
|
|
9948
|
+
/** `camstack://enroll?hub=…&code=…` — what the QR encodes. */
|
|
9949
|
+
enrollUrl: z.string(),
|
|
9950
|
+
/** The hub origin in the link, or `null` when the hub could not name one (the link then has no `hub`). */
|
|
9951
|
+
hubOrigin: z.string().nullable(),
|
|
9952
|
+
/** Every origin the apps may try (role `appConnections`). */
|
|
9953
|
+
hubOrigins: z.array(z.string())
|
|
9954
|
+
});
|
|
9955
|
+
z.object({
|
|
9956
|
+
kind: z.literal("device-certificate"),
|
|
9957
|
+
id: z.literal("device-certificate"),
|
|
9958
|
+
label: z.string(),
|
|
9959
|
+
stage: z.literal("primary"),
|
|
9960
|
+
/** tRPC paths under the hub's `auth` router, so a client names no literal. */
|
|
9961
|
+
challengePath: z.literal("auth.getDeviceChallenge"),
|
|
9962
|
+
revokePath: z.literal("auth.revokeOwnDeviceCertificate"),
|
|
9963
|
+
enrollSelfPath: z.literal("auth.enrollSelf"),
|
|
9964
|
+
loginPath: z.literal("auth.loginWithDeviceCertificate"),
|
|
9965
|
+
renewPath: z.literal("auth.renewDeviceCertificate"),
|
|
9966
|
+
signature: z.literal(DEVICE_CERT_SIGNATURE),
|
|
9967
|
+
messageVersion: z.literal(DEVICE_SIGNATURE_MESSAGE_VERSION),
|
|
9968
|
+
/** Which clients can execute it: a native app silently, a browser with a non-extractable WebCrypto key. */
|
|
9969
|
+
clients: z.array(z.enum(["native", "web"]))
|
|
9970
|
+
});
|
|
9971
|
+
/**
|
|
9772
9972
|
* What an expression's named bindings READ from.
|
|
9773
9973
|
*
|
|
9774
9974
|
* Salvaged verbatim from the deleted device-link mechanism. Wiring's source
|
|
@@ -16009,6 +16209,220 @@ var keychainCapability = {
|
|
|
16009
16209
|
getState: method(z.object({}), KeychainStateSchema, { auth: "admin" })
|
|
16010
16210
|
}
|
|
16011
16211
|
};
|
|
16212
|
+
var DeviceCaStatusSchema = z.discriminatedUnion("state", [
|
|
16213
|
+
z.object({ state: z.literal("absent") }),
|
|
16214
|
+
z.object({
|
|
16215
|
+
state: z.literal("ready"),
|
|
16216
|
+
subject: z.string(),
|
|
16217
|
+
fingerprintSha256: z.string(),
|
|
16218
|
+
validTo: z.string()
|
|
16219
|
+
}),
|
|
16220
|
+
z.object({
|
|
16221
|
+
state: z.literal("unavailable"),
|
|
16222
|
+
reason: z.string()
|
|
16223
|
+
})
|
|
16224
|
+
]);
|
|
16225
|
+
var DeviceCertificateSettingsSchema = z.object({ selfEnrollment: z.enum(["allowed", "disabled"]) });
|
|
16226
|
+
/**
|
|
16227
|
+
* `device-credentials` — the admin surface of device certificates (D855).
|
|
16228
|
+
*
|
|
16229
|
+
* Everything a device does ITSELF — completing an enrollment, getting a
|
|
16230
|
+
* challenge, signing in, renewing — is a PUBLIC procedure of the hub's `auth`
|
|
16231
|
+
* router (`auth.completeEnrollment`, `getDeviceChallenge`,
|
|
16232
|
+
* `loginWithDeviceCertificate`, `renewDeviceCertificate`): those legs are
|
|
16233
|
+
* proofs of possession, not capability calls, and must not be reachable as
|
|
16234
|
+
* cap methods. This cap holds only what an operator does about them.
|
|
16235
|
+
*
|
|
16236
|
+
* Provider: `local-auth`, which also owns the device CA and the registry.
|
|
16237
|
+
* The hub is the only node that persists device credentials.
|
|
16238
|
+
*/
|
|
16239
|
+
var deviceCredentialsCapability = {
|
|
16240
|
+
name: "device-credentials",
|
|
16241
|
+
scope: "system",
|
|
16242
|
+
mode: "singleton",
|
|
16243
|
+
methods: {
|
|
16244
|
+
/**
|
|
16245
|
+
* Every enrolled device, newest first; `userId` narrows to one user.
|
|
16246
|
+
* `status` is derived: revoked wins over expired.
|
|
16247
|
+
*/
|
|
16248
|
+
listDeviceCredentials: method(z.object({
|
|
16249
|
+
userId: z.string().min(1).optional(),
|
|
16250
|
+
includeRevoked: z.boolean().default(false)
|
|
16251
|
+
}), z.array(DeviceCredentialSchema).readonly(), { auth: "admin" }),
|
|
16252
|
+
/**
|
|
16253
|
+
* Mint a one-shot enrollment code for `userId` and a device name: 128-bit
|
|
16254
|
+
* random, single use, 10 minutes, kept only as a hash. Returns the code
|
|
16255
|
+
* once, with the `camstack://enroll?hub=…&code=…` link a QR carries.
|
|
16256
|
+
* `caller` (the admin) is recorded in the audit trail.
|
|
16257
|
+
*/
|
|
16258
|
+
startEnrollment: method(z.object({
|
|
16259
|
+
userId: z.string().min(1),
|
|
16260
|
+
deviceName: z.string().min(1).max(80)
|
|
16261
|
+
}), StartEnrollmentOutputSchema, {
|
|
16262
|
+
kind: "mutation",
|
|
16263
|
+
auth: "admin",
|
|
16264
|
+
caller: "required"
|
|
16265
|
+
}),
|
|
16266
|
+
/**
|
|
16267
|
+
* Revoke a credential: its certificate stops logging in at once, and every
|
|
16268
|
+
* session it opened ends (an open session also dies at its next refresh
|
|
16269
|
+
* even if this call raced it). Idempotent.
|
|
16270
|
+
*/
|
|
16271
|
+
revokeDeviceCredential: method(z.object({ id: z.string().min(1) }), z.object({
|
|
16272
|
+
revoked: z.boolean(),
|
|
16273
|
+
sessionsEnded: z.number().int(),
|
|
16274
|
+
status: DeviceCredentialStatusSchema
|
|
16275
|
+
}), {
|
|
16276
|
+
kind: "mutation",
|
|
16277
|
+
auth: "admin",
|
|
16278
|
+
caller: "required"
|
|
16279
|
+
}),
|
|
16280
|
+
/**
|
|
16281
|
+
* Hub-wide device-certificate settings. `selfEnrollment`: `allowed`
|
|
16282
|
+
* (default) lets a signed-in user enroll their own device after a step-up
|
|
16283
|
+
* sign-in; `disabled` makes `auth.enrollSelf` refuse. The admin QR path is
|
|
16284
|
+
* unaffected. Hub-wide only (no per-role switch).
|
|
16285
|
+
*/
|
|
16286
|
+
getDeviceCertificateSettings: method(z.object({}), DeviceCertificateSettingsSchema, { auth: "admin" }),
|
|
16287
|
+
setDeviceCertificateSettings: method(DeviceCertificateSettingsSchema, DeviceCertificateSettingsSchema, {
|
|
16288
|
+
kind: "mutation",
|
|
16289
|
+
auth: "admin"
|
|
16290
|
+
}),
|
|
16291
|
+
/**
|
|
16292
|
+
* Delete the registry row of a REVOKED credential (clean-up; the audit trail
|
|
16293
|
+
* keeps the revocation). Refuses a live credential: revoke it first. After
|
|
16294
|
+
* the row is gone the device's next call answers `unknown-credential`.
|
|
16295
|
+
*/
|
|
16296
|
+
deleteDeviceCredential: method(z.object({ id: z.string().min(1) }), z.object({ result: z.enum([
|
|
16297
|
+
"deleted",
|
|
16298
|
+
"live",
|
|
16299
|
+
"unknown"
|
|
16300
|
+
]) }), {
|
|
16301
|
+
kind: "mutation",
|
|
16302
|
+
auth: "admin",
|
|
16303
|
+
caller: "required"
|
|
16304
|
+
}),
|
|
16305
|
+
/**
|
|
16306
|
+
* The device CA: `absent` until the first enrollment creates it (lazily,
|
|
16307
|
+
* never rotated on boot), `unavailable` while the keychain cannot answer.
|
|
16308
|
+
*/
|
|
16309
|
+
getDeviceCaStatus: method(z.object({}), DeviceCaStatusSchema, { auth: "admin" }),
|
|
16310
|
+
/** Rename a credential (the label only; the certificate is unchanged). */
|
|
16311
|
+
renameDeviceCredential: method(z.object({
|
|
16312
|
+
id: z.string().min(1),
|
|
16313
|
+
deviceName: z.string().min(1).max(80)
|
|
16314
|
+
}), z.object({ renamed: z.boolean() }), {
|
|
16315
|
+
kind: "mutation",
|
|
16316
|
+
auth: "admin"
|
|
16317
|
+
})
|
|
16318
|
+
}
|
|
16319
|
+
};
|
|
16320
|
+
/**
|
|
16321
|
+
* `node-certificates` - what a node holds and the two renewals the hub drives
|
|
16322
|
+
* (D856): the node's MESH leaf (mutual TLS to the hub) and its HTTPS leaf (issued
|
|
16323
|
+
* from the hub's local CA so a device that trusts the hub root trusts the node).
|
|
16324
|
+
*
|
|
16325
|
+
* Provided by the AGENT RUNTIME (the synthetic `agent-runtime` addon id, like
|
|
16326
|
+
* `server-management`): the hub reaches it through the ordinary node-pinned
|
|
16327
|
+
* capability call - no new Moleculer action. The hub's own certificates are
|
|
16328
|
+
* handled in-process by the hub (`certificates` router), so this cap has no hub
|
|
16329
|
+
* provider.
|
|
16330
|
+
*
|
|
16331
|
+
* No private key ever crosses the mesh: the node generates its key pair, sends a
|
|
16332
|
+
* CSR, and the hub returns only the signed certificate.
|
|
16333
|
+
*/
|
|
16334
|
+
var MeshLeafInfoSchema = z.object({
|
|
16335
|
+
cn: z.string(),
|
|
16336
|
+
serial: z.string(),
|
|
16337
|
+
fingerprintSha256: z.string(),
|
|
16338
|
+
notBefore: z.number(),
|
|
16339
|
+
notAfter: z.number()
|
|
16340
|
+
});
|
|
16341
|
+
var HttpsLeafInfoSchema = z.object({
|
|
16342
|
+
fingerprintSha256: z.string(),
|
|
16343
|
+
issuer: z.string(),
|
|
16344
|
+
sans: z.array(z.string()),
|
|
16345
|
+
notBefore: z.number(),
|
|
16346
|
+
notAfter: z.number()
|
|
16347
|
+
});
|
|
16348
|
+
var NodeHttpsStateSchema = z.discriminatedUnion("state", [z.object({
|
|
16349
|
+
state: z.literal("served"),
|
|
16350
|
+
leaf: HttpsLeafInfoSchema
|
|
16351
|
+
}), z.object({
|
|
16352
|
+
state: z.literal("not-issued"),
|
|
16353
|
+
reason: z.string()
|
|
16354
|
+
})]);
|
|
16355
|
+
var nodeCertificatesCapability = {
|
|
16356
|
+
name: "node-certificates",
|
|
16357
|
+
scope: "system",
|
|
16358
|
+
mode: "singleton",
|
|
16359
|
+
internal: true,
|
|
16360
|
+
methods: {
|
|
16361
|
+
/** The node's current mesh leaf (`null` when it is not enrolled on mTLS) and HTTPS state. */
|
|
16362
|
+
getCertificates: method(z.object({}), z.object({
|
|
16363
|
+
nodeId: z.string(),
|
|
16364
|
+
mesh: MeshLeafInfoSchema.nullable(),
|
|
16365
|
+
https: NodeHttpsStateSchema
|
|
16366
|
+
}), { auth: "admin" }),
|
|
16367
|
+
/** Generate a NEW mesh key pair on the node; return the CSR (CN = node id). The key stays here. */
|
|
16368
|
+
prepareMeshRenewal: method(z.object({}), z.object({ csrPem: z.string() }), {
|
|
16369
|
+
kind: "mutation",
|
|
16370
|
+
auth: "admin"
|
|
16371
|
+
}),
|
|
16372
|
+
/**
|
|
16373
|
+
* Install the hub-signed leaf for the key made by `prepareMeshRenewal`: persist it
|
|
16374
|
+
* (keeping the previous one), then reconnect to the hub with it. The node reverts to
|
|
16375
|
+
* the previous leaf by itself unless `confirmMeshLeaf` arrives within `confirmWithinMs`.
|
|
16376
|
+
*/
|
|
16377
|
+
installMeshLeaf: method(z.object({
|
|
16378
|
+
certPem: z.string().min(1),
|
|
16379
|
+
caCertPem: z.string().min(1),
|
|
16380
|
+
confirmWithinMs: z.number().int().min(1e4).max(6e5)
|
|
16381
|
+
}), z.object({
|
|
16382
|
+
fingerprintSha256: z.string(),
|
|
16383
|
+
serial: z.string()
|
|
16384
|
+
}), {
|
|
16385
|
+
kind: "mutation",
|
|
16386
|
+
auth: "admin"
|
|
16387
|
+
}),
|
|
16388
|
+
/** The hub saw the node reconnect with the new leaf: keep it, forget the previous one. */
|
|
16389
|
+
confirmMeshLeaf: method(z.object({ fingerprintSha256: z.string() }), z.object({ confirmed: z.boolean() }), {
|
|
16390
|
+
kind: "mutation",
|
|
16391
|
+
auth: "admin"
|
|
16392
|
+
}),
|
|
16393
|
+
/** Go back to the previous leaf now. `false` when there is none to go back to. */
|
|
16394
|
+
rollbackMeshLeaf: method(z.object({}), z.object({ rolledBack: z.boolean() }), {
|
|
16395
|
+
kind: "mutation",
|
|
16396
|
+
auth: "admin"
|
|
16397
|
+
}),
|
|
16398
|
+
/** A key pair + CSR for the node's HTTPS leaf, and the names the node reports for itself. */
|
|
16399
|
+
prepareHttpsCertificate: method(z.object({}), z.object({
|
|
16400
|
+
csrPem: z.string(),
|
|
16401
|
+
hostnames: z.array(z.string()),
|
|
16402
|
+
addresses: z.array(z.string()),
|
|
16403
|
+
/** SHA-256 of the hub local CA this node pinned at its first install; `null` before one. */
|
|
16404
|
+
pinnedCaFingerprintSha256: z.string().nullable()
|
|
16405
|
+
}), {
|
|
16406
|
+
kind: "mutation",
|
|
16407
|
+
auth: "admin"
|
|
16408
|
+
}),
|
|
16409
|
+
/** Install the hub-signed HTTPS leaf and hot-swap the serving context (no restart). */
|
|
16410
|
+
installHttpsCertificate: method(z.object({
|
|
16411
|
+
certPem: z.string().min(1),
|
|
16412
|
+
caCertPem: z.string().min(1),
|
|
16413
|
+
/**
|
|
16414
|
+
* The hub signals that its local CA was rotated (D227) and this leaf chains to the NEW
|
|
16415
|
+
* one. Only the hub, over the authenticated mesh, can say so; a leaf with a different CA
|
|
16416
|
+
* and no signal is refused.
|
|
16417
|
+
*/
|
|
16418
|
+
caRotation: z.boolean().optional()
|
|
16419
|
+
}), HttpsLeafInfoSchema, {
|
|
16420
|
+
kind: "mutation",
|
|
16421
|
+
auth: "admin"
|
|
16422
|
+
})
|
|
16423
|
+
},
|
|
16424
|
+
mount: { kind: "skip" }
|
|
16425
|
+
};
|
|
16012
16426
|
/**
|
|
16013
16427
|
* `keychain-admin` — the operator's view of the keychain (System → Secrets).
|
|
16014
16428
|
*
|
|
@@ -73219,6 +73633,54 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
73219
73633
|
addonId: null,
|
|
73220
73634
|
access: "create"
|
|
73221
73635
|
},
|
|
73636
|
+
"deviceCredentials.deleteDeviceCredential": {
|
|
73637
|
+
capName: "device-credentials",
|
|
73638
|
+
capScope: "system",
|
|
73639
|
+
addonId: null,
|
|
73640
|
+
access: "delete"
|
|
73641
|
+
},
|
|
73642
|
+
"deviceCredentials.getDeviceCaStatus": {
|
|
73643
|
+
capName: "device-credentials",
|
|
73644
|
+
capScope: "system",
|
|
73645
|
+
addonId: null,
|
|
73646
|
+
access: "view"
|
|
73647
|
+
},
|
|
73648
|
+
"deviceCredentials.getDeviceCertificateSettings": {
|
|
73649
|
+
capName: "device-credentials",
|
|
73650
|
+
capScope: "system",
|
|
73651
|
+
addonId: null,
|
|
73652
|
+
access: "view"
|
|
73653
|
+
},
|
|
73654
|
+
"deviceCredentials.listDeviceCredentials": {
|
|
73655
|
+
capName: "device-credentials",
|
|
73656
|
+
capScope: "system",
|
|
73657
|
+
addonId: null,
|
|
73658
|
+
access: "view"
|
|
73659
|
+
},
|
|
73660
|
+
"deviceCredentials.renameDeviceCredential": {
|
|
73661
|
+
capName: "device-credentials",
|
|
73662
|
+
capScope: "system",
|
|
73663
|
+
addonId: null,
|
|
73664
|
+
access: "create"
|
|
73665
|
+
},
|
|
73666
|
+
"deviceCredentials.revokeDeviceCredential": {
|
|
73667
|
+
capName: "device-credentials",
|
|
73668
|
+
capScope: "system",
|
|
73669
|
+
addonId: null,
|
|
73670
|
+
access: "delete"
|
|
73671
|
+
},
|
|
73672
|
+
"deviceCredentials.setDeviceCertificateSettings": {
|
|
73673
|
+
capName: "device-credentials",
|
|
73674
|
+
capScope: "system",
|
|
73675
|
+
addonId: null,
|
|
73676
|
+
access: "create"
|
|
73677
|
+
},
|
|
73678
|
+
"deviceCredentials.startEnrollment": {
|
|
73679
|
+
capName: "device-credentials",
|
|
73680
|
+
capScope: "system",
|
|
73681
|
+
addonId: null,
|
|
73682
|
+
access: "create"
|
|
73683
|
+
},
|
|
73222
73684
|
"deviceDiscovery.adoptDevice": {
|
|
73223
73685
|
capName: "device-discovery",
|
|
73224
73686
|
capScope: "device",
|
|
@@ -75379,6 +75841,48 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
75379
75841
|
addonId: null,
|
|
75380
75842
|
access: "create"
|
|
75381
75843
|
},
|
|
75844
|
+
"nodeCertificates.confirmMeshLeaf": {
|
|
75845
|
+
capName: "node-certificates",
|
|
75846
|
+
capScope: "system",
|
|
75847
|
+
addonId: null,
|
|
75848
|
+
access: "create"
|
|
75849
|
+
},
|
|
75850
|
+
"nodeCertificates.getCertificates": {
|
|
75851
|
+
capName: "node-certificates",
|
|
75852
|
+
capScope: "system",
|
|
75853
|
+
addonId: null,
|
|
75854
|
+
access: "view"
|
|
75855
|
+
},
|
|
75856
|
+
"nodeCertificates.installHttpsCertificate": {
|
|
75857
|
+
capName: "node-certificates",
|
|
75858
|
+
capScope: "system",
|
|
75859
|
+
addonId: null,
|
|
75860
|
+
access: "create"
|
|
75861
|
+
},
|
|
75862
|
+
"nodeCertificates.installMeshLeaf": {
|
|
75863
|
+
capName: "node-certificates",
|
|
75864
|
+
capScope: "system",
|
|
75865
|
+
addonId: null,
|
|
75866
|
+
access: "create"
|
|
75867
|
+
},
|
|
75868
|
+
"nodeCertificates.prepareHttpsCertificate": {
|
|
75869
|
+
capName: "node-certificates",
|
|
75870
|
+
capScope: "system",
|
|
75871
|
+
addonId: null,
|
|
75872
|
+
access: "create"
|
|
75873
|
+
},
|
|
75874
|
+
"nodeCertificates.prepareMeshRenewal": {
|
|
75875
|
+
capName: "node-certificates",
|
|
75876
|
+
capScope: "system",
|
|
75877
|
+
addonId: null,
|
|
75878
|
+
access: "create"
|
|
75879
|
+
},
|
|
75880
|
+
"nodeCertificates.rollbackMeshLeaf": {
|
|
75881
|
+
capName: "node-certificates",
|
|
75882
|
+
capScope: "system",
|
|
75883
|
+
addonId: null,
|
|
75884
|
+
access: "create"
|
|
75885
|
+
},
|
|
75382
75886
|
"nodes.clusterAddonStatus": {
|
|
75383
75887
|
capName: "nodes",
|
|
75384
75888
|
capScope: "system",
|
|
@@ -79745,6 +80249,7 @@ var ALL_CAPABILITY_DEFINITIONS = [
|
|
|
79745
80249
|
detectionPipelineCapability,
|
|
79746
80250
|
deviceAdminLinkCapability,
|
|
79747
80251
|
deviceAdoptionCapability,
|
|
80252
|
+
deviceCredentialsCapability,
|
|
79748
80253
|
deviceDiscoveryCapability,
|
|
79749
80254
|
deviceExportCapability,
|
|
79750
80255
|
deviceExtensionCapability,
|
|
@@ -79796,6 +80301,7 @@ var ALL_CAPABILITY_DEFINITIONS = [
|
|
|
79796
80301
|
networkAccessCapability,
|
|
79797
80302
|
networkLinkCapability,
|
|
79798
80303
|
networkQualityCapability,
|
|
80304
|
+
nodeCertificatesCapability,
|
|
79799
80305
|
nodesCapability,
|
|
79800
80306
|
notificationOutputCapability,
|
|
79801
80307
|
notificationRulesCapability,
|
|
@@ -84150,4 +84656,4 @@ function enumerateInferenceDevices(hw) {
|
|
|
84150
84656
|
return out;
|
|
84151
84657
|
}
|
|
84152
84658
|
//#endregion
|
|
84153
|
-
export {
|
|
84659
|
+
export { backupCapability as $, vectorStoreCapability as $n, readinessKey as $r, keychainCapability as $t, HUB_MDNS_SERVICE_TYPE as A, resolveHubAddressRoles as An, buildSecretRef as Ar, deviceStatusCapability as At, STORAGE_ACCESS_FALLBACK as B, snapshotCapability as Bn, hydrateSchema as Br, foldSnapshotByFunction as Bt, DEVICE_SAN_CREDENTIAL_PREFIX as C, ptzAutotrackCapability as Cn, ReadinessRegistry as Cr, defineExtensionSlotProvider as Ct, FIRST_LEVEL_MACRO_CLASSES as D, resolveBucketMs as Dn, asJsonObject as Dr, deviceExtensionCapability as Dt, DeviceStatusSchema as E, resolveAppConnections as En, WELL_KNOWN_TAB_MAP as Er, deviceCredentialsCapability as Et, METHOD_ACCESS_MAP as F, scopesAllowAddon as Fn, defineCustomActions as Fr, evictionPolicyOfLocation as Ft, StorageLocationTypeSchema as G, streamCatalogCapability as Gn, isSecretMarker as Gr, isArrayOutputSchema as Gt, ScopedTokenSchema as H, storageMigrationCapability as Hn, isEvent as Hr, formatMinutes as Ht, MINUTES_PER_DAY as I, scopesAllowDeviceCap as In, emitDownForOwnedCaps as Ir, expandContainer as It, addonPagesCapability as J, userManagementCapability as Jn, nodePin as Jr, isLocationEnabled as Jt, StorageMigrationJobSchema as K, streamQualityLabel as Kn, isSecretMarkerLike as Kr, isCollectionArrayMethod as Kt, MOTION_CLOSE_AFTER_MS as L, scoreRuntimes as Ln, emitReadiness as Lr, expressionContainsBuiltinCall as Lt, KEYCHAIN_RESET_TRIGGER_ACTOR as M, resolveMethodAuth as Mn, collectZodSecretPaths as Mr, enumerateItemArrayFields as Mt, LOG_LEVEL_RANK as N, resolveNotificationTapAddress as Nn, createEvent as Nr, enumerateSchemaFields as Nt, FieldClaimModeSchema as O, resolveCoreBlockEntry as On, asNumber as Or, deviceManagerCapability as Ot, LegacyStorageLocationDefaultSchema as P, runtimeStatePolicyFor as Pn, customAction as Pr, evaluateCompositionField as Pt, authProviderCapability as Q, vectorIndexDimConflictError as Qn, parseSecretRef as Qr, keychainAdminCapability as Qt, RECORDING_SOURCE_CAMSTACK_ADDON as R, settingsStoreCapability as Rn, expandCapMethods as Rr, extractNestedAddonId as Rt, DEVICE_NONCE_TTL_MS as S, procedureAuthKey as Sn, RUNTIME_DEFAULTS as Sr, decodeVectorBase64 as St, DeclaredDevices as T, replacedFieldKeys as Tn, SECRET_CLEAR as Tr, describeComposableCaps as Tt, StorageCleanupJobSchema as U, storageOccupancyCapability as Un, isKeychainStoredField as Ur, gbToBytes as Ut, STREAM_PROFILE_META as V, storageCapability as Vn, isDeviceConfigCap as Vr, formatDeviceRevoker as Vt, StorageLocationModeSchema as W, storageProviderCapability as Wn, isSecretClear as Wr, isAppLinkBase as Wt, addonWidgetsCapability as X, validateCustomAddress as Xn, parseJsonObject as Xr, isVoidInput as Xt, addonSettingsCapability as Y, validateComposition as Yn, normalizeSecretOwner as Yr, isObjectInput as Yt, alertsCapability as Z, vectorDimFromBase64 as Zn, parseJsonUnknown as Zr, kebabToCamel as Zt, DATABASE_SNAPSHOT_TIMEOUT_MS as _, objectInputDeclaresRequiredDeviceId as _n, BaseAddon as _r, coreBlocksCapability as _t, BatteryStatusSchema as a, sleep as ai, logDestinationCapability as an, composedDeviceStableId as ar, buildStreamParamsConfigSchema as at, DERIVED_CAMERA_SILENCED_CAP_NAMES as b, planComposition as bn, DEVICE_STATUS_METHOD as br, databaseSnapshotCapability as bt, CAP_NAMES_WITH_STATUS as c, transformSecretWrite as ci, mayReadLocation as cn, compositionSliceKey as cr, canonicalIconKey as ct, CORE_BLOCKS_ADDON_ID as d, metricsProviderCapability as dn, disarmRoseMemory as dr, compositionFieldKey as dt, resolveCapMount as ei, legacyAutoLinkIds as en, withLocationMode as er, bareAddonId as et, CORE_BLOCK_ADDON_PREFIX as f, modeMayWrite as fn, toExpressionValue as fr, compositionSourceRefs as ft, DATABASE_SNAPSHOT_SUFFIX as g, objectInputDeclaresAddonId as gn, errMsg as gr, coreBlockSourceKind as gt, DATABASE_SNAPSHOT_PARTIAL_SUFFIX as h, normalizeUnit as hn, DeviceType as hr, coreBlockIdFromAddonId as ht, BaseDevice as i, secretTreeFromSchema as ii, locationIconKey as in, composedDeviceRef as ir, buildDeviceSignatureMessage as it, HUB_MDNS_TXT_KEYS as j, resolveLocationMode as jn, collectSecretConfigKeys as jr, enumerateInferenceDevices as jt, FieldClaimSchema as k, resolveCoreBlockFiles as kn, asString$1 as kr, deviceStateCapability as kt, COMPOSED_ITEM_FIXED_FIELDS as l, EventCategory as li, mayWriteToLocation as ln, compositionSourceKey as lr, checkRoleAddress as lt, CoreBlockSchema as m, normalizeCoreBlockWrite as mn, DeviceRole as mr, coreBlockComposition as mt, AlertSchema as n, scopeKey as ni, lifecycleJobSchema as nn, buildFfmpegArgs as nr, buildCapabilityLookup as nt, CAMERA_SWITCH_ORDER as o, toNodeId as oi, logLevelAtMost as on, compositionFeatureEnabled as or, calendarsCapability as ot, CalendarPreferencesSchema as p, motionCapability as pn, DeviceFeature as pr, coreBlockAddonId as pt, UserRecordSchema as q, supportedRuntimes as qn, makeSecretMarker as qr, isDefaultAppConnectionEndpoint as qt, ApiKeyRecordSchema as r, secretTreeFromPaths as ri, localNetworkCapability as rn, cloneStatefulExpressionMemory as rr, buildDeviceEnrollmentLink as rt, CAMSTACK_APP_LINK_ORIGIN as s, toSecretFieldView as si, looseSchema as sn, compositionItemFieldPath as sr, cameraGridLayoutCapability as st, ALL_CAPABILITY_DEFINITIONS as t, resolveSecretMarkers as ti, legacyModeOf as tn, COMPOSER_ADDON_ID as tr, batteryCapability as tt, COMPOSER_RUNNER_ID as u, memoizePinnedFfmpeg as un, createStatefulExpressionMemory as ur, composerCapability as ut, DATA_STORE_DATABASES as v, parseStreamParamsFormPatch as vn, DATAPLANE_SECRET_HEADER as vr, createDeviceExtensionProvider as vt, DEVICE_SAN_USER_PREFIX as w, reducePoints as wn, ReadinessTimeoutError as wr, deriveBatteryPresence as wt, DEVICE_ENROLLMENT_TTL_MS as x, platformProbeCapability as xn, REDACTED_SECRET as xr, declarationOwnerNodeId as xt, DAY_NAMES as y, pickAppLinkHub as yn, DEVICE_SETTINGS_CONTRIBUTION_METHODS as yr, dataStoreProviderCapability as yt, RecordingStatusSchema as z, siteZoneKey as zn, formatSecretScope as zr, filesystemBrowseCapability as zt };
|
package/dist/file-host-worker.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
require("./chunk-Cek0wNdY.js");
|
|
2
|
-
const require_wal_maintenance = require("./wal-maintenance-
|
|
2
|
+
const require_wal_maintenance = require("./wal-maintenance-BSGsxKW7.js");
|
|
3
3
|
let node_worker_threads = require("node:worker_threads");
|
|
4
4
|
//#region src/builtins/sqlite-storage/file-host-worker.ts
|
|
5
5
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as callControl, E as controlTargetOf, T as callVector, _ as collectTransferables, a as WalMaintenance, b as isFileHostWorkerData, c as SqliteSettingsBackend, h as serializeError, o as createVectorIndex, s as vectorProviderOf, w as callData, x as trustInput, y as isFileHostRequest } from "./wal-maintenance-
|
|
1
|
+
import { C as callControl, E as controlTargetOf, T as callVector, _ as collectTransferables, a as WalMaintenance, b as isFileHostWorkerData, c as SqliteSettingsBackend, h as serializeError, o as createVectorIndex, s as vectorProviderOf, w as callData, x as trustInput, y as isFileHostRequest } from "./wal-maintenance-DW0FfGV7.mjs";
|
|
2
2
|
import { parentPort, threadId, workerData } from "node:worker_threads";
|
|
3
3
|
//#region src/builtins/sqlite-storage/file-host-worker.ts
|
|
4
4
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -16,11 +16,14 @@ export type { CreateLoginSessionInput, LoginSessionCheck, LoginSessionMethod, Lo
|
|
|
16
16
|
export { LoginSessionManager, REFRESH_TOKEN_PREFIX } from "./auth/login-session-manager.js";
|
|
17
17
|
export type { AdminTokenRecord } from "./auth/admin-token-manager.js";
|
|
18
18
|
export { ADMIN_TOKEN_MAX_LIFETIME_MS, ADMIN_TOKEN_PREFIX, AdminTokenManager } from "./auth/admin-token-manager.js";
|
|
19
|
+
export { DeviceCaStore } from "./auth/device-ca-store.js";
|
|
20
|
+
export { DEVICE_CA_KEY_REF, type DeviceCaSigner, generateDeviceCa, issueDeviceLeaf, loadDeviceCa, verifyDeviceLeaf, verifyDeviceSignature } from "./auth/device-ca.js";
|
|
21
|
+
export { type AuthenticatedDevice, DeviceCredentialManager, type DeviceCredentialRecord, type DeviceCredentialState, PREVIOUS_LEAF_GRACE_MS, type DeviceCheckRefusal, type IssuedDeviceCertificate } from "./auth/device-credential-manager.js";
|
|
19
22
|
export { AuthAuditLog } from "./auth/auth-audit-log.js";
|
|
20
23
|
export type { AuthAuditAction, AuthAuditEvent, AuthAuditRecord } from "./auth/auth-audit-log.js";
|
|
21
24
|
export type { CidrMatcher, ParsedCidr, ParsedCidrList } from "./auth/cidr.js";
|
|
22
25
|
export { createCidrMatcher, normalizeIp, parseCidrList, readCidrSetting } from "./auth/cidr.js";
|
|
23
|
-
export type { AdminTokensInternal, AuthAuditInternal, LinkExternalIdentityInput, LoginSessionsInternal, SetPasswordInput, UserManagementInternal } from "./auth/user-management-internal.js";
|
|
26
|
+
export type { AdminTokensInternal, AuthAuditInternal, DeviceCredentialsInternal, LinkExternalIdentityInput, LoginSessionsInternal, SetPasswordInput, UserManagementInternal } from "./auth/user-management-internal.js";
|
|
24
27
|
export { attachUserManagementInternal, getUserManagementInternal, USER_MANAGEMENT_INTERNAL } from "./auth/user-management-internal.js";
|
|
25
28
|
export type { UserRecord, UserStorageAccess } from "./auth/user-manager.js";
|
|
26
29
|
export { FIRST_BOOT_ADMIN_PASSWORD, FIRST_BOOT_ADMIN_USERNAME, UserManager } from "./auth/user-manager.js";
|