diff --git a/CHANGELOG.rst b/CHANGELOG.rst index aafd4a9f3..62072b3ae 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -6,6 +6,12 @@ snovault Change Log ---------- +11.23.0 +======= +* 2024-11-02/dmichaels + - Fix for unexpected 'sid' indexing problem. + + 11.22.0 ======= * 2024-09-03/dmichaels diff --git a/pyproject.toml b/pyproject.toml index ad8bb4f73..7ec98d2d3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "dcicsnovault" -version = "11.22.0" +version = "11.23.0" description = "Storage support for 4DN Data Portals." authors = ["4DN-DCIC Team "] license = "MIT" diff --git a/snovault/storage.py b/snovault/storage.py index 556e718c2..9cb45d3e9 100644 --- a/snovault/storage.py +++ b/snovault/storage.py @@ -1,4 +1,5 @@ import boto3 +from copy import deepcopy import structlog import uuid @@ -566,8 +567,15 @@ def revision_history(self, *, rid): session = self.DBSession revisions = [] for revision in session.query(PropertySheet).filter_by(rid=rid).order_by(PropertySheet.sid): - revision.properties['sid'] = revision.sid - revisions.append(revision.properties) + # 2024-11-04/C4-1188/PR-306/dmichaels: + # Fix for "sid" appearing in properties in some situations, and ultimately ending up + # with validation-errors = Additional properties are not allowed ('sid' was unexpected). + # See smaht-portal/.../test_types_file.py for 92e8371b-bcdf-44de-ad49-3a5f108e91eb (from workbook-inserts). + # revision.properties['sid'] = revision.sid + # revisions.append(revision.properties) + revision_properties = deepcopy(revision.properties) + revision_properties['sid'] = revision.sid + revisions.append(revision_properties) return revisions