@camstack/types 1.2.123 → 1.2.126

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.
@@ -19,6 +19,42 @@ import { z } from 'zod';
19
19
  * two addons declaring the same `id` must agree on `cardinality` (validated
20
20
  * at kernel aggregation time, not here).
21
21
  */
22
+ /**
23
+ * `StorageAccess` — how the service that DECLARED a storage-location kind
24
+ * actually reaches the bytes. It is the constraint that decides which
25
+ * `storage-provider`s may back a location of that kind.
26
+ *
27
+ * - `'local-path'` — the service asks `storage.resolve` for a path string and
28
+ * then does its own `node:fs` I/O on it (the recorder's segment writer, the
29
+ * post-analysis media roots). Only a provider that serves a genuine local
30
+ * filesystem (`getProviderInfo().nodeLocal === true`) can satisfy that: a
31
+ * remote provider's `resolve` returns a path on the REMOTE host, and
32
+ * `fs.readdir` of it on this node either fails or — far worse — succeeds
33
+ * against a same-named local directory that is something else entirely.
34
+ *
35
+ * - `'cap-mediated'` — every byte travels through the `storage` cap
36
+ * (`read`/`write`, or `beginUpload`/`writeChunk`/`finalizeUpload`). The
37
+ * service never sees a path, so any provider can back it. `backups` is the
38
+ * one kind that qualifies today.
39
+ *
40
+ * Before this existed, `recordings` was unreachable by SFTP/S3/WebDAV only as
41
+ * an EMERGENT property of how the recorder happened to be written. Nothing
42
+ * refused the configuration; the first write simply went somewhere wrong, and
43
+ * a recording write that goes wrong surfaces as a silent black window rather
44
+ * than an error (the read path does not `stat`). This turns that accident into
45
+ * a declared, enforced, testable refusal.
46
+ */
47
+ export declare const StorageAccessSchema: z.ZodEnum<{
48
+ "local-path": "local-path";
49
+ "cap-mediated": "cap-mediated";
50
+ }>;
51
+ export type StorageAccess = z.infer<typeof StorageAccessSchema>;
52
+ /**
53
+ * What an ABSENT `access` means. Fail-closed: a declaration that says nothing
54
+ * is treated as if it does raw filesystem I/O, so a remote provider is
55
+ * refused for it. The permissive value must be written down.
56
+ */
57
+ export declare const STORAGE_ACCESS_FALLBACK: StorageAccess;
22
58
  export declare const StorageLocationDeclarationSchema: z.ZodObject<{
23
59
  id: z.ZodString;
24
60
  displayName: z.ZodString;
@@ -27,6 +63,10 @@ export declare const StorageLocationDeclarationSchema: z.ZodObject<{
27
63
  single: "single";
28
64
  multi: "multi";
29
65
  }>;
66
+ access: z.ZodOptional<z.ZodEnum<{
67
+ "local-path": "local-path";
68
+ "cap-mediated": "cap-mediated";
69
+ }>>;
30
70
  defaultsTo: z.ZodOptional<z.ZodString>;
31
71
  defaultRoot: z.ZodOptional<z.ZodEnum<{
32
72
  data: "data";
@@ -3445,6 +3445,8 @@ function createDeviceProxy(api, binding, opts) {
3445
3445
  getStorageMigrationMoveStatus: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getStorageMigrationMoveStatus", "query", input),
3446
3446
  cancelStorageMigrationMove: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "cancelStorageMigrationMove", "mutation", input),
3447
3447
  relocateMedia: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "relocateMedia", "mutation", input),
3448
+ countUnstampedEventMedia: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "countUnstampedEventMedia", "query", input),
3449
+ countRelocatableMedia: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "countRelocatableMedia", "query", input),
3448
3450
  listRelocateMediaJobs: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "listRelocateMediaJobs", "query", input),
3449
3451
  cancelRelocateMedia: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "cancelRelocateMedia", "mutation", input),
3450
3452
  listOpsLog: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "listOpsLog", "query", input),
@@ -3445,6 +3445,8 @@ function createDeviceProxy(api, binding, opts) {
3445
3445
  getStorageMigrationMoveStatus: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getStorageMigrationMoveStatus", "query", input),
3446
3446
  cancelStorageMigrationMove: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "cancelStorageMigrationMove", "mutation", input),
3447
3447
  relocateMedia: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "relocateMedia", "mutation", input),
3448
+ countUnstampedEventMedia: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "countUnstampedEventMedia", "query", input),
3449
+ countRelocatableMedia: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "countRelocatableMedia", "query", input),
3448
3450
  listRelocateMediaJobs: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "listRelocateMediaJobs", "query", input),
3449
3451
  cancelRelocateMedia: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "cancelRelocateMedia", "mutation", input),
3450
3452
  listOpsLog: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "listOpsLog", "query", input),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/types",
3
- "version": "1.2.123",
3
+ "version": "1.2.126",
4
4
  "description": "Shared types, interfaces, and model catalogs for the CamStack detection ecosystem",
5
5
  "keywords": [
6
6
  "camstack",