No site selected

Import Media

Queue cloud-sync handover batches and monitor worker runs.

About this section: Import MediaQueue cloud-sync handover bundles; the worker imports them in the background.

Purpose

Consume the upstream cloud-sync handover bundles from /mnt/ubuntu-nas/node2/assets/sync/ into the global library (asset, asset_gallery, asset_collection) per Decision 639. The CGI never imports inline; it queues batches into import_job for the background worker (Decision 640).

Flow

  • Scan: walks the mount for .ready sentinels and records new ingest_batch rows.
  • Pre-flight: validates the manifest shape, sentinel pair, and per-item decisions; no library writes.
  • Queue: auto-preflights if needed, then inserts an import_job row. Live progress shows on Import Tasks.
  • Bulk queue: select multiple batches and queue them in one click; the worker drains the queue in priority + FIFO order.

Example

Scan finds 37e428d2-a4f6-4a31-bacf-0c835fb24084.ready. Tick its checkbox (or several at once), click Queue selected. The worker claims the next queued job within seconds and writes job_* events as it progresses.

Consequences

  • The library is site-agnostic. Sites surface library content via asset_site_membership, gallery/collection membership, content allowlists, and access packages.
  • VIDEO-SIMPLE syncs import as stable asset_type=video rows with asset_subtype=video_simple, duration, HLS, transcript, cloud-package, and library-cover deliverables.
  • Cancel is allowed only while a job is queued; once running, only systemctl stop gpu-admin-panel-import-worker stops it.
  • Action remove only soft-deletes rows via deleted_at; nothing is hard-deleted.
  • Frosted, blurred, and vivid_blurred derivatives are intentionally not persisted.
Deeper dive

Sourced from gpu-floor/MIGRATION-INTRO.md and the queued-worker decision in DECISION_LOG.md.

Worker contract

A long-running import-worker.pl daemon claims queued jobs using SELECT ... FOR UPDATE SKIP LOCKED (MariaDB 10.6+). It updates heartbeat_at every few items; if a worker dies, its running jobs are reset to queued after the configured stale threshold (default 15 minutes).

Sentinel protocol

A bundle is consumable only when both <sync_id>.json and <sync_id>.ready exist and the JSON has status = completed and verification.passed = true. The importer recomputes manifest_sha256 at consumption time so audit history records what we actually ingested.

Source-of-truth mapping

  • source/source.json -> asset_source (cold provenance).
  • source/data/photo.manifest.json + photo.analysis.json + photo.meaning.json + photo.family.json -> asset_ai_run rows with explicit analysis_kind; unknown filenames are captured with source_data:<file>.
  • Bundled cover_hash -> asset_cover linked to the parent asset.
  • Containers of type gallery -> asset_gallery + asset_gallery_item junctions.

Idempotency + integrity

Every multi-row write is wrapped in AdminDB::transaction. Hash-based UNIQUE keys make re-running the same batch a no-op. Per-item failures isolate to ingest_batch_item.decision = failed with last_error; the batch becomes partial when any siblings still succeeded.

Read-only mount + ledger boundary

The /mnt/ubuntu-nas/node2/assets tree is read-only for admin consumers. The importer never writes to upstream or deletes .ready sentinels; all consumer state lives in ingest_batch / ingest_batch_item / ingest_event / import_job in admin_panel.

Walks the read-only NODE2 tree for new and updated `.ready` manifests.
View runs

Import Queue 108 batches

Newest and unfinished batches first. Tick the checkboxes to bulk-queue. The background worker processes the queue in priority + FIFO order.

sync_idTypeActionStatusJobItemsBytesUpdated
d4a43b44-3a88-4ef4-a714-68625cf133cdassetimportpreflight_passed-1382.05 GB2026-06-29 18:30:04Open
49f867b0-59c6-48a5-adec-c0bbd52a4f56assetimportpreflight_passed-31230.78 GB2026-06-29 18:26:46Open
4929b08d-0b05-48ac-a3f5-09c880ae8d76assetupdatepending-25777.9 KB2026-06-27 19:38:11Open
6df12fb8-3d5b-42ca-bcec-3999624acc82assetupdatepreflight_passed-4172.8 MB2026-06-27 11:50:03Open
30e9ba08-1310-4fca-87ca-0dad1311c910galleryimportpending-27228.3 MB2026-06-27 11:50:02Open
443ae22a-2ed3-4e21-95e4-b3d89d95a9b9collectionimportpending-55490.0 MB2026-06-27 11:50:02Open
72d5953b-8489-4eeb-acd3-166fdafa3c49collectionupdatepending-374.81 GB2026-06-27 11:50:02Open
82198374-b74d-445f-90f7-7cd4002f3856assetimportpending-2274.2 MB2026-06-27 11:50:02Open
a4125a5f-05cf-4587-bcaa-746885cfdc3bgalleryimportpending-251.50 GB2026-06-27 11:50:02Open
a45298ec-f243-4035-825f-7bd847194dc8assetimportpending-2463.5 MB2026-06-27 11:50:02Open
e870431d-f55c-4c8e-9133-1335a823cf65galleryupdatepending-33255.4 MB2026-06-27 11:50:02Open
ea26e6fe-f86f-402c-be5b-de5c1f509143eventupdatepending-632.20 GB2026-06-27 11:50:02Open
19b3d9af-0874-4dea-89e1-fc9316095327collectionimportpending-2244.4 KB2026-06-27 11:50:01Open
de2d07be-eea7-4282-84aa-f57bca0b4e68galleryimportpending-47281.8 MB2026-06-27 11:50:01Open
9c43d4e6-3e75-4b45-9ed3-3b55d2903882assetupdatepending-2364.3 MB2026-06-27 11:50:00Open
c290cc8f-049a-4f7d-8b54-c93ee3de9fc4collectionimportpending-2244.4 KB2026-06-27 11:50:00Open
ec7b72ca-aabd-42c4-a930-1b9759f4baabassetupdatepending-5802026-06-27 11:49:59Open
cf572e43-bed5-4d97-9aaf-9669a019647dassetimportimported-3209.3 MB2026-07-08 18:20:20Open
6473fb78-f6c5-4ebf-93b3-cb59f7dafb1bassetupdateimported-120.7 MB2026-07-04 17:47:39Open
6339c083-78ec-4c27-9273-c3041902e9d6assetimportimported-17027.30 GB2026-07-04 10:30:25Open
a8d20afd-a3dd-4726-a980-902d3d8cbc37assetimportimported-13221.76 GB2026-07-04 01:21:25Open
7280cac3-717f-4772-be95-50fcf2372bc2assetimportimported-14521.78 GB2026-07-03 18:15:06Open
07853508-e241-4f4b-861e-bbfbe577133dassetimportimported-14021.68 GB2026-07-03 16:01:43Open
be5a852a-1191-4055-a8dd-0979d4f13d00assetimportimported-13421.59 GB2026-07-03 14:05:33Open
953981c9-b550-4399-9fa1-c7bc84d56b61assetimportimported-13921.54 GB2026-07-03 12:34:02Open
f9005cc5-ddc6-42c5-b425-f5b95ec528b1assetimportimported-15119.48 GB2026-07-03 06:41:41Open
e79d5ed2-79bf-47e8-9d69-293ad59aee9cassetimportimported-20024.16 GB2026-07-03 06:20:33Open
9b846285-ea5f-4a52-ae07-640590c6bd46assetimportimported-13014.59 GB2026-07-03 05:53:18Open
eee38a84-c2d5-4b65-9843-c0cf35c2be1dassetimportimported-12915.52 GB2026-07-03 05:29:42Open
88ddd73f-bfbb-41e5-a05d-b61980f38585assetimportimported-12714.66 GB2026-07-03 05:08:15Open
06d8c3df-576c-46be-831f-1a7ed362dc1aassetimportimported-14215.47 GB2026-07-03 01:30:59Open
2fe70bf3-e50f-4294-b059-db76ef4ba9f4assetimportimported-13614.35 GB2026-07-02 23:30:26Open
d05c0119-04ea-4cf2-a5c6-867281663409assetimportimported-13714.75 GB2026-07-02 23:26:14Open
89f45f53-7e25-4d37-9920-ef24ce7a9e97assetimportimported-33835.82 GB2026-07-02 22:56:56Open
3c383ecc-e823-4c38-993b-bdc54c6564ebassetimportimported-13714.91 GB2026-07-02 21:30:33Open
be43f68d-d85d-4468-848b-d67e6d75ae68assetimportimported-12814.23 GB2026-07-02 21:17:54Open
1848818b-9c7b-49c2-80b6-8cbae02a12aaassetimportimported-14815.83 GB2026-07-02 20:32:53Open
b1fc3050-8c23-4031-927e-dcab20ea54f4assetupdateimported-31224.55 GB2026-07-02 20:14:20Open
dc34d50f-8cc0-442c-9c74-2abdb89c7846assetupdateimported-22521.23 GB2026-07-02 19:44:47Open
c02133da-24fb-4053-857e-dbc36a880067assetimportimported-565.30 GB2026-07-02 19:14:53Open
45523b32-be7d-430e-9b1f-1c60b3f351adassetupdateimported-2578.54 GB2026-07-02 19:11:56Open
321d2e4b-df84-4150-9698-c1eaae52d528assetimportimported-504.76 GB2026-07-02 17:58:03Open
deeae029-439e-4538-8f5f-c3b44eb1ded3assetimportimported-393.04 GB2026-07-02 17:02:03Open
4f779eba-810c-4f8d-a552-2749fe9f1750assetimportimported-454.66 GB2026-07-02 16:39:25Open
c726a848-3a65-4294-9f46-838dbe7a57daassetimportimported-586.18 GB2026-07-02 15:44:59Open
652a522d-2676-4f77-a817-6c4e5c305c55assetimportimported-14322.07 GB2026-07-01 12:47:00Open
3241ac55-3ffc-44cc-a616-9c6bd58d59d3assetimportimported-29333.17 GB2026-07-01 11:38:26Open
d38f9430-c03e-489e-b378-00abc50869b4assetimportimported-15222.76 GB2026-07-01 11:17:10Open
6645c653-722a-4482-81e3-909008d69e15assetimportimported-13621.69 GB2026-07-01 08:56:39Open
ba2c2494-32dc-44b1-8052-4e5a010b6eb6assetimportimported-15023.84 GB2026-06-30 23:33:44Open
b730f285-a273-45a5-9e56-5b1015ffb9c4assetimportimported-14822.08 GB2026-06-30 19:57:57Open
53f64da3-003c-4fd2-a8af-49dca8ee2c71assetimportimported-263.26 GB2026-06-30 19:18:07Open
ef43c31b-1a90-425a-86d2-7bafb1388b61assetimportimported-13716.06 GB2026-06-30 16:39:02Open
fc9e8713-3fba-4f22-b19e-ca38c25a3d48assetimportimported-19121.25 GB2026-06-30 13:26:38Open
067b4c16-3444-4e11-8a1e-dc8b813835bdassetimportimported-18119.79 GB2026-06-30 10:30:16Open
adf949c4-987c-47a3-b50f-b516cb91114dassetimportimported-11415.89 GB2026-06-30 07:25:04Open
5c609a6e-47e4-46c3-8b64-036b6546bb0dassetimportimported-15416.95 GB2026-06-30 05:52:59Open
3e4cf4d8-a6c1-4f0e-9f1e-7c4c89762c51assetimportimported-15016.04 GB2026-06-30 04:00:38Open
af4631fb-dfd1-4584-8bd8-d97ca6c0a403assetimportimported-7510.00 GB2026-06-30 03:18:04Open
d3db59a9-c0ff-4e04-a738-4938b245e3e3assetupdateimported-12215.05 GB2026-06-30 03:14:00Open
f9e415ed-8a77-493c-b3f2-c4ec6083eb82assetimportimported-563.09 GB2026-06-30 03:07:07Open
0e7f0391-5460-45eb-aa7b-ea69dacdd4d0assetupdateimported-8616.31 GB2026-06-30 03:04:57Open
e4ba2197-ddfc-4cf4-9660-a65bc000059bassetimportimported-583.34 GB2026-06-30 03:00:19Open
95babc15-7b78-4626-a061-f8cd0b2e529eassetimportimported-12324.29 GB2026-06-30 02:58:07Open
a32d30ea-e4d6-4bc4-9177-6bc216cc7e12assetimportimported-15216.19 GB2026-06-30 02:51:19Open
ddb820e4-2a11-46e5-83bd-4687ea27d2a3assetupdateimported-25616.16 GB2026-06-30 02:46:22Open
383c3205-8faa-44d1-9f34-189b0a9490f6assetupdateimported-6312.06 GB2026-06-30 02:36:49Open
a2cd1139-ca3c-4eb7-a14d-ff89c4121402assetimportimported-12115.25 GB2026-06-30 02:33:16Open
28bdae8d-e365-434d-8929-7137d7d059d9assetimportimported-543.22 GB2026-06-30 02:29:14Open
835a87a0-8b44-4927-93f6-c7848ebaebdbassetimportimported-2254.93 GB2026-06-29 18:36:57Open
a92edcab-f7cc-4c35-bf06-a8ec08ae7d52assetimportimported-12813.91 GB2026-06-29 17:57:43Open
6e406104-1e60-48ed-8e4c-024e1e0d8fd5assetimportimported-13316.45 GB2026-06-29 14:50:05Open
dec33f79-9605-4c87-839f-de9319913bcbassetimportimported-14415.34 GB2026-06-29 14:26:59Open
1763ab02-e796-4ee2-b0be-1d0b1d642122assetimportimported-24929.22 GB2026-06-29 12:55:06Open
080c05dc-3bb4-4a0b-8e4c-90557e11e15bassetimportimported-12814.42 GB2026-06-29 12:41:45Open
944dd06d-f2c5-48f3-8811-3e19505c7ec2assetimportimported-33925.81 GB2026-06-29 12:05:25Open
38c65844-5370-4490-9f5a-514ad385e1e8assetimportimported-28217.95 GB2026-06-29 11:11:46Open
8ba4adb9-98fe-4253-a65c-657b386dc90dassetimportimported-26419.02 GB2026-06-29 09:50:30Open
4118da38-a52c-4993-8741-3cd5694db707assetimportimported-533.47 GB2026-06-29 09:40:11Open
67e0bdf0-b755-4eed-80e5-857051d12e9dassetimportimported-503.27 GB2026-06-29 09:38:06Open
13ef0290-6f34-41cd-9bd2-138364b15906assetimportimported-26919.70 GB2026-06-29 09:36:09Open
d484a41c-a103-4c3f-927e-990cc285e046assetimportimported-30858.10 GB2026-06-29 09:20:24Open
50bb3659-15cb-4965-8068-21e5a19249d2assetimportimported-28681.61 GB2026-06-29 08:28:33Open
ee7e7daf-2d58-49f4-b74e-6313b6ef83d4assetimportimported-32395.23 GB2026-06-29 08:11:35Open
ff64b14e-067b-4bd2-abe5-c3b77da7ab6cassetimportimported-29653.10 GB2026-06-29 07:43:59Open
21df4abb-4214-4a5e-87a0-4aab77b8301eassetimportimported-29682.60 GB2026-06-29 07:26:17Open
b7de329b-db2d-4b65-96e0-d2e010d42ed0assetimportimported-30852.64 GB2026-06-29 06:20:08Open
7f4905d5-b2a7-41be-98f5-eda1e82320eaassetimportimported-23166.37 GB2026-06-29 05:48:43Open
d69593c7-324c-48a2-900b-62248ff70426assetimportimported-432.29 GB2026-06-28 22:50:26Open
b8d25112-fbbc-432c-997a-65db3d81de92assetimportimported-30650.78 GB2026-06-28 21:09:26Open
12bcbfc4-a6c7-4753-a765-178dd9461b63assetimportimported-28548.46 GB2026-06-28 20:28:16Open
f38cfadc-a9b0-4bde-8002-4d9105a26e8dassetimportimported-31352.91 GB2026-06-28 18:58:45Open
9818659e-e60e-47b8-bf50-59971a081fb3assetimportimported-27536.07 GB2026-06-28 04:26:49Open
22c29852-da6e-4db6-8c79-701b57c69f06assetimportimported-25743.78 GB2026-06-27 22:10:43Open
ae137c35-14ed-479f-aafb-dec0444bd349assetimportimported-32938.68 GB2026-06-27 20:13:29Open
e0ba6d5b-e9e2-4564-8f3c-65f0f65237bcassetimportimported-29451.01 GB2026-06-27 19:52:16Open
8fccb37c-0689-4caa-857e-1e8f284fe2f6assetimportimported-253.33 GB2026-06-27 18:01:13Open
7506599b-9559-4d52-bc1c-24a74631e598assetimportimported-212.9 MB2026-06-27 11:50:02Open
a09117d8-8013-4a85-8c57-b2ccdb3d36f6eventupdateimported-202026-06-27 11:50:02Open
bc02ed61-9d39-4538-952a-ed4ced680e96assetupdateimported-4583.4 MB2026-06-27 11:50:02Open
e1586fc0-d5ed-479f-b38f-82abd2e6d88cassetupdateimported-27.6 MB2026-06-27 11:50:02Open
18b666e8-d48d-4dc8-8aeb-6002c8444595galleryimportimported-8914.58 GB2026-06-27 11:50:01Open
37e428d2-a4f6-4a31-bacf-0c835fb24084galleryimportimported-1327.24 GB2026-06-27 11:50:01Open
10583d2e-7737-44e5-a0fa-fd9a71931debassetupdateimported-1364.3 MB2026-06-27 11:50:00Open
b8d72455-cab7-42f2-854f-1a9e54f04353assetupdateimported-1582.0 MB2026-06-27 11:50:00Open
ecfe987d-65f6-41d7-b4f8-8d97e7518f41assetimportimported-28053.29 GB2026-06-27 11:50:00Open
f6d2ef02-c0a5-44d1-ab3d-db40bba8335cassetimportimported-1582.0 MB2026-05-31 21:20:17Open
27ccdfc4-6321-4a5c-adcb-ea691e751d08assetimportimported-1885.0 MB2026-05-30 18:48:25Open