Do not relativize ExpData URIs when making the LSID unless under file root #7261
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 addresses a Pipeline-related issue we encountered when updating to 25.11. I believe our issue is an unintended consequence of this commit, which was probably designed to tighten handling of files under the LK file root:
0a066b5
Short Background:
Specific stacktrace here. In this example, the PipelineJob JSON is providing absolute filepaths, which should be allowable. In 25.11 they throw this exception:
Below is a segment of the pipeline job JSON:
Here is some longer background, which I'm writing in case LabKey decides to further tighten up security on cross-container files. I am all for this, but we have some longstanding use-cases I hope can be considered:
We have PipelineJobs that execute on a cluster, where the working directory is a completely different filesystem from the LabKey server. Inputs and outputs are recorded using those filepaths, which are saved into RecordedActions. That is serialized back to the server, which processes it into the Experiment/ExpRun system. From a permission perspective, I would be supportive of having a site- or container-level mechanism for the admin to provide an inclusion list of allowable file paths. This would be a relatively easy thing to administer (they do not change much), and would be a step forward on security.
In addition to instances where these reference a file outside of the LK file root, there are longstanding use cases where a file is referenced across containers. This includes a file in the /Shared container (which is commonly a special-case for permissions). This also includes instances where a workbook references a file in the parent container, or across sibling workbooks. Workbook/Parent relationships are also longstanding allowable cross-container interactions. When thinking about how to enforce filesystem permissions, I would suggest taking notes from how Query works (and also ContainerFilter). The problem of deciding what query rows to show is conceptually similar to what pipeline roots should or should not be allowable.