From 1858cb34b947f31a60fa4256125fb5c42494d7b5 Mon Sep 17 00:00:00 2001 From: labkey-nicka Date: Sun, 28 Dec 2025 10:34:01 -0800 Subject: [PATCH 1/9] lock.svg --- core/webapp/_images/lock.svg | 13 +++++++++++++ core/webapp/_images/lock_gray.svg | 13 +++++++++++++ core/webapp/_images/lock_light.svg | 13 +++++++++++++ core/webapp/_images/lock_orange.svg | 13 +++++++++++++ 4 files changed, 52 insertions(+) create mode 100644 core/webapp/_images/lock.svg create mode 100644 core/webapp/_images/lock_gray.svg create mode 100644 core/webapp/_images/lock_light.svg create mode 100644 core/webapp/_images/lock_orange.svg diff --git a/core/webapp/_images/lock.svg b/core/webapp/_images/lock.svg new file mode 100644 index 00000000000..0904d752df2 --- /dev/null +++ b/core/webapp/_images/lock.svg @@ -0,0 +1,13 @@ + + + + + + + \ No newline at end of file diff --git a/core/webapp/_images/lock_gray.svg b/core/webapp/_images/lock_gray.svg new file mode 100644 index 00000000000..2c5ab0ab973 --- /dev/null +++ b/core/webapp/_images/lock_gray.svg @@ -0,0 +1,13 @@ + + + + + + + \ No newline at end of file diff --git a/core/webapp/_images/lock_light.svg b/core/webapp/_images/lock_light.svg new file mode 100644 index 00000000000..3e6efd24577 --- /dev/null +++ b/core/webapp/_images/lock_light.svg @@ -0,0 +1,13 @@ + + + + + + + \ No newline at end of file diff --git a/core/webapp/_images/lock_orange.svg b/core/webapp/_images/lock_orange.svg new file mode 100644 index 00000000000..eefdacbfb7e --- /dev/null +++ b/core/webapp/_images/lock_orange.svg @@ -0,0 +1,13 @@ + + + + + + + \ No newline at end of file From b775a7c5f741ed4b23d7baab7adeeb8381e43217 Mon Sep 17 00:00:00 2001 From: labkey-nicka Date: Sun, 28 Dec 2025 10:35:02 -0800 Subject: [PATCH 2/9] Lineage: restricted nodes --- .../experiment/lineage/ExpLineageServiceImpl.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/experiment/src/org/labkey/experiment/lineage/ExpLineageServiceImpl.java b/experiment/src/org/labkey/experiment/lineage/ExpLineageServiceImpl.java index 5dc18540660..236f1fb5d50 100644 --- a/experiment/src/org/labkey/experiment/lineage/ExpLineageServiceImpl.java +++ b/experiment/src/org/labkey/experiment/lineage/ExpLineageServiceImpl.java @@ -328,8 +328,7 @@ private static void writeNode(Identifiable node, StreamContext context) try { - if (context.hasPermission(node.getContainer())) - context.writer.writeProperty(node.getLSID(), nodeToJson(node, context.popEdges(node.getLSID()), context)); + context.writer.writeProperty(node.getLSID(), nodeToJson(node, context.popEdges(node.getLSID()), context)); } catch (IOException e) { @@ -343,11 +342,21 @@ private static JSONObject nodeToJson(@Nullable Identifiable node, ExpLineage.Edg if (node == null) json = new JSONObject(); - else + else if (context.hasPermission(node.getContainer())) { json = ExperimentJSONConverter.serialize(node, context.user, context.settings); json.put("type", node.getLSIDNamespacePrefix()); } + else // if option.includeRestrictedNodes == true + { + json = new JSONObject(); + json.put("restricted", true); + json.put("type", node.getLSIDNamespacePrefix()); + + // TODO: Would be nice to get this without serializing the whole object first + var expJson = ExperimentJSONConverter.serialize(node, context.user, context.settings); + json.put(ExperimentJSONConverter.EXP_TYPE, expJson.get(ExperimentJSONConverter.EXP_TYPE)); + } json.put("parents", edges.parents().stream().map(ExpLineage.Edge::toParentJSON).toList()); json.put("children", edges.children().stream().map(ExpLineage.Edge::toChildJSON).toList()); From 8522a7a1a4d0151204c0a270e46684efd13d4f6b Mon Sep 17 00:00:00 2001 From: labkey-nicka Date: Mon, 29 Dec 2025 06:55:36 -0800 Subject: [PATCH 3/9] includeRestrictedNodes --- .../labkey/api/exp/api/ExpLineageOptions.java | 2 ++ .../api/exp/api/ExperimentJSONConverter.java | 24 ++++++++++---- .../labkey/api/exp/api/ResolveLsidsForm.java | 32 ++++++++++++++++--- .../assay/actions/GetAssayRunsAction.java | 2 +- .../controllers/exp/ExperimentController.java | 2 +- .../lineage/ExpLineageServiceImpl.java | 6 ++-- 6 files changed, 53 insertions(+), 15 deletions(-) diff --git a/api/src/org/labkey/api/exp/api/ExpLineageOptions.java b/api/src/org/labkey/api/exp/api/ExpLineageOptions.java index 353db27e02d..27ef117ab7b 100644 --- a/api/src/org/labkey/api/exp/api/ExpLineageOptions.java +++ b/api/src/org/labkey/api/exp/api/ExpLineageOptions.java @@ -60,10 +60,12 @@ public enum LineageExpType public ExpLineageOptions() { + super(); } public ExpLineageOptions(boolean parents, boolean children, int depth) { + super(); _parents = parents; _children = children; _depth = depth; diff --git a/api/src/org/labkey/api/exp/api/ExperimentJSONConverter.java b/api/src/org/labkey/api/exp/api/ExperimentJSONConverter.java index f136d81e8f7..b8680719da9 100644 --- a/api/src/org/labkey/api/exp/api/ExperimentJSONConverter.java +++ b/api/src/org/labkey/api/exp/api/ExperimentJSONConverter.java @@ -139,18 +139,25 @@ public static class Settings { private final boolean includeProperties; private final boolean includeInputsAndOutputs; + private final boolean includeRestrictedNodes; private final boolean includeRunSteps; - public Settings() + private Settings() { - this(true, true, false); + this(true, true, false, false); } - public Settings(boolean includeProperties, boolean includeInputsAndOutputs, boolean includeRunSteps) + public Settings(boolean includeProperties, boolean includeInputsAndOutputs, boolean includeRunSteps, boolean includeRestrictedNodes) { this.includeProperties = includeProperties; this.includeInputsAndOutputs = includeInputsAndOutputs; this.includeRunSteps = includeRunSteps; + this.includeRestrictedNodes = includeRestrictedNodes; + } + + public Settings(ResolveLsidsForm form) + { + this(form.isIncludeProperties(), form.isIncludeInputsAndOutputs(), form.isIncludeRunSteps(), form.isIncludeRestrictedNodes()); } public boolean isIncludeProperties() @@ -168,19 +175,24 @@ public boolean isIncludeRunSteps() return includeRunSteps; } + public boolean isIncludeRestrictedNodes() + { + return includeRestrictedNodes; + } + public Settings withIncludeProperties(boolean b) { - return new Settings(b, includeInputsAndOutputs, includeRunSteps); + return new Settings(b, includeInputsAndOutputs, includeRunSteps, includeRestrictedNodes); } public Settings withIncludeInputsAndOutputs(boolean b) { - return new Settings(includeProperties, b, includeRunSteps); + return new Settings(includeProperties, b, includeRunSteps, includeRestrictedNodes); } public Settings withIncludeRunSteps(boolean b) { - return new Settings(includeProperties, includeInputsAndOutputs, b); + return new Settings(includeProperties, includeInputsAndOutputs, b, includeRestrictedNodes); } } diff --git a/api/src/org/labkey/api/exp/api/ResolveLsidsForm.java b/api/src/org/labkey/api/exp/api/ResolveLsidsForm.java index a3a5ae48f2e..8c8431a82a9 100644 --- a/api/src/org/labkey/api/exp/api/ResolveLsidsForm.java +++ b/api/src/org/labkey/api/exp/api/ResolveLsidsForm.java @@ -6,13 +6,25 @@ public class ResolveLsidsForm { - private boolean _singleSeedRequested = false; + private boolean _includeProperties; + private boolean _includeInputsAndOutputs; + private boolean _includeRestrictedNodes; + private boolean _includeRunSteps; private List _lsids; + private boolean _singleSeedRequested = false; + + public ResolveLsidsForm() + { + this(false, false, false, false); + } - // serialization options - private boolean _includeProperties = false; - private boolean _includeInputsAndOutputs = false; - private boolean _includeRunSteps = false; + public ResolveLsidsForm(boolean includeProperties, boolean includeInputsAndOutputs, boolean includeRunSteps, boolean includeRestrictedNodes) + { + _includeProperties = includeProperties; + _includeInputsAndOutputs = includeInputsAndOutputs; + _includeRestrictedNodes = includeRestrictedNodes; + _includeRunSteps = includeRunSteps; + } public List getLsids() { @@ -56,6 +68,16 @@ public void setIncludeInputsAndOutputs(boolean includeInputsAndOutputs) _includeInputsAndOutputs = includeInputsAndOutputs; } + public boolean isIncludeRestrictedNodes() + { + return _includeRestrictedNodes; + } + + public void setIncludeRestrictedNodes(boolean includeRestrictedNodes) + { + _includeRestrictedNodes = includeRestrictedNodes; + } + public boolean isIncludeRunSteps() { return _includeRunSteps; diff --git a/assay/src/org/labkey/assay/actions/GetAssayRunsAction.java b/assay/src/org/labkey/assay/actions/GetAssayRunsAction.java index e81a010bc56..c6ee5ed2ab2 100644 --- a/assay/src/org/labkey/assay/actions/GetAssayRunsAction.java +++ b/assay/src/org/labkey/assay/actions/GetAssayRunsAction.java @@ -30,7 +30,7 @@ public ApiResponse execute(AssayRunsForm assayRunsForm, BindException errors) th { List runs; JSONObject result = new JSONObject(); - var settings = new ExperimentJSONConverter.Settings(assayRunsForm.includeProperties, assayRunsForm.includeInputsAndOutputs, assayRunsForm.includeRunSteps); + var settings = new ExperimentJSONConverter.Settings(assayRunsForm.includeProperties, assayRunsForm.includeInputsAndOutputs, assayRunsForm.includeRunSteps, false); if (assayRunsForm.getLsids() != null && !assayRunsForm.getLsids().isEmpty()) { diff --git a/experiment/src/org/labkey/experiment/controllers/exp/ExperimentController.java b/experiment/src/org/labkey/experiment/controllers/exp/ExperimentController.java index 1d257d8b06f..2573050b009 100644 --- a/experiment/src/org/labkey/experiment/controllers/exp/ExperimentController.java +++ b/experiment/src/org/labkey/experiment/controllers/exp/ExperimentController.java @@ -7299,7 +7299,7 @@ public static class ResolveAction extends BaseResolveLsidApiAction ExperimentJSONConverter.serialize(n, getUser(), settings)).collect(toList()); return new ApiSimpleResponse("data", data); } diff --git a/experiment/src/org/labkey/experiment/lineage/ExpLineageServiceImpl.java b/experiment/src/org/labkey/experiment/lineage/ExpLineageServiceImpl.java index 236f1fb5d50..4acae8552b3 100644 --- a/experiment/src/org/labkey/experiment/lineage/ExpLineageServiceImpl.java +++ b/experiment/src/org/labkey/experiment/lineage/ExpLineageServiceImpl.java @@ -273,7 +273,7 @@ public void streamLineage(Container container, User user, HttpServletResponse re var context = new StreamContext( user, new ApiJsonWriter(response), - new ExperimentJSONConverter.Settings(options.isIncludeProperties(), options.isIncludeInputsAndOutputs(), options.isIncludeRunSteps()), + new ExperimentJSONConverter.Settings(options), ExpLineage.processEdges(lineage.edges()), new HashMap<>() ); @@ -347,7 +347,7 @@ else if (context.hasPermission(node.getContainer())) json = ExperimentJSONConverter.serialize(node, context.user, context.settings); json.put("type", node.getLSIDNamespacePrefix()); } - else // if option.includeRestrictedNodes == true + else if (context.settings.isIncludeRestrictedNodes()) { json = new JSONObject(); json.put("restricted", true); @@ -357,6 +357,8 @@ else if (context.hasPermission(node.getContainer())) var expJson = ExperimentJSONConverter.serialize(node, context.user, context.settings); json.put(ExperimentJSONConverter.EXP_TYPE, expJson.get(ExperimentJSONConverter.EXP_TYPE)); } + else + json = new JSONObject(); json.put("parents", edges.parents().stream().map(ExpLineage.Edge::toParentJSON).toList()); json.put("children", edges.children().stream().map(ExpLineage.Edge::toChildJSON).toList()); From 5ff798e935d57ac91f7a6a7b552524439df2d2a0 Mon Sep 17 00:00:00 2001 From: labkey-nicka Date: Mon, 29 Dec 2025 07:16:30 -0800 Subject: [PATCH 4/9] ExpObject.getExpType() --- api/src/org/labkey/api/exp/api/ExpData.java | 6 ++++ .../org/labkey/api/exp/api/ExpExperiment.java | 6 ++++ .../org/labkey/api/exp/api/ExpMaterial.java | 6 ++++ api/src/org/labkey/api/exp/api/ExpObject.java | 5 +++ .../org/labkey/api/exp/api/ExpProtocol.java | 6 ++++ .../api/exp/api/ExpProtocolApplication.java | 5 +++ api/src/org/labkey/api/exp/api/ExpRun.java | 6 ++++ .../api/exp/api/ExperimentJSONConverter.java | 11 ++---- .../lineage/ExpLineageServiceImpl.java | 36 ++++++++++--------- 9 files changed, 63 insertions(+), 24 deletions(-) diff --git a/api/src/org/labkey/api/exp/api/ExpData.java b/api/src/org/labkey/api/exp/api/ExpData.java index 6227f75a03f..dac0b81068c 100644 --- a/api/src/org/labkey/api/exp/api/ExpData.java +++ b/api/src/org/labkey/api/exp/api/ExpData.java @@ -127,4 +127,10 @@ static String normalizeDataFileURI(URI uri) } return s; } + + @Override + default String getExpType() + { + return DEFAULT_CPAS_TYPE; + } } diff --git a/api/src/org/labkey/api/exp/api/ExpExperiment.java b/api/src/org/labkey/api/exp/api/ExpExperiment.java index d85ec21ba91..c9ad71b2628 100644 --- a/api/src/org/labkey/api/exp/api/ExpExperiment.java +++ b/api/src/org/labkey/api/exp/api/ExpExperiment.java @@ -76,4 +76,10 @@ public interface ExpExperiment extends ExpObject /** Override to signal that we never throw BatchValidationExceptions */ @Override void save(User user); + + @Override + default String getExpType() + { + return DEFAULT_CPAS_TYPE; + } } diff --git a/api/src/org/labkey/api/exp/api/ExpMaterial.java b/api/src/org/labkey/api/exp/api/ExpMaterial.java index c1b9b829fdb..8289edc90d7 100644 --- a/api/src/org/labkey/api/exp/api/ExpMaterial.java +++ b/api/src/org/labkey/api/exp/api/ExpMaterial.java @@ -86,4 +86,10 @@ public interface ExpMaterial extends ExpRunItem Date getMaterialExpDate(); ActionURL detailsURL(Container container, boolean checkForOverride); + + @Override + default String getExpType() + { + return DEFAULT_CPAS_TYPE; + } } diff --git a/api/src/org/labkey/api/exp/api/ExpObject.java b/api/src/org/labkey/api/exp/api/ExpObject.java index 7a1a86c3382..ff1296a8d03 100644 --- a/api/src/org/labkey/api/exp/api/ExpObject.java +++ b/api/src/org/labkey/api/exp/api/ExpObject.java @@ -99,4 +99,9 @@ default ExpObject getExpObject() { return this; } + + default String getExpType() + { + return DEFAULT_CPAS_TYPE; + } } diff --git a/api/src/org/labkey/api/exp/api/ExpProtocol.java b/api/src/org/labkey/api/exp/api/ExpProtocol.java index 2079789d1ac..eb633711b42 100644 --- a/api/src/org/labkey/api/exp/api/ExpProtocol.java +++ b/api/src/org/labkey/api/exp/api/ExpProtocol.java @@ -166,4 +166,10 @@ default String getDocumentId() } Map getAuditRecordMap(AssayProvider provider); + + @Override + default String getExpType() + { + return DEFAULT_CPAS_TYPE; + } } diff --git a/api/src/org/labkey/api/exp/api/ExpProtocolApplication.java b/api/src/org/labkey/api/exp/api/ExpProtocolApplication.java index 7fc125f915a..43a46c1f032 100644 --- a/api/src/org/labkey/api/exp/api/ExpProtocolApplication.java +++ b/api/src/org/labkey/api/exp/api/ExpProtocolApplication.java @@ -119,4 +119,9 @@ public interface ExpProtocolApplication extends ExpObject @Override void save(User user); + @Override + default String getExpType() + { + return DEFAULT_CPAS_TYPE; + } } diff --git a/api/src/org/labkey/api/exp/api/ExpRun.java b/api/src/org/labkey/api/exp/api/ExpRun.java index 76a53a4d1f8..f068a8a3a6b 100644 --- a/api/src/org/labkey/api/exp/api/ExpRun.java +++ b/api/src/org/labkey/api/exp/api/ExpRun.java @@ -146,4 +146,10 @@ default FileLike getFilePathFileLike() @Nullable Long getWorkflowTaskId(); boolean canDelete(User user); + + @Override + default String getExpType() + { + return DEFAULT_CPAS_TYPE; + } } diff --git a/api/src/org/labkey/api/exp/api/ExperimentJSONConverter.java b/api/src/org/labkey/api/exp/api/ExperimentJSONConverter.java index b8680719da9..886b0b73589 100644 --- a/api/src/org/labkey/api/exp/api/ExperimentJSONConverter.java +++ b/api/src/org/labkey/api/exp/api/ExperimentJSONConverter.java @@ -216,7 +216,6 @@ else if (node instanceof ExpObject expObject) public static JSONObject serializeRunGroup(ExpExperiment runGroup, Domain domain, @NotNull Settings settings, @Nullable User user) { JSONObject jsonObject = serializeExpObject(runGroup, domain == null ? null : domain.getProperties(), settings, user); - jsonObject.put(ExperimentJSONConverter.EXP_TYPE, ExpExperiment.DEFAULT_CPAS_TYPE); ExpProtocol protocol = runGroup.getBatchProtocol(); if (protocol != null) @@ -236,7 +235,6 @@ public static JSONObject serializeRunGroup(ExpExperiment runGroup, Domain domain public static JSONObject serializeRun(ExpRun run, Domain domain, User user, @NotNull Settings settings) { JSONObject jsonObject = serializeExpObject(run, domain == null ? null : domain.getProperties(), settings, user); - jsonObject.put(ExperimentJSONConverter.EXP_TYPE, ExpRun.DEFAULT_CPAS_TYPE); ExpProtocol protocol = run.getProtocol(); if (protocol != null) @@ -306,9 +304,7 @@ public static JSONObject serializeRun(ExpRun run, Domain domain, User user, @Not // Just include basic protocol properties for now. // See GetProtocolAction and GWTProtocol for serializing an assay protocol with domain fields. - JSONObject jsonObject = serializeExpObject(protocol, null, DEFAULT_SETTINGS.withIncludeProperties(false), user); - jsonObject.put(ExperimentJSONConverter.EXP_TYPE, ExpProtocol.DEFAULT_CPAS_TYPE); - return jsonObject; + return serializeExpObject(protocol, null, DEFAULT_SETTINGS.withIncludeProperties(false), user); } public static JSONObject serializeRunOutputs(Collection data, Collection materials, User user, @NotNull Settings settings) @@ -400,10 +396,9 @@ else if (runInput instanceof ExpMaterialRunInput expMaterialRunInput) protected static JSONObject serializeRunProtocolApplication(@NotNull ExpProtocolApplication protApp, User user, Settings settings) { JSONObject json = serializeExpObject(protApp, null, settings, user); - json.put(ExperimentJSONConverter.EXP_TYPE, ExpProtocolApplication.DEFAULT_CPAS_TYPE); - json.put(ACTION_SEQUENCE, protApp.getActionSequence()); json.put(APPLICATION_TYPE, protApp.getApplicationType().toString()); + if (protApp.getComments() != null) json.put(COMMENT, protApp.getComments()); @@ -582,7 +577,7 @@ public static JSONObject serializeExpObject( // instead and use serializeOntologyProperties(ExpObject) so the object properties will be // fetched using ExpObject.getProperty(). JSONObject jsonObject = serializeIdentifiableBean(object, user); - jsonObject.put(ExperimentJSONConverter.EXP_TYPE, ExpObject.DEFAULT_CPAS_TYPE); + jsonObject.put(ExperimentJSONConverter.EXP_TYPE, object.getExpType()); long rowId = object.getRowId(); if (rowId != 0) diff --git a/experiment/src/org/labkey/experiment/lineage/ExpLineageServiceImpl.java b/experiment/src/org/labkey/experiment/lineage/ExpLineageServiceImpl.java index 4acae8552b3..ae0ff194947 100644 --- a/experiment/src/org/labkey/experiment/lineage/ExpLineageServiceImpl.java +++ b/experiment/src/org/labkey/experiment/lineage/ExpLineageServiceImpl.java @@ -336,34 +336,38 @@ private static void writeNode(Identifiable node, StreamContext context) } } - private static JSONObject nodeToJson(@Nullable Identifiable node, ExpLineage.Edges edges, StreamContext context) + private static @NotNull JSONObject nodeToJson(@Nullable Identifiable node, ExpLineage.Edges edges, StreamContext context) { - JSONObject json; + JSONObject json = createNodeJson(node, context); + json.put("parents", edges.parents().stream().map(ExpLineage.Edge::toParentJSON).toList()); + json.put("children", edges.children().stream().map(ExpLineage.Edge::toChildJSON).toList()); + return json; + } + + private static @NotNull JSONObject createNodeJson(@Nullable Identifiable node, StreamContext context) + { if (node == null) - json = new JSONObject(); - else if (context.hasPermission(node.getContainer())) + return new JSONObject(); + + if (context.hasPermission(node.getContainer())) { - json = ExperimentJSONConverter.serialize(node, context.user, context.settings); + JSONObject json = ExperimentJSONConverter.serialize(node, context.user, context.settings); json.put("type", node.getLSIDNamespacePrefix()); + return json; } - else if (context.settings.isIncludeRestrictedNodes()) + + if (context.settings.isIncludeRestrictedNodes()) { - json = new JSONObject(); + JSONObject json = new JSONObject(); + json.put(ExperimentJSONConverter.EXP_TYPE, node instanceof ExpObject expObject ? expObject.getExpType() : null); json.put("restricted", true); json.put("type", node.getLSIDNamespacePrefix()); - // TODO: Would be nice to get this without serializing the whole object first - var expJson = ExperimentJSONConverter.serialize(node, context.user, context.settings); - json.put(ExperimentJSONConverter.EXP_TYPE, expJson.get(ExperimentJSONConverter.EXP_TYPE)); + return json; } - else - json = new JSONObject(); - - json.put("parents", edges.parents().stream().map(ExpLineage.Edge::toParentJSON).toList()); - json.put("children", edges.children().stream().map(ExpLineage.Edge::toChildJSON).toList()); - return json; + return new JSONObject(); } private static void writeSeed(LineageResult lineage, StreamContext context, ExpLineageOptions options) throws IOException From 1466bd402845161179929639f18baedf7e4e67ed Mon Sep 17 00:00:00 2001 From: labkey-nicka Date: Tue, 30 Dec 2025 13:14:21 -0800 Subject: [PATCH 5/9] Improved lock icons --- core/webapp/_images/lock.svg | 18 +++++------------- core/webapp/_images/lock_gray.svg | 18 +++++------------- core/webapp/_images/lock_light.svg | 18 +++++------------- core/webapp/_images/lock_orange.svg | 18 +++++------------- 4 files changed, 20 insertions(+), 52 deletions(-) diff --git a/core/webapp/_images/lock.svg b/core/webapp/_images/lock.svg index 0904d752df2..6dfd3adc65e 100644 --- a/core/webapp/_images/lock.svg +++ b/core/webapp/_images/lock.svg @@ -1,13 +1,5 @@ - - - - - - - \ No newline at end of file + + + + + diff --git a/core/webapp/_images/lock_gray.svg b/core/webapp/_images/lock_gray.svg index 2c5ab0ab973..67ff93fcc5d 100644 --- a/core/webapp/_images/lock_gray.svg +++ b/core/webapp/_images/lock_gray.svg @@ -1,13 +1,5 @@ - - - - - - - \ No newline at end of file + + + + + diff --git a/core/webapp/_images/lock_light.svg b/core/webapp/_images/lock_light.svg index 3e6efd24577..461eaec0f8a 100644 --- a/core/webapp/_images/lock_light.svg +++ b/core/webapp/_images/lock_light.svg @@ -1,13 +1,5 @@ - - - - - - - \ No newline at end of file + + + + + diff --git a/core/webapp/_images/lock_orange.svg b/core/webapp/_images/lock_orange.svg index eefdacbfb7e..182d92e64bf 100644 --- a/core/webapp/_images/lock_orange.svg +++ b/core/webapp/_images/lock_orange.svg @@ -1,13 +1,5 @@ - - - - - - - \ No newline at end of file + + + + + From 0b4d1c9f2081cadc986b76844a874bcfcc8249d5 Mon Sep 17 00:00:00 2001 From: labkey-nicka Date: Tue, 6 Jan 2026 08:13:27 -0800 Subject: [PATCH 6/9] Undo includeRestrictedNodes --- .../api/exp/api/ExperimentJSONConverter.java | 19 ++++++------------- .../labkey/api/exp/api/ResolveLsidsForm.java | 16 ++-------------- .../lineage/ExpLineageServiceImpl.java | 17 +++++++---------- 3 files changed, 15 insertions(+), 37 deletions(-) diff --git a/api/src/org/labkey/api/exp/api/ExperimentJSONConverter.java b/api/src/org/labkey/api/exp/api/ExperimentJSONConverter.java index 886b0b73589..8defb1a3c95 100644 --- a/api/src/org/labkey/api/exp/api/ExperimentJSONConverter.java +++ b/api/src/org/labkey/api/exp/api/ExperimentJSONConverter.java @@ -139,25 +139,23 @@ public static class Settings { private final boolean includeProperties; private final boolean includeInputsAndOutputs; - private final boolean includeRestrictedNodes; private final boolean includeRunSteps; private Settings() { - this(true, true, false, false); + this(true, true, false); } - public Settings(boolean includeProperties, boolean includeInputsAndOutputs, boolean includeRunSteps, boolean includeRestrictedNodes) + public Settings(boolean includeProperties, boolean includeInputsAndOutputs, boolean includeRunSteps) { this.includeProperties = includeProperties; this.includeInputsAndOutputs = includeInputsAndOutputs; this.includeRunSteps = includeRunSteps; - this.includeRestrictedNodes = includeRestrictedNodes; } public Settings(ResolveLsidsForm form) { - this(form.isIncludeProperties(), form.isIncludeInputsAndOutputs(), form.isIncludeRunSteps(), form.isIncludeRestrictedNodes()); + this(form.isIncludeProperties(), form.isIncludeInputsAndOutputs(), form.isIncludeRunSteps()); } public boolean isIncludeProperties() @@ -175,24 +173,19 @@ public boolean isIncludeRunSteps() return includeRunSteps; } - public boolean isIncludeRestrictedNodes() - { - return includeRestrictedNodes; - } - public Settings withIncludeProperties(boolean b) { - return new Settings(b, includeInputsAndOutputs, includeRunSteps, includeRestrictedNodes); + return new Settings(b, includeInputsAndOutputs, includeRunSteps); } public Settings withIncludeInputsAndOutputs(boolean b) { - return new Settings(includeProperties, b, includeRunSteps, includeRestrictedNodes); + return new Settings(includeProperties, b, includeRunSteps); } public Settings withIncludeRunSteps(boolean b) { - return new Settings(includeProperties, includeInputsAndOutputs, b, includeRestrictedNodes); + return new Settings(includeProperties, includeInputsAndOutputs, b); } } diff --git a/api/src/org/labkey/api/exp/api/ResolveLsidsForm.java b/api/src/org/labkey/api/exp/api/ResolveLsidsForm.java index 8c8431a82a9..5f1a8a49d96 100644 --- a/api/src/org/labkey/api/exp/api/ResolveLsidsForm.java +++ b/api/src/org/labkey/api/exp/api/ResolveLsidsForm.java @@ -8,21 +8,19 @@ public class ResolveLsidsForm { private boolean _includeProperties; private boolean _includeInputsAndOutputs; - private boolean _includeRestrictedNodes; private boolean _includeRunSteps; private List _lsids; private boolean _singleSeedRequested = false; public ResolveLsidsForm() { - this(false, false, false, false); + this(false, false, false); } - public ResolveLsidsForm(boolean includeProperties, boolean includeInputsAndOutputs, boolean includeRunSteps, boolean includeRestrictedNodes) + public ResolveLsidsForm(boolean includeProperties, boolean includeInputsAndOutputs, boolean includeRunSteps) { _includeProperties = includeProperties; _includeInputsAndOutputs = includeInputsAndOutputs; - _includeRestrictedNodes = includeRestrictedNodes; _includeRunSteps = includeRunSteps; } @@ -68,16 +66,6 @@ public void setIncludeInputsAndOutputs(boolean includeInputsAndOutputs) _includeInputsAndOutputs = includeInputsAndOutputs; } - public boolean isIncludeRestrictedNodes() - { - return _includeRestrictedNodes; - } - - public void setIncludeRestrictedNodes(boolean includeRestrictedNodes) - { - _includeRestrictedNodes = includeRestrictedNodes; - } - public boolean isIncludeRunSteps() { return _includeRunSteps; diff --git a/experiment/src/org/labkey/experiment/lineage/ExpLineageServiceImpl.java b/experiment/src/org/labkey/experiment/lineage/ExpLineageServiceImpl.java index ae0ff194947..29229a9dabe 100644 --- a/experiment/src/org/labkey/experiment/lineage/ExpLineageServiceImpl.java +++ b/experiment/src/org/labkey/experiment/lineage/ExpLineageServiceImpl.java @@ -357,17 +357,14 @@ private static void writeNode(Identifiable node, StreamContext context) return json; } - if (context.settings.isIncludeRestrictedNodes()) - { - JSONObject json = new JSONObject(); - json.put(ExperimentJSONConverter.EXP_TYPE, node instanceof ExpObject expObject ? expObject.getExpType() : null); - json.put("restricted", true); - json.put("type", node.getLSIDNamespacePrefix()); - - return json; - } + // GitHub Issue #441: Indicate there is missing lineage information when the user does not have permission to + // see the full lineage tree. + JSONObject json = new JSONObject(); + json.put(ExperimentJSONConverter.EXP_TYPE, node instanceof ExpObject expObject ? expObject.getExpType() : null); + json.put("restricted", true); + json.put("type", node.getLSIDNamespacePrefix()); - return new JSONObject(); + return json; } private static void writeSeed(LineageResult lineage, StreamContext context, ExpLineageOptions options) throws IOException From 6293fbd3253a3f0329ce91bfd11b2d4ad754e294 Mon Sep 17 00:00:00 2001 From: labkey-nicka Date: Tue, 6 Jan 2026 08:16:42 -0800 Subject: [PATCH 7/9] Undo includeRestrictedNodes --- assay/src/org/labkey/assay/actions/GetAssayRunsAction.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assay/src/org/labkey/assay/actions/GetAssayRunsAction.java b/assay/src/org/labkey/assay/actions/GetAssayRunsAction.java index c6ee5ed2ab2..e81a010bc56 100644 --- a/assay/src/org/labkey/assay/actions/GetAssayRunsAction.java +++ b/assay/src/org/labkey/assay/actions/GetAssayRunsAction.java @@ -30,7 +30,7 @@ public ApiResponse execute(AssayRunsForm assayRunsForm, BindException errors) th { List runs; JSONObject result = new JSONObject(); - var settings = new ExperimentJSONConverter.Settings(assayRunsForm.includeProperties, assayRunsForm.includeInputsAndOutputs, assayRunsForm.includeRunSteps, false); + var settings = new ExperimentJSONConverter.Settings(assayRunsForm.includeProperties, assayRunsForm.includeInputsAndOutputs, assayRunsForm.includeRunSteps); if (assayRunsForm.getLsids() != null && !assayRunsForm.getLsids().isEmpty()) { From 1128db6dc115e7f70a9931f07b60f679f8fcf4b1 Mon Sep 17 00:00:00 2001 From: labkey-nicka Date: Wed, 7 Jan 2026 09:42:45 -0800 Subject: [PATCH 8/9] Bump @labkey/components --- assay/package-lock.json | 16 ++++++++-------- assay/package.json | 2 +- core/package-lock.json | 16 ++++++++-------- core/package.json | 2 +- experiment/package-lock.json | 16 ++++++++-------- experiment/package.json | 2 +- pipeline/package-lock.json | 16 ++++++++-------- pipeline/package.json | 2 +- 8 files changed, 36 insertions(+), 36 deletions(-) diff --git a/assay/package-lock.json b/assay/package-lock.json index 07ca0258215..e49f237c161 100644 --- a/assay/package-lock.json +++ b/assay/package-lock.json @@ -8,7 +8,7 @@ "name": "assay", "version": "0.0.0", "dependencies": { - "@labkey/components": "7.11.0" + "@labkey/components": "7.11.1-fb-lineage-441.1" }, "devDependencies": { "@labkey/build": "8.7.0", @@ -2482,9 +2482,9 @@ } }, "node_modules/@labkey/api": { - "version": "1.44.0", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.44.0.tgz", - "integrity": "sha512-qfHSWENWN2E1KTRACDj/Qq4Rq/tq8KIr5l6XOnMGLEoepUe8DneAnfcIVD5239oxwFDxMLEFCH83EKeat0C/9g==", + "version": "1.44.1-fb-lineage-441.2", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.44.1-fb-lineage-441.2.tgz", + "integrity": "sha512-/0JuBnCHdtM3dyz1l/WlRrWsSDK2E64V7hfdocG2FFUksWScruArtWsgSpxJT1jbjUeZgEBfTFZthVNzDIyvaA==", "license": "Apache-2.0" }, "node_modules/@labkey/build": { @@ -2525,13 +2525,13 @@ } }, "node_modules/@labkey/components": { - "version": "7.11.0", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/components/-/@labkey/components-7.11.0.tgz", - "integrity": "sha512-o7/0xJTn9N+iO8M9oyDqjRcNv9C5GNXzarVphkTzRdC+vpEB9WzOu2LESNEWksb11efO1FHztsmu7/Rp5RqbeA==", + "version": "7.11.1-fb-lineage-441.1", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/components/-/@labkey/components-7.11.1-fb-lineage-441.1.tgz", + "integrity": "sha512-bBaV+c/bdX4TUbjlSI8wq+Y9NMxfeAA5pyV0Oos76UDWkzjtgiFUmIbYW/RzPTbMjZMWBG1RgLGVVvyv2Am2qg==", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", - "@labkey/api": "1.44.0", + "@labkey/api": "1.44.1-fb-lineage-441.2", "@testing-library/dom": "~10.4.1", "@testing-library/jest-dom": "~6.9.1", "@testing-library/react": "~16.3.0", diff --git a/assay/package.json b/assay/package.json index 0c392fc335b..99da24214ad 100644 --- a/assay/package.json +++ b/assay/package.json @@ -12,7 +12,7 @@ "clean": "rimraf resources/web/assay/gen && rimraf resources/views/gen && rimraf resources/web/gen" }, "dependencies": { - "@labkey/components": "7.11.0" + "@labkey/components": "7.11.1-fb-lineage-441.1" }, "devDependencies": { "@labkey/build": "8.7.0", diff --git a/core/package-lock.json b/core/package-lock.json index 4f00b504f07..6d42abdbe31 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -8,7 +8,7 @@ "name": "labkey-core", "version": "0.0.0", "dependencies": { - "@labkey/components": "7.11.0", + "@labkey/components": "7.11.1-fb-lineage-441.1", "@labkey/themes": "1.5.0" }, "devDependencies": { @@ -3504,9 +3504,9 @@ } }, "node_modules/@labkey/api": { - "version": "1.44.0", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.44.0.tgz", - "integrity": "sha512-qfHSWENWN2E1KTRACDj/Qq4Rq/tq8KIr5l6XOnMGLEoepUe8DneAnfcIVD5239oxwFDxMLEFCH83EKeat0C/9g==", + "version": "1.44.1-fb-lineage-441.2", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.44.1-fb-lineage-441.2.tgz", + "integrity": "sha512-/0JuBnCHdtM3dyz1l/WlRrWsSDK2E64V7hfdocG2FFUksWScruArtWsgSpxJT1jbjUeZgEBfTFZthVNzDIyvaA==", "license": "Apache-2.0" }, "node_modules/@labkey/build": { @@ -3547,13 +3547,13 @@ } }, "node_modules/@labkey/components": { - "version": "7.11.0", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/components/-/@labkey/components-7.11.0.tgz", - "integrity": "sha512-o7/0xJTn9N+iO8M9oyDqjRcNv9C5GNXzarVphkTzRdC+vpEB9WzOu2LESNEWksb11efO1FHztsmu7/Rp5RqbeA==", + "version": "7.11.1-fb-lineage-441.1", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/components/-/@labkey/components-7.11.1-fb-lineage-441.1.tgz", + "integrity": "sha512-bBaV+c/bdX4TUbjlSI8wq+Y9NMxfeAA5pyV0Oos76UDWkzjtgiFUmIbYW/RzPTbMjZMWBG1RgLGVVvyv2Am2qg==", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", - "@labkey/api": "1.44.0", + "@labkey/api": "1.44.1-fb-lineage-441.2", "@testing-library/dom": "~10.4.1", "@testing-library/jest-dom": "~6.9.1", "@testing-library/react": "~16.3.0", diff --git a/core/package.json b/core/package.json index b61e48d7bad..43a71f7d2ec 100644 --- a/core/package.json +++ b/core/package.json @@ -53,7 +53,7 @@ } }, "dependencies": { - "@labkey/components": "7.11.0", + "@labkey/components": "7.11.1-fb-lineage-441.1", "@labkey/themes": "1.5.0" }, "devDependencies": { diff --git a/experiment/package-lock.json b/experiment/package-lock.json index e87719953eb..779113deac1 100644 --- a/experiment/package-lock.json +++ b/experiment/package-lock.json @@ -8,7 +8,7 @@ "name": "experiment", "version": "0.0.0", "dependencies": { - "@labkey/components": "7.11.0" + "@labkey/components": "7.11.1-fb-lineage-441.1" }, "devDependencies": { "@labkey/build": "8.7.0", @@ -3271,9 +3271,9 @@ } }, "node_modules/@labkey/api": { - "version": "1.44.0", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.44.0.tgz", - "integrity": "sha512-qfHSWENWN2E1KTRACDj/Qq4Rq/tq8KIr5l6XOnMGLEoepUe8DneAnfcIVD5239oxwFDxMLEFCH83EKeat0C/9g==", + "version": "1.44.1-fb-lineage-441.2", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.44.1-fb-lineage-441.2.tgz", + "integrity": "sha512-/0JuBnCHdtM3dyz1l/WlRrWsSDK2E64V7hfdocG2FFUksWScruArtWsgSpxJT1jbjUeZgEBfTFZthVNzDIyvaA==", "license": "Apache-2.0" }, "node_modules/@labkey/build": { @@ -3314,13 +3314,13 @@ } }, "node_modules/@labkey/components": { - "version": "7.11.0", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/components/-/@labkey/components-7.11.0.tgz", - "integrity": "sha512-o7/0xJTn9N+iO8M9oyDqjRcNv9C5GNXzarVphkTzRdC+vpEB9WzOu2LESNEWksb11efO1FHztsmu7/Rp5RqbeA==", + "version": "7.11.1-fb-lineage-441.1", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/components/-/@labkey/components-7.11.1-fb-lineage-441.1.tgz", + "integrity": "sha512-bBaV+c/bdX4TUbjlSI8wq+Y9NMxfeAA5pyV0Oos76UDWkzjtgiFUmIbYW/RzPTbMjZMWBG1RgLGVVvyv2Am2qg==", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", - "@labkey/api": "1.44.0", + "@labkey/api": "1.44.1-fb-lineage-441.2", "@testing-library/dom": "~10.4.1", "@testing-library/jest-dom": "~6.9.1", "@testing-library/react": "~16.3.0", diff --git a/experiment/package.json b/experiment/package.json index 619e9936c2f..824c55cb223 100644 --- a/experiment/package.json +++ b/experiment/package.json @@ -13,7 +13,7 @@ "test-integration": "cross-env NODE_ENV=test jest --ci --runInBand -c test/js/jest.config.integration.js" }, "dependencies": { - "@labkey/components": "7.11.0" + "@labkey/components": "7.11.1-fb-lineage-441.1" }, "devDependencies": { "@labkey/build": "8.7.0", diff --git a/pipeline/package-lock.json b/pipeline/package-lock.json index d334642467e..d7c6ebf3df9 100644 --- a/pipeline/package-lock.json +++ b/pipeline/package-lock.json @@ -8,7 +8,7 @@ "name": "pipeline", "version": "0.0.0", "dependencies": { - "@labkey/components": "7.11.0" + "@labkey/components": "7.11.1-fb-lineage-441.1" }, "devDependencies": { "@labkey/build": "8.7.0", @@ -2716,9 +2716,9 @@ } }, "node_modules/@labkey/api": { - "version": "1.44.0", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.44.0.tgz", - "integrity": "sha512-qfHSWENWN2E1KTRACDj/Qq4Rq/tq8KIr5l6XOnMGLEoepUe8DneAnfcIVD5239oxwFDxMLEFCH83EKeat0C/9g==", + "version": "1.44.1-fb-lineage-441.2", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.44.1-fb-lineage-441.2.tgz", + "integrity": "sha512-/0JuBnCHdtM3dyz1l/WlRrWsSDK2E64V7hfdocG2FFUksWScruArtWsgSpxJT1jbjUeZgEBfTFZthVNzDIyvaA==", "license": "Apache-2.0" }, "node_modules/@labkey/build": { @@ -2759,13 +2759,13 @@ } }, "node_modules/@labkey/components": { - "version": "7.11.0", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/components/-/@labkey/components-7.11.0.tgz", - "integrity": "sha512-o7/0xJTn9N+iO8M9oyDqjRcNv9C5GNXzarVphkTzRdC+vpEB9WzOu2LESNEWksb11efO1FHztsmu7/Rp5RqbeA==", + "version": "7.11.1-fb-lineage-441.1", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/components/-/@labkey/components-7.11.1-fb-lineage-441.1.tgz", + "integrity": "sha512-bBaV+c/bdX4TUbjlSI8wq+Y9NMxfeAA5pyV0Oos76UDWkzjtgiFUmIbYW/RzPTbMjZMWBG1RgLGVVvyv2Am2qg==", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", - "@labkey/api": "1.44.0", + "@labkey/api": "1.44.1-fb-lineage-441.2", "@testing-library/dom": "~10.4.1", "@testing-library/jest-dom": "~6.9.1", "@testing-library/react": "~16.3.0", diff --git a/pipeline/package.json b/pipeline/package.json index 00140ffb92b..43795c7595b 100644 --- a/pipeline/package.json +++ b/pipeline/package.json @@ -14,7 +14,7 @@ "build-prod": "npm run clean && cross-env NODE_ENV=production PROD_SOURCE_MAP=source-map webpack --config node_modules/@labkey/build/webpack/prod.config.js --color --progress --profile" }, "dependencies": { - "@labkey/components": "7.11.0" + "@labkey/components": "7.11.1-fb-lineage-441.1" }, "devDependencies": { "@labkey/build": "8.7.0", From 6498a4c89ae0933eec3e20d07e0fd39eb0f75f96 Mon Sep 17 00:00:00 2001 From: labkey-nicka Date: Wed, 7 Jan 2026 14:29:06 -0800 Subject: [PATCH 9/9] Bump @labkey/components --- assay/package-lock.json | 16 ++++++++-------- assay/package.json | 2 +- core/package-lock.json | 16 ++++++++-------- core/package.json | 2 +- experiment/package-lock.json | 16 ++++++++-------- experiment/package.json | 2 +- pipeline/package-lock.json | 16 ++++++++-------- pipeline/package.json | 2 +- 8 files changed, 36 insertions(+), 36 deletions(-) diff --git a/assay/package-lock.json b/assay/package-lock.json index e49f237c161..4843a841ff3 100644 --- a/assay/package-lock.json +++ b/assay/package-lock.json @@ -8,7 +8,7 @@ "name": "assay", "version": "0.0.0", "dependencies": { - "@labkey/components": "7.11.1-fb-lineage-441.1" + "@labkey/components": "7.12.0" }, "devDependencies": { "@labkey/build": "8.7.0", @@ -2482,9 +2482,9 @@ } }, "node_modules/@labkey/api": { - "version": "1.44.1-fb-lineage-441.2", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.44.1-fb-lineage-441.2.tgz", - "integrity": "sha512-/0JuBnCHdtM3dyz1l/WlRrWsSDK2E64V7hfdocG2FFUksWScruArtWsgSpxJT1jbjUeZgEBfTFZthVNzDIyvaA==", + "version": "1.44.1", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.44.1.tgz", + "integrity": "sha512-VUS4KLfwAsE45A3MnJUU3j97ei0ncQHv6OVVAN3kitID0xe8+mZ7B39zETVye3Dqgwa8TbYvsCp2t46QmBmwVQ==", "license": "Apache-2.0" }, "node_modules/@labkey/build": { @@ -2525,13 +2525,13 @@ } }, "node_modules/@labkey/components": { - "version": "7.11.1-fb-lineage-441.1", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/components/-/@labkey/components-7.11.1-fb-lineage-441.1.tgz", - "integrity": "sha512-bBaV+c/bdX4TUbjlSI8wq+Y9NMxfeAA5pyV0Oos76UDWkzjtgiFUmIbYW/RzPTbMjZMWBG1RgLGVVvyv2Am2qg==", + "version": "7.12.0", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/components/-/@labkey/components-7.12.0.tgz", + "integrity": "sha512-iwB+3m7JWcwJ7sPA8V+lPXeW6J0tSq/uueiRJ7EzzuaBubXgYwX4ISpZNVt4MzxtAybImzOGLU4ef4+2NFyVRw==", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", - "@labkey/api": "1.44.1-fb-lineage-441.2", + "@labkey/api": "1.44.1", "@testing-library/dom": "~10.4.1", "@testing-library/jest-dom": "~6.9.1", "@testing-library/react": "~16.3.0", diff --git a/assay/package.json b/assay/package.json index 99da24214ad..bba449b3803 100644 --- a/assay/package.json +++ b/assay/package.json @@ -12,7 +12,7 @@ "clean": "rimraf resources/web/assay/gen && rimraf resources/views/gen && rimraf resources/web/gen" }, "dependencies": { - "@labkey/components": "7.11.1-fb-lineage-441.1" + "@labkey/components": "7.12.0" }, "devDependencies": { "@labkey/build": "8.7.0", diff --git a/core/package-lock.json b/core/package-lock.json index 6d42abdbe31..5c3d14eb20d 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -8,7 +8,7 @@ "name": "labkey-core", "version": "0.0.0", "dependencies": { - "@labkey/components": "7.11.1-fb-lineage-441.1", + "@labkey/components": "7.12.0", "@labkey/themes": "1.5.0" }, "devDependencies": { @@ -3504,9 +3504,9 @@ } }, "node_modules/@labkey/api": { - "version": "1.44.1-fb-lineage-441.2", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.44.1-fb-lineage-441.2.tgz", - "integrity": "sha512-/0JuBnCHdtM3dyz1l/WlRrWsSDK2E64V7hfdocG2FFUksWScruArtWsgSpxJT1jbjUeZgEBfTFZthVNzDIyvaA==", + "version": "1.44.1", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.44.1.tgz", + "integrity": "sha512-VUS4KLfwAsE45A3MnJUU3j97ei0ncQHv6OVVAN3kitID0xe8+mZ7B39zETVye3Dqgwa8TbYvsCp2t46QmBmwVQ==", "license": "Apache-2.0" }, "node_modules/@labkey/build": { @@ -3547,13 +3547,13 @@ } }, "node_modules/@labkey/components": { - "version": "7.11.1-fb-lineage-441.1", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/components/-/@labkey/components-7.11.1-fb-lineage-441.1.tgz", - "integrity": "sha512-bBaV+c/bdX4TUbjlSI8wq+Y9NMxfeAA5pyV0Oos76UDWkzjtgiFUmIbYW/RzPTbMjZMWBG1RgLGVVvyv2Am2qg==", + "version": "7.12.0", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/components/-/@labkey/components-7.12.0.tgz", + "integrity": "sha512-iwB+3m7JWcwJ7sPA8V+lPXeW6J0tSq/uueiRJ7EzzuaBubXgYwX4ISpZNVt4MzxtAybImzOGLU4ef4+2NFyVRw==", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", - "@labkey/api": "1.44.1-fb-lineage-441.2", + "@labkey/api": "1.44.1", "@testing-library/dom": "~10.4.1", "@testing-library/jest-dom": "~6.9.1", "@testing-library/react": "~16.3.0", diff --git a/core/package.json b/core/package.json index 43a71f7d2ec..49e27874a49 100644 --- a/core/package.json +++ b/core/package.json @@ -53,7 +53,7 @@ } }, "dependencies": { - "@labkey/components": "7.11.1-fb-lineage-441.1", + "@labkey/components": "7.12.0", "@labkey/themes": "1.5.0" }, "devDependencies": { diff --git a/experiment/package-lock.json b/experiment/package-lock.json index 779113deac1..d09c9ad5605 100644 --- a/experiment/package-lock.json +++ b/experiment/package-lock.json @@ -8,7 +8,7 @@ "name": "experiment", "version": "0.0.0", "dependencies": { - "@labkey/components": "7.11.1-fb-lineage-441.1" + "@labkey/components": "7.12.0" }, "devDependencies": { "@labkey/build": "8.7.0", @@ -3271,9 +3271,9 @@ } }, "node_modules/@labkey/api": { - "version": "1.44.1-fb-lineage-441.2", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.44.1-fb-lineage-441.2.tgz", - "integrity": "sha512-/0JuBnCHdtM3dyz1l/WlRrWsSDK2E64V7hfdocG2FFUksWScruArtWsgSpxJT1jbjUeZgEBfTFZthVNzDIyvaA==", + "version": "1.44.1", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.44.1.tgz", + "integrity": "sha512-VUS4KLfwAsE45A3MnJUU3j97ei0ncQHv6OVVAN3kitID0xe8+mZ7B39zETVye3Dqgwa8TbYvsCp2t46QmBmwVQ==", "license": "Apache-2.0" }, "node_modules/@labkey/build": { @@ -3314,13 +3314,13 @@ } }, "node_modules/@labkey/components": { - "version": "7.11.1-fb-lineage-441.1", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/components/-/@labkey/components-7.11.1-fb-lineage-441.1.tgz", - "integrity": "sha512-bBaV+c/bdX4TUbjlSI8wq+Y9NMxfeAA5pyV0Oos76UDWkzjtgiFUmIbYW/RzPTbMjZMWBG1RgLGVVvyv2Am2qg==", + "version": "7.12.0", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/components/-/@labkey/components-7.12.0.tgz", + "integrity": "sha512-iwB+3m7JWcwJ7sPA8V+lPXeW6J0tSq/uueiRJ7EzzuaBubXgYwX4ISpZNVt4MzxtAybImzOGLU4ef4+2NFyVRw==", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", - "@labkey/api": "1.44.1-fb-lineage-441.2", + "@labkey/api": "1.44.1", "@testing-library/dom": "~10.4.1", "@testing-library/jest-dom": "~6.9.1", "@testing-library/react": "~16.3.0", diff --git a/experiment/package.json b/experiment/package.json index 824c55cb223..d1aacc6542c 100644 --- a/experiment/package.json +++ b/experiment/package.json @@ -13,7 +13,7 @@ "test-integration": "cross-env NODE_ENV=test jest --ci --runInBand -c test/js/jest.config.integration.js" }, "dependencies": { - "@labkey/components": "7.11.1-fb-lineage-441.1" + "@labkey/components": "7.12.0" }, "devDependencies": { "@labkey/build": "8.7.0", diff --git a/pipeline/package-lock.json b/pipeline/package-lock.json index d7c6ebf3df9..7ba89586f45 100644 --- a/pipeline/package-lock.json +++ b/pipeline/package-lock.json @@ -8,7 +8,7 @@ "name": "pipeline", "version": "0.0.0", "dependencies": { - "@labkey/components": "7.11.1-fb-lineage-441.1" + "@labkey/components": "7.12.0" }, "devDependencies": { "@labkey/build": "8.7.0", @@ -2716,9 +2716,9 @@ } }, "node_modules/@labkey/api": { - "version": "1.44.1-fb-lineage-441.2", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.44.1-fb-lineage-441.2.tgz", - "integrity": "sha512-/0JuBnCHdtM3dyz1l/WlRrWsSDK2E64V7hfdocG2FFUksWScruArtWsgSpxJT1jbjUeZgEBfTFZthVNzDIyvaA==", + "version": "1.44.1", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.44.1.tgz", + "integrity": "sha512-VUS4KLfwAsE45A3MnJUU3j97ei0ncQHv6OVVAN3kitID0xe8+mZ7B39zETVye3Dqgwa8TbYvsCp2t46QmBmwVQ==", "license": "Apache-2.0" }, "node_modules/@labkey/build": { @@ -2759,13 +2759,13 @@ } }, "node_modules/@labkey/components": { - "version": "7.11.1-fb-lineage-441.1", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/components/-/@labkey/components-7.11.1-fb-lineage-441.1.tgz", - "integrity": "sha512-bBaV+c/bdX4TUbjlSI8wq+Y9NMxfeAA5pyV0Oos76UDWkzjtgiFUmIbYW/RzPTbMjZMWBG1RgLGVVvyv2Am2qg==", + "version": "7.12.0", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/components/-/@labkey/components-7.12.0.tgz", + "integrity": "sha512-iwB+3m7JWcwJ7sPA8V+lPXeW6J0tSq/uueiRJ7EzzuaBubXgYwX4ISpZNVt4MzxtAybImzOGLU4ef4+2NFyVRw==", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", - "@labkey/api": "1.44.1-fb-lineage-441.2", + "@labkey/api": "1.44.1", "@testing-library/dom": "~10.4.1", "@testing-library/jest-dom": "~6.9.1", "@testing-library/react": "~16.3.0", diff --git a/pipeline/package.json b/pipeline/package.json index 43795c7595b..f4f0a663aba 100644 --- a/pipeline/package.json +++ b/pipeline/package.json @@ -14,7 +14,7 @@ "build-prod": "npm run clean && cross-env NODE_ENV=production PROD_SOURCE_MAP=source-map webpack --config node_modules/@labkey/build/webpack/prod.config.js --color --progress --profile" }, "dependencies": { - "@labkey/components": "7.11.1-fb-lineage-441.1" + "@labkey/components": "7.12.0" }, "devDependencies": { "@labkey/build": "8.7.0",