From 57807d6cbb99fe36e70efa32d3505c193c22b514 Mon Sep 17 00:00:00 2001 From: Natarajan Kannan Date: Mon, 27 May 2024 19:35:53 +0530 Subject: [PATCH] fix: disallow trailing . in key name (#77) * fix: disallow trailing . in key name * fix: upgrade aws cli to version 2 --- .editorconfig | 2 +- .../src/api/default_config/handlers.rs | 8 ++++ flake.nix | 2 +- makefile | 2 +- .../.event.meta.json | 5 +++ .../event.test.js | 3 ++ .../request.json | 45 +++++++++++++++++++ .../response.json | 1 + 8 files changed, 65 insertions(+), 3 deletions(-) create mode 100644 postman/cac/Default Config/Default-Config Add Key Failure/.event.meta.json create mode 100644 postman/cac/Default Config/Default-Config Add Key Failure/event.test.js create mode 100644 postman/cac/Default Config/Default-Config Add Key Failure/request.json create mode 100644 postman/cac/Default Config/Default-Config Add Key Failure/response.json diff --git a/.editorconfig b/.editorconfig index 8593e39a..f5b7ff7d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -5,7 +5,7 @@ root = true charset = utf-8 indent_style = space indent_size = 4 -insert_final_newline = false +insert_final_newline = true trim_trailing_whitespace = true [*.md] diff --git a/crates/context_aware_config/src/api/default_config/handlers.rs b/crates/context_aware_config/src/api/default_config/handlers.rs index cd0998c1..a6e78021 100644 --- a/crates/context_aware_config/src/api/default_config/handlers.rs +++ b/crates/context_aware_config/src/api/default_config/handlers.rs @@ -50,6 +50,14 @@ async fn create( let req = request.into_inner(); let key = key.into_inner(); + if key.ends_with(".") { + log::error!("configuration key {key} cannot end with a '.' character."); + return Err(bad_argument!( + "Configuration key cannot end with a '.' character. \ + Please remove the trailing '.' in the key name." + )); + } + if req.value.is_none() && req.schema.is_none() && req.function_name.is_none() { log::error!("No data provided in the request body for {key}"); return Err(bad_argument!("Please provide data in the request body.")); diff --git a/flake.nix b/flake.nix index 4f05badd..f9bfbbba 100644 --- a/flake.nix +++ b/flake.nix @@ -36,7 +36,7 @@ gnumake # Why do we need this? stdenv.cc - awscli + awscli2 jq nodejs_18 nixpkgs-fmt diff --git a/makefile b/makefile index 404e7348..8f9528d8 100644 --- a/makefile +++ b/makefile @@ -50,7 +50,7 @@ tenant: grep 'DATABASE_URL=' .env | sed -e 's/DATABASE_URL=//' | xargs ./scripts/create-tenant.sh -t $(TENANT) -d validate-aws-connection: - aws --endpoint-url=http://$(DOCKER_DNS):4566 --region=ap-south-1 sts get-caller-identity + aws --no-cli-pager --endpoint-url=http://$(DOCKER_DNS):4566 --region=ap-south-1 sts get-caller-identity validate-psql-connection: pg_isready -h $(DOCKER_DNS) -p 5432 diff --git a/postman/cac/Default Config/Default-Config Add Key Failure/.event.meta.json b/postman/cac/Default Config/Default-Config Add Key Failure/.event.meta.json new file mode 100644 index 00000000..688c8574 --- /dev/null +++ b/postman/cac/Default Config/Default-Config Add Key Failure/.event.meta.json @@ -0,0 +1,5 @@ +{ + "eventOrder": [ + "event.test.js" + ] +} diff --git a/postman/cac/Default Config/Default-Config Add Key Failure/event.test.js b/postman/cac/Default Config/Default-Config Add Key Failure/event.test.js new file mode 100644 index 00000000..2eac8f1b --- /dev/null +++ b/postman/cac/Default Config/Default-Config Add Key Failure/event.test.js @@ -0,0 +1,3 @@ +pm.test("400 check", function () { + pm.response.to.have.status(400); +}); diff --git a/postman/cac/Default Config/Default-Config Add Key Failure/request.json b/postman/cac/Default Config/Default-Config Add Key Failure/request.json new file mode 100644 index 00000000..841bdf8b --- /dev/null +++ b/postman/cac/Default Config/Default-Config Add Key Failure/request.json @@ -0,0 +1,45 @@ +{ + "method": "PUT", + "header": [ + { + "key": "Authorization", + "value": "Bearer {{token}}", + "type": "text" + }, + { + "key": "Content-Type", + "value": "application/json", + "type": "text" + }, + { + "key": "x-tenant", + "value": "test", + "type": "default" + } + ], + "body": { + "mode": "raw", + "options": { + "raw": { + "language": "json" + } + }, + "raw_json_formatted": { + "value": "value1", + "schema": { + "type": "string", + "pattern": ".*" + } + } + }, + "url": { + "raw": "{{host}}/default-config/key.", + "host": [ + "{{host}}" + ], + "path": [ + "default-config", + "key." + ] + } +} diff --git a/postman/cac/Default Config/Default-Config Add Key Failure/response.json b/postman/cac/Default Config/Default-Config Add Key Failure/response.json new file mode 100644 index 00000000..fe51488c --- /dev/null +++ b/postman/cac/Default Config/Default-Config Add Key Failure/response.json @@ -0,0 +1 @@ +[]