Skip to content

[TSPS-766] Add support for cloud-based file inputs#5483

Merged
MatthewBemis merged 18 commits intodevfrom
mb-tsps-776-cloud-inputs
Feb 24, 2026
Merged

[TSPS-766] Add support for cloud-based file inputs#5483
MatthewBemis merged 18 commits intodevfrom
mb-tsps-776-cloud-inputs

Conversation

@MatthewBemis
Copy link
Copy Markdown
Member

@MatthewBemis MatthewBemis commented Feb 19, 2026

Jira Ticket: https://broadworkbench.atlassian.net/browse/TSPS-766

Summary of changes:

What

Adds support for gcs hosted file inputs.

screencapture-localhost-3000-2026-02-18-23_37_32 screencapture-localhost-3000-2026-02-18-23_37_39 screencapture-localhost-3000-2026-02-18-23_37_45

Why

Testing strategy

Comment thread config/dev.json Outdated
"orchestrationUrlRoot": "https://firecloud-orchestration.dsde-dev.broadinstitute.org",
"rawlsUrlRoot": "https://rawls.dsde-dev.broadinstitute.org",
"teaspoonsUrlRoot": "https://teaspoons.dsde-dev.broadinstitute.org",
"teaspoonsUrlRoot": "http://localhost:8080",
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will revert :)

Copy link
Copy Markdown
Member Author

@MatthewBemis MatthewBemis Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

minor directory re-org based on input type previously the structure was like:

.../inputs/PipelineBooleanInput.tsx
.../inputs/PipelineBooleanInput.test.tsx
.../inputs/PipelineStringInput.tsx
.../inputs/PipelineStringInput.test.tsx
...

now it's like:

.../inputs/boolean/PipelineBooleanInput.tsx
.../inputs/boolean/PipelineBooleanInput.test.tsx
.../inputs/string/PipelineStringInput.tsx
.../inputs/string/PipelineStringInput.test.tsx
...

Mainly useful for the FILE type because there are more file-related input components now for local/cloud

@MatthewBemis MatthewBemis marked this pull request as ready for review February 20, 2026 17:03
@MatthewBemis MatthewBemis requested a review from a team as a code owner February 20, 2026 17:03
return;
}

if (!path.startsWith('gs://')) {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we want something similar to the FILE_NAME_VALIDATION_REGEX check we do for local files, or is that not necessary here? like how does this deal with spaces in the cloud path?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good callout - i can make the validation a bit stronger

fileInputUploadUrls = result.fileInputUploadUrls;
setPreparedJobId(preparedJobId);
} catch (error) {
handlePipelineSubmissionError(error, 'Failed to prepare pipeline run');
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

access issues will be returned with /prepare response; I think handlePipelineSubmissionError will show that error message to the user, right?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that error actually wasn't being bubbled up to the user because of an issue in handlePipelineSubmissionError, but i've fixed it. thanks for calling that out

@sonarqubecloud
Copy link
Copy Markdown

Copy link
Copy Markdown
Contributor

@mmorgantaylor mmorgantaylor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks great!!!

}) => {
const [cloudPath, setCloudPath] = useState('');
const { isRequired, fileSuffix } = input;
const GCS_PATH_VALIDATION_REGEX = /^gs:\/\/[a-z0-9._-]+\/.+/;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice!

Copy link
Copy Markdown
Contributor

@salonishah11 salonishah11 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sonarcloud is reporting a minor unexpected negation issue but apart from that this LGTM

@MatthewBemis
Copy link
Copy Markdown
Member Author

unless anyone disagrees, i prefer the way the code is written over what Sonar is suggesting for the negated condition warning

@MatthewBemis MatthewBemis added this pull request to the merge queue Feb 24, 2026
Merged via the queue into dev with commit a85c056 Feb 24, 2026
11 checks passed
@MatthewBemis MatthewBemis deleted the mb-tsps-776-cloud-inputs branch February 24, 2026 16:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants