@voltro/plugin-storage 0.86.0 → 0.88.0

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.
Files changed (52) hide show
  1. package/CHANGELOG.md +5484 -0
  2. package/README.md +27 -0
  3. package/THIRD-PARTY-NOTICES.md +2503 -690
  4. package/dist/access.js +26 -27
  5. package/dist/assetRef.js +1 -2
  6. package/dist/avatar.js +1 -2
  7. package/dist/byteSecurity.d.ts +3 -0
  8. package/dist/byteSecurity.js +6 -0
  9. package/dist/connection.js +98 -0
  10. package/dist/constraints.js +1 -2
  11. package/dist/custody.js +131 -0
  12. package/dist/derivatives.js +1 -2
  13. package/dist/env.js +8 -3
  14. package/dist/grant.js +90 -71
  15. package/dist/index.d.ts +453 -215
  16. package/dist/index.js +709 -537
  17. package/dist/ingest.js +7 -2
  18. package/dist/ingestPolicy.js +1 -1
  19. package/dist/metadataError.js +8 -9
  20. package/dist/objectAbandon.js +15 -0
  21. package/dist/objectLifecycle.js +135 -102
  22. package/dist/objectMetadata.js +253 -96
  23. package/dist/objectWriter.js +51 -23
  24. package/dist/pathDurability.js +1 -2
  25. package/dist/physicalReferences.js +53 -0
  26. package/dist/providers.js +451 -307
  27. package/dist/referenceCatalogue.js +1 -2
  28. package/dist/renditionProof.js +81 -0
  29. package/dist/retainedCapture.js +390 -0
  30. package/dist/retainedObjects.js +189 -0
  31. package/dist/rpc.d.ts +1 -15
  32. package/dist/rpc.js +1 -2
  33. package/dist/scanners.js +1 -2
  34. package/dist/server.d.ts +153 -0
  35. package/dist/server.js +4 -0
  36. package/dist/service.js +879 -546
  37. package/dist/sourceIdentity.js +13 -0
  38. package/dist/sourcePin.js +34 -0
  39. package/dist/storageNamespaces.js +52 -29
  40. package/dist/storageNumbers.js +1 -2
  41. package/dist/storageObjectNamespaces.js +170 -122
  42. package/dist/storageReferenceInstances.js +1 -2
  43. package/dist/storageRequest.js +9 -0
  44. package/dist/storageRouting.js +45 -0
  45. package/dist/streamBridge.js +5 -3
  46. package/dist/table.js +2 -2
  47. package/dist/transcodeVideo.js +85 -48
  48. package/dist/transform.js +30 -27
  49. package/dist/transformCache.js +1 -2
  50. package/dist/types.d.ts +115 -137
  51. package/dist/types.js +15 -16
  52. package/package.json +22 -11
package/README.md CHANGED
@@ -20,6 +20,18 @@ Installation, guides, the full API reference, and examples all live in the
20
20
  **[Voltro documentation](https://docs.voltro.dev/docs/intro/getting-started)** — the single source of truth. This README is
21
21
  deliberately short so there is nothing here to drift out of date.
22
22
 
23
+ ## Server helpers
24
+
25
+ Import transport connectors and signed grant/upload-session helpers from
26
+ `@voltro/plugin-storage/server` in server code. This entry uses the same
27
+ implementations as the plugin root without loading the plugin registration graph. Browser descriptors use `@voltro/plugin-storage/rpc` and
28
+ `@voltro/plugin-storage/errors`; the server entry is not browser-safe.
29
+
30
+ Server-side operation coordination can observe a durable put with
31
+ `makeStorageObjectMetadata(store).lookup(scope, claim)` without acquiring another
32
+ claim or accessing provider bytes. See the Storage docs for pending/deleted
33
+ states and the unverified execution status.
34
+
23
35
  ### Bounded HTTP source reader
24
36
 
25
37
  Server integrations may use `fetchIngestBody(url, maxBytes?, policy?)` to collect
@@ -68,6 +80,21 @@ Pass the returned `operationId` in a fresh authorized `storage.mintUploadTicket`
68
80
 
69
81
  Object keys are physical provider keys. Native operation-backed writes use their existing content-addressed namespace; use the reference ID and approved ticket binding instead of inferring authority from a logical path inside a physical key.
70
82
 
83
+ ## Observe a durable operation from trusted server code
84
+
85
+ `StorageService.operationStatus({ operationId, tenantId })` reads the exact original put identity in the selected service's configured instance, actual reference catalogue, physical namespace and logical bucket. Supply the tenant explicitly, including `null` for a global operation. Every result includes an opaque `scope` identifying that destination; recovery code must compare it with its retained scope.
86
+
87
+ The states are `absent`, `reserved`, `ready`, `deleting` and `deleted`. Only `ready` includes a matching readable `ref`. Unsupported, unbound, inconsistent or unavailable metadata fails with `StorageError`; it never becomes `absent`. The observation does not reserve, put, claim, delete, read provider bytes or retry a provider operation. Existing operation IDs and tables do not change.
88
+
89
+ Authorize the business operation before using this trusted server API. It is not a client RPC or access-policy check. Absence is an observation of this metadata view, not proof that an earlier provider request did nothing. Readiness does not prove current provider bytes, continued liveness or application-level artifact validity. Verify those separately, and keep the original operation identity when the outcome is uncertain. Custom `StorageServiceShape` implementations must add this method or return a typed unsupported `StorageError`; the standard service implements it.
90
+
91
+ ## HTTPS-only source reads
92
+
93
+ `IngestPolicy.requireHttps: true` requires HTTPS at the initial URL and every
94
+ redirect before fetching. Host allowlisting does not bypass it. The default is
95
+ false. This applies to `fetchIngestBody` and configured URL ingestion while
96
+ preserving the existing byte, redirect, address and cancellation boundaries.
97
+
71
98
  ## Signed token deadlines
72
99
 
73
100
  Native signed read grants and upload, finalize, resumable and multipart tickets expire at their signed Unix-second deadline. Verification refuses the exact deadline and every later instant; a zero-second lifetime grants no usable interval. Obtain a new token through the authorized issuer when another transfer or read is needed.