You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Description:
Add an authenticated upload and review workflow for submitting JSON and optional raw data to the NeuroJSON sandbox.
Users will upload through the login-protected /upload workflow on NeuroJSON.io. AutoBIDSify will provide a button that opens the NeuroJSON upload page in the browser.
The workflow includes:
Authenticated JSON dataset upload to the CouchDB sandbox
PostgreSQL submission and review tracking
Optional raw data ZIP upload using TUS
Direct browser-to-server raw data transfer and storage
Reviewer-controlled raw data extraction
Review, approval, and promotion workflow
Public DataLinks for promoted raw files
Tasks:
Add draft and submission workflow
Add raw data database tables
Add upload authentication and signing
Add REN raw upload APIs
Add REN ↔ Zodiac upload completion workflow
Add upload reconciliation and recovery — reconcile REN and Zodiac states and recover missed or stuck uploads.
Build Zodiac TUS storage service
Add raw ZIP uploader to the frontend
Add raw data extraction and reviewer access
Add reviewer workflow and dataset promotion
Add cleanup jobs
Deploy and test the complete workflow
Add Upload to NeuroJSON.io button in AutoBIDSify
Add email notifications
Acceptance Criteria:
Only authenticated users can upload datasets.
JSON uploads are stored in the NeuroJSON sandbox and tracked in PostgreSQL.
Raw data can be uploaded as a ZIP using a resumable upload workflow.
Raw data is stored separately from REN and can be associated with dataset submissions.
Upload failures, cancellations, and resumptions are handled correctly.
Reviewers can inspect submitted datasets and raw data before approval.
Reviewers can approve, reject, or request changes.
Approved datasets can be promoted to a public NeuroJSON database.
Public DataLink URLs resolve to the corresponding stored files.
The complete upload → review → promotion workflow can be tested end-to-end.
Activity
[-]Add AutoBIDSify upload workflow to NeuroJSON[/-][+]Add upload workflow to NeuroJSON[/+]feat: add sandbox upload endpoint; refs #147
feat(uploads): add authenticated POST /api/v1/uploads for JSON submis…
feat(uploads): add login-gated /upload page for JSON submissions; refs …
style(uploads): improve UploadPage readability on the blue background…
fix(uploads): add safe rate-limit key; refs #147
fix(uploads): strip reserved _-prefixed fields before writing; refs #147
feat(uploads): add info note about review + reference id on UploadPag…
feat(uploads): submission workflow logic in createUpload; refs #147
feat(uploads): support dataset updates + confirm flow on /upload page…
feat(uploads): add dashboard Uploads tab with status list + update ac…
feat(uploads): add dataset name input on /upload page; refs #147
fix(uploads): simplify dataset-name-required error message; refs #147
40 remaining items
feat(review): show the requested database and preferred dataset ID on…
feat(review): show what changed since the last review in the review q…
feat(review): preview a submitted dataset as its dataset page; refs #147
feat(review): set .datainfo CreateTime/UpdateTime when publishing; refs
feat(review): add submissions.published_version for versioned publish…
feat(review): versioned publishing with a frozen copy per version; refs
feat(review): mark new versions of published datasets in the review q…
fix(review): show a published version's own JSON from the archive; refs
feat(review): Publish button with a confirm dialog on the review page…
feat(review): Published filter, and live vs older versions on the rev…
feat(review): version chips on published rows in the review queue; refs
refactor(uploads): one shared status label list; show Published inste…
feat(review): split published_version into published_major + publishe…
feat(review): publish as a minor (metadata-only) or major version; refs
feat(review): choose a minor or major version when publishing; refs #147