From cb9df09fa424fa46f8085cf26cf1b328e0b45841 Mon Sep 17 00:00:00 2001 From: am-toledo Date: Tue, 14 Jul 2026 12:17:25 -0300 Subject: [PATCH 1/3] fix parser for secrets --- splight_lib/models/_v3/component.py | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/splight_lib/models/_v3/component.py b/splight_lib/models/_v3/component.py index 1e69d450..ab01dda2 100644 --- a/splight_lib/models/_v3/component.py +++ b/splight_lib/models/_v3/component.py @@ -17,7 +17,10 @@ from splight_lib.models._v3.asset import Asset from splight_lib.models._v3.attribute import Attribute from splight_lib.models._v3.data_address import DataAddresses as DLDataAddress -from splight_lib.models._v3.exceptions import InvalidObjectInstance +from splight_lib.models._v3.exceptions import ( + InvalidObjectInstance, + SecretNotFound, +) from splight_lib.models._v3.file import File from splight_lib.models._v3.secret import Secret from splight_lib.models._v3.variable_types import CUSTOM_TYPES, NATIVE_TYPES @@ -187,17 +190,28 @@ class Component(SplightDatabaseBaseModel): **DATALAKE_TYPES, } +VALID_CONTEXTS = {"secret", "secrets"} + def parse_variable_string(raw_value: str | None) -> Any: if raw_value is None: return "" - pattern = re.compile(r"^\$\{\{(\w+)\.(\w+)\}\}$") + # NOTE: The patter could be changed to a generalized form + # to accept different vars + pattern = re.compile(r"^\$\{\{(?P\w+)\.(?P\w+)\}\}$") match = pattern.search(raw_value) if not match: return raw_value - _, secret_name = match.groups() - # TODO: handle errors (not found or not allowed) - secret = Secret.decrypt(name=secret_name) + context = match.group("context") + key = match.group("key") + if context not in VALID_CONTEXTS: + raise ValueError(f"Invalid reference: {raw_value}") + + try: + secret = Secret.decrypt(name=key) + except Exception: + raise SecretNotFound() + return secret.value From ccb35b39e810502749d0ea9b1005a47874479c4e Mon Sep 17 00:00:00 2001 From: am-toledo Date: Tue, 14 Jul 2026 12:19:40 -0300 Subject: [PATCH 2/3] version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index ec40f593..bcf83cc3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "splight-lib" -version = "5.24.10" +version = "5.24.11" description = "Splight Python Library" authors = [ {name = "Splight Dev",email = "dev@splight.com"} From 41f99a93e45be382fe93ede3bc021b9eb2236d5e Mon Sep 17 00:00:00 2001 From: am-toledo Date: Fri, 4 Sep 2026 12:46:40 +0200 Subject: [PATCH 3/3] Change lib version --- pyproject.toml | 2 +- uv.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index bcf83cc3..28453384 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "splight-lib" -version = "5.24.11" +version = "5.25.1" description = "Splight Python Library" authors = [ {name = "Splight Dev",email = "dev@splight.com"} diff --git a/uv.lock b/uv.lock index fee4b43b..220ed5a1 100644 --- a/uv.lock +++ b/uv.lock @@ -1772,7 +1772,7 @@ wheels = [ [[package]] name = "splight-lib" -version = "5.24.10" +version = "5.25.1" source = { editable = "." } dependencies = [ { name = "apscheduler" },