From 6d3a400b74eaaad3af882af24a3b5177b4b2789c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Rafael=20Siqueira?= Date: Fri, 11 Jul 2025 21:07:33 -0300 Subject: [PATCH] remove elasticsearch --- http-api/app/routes/lookup/__init__.py | 6 ++-- http-api/app/routes/orders/__init__.py | 2 +- http-api/compose.yaml | 24 -------------- http-api/seeds/test-users.jsonl | 2 +- http-api/uv.lock | 46 +------------------------- layercake/pyproject.toml | 6 ++-- layercake/uv.lock | 46 +------------------------- 7 files changed, 9 insertions(+), 123 deletions(-) diff --git a/http-api/app/routes/lookup/__init__.py b/http-api/app/routes/lookup/__init__.py index ddc1a7b..6cf1805 100644 --- a/http-api/app/routes/lookup/__init__.py +++ b/http-api/app/routes/lookup/__init__.py @@ -1,11 +1,11 @@ from http import HTTPStatus -from aws_lambda_powertools.event_handler import Response, content_types from aws_lambda_powertools.event_handler.api_gateway import Router from glom import glom from layercake.funcs import pick from meilisearch import Client as Meilisearch +from api_gateway import JSONResponse from config import MEILISEARCH_API_KEY, MEILISEARCH_HOST, USER_TABLE router = Router() @@ -19,7 +19,7 @@ def lookup(username: str): if user := glom(r, 'hits.0', default=None): return pick(('id', 'name', 'email', 'cognito__sub'), user) - return Response( - content_type=content_types.APPLICATION_JSON, + return JSONResponse( + body={'message': 'User not found.'}, status_code=HTTPStatus.NOT_FOUND, ) diff --git a/http-api/app/routes/orders/__init__.py b/http-api/app/routes/orders/__init__.py index 723fef1..303aedb 100644 --- a/http-api/app/routes/orders/__init__.py +++ b/http-api/app/routes/orders/__init__.py @@ -16,7 +16,7 @@ from middlewares import Tenant, TenantMiddleware router = Router() user_layer = DynamoDBPersistenceLayer(USER_TABLE, dynamodb_client) order_layer = DynamoDBPersistenceLayer(ORDER_TABLE, dynamodb_client) -meili_client = Meilisearch(MEILISEARCH_HOST, MEILISEARCH_API_KEY) # noqa: F821 +meili_client = Meilisearch(MEILISEARCH_HOST, MEILISEARCH_API_KEY) @router.get( diff --git a/http-api/compose.yaml b/http-api/compose.yaml index 0e0cb01..bd515f3 100644 --- a/http-api/compose.yaml +++ b/http-api/compose.yaml @@ -17,27 +17,3 @@ services: restart: unless-stopped ports: - 7700:7700 - - elastic: - image: docker.elastic.co/elasticsearch/elasticsearch:8.11.3 - container_name: elastic - environment: - - discovery.type=single-node - - bootstrap.memory_lock=true - - xpack.security.enabled=false - - xpack.security.http.ssl.enabled=false - - xpack.security.transport.ssl.enabled=false - - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - - http.cors.allow-origin="*" - - http.cors.enabled=true - - http.cors.allow-credentials=true - - http.cors.allow-methods=OPTIONS, HEAD, GET, POST, PUT, DELETE - - http.cors.allow-headers=X-Requested-With, X-Auth-Token, Content-Type, Content-Length, Authorization, Access-Control-Allow-Headers, Accept, x-elastic-client-meta - ulimits: - memlock: - soft: -1 - hard: -1 - volumes: - - ./.elastic_volume:/usr/share/elasticsearch/data - ports: - - 9200:9200 diff --git a/http-api/seeds/test-users.jsonl b/http-api/seeds/test-users.jsonl index 16b0d7e..1f09682 100644 --- a/http-api/seeds/test-users.jsonl +++ b/http-api/seeds/test-users.jsonl @@ -1,5 +1,5 @@ {"id": {"S": "apikey"}, "sk": {"S": "MzI1MDQ0NTctZjEzMy00YzAwLTkzNmItNmFhNzEyY2E5ZjQw"}, "tenant": {"M": {"id": {"S": "*"}, "name": {"S": "default"}}}, "user": {"M": {"id": {"S": "5OxmMjL-ujoR5IMGegQz"}, "name": {"S": "Sérgio R Siqueira"}, "email": {"S": "sergio@somosbeta.com.br"}}}} -{"updateDate": {"S": "2024-02-08T16:42:33.776409-03:00"}, "createDate": {"S": "2019-03-25T00:00:00-03:00"}, "email_verified": {"BOOL": true}, "cognito:sub": {"S": "58efed8d-d276-41a8-8502-4ab8b5a6415e"}, "cpf": {"S": "07879819908"}, "sk": {"S": "0"}, "email": {"S": "sergio@somosbeta.com.br"}, "id": {"S": "5OxmMjL-ujoR5IMGegQz"}, "name": {"S": "S\u00e9rgio Rafael de Siqueira"}, "lastLogin": {"S": "2024-02-08T20:53:45.818126-03:00"}, "tenant_id": {"L": [{"S": "cJtK9SsnJhKPyxESe7g3DG"}, {"S": "edp8njvgQuzNkLx2ySNfAD"}, {"S": "8TVSi5oACLxTiT8ycKPmaQ"}]}} +{"updateDate": {"S": "2024-02-08T16:42:33.776409-03:00"}, "createDate": {"S": "2019-03-25T00:00:00-03:00"}, "email_verified": {"BOOL": true}, "cognito__sub": {"S": "58efed8d-d276-41a8-8502-4ab8b5a6415e"}, "cpf": {"S": "07879819908"}, "sk": {"S": "0"}, "email": {"S": "sergio@somosbeta.com.br"}, "id": {"S": "5OxmMjL-ujoR5IMGegQz"}, "name": {"S": "S\u00e9rgio Rafael de Siqueira"}, "lastLogin": {"S": "2024-02-08T20:53:45.818126-03:00"}, "tenant_id": {"L": [{"S": "cJtK9SsnJhKPyxESe7g3DG"}, {"S": "edp8njvgQuzNkLx2ySNfAD"}, {"S": "8TVSi5oACLxTiT8ycKPmaQ"}]}} {"sk": {"S": "acl#admin"}, "id": {"S": "5OxmMjL-ujoR5IMGegQz"}, "create_date": {"S": "2022-06-13T15:00:24.309410-03:00"}} {"email_verified": {"BOOL": true}, "update_date": {"S": "2024-02-08T16:42:33.776409-03:00"}, "create_date": {"S": "2024-01-19T22:53:43.135080-03:00"}, "deliverability": {"S": "DELIVERABLE"}, "sk": {"S": "emails#osergiosiqueira@gmail.com"}, "id": {"S": "5OxmMjL-ujoR5IMGegQz"}, "primaryEmail": {"BOOL": false}, "mx_record_exists": {"BOOL": true}} {"email_verified": {"BOOL": true}, "update_date": {"S": "2024-02-08T16:42:33.776409-03:00"}, "create_date": {"S": "2019-03-25T00:00:00-03:00"}, "sk": {"S": "emails#sergio@somosbeta.com.br"}, "id": {"S": "5OxmMjL-ujoR5IMGegQz"}, "email_primary": {"BOOL": true}, "mx_record_exists": {"BOOL": true}, "update_date": {"S": "2023-11-09T12:13:04.308986-03:00"}} diff --git a/http-api/uv.lock b/http-api/uv.lock index 066d43b..5a49186 100644 --- a/http-api/uv.lock +++ b/http-api/uv.lock @@ -376,46 +376,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/68/1b/e0a87d256e40e8c888847551b20a017a6b98139178505dc7ffb96f04e954/dnspython-2.7.0-py3-none-any.whl", hash = "sha256:b4c34b7d10b51bcc3a5071e7b8dee77939f1e878477eeecc965e9835f63c6c86", size = 313632, upload-time = "2024-10-05T20:14:57.687Z" }, ] -[[package]] -name = "elastic-transport" -version = "8.17.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "certifi" }, - { name = "urllib3" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/6a/54/d498a766ac8fa475f931da85a154666cc81a70f8eb4a780bc8e4e934e9ac/elastic_transport-8.17.1.tar.gz", hash = "sha256:5edef32ac864dca8e2f0a613ef63491ee8d6b8cfb52881fa7313ba9290cac6d2", size = 73425, upload-time = "2025-03-13T07:28:30.776Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cf/cd/b71d5bc74cde7fc6fd9b2ff9389890f45d9762cbbbf81dc5e51fd7588c4a/elastic_transport-8.17.1-py3-none-any.whl", hash = "sha256:192718f498f1d10c5e9aa8b9cf32aed405e469a7f0e9d6a8923431dbb2c59fb8", size = 64969, upload-time = "2025-03-13T07:28:29.031Z" }, -] - -[[package]] -name = "elasticsearch" -version = "8.17.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "elastic-transport" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/5b/3d/f563e58f45d23565c0d0316a565638ce312f536b882a3281b8047fb4a58f/elasticsearch-8.17.2.tar.gz", hash = "sha256:ff7f1db8aeefd87ceba4edce3aa4070994582e6cf029d2e67b74e66d634509db", size = 602691, upload-time = "2025-03-04T12:14:27.382Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c0/50/16306f4722ca2fcb64a5875bc1fa9b4d0bcb08c05967f60c23acd4cbb019/elasticsearch-8.17.2-py3-none-any.whl", hash = "sha256:2d058dcddd8f2686cd431a916cdf983f9fb7d211d902834f564ab7df05ba6478", size = 717971, upload-time = "2025-03-04T12:14:23.843Z" }, -] - -[[package]] -name = "elasticsearch-dsl" -version = "8.17.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "elastic-transport" }, - { name = "elasticsearch" }, - { name = "python-dateutil" }, - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/bf/57/d375ce8915f289f1f032e001010cd901c2f1be4a14246e7506af63ba34f7/elasticsearch_dsl-8.17.1.tar.gz", hash = "sha256:d8170699bfdb4fe7fab3854cdac319a2d6dddbaa29c9ea7993d2ec22056db5a0", size = 151630, upload-time = "2025-01-08T12:02:06.801Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ad/b4/5e707bca39062ba0b5227696a767db09767e5f09e869c6cb14aeb36e4b9d/elasticsearch_dsl-8.17.1-py3-none-any.whl", hash = "sha256:49ee12a6a8d43fcfc0af42b49649531a6ef228c9e4795325de27f6b309b62b6d", size = 158294, upload-time = "2025-01-08T12:02:03.951Z" }, -] - [[package]] name = "email-validator" version = "2.2.0" @@ -598,13 +558,11 @@ wheels = [ [[package]] name = "layercake" -version = "0.6.12" +version = "0.7.0" source = { directory = "../layercake" } dependencies = [ { name = "arnparse" }, { name = "aws-lambda-powertools", extra = ["all"] }, - { name = "elasticsearch" }, - { name = "elasticsearch-dsl" }, { name = "ftfy" }, { name = "glom" }, { name = "jinja2" }, @@ -625,8 +583,6 @@ dependencies = [ requires-dist = [ { name = "arnparse", specifier = ">=0.0.2" }, { name = "aws-lambda-powertools", extras = ["all"], specifier = ">=3.8.0" }, - { name = "elasticsearch", specifier = ">=8.17.2" }, - { name = "elasticsearch-dsl", specifier = ">=8.17.1" }, { name = "ftfy", specifier = ">=6.3.1" }, { name = "glom", specifier = ">=24.11.0" }, { name = "jinja2", specifier = ">=3.1.6" }, diff --git a/layercake/pyproject.toml b/layercake/pyproject.toml index 65d4eda..dca6c58 100644 --- a/layercake/pyproject.toml +++ b/layercake/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "layercake" -version = "0.6.12" +version = "0.7.0" description = "Packages shared dependencies to optimize deployment and ensure consistency across functions." readme = "README.md" authors = [ @@ -9,8 +9,6 @@ authors = [ requires-python = ">=3.12" dependencies = [ "aws-lambda-powertools[all]>=3.8.0", - "elasticsearch>=8.17.2", - "elasticsearch-dsl>=8.17.1", "ftfy>=6.3.1", "glom>=24.11.0", "orjson>=3.10.15", @@ -53,4 +51,4 @@ select = ["E", "F", "I"] [build-system] requires = ["hatchling"] -build-backend = "hatchling.build" \ No newline at end of file +build-backend = "hatchling.build" diff --git a/layercake/uv.lock b/layercake/uv.lock index c5a1617..7863d17 100644 --- a/layercake/uv.lock +++ b/layercake/uv.lock @@ -428,46 +428,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/68/1b/e0a87d256e40e8c888847551b20a017a6b98139178505dc7ffb96f04e954/dnspython-2.7.0-py3-none-any.whl", hash = "sha256:b4c34b7d10b51bcc3a5071e7b8dee77939f1e878477eeecc965e9835f63c6c86", size = 313632, upload-time = "2024-10-05T20:14:57.687Z" }, ] -[[package]] -name = "elastic-transport" -version = "8.17.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "certifi" }, - { name = "urllib3" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/6a/54/d498a766ac8fa475f931da85a154666cc81a70f8eb4a780bc8e4e934e9ac/elastic_transport-8.17.1.tar.gz", hash = "sha256:5edef32ac864dca8e2f0a613ef63491ee8d6b8cfb52881fa7313ba9290cac6d2", size = 73425, upload-time = "2025-03-13T07:28:30.776Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cf/cd/b71d5bc74cde7fc6fd9b2ff9389890f45d9762cbbbf81dc5e51fd7588c4a/elastic_transport-8.17.1-py3-none-any.whl", hash = "sha256:192718f498f1d10c5e9aa8b9cf32aed405e469a7f0e9d6a8923431dbb2c59fb8", size = 64969, upload-time = "2025-03-13T07:28:29.031Z" }, -] - -[[package]] -name = "elasticsearch" -version = "8.17.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "elastic-transport" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/5b/3d/f563e58f45d23565c0d0316a565638ce312f536b882a3281b8047fb4a58f/elasticsearch-8.17.2.tar.gz", hash = "sha256:ff7f1db8aeefd87ceba4edce3aa4070994582e6cf029d2e67b74e66d634509db", size = 602691, upload-time = "2025-03-04T12:14:27.382Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c0/50/16306f4722ca2fcb64a5875bc1fa9b4d0bcb08c05967f60c23acd4cbb019/elasticsearch-8.17.2-py3-none-any.whl", hash = "sha256:2d058dcddd8f2686cd431a916cdf983f9fb7d211d902834f564ab7df05ba6478", size = 717971, upload-time = "2025-03-04T12:14:23.843Z" }, -] - -[[package]] -name = "elasticsearch-dsl" -version = "8.17.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "elastic-transport" }, - { name = "elasticsearch" }, - { name = "python-dateutil" }, - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/bf/57/d375ce8915f289f1f032e001010cd901c2f1be4a14246e7506af63ba34f7/elasticsearch_dsl-8.17.1.tar.gz", hash = "sha256:d8170699bfdb4fe7fab3854cdac319a2d6dddbaa29c9ea7993d2ec22056db5a0", size = 151630, upload-time = "2025-01-08T12:02:06.801Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ad/b4/5e707bca39062ba0b5227696a767db09767e5f09e869c6cb14aeb36e4b9d/elasticsearch_dsl-8.17.1-py3-none-any.whl", hash = "sha256:49ee12a6a8d43fcfc0af42b49649531a6ef228c9e4795325de27f6b309b62b6d", size = 158294, upload-time = "2025-01-08T12:02:03.951Z" }, -] - [[package]] name = "email-validator" version = "2.2.0" @@ -625,13 +585,11 @@ wheels = [ [[package]] name = "layercake" -version = "0.6.11" +version = "0.6.12" source = { editable = "." } dependencies = [ { name = "arnparse" }, { name = "aws-lambda-powertools", extra = ["all"] }, - { name = "elasticsearch" }, - { name = "elasticsearch-dsl" }, { name = "ftfy" }, { name = "glom" }, { name = "jinja2" }, @@ -662,8 +620,6 @@ dev = [ requires-dist = [ { name = "arnparse", specifier = ">=0.0.2" }, { name = "aws-lambda-powertools", extras = ["all"], specifier = ">=3.8.0" }, - { name = "elasticsearch", specifier = ">=8.17.2" }, - { name = "elasticsearch-dsl", specifier = ">=8.17.1" }, { name = "ftfy", specifier = ">=6.3.1" }, { name = "glom", specifier = ">=24.11.0" }, { name = "jinja2", specifier = ">=3.1.6" },