openvibers/openvibe.media Commits
N-1 fixtures re-recorded from a207b1d, the release now in production (npm run n-1:record).
Changes
@@@ -1,14 +1,14 @@{"service": "media",-- "release": "be0facd28e64c0b8e7f7322b69e65a1953103070",-- "recorded_at": "2026-09-27T22:05:42.752Z",++ "release": "a207b1d28b12d333484d087ee37c2c2e3edeee5e",++ "recorded_at": "2026-09-27T23:24:22.333Z","note": "N-1 fixture: written by `npm run n-1:record`, replayed by test/n-1.test.js","manifest": {"service": "media",-- "release": "be0facd28e64",-- "released_at": "2026-09-27T21:43:34.000Z",-- "booted_at": "2026-09-27T22:05:41.881Z",-- "contracts_version": "0.54.0",++ "release": "a207b1d28b12",++ "released_at": "2026-09-27T22:52:43.000Z",++ "booted_at": "2026-09-27T23:24:21.509Z",++ "contracts_version": "0.71.0","packages": {"openvibe-shared": "1.22.0","openvibe-sdk": "0.11.0"@@@ -18,17 +18,20 @@"components": {"shell": {"kind": "script",-- "version": "be0facd28e64"++ "version": "a207b1d28b12"},"server": {"kind": "server",-- "version": "be0facd28e64"++ "version": "a207b1d28b12"}},"assets": {},"schema_generation": null,"schema_compatible_from": null,"contract_ranges": {},++ "client_generation": null,++ "min_client_generation": null,++ "shell": null,"metrics_url": "/release-metrics"},"dynamic_calls": 3,@@@ -239,6 +242,11 @@"objects[].size_bytes": "number","objects[].content_hash": "null","objects[].metadata": "object",++ "objects[].metadata.title": "string",++ "objects[].metadata.duration_seconds": "number",++ "objects[].metadata.health_status": "string",++ "objects[].metadata.managed_stream_id": "null",++ "objects[].metadata.recording": "boolean","objects[].held": "boolean","objects[].readiness": "object","objects[].readiness.metadata": "boolean",@@@ -249,12 +257,7 @@"objects[].created_at": "string","objects[].updated_at": "string","objects[].deleted_at": "null",-- "objects[].metadata.title": "string",-- "objects[].metadata.duration_seconds": "number","objects[].metadata.auto_generated": "boolean",-- "objects[].metadata.health_status": "string",-- "objects[].metadata.managed_stream_id": "null",-- "objects[].metadata.recording": "boolean","objects[].metadata.filename": "string","next_cursor": "null","limit": "number"@@@ -1,7 +1,7 @@{"service": "media",-- "release": "be0facd28e64c0b8e7f7322b69e65a1953103070",-- "recorded_at": "2026-09-27T22:05:42.752Z",++ "release": "a207b1d28b12d333484d087ee37c2c2e3edeee5e",++ "recorded_at": "2026-09-27T23:24:22.333Z","note": "N-1 fixture: written by `npm run n-1:record`, replayed by test/n-1.test.js","user_version": 0,"schema": [@@@ -92,6 +92,7 @@],"ledger": {},"lazy": [++ "CREATE TABLE IF NOT EXISTS account_data_events ( id TEXT PRIMARY KEY, kind TEXT NOT NULL, subject TEXT NOT NULL, outcome TEXT, sent_at TEXT, applied_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')) )","CREATE TABLE IF NOT EXISTS search_doc_pushes ( kind TEXT NOT NULL, media_id INTEGER NOT NULL, hash TEXT NOT NULL, revision INTEGER NOT NULL, deleted INTEGER NOT NULL DEFAULT 0, pushed_at DATETIME DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (kind, media_id) )","CREATE TABLE IF NOT EXISTS subject_merges ( merge_id TEXT PRIMARY KEY, from_subject TEXT NOT NULL, into_subject TEXT NOT NULL, objects INTEGER NOT NULL DEFAULT 0, applied_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')) )"],@@@ -115,6 +116,7 @@"DELETE FROM paste_likes WHERE paste_id = ? AND user_id = ?","DELETE FROM pastes WHERE id = ?","DELETE FROM vods WHERE id = ?",++ "INSERT INTO account_data_events (id, kind, subject, outcome) VALUES (?, ?, ?, ?)","INSERT INTO apps (app_id, name, api_key_hash, quota_bytes) VALUES (?, ?, '', ?)","INSERT INTO apps (app_id, name, api_key_hash, webhook_url, webhook_secret, allowed_origins, quota_bytes) VALUES (?, ?, ?, ?, ?, ?, ?) ON CONFLICT(app_id) DO UPDATE SET name = excluded.name, api_key_hash = excluded.api_key_hash, webhook_url = excluded.webhook_url, webhook_secret = excluded.webhook_secret, allowed_origins = excluded.allowed_origins, quota_bytes = excluded.quota_bytes","INSERT INTO assets (app_id, kind, name, file_path, mime, user_id, username, channel_username, duration_seconds, meta_json) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ON CONFLICT(app_id, kind, name, channel_username) DO UPDATE SET file_path = excluded.file_path, mime = excluded.mime, user_id = excluded.user_id, username = excluded.username, duration_seconds = excluded.duration_seconds, meta_json = excluded.meta_json",@@@ -153,11 +155,13 @@"INSERT OR IGNORE INTO media_quota_reservations (object_id, app_id, namespace, bytes, expires_at) SELECT id, app_id, namespace, size_bytes, datetime('now', ?) FROM media_objects WHERE lifecycle_status = 'uploading' AND legacy_ref IS NULL","INSERT OR IGNORE INTO media_settings (key, value, description, type) VALUES (?, ?, ?, ?)","INSERT OR IGNORE INTO paste_likes (paste_id, user_id) VALUES (?, ?)",++ "INSERT OR REPLACE INTO account_data_events (id, kind, subject, outcome, sent_at) VALUES (?, ?, ?, ?, ?)","INSERT OR REPLACE INTO media_settings (key, value, description, type) VALUES ('view_hash_secret', ?, 'Internal: salt for hashed visitor ids (do not share)', 'string')","INSERT OR REPLACE INTO media_settings (key, value, description, type) VALUES ('views_migrated_v2', '1', 'Internal: legacy content_views imported', 'boolean')","INSERT OR REPLACE INTO media_settings (key, value, type) VALUES ('namespaces.reservations_seeded', ?, 'string')","SELECT 'vod' k, id ref, title, description, ai_overview, thumbnail_url, duration_seconds, created_at, app_id, NULL slug, NULL type, NULL content, NULL language FROM vods WHERE is_public = 1 AND COALESCE(is_recording,0) = 0 AND COALESCE(clips_only,0) = 0 UNION ALL SELECT 'clip', id, title, description, ai_overview, thumbnail_url, duration_seconds, created_at, app_id, NULL, NULL, NULL, NULL FROM clips WHERE COALESCE(is_public,1) = 1 UNION ALL SELECT 'paste', id, title, NULL, NULL, NULL, NULL, created_at, app_id, slug, type, substr(COALESCE(content,''),1,300), language FROM pastes WHERE visibility = 'public' UNION ALL SELECT 'asset', id, name, username, channel_username, kind, duration_seconds, created_at, app_id, NULL, NULL, NULL, NULL FROM assets ORDER BY created_at DESC LIMIT 48 OFFSET 0","SELECT (SELECT COUNT(*) FROM vods WHERE is_public = 1 AND COALESCE(is_recording,0) = 0 AND COALESCE(clips_only,0) = 0) + (SELECT COUNT(*) FROM clips WHERE COALESCE(is_public,1) = 1) + (SELECT COUNT(*) FROM pastes WHERE visibility = 'public') + (SELECT COUNT(*) FROM assets) c",++ "SELECT * FROM account_data_events WHERE id = ?","SELECT * FROM apps","SELECT * FROM apps WHERE api_key_hash = ?","SELECT * FROM apps WHERE app_id = ?",@@@ -167,10 +171,12 @@"SELECT * FROM assets WHERE kind = 'sound' ORDER BY created_at DESC LIMIT 48 OFFSET 0","SELECT * FROM clips WHERE COALESCE(is_public,1) = 1 ORDER BY created_at DESC LIMIT 48 OFFSET 0","SELECT * FROM clips WHERE id = ?",++ "SELECT * FROM clips WHERE object_id = ?","SELECT * FROM files WHERE app_id = ? ORDER BY created_at DESC LIMIT ? OFFSET ?","SELECT * FROM files WHERE app_id NOT IN (SELECT app_id FROM apps WHERE project_id IS NOT NULL) ORDER BY created_at DESC LIMIT 48 OFFSET 0","SELECT * FROM files WHERE key = ?","SELECT * FROM files WHERE key = ? AND app_id = ?",++ "SELECT * FROM files WHERE object_id = ?","SELECT * FROM media_holds WHERE id = ?","SELECT * FROM media_holds WHERE id = ? AND object_id = ?","SELECT * FROM media_invariant_violations WHERE object_id = ?",@@@ -206,6 +212,7 @@"SELECT * FROM vods WHERE id = ?","SELECT * FROM vods WHERE id = ? AND app_id = ?","SELECT * FROM vods WHERE is_public = 1 AND COALESCE(is_recording,0) = 0 AND COALESCE(clips_only,0) = 0 ORDER BY created_at DESC LIMIT 48 OFFSET 0",++ "SELECT * FROM vods WHERE object_id = ?","SELECT * FROM vods WHERE quarantined_at IS NOT NULL AND quarantined_at <= datetime('now', ?) AND health_status IN ('corrupt','zero_byte','missing_file') AND COALESCE(is_recording, 0) = 0 ORDER BY quarantined_at ASC LIMIT ?","SELECT * FROM vods WHERE storage_key LIKE ?","SELECT *, COALESCE(duration_seconds, probe_duration_seconds, 0) AS duration_seconds FROM vods WHERE id = ?",@@@ -347,6 +354,7 @@"SELECT r.relation, r.to_object_id FROM media_relationships r JOIN media_objects s ON s.id = r.to_object_id WHERE r.from_object_id = ? AND r.relation IN ('derived_from', 'thumbnail_of', 'clip_of') AND s.owner_subject = ? ORDER BY r.id LIMIT 1","SELECT salt FROM media_object_view_salts WHERE day = ?","SELECT screenshot_path FROM pastes WHERE screenshot_path IS NOT NULL",++ "SELECT sent_at FROM account_data_events WHERE id = ?","SELECT size_bytes FROM media_locations WHERE object_id = ? AND provider = 'local' AND state = 'present'","SELECT status FROM media_jobs WHERE id = ?","SELECT status FROM media_uploads WHERE id = ?",@@@ -363,6 +371,7 @@"SELECT value, type FROM media_settings WHERE key = ?","SELECT variant_name, derived_object_id FROM media_variants WHERE object_id = ? ORDER BY id","SELECT verified_at, status, detail FROM media_verifications WHERE object_id = ?",++ "UPDATE account_data_events SET sent_at = ? WHERE id = ?","UPDATE clips SET auto_generated = ? WHERE id = ?","UPDATE clips SET cut_attempts = 0 WHERE id = ?","UPDATE clips SET file_path = ?, duration_seconds = ?, end_time = ?, status = 'ready', cut_error = NULL, cut_next_at = NULL WHERE id = ?",@@@ -389,6 +398,7 @@"UPDATE media_locations SET state = ?, size_bytes = COALESCE(?, size_bytes), verified_at = CURRENT_TIMESTAMP, updated_at = CURRENT_TIMESTAMP WHERE id = ? AND key = ?","UPDATE media_namespaces SET used_bytes = ?, used_objects = ?, reserved_bytes = ?, reserved_objects = ?, reconciled_at = CURRENT_TIMESTAMP, updated_at = CURRENT_TIMESTAMP WHERE namespace = ? AND app_id = ?","UPDATE media_objects SET content_hash = ?, metadata = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ? AND content_hash IS NULL",++ "UPDATE media_objects SET lifecycle_status = 'deleted', deleted_at = COALESCE(deleted_at, CURRENT_TIMESTAMP), updated_at = CURRENT_TIMESTAMP WHERE id = ? AND lifecycle_status != 'deleted'","UPDATE media_objects SET lifecycle_status = 'deleted', deleted_at = CURRENT_TIMESTAMP, metadata = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ?","UPDATE media_objects SET lifecycle_status = 'failed', metadata = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ? AND lifecycle_status = 'uploading'","UPDATE media_objects SET lifecycle_status = 'failed', updated_at = CURRENT_TIMESTAMP WHERE id = ? AND lifecycle_status = ?",
@@ -1,14 +1,14 @@
@@ -1,14 +1,14 @@
{
{
"service": "media",
"service": "media",
- "release": "be0facd28e64c0b8e7f7322b69e65a1953103070",
- "recorded_at": "2026-09-27T22:05:42.752Z",
+ "release": "a207b1d28b12d333484d087ee37c2c2e3edeee5e",
+ "recorded_at": "2026-09-27T23:24:22.333Z",
"note": "N-1 fixture: written by `npm run n-1:record`, replayed by test/n-1.test.js",
"note": "N-1 fixture: written by `npm run n-1:record`, replayed by test/n-1.test.js",
"manifest": {
"manifest": {
"service": "media",
"service": "media",
- "release": "be0facd28e64",
- "released_at": "2026-09-27T21:43:34.000Z",
- "booted_at": "2026-09-27T22:05:41.881Z",
- "contracts_version": "0.54.0",
+ "release": "a207b1d28b12",
+ "released_at": "2026-09-27T22:52:43.000Z",
+ "booted_at": "2026-09-27T23:24:21.509Z",
+ "contracts_version": "0.71.0",
"packages": {
"packages": {
"openvibe-shared": "1.22.0",
"openvibe-shared": "1.22.0",
"openvibe-sdk": "0.11.0"
"openvibe-sdk": "0.11.0"
@@ -18,17 +18,20 @@
@@ -18,17 +18,20 @@
"components": {
"components": {
"shell": {
"shell": {
"kind": "script",
"kind": "script",
- "version": "be0facd28e64"
+ "version": "a207b1d28b12"
},
},
"server": {
"server": {
"kind": "server",
"kind": "server",
- "version": "be0facd28e64"
+ "version": "a207b1d28b12"
}
}
},
},
"assets": {},
"assets": {},
"schema_generation": null,
"schema_generation": null,
"schema_compatible_from": null,
"schema_compatible_from": null,
"contract_ranges": {},
"contract_ranges": {},
+ "client_generation": null,
+ "min_client_generation": null,
+ "shell": null,
"metrics_url": "/release-metrics"
"metrics_url": "/release-metrics"
},
},
"dynamic_calls": 3,
"dynamic_calls": 3,
@@ -239,6 +242,11 @@
@@ -239,6 +242,11 @@
"objects[].size_bytes": "number",
"objects[].size_bytes": "number",
"objects[].content_hash": "null",
"objects[].content_hash": "null",
"objects[].metadata": "object",
"objects[].metadata": "object",
+ "objects[].metadata.title": "string",
+ "objects[].metadata.duration_seconds": "number",
+ "objects[].metadata.health_status": "string",
+ "objects[].metadata.managed_stream_id": "null",
+ "objects[].metadata.recording": "boolean",
"objects[].held": "boolean",
"objects[].held": "boolean",
"objects[].readiness": "object",
"objects[].readiness": "object",
"objects[].readiness.metadata": "boolean",
"objects[].readiness.metadata": "boolean",
@@ -249,12 +257,7 @@
@@ -249,12 +257,7 @@
"objects[].created_at": "string",
"objects[].created_at": "string",
"objects[].updated_at": "string",
"objects[].updated_at": "string",
"objects[].deleted_at": "null",
"objects[].deleted_at": "null",
- "objects[].metadata.title": "string",
- "objects[].metadata.duration_seconds": "number",
"objects[].metadata.auto_generated": "boolean",
"objects[].metadata.auto_generated": "boolean",
- "objects[].metadata.health_status": "string",
- "objects[].metadata.managed_stream_id": "null",
- "objects[].metadata.recording": "boolean",
"objects[].metadata.filename": "string",
"objects[].metadata.filename": "string",
"next_cursor": "null",
"next_cursor": "null",
"limit": "number"
"limit": "number"
@@ -1,7 +1,7 @@
@@ -1,7 +1,7 @@
{
{
"service": "media",
"service": "media",
- "release": "be0facd28e64c0b8e7f7322b69e65a1953103070",
- "recorded_at": "2026-09-27T22:05:42.752Z",
+ "release": "a207b1d28b12d333484d087ee37c2c2e3edeee5e",
+ "recorded_at": "2026-09-27T23:24:22.333Z",
"note": "N-1 fixture: written by `npm run n-1:record`, replayed by test/n-1.test.js",
"note": "N-1 fixture: written by `npm run n-1:record`, replayed by test/n-1.test.js",
"user_version": 0,
"user_version": 0,
"schema": [
"schema": [
@@ -92,6 +92,7 @@
@@ -92,6 +92,7 @@
],
],
"ledger": {},
"ledger": {},
"lazy": [
"lazy": [
+ "CREATE TABLE IF NOT EXISTS account_data_events ( id TEXT PRIMARY KEY, kind TEXT NOT NULL, subject TEXT NOT NULL, outcome TEXT, sent_at TEXT, applied_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')) )",
"CREATE TABLE IF NOT EXISTS search_doc_pushes ( kind TEXT NOT NULL, media_id INTEGER NOT NULL, hash TEXT NOT NULL, revision INTEGER NOT NULL, deleted INTEGER NOT NULL DEFAULT 0, pushed_at DATETIME DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (kind, media_id) )",
"CREATE TABLE IF NOT EXISTS search_doc_pushes ( kind TEXT NOT NULL, media_id INTEGER NOT NULL, hash TEXT NOT NULL, revision INTEGER NOT NULL, deleted INTEGER NOT NULL DEFAULT 0, pushed_at DATETIME DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (kind, media_id) )",
"CREATE TABLE IF NOT EXISTS subject_merges ( merge_id TEXT PRIMARY KEY, from_subject TEXT NOT NULL, into_subject TEXT NOT NULL, objects INTEGER NOT NULL DEFAULT 0, applied_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')) )"
"CREATE TABLE IF NOT EXISTS subject_merges ( merge_id TEXT PRIMARY KEY, from_subject TEXT NOT NULL, into_subject TEXT NOT NULL, objects INTEGER NOT NULL DEFAULT 0, applied_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')) )"
],
],
@@ -115,6 +116,7 @@
@@ -115,6 +116,7 @@
"DELETE FROM paste_likes WHERE paste_id = ? AND user_id = ?",
"DELETE FROM paste_likes WHERE paste_id = ? AND user_id = ?",
"DELETE FROM pastes WHERE id = ?",
"DELETE FROM pastes WHERE id = ?",
"DELETE FROM vods WHERE id = ?",
"DELETE FROM vods WHERE id = ?",
+ "INSERT INTO account_data_events (id, kind, subject, outcome) VALUES (?, ?, ?, ?)",
"INSERT INTO apps (app_id, name, api_key_hash, quota_bytes) VALUES (?, ?, '', ?)",
"INSERT INTO apps (app_id, name, api_key_hash, quota_bytes) VALUES (?, ?, '', ?)",
"INSERT INTO apps (app_id, name, api_key_hash, webhook_url, webhook_secret, allowed_origins, quota_bytes) VALUES (?, ?, ?, ?, ?, ?, ?) ON CONFLICT(app_id) DO UPDATE SET name = excluded.name, api_key_hash = excluded.api_key_hash, webhook_url = excluded.webhook_url, webhook_secret = excluded.webhook_secret, allowed_origins = excluded.allowed_origins, quota_bytes = excluded.quota_bytes",
"INSERT INTO apps (app_id, name, api_key_hash, webhook_url, webhook_secret, allowed_origins, quota_bytes) VALUES (?, ?, ?, ?, ?, ?, ?) ON CONFLICT(app_id) DO UPDATE SET name = excluded.name, api_key_hash = excluded.api_key_hash, webhook_url = excluded.webhook_url, webhook_secret = excluded.webhook_secret, allowed_origins = excluded.allowed_origins, quota_bytes = excluded.quota_bytes",
"INSERT INTO assets (app_id, kind, name, file_path, mime, user_id, username, channel_username, duration_seconds, meta_json) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ON CONFLICT(app_id, kind, name, channel_username) DO UPDATE SET file_path = excluded.file_path, mime = excluded.mime, user_id = excluded.user_id, username = excluded.username, duration_seconds = excluded.duration_seconds, meta_json = excluded.meta_json",
"INSERT INTO assets (app_id, kind, name, file_path, mime, user_id, username, channel_username, duration_seconds, meta_json) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ON CONFLICT(app_id, kind, name, channel_username) DO UPDATE SET file_path = excluded.file_path, mime = excluded.mime, user_id = excluded.user_id, username = excluded.username, duration_seconds = excluded.duration_seconds, meta_json = excluded.meta_json",
@@ -153,11 +155,13 @@
@@ -153,11 +155,13 @@
"INSERT OR IGNORE INTO media_quota_reservations (object_id, app_id, namespace, bytes, expires_at) SELECT id, app_id, namespace, size_bytes, datetime('now', ?) FROM media_objects WHERE lifecycle_status = 'uploading' AND legacy_ref IS NULL",
"INSERT OR IGNORE INTO media_quota_reservations (object_id, app_id, namespace, bytes, expires_at) SELECT id, app_id, namespace, size_bytes, datetime('now', ?) FROM media_objects WHERE lifecycle_status = 'uploading' AND legacy_ref IS NULL",
"INSERT OR IGNORE INTO media_settings (key, value, description, type) VALUES (?, ?, ?, ?)",
"INSERT OR IGNORE INTO media_settings (key, value, description, type) VALUES (?, ?, ?, ?)",
"INSERT OR IGNORE INTO paste_likes (paste_id, user_id) VALUES (?, ?)",
"INSERT OR IGNORE INTO paste_likes (paste_id, user_id) VALUES (?, ?)",
+ "INSERT OR REPLACE INTO account_data_events (id, kind, subject, outcome, sent_at) VALUES (?, ?, ?, ?, ?)",
"INSERT OR REPLACE INTO media_settings (key, value, description, type) VALUES ('view_hash_secret', ?, 'Internal: salt for hashed visitor ids (do not share)', 'string')",
"INSERT OR REPLACE INTO media_settings (key, value, description, type) VALUES ('view_hash_secret', ?, 'Internal: salt for hashed visitor ids (do not share)', 'string')",
"INSERT OR REPLACE INTO media_settings (key, value, description, type) VALUES ('views_migrated_v2', '1', 'Internal: legacy content_views imported', 'boolean')",
"INSERT OR REPLACE INTO media_settings (key, value, description, type) VALUES ('views_migrated_v2', '1', 'Internal: legacy content_views imported', 'boolean')",
"INSERT OR REPLACE INTO media_settings (key, value, type) VALUES ('namespaces.reservations_seeded', ?, 'string')",
"INSERT OR REPLACE INTO media_settings (key, value, type) VALUES ('namespaces.reservations_seeded', ?, 'string')",
"SELECT 'vod' k, id ref, title, description, ai_overview, thumbnail_url, duration_seconds, created_at, app_id, NULL slug, NULL type, NULL content, NULL language FROM vods WHERE is_public = 1 AND COALESCE(is_recording,0) = 0 AND COALESCE(clips_only,0) = 0 UNION ALL SELECT 'clip', id, title, description, ai_overview, thumbnail_url, duration_seconds, created_at, app_id, NULL, NULL, NULL, NULL FROM clips WHERE COALESCE(is_public,1) = 1 UNION ALL SELECT 'paste', id, title, NULL, NULL, NULL, NULL, created_at, app_id, slug, type, substr(COALESCE(content,''),1,300), language FROM pastes WHERE visibility = 'public' UNION ALL SELECT 'asset', id, name, username, channel_username, kind, duration_seconds, created_at, app_id, NULL, NULL, NULL, NULL FROM assets ORDER BY created_at DESC LIMIT 48 OFFSET 0",
"SELECT 'vod' k, id ref, title, description, ai_overview, thumbnail_url, duration_seconds, created_at, app_id, NULL slug, NULL type, NULL content, NULL language FROM vods WHERE is_public = 1 AND COALESCE(is_recording,0) = 0 AND COALESCE(clips_only,0) = 0 UNION ALL SELECT 'clip', id, title, description, ai_overview, thumbnail_url, duration_seconds, created_at, app_id, NULL, NULL, NULL, NULL FROM clips WHERE COALESCE(is_public,1) = 1 UNION ALL SELECT 'paste', id, title, NULL, NULL, NULL, NULL, created_at, app_id, slug, type, substr(COALESCE(content,''),1,300), language FROM pastes WHERE visibility = 'public' UNION ALL SELECT 'asset', id, name, username, channel_username, kind, duration_seconds, created_at, app_id, NULL, NULL, NULL, NULL FROM assets ORDER BY created_at DESC LIMIT 48 OFFSET 0",
"SELECT (SELECT COUNT(*) FROM vods WHERE is_public = 1 AND COALESCE(is_recording,0) = 0 AND COALESCE(clips_only,0) = 0) + (SELECT COUNT(*) FROM clips WHERE COALESCE(is_public,1) = 1) + (SELECT COUNT(*) FROM pastes WHERE visibility = 'public') + (SELECT COUNT(*) FROM assets) c",
"SELECT (SELECT COUNT(*) FROM vods WHERE is_public = 1 AND COALESCE(is_recording,0) = 0 AND COALESCE(clips_only,0) = 0) + (SELECT COUNT(*) FROM clips WHERE COALESCE(is_public,1) = 1) + (SELECT COUNT(*) FROM pastes WHERE visibility = 'public') + (SELECT COUNT(*) FROM assets) c",
+ "SELECT * FROM account_data_events WHERE id = ?",
"SELECT * FROM apps",
"SELECT * FROM apps",
"SELECT * FROM apps WHERE api_key_hash = ?",
"SELECT * FROM apps WHERE api_key_hash = ?",
"SELECT * FROM apps WHERE app_id = ?",
"SELECT * FROM apps WHERE app_id = ?",
@@ -167,10 +171,12 @@
@@ -167,10 +171,12 @@
"SELECT * FROM assets WHERE kind = 'sound' ORDER BY created_at DESC LIMIT 48 OFFSET 0",
"SELECT * FROM assets WHERE kind = 'sound' ORDER BY created_at DESC LIMIT 48 OFFSET 0",
"SELECT * FROM clips WHERE COALESCE(is_public,1) = 1 ORDER BY created_at DESC LIMIT 48 OFFSET 0",
"SELECT * FROM clips WHERE COALESCE(is_public,1) = 1 ORDER BY created_at DESC LIMIT 48 OFFSET 0",
"SELECT * FROM clips WHERE id = ?",
"SELECT * FROM clips WHERE id = ?",
+ "SELECT * FROM clips WHERE object_id = ?",
"SELECT * FROM files WHERE app_id = ? ORDER BY created_at DESC LIMIT ? OFFSET ?",
"SELECT * FROM files WHERE app_id = ? ORDER BY created_at DESC LIMIT ? OFFSET ?",
"SELECT * FROM files WHERE app_id NOT IN (SELECT app_id FROM apps WHERE project_id IS NOT NULL) ORDER BY created_at DESC LIMIT 48 OFFSET 0",
"SELECT * FROM files WHERE app_id NOT IN (SELECT app_id FROM apps WHERE project_id IS NOT NULL) ORDER BY created_at DESC LIMIT 48 OFFSET 0",
"SELECT * FROM files WHERE key = ?",
"SELECT * FROM files WHERE key = ?",
"SELECT * FROM files WHERE key = ? AND app_id = ?",
"SELECT * FROM files WHERE key = ? AND app_id = ?",
+ "SELECT * FROM files WHERE object_id = ?",
"SELECT * FROM media_holds WHERE id = ?",
"SELECT * FROM media_holds WHERE id = ?",
"SELECT * FROM media_holds WHERE id = ? AND object_id = ?",
"SELECT * FROM media_holds WHERE id = ? AND object_id = ?",
"SELECT * FROM media_invariant_violations WHERE object_id = ?",
"SELECT * FROM media_invariant_violations WHERE object_id = ?",
@@ -206,6 +212,7 @@
@@ -206,6 +212,7 @@
"SELECT * FROM vods WHERE id = ?",
"SELECT * FROM vods WHERE id = ?",
"SELECT * FROM vods WHERE id = ? AND app_id = ?",
"SELECT * FROM vods WHERE id = ? AND app_id = ?",
"SELECT * FROM vods WHERE is_public = 1 AND COALESCE(is_recording,0) = 0 AND COALESCE(clips_only,0) = 0 ORDER BY created_at DESC LIMIT 48 OFFSET 0",
"SELECT * FROM vods WHERE is_public = 1 AND COALESCE(is_recording,0) = 0 AND COALESCE(clips_only,0) = 0 ORDER BY created_at DESC LIMIT 48 OFFSET 0",
+ "SELECT * FROM vods WHERE object_id = ?",
"SELECT * FROM vods WHERE quarantined_at IS NOT NULL AND quarantined_at <= datetime('now', ?) AND health_status IN ('corrupt','zero_byte','missing_file') AND COALESCE(is_recording, 0) = 0 ORDER BY quarantined_at ASC LIMIT ?",
"SELECT * FROM vods WHERE quarantined_at IS NOT NULL AND quarantined_at <= datetime('now', ?) AND health_status IN ('corrupt','zero_byte','missing_file') AND COALESCE(is_recording, 0) = 0 ORDER BY quarantined_at ASC LIMIT ?",
"SELECT * FROM vods WHERE storage_key LIKE ?",
"SELECT * FROM vods WHERE storage_key LIKE ?",
"SELECT *, COALESCE(duration_seconds, probe_duration_seconds, 0) AS duration_seconds FROM vods WHERE id = ?",
"SELECT *, COALESCE(duration_seconds, probe_duration_seconds, 0) AS duration_seconds FROM vods WHERE id = ?",
@@ -347,6 +354,7 @@
@@ -347,6 +354,7 @@
"SELECT r.relation, r.to_object_id FROM media_relationships r JOIN media_objects s ON s.id = r.to_object_id WHERE r.from_object_id = ? AND r.relation IN ('derived_from', 'thumbnail_of', 'clip_of') AND s.owner_subject = ? ORDER BY r.id LIMIT 1",
"SELECT r.relation, r.to_object_id FROM media_relationships r JOIN media_objects s ON s.id = r.to_object_id WHERE r.from_object_id = ? AND r.relation IN ('derived_from', 'thumbnail_of', 'clip_of') AND s.owner_subject = ? ORDER BY r.id LIMIT 1",
"SELECT salt FROM media_object_view_salts WHERE day = ?",
"SELECT salt FROM media_object_view_salts WHERE day = ?",
"SELECT screenshot_path FROM pastes WHERE screenshot_path IS NOT NULL",
"SELECT screenshot_path FROM pastes WHERE screenshot_path IS NOT NULL",
+ "SELECT sent_at FROM account_data_events WHERE id = ?",
"SELECT size_bytes FROM media_locations WHERE object_id = ? AND provider = 'local' AND state = 'present'",
"SELECT size_bytes FROM media_locations WHERE object_id = ? AND provider = 'local' AND state = 'present'",
"SELECT status FROM media_jobs WHERE id = ?",
"SELECT status FROM media_jobs WHERE id = ?",
"SELECT status FROM media_uploads WHERE id = ?",
"SELECT status FROM media_uploads WHERE id = ?",
@@ -363,6 +371,7 @@
@@ -363,6 +371,7 @@
"SELECT value, type FROM media_settings WHERE key = ?",
"SELECT value, type FROM media_settings WHERE key = ?",
"SELECT variant_name, derived_object_id FROM media_variants WHERE object_id = ? ORDER BY id",
"SELECT variant_name, derived_object_id FROM media_variants WHERE object_id = ? ORDER BY id",
"SELECT verified_at, status, detail FROM media_verifications WHERE object_id = ?",
"SELECT verified_at, status, detail FROM media_verifications WHERE object_id = ?",
+ "UPDATE account_data_events SET sent_at = ? WHERE id = ?",
"UPDATE clips SET auto_generated = ? WHERE id = ?",
"UPDATE clips SET auto_generated = ? WHERE id = ?",
"UPDATE clips SET cut_attempts = 0 WHERE id = ?",
"UPDATE clips SET cut_attempts = 0 WHERE id = ?",
"UPDATE clips SET file_path = ?, duration_seconds = ?, end_time = ?, status = 'ready', cut_error = NULL, cut_next_at = NULL WHERE id = ?",
"UPDATE clips SET file_path = ?, duration_seconds = ?, end_time = ?, status = 'ready', cut_error = NULL, cut_next_at = NULL WHERE id = ?",
@@ -389,6 +398,7 @@
@@ -389,6 +398,7 @@
"UPDATE media_locations SET state = ?, size_bytes = COALESCE(?, size_bytes), verified_at = CURRENT_TIMESTAMP, updated_at = CURRENT_TIMESTAMP WHERE id = ? AND key = ?",
"UPDATE media_locations SET state = ?, size_bytes = COALESCE(?, size_bytes), verified_at = CURRENT_TIMESTAMP, updated_at = CURRENT_TIMESTAMP WHERE id = ? AND key = ?",
"UPDATE media_namespaces SET used_bytes = ?, used_objects = ?, reserved_bytes = ?, reserved_objects = ?, reconciled_at = CURRENT_TIMESTAMP, updated_at = CURRENT_TIMESTAMP WHERE namespace = ? AND app_id = ?",
"UPDATE media_namespaces SET used_bytes = ?, used_objects = ?, reserved_bytes = ?, reserved_objects = ?, reconciled_at = CURRENT_TIMESTAMP, updated_at = CURRENT_TIMESTAMP WHERE namespace = ? AND app_id = ?",
"UPDATE media_objects SET content_hash = ?, metadata = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ? AND content_hash IS NULL",
"UPDATE media_objects SET content_hash = ?, metadata = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ? AND content_hash IS NULL",
+ "UPDATE media_objects SET lifecycle_status = 'deleted', deleted_at = COALESCE(deleted_at, CURRENT_TIMESTAMP), updated_at = CURRENT_TIMESTAMP WHERE id = ? AND lifecycle_status != 'deleted'",
"UPDATE media_objects SET lifecycle_status = 'deleted', deleted_at = CURRENT_TIMESTAMP, metadata = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ?",
"UPDATE media_objects SET lifecycle_status = 'deleted', deleted_at = CURRENT_TIMESTAMP, metadata = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ?",
"UPDATE media_objects SET lifecycle_status = 'failed', metadata = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ? AND lifecycle_status = 'uploading'",
"UPDATE media_objects SET lifecycle_status = 'failed', metadata = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ? AND lifecycle_status = 'uploading'",
"UPDATE media_objects SET lifecycle_status = 'failed', updated_at = CURRENT_TIMESTAMP WHERE id = ? AND lifecycle_status = ?",
"UPDATE media_objects SET lifecycle_status = 'failed', updated_at = CURRENT_TIMESTAMP WHERE id = ? AND lifecycle_status = ?",