Add backend processing jobs#904
Merged
Merged
Conversation
✅ Deploy Preview for volview-dev ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This adds an end-to-end processing jobs workflow to VolView. Users can discover tasks, configure and submit them, monitor active jobs, and review previous runs. Supported outputs can be loaded directly into the viewer.
Processing workflow
The new Jobs module provides a complete UI for running backend tasks. Forms are generated from each task's specification. Job state is kept separate from the backend implementation.
Backend contract
The new
backend-contractpackage defines the neutral boundary between VolView and a processing service. Zod schemas are the normative source. Checked-in JSON Schema and OpenAPI documents are generated from them. Fixtures and drift checks keep the TypeScript types, wire payloads, and generated artifacts aligned.pending,running,success,error, andcancelled.The integration is backend-agnostic. VolView only knows the neutral API and result vocabulary. A deployment supplies one or more provider URLs through configuration. Each backend adapter translates its native task definitions, job states, and output records into the shared contract. Adding another backend does not require a new client-side job implementation.
Manifest serialization and restore
Session manifests now carry enough information to round-trip processing results safely. The manifest version moves to
6.4.0. Segment groups can store optional job provenance using the provider, job, and output IDs. This acts as a durable idempotency key and prevents the same restored output from being applied twice..seg.nrrdmetadata.Supporting hardening
The surrounding dataset, import, deletion, authentication, and remote-save paths were tightened to support the new workflow. Dataset removal now cascades through dependent viewer state. Provider and save targets are origin-gated. Successful remote saves can also repoint the current launch URL to the newly saved session without exposing backend-specific routes to VolView.