Summary
Now that the file-tier control API is live end-to-end (MATLAB wrappers in #990; server in Waltham-Data-Science/ndi-cloud-node #139 + #140), users can move the files backing their documents between S3 storage classes — STANDARD, STANDARD_IA, GLACIER_IR, GLACIER, DEEP_ARCHIVE — programmatically. What's missing is a user-facing GUI that makes this discoverable and safe for people who aren't scripting from MATLAB.
What the GUI should let a user do
- Browse the documents in one of their datasets and see each document's current storage tier (via
ndi.cloud.api.files.getFileTier, which surfaces the cached filesTier.dominant + per-tier counts).
- Select a set of documents (multi-select) and choose a target tier for them.
- Kick off a file-tier job (
ndi.cloud.api.files.setFileTier) and see live progress against the returned jobId — polling getFileTierJob or using waitForFileTierJob.
- Get feedback on terminal outcomes:
completed, failed, superseded — including any per-file errors the server reports.
- Understand the two-phase nature of a thaw (freeze is quick; thawing from
GLACIER/DEEP_ARCHIVE takes minutes to hours before the file is warm again) so the GUI doesn't imply the operation is instantaneous.
- Optionally: a "freeze everything in this dataset" convenience path with a confirmation step, since a whole-dataset freeze is a common bulk operation.
Underlying pieces already in place
ndi.cloud.api.files.setFileTier(datasetId, docIds, targetTier) — kicks off a job.
ndi.cloud.api.files.getFileTierJob(jobId) — one poll.
ndi.cloud.api.files.waitForFileTierJob(jobId, ...) — poll-with-backoff until terminal.
ndi.cloud.api.files.getFileTier(datasetId, docId) — read a document's current tier summary.
Design doc: manuals/file-tier-design.md in ndi-cloud-node.
Not in scope of this issue
Four server-side follow-ups are already known and will be tracked separately: dry-run preview (?dryRun=true), job cancellation, cost / bytes estimator, and upload-time ?storageClass=. A GUI can be built on top of what's live today; those will slot in as the API grows.
Summary
Now that the file-tier control API is live end-to-end (MATLAB wrappers in #990; server in
Waltham-Data-Science/ndi-cloud-node#139 + #140), users can move the files backing their documents between S3 storage classes —STANDARD,STANDARD_IA,GLACIER_IR,GLACIER,DEEP_ARCHIVE— programmatically. What's missing is a user-facing GUI that makes this discoverable and safe for people who aren't scripting from MATLAB.What the GUI should let a user do
ndi.cloud.api.files.getFileTier, which surfaces the cachedfilesTier.dominant+ per-tier counts).ndi.cloud.api.files.setFileTier) and see live progress against the returnedjobId— pollinggetFileTierJobor usingwaitForFileTierJob.completed,failed,superseded— including any per-file errors the server reports.GLACIER/DEEP_ARCHIVEtakes minutes to hours before the file is warm again) so the GUI doesn't imply the operation is instantaneous.Underlying pieces already in place
ndi.cloud.api.files.setFileTier(datasetId, docIds, targetTier)— kicks off a job.ndi.cloud.api.files.getFileTierJob(jobId)— one poll.ndi.cloud.api.files.waitForFileTierJob(jobId, ...)— poll-with-backoff until terminal.ndi.cloud.api.files.getFileTier(datasetId, docId)— read a document's current tier summary.Design doc:
manuals/file-tier-design.mdinndi-cloud-node.Not in scope of this issue
Four server-side follow-ups are already known and will be tracked separately: dry-run preview (
?dryRun=true), job cancellation, cost / bytes estimator, and upload-time?storageClass=. A GUI can be built on top of what's live today; those will slot in as the API grows.