diff options
| author | Egor Tarasov <[email protected]> | 2024-02-01 14:11:56 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-02-01 16:11:56 +0300 |
| commit | f099e3dba5bab22b1c08cac790f6e0c079dfc827 (patch) | |
| tree | 1e29be87dc37ed18a6450ec148bed2a01d3eecc3 | |
| parent | c97124041530af10fc5350c96c82f7ff7bb526d6 (diff) | |
Document proto bytes field decoding with a test (#1509)
| -rw-r--r-- | ydb/library/yaml_config/yaml_config_parser.cpp | 6 | ||||
| -rw-r--r-- | ydb/library/yaml_config/yaml_config_parser.h | 2 | ||||
| -rw-r--r-- | ydb/library/yaml_config/yaml_config_ut.cpp | 21 |
3 files changed, 26 insertions, 3 deletions
diff --git a/ydb/library/yaml_config/yaml_config_parser.cpp b/ydb/library/yaml_config/yaml_config_parser.cpp index 9a25818fbf3..068314afb76 100644 --- a/ydb/library/yaml_config/yaml_config_parser.cpp +++ b/ydb/library/yaml_config/yaml_config_parser.cpp @@ -943,10 +943,12 @@ namespace NKikimr::NYaml { return result; } - void Parse(const TString& data, NKikimrConfig::TAppConfig& config) { + void Parse(const TString& data, NKikimrConfig::TAppConfig& config, bool needsTransforming) { auto yamlNode = YAML::Load(data); NJson::TJsonValue jsonNode = Yaml2Json(yamlNode, true); - TransformConfig(jsonNode); + if (needsTransforming) { + TransformConfig(jsonNode); + } NProtobufJson::MergeJson2Proto(jsonNode, config, GetJsonToProtoConfig()); } } diff --git a/ydb/library/yaml_config/yaml_config_parser.h b/ydb/library/yaml_config/yaml_config_parser.h index ac6a293b1a8..cd5eaa467fb 100644 --- a/ydb/library/yaml_config/yaml_config_parser.h +++ b/ydb/library/yaml_config/yaml_config_parser.h @@ -19,5 +19,5 @@ namespace NKikimr::NYaml { void TransformConfig(NJson::TJsonValue& config, bool relaxed = false); - void Parse(const TString& data, NKikimrConfig::TAppConfig& config); + void Parse(const TString& data, NKikimrConfig::TAppConfig& config, bool needsTransforming = true); } diff --git a/ydb/library/yaml_config/yaml_config_ut.cpp b/ydb/library/yaml_config/yaml_config_ut.cpp index 6dd524e8280..0e295df2db7 100644 --- a/ydb/library/yaml_config/yaml_config_ut.cpp +++ b/ydb/library/yaml_config/yaml_config_ut.cpp @@ -1,4 +1,5 @@ #include "yaml_config.h" +#include "yaml_config_parser.h" #include <library/cpp/testing/unittest/registar.h> @@ -1767,4 +1768,24 @@ obj: {value: 2} # comment2 UNIT_ASSERT_VALUES_EQUAL(res, exp); } } + + Y_UNIT_TEST(ProtoBytesFieldDoesNotDecodeBase64) { + // "c2FtcGxlLXBpbgo=" -> base64 decode -> "sample-pin" + TString config = R"( +pdisk_key_config: + keys: + - container_path: "/a/b/c" + pin: "c2FtcGxlLXBpbgo=" + id: "sample-encryption-key" + version: 1 +)"; + NKikimrConfig::TAppConfig cfg; + NKikimr::NYaml::Parse(config, cfg, false); + + UNIT_ASSERT(cfg.has_pdiskkeyconfig()); + auto keys = cfg.pdiskkeyconfig().GetKeys(); + UNIT_ASSERT_VALUES_EQUAL(keys.end() - keys.begin(), 1); + auto key = keys.at(0); + UNIT_ASSERT_VALUES_EQUAL("c2FtcGxlLXBpbgo=", key.pin()); + } } |
