streamby-core 0.37.0 → 0.39.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.
- package/CHANGELOG.md +75 -0
- package/LICENSE +661 -661
- package/README.md +573 -512
- package/dist/adapters/database/connectionManager.js +124 -124
- package/dist/adapters/database/sql.js +1 -1
- package/dist/adapters/storage/s3.d.ts +3 -2
- package/dist/adapters/storage/s3.js +18 -5
- package/dist/mcp/server.js +12 -0
- package/dist/mcp/tools.d.ts +2 -0
- package/dist/mcp/tools.js +107 -14
- package/dist/mcp/workflowNodes.d.ts +24 -0
- package/dist/mcp/workflowNodes.js +48 -0
- package/dist/middleware/createRouter.js +2 -0
- package/dist/middleware/routes/apiConnection.d.ts +3 -0
- package/dist/middleware/routes/apiConnection.js +100 -0
- package/dist/middleware/routes/credential.d.ts +3 -0
- package/dist/middleware/routes/credential.js +80 -0
- package/dist/middleware/routes/deliverable.d.ts +3 -0
- package/dist/middleware/routes/deliverable.js +131 -0
- package/dist/middleware/routes/export.js +18 -0
- package/dist/middleware/routes/production.js +60 -67
- package/dist/middleware/routes/project.js +39 -11
- package/dist/middleware/routes/storage.js +115 -24
- package/dist/models/Model.js +9 -9
- package/dist/services/apiConnection.d.ts +18 -0
- package/dist/services/apiConnection.js +65 -0
- package/dist/services/apiTokenPermissions.js +7 -3
- package/dist/services/assetVersions.d.ts +48 -0
- package/dist/services/assetVersions.js +84 -0
- package/dist/services/credential.d.ts +8 -0
- package/dist/services/credential.js +70 -0
- package/dist/services/deliverables.d.ts +26 -0
- package/dist/services/deliverables.js +55 -0
- package/dist/services/mediaProcessor.js +3 -1
- package/dist/services/pipeline.d.ts +2 -0
- package/dist/services/pipeline.js +292 -0
- package/dist/services/production.d.ts +2 -0
- package/dist/services/production.js +13 -0
- package/dist/services/productionFields.d.ts +16 -0
- package/dist/services/productionFields.js +80 -0
- package/dist/services/signedUrls.d.ts +6 -0
- package/dist/services/signedUrls.js +9 -0
- package/dist/types/index.d.ts +7 -2
- package/dist/utils/crypto.d.ts +3 -0
- package/dist/utils/crypto.js +32 -0
- package/dist/utils/nosqlDb.d.ts +2 -0
- package/dist/utils/nosqlDb.js +11 -0
- package/dist/utils/sanitize.d.ts +1 -0
- package/dist/utils/sanitize.js +14 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,80 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.39.0
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- **Every resource of a project has its own list**, so a client fetches the one it shows instead
|
|
8
|
+
of the whole project (which still carries them all). New: `GET /projects/:id/exports` (what
|
|
9
|
+
each export is, as the project lists them: not its schema nor its credentials),
|
|
10
|
+
`GET /projects/:id/integrations` and `GET /projects/:id/origins`. They answer `{ data }`, as
|
|
11
|
+
the existing lists do (`connections`, `connections/db`, `connections/storage`, `members`,
|
|
12
|
+
`pipelines`, `workflow`), and are for the project's members. With an API token, the exports
|
|
13
|
+
need `exports:read` and the other two `project:read`.
|
|
14
|
+
|
|
15
|
+
## 0.38.0
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- **Uploading and downloading files from the MCP server**, so an agent can bring files from and
|
|
20
|
+
to the tools it works with (Blender's or Godot's own MCP, a script). The file never goes
|
|
21
|
+
through the conversation: the tools give signed URLs, and the tool that has the file uploads
|
|
22
|
+
or downloads it directly. See the README for an example with Blender.
|
|
23
|
+
- `request_asset_upload` (`assets:write`): a new asset, or a new version of one, and the URL
|
|
24
|
+
to upload its file to.
|
|
25
|
+
- `get_asset_download_url` (`assets:read`): a URL to download an asset's file, its latest
|
|
26
|
+
version or an earlier one. `list_asset_versions` lists them.
|
|
27
|
+
- **Asset versions are kept, and an asset's URL doesn't change when it's replaced.** A new
|
|
28
|
+
version (`replace-url`, from the UI too) is still uploaded to the asset's own key, so a site
|
|
29
|
+
that links to the asset shows the new one. Before that, the current version is copied to a
|
|
30
|
+
key of its own, `<key>.v<n>.<ext>`, and recorded in `asset_versions` (an asset's first
|
|
31
|
+
version is recorded on upload; an older asset gets it when it's first replaced). If it can't
|
|
32
|
+
be copied, nothing is replaced and no upload URL is given. The `replace-url` routes answer
|
|
33
|
+
the new version's `versionId` and `version`. Deleting an asset deletes every key of it.
|
|
34
|
+
- New `StorageAdapter.copyFile`, implemented by the S3 adapter. With an adapter without it,
|
|
35
|
+
asking for a new version answers 501.
|
|
36
|
+
- StreamBy doesn't set `Cache-Control` on uploads, so a browser or a CDN may serve a replaced
|
|
37
|
+
asset's earlier version for a while: set it where the files are served (see the README).
|
|
38
|
+
- `GET /projects/:projectId/assets/:fileId/download-url` (`?versionId=` for an earlier version):
|
|
39
|
+
a signed URL that downloads the file with its name, wherever it's stored.
|
|
40
|
+
- **Deliverables**: an asset, or one of its versions, delivered for a production shot or for an
|
|
41
|
+
export, kept in the NoSQL database's `deliverables` collection. `GET`, `POST` and
|
|
42
|
+
`DELETE /projects/:projectId/deliverables` list (by `shotId` or `exportId`), mark and remove
|
|
43
|
+
them; `list_deliverables`, `mark_deliverable` and `remove_deliverable` in the MCP server.
|
|
44
|
+
Deleting a shot, a sequence, an export or an asset removes its deliverables.
|
|
45
|
+
- **`mcp.signedUrlTtl`**: how long the signed URLs given to an API token work, also when it
|
|
46
|
+
lists files. Default: 15 minutes to upload, 5 to download. A session's are as before.
|
|
47
|
+
- `StorageAdapter.getPresignedUploadUrl` and `getPresignedGetUrl` take how long the URL works
|
|
48
|
+
(and `getPresignedGetUrl` the name to download it with).
|
|
49
|
+
|
|
50
|
+
- `GET /projects/:id` answers `hasProductionData`: whether the project has production
|
|
51
|
+
sequences, so a client can show them even without a production node in its workflow.
|
|
52
|
+
|
|
53
|
+
### Changed
|
|
54
|
+
|
|
55
|
+
- **Production data is checked before it's saved.** Sequences, shots and tasks need a name
|
|
56
|
+
that isn't blank; a status must be `todo`, `in_progress`, `review` or `done`, and a task's
|
|
57
|
+
priority `low`, `medium` or `high`; a shot's `assignedTo` must list active members of the
|
|
58
|
+
project, and a task's be one of them (or null); a due date must be a date. Otherwise they
|
|
59
|
+
answer 400. A shot is made only in a sequence of the project, and a task only in a shot of
|
|
60
|
+
it (404 otherwise).
|
|
61
|
+
- The MCP tools for shots take `assignedTo` as a list of user ids, as the API does, and their
|
|
62
|
+
statuses and priorities are listed in their schema.
|
|
63
|
+
- **The MCP tools take the path a user does.** `create_sequence`, `create_shot` and
|
|
64
|
+
`create_task` first add a production node (a Shot node) to the project's workflow when it
|
|
65
|
+
has none, as dropping one on the canvas does, and make nothing if it can't be added. So they
|
|
66
|
+
need `workflow:write` as well as `production:write`. Each tool's description says where its
|
|
67
|
+
result shows in the UI.
|
|
68
|
+
|
|
69
|
+
### Fixed
|
|
70
|
+
|
|
71
|
+
- **Deleting production data leaves nothing behind.** Deleting a sequence deletes its shots'
|
|
72
|
+
tasks too (they were left), and deleting a project deletes its sequences, shots, tasks and
|
|
73
|
+
deliverables. Deleting a sequence that doesn't exist answers 404.
|
|
74
|
+
- **Only editors and admins upload a new version of an asset.** The `replace-url` routes let
|
|
75
|
+
any member of the project, a viewer included, replace an asset's file.
|
|
76
|
+
- The ingest job no longer records a second version of the file an upload already recorded.
|
|
77
|
+
|
|
3
78
|
## 0.37.0
|
|
4
79
|
|
|
5
80
|
### ⚠️ Breaking changes
|