@camstack/addon-auth 1.2.52 → 1.2.54
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-CJsTqVAX.mjs → dist-B-AFMOGy.mjs} +234 -73
- package/dist/{dist-1BncBAdS.js → dist-VB88h49S.js} +234 -73
- package/dist/magic-link/auth-magic-link.addon.js +1 -1
- package/dist/magic-link/auth-magic-link.addon.mjs +1 -1
- package/dist/oidc/auth-oidc.addon.js +1 -1
- package/dist/oidc/auth-oidc.addon.mjs +1 -1
- package/dist/webauthn/_stub.js +1 -1
- package/dist/webauthn/{_virtual_mf-localSharedImportMap___mfe_internal__addon_auth_webauthn_widgets-k3vlAn--.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_auth_webauthn_widgets-bGE2cZ_w.mjs} +3 -3
- package/dist/webauthn/_virtual_mf___mfe_internal__addon_auth_webauthn_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-QVBdFyUd.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-B4Uj3n9b.mjs → hostInit-CTUcBJ2i.mjs} +3 -3
- 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-BfSNLn5E.mjs +0 -26
|
@@ -8210,6 +8210,13 @@ var MediaRelocateModeSchema = _enum([
|
|
|
8210
8210
|
]);
|
|
8211
8211
|
var RelocateMediaInputSchema = object({
|
|
8212
8212
|
toLocationId: string(),
|
|
8213
|
+
/**
|
|
8214
|
+
* Restrict the pass to rows currently on this location. Omitted / `'*'` =
|
|
8215
|
+
* every row that is not already on `toLocationId` (the historical
|
|
8216
|
+
* behaviour). A named source is what a from→to migration needs: without it
|
|
8217
|
+
* "move events off disk 2" also emptied disk 1.
|
|
8218
|
+
*/
|
|
8219
|
+
fromLocationId: string().optional(),
|
|
8213
8220
|
throttleMbps: number().min(1).max(1e3).optional(),
|
|
8214
8221
|
/** Omitted = `move`, the pre-existing behaviour. */
|
|
8215
8222
|
mode: MediaRelocateModeSchema.optional()
|
|
@@ -8277,6 +8284,19 @@ var StorageMigrationDestinationsSchema = object({
|
|
|
8277
8284
|
galleryMedia: string().min(1).optional()
|
|
8278
8285
|
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
8279
8286
|
/**
|
|
8287
|
+
* Optional named source per class. Omitted = the class's current default
|
|
8288
|
+
* (the historical behaviour). A named source that is NOT the default is a
|
|
8289
|
+
* drain of that disk: bytes move, the default stays, and the source is
|
|
8290
|
+
* disabled when the move finishes.
|
|
8291
|
+
*/
|
|
8292
|
+
var StorageMigrationSourcesSchema = object({
|
|
8293
|
+
recordings: string().min(1).optional(),
|
|
8294
|
+
recordingsLow: string().min(1).optional(),
|
|
8295
|
+
eventMedia: string().min(1).optional(),
|
|
8296
|
+
backups: string().min(1).optional(),
|
|
8297
|
+
galleryMedia: string().min(1).optional()
|
|
8298
|
+
}).optional();
|
|
8299
|
+
/**
|
|
8280
8300
|
* How a migration sequences the cutover against the byte move.
|
|
8281
8301
|
*
|
|
8282
8302
|
* - `blocking` — the historical order: pause, move every byte, repoint,
|
|
@@ -8298,6 +8318,8 @@ var StorageMigrationModeSchema = _enum(["blocking", "nonBlocking"]);
|
|
|
8298
8318
|
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
8299
8319
|
var StorageMigrationInputSchema = object({
|
|
8300
8320
|
destinations: StorageMigrationDestinationsSchema,
|
|
8321
|
+
/** Omitted = each class's current default. */
|
|
8322
|
+
sources: StorageMigrationSourcesSchema,
|
|
8301
8323
|
throttleMbps: number().min(1).max(1e3).optional(),
|
|
8302
8324
|
/** Omitted = `blocking`, which stays the default. */
|
|
8303
8325
|
mode: StorageMigrationModeSchema.optional()
|
|
@@ -8377,6 +8399,13 @@ var StorageMigrationMoveSchema = object({
|
|
|
8377
8399
|
storageClass: StorageMigrationClassSchema,
|
|
8378
8400
|
fromLocationId: string(),
|
|
8379
8401
|
toLocationId: string(),
|
|
8402
|
+
/**
|
|
8403
|
+
* True when `from` was NOT the class default at plan time. The move still
|
|
8404
|
+
* copies bytes, but the default is left alone and the source is disabled
|
|
8405
|
+
* once the copy verifies. Absent on jobs planned before this field existed
|
|
8406
|
+
* — those jobs always repointed, which is `false`.
|
|
8407
|
+
*/
|
|
8408
|
+
freezeSource: boolean().optional(),
|
|
8380
8409
|
moverJobId: string().nullable(),
|
|
8381
8410
|
state: RelocateJobStateSchema.nullable(),
|
|
8382
8411
|
error: string().nullable(),
|
|
@@ -8390,6 +8419,7 @@ var StorageMigrationJobSchema = object({
|
|
|
8390
8419
|
* can tell a seconds-long cutover from a thirty-hour one. */
|
|
8391
8420
|
mode: StorageMigrationModeSchema,
|
|
8392
8421
|
destinations: StorageMigrationDestinationsSchema,
|
|
8422
|
+
sources: StorageMigrationSourcesSchema,
|
|
8393
8423
|
throttleMbps: number(),
|
|
8394
8424
|
moves: array(StorageMigrationMoveSchema),
|
|
8395
8425
|
pauseLeaseId: string().nullable(),
|
|
@@ -8415,6 +8445,7 @@ var StorageMigrationFindingSchema = object({
|
|
|
8415
8445
|
});
|
|
8416
8446
|
var StorageMigrationPlanSchema = object({
|
|
8417
8447
|
destinations: StorageMigrationDestinationsSchema,
|
|
8448
|
+
sources: StorageMigrationSourcesSchema,
|
|
8418
8449
|
/** The mode this plan was built for. A plan is only valid for its mode: the
|
|
8419
8450
|
* `eventMedia` seal gate and the single-cardinality refusal both depend on
|
|
8420
8451
|
* it. */
|
|
@@ -8422,7 +8453,8 @@ var StorageMigrationPlanSchema = object({
|
|
|
8422
8453
|
moves: array(object({
|
|
8423
8454
|
storageClass: StorageMigrationClassSchema,
|
|
8424
8455
|
fromLocationId: string(),
|
|
8425
|
-
toLocationId: string()
|
|
8456
|
+
toLocationId: string(),
|
|
8457
|
+
freezeSource: boolean().optional()
|
|
8426
8458
|
})),
|
|
8427
8459
|
findings: array(StorageMigrationFindingSchema)
|
|
8428
8460
|
});
|
|
@@ -8600,10 +8632,51 @@ var LedgerWalkReportSchema = object({
|
|
|
8600
8632
|
var RelocatableMediaCountSchema = object({ rows: number().int().nonnegative() }).nullable();
|
|
8601
8633
|
var RelocatableMediaCountInputSchema = object({
|
|
8602
8634
|
toLocationId: string().min(1),
|
|
8635
|
+
/** Restrict the count to one source; omitted / `'*'` = every non-target row. */
|
|
8636
|
+
fromLocationId: string().optional(),
|
|
8603
8637
|
/** Omitted = `move`. */
|
|
8604
8638
|
mode: MediaRelocateModeSchema.optional()
|
|
8605
8639
|
});
|
|
8606
8640
|
/**
|
|
8641
|
+
* Operator cleanup of leftover analytics rows, optional debug media, and
|
|
8642
|
+
* ghost ledger entries on frozen footage locations.
|
|
8643
|
+
*
|
|
8644
|
+
* A pass is tens of minutes on a standing backlog. The hub method RETURNS
|
|
8645
|
+
* `{ jobId }` immediately; progress is `cleanupStatus`. Awaiting the work
|
|
8646
|
+
* is how `addons.custom` hit the 60 s UDS deadline while reclaim continued
|
|
8647
|
+
* with no operator-visible status.
|
|
8648
|
+
*/
|
|
8649
|
+
var StorageCleanupPhaseSchema = _enum([
|
|
8650
|
+
"orphans",
|
|
8651
|
+
"debug-media",
|
|
8652
|
+
"ghost-ledger",
|
|
8653
|
+
"done",
|
|
8654
|
+
"failed",
|
|
8655
|
+
"cancelled"
|
|
8656
|
+
]);
|
|
8657
|
+
var StorageCleanupInputSchema = object({
|
|
8658
|
+
/** Also walk motion stills / track filmstrips. Off by default. */
|
|
8659
|
+
includeDebugMedia: boolean().optional() });
|
|
8660
|
+
var StorageCleanupJobSchema = object({
|
|
8661
|
+
jobId: string(),
|
|
8662
|
+
phase: StorageCleanupPhaseSchema,
|
|
8663
|
+
includeDebugMedia: boolean(),
|
|
8664
|
+
orphansReclaimed: number().int().nonnegative(),
|
|
8665
|
+
orphanBytesReclaimed: number().int().nonnegative(),
|
|
8666
|
+
debugMediaReclaimed: number().int().nonnegative(),
|
|
8667
|
+
debugMediaBytesReclaimed: number().int().nonnegative(),
|
|
8668
|
+
ghostsForgotten: number().int().nonnegative(),
|
|
8669
|
+
ghostBytesForgotten: number().int().nonnegative(),
|
|
8670
|
+
/** Short operator-facing line: current collection, pass, or location. */
|
|
8671
|
+
detail: string().nullable(),
|
|
8672
|
+
cancelRequested: boolean(),
|
|
8673
|
+
startedAt: number(),
|
|
8674
|
+
updatedAt: number(),
|
|
8675
|
+
finishedAt: number().nullable(),
|
|
8676
|
+
error: string().nullable()
|
|
8677
|
+
});
|
|
8678
|
+
var StorageCleanupStatusInputSchema = object({ jobId: string().optional() });
|
|
8679
|
+
/**
|
|
8607
8680
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
8608
8681
|
* storage a location serves. Defined here (not in `capabilities/storage.cap.ts`)
|
|
8609
8682
|
* so the persisted record schema and the consumer-facing cap can both consume it
|
|
@@ -8631,11 +8704,10 @@ var StorageLocationTypeSchema = string().regex(/^[a-z][a-zA-Z0-9-]*$/);
|
|
|
8631
8704
|
* The default location for a type uses `id === <type>:default` by
|
|
8632
8705
|
* convention (the bare type ref like `'backups'` resolves to it).
|
|
8633
8706
|
*
|
|
8634
|
-
* `isSystem
|
|
8635
|
-
*
|
|
8636
|
-
*
|
|
8637
|
-
*
|
|
8638
|
-
* deleting it is rejected at the cap level.
|
|
8707
|
+
* `isSystem` is a legacy persisted flag. Seed still creates the initial
|
|
8708
|
+
* `<type>:default` locations; the flag is no longer a lock, a badge, or a
|
|
8709
|
+
* prune selector. New writes leave it false. Deletion is gated on uniqueness
|
|
8710
|
+
* / last-enabled, not on this bit.
|
|
8639
8711
|
*/
|
|
8640
8712
|
var StorageLocationSchema = object({
|
|
8641
8713
|
id: string().regex(/^[a-z][a-zA-Z0-9-]*:[a-zA-Z0-9-]+$/),
|
|
@@ -12948,6 +13020,12 @@ method(object({
|
|
|
12948
13020
|
}), _void(), {
|
|
12949
13021
|
kind: "mutation",
|
|
12950
13022
|
auth: "admin"
|
|
13023
|
+
}), method(object({
|
|
13024
|
+
from: string(),
|
|
13025
|
+
to: string()
|
|
13026
|
+
}), object({ moved: number() }), {
|
|
13027
|
+
kind: "mutation",
|
|
13028
|
+
auth: "admin"
|
|
12951
13029
|
}), method(object({
|
|
12952
13030
|
deviceId: number(),
|
|
12953
13031
|
disabled: boolean()
|
|
@@ -18886,46 +18964,6 @@ var RecentTracksPageSchema = object({
|
|
|
18886
18964
|
/** Cursor for the next page, or null when this page is the last. */
|
|
18887
18965
|
nextCursor: string().nullable()
|
|
18888
18966
|
});
|
|
18889
|
-
var LIST_GROUPS_DEFAULT_LIMIT = 40;
|
|
18890
|
-
var LIST_GROUPS_MAX_LIMIT = 100;
|
|
18891
|
-
var AnalyticsGroupRecordSchema = object({
|
|
18892
|
-
id: string(),
|
|
18893
|
-
deviceId: number().int(),
|
|
18894
|
-
openedAt: number().int(),
|
|
18895
|
-
closedAt: number().int(),
|
|
18896
|
-
timestamp: number().int(),
|
|
18897
|
-
memberCount: number().int(),
|
|
18898
|
-
memberTrackIds: array(string()).readonly(),
|
|
18899
|
-
className: string(),
|
|
18900
|
-
classes: array(string()).readonly(),
|
|
18901
|
-
/** Relative event-media path, or null when the group has no picture yet. */
|
|
18902
|
-
mediaUrl: string().nullable(),
|
|
18903
|
-
singleton: boolean()
|
|
18904
|
-
});
|
|
18905
|
-
var AnalyticsGroupMemberSchema = object({
|
|
18906
|
-
trackId: string(),
|
|
18907
|
-
deviceId: number().int(),
|
|
18908
|
-
className: string(),
|
|
18909
|
-
firstSeen: number().int(),
|
|
18910
|
-
lastSeen: number().int(),
|
|
18911
|
-
mediaUrl: string().nullable()
|
|
18912
|
-
});
|
|
18913
|
-
var AnalyticsGroupDetailSchema = AnalyticsGroupRecordSchema.extend({ members: array(AnalyticsGroupMemberSchema).readonly() });
|
|
18914
|
-
var ListGroupsQueryInput = object({
|
|
18915
|
-
/** Devices to merge. An empty array yields `{ groups: [], nextCursor: null }`. */
|
|
18916
|
-
deviceIds: array(number()),
|
|
18917
|
-
/** Window lower bound on `closedAt` (inclusive). */
|
|
18918
|
-
since: number().optional(),
|
|
18919
|
-
/** Window upper bound on `openedAt` (inclusive). */
|
|
18920
|
-
until: number().optional(),
|
|
18921
|
-
limit: number().int().min(1).max(LIST_GROUPS_MAX_LIMIT).default(LIST_GROUPS_DEFAULT_LIMIT),
|
|
18922
|
-
/** Opaque continuation cursor from a previous page's `nextCursor`. */
|
|
18923
|
-
cursor: string().optional()
|
|
18924
|
-
});
|
|
18925
|
-
var ListGroupsPageSchema = object({
|
|
18926
|
-
groups: array(AnalyticsGroupRecordSchema).readonly(),
|
|
18927
|
-
nextCursor: string().nullable()
|
|
18928
|
-
});
|
|
18929
18967
|
var KEY_EVENTS_DEFAULT_LIMIT = 50;
|
|
18930
18968
|
var KEY_EVENTS_MAX_LIMIT = 200;
|
|
18931
18969
|
var KeyEventQueryInput = object({
|
|
@@ -19029,9 +19067,7 @@ var TrackCascadeCountsSchema = object({
|
|
|
19029
19067
|
/** Unassigned plate reads removed (best-effort; plate leg deferred to plate-intelligence). */
|
|
19030
19068
|
plates: number().int(),
|
|
19031
19069
|
/** Per-track CLIP search vectors removed (best-effort). */
|
|
19032
|
-
embeddings: number().int()
|
|
19033
|
-
/** Group membership + group rows removed with their last member (best-effort). */
|
|
19034
|
-
groups: number().int()
|
|
19070
|
+
embeddings: number().int()
|
|
19035
19071
|
});
|
|
19036
19072
|
/** Disk-wins reconcile: media rows whose blobs are gone, then empty tracks. */
|
|
19037
19073
|
var DiskReconcileCountsSchema = object({
|
|
@@ -19201,6 +19237,47 @@ var RebuildStatusSchema = object({
|
|
|
19201
19237
|
/** Present when the pass ended by throwing. */
|
|
19202
19238
|
error: string().nullable()
|
|
19203
19239
|
});
|
|
19240
|
+
/**
|
|
19241
|
+
* Acknowledgement that a debug-media reclaim STARTED.
|
|
19242
|
+
*
|
|
19243
|
+
* The pass is paced at ~2 MB/s over a standing 100 GB — tens of minutes — so
|
|
19244
|
+
* it runs detached and this returns immediately. Awaiting it is how the
|
|
19245
|
+
* `addons.custom` door hit the 60 s UDS deadline while the walk carried on
|
|
19246
|
+
* with no status. Poll {@link pipelineAnalyticsCapability.methods.getMediaReclaimStatus}.
|
|
19247
|
+
*/
|
|
19248
|
+
var MediaReclaimStartResultSchema = object({
|
|
19249
|
+
started: boolean(),
|
|
19250
|
+
/** True when a pass was already running; the new request is ignored. */
|
|
19251
|
+
alreadyRunning: boolean()
|
|
19252
|
+
});
|
|
19253
|
+
var MediaReclaimInputSchema = object({
|
|
19254
|
+
mode: _enum(["report", "reclaim"]).default("report"),
|
|
19255
|
+
scopes: array(_enum(["motion-still", "track-filmstrip"])).min(1).optional(),
|
|
19256
|
+
deviceIds: array(number().int()).min(1).optional(),
|
|
19257
|
+
restart: boolean().optional(),
|
|
19258
|
+
pageSize: number().int().min(50).max(5e3).optional(),
|
|
19259
|
+
maxRowsPerDevice: number().int().min(1).max(5e5).optional(),
|
|
19260
|
+
maxReclaimPerDevice: number().int().min(1).max(5e5).optional(),
|
|
19261
|
+
maxBytesPerRun: number().int().min(1).optional(),
|
|
19262
|
+
budgetMinutes: number().int().min(1).max(720).optional(),
|
|
19263
|
+
throttleBytesPerSec: number().int().min(64 * 1024).optional(),
|
|
19264
|
+
graceMinutes: number().int().min(1).max(10080).optional()
|
|
19265
|
+
});
|
|
19266
|
+
var MediaReclaimStatusSchema = object({
|
|
19267
|
+
running: boolean(),
|
|
19268
|
+
mode: _enum(["report", "reclaim"]).nullable(),
|
|
19269
|
+
totalExamined: number(),
|
|
19270
|
+
totalEligible: number(),
|
|
19271
|
+
totalReclaimed: number(),
|
|
19272
|
+
totalBytesReclaimed: number(),
|
|
19273
|
+
totalRefused: number(),
|
|
19274
|
+
/** Device+scope windows finished in this pass. */
|
|
19275
|
+
devicesDone: number(),
|
|
19276
|
+
complete: boolean().nullable(),
|
|
19277
|
+
startedAtMs: number().nullable(),
|
|
19278
|
+
finishedAtMs: number().nullable(),
|
|
19279
|
+
error: string().nullable()
|
|
19280
|
+
});
|
|
19204
19281
|
var ReplayFrameInputSchema = object({
|
|
19205
19282
|
timestamp: number(),
|
|
19206
19283
|
frame: PipelineRunResultBridge
|
|
@@ -19239,10 +19316,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
19239
19316
|
* stationary registry). Default false: the timeline lists passages,
|
|
19240
19317
|
* not parking records (operator decision, 2026-08-15). */
|
|
19241
19318
|
includeStationary: boolean().optional()
|
|
19242
|
-
}), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(
|
|
19243
|
-
deviceId: number(),
|
|
19244
|
-
groupId: string().min(1)
|
|
19245
|
-
}), AnalyticsGroupDetailSchema.nullable()), method(object({ deviceId: number() }), _void(), {
|
|
19319
|
+
}), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(object({ deviceId: number() }), _void(), {
|
|
19246
19320
|
kind: "mutation",
|
|
19247
19321
|
auth: "admin"
|
|
19248
19322
|
}), method(DeviceEventQueryInput, array(MotionEventSchema).readonly()), method(ObjectEventQueryInput, array(ObjectEventSchema).readonly()), method(DeviceEventQueryInput, array(AudioEventSchema).readonly()), method(object({ deviceId: number() }), array(EventKindDescriptorSchema).readonly()), method(object({ deviceIds: array(number()).min(1).max(200) }), array(EventKindsForDeviceSchema).readonly()), method(object({
|
|
@@ -19342,6 +19416,12 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
19342
19416
|
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
19343
19417
|
kind: "query",
|
|
19344
19418
|
auth: "admin"
|
|
19419
|
+
}), method(MediaReclaimInputSchema, MediaReclaimStartResultSchema, {
|
|
19420
|
+
kind: "mutation",
|
|
19421
|
+
auth: "admin"
|
|
19422
|
+
}), method(object({}), MediaReclaimStatusSchema, {
|
|
19423
|
+
kind: "query",
|
|
19424
|
+
auth: "admin"
|
|
19345
19425
|
}), method(object({ deviceIds: array(number()).optional() }), TrainingExportSummarySchema, {
|
|
19346
19426
|
kind: "query",
|
|
19347
19427
|
auth: "admin"
|
|
@@ -21312,7 +21392,13 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
|
|
|
21312
21392
|
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
|
|
21313
21393
|
kind: "mutation",
|
|
21314
21394
|
auth: "admin"
|
|
21315
|
-
})
|
|
21395
|
+
}), method(StorageCleanupInputSchema, object({ jobId: string() }), {
|
|
21396
|
+
kind: "mutation",
|
|
21397
|
+
auth: "admin"
|
|
21398
|
+
}), method(StorageCleanupStatusInputSchema, StorageCleanupJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
21399
|
+
kind: "mutation",
|
|
21400
|
+
auth: "admin"
|
|
21401
|
+
}), method(object({}), array(StorageMigrationJobSchema).readonly(), { auth: "admin" });
|
|
21316
21402
|
var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
21317
21403
|
providerId: string().min(1),
|
|
21318
21404
|
displayName: string().min(1),
|
|
@@ -26725,6 +26811,33 @@ var RecordingRebalanceInputSchema = object({
|
|
|
26725
26811
|
minMoveGb: number().min(0).optional()
|
|
26726
26812
|
});
|
|
26727
26813
|
/**
|
|
26814
|
+
* Operator-facing placement of one camera onto a recordings location.
|
|
26815
|
+
*
|
|
26816
|
+
* `pinLocationId` is the operator instruction: a location id, or `null` for
|
|
26817
|
+
* Auto (the planner may move this camera). `locationId` is where high/mid
|
|
26818
|
+
* currently write — the plan, which may disagree with the pin when Auto.
|
|
26819
|
+
*/
|
|
26820
|
+
var RecordingDevicePlacementSchema = object({
|
|
26821
|
+
deviceId: number().int(),
|
|
26822
|
+
profile: string(),
|
|
26823
|
+
locationId: string()
|
|
26824
|
+
});
|
|
26825
|
+
var RecordingDevicePinSchema = object({
|
|
26826
|
+
deviceId: number().int(),
|
|
26827
|
+
/** Recordings-class location this camera is pinned to. */
|
|
26828
|
+
locationId: string()
|
|
26829
|
+
});
|
|
26830
|
+
var RecordingPlacementViewSchema = object({
|
|
26831
|
+
assignments: array(RecordingDevicePlacementSchema),
|
|
26832
|
+
pins: array(RecordingDevicePinSchema),
|
|
26833
|
+
defaultLocations: record(string(), string())
|
|
26834
|
+
});
|
|
26835
|
+
var RecordingSetDevicePlacementInputSchema = object({
|
|
26836
|
+
deviceId: number().int(),
|
|
26837
|
+
/** `null` = Auto. Otherwise a `recordings:*` location id. */
|
|
26838
|
+
locationId: string().nullable()
|
|
26839
|
+
});
|
|
26840
|
+
/**
|
|
26728
26841
|
* Result of locating footage at a wall-clock instant for one device/profile.
|
|
26729
26842
|
* `segment` carries the covering segment's window; `gap` reports the forward
|
|
26730
26843
|
* nearest covered edge (`null` past the end of footage / when none exists)
|
|
@@ -26950,6 +27063,12 @@ method(object({
|
|
|
26950
27063
|
}), method(RecordingRebalanceInputSchema, RecordingRebalancePlanSchema, {
|
|
26951
27064
|
kind: "mutation",
|
|
26952
27065
|
auth: "admin"
|
|
27066
|
+
}), method(object({}), RecordingPlacementViewSchema, {
|
|
27067
|
+
kind: "query",
|
|
27068
|
+
auth: "admin"
|
|
27069
|
+
}), method(RecordingSetDevicePlacementInputSchema, object({ ok: literal(true) }), {
|
|
27070
|
+
kind: "mutation",
|
|
27071
|
+
auth: "admin"
|
|
26953
27072
|
});
|
|
26954
27073
|
/**
|
|
26955
27074
|
* `recording-export` cap — render a footage time range into a single downloadable
|
|
@@ -30320,6 +30439,12 @@ Object.freeze({
|
|
|
30320
30439
|
addonId: null,
|
|
30321
30440
|
access: "delete"
|
|
30322
30441
|
},
|
|
30442
|
+
"deviceManager.renameLocation": {
|
|
30443
|
+
capName: "device-manager",
|
|
30444
|
+
capScope: "system",
|
|
30445
|
+
addonId: null,
|
|
30446
|
+
access: "create"
|
|
30447
|
+
},
|
|
30323
30448
|
"deviceManager.runDeviceAction": {
|
|
30324
30449
|
capName: "device-manager",
|
|
30325
30450
|
capScope: "system",
|
|
@@ -32012,19 +32137,19 @@ Object.freeze({
|
|
|
32012
32137
|
addonId: null,
|
|
32013
32138
|
access: "view"
|
|
32014
32139
|
},
|
|
32015
|
-
"pipelineAnalytics.
|
|
32140
|
+
"pipelineAnalytics.getKeyEvents": {
|
|
32016
32141
|
capName: "pipeline-analytics",
|
|
32017
32142
|
capScope: "device",
|
|
32018
32143
|
addonId: null,
|
|
32019
32144
|
access: "view"
|
|
32020
32145
|
},
|
|
32021
|
-
"pipelineAnalytics.
|
|
32146
|
+
"pipelineAnalytics.getKeyEventsBatch": {
|
|
32022
32147
|
capName: "pipeline-analytics",
|
|
32023
32148
|
capScope: "device",
|
|
32024
32149
|
addonId: null,
|
|
32025
32150
|
access: "view"
|
|
32026
32151
|
},
|
|
32027
|
-
"pipelineAnalytics.
|
|
32152
|
+
"pipelineAnalytics.getMediaReclaimStatus": {
|
|
32028
32153
|
capName: "pipeline-analytics",
|
|
32029
32154
|
capScope: "device",
|
|
32030
32155
|
addonId: null,
|
|
@@ -32114,12 +32239,6 @@ Object.freeze({
|
|
|
32114
32239
|
addonId: null,
|
|
32115
32240
|
access: "view"
|
|
32116
32241
|
},
|
|
32117
|
-
"pipelineAnalytics.listGroups": {
|
|
32118
|
-
capName: "pipeline-analytics",
|
|
32119
|
-
capScope: "device",
|
|
32120
|
-
addonId: null,
|
|
32121
|
-
access: "view"
|
|
32122
|
-
},
|
|
32123
32242
|
"pipelineAnalytics.listOpsLog": {
|
|
32124
32243
|
capName: "pipeline-analytics",
|
|
32125
32244
|
capScope: "device",
|
|
@@ -32204,6 +32323,12 @@ Object.freeze({
|
|
|
32204
32323
|
addonId: null,
|
|
32205
32324
|
access: "create"
|
|
32206
32325
|
},
|
|
32326
|
+
"pipelineAnalytics.reclaimDebugMedia": {
|
|
32327
|
+
capName: "pipeline-analytics",
|
|
32328
|
+
capScope: "device",
|
|
32329
|
+
addonId: null,
|
|
32330
|
+
access: "create"
|
|
32331
|
+
},
|
|
32207
32332
|
"pipelineAnalytics.reconcileFromDisk": {
|
|
32208
32333
|
capName: "pipeline-analytics",
|
|
32209
32334
|
capScope: "device",
|
|
@@ -33128,6 +33253,12 @@ Object.freeze({
|
|
|
33128
33253
|
addonId: null,
|
|
33129
33254
|
access: "view"
|
|
33130
33255
|
},
|
|
33256
|
+
"recording.getPlacement": {
|
|
33257
|
+
capName: "recording",
|
|
33258
|
+
capScope: "system",
|
|
33259
|
+
addonId: null,
|
|
33260
|
+
access: "view"
|
|
33261
|
+
},
|
|
33131
33262
|
"recording.getPlaybackManifest": {
|
|
33132
33263
|
capName: "recording",
|
|
33133
33264
|
capScope: "system",
|
|
@@ -33254,6 +33385,12 @@ Object.freeze({
|
|
|
33254
33385
|
addonId: null,
|
|
33255
33386
|
access: "create"
|
|
33256
33387
|
},
|
|
33388
|
+
"recording.setDevicePlacement": {
|
|
33389
|
+
capName: "recording",
|
|
33390
|
+
capScope: "system",
|
|
33391
|
+
addonId: null,
|
|
33392
|
+
access: "create"
|
|
33393
|
+
},
|
|
33257
33394
|
"recording.startStorageMigrationMove": {
|
|
33258
33395
|
capName: "recording",
|
|
33259
33396
|
capScope: "system",
|
|
@@ -33698,12 +33835,36 @@ Object.freeze({
|
|
|
33698
33835
|
addonId: null,
|
|
33699
33836
|
access: "create"
|
|
33700
33837
|
},
|
|
33838
|
+
"storageMigration.cleanupCancel": {
|
|
33839
|
+
capName: "storage-migration",
|
|
33840
|
+
capScope: "system",
|
|
33841
|
+
addonId: null,
|
|
33842
|
+
access: "create"
|
|
33843
|
+
},
|
|
33844
|
+
"storageMigration.cleanupStart": {
|
|
33845
|
+
capName: "storage-migration",
|
|
33846
|
+
capScope: "system",
|
|
33847
|
+
addonId: null,
|
|
33848
|
+
access: "create"
|
|
33849
|
+
},
|
|
33850
|
+
"storageMigration.cleanupStatus": {
|
|
33851
|
+
capName: "storage-migration",
|
|
33852
|
+
capScope: "system",
|
|
33853
|
+
addonId: null,
|
|
33854
|
+
access: "view"
|
|
33855
|
+
},
|
|
33701
33856
|
"storageMigration.drain": {
|
|
33702
33857
|
capName: "storage-migration",
|
|
33703
33858
|
capScope: "system",
|
|
33704
33859
|
addonId: null,
|
|
33705
33860
|
access: "create"
|
|
33706
33861
|
},
|
|
33862
|
+
"storageMigration.history": {
|
|
33863
|
+
capName: "storage-migration",
|
|
33864
|
+
capScope: "system",
|
|
33865
|
+
addonId: null,
|
|
33866
|
+
access: "view"
|
|
33867
|
+
},
|
|
33707
33868
|
"storageMigration.movers": {
|
|
33708
33869
|
capName: "storage-migration",
|
|
33709
33870
|
capScope: "system",
|
|
@@ -35700,11 +35861,6 @@ Object.freeze({
|
|
|
35700
35861
|
form: "single",
|
|
35701
35862
|
optional: true
|
|
35702
35863
|
}],
|
|
35703
|
-
"pipelineAnalytics.getGroup": [{
|
|
35704
|
-
name: "deviceId",
|
|
35705
|
-
form: "single",
|
|
35706
|
-
optional: false
|
|
35707
|
-
}],
|
|
35708
35864
|
"pipelineAnalytics.getKeyEvents": [{
|
|
35709
35865
|
name: "deviceId",
|
|
35710
35866
|
form: "single",
|
|
@@ -35770,11 +35926,6 @@ Object.freeze({
|
|
|
35770
35926
|
form: "single",
|
|
35771
35927
|
optional: false
|
|
35772
35928
|
}],
|
|
35773
|
-
"pipelineAnalytics.listGroups": [{
|
|
35774
|
-
name: "deviceIds",
|
|
35775
|
-
form: "array",
|
|
35776
|
-
optional: false
|
|
35777
|
-
}],
|
|
35778
35929
|
"pipelineAnalytics.listOpsLog": [{
|
|
35779
35930
|
name: "deviceId",
|
|
35780
35931
|
form: "single",
|
|
@@ -35820,6 +35971,11 @@ Object.freeze({
|
|
|
35820
35971
|
form: "single",
|
|
35821
35972
|
optional: true
|
|
35822
35973
|
}],
|
|
35974
|
+
"pipelineAnalytics.reclaimDebugMedia": [{
|
|
35975
|
+
name: "deviceIds",
|
|
35976
|
+
form: "array",
|
|
35977
|
+
optional: true
|
|
35978
|
+
}],
|
|
35823
35979
|
"pipelineAnalytics.reconcileFromDisk": [{
|
|
35824
35980
|
name: "deviceId",
|
|
35825
35981
|
form: "single",
|
|
@@ -36185,6 +36341,11 @@ Object.freeze({
|
|
|
36185
36341
|
form: "single",
|
|
36186
36342
|
optional: false
|
|
36187
36343
|
}],
|
|
36344
|
+
"recording.setDevicePlacement": [{
|
|
36345
|
+
name: "deviceId",
|
|
36346
|
+
form: "single",
|
|
36347
|
+
optional: false
|
|
36348
|
+
}],
|
|
36188
36349
|
"recording.startStorageMigrationMove": [{
|
|
36189
36350
|
name: "deviceId",
|
|
36190
36351
|
form: "single",
|