@camstack/system 1.2.437 → 1.2.438
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/addon-runner.js +64 -12
- package/dist/addon-runner.mjs +65 -13
- 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 +7 -1
- package/dist/builtins/alerts/alerts.addon.mjs +7 -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 +9 -1
- package/dist/builtins/camera-grid/index.mjs +9 -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 +12 -5
- package/dist/builtins/console-logging/index.mjs +12 -5
- 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.d.ts +5 -0
- package/dist/builtins/device-manager/device-manager.addon.js +702 -28
- package/dist/builtins/device-manager/device-manager.addon.mjs +702 -28
- package/dist/builtins/device-manager/device-meta-types.d.ts +4 -0
- package/dist/builtins/device-manager/device-provider-context.d.ts +9 -0
- package/dist/builtins/device-manager/device-removal-hooks.d.ts +103 -0
- package/dist/builtins/device-manager/device-row-store.d.ts +1 -0
- package/dist/builtins/device-manager/device-tombstone-store.d.ts +58 -0
- package/dist/builtins/device-manager/removal-cleanup.d.ts +50 -0
- package/dist/builtins/hub-forwarder/index.js +1 -1
- package/dist/builtins/hub-forwarder/index.mjs +1 -1
- package/dist/builtins/keychain/index.js +37 -4
- package/dist/builtins/keychain/index.mjs +37 -4
- package/dist/builtins/keychain/keychain-service.d.ts +14 -0
- package/dist/builtins/keychain/keychain-store.d.ts +1 -1
- 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.js +12 -12
- package/dist/builtins/local-auth/local-auth.addon.mjs +12 -12
- package/dist/builtins/local-network/local-network.addon.js +10 -1
- package/dist/builtins/local-network/local-network.addon.mjs +10 -1
- package/dist/builtins/loki-logging/index.js +28 -5
- package/dist/builtins/loki-logging/index.mjs +28 -5
- package/dist/builtins/native-metrics/native-metrics.addon.js +11 -1
- package/dist/builtins/native-metrics/native-metrics.addon.mjs +11 -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 +11 -1
- package/dist/builtins/snapshot/index.mjs +11 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +4 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +4 -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.js +20 -2
- package/dist/builtins/system-config/system-config.addon.mjs +20 -2
- package/dist/builtins/winston-logging/index.js +14 -5
- package/dist/builtins/winston-logging/index.mjs +14 -5
- package/dist/{composition-sources-BIT8IUKm.js → composition-sources-DI3Z83vG.js} +1 -1
- package/dist/{composition-sources-tpYR0f1x.mjs → composition-sources-DpHGCjdL.mjs} +1 -1
- package/dist/{constants-Bc6trhoW.mjs → constants-DQK705Sb.mjs} +1 -1
- package/dist/{constants-CwRY32Nx.js → constants-wkcn5Ij3.js} +1 -1
- package/dist/{device-ca-DImD8IzR.js → device-ca-BSvkXqyI.js} +1 -1
- package/dist/{device-ca-BhdBByGD.mjs → device-ca-DvIZjXIl.mjs} +1 -1
- package/dist/{dist-m5JkT8UN.mjs → dist-Dc8GKC5H.mjs} +272 -7
- package/dist/{dist-CEAyXW3Q.js → dist-GgG-7amw.js} +307 -6
- package/dist/file-host-worker.js +1 -1
- package/dist/file-host-worker.mjs +1 -1
- package/dist/i18n/catalog-registry.d.ts +35 -0
- package/dist/i18n/index.d.ts +2 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +663 -20
- package/dist/index.mjs +659 -22
- package/dist/kernel/gc-census.d.ts +18 -1
- package/dist/kernel/settings-view-types.d.ts +2 -0
- package/dist/kernel/transport/local-transport.d.ts +3 -0
- package/dist/kernel/transport/peer-answered-error.d.ts +5 -1
- package/dist/{restore-archive-C75srVbG.js → restore-archive-CTRz8v9o.js} +1 -1
- package/dist/{restore-archive-DNxAStrJ.mjs → restore-archive-DPg9duVY.mjs} +1 -1
- package/dist/{retired-settings-keys-DNfV28R_.js → retired-settings-keys-Dr_4lfKu.js} +1 -1
- package/dist/{retired-settings-keys-C5qP9QIf.mjs → retired-settings-keys-Is0zO8gX.mjs} +1 -1
- package/dist/{wal-maintenance-DvnVO5IK.mjs → wal-maintenance-Bx3lcVA7.mjs} +0 -0
- package/dist/{wal-maintenance-Ch79gy9S.js → wal-maintenance-mjB2i-VR.js} +0 -0
- package/package.json +1 -1
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-GgG-7amw.js");
|
|
7
7
|
const require_snapshot_courtesy = require("../../snapshot-courtesy-D_C5-nC0.js");
|
|
8
8
|
let zod = require("zod");
|
|
9
9
|
let node_crypto = require("node:crypto");
|
|
@@ -1707,13 +1707,17 @@ var SnapshotAddon = class SnapshotAddon extends require_dist.BaseAddon {
|
|
|
1707
1707
|
return this.schema({ sections: [{
|
|
1708
1708
|
id: "snapshot-cache",
|
|
1709
1709
|
title: "Snapshot Cache",
|
|
1710
|
+
titleKey: "server:globalSettings.s_snapshot-cache.title",
|
|
1710
1711
|
description: "Stale fallback when live capture fails. Per-device freshness is configured under Device → Snapshot → Max cache age.",
|
|
1712
|
+
descriptionKey: "server:globalSettings.s_snapshot-cache.description",
|
|
1711
1713
|
columns: 1,
|
|
1712
1714
|
fields: [this.field({
|
|
1713
1715
|
type: "number",
|
|
1714
1716
|
key: "staleTtlMs",
|
|
1715
1717
|
label: "Stale fallback TTL (ms)",
|
|
1718
|
+
labelKey: "server:globalSettings.s_snapshot-cache.staleTtlMs.label",
|
|
1716
1719
|
description: "If live capture fails, cached snapshot younger than this is still returned.",
|
|
1720
|
+
descriptionKey: "server:globalSettings.s_snapshot-cache.staleTtlMs.description",
|
|
1717
1721
|
min: 0,
|
|
1718
1722
|
max: 36e5,
|
|
1719
1723
|
step: 1e3,
|
|
@@ -2322,6 +2326,7 @@ var SnapshotAddon = class SnapshotAddon extends require_dist.BaseAddon {
|
|
|
2322
2326
|
return { sections: [{
|
|
2323
2327
|
id: "snapshot-preferences",
|
|
2324
2328
|
title: "Snapshot",
|
|
2329
|
+
titleKey: "server:deviceSettingsContribution.s_snapshot-preferences.title",
|
|
2325
2330
|
tab: "snapshot",
|
|
2326
2331
|
order: 60,
|
|
2327
2332
|
fields: [
|
|
@@ -2329,7 +2334,9 @@ var SnapshotAddon = class SnapshotAddon extends require_dist.BaseAddon {
|
|
|
2329
2334
|
type: "select",
|
|
2330
2335
|
key: "snapshotStreamId",
|
|
2331
2336
|
label: "Preferred stream",
|
|
2337
|
+
labelKey: "server:deviceSettingsContribution.s_snapshot-preferences.snapshotStreamId.label",
|
|
2332
2338
|
description: "Stream used when grabbing a snapshot",
|
|
2339
|
+
descriptionKey: "server:deviceSettingsContribution.s_snapshot-preferences.snapshotStreamId.description",
|
|
2333
2340
|
options: streamOptions,
|
|
2334
2341
|
required: true,
|
|
2335
2342
|
value: current.snapshotStreamId || "auto"
|
|
@@ -2338,6 +2345,7 @@ var SnapshotAddon = class SnapshotAddon extends require_dist.BaseAddon {
|
|
|
2338
2345
|
type: "number",
|
|
2339
2346
|
key: "snapshotMaxAgeS",
|
|
2340
2347
|
label: "Max cache age (s)",
|
|
2348
|
+
labelKey: "server:deviceSettingsContribution.s_snapshot-preferences.snapshotMaxAgeS.label",
|
|
2341
2349
|
description: `Serve cached snapshot up to this age before re-capturing. Default ${defaultMaxAgeS}s for ${isBattery ? "battery cams (avoids gratuitous wake-ups)" : "non-battery cams (live-feel)"}. The UI refresh button always forces a fresh capture regardless of this value.`,
|
|
2342
2350
|
min: 0,
|
|
2343
2351
|
max: 24 * 3600,
|
|
@@ -2348,7 +2356,9 @@ var SnapshotAddon = class SnapshotAddon extends require_dist.BaseAddon {
|
|
|
2348
2356
|
type: "boolean",
|
|
2349
2357
|
key: "snapshotDebug",
|
|
2350
2358
|
label: "Debug logging",
|
|
2359
|
+
labelKey: "server:deviceSettingsContribution.s_snapshot-preferences.snapshotDebug.label",
|
|
2351
2360
|
description: "Log stream selection and timing details for this device.",
|
|
2361
|
+
descriptionKey: "server:deviceSettingsContribution.s_snapshot-preferences.snapshotDebug.description",
|
|
2352
2362
|
value: current.snapshotDebug ?? false
|
|
2353
2363
|
}
|
|
2354
2364
|
]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Dr as errMsg, Er as DeviceType, Mt as deriveBatteryPresence, Or as BaseAddon, Xn as snapshotCapability, ct as bareAddonId, ii as nodePin, lt as batteryCapability, rr as streamQualityLabel, s as BatteryStatusSchema, wr as DeviceFeature, yi as EventCategory, yn as memoizePinnedFfmpeg } from "../../dist-Dc8GKC5H.mjs";
|
|
2
2
|
import { i as renderCourtesyOverlayJpeg, n as courtesyCacheKey, r as renderCourtesyJpeg } from "../../snapshot-courtesy-CyFs1M3I.mjs";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { randomUUID } from "node:crypto";
|
|
@@ -1701,13 +1701,17 @@ var SnapshotAddon = class SnapshotAddon extends BaseAddon {
|
|
|
1701
1701
|
return this.schema({ sections: [{
|
|
1702
1702
|
id: "snapshot-cache",
|
|
1703
1703
|
title: "Snapshot Cache",
|
|
1704
|
+
titleKey: "server:globalSettings.s_snapshot-cache.title",
|
|
1704
1705
|
description: "Stale fallback when live capture fails. Per-device freshness is configured under Device → Snapshot → Max cache age.",
|
|
1706
|
+
descriptionKey: "server:globalSettings.s_snapshot-cache.description",
|
|
1705
1707
|
columns: 1,
|
|
1706
1708
|
fields: [this.field({
|
|
1707
1709
|
type: "number",
|
|
1708
1710
|
key: "staleTtlMs",
|
|
1709
1711
|
label: "Stale fallback TTL (ms)",
|
|
1712
|
+
labelKey: "server:globalSettings.s_snapshot-cache.staleTtlMs.label",
|
|
1710
1713
|
description: "If live capture fails, cached snapshot younger than this is still returned.",
|
|
1714
|
+
descriptionKey: "server:globalSettings.s_snapshot-cache.staleTtlMs.description",
|
|
1711
1715
|
min: 0,
|
|
1712
1716
|
max: 36e5,
|
|
1713
1717
|
step: 1e3,
|
|
@@ -2316,6 +2320,7 @@ var SnapshotAddon = class SnapshotAddon extends BaseAddon {
|
|
|
2316
2320
|
return { sections: [{
|
|
2317
2321
|
id: "snapshot-preferences",
|
|
2318
2322
|
title: "Snapshot",
|
|
2323
|
+
titleKey: "server:deviceSettingsContribution.s_snapshot-preferences.title",
|
|
2319
2324
|
tab: "snapshot",
|
|
2320
2325
|
order: 60,
|
|
2321
2326
|
fields: [
|
|
@@ -2323,7 +2328,9 @@ var SnapshotAddon = class SnapshotAddon extends BaseAddon {
|
|
|
2323
2328
|
type: "select",
|
|
2324
2329
|
key: "snapshotStreamId",
|
|
2325
2330
|
label: "Preferred stream",
|
|
2331
|
+
labelKey: "server:deviceSettingsContribution.s_snapshot-preferences.snapshotStreamId.label",
|
|
2326
2332
|
description: "Stream used when grabbing a snapshot",
|
|
2333
|
+
descriptionKey: "server:deviceSettingsContribution.s_snapshot-preferences.snapshotStreamId.description",
|
|
2327
2334
|
options: streamOptions,
|
|
2328
2335
|
required: true,
|
|
2329
2336
|
value: current.snapshotStreamId || "auto"
|
|
@@ -2332,6 +2339,7 @@ var SnapshotAddon = class SnapshotAddon extends BaseAddon {
|
|
|
2332
2339
|
type: "number",
|
|
2333
2340
|
key: "snapshotMaxAgeS",
|
|
2334
2341
|
label: "Max cache age (s)",
|
|
2342
|
+
labelKey: "server:deviceSettingsContribution.s_snapshot-preferences.snapshotMaxAgeS.label",
|
|
2335
2343
|
description: `Serve cached snapshot up to this age before re-capturing. Default ${defaultMaxAgeS}s for ${isBattery ? "battery cams (avoids gratuitous wake-ups)" : "non-battery cams (live-feel)"}. The UI refresh button always forces a fresh capture regardless of this value.`,
|
|
2336
2344
|
min: 0,
|
|
2337
2345
|
max: 24 * 3600,
|
|
@@ -2342,7 +2350,9 @@ var SnapshotAddon = class SnapshotAddon extends BaseAddon {
|
|
|
2342
2350
|
type: "boolean",
|
|
2343
2351
|
key: "snapshotDebug",
|
|
2344
2352
|
label: "Debug logging",
|
|
2353
|
+
labelKey: "server:deviceSettingsContribution.s_snapshot-preferences.snapshotDebug.label",
|
|
2345
2354
|
description: "Log stream selection and timing details for this device.",
|
|
2355
|
+
descriptionKey: "server:deviceSettingsContribution.s_snapshot-preferences.snapshotDebug.description",
|
|
2346
2356
|
value: current.snapshotDebug ?? false
|
|
2347
2357
|
}
|
|
2348
2358
|
]
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-GgG-7amw.js");
|
|
7
7
|
let node_crypto = require("node:crypto");
|
|
8
8
|
let node_fs_promises = require("node:fs/promises");
|
|
9
9
|
let node_path = require("node:path");
|
|
@@ -155,11 +155,14 @@ var FilesystemStorageProvider = class FilesystemStorageProvider {
|
|
|
155
155
|
configSchema: { sections: [{
|
|
156
156
|
id: "filesystem-storage",
|
|
157
157
|
title: "Filesystem",
|
|
158
|
+
titleKey: "server:providerInfo.s_filesystem-storage.title",
|
|
158
159
|
fields: [{
|
|
159
160
|
type: "text",
|
|
160
161
|
key: "basePath",
|
|
161
162
|
label: "Base path",
|
|
163
|
+
labelKey: "server:providerInfo.s_filesystem-storage.basePath.label",
|
|
162
164
|
description: "Absolute directory path where files are stored.",
|
|
165
|
+
descriptionKey: "server:providerInfo.s_filesystem-storage.basePath.description",
|
|
163
166
|
required: true
|
|
164
167
|
}]
|
|
165
168
|
}] }
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Or as BaseAddon, qt as filesystemBrowseCapability, tr as storageProviderCapability } from "../../dist-Dc8GKC5H.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import { mkdir, readdir, realpath, statfs } from "node:fs/promises";
|
|
4
4
|
import * as path$1 from "node:path";
|
|
@@ -149,11 +149,14 @@ var FilesystemStorageProvider = class FilesystemStorageProvider {
|
|
|
149
149
|
configSchema: { sections: [{
|
|
150
150
|
id: "filesystem-storage",
|
|
151
151
|
title: "Filesystem",
|
|
152
|
+
titleKey: "server:providerInfo.s_filesystem-storage.title",
|
|
152
153
|
fields: [{
|
|
153
154
|
type: "text",
|
|
154
155
|
key: "basePath",
|
|
155
156
|
label: "Base path",
|
|
157
|
+
labelKey: "server:providerInfo.s_filesystem-storage.basePath.label",
|
|
156
158
|
description: "Absolute directory path where files are stored.",
|
|
159
|
+
descriptionKey: "server:providerInfo.s_filesystem-storage.basePath.description",
|
|
157
160
|
required: true
|
|
158
161
|
}]
|
|
159
162
|
}] }
|
|
@@ -4,7 +4,7 @@ Object.defineProperties(exports, {
|
|
|
4
4
|
});
|
|
5
5
|
require("../../chunk-Cek0wNdY.js");
|
|
6
6
|
const require_builtins_sqlite_storage_filesystem_storage_addon = require("./filesystem-storage.addon.js");
|
|
7
|
-
const require_wal_maintenance = require("../../wal-maintenance-
|
|
7
|
+
const require_wal_maintenance = require("../../wal-maintenance-mjB2i-VR.js");
|
|
8
8
|
const require_builtins_sqlite_storage_sqlite_settings_addon = require("./sqlite-settings.addon.js");
|
|
9
9
|
//#region src/builtins/sqlite-storage/config-store.ts
|
|
10
10
|
var ConfigStore = class {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FilesystemStorageAddon, t as FilesystemStorageProvider } from "./filesystem-storage.addon.mjs";
|
|
2
|
-
import { A as SQLITE_PAGE_CACHE_CEILING_KIB, B as sqliteEngineStorm, D as SQLITE_JOURNAL_SIZE_LIMIT_BYTES, F as SQLITE_PROFILE_REPORT_FLOOR_MS, I as SQLITE_PROFILE_REPORT_INTERVAL_MS, L as SQLITE_PROFILE_TOP_N, M as sqliteMmapSizeFor, N as sqlitePageCacheKibFor, O as SQLITE_MMAP_CEILING_BYTES, P as SQLITE_ENGINE_STORM_WALL_SHARE, R as SQLITE_SLOW_CALL_MS, a as WalMaintenance, c as SqliteSettingsBackend, i as WAL_MAINTENANCE_INTERVAL_MS, j as SQLITE_PAGE_CACHE_FLOOR_KIB, k as SQLITE_MMAP_FLOOR_BYTES, n as WAL_HIGH_WATER_BYTES, r as WAL_IDLE_QUIET_MS, t as WAL_CHECKPOINT_BUSY_TIMEOUT_MS, z as SqliteOpProfiler } from "../../wal-maintenance-
|
|
2
|
+
import { A as SQLITE_PAGE_CACHE_CEILING_KIB, B as sqliteEngineStorm, D as SQLITE_JOURNAL_SIZE_LIMIT_BYTES, F as SQLITE_PROFILE_REPORT_FLOOR_MS, I as SQLITE_PROFILE_REPORT_INTERVAL_MS, L as SQLITE_PROFILE_TOP_N, M as sqliteMmapSizeFor, N as sqlitePageCacheKibFor, O as SQLITE_MMAP_CEILING_BYTES, P as SQLITE_ENGINE_STORM_WALL_SHARE, R as SQLITE_SLOW_CALL_MS, a as WalMaintenance, c as SqliteSettingsBackend, i as WAL_MAINTENANCE_INTERVAL_MS, j as SQLITE_PAGE_CACHE_FLOOR_KIB, k as SQLITE_MMAP_FLOOR_BYTES, n as WAL_HIGH_WATER_BYTES, r as WAL_IDLE_QUIET_MS, t as WAL_CHECKPOINT_BUSY_TIMEOUT_MS, z as SqliteOpProfiler } from "../../wal-maintenance-Bx3lcVA7.mjs";
|
|
3
3
|
import { SqliteSettingsAddon } from "./sqlite-settings.addon.mjs";
|
|
4
4
|
//#region src/builtins/sqlite-storage/config-store.ts
|
|
5
5
|
var ConfigStore = class {
|
|
@@ -3,9 +3,9 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
7
|
-
const require_retired_settings_keys = require("../../retired-settings-keys-
|
|
8
|
-
const require_wal_maintenance = require("../../wal-maintenance-
|
|
6
|
+
const require_dist = require("../../dist-GgG-7amw.js");
|
|
7
|
+
const require_retired_settings_keys = require("../../retired-settings-keys-Dr_4lfKu.js");
|
|
8
|
+
const require_wal_maintenance = require("../../wal-maintenance-mjB2i-VR.js");
|
|
9
9
|
const require_sqlite_snapshot_protocol = require("../../sqlite-snapshot-protocol-B9OndqZv.js");
|
|
10
10
|
const require_wal_checkpoint_policy = require("../../wal-checkpoint-policy-d2z2qPqx.js");
|
|
11
11
|
let node_fs_promises = require("node:fs/promises");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { r as retiredKeyStoreOf, t as purgeRetiredSettingsKeys } from "../../retired-settings-keys-
|
|
3
|
-
import { C as callControl, E as controlTargetOf, S as trustResult, T as callVector, _ as collectTransferables, a as WalMaintenance, c as SqliteSettingsBackend, d as CrossDatabaseTransactError, f as DatabaseBusyError, m as rehydrateError, o as createVectorIndex, p as DuplicatePlacementError, s as vectorProviderOf, u as CollectionPlacementError, v as isFileHostMessage, w as callData } from "../../wal-maintenance-
|
|
1
|
+
import { Dr as errMsg, Dt as dataStoreProviderCapability, Nr as RUNTIME_DEFAULTS, Or as BaseAddon, Ot as databaseSnapshotCapability, S as DATA_STORE_DATABASES, b as DATABASE_SNAPSHOT_SUFFIX, ct as bareAddonId, ur as vectorStoreCapability, x as DATABASE_SNAPSHOT_TIMEOUT_MS, y as DATABASE_SNAPSHOT_PARTIAL_SUFFIX } from "../../dist-Dc8GKC5H.mjs";
|
|
2
|
+
import { r as retiredKeyStoreOf, t as purgeRetiredSettingsKeys } from "../../retired-settings-keys-Is0zO8gX.mjs";
|
|
3
|
+
import { C as callControl, E as controlTargetOf, S as trustResult, T as callVector, _ as collectTransferables, a as WalMaintenance, c as SqliteSettingsBackend, d as CrossDatabaseTransactError, f as DatabaseBusyError, m as rehydrateError, o as createVectorIndex, p as DuplicatePlacementError, s as vectorProviderOf, u as CollectionPlacementError, v as isFileHostMessage, w as callData } from "../../wal-maintenance-Bx3lcVA7.mjs";
|
|
4
4
|
import { r as isSnapshotWorkerMessage } from "../../sqlite-snapshot-protocol-2QaTouWV.mjs";
|
|
5
5
|
import { a as isWorkerMessage, t as WAL_CHECKPOINT_LARGE_PASS_FRAMES } from "../../wal-checkpoint-policy-BahrTtyD.mjs";
|
|
6
6
|
import { createRequire } from "node:module";
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-GgG-7amw.js");
|
|
7
7
|
let zod = require("zod");
|
|
8
8
|
let node_crypto = require("node:crypto");
|
|
9
9
|
let _camstack_types_node = require("@camstack/types/node");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $
|
|
1
|
+
import { $ as StorageLocationTypeSchema, $n as storageMigrationCapability, Bn as resolveLocationMode, Hr as collectSecretConfigKeys, Mr as REDACTED_SECRET, Or as BaseAddon, Q as StorageLocationModeSchema, Qn as storageCapability, Ut as evictionPolicyOfLocation, Z as StorageCleanupJobSchema, Zt as gbToBytes, _i as transformSecretWrite, _n as mayReadLocation, di as resolveSecretMarkers, dr as withLocationMode, et as StorageMigrationJobSchema, ni as isSecretMarker, oi as parseJsonObject, pi as secretTreeFromPaths, qn as settingsStoreCapability, rn as isLocationEnabled, un as legacyModeOf, vn as mayWriteToLocation, xn as modeMayWrite, yi as EventCategory, z as LegacyStorageLocationDefaultSchema } from "../../dist-Dc8GKC5H.mjs";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
4
|
import { containsOrEquals, physicalRootOf } from "@camstack/types/node";
|
|
@@ -3,11 +3,11 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-GgG-7amw.js");
|
|
7
7
|
const require_safe_buffer$1 = require("../../safe-buffer-D3aoa-7X.js");
|
|
8
8
|
const require_x509_es = require("../../x509.es-r7Ht1thA.js");
|
|
9
9
|
const require_agent_https = require("../../agent-https-BZIwS4xF.js");
|
|
10
|
-
const require_constants$8 = require("../../constants-
|
|
10
|
+
const require_constants$8 = require("../../constants-wkcn5Ij3.js");
|
|
11
11
|
const require_src$1 = require("../../src-CnAqG6EF.js");
|
|
12
12
|
let zod = require("zod");
|
|
13
13
|
let node_crypto = require("node:crypto");
|
|
@@ -88604,6 +88604,7 @@ var SystemConfigAddon = class extends require_dist.BaseAddon {
|
|
|
88604
88604
|
id: "system-config-server",
|
|
88605
88605
|
title: SECTION_TITLES["server"],
|
|
88606
88606
|
description: "The name of this server, and its connection settings (read-only, loaded from config.yaml at bootstrap).",
|
|
88607
|
+
descriptionKey: "server:global.s_system-config-server.description",
|
|
88607
88608
|
columns: 2,
|
|
88608
88609
|
fields: [
|
|
88609
88610
|
{
|
|
@@ -88618,6 +88619,7 @@ var SystemConfigAddon = class extends require_dist.BaseAddon {
|
|
|
88618
88619
|
type: "info",
|
|
88619
88620
|
key: "server-restart-note",
|
|
88620
88621
|
label: "Restart required",
|
|
88622
|
+
labelKey: "server:global.s_system-config-server.server-restart-note.label",
|
|
88621
88623
|
content: "Port, host and data path are read-only. Change them in config.yaml and restart.",
|
|
88622
88624
|
variant: "warning"
|
|
88623
88625
|
},
|
|
@@ -88625,21 +88627,27 @@ var SystemConfigAddon = class extends require_dist.BaseAddon {
|
|
|
88625
88627
|
type: "text",
|
|
88626
88628
|
key: "port",
|
|
88627
88629
|
label: "Port",
|
|
88630
|
+
labelKey: "server:global.s_system-config-server.port.label",
|
|
88628
88631
|
description: "Listening port",
|
|
88632
|
+
descriptionKey: "server:global.s_system-config-server.port.description",
|
|
88629
88633
|
disabled: true
|
|
88630
88634
|
},
|
|
88631
88635
|
{
|
|
88632
88636
|
type: "text",
|
|
88633
88637
|
key: "host",
|
|
88634
88638
|
label: "Host",
|
|
88639
|
+
labelKey: "server:global.s_system-config-server.host.label",
|
|
88635
88640
|
description: "Bind address",
|
|
88641
|
+
descriptionKey: "server:global.s_system-config-server.host.description",
|
|
88636
88642
|
disabled: true
|
|
88637
88643
|
},
|
|
88638
88644
|
{
|
|
88639
88645
|
type: "text",
|
|
88640
88646
|
key: "dataPath",
|
|
88641
88647
|
label: "Data Path",
|
|
88648
|
+
labelKey: "server:global.s_system-config-server.dataPath.label",
|
|
88642
88649
|
description: "Root data directory",
|
|
88650
|
+
descriptionKey: "server:global.s_system-config-server.dataPath.description",
|
|
88643
88651
|
disabled: true,
|
|
88644
88652
|
span: 2
|
|
88645
88653
|
}
|
|
@@ -88649,13 +88657,16 @@ var SystemConfigAddon = class extends require_dist.BaseAddon {
|
|
|
88649
88657
|
id: "system-config-auth",
|
|
88650
88658
|
title: SECTION_TITLES["auth"],
|
|
88651
88659
|
description: "Token and session settings.",
|
|
88660
|
+
descriptionKey: "server:global.s_system-config-auth.description",
|
|
88652
88661
|
columns: 1,
|
|
88653
88662
|
fields: [
|
|
88654
88663
|
{
|
|
88655
88664
|
type: "text",
|
|
88656
88665
|
key: "tokenExpiry",
|
|
88657
88666
|
label: "Session lifetime",
|
|
88667
|
+
labelKey: "server:global.s_system-config-auth.tokenExpiry.label",
|
|
88658
88668
|
description: "How long a sign-in lasts without being used, as a duration string (e.g. 7d, 30d). Every refresh starts it again, so a device in use stays signed in; one left unopened this long must sign in again. A bare number is rejected — it would be read as milliseconds. Applies from the next sign-in or refresh.",
|
|
88669
|
+
descriptionKey: "server:global.s_system-config-auth.tokenExpiry.description",
|
|
88659
88670
|
placeholder: "30d",
|
|
88660
88671
|
default: "30d"
|
|
88661
88672
|
},
|
|
@@ -88663,7 +88674,9 @@ var SystemConfigAddon = class extends require_dist.BaseAddon {
|
|
|
88663
88674
|
type: "text",
|
|
88664
88675
|
key: "accessTokenExpiry",
|
|
88665
88676
|
label: "Access token lifetime",
|
|
88677
|
+
labelKey: "server:global.s_system-config-auth.accessTokenExpiry.label",
|
|
88666
88678
|
description: "How long one access token lives before the app silently swaps it for a new one (e.g. 2h; between 5m and 24h, never longer than the session). Shorter limits how long a copied token is useful. Apps that predate refresh tokens get one token for the whole session instead.",
|
|
88679
|
+
descriptionKey: "server:global.s_system-config-auth.accessTokenExpiry.description",
|
|
88667
88680
|
placeholder: "2h",
|
|
88668
88681
|
default: "2h"
|
|
88669
88682
|
},
|
|
@@ -88671,13 +88684,16 @@ var SystemConfigAddon = class extends require_dist.BaseAddon {
|
|
|
88671
88684
|
type: "tags",
|
|
88672
88685
|
key: "trustedProxies",
|
|
88673
88686
|
label: "Trusted reverse proxies",
|
|
88687
|
+
labelKey: "server:global.s_system-config-auth.trustedProxies.label",
|
|
88674
88688
|
description: "Addresses or CIDR ranges (e.g. 192.168.1.2 or 10.0.0.0/24) of reverse proxies in front of the hub. Only a request whose direct sender is one of these — or this host itself, as with the Cloudflare tunnel — has its X-Forwarded-For / CF-Connecting-IP read as the real client address for rate limits. Leave empty unless a proxy on another host forwards to the hub.",
|
|
88689
|
+
descriptionKey: "server:global.s_system-config-auth.trustedProxies.description",
|
|
88675
88690
|
creatable: true
|
|
88676
88691
|
},
|
|
88677
88692
|
{
|
|
88678
88693
|
type: "info",
|
|
88679
88694
|
key: "trustedNetworksWarning",
|
|
88680
88695
|
label: "Skipping two-factor authentication",
|
|
88696
|
+
labelKey: "server:global.s_system-config-auth.trustedNetworksWarning.label",
|
|
88681
88697
|
variant: "danger",
|
|
88682
88698
|
content: "A sign-in made DIRECTLY from a network listed below skips the second factor (TOTP or passkey): anyone on that network who knows or guesses a password gets in with the password alone — including a compromised camera or a guest device. Requests that come through the Cloudflare tunnel, the public address or any reverse proxy never skip it, whatever address they claim. Every skip is recorded in the authentication audit log. Leave empty (the default) to always ask for the second factor."
|
|
88683
88699
|
},
|
|
@@ -88685,7 +88701,9 @@ var SystemConfigAddon = class extends require_dist.BaseAddon {
|
|
|
88685
88701
|
type: "tags",
|
|
88686
88702
|
key: "trustedNetworks",
|
|
88687
88703
|
label: "Trusted networks (skip the second factor)",
|
|
88704
|
+
labelKey: "server:global.s_system-config-auth.trustedNetworks.label",
|
|
88688
88705
|
description: "Addresses or CIDR ranges, e.g. 192.168.1.0/24. Keep it as narrow as you can — a single trusted VLAN, not the whole LAN.",
|
|
88706
|
+
descriptionKey: "server:global.s_system-config-auth.trustedNetworks.description",
|
|
88689
88707
|
creatable: true
|
|
88690
88708
|
}
|
|
88691
88709
|
]
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { a as __toCommonJS, i as __require, n as __esmMin, o as __toESM, r as __exportAll, t as __commonJSMin } from "../../chunk-CNf5ZN-e.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { Dr as errMsg, Gr as customAction, Jn as shortHostname, Kr as defineCustomActions, Or as BaseAddon, Y as ServerNameSchema, Zr as hydrateSchema } from "../../dist-Dc8GKC5H.mjs";
|
|
3
3
|
import { t as require_safe_buffer } from "../../safe-buffer-B1OjL1I9.mjs";
|
|
4
4
|
import { a as KeyUsagesExtension, c as Pkcs10CertificateRequestGenerator, d as X509Certificate$1, f as X509CertificateGenerator, g as backdatedNotBefore, i as KeyUsageFlags, n as BasicConstraintsExtension, o as PemConverter, p as cryptoProvider, r as ExtendedKeyUsageExtension, s as Pkcs10CertificateRequest, t as AuthorityKeyIdentifierExtension, u as SubjectKeyIdentifierExtension } from "../../x509.es-CDvj67p1.mjs";
|
|
5
5
|
import { A as AgentHttpsNames, M as setProcessAgentHttpsNames, O as AGENT_HTTPS_NAMES_COLLECTION, d as isPrivateAddress, j as getProcessAgentHttpsNames, k as AGENT_HTTPS_NAMES_COLUMNS, u as isLocalOnlyHostname } from "../../agent-https-BPfHrI4c.mjs";
|
|
6
|
-
import { a as MESH_CA_KEY_REF, c as SERVER_AUTH_OID, i as MESH_CA_FIELD, n as DEFAULT_HUB_TLS_TCP_PORT, o as MESH_CA_SETTINGS_KEY, r as MESH_CA_COMMON_NAME, s as MESH_CA_VALIDITY_DAYS, t as CLIENT_AUTH_OID } from "../../constants-
|
|
6
|
+
import { a as MESH_CA_KEY_REF, c as SERVER_AUTH_OID, i as MESH_CA_FIELD, n as DEFAULT_HUB_TLS_TCP_PORT, o as MESH_CA_SETTINGS_KEY, r as MESH_CA_COMMON_NAME, s as MESH_CA_VALIDITY_DAYS, t as CLIENT_AUTH_OID } from "../../constants-DQK705Sb.mjs";
|
|
7
7
|
import { t as require_src } from "../../src-hG4grMU4.mjs";
|
|
8
8
|
import { z } from "zod";
|
|
9
9
|
import { X509Certificate, createHash, createPrivateKey, randomBytes, randomInt, sign, timingSafeEqual, verify, webcrypto } from "node:crypto";
|
|
@@ -88586,6 +88586,7 @@ var SystemConfigAddon = class extends BaseAddon {
|
|
|
88586
88586
|
id: "system-config-server",
|
|
88587
88587
|
title: SECTION_TITLES["server"],
|
|
88588
88588
|
description: "The name of this server, and its connection settings (read-only, loaded from config.yaml at bootstrap).",
|
|
88589
|
+
descriptionKey: "server:global.s_system-config-server.description",
|
|
88589
88590
|
columns: 2,
|
|
88590
88591
|
fields: [
|
|
88591
88592
|
{
|
|
@@ -88600,6 +88601,7 @@ var SystemConfigAddon = class extends BaseAddon {
|
|
|
88600
88601
|
type: "info",
|
|
88601
88602
|
key: "server-restart-note",
|
|
88602
88603
|
label: "Restart required",
|
|
88604
|
+
labelKey: "server:global.s_system-config-server.server-restart-note.label",
|
|
88603
88605
|
content: "Port, host and data path are read-only. Change them in config.yaml and restart.",
|
|
88604
88606
|
variant: "warning"
|
|
88605
88607
|
},
|
|
@@ -88607,21 +88609,27 @@ var SystemConfigAddon = class extends BaseAddon {
|
|
|
88607
88609
|
type: "text",
|
|
88608
88610
|
key: "port",
|
|
88609
88611
|
label: "Port",
|
|
88612
|
+
labelKey: "server:global.s_system-config-server.port.label",
|
|
88610
88613
|
description: "Listening port",
|
|
88614
|
+
descriptionKey: "server:global.s_system-config-server.port.description",
|
|
88611
88615
|
disabled: true
|
|
88612
88616
|
},
|
|
88613
88617
|
{
|
|
88614
88618
|
type: "text",
|
|
88615
88619
|
key: "host",
|
|
88616
88620
|
label: "Host",
|
|
88621
|
+
labelKey: "server:global.s_system-config-server.host.label",
|
|
88617
88622
|
description: "Bind address",
|
|
88623
|
+
descriptionKey: "server:global.s_system-config-server.host.description",
|
|
88618
88624
|
disabled: true
|
|
88619
88625
|
},
|
|
88620
88626
|
{
|
|
88621
88627
|
type: "text",
|
|
88622
88628
|
key: "dataPath",
|
|
88623
88629
|
label: "Data Path",
|
|
88630
|
+
labelKey: "server:global.s_system-config-server.dataPath.label",
|
|
88624
88631
|
description: "Root data directory",
|
|
88632
|
+
descriptionKey: "server:global.s_system-config-server.dataPath.description",
|
|
88625
88633
|
disabled: true,
|
|
88626
88634
|
span: 2
|
|
88627
88635
|
}
|
|
@@ -88631,13 +88639,16 @@ var SystemConfigAddon = class extends BaseAddon {
|
|
|
88631
88639
|
id: "system-config-auth",
|
|
88632
88640
|
title: SECTION_TITLES["auth"],
|
|
88633
88641
|
description: "Token and session settings.",
|
|
88642
|
+
descriptionKey: "server:global.s_system-config-auth.description",
|
|
88634
88643
|
columns: 1,
|
|
88635
88644
|
fields: [
|
|
88636
88645
|
{
|
|
88637
88646
|
type: "text",
|
|
88638
88647
|
key: "tokenExpiry",
|
|
88639
88648
|
label: "Session lifetime",
|
|
88649
|
+
labelKey: "server:global.s_system-config-auth.tokenExpiry.label",
|
|
88640
88650
|
description: "How long a sign-in lasts without being used, as a duration string (e.g. 7d, 30d). Every refresh starts it again, so a device in use stays signed in; one left unopened this long must sign in again. A bare number is rejected — it would be read as milliseconds. Applies from the next sign-in or refresh.",
|
|
88651
|
+
descriptionKey: "server:global.s_system-config-auth.tokenExpiry.description",
|
|
88641
88652
|
placeholder: "30d",
|
|
88642
88653
|
default: "30d"
|
|
88643
88654
|
},
|
|
@@ -88645,7 +88656,9 @@ var SystemConfigAddon = class extends BaseAddon {
|
|
|
88645
88656
|
type: "text",
|
|
88646
88657
|
key: "accessTokenExpiry",
|
|
88647
88658
|
label: "Access token lifetime",
|
|
88659
|
+
labelKey: "server:global.s_system-config-auth.accessTokenExpiry.label",
|
|
88648
88660
|
description: "How long one access token lives before the app silently swaps it for a new one (e.g. 2h; between 5m and 24h, never longer than the session). Shorter limits how long a copied token is useful. Apps that predate refresh tokens get one token for the whole session instead.",
|
|
88661
|
+
descriptionKey: "server:global.s_system-config-auth.accessTokenExpiry.description",
|
|
88649
88662
|
placeholder: "2h",
|
|
88650
88663
|
default: "2h"
|
|
88651
88664
|
},
|
|
@@ -88653,13 +88666,16 @@ var SystemConfigAddon = class extends BaseAddon {
|
|
|
88653
88666
|
type: "tags",
|
|
88654
88667
|
key: "trustedProxies",
|
|
88655
88668
|
label: "Trusted reverse proxies",
|
|
88669
|
+
labelKey: "server:global.s_system-config-auth.trustedProxies.label",
|
|
88656
88670
|
description: "Addresses or CIDR ranges (e.g. 192.168.1.2 or 10.0.0.0/24) of reverse proxies in front of the hub. Only a request whose direct sender is one of these — or this host itself, as with the Cloudflare tunnel — has its X-Forwarded-For / CF-Connecting-IP read as the real client address for rate limits. Leave empty unless a proxy on another host forwards to the hub.",
|
|
88671
|
+
descriptionKey: "server:global.s_system-config-auth.trustedProxies.description",
|
|
88657
88672
|
creatable: true
|
|
88658
88673
|
},
|
|
88659
88674
|
{
|
|
88660
88675
|
type: "info",
|
|
88661
88676
|
key: "trustedNetworksWarning",
|
|
88662
88677
|
label: "Skipping two-factor authentication",
|
|
88678
|
+
labelKey: "server:global.s_system-config-auth.trustedNetworksWarning.label",
|
|
88663
88679
|
variant: "danger",
|
|
88664
88680
|
content: "A sign-in made DIRECTLY from a network listed below skips the second factor (TOTP or passkey): anyone on that network who knows or guesses a password gets in with the password alone — including a compromised camera or a guest device. Requests that come through the Cloudflare tunnel, the public address or any reverse proxy never skip it, whatever address they claim. Every skip is recorded in the authentication audit log. Leave empty (the default) to always ask for the second factor."
|
|
88665
88681
|
},
|
|
@@ -88667,7 +88683,9 @@ var SystemConfigAddon = class extends BaseAddon {
|
|
|
88667
88683
|
type: "tags",
|
|
88668
88684
|
key: "trustedNetworks",
|
|
88669
88685
|
label: "Trusted networks (skip the second factor)",
|
|
88686
|
+
labelKey: "server:global.s_system-config-auth.trustedNetworks.label",
|
|
88670
88687
|
description: "Addresses or CIDR ranges, e.g. 192.168.1.0/24. Keep it as narrow as you can — a single trusted VLAN, not the whole LAN.",
|
|
88688
|
+
descriptionKey: "server:global.s_system-config-auth.trustedNetworks.description",
|
|
88671
88689
|
creatable: true
|
|
88672
88690
|
}
|
|
88673
88691
|
]
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-GgG-7amw.js");
|
|
7
7
|
const require_formatter = require("../../formatter-DqAKDlvN.js");
|
|
8
8
|
let node_path = require("node:path");
|
|
9
9
|
node_path = require_chunk.__toESM(node_path);
|
|
@@ -106,36 +106,45 @@ var WinstonLoggingAddon = class extends require_dist.BaseAddon {
|
|
|
106
106
|
return this.schema({ sections: [{
|
|
107
107
|
id: "winston-logging",
|
|
108
108
|
title: "Logging",
|
|
109
|
+
titleKey: "server:globalSettings.s_winston-logging.title",
|
|
109
110
|
description: "Global log verbosity + retention for rotated log files on this node.",
|
|
111
|
+
descriptionKey: "server:globalSettings.s_winston-logging.description",
|
|
110
112
|
columns: 2,
|
|
111
113
|
fields: [this.field({
|
|
112
114
|
type: "select",
|
|
113
115
|
key: "level",
|
|
114
116
|
label: "Log Level",
|
|
117
|
+
labelKey: "server:globalSettings.s_winston-logging.level.label",
|
|
115
118
|
default: "info",
|
|
116
119
|
options: [
|
|
117
120
|
{
|
|
118
121
|
value: "debug",
|
|
119
|
-
label: "Debug"
|
|
122
|
+
label: "Debug",
|
|
123
|
+
labelKey: "server:globalSettings.s_winston-logging.level.o_debug.label"
|
|
120
124
|
},
|
|
121
125
|
{
|
|
122
126
|
value: "info",
|
|
123
|
-
label: "Info"
|
|
127
|
+
label: "Info",
|
|
128
|
+
labelKey: "server:globalSettings.s_winston-logging.level.o_info.label"
|
|
124
129
|
},
|
|
125
130
|
{
|
|
126
131
|
value: "warn",
|
|
127
|
-
label: "Warn"
|
|
132
|
+
label: "Warn",
|
|
133
|
+
labelKey: "server:globalSettings.s_winston-logging.level.o_warn.label"
|
|
128
134
|
},
|
|
129
135
|
{
|
|
130
136
|
value: "error",
|
|
131
|
-
label: "Error"
|
|
137
|
+
label: "Error",
|
|
138
|
+
labelKey: "server:globalSettings.s_winston-logging.level.o_error.label"
|
|
132
139
|
}
|
|
133
140
|
]
|
|
134
141
|
}), this.field({
|
|
135
142
|
type: "number",
|
|
136
143
|
key: "retentionDays",
|
|
137
144
|
label: "Retention (days)",
|
|
145
|
+
labelKey: "server:globalSettings.s_winston-logging.retentionDays.label",
|
|
138
146
|
description: "Number of days to keep rotated log files before deletion",
|
|
147
|
+
descriptionKey: "server:globalSettings.s_winston-logging.retentionDays.description",
|
|
139
148
|
min: 1,
|
|
140
149
|
max: 365,
|
|
141
150
|
step: 1,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Or as BaseAddon, mn as logDestinationCapability } from "../../dist-Dc8GKC5H.mjs";
|
|
2
2
|
import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
|
|
3
3
|
import * as path$1 from "node:path";
|
|
4
4
|
import path from "node:path";
|
|
@@ -99,36 +99,45 @@ var WinstonLoggingAddon = class extends BaseAddon {
|
|
|
99
99
|
return this.schema({ sections: [{
|
|
100
100
|
id: "winston-logging",
|
|
101
101
|
title: "Logging",
|
|
102
|
+
titleKey: "server:globalSettings.s_winston-logging.title",
|
|
102
103
|
description: "Global log verbosity + retention for rotated log files on this node.",
|
|
104
|
+
descriptionKey: "server:globalSettings.s_winston-logging.description",
|
|
103
105
|
columns: 2,
|
|
104
106
|
fields: [this.field({
|
|
105
107
|
type: "select",
|
|
106
108
|
key: "level",
|
|
107
109
|
label: "Log Level",
|
|
110
|
+
labelKey: "server:globalSettings.s_winston-logging.level.label",
|
|
108
111
|
default: "info",
|
|
109
112
|
options: [
|
|
110
113
|
{
|
|
111
114
|
value: "debug",
|
|
112
|
-
label: "Debug"
|
|
115
|
+
label: "Debug",
|
|
116
|
+
labelKey: "server:globalSettings.s_winston-logging.level.o_debug.label"
|
|
113
117
|
},
|
|
114
118
|
{
|
|
115
119
|
value: "info",
|
|
116
|
-
label: "Info"
|
|
120
|
+
label: "Info",
|
|
121
|
+
labelKey: "server:globalSettings.s_winston-logging.level.o_info.label"
|
|
117
122
|
},
|
|
118
123
|
{
|
|
119
124
|
value: "warn",
|
|
120
|
-
label: "Warn"
|
|
125
|
+
label: "Warn",
|
|
126
|
+
labelKey: "server:globalSettings.s_winston-logging.level.o_warn.label"
|
|
121
127
|
},
|
|
122
128
|
{
|
|
123
129
|
value: "error",
|
|
124
|
-
label: "Error"
|
|
130
|
+
label: "Error",
|
|
131
|
+
labelKey: "server:globalSettings.s_winston-logging.level.o_error.label"
|
|
125
132
|
}
|
|
126
133
|
]
|
|
127
134
|
}), this.field({
|
|
128
135
|
type: "number",
|
|
129
136
|
key: "retentionDays",
|
|
130
137
|
label: "Retention (days)",
|
|
138
|
+
labelKey: "server:globalSettings.s_winston-logging.retentionDays.label",
|
|
131
139
|
description: "Number of days to keep rotated log files before deletion",
|
|
140
|
+
descriptionKey: "server:globalSettings.s_winston-logging.retentionDays.description",
|
|
132
141
|
min: 1,
|
|
133
142
|
max: 365,
|
|
134
143
|
step: 1,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Dr as errMsg, br as compositionSourceKey } from "./dist-Dc8GKC5H.mjs";
|
|
2
2
|
//#region src/builtins/core-blocks/composition-sources.ts
|
|
3
3
|
/**
|
|
4
4
|
* Describe what a composition reads and writes for SAVE-time validation
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** `secret://system/global/meshCaKey` — EC P-256 PKCS#8 PEM of the hub mesh CA. */
|
|
2
|
-
var MESH_CA_KEY_REF = require("./dist-
|
|
2
|
+
var MESH_CA_KEY_REF = require("./dist-GgG-7amw.js").buildSecretRef({
|
|
3
3
|
owner: "system",
|
|
4
4
|
scope: { kind: "global" },
|
|
5
5
|
fieldPath: "meshCaKey"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { D as DEVICE_SAN_CREDENTIAL_PREFIX, O as DEVICE_SAN_USER_PREFIX, Vr as buildSecretRef } from "./dist-Dc8GKC5H.mjs";
|
|
2
2
|
import { a as KeyUsagesExtension, d as X509Certificate$1, f as X509CertificateGenerator, g as backdatedNotBefore, i as KeyUsageFlags, l as SubjectAlternativeNameExtension, n as BasicConstraintsExtension, o as PemConverter, p as cryptoProvider, r as ExtendedKeyUsageExtension, t as AuthorityKeyIdentifierExtension, u as SubjectKeyIdentifierExtension } from "./x509.es-CDvj67p1.mjs";
|
|
3
3
|
import { X509Certificate, createPublicKey, randomBytes, verify, webcrypto } from "node:crypto";
|
|
4
4
|
//#region src/auth/jwt-signing-key.ts
|