From d0252a6dd9a65f1a179e1fdd0ca461446e490587 Mon Sep 17 00:00:00 2001 From: allegroai <> Date: Fri, 17 Nov 2023 09:32:22 +0200 Subject: [PATCH] Make sure that hyperparam/configuration/metadata keys that are contain only empty space are rejected --- apiserver/utilities/parameter_key_escaper.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/apiserver/utilities/parameter_key_escaper.py b/apiserver/utilities/parameter_key_escaper.py index 1609c8a..eba67a7 100644 --- a/apiserver/utilities/parameter_key_escaper.py +++ b/apiserver/utilities/parameter_key_escaper.py @@ -1,6 +1,8 @@ from boltons.dictutils import OneToOne from mongoengine.queryset.transform import MATCH_OPERATORS +from apiserver.apierrors import errors + class ParameterKeyEscaper: """ @@ -15,8 +17,13 @@ class ParameterKeyEscaper: @classmethod def escape(cls, value: str): """ Quote a parameter key """ - value = value.strip().replace("%", "%%") + value = value.strip() + if not value: + raise errors.bad_request.ValidationError( + f"Empty key is not allowed" + ) + value = value.replace("%", "%%") for c, r in cls._mapping.items(): value = value.replace(c, r)