openvibers/openvibe.media Commits

account-data: pin openvibe-sdk 0.74.0 and guard every table with a person column (#230)

OP OpenVibers committed 14 days ago · e2c1db2d46 · 5 files, +27 −8

* account-data: pin openvibe-sdk 0.74.0 and guard every table with a person column

* ci: run the checks for this branch

* Merge remote-tracking branch 'origin/main' into adr033-account-data

# Conflicts:
#	README.md
#	STATUS.json
#	package-lock.json
#	package.json

Changes

ddiff --git a/README.md b/README.md
iindex 92adbfa..1995c2f 100644
---- a/README.md
++++ b/README.md
@@@ -129,7 +129,7 @@ server/
storage.orphans.scan (monthly storage orphan report, service-wide, report only),
storage.move.cleanup (the alert for placement moves whose delete keeps failing, service-wide)
client-ip.js trust proxy = loopback; req.ip is the only client address
--(openvibe-shared v4.48.0, openvibe-contracts v0.222.0, openvibe-sdk v0.67.0: pinned release tarballs, installed by npm)
++(openvibe-shared v4.48.0, openvibe-contracts v0.222.0, openvibe-sdk v0.74.0: pinned release tarballs, installed by npm)
scripts/smoke-test.sh end-to-end smoke test (boots a temp instance)
scripts/reconcile-objects.js / object-invariant.js / no-good-copy-report.js object-model operator tools
scripts/media-jobs.js list jobs, run the size-invariant scan (dry run by default), approve/cancel proposals
@@@ -756,6 +756,6 @@ restart; afterwards `sudo ovhost rollback media --to <sha>`.
<!-- versions:start -->
- openvibe-contracts: v0.222.0
--- openvibe-sdk: v0.67.0
++- openvibe-sdk: v0.74.0
- openvibe-shared: v4.48.0
<!-- versions:end -->
ddiff --git a/STATUS.json b/STATUS.json
iindex bdfa414..f6e7d49 100644
---- a/STATUS.json
++++ b/STATUS.json
@@@ -7,7 +7,7 @@
"port": 4100,
"domain": "openvibe.media",
"contracts": "openvibe-contracts v0.222.0",
-- "sdk": "openvibe-sdk v0.67.0",
++ "sdk": "openvibe-sdk v0.74.0",
"shared": "openvibe-shared v4.48.0",
"capabilities": [
"media.object.upload",
ddiff --git a/package-lock.json b/package-lock.json
iindex 68f54f5..668ab69 100644
---- a/package-lock.json
++++ b/package-lock.json
@@@ -17,7 +17,7 @@
"iovalkey": "^0.4.0",
"multer": "^1.4.5-lts.1",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.222.0",
-- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.67.0",
++ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.74.0",
"openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.48.0",
"pg": "^8.23.0",
"sharp": "^0.33.4"
@@@ -2138,9 +2138,9 @@
}
},
"node_modules/openvibe-sdk": {
-- "version": "0.67.0",
-- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.67.0",
-- "integrity": "sha512-s7NzjaNcowVcOIiup2z0ze+xsq/qnr++3pHSI8JzirqJPQ5JsBSUF5RkjOHyfk9bRKlmhY0fsNS6x4dsYylyqw==",
++ "version": "0.74.0",
++ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.74.0",
++ "integrity": "sha512-DO9KVPnUriY/I4lX6ZEJtXaUvRDbJyqnqJxvlpl+zkNGFILpmuBXVJogNOCfK071Qci1gg7C4Iw1Xrseklcajg==",
"license": "MIT",
"bin": {
"openvibe-download": "bin/openvibe-download.js"
ddiff --git a/package.json b/package.json
iindex d8153bd..f66307e 100644
---- a/package.json
++++ b/package.json
@@@ -21,7 +21,7 @@
"iovalkey": "^0.4.0",
"multer": "^1.4.5-lts.1",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.222.0",
-- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.67.0",
++ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.74.0",
"openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.48.0",
"pg": "^8.23.0",
"sharp": "^0.33.4"
ddiff --git a/test/account-data.test.js b/test/account-data.test.js
iindex 64b95c7..a205df9 100644
---- a/test/account-data.test.js
++++ b/test/account-data.test.js
@@@ -18,7 +18,26 @@ const path = require('path');
console.warn = () => {};
const { validate } = require('openvibe-contracts');
const accountData = require('../server/account-data');
++ const { uncovered } = require('openvibe-sdk/account-data');
const db = require('../server/db/database').getDb();
++ {
++ const missing = await uncovered(db, {
++ taskKeyed: ['vods', 'clips', 'files'],
++ exempt: {
++ account_data_events: 'the ledger of requests itself: which export and deletion Media applied',
++ assets: 'legacy rows keyed by Live\'s numeric user id, not a Network subject',
++ media_access_keys: 'project-scoped S3 keys; the project owns them and created_by is the issuer audit trail',
++ config_snapshots: 'the configuration audit trail, attributed to the staff member who changed it',
++ media_holds: 'a moderation, DMCA or legal hold is kept until it is released',
++ media_jobs: 'operational job history, without the person\'s content',
++ media_namespaces: 'a namespace belongs to an app or project, not a person',
++ pastes: 'a frozen table Community owns and erases itself',
++ paste_comments: 'a frozen table Community owns and erases itself',
++ paste_likes: 'a frozen table Community owns and erases itself',
++ },
++ });
++ assert.deepStrictEqual(missing, [], `a table with a person column is neither covered nor exempted: ${missing.join(', ')}`);
++ }
const DANA = 'usr_01J8Z3Q4R5S6T7V8W9X0Y1Z2A3', OLD = 'usr_01J8Z3Q4R5S6T7V8W9X0Y1Z2B4', XENA = 'usr_01J8Z3Q4R5S6T7V8W9X0Y1Z2C5';
const obj = db.prepare("INSERT INTO media_objects (id, app_id, namespace, kind, owner_subject, visibility, lifecycle_status, legacy_ref) VALUES (?, 'live', 'live', ?, ?, 'public', 'ready', ?)");