From 3ace766862b27ace3499c730f86fec14b05f69e1 Mon Sep 17 00:00:00 2001 From: Landon Shumway Date: Fri, 17 Apr 2026 11:38:21 -0500 Subject: [PATCH 1/8] Update dependencies to latest Introduces major updates: Marshmallow 3.x -> 4.x --- .../lambdas/python/cognito-backup/requirements-dev.txt | 8 ++++---- .../lambdas/python/common/requirements-dev.txt | 10 +++++----- .../lambdas/python/common/requirements.in | 2 +- .../lambdas/python/common/requirements.txt | 10 ++++------ .../python/compact-configuration/requirements-dev.txt | 4 ++-- .../python/custom-resources/requirements-dev.txt | 4 ++-- .../lambdas/python/data-events/requirements-dev.txt | 4 ++-- .../python/disaster-recovery/requirements-dev.txt | 4 ++-- .../python/provider-data-v1/requirements-dev.txt | 4 ++-- .../lambdas/python/search/requirements-dev.txt | 4 ++-- .../python/staff-user-pre-token/requirements-dev.txt | 4 ++-- .../lambdas/python/staff-users/requirements-dev.txt | 4 ++-- backend/compact-connect/requirements-dev.txt | 6 +++--- backend/compact-connect/requirements.txt | 6 +++--- .../lambdas/python/cognito-backup/requirements-dev.txt | 8 ++++---- .../lambdas/python/cognito-backup/requirements.txt | 6 +++--- .../lambdas/python/common/requirements-dev.in | 1 - .../lambdas/python/common/requirements-dev.txt | 10 +++++----- .../lambdas/python/common/requirements.in | 2 +- .../lambdas/python/common/requirements.txt | 10 ++++------ .../python/compact-configuration/requirements-dev.txt | 4 ++-- .../python/custom-resources/requirements-dev.txt | 4 ++-- .../lambdas/python/data-events/requirements-dev.txt | 4 ++-- .../python/disaster-recovery/requirements-dev.txt | 4 ++-- .../python/provider-data-v1/requirements-dev.txt | 4 ++-- .../lambdas/python/search/requirements-dev.txt | 4 ++-- .../python/staff-user-pre-token/requirements-dev.txt | 4 ++-- .../lambdas/python/staff-users/requirements-dev.txt | 4 ++-- backend/cosmetology-app/requirements-dev.txt | 6 +++--- backend/cosmetology-app/requirements.txt | 6 +++--- 30 files changed, 75 insertions(+), 80 deletions(-) diff --git a/backend/compact-connect/lambdas/python/cognito-backup/requirements-dev.txt b/backend/compact-connect/lambdas/python/cognito-backup/requirements-dev.txt index 7a52e0b6d..232f25a2f 100644 --- a/backend/compact-connect/lambdas/python/cognito-backup/requirements-dev.txt +++ b/backend/compact-connect/lambdas/python/cognito-backup/requirements-dev.txt @@ -4,13 +4,13 @@ # # pip-compile --no-emit-index-url --no-strip-extras lambdas/python/cognito-backup/requirements-dev.in # -aws-lambda-powertools==3.27.0 +aws-lambda-powertools==3.28.0 # via -r lambdas/python/cognito-backup/requirements-dev.in -boto3==1.42.89 +boto3==1.42.90 # via # -r lambdas/python/cognito-backup/requirements-dev.in # moto -botocore==1.42.89 +botocore==1.42.90 # via # -r lambdas/python/cognito-backup/requirements-dev.in # boto3 @@ -45,7 +45,7 @@ markupsafe==3.0.3 # werkzeug moto[cognitoidp,s3]==5.1.22 # via -r lambdas/python/cognito-backup/requirements-dev.in -packaging==26.0 +packaging==26.1 # via pytest pluggy==1.6.0 # via pytest diff --git a/backend/compact-connect/lambdas/python/common/requirements-dev.txt b/backend/compact-connect/lambdas/python/common/requirements-dev.txt index 406d2436a..6f39b1e3f 100644 --- a/backend/compact-connect/lambdas/python/common/requirements-dev.txt +++ b/backend/compact-connect/lambdas/python/common/requirements-dev.txt @@ -8,7 +8,7 @@ annotated-types==0.7.0 # via pydantic antlr4-python3-runtime==4.13.2 # via moto -attrs==25.4.0 +attrs==26.1.0 # via # -r lambdas/python/common/requirements-dev.in # jsonschema @@ -19,15 +19,15 @@ aws-sam-translator==1.103.0 # moto aws-xray-sdk==2.15.0 # via moto -boto3==1.42.89 +boto3==1.42.90 # via # aws-sam-translator # moto -boto3-stubs[full]==1.42.89 +boto3-stubs[full]==1.42.90 # via -r lambdas/python/common/requirements-dev.in -boto3-stubs-full==1.42.88 +boto3-stubs-full==1.42.90 # via boto3-stubs -botocore==1.42.89 +botocore==1.42.90 # via # aws-xray-sdk # boto3 diff --git a/backend/compact-connect/lambdas/python/common/requirements.in b/backend/compact-connect/lambdas/python/common/requirements.in index 0cb9f207b..d6f9ab046 100644 --- a/backend/compact-connect/lambdas/python/common/requirements.in +++ b/backend/compact-connect/lambdas/python/common/requirements.in @@ -2,5 +2,5 @@ argon2-cffi>=25.1.0, <26.0.0 aws-lambda-powertools>=3.5.0, <4 boto3>=1.34.33, <2 cryptography>=46, <47 -marshmallow>=3.21.3, <4.0.0 +marshmallow>=3.21.3, <5.0.0 requests>=2.31.0, <3.0.0 diff --git a/backend/compact-connect/lambdas/python/common/requirements.txt b/backend/compact-connect/lambdas/python/common/requirements.txt index 1d230554d..6b887b368 100644 --- a/backend/compact-connect/lambdas/python/common/requirements.txt +++ b/backend/compact-connect/lambdas/python/common/requirements.txt @@ -8,11 +8,11 @@ argon2-cffi==25.1.0 # via -r lambdas/python/common/requirements.in argon2-cffi-bindings==25.1.0 # via argon2-cffi -aws-lambda-powertools==3.27.0 +aws-lambda-powertools==3.28.0 # via -r lambdas/python/common/requirements.in -boto3==1.42.89 +boto3==1.42.90 # via -r lambdas/python/common/requirements.in -botocore==1.42.89 +botocore==1.42.90 # via # boto3 # s3transfer @@ -33,10 +33,8 @@ jmespath==1.1.0 # aws-lambda-powertools # boto3 # botocore -marshmallow==3.26.2 +marshmallow==4.3.0 # via -r lambdas/python/common/requirements.in -packaging==26.0 - # via marshmallow pycparser==3.0 # via cffi python-dateutil==2.9.0.post0 diff --git a/backend/compact-connect/lambdas/python/compact-configuration/requirements-dev.txt b/backend/compact-connect/lambdas/python/compact-configuration/requirements-dev.txt index 76a0b2bbd..994819868 100644 --- a/backend/compact-connect/lambdas/python/compact-configuration/requirements-dev.txt +++ b/backend/compact-connect/lambdas/python/compact-configuration/requirements-dev.txt @@ -4,9 +4,9 @@ # # pip-compile --no-emit-index-url --no-strip-extras lambdas/python/compact-configuration/requirements-dev.in # -boto3==1.42.89 +boto3==1.42.90 # via moto -botocore==1.42.89 +botocore==1.42.90 # via # boto3 # moto diff --git a/backend/compact-connect/lambdas/python/custom-resources/requirements-dev.txt b/backend/compact-connect/lambdas/python/custom-resources/requirements-dev.txt index d72f39db2..b879a879a 100644 --- a/backend/compact-connect/lambdas/python/custom-resources/requirements-dev.txt +++ b/backend/compact-connect/lambdas/python/custom-resources/requirements-dev.txt @@ -4,9 +4,9 @@ # # pip-compile --no-emit-index-url --no-strip-extras lambdas/python/custom-resources/requirements-dev.in # -boto3==1.42.89 +boto3==1.42.90 # via moto -botocore==1.42.89 +botocore==1.42.90 # via # boto3 # moto diff --git a/backend/compact-connect/lambdas/python/data-events/requirements-dev.txt b/backend/compact-connect/lambdas/python/data-events/requirements-dev.txt index 42fd96848..eb631cec8 100644 --- a/backend/compact-connect/lambdas/python/data-events/requirements-dev.txt +++ b/backend/compact-connect/lambdas/python/data-events/requirements-dev.txt @@ -4,9 +4,9 @@ # # pip-compile --no-emit-index-url --no-strip-extras lambdas/python/data-events/requirements-dev.in # -boto3==1.42.89 +boto3==1.42.90 # via moto -botocore==1.42.89 +botocore==1.42.90 # via # boto3 # moto diff --git a/backend/compact-connect/lambdas/python/disaster-recovery/requirements-dev.txt b/backend/compact-connect/lambdas/python/disaster-recovery/requirements-dev.txt index cab912de8..9203dd5c3 100644 --- a/backend/compact-connect/lambdas/python/disaster-recovery/requirements-dev.txt +++ b/backend/compact-connect/lambdas/python/disaster-recovery/requirements-dev.txt @@ -4,9 +4,9 @@ # # pip-compile --no-emit-index-url --no-strip-extras lambdas/python/disaster-recovery/requirements-dev.in # -boto3==1.42.89 +boto3==1.42.90 # via moto -botocore==1.42.89 +botocore==1.42.90 # via # boto3 # moto diff --git a/backend/compact-connect/lambdas/python/provider-data-v1/requirements-dev.txt b/backend/compact-connect/lambdas/python/provider-data-v1/requirements-dev.txt index 05a5fdcf9..17a48d495 100644 --- a/backend/compact-connect/lambdas/python/provider-data-v1/requirements-dev.txt +++ b/backend/compact-connect/lambdas/python/provider-data-v1/requirements-dev.txt @@ -4,9 +4,9 @@ # # pip-compile --no-emit-index-url --no-strip-extras lambdas/python/provider-data-v1/requirements-dev.in # -boto3==1.42.89 +boto3==1.42.90 # via moto -botocore==1.42.89 +botocore==1.42.90 # via # boto3 # moto diff --git a/backend/compact-connect/lambdas/python/search/requirements-dev.txt b/backend/compact-connect/lambdas/python/search/requirements-dev.txt index 1da819595..2d45c89de 100644 --- a/backend/compact-connect/lambdas/python/search/requirements-dev.txt +++ b/backend/compact-connect/lambdas/python/search/requirements-dev.txt @@ -4,9 +4,9 @@ # # pip-compile --no-emit-index-url --no-strip-extras lambdas/python/search/requirements-dev.in # -boto3==1.42.89 +boto3==1.42.90 # via moto -botocore==1.42.89 +botocore==1.42.90 # via # boto3 # moto diff --git a/backend/compact-connect/lambdas/python/staff-user-pre-token/requirements-dev.txt b/backend/compact-connect/lambdas/python/staff-user-pre-token/requirements-dev.txt index 4c5da213a..df5bf9c25 100644 --- a/backend/compact-connect/lambdas/python/staff-user-pre-token/requirements-dev.txt +++ b/backend/compact-connect/lambdas/python/staff-user-pre-token/requirements-dev.txt @@ -4,9 +4,9 @@ # # pip-compile --no-emit-index-url --no-strip-extras lambdas/python/staff-user-pre-token/requirements-dev.in # -boto3==1.42.89 +boto3==1.42.90 # via moto -botocore==1.42.89 +botocore==1.42.90 # via # boto3 # moto diff --git a/backend/compact-connect/lambdas/python/staff-users/requirements-dev.txt b/backend/compact-connect/lambdas/python/staff-users/requirements-dev.txt index cae9c4e42..ae50db10e 100644 --- a/backend/compact-connect/lambdas/python/staff-users/requirements-dev.txt +++ b/backend/compact-connect/lambdas/python/staff-users/requirements-dev.txt @@ -4,9 +4,9 @@ # # pip-compile --no-emit-index-url --no-strip-extras lambdas/python/staff-users/requirements-dev.in # -boto3==1.42.89 +boto3==1.42.90 # via moto -botocore==1.42.89 +botocore==1.42.90 # via # boto3 # moto diff --git a/backend/compact-connect/requirements-dev.txt b/backend/compact-connect/requirements-dev.txt index 3571d5a5f..d6e82d687 100644 --- a/backend/compact-connect/requirements-dev.txt +++ b/backend/compact-connect/requirements-dev.txt @@ -28,7 +28,7 @@ defusedxml==0.7.1 # via py-serializable faker==40.13.0 # via -r requirements-dev.in -filelock==3.25.2 +filelock==3.28.0 # via cachecontrol idna==3.11 # via requests @@ -44,7 +44,7 @@ msgpack==1.1.2 # via cachecontrol packageurl-python==0.17.6 # via cyclonedx-python-lib -packaging==26.0 +packaging==26.1 # via # build # pip-audit @@ -89,7 +89,7 @@ requests==2.33.1 # pip-audit rich==15.0.0 # via pip-audit -ruff==0.15.10 +ruff==0.15.11 # via -r requirements-dev.in sortedcontainers==2.4.0 # via cyclonedx-python-lib diff --git a/backend/compact-connect/requirements.txt b/backend/compact-connect/requirements.txt index 63e72d35a..29b05a129 100644 --- a/backend/compact-connect/requirements.txt +++ b/backend/compact-connect/requirements.txt @@ -12,11 +12,11 @@ aws-cdk-asset-awscli-v1==2.2.273 # via aws-cdk-lib aws-cdk-asset-node-proxy-agent-v6==2.1.1 # via aws-cdk-lib -aws-cdk-aws-lambda-python-alpha==2.249.0a0 +aws-cdk-aws-lambda-python-alpha==2.250.0a0 # via -r requirements.in -aws-cdk-cloud-assembly-schema==53.14.0 +aws-cdk-cloud-assembly-schema==53.16.0 # via aws-cdk-lib -aws-cdk-lib==2.249.0 +aws-cdk-lib==2.250.0 # via # -r requirements.in # aws-cdk-aws-lambda-python-alpha diff --git a/backend/cosmetology-app/lambdas/python/cognito-backup/requirements-dev.txt b/backend/cosmetology-app/lambdas/python/cognito-backup/requirements-dev.txt index 7a52e0b6d..232f25a2f 100644 --- a/backend/cosmetology-app/lambdas/python/cognito-backup/requirements-dev.txt +++ b/backend/cosmetology-app/lambdas/python/cognito-backup/requirements-dev.txt @@ -4,13 +4,13 @@ # # pip-compile --no-emit-index-url --no-strip-extras lambdas/python/cognito-backup/requirements-dev.in # -aws-lambda-powertools==3.27.0 +aws-lambda-powertools==3.28.0 # via -r lambdas/python/cognito-backup/requirements-dev.in -boto3==1.42.89 +boto3==1.42.90 # via # -r lambdas/python/cognito-backup/requirements-dev.in # moto -botocore==1.42.89 +botocore==1.42.90 # via # -r lambdas/python/cognito-backup/requirements-dev.in # boto3 @@ -45,7 +45,7 @@ markupsafe==3.0.3 # werkzeug moto[cognitoidp,s3]==5.1.22 # via -r lambdas/python/cognito-backup/requirements-dev.in -packaging==26.0 +packaging==26.1 # via pytest pluggy==1.6.0 # via pytest diff --git a/backend/cosmetology-app/lambdas/python/cognito-backup/requirements.txt b/backend/cosmetology-app/lambdas/python/cognito-backup/requirements.txt index d4b4b2578..3b14cf612 100644 --- a/backend/cosmetology-app/lambdas/python/cognito-backup/requirements.txt +++ b/backend/cosmetology-app/lambdas/python/cognito-backup/requirements.txt @@ -4,11 +4,11 @@ # # pip-compile --no-emit-index-url --no-strip-extras lambdas/python/cognito-backup/requirements.in # -aws-lambda-powertools==3.27.0 +aws-lambda-powertools==3.28.0 # via -r lambdas/python/cognito-backup/requirements.in -boto3==1.42.89 +boto3==1.42.90 # via -r lambdas/python/cognito-backup/requirements.in -botocore==1.42.89 +botocore==1.42.90 # via # -r lambdas/python/cognito-backup/requirements.in # boto3 diff --git a/backend/cosmetology-app/lambdas/python/common/requirements-dev.in b/backend/cosmetology-app/lambdas/python/common/requirements-dev.in index e4986519b..1f0533a76 100644 --- a/backend/cosmetology-app/lambdas/python/common/requirements-dev.in +++ b/backend/cosmetology-app/lambdas/python/common/requirements-dev.in @@ -4,4 +4,3 @@ moto[all]>=5.0.12, <6 boto3-stubs[full] Faker>=40, <41 cryptography>=46, <47 -attrs>=25, <26 diff --git a/backend/cosmetology-app/lambdas/python/common/requirements-dev.txt b/backend/cosmetology-app/lambdas/python/common/requirements-dev.txt index 406d2436a..6f39b1e3f 100644 --- a/backend/cosmetology-app/lambdas/python/common/requirements-dev.txt +++ b/backend/cosmetology-app/lambdas/python/common/requirements-dev.txt @@ -8,7 +8,7 @@ annotated-types==0.7.0 # via pydantic antlr4-python3-runtime==4.13.2 # via moto -attrs==25.4.0 +attrs==26.1.0 # via # -r lambdas/python/common/requirements-dev.in # jsonschema @@ -19,15 +19,15 @@ aws-sam-translator==1.103.0 # moto aws-xray-sdk==2.15.0 # via moto -boto3==1.42.89 +boto3==1.42.90 # via # aws-sam-translator # moto -boto3-stubs[full]==1.42.89 +boto3-stubs[full]==1.42.90 # via -r lambdas/python/common/requirements-dev.in -boto3-stubs-full==1.42.88 +boto3-stubs-full==1.42.90 # via boto3-stubs -botocore==1.42.89 +botocore==1.42.90 # via # aws-xray-sdk # boto3 diff --git a/backend/cosmetology-app/lambdas/python/common/requirements.in b/backend/cosmetology-app/lambdas/python/common/requirements.in index 0cb9f207b..d6f9ab046 100644 --- a/backend/cosmetology-app/lambdas/python/common/requirements.in +++ b/backend/cosmetology-app/lambdas/python/common/requirements.in @@ -2,5 +2,5 @@ argon2-cffi>=25.1.0, <26.0.0 aws-lambda-powertools>=3.5.0, <4 boto3>=1.34.33, <2 cryptography>=46, <47 -marshmallow>=3.21.3, <4.0.0 +marshmallow>=3.21.3, <5.0.0 requests>=2.31.0, <3.0.0 diff --git a/backend/cosmetology-app/lambdas/python/common/requirements.txt b/backend/cosmetology-app/lambdas/python/common/requirements.txt index 1d230554d..6b887b368 100644 --- a/backend/cosmetology-app/lambdas/python/common/requirements.txt +++ b/backend/cosmetology-app/lambdas/python/common/requirements.txt @@ -8,11 +8,11 @@ argon2-cffi==25.1.0 # via -r lambdas/python/common/requirements.in argon2-cffi-bindings==25.1.0 # via argon2-cffi -aws-lambda-powertools==3.27.0 +aws-lambda-powertools==3.28.0 # via -r lambdas/python/common/requirements.in -boto3==1.42.89 +boto3==1.42.90 # via -r lambdas/python/common/requirements.in -botocore==1.42.89 +botocore==1.42.90 # via # boto3 # s3transfer @@ -33,10 +33,8 @@ jmespath==1.1.0 # aws-lambda-powertools # boto3 # botocore -marshmallow==3.26.2 +marshmallow==4.3.0 # via -r lambdas/python/common/requirements.in -packaging==26.0 - # via marshmallow pycparser==3.0 # via cffi python-dateutil==2.9.0.post0 diff --git a/backend/cosmetology-app/lambdas/python/compact-configuration/requirements-dev.txt b/backend/cosmetology-app/lambdas/python/compact-configuration/requirements-dev.txt index 76a0b2bbd..994819868 100644 --- a/backend/cosmetology-app/lambdas/python/compact-configuration/requirements-dev.txt +++ b/backend/cosmetology-app/lambdas/python/compact-configuration/requirements-dev.txt @@ -4,9 +4,9 @@ # # pip-compile --no-emit-index-url --no-strip-extras lambdas/python/compact-configuration/requirements-dev.in # -boto3==1.42.89 +boto3==1.42.90 # via moto -botocore==1.42.89 +botocore==1.42.90 # via # boto3 # moto diff --git a/backend/cosmetology-app/lambdas/python/custom-resources/requirements-dev.txt b/backend/cosmetology-app/lambdas/python/custom-resources/requirements-dev.txt index d72f39db2..b879a879a 100644 --- a/backend/cosmetology-app/lambdas/python/custom-resources/requirements-dev.txt +++ b/backend/cosmetology-app/lambdas/python/custom-resources/requirements-dev.txt @@ -4,9 +4,9 @@ # # pip-compile --no-emit-index-url --no-strip-extras lambdas/python/custom-resources/requirements-dev.in # -boto3==1.42.89 +boto3==1.42.90 # via moto -botocore==1.42.89 +botocore==1.42.90 # via # boto3 # moto diff --git a/backend/cosmetology-app/lambdas/python/data-events/requirements-dev.txt b/backend/cosmetology-app/lambdas/python/data-events/requirements-dev.txt index 42fd96848..eb631cec8 100644 --- a/backend/cosmetology-app/lambdas/python/data-events/requirements-dev.txt +++ b/backend/cosmetology-app/lambdas/python/data-events/requirements-dev.txt @@ -4,9 +4,9 @@ # # pip-compile --no-emit-index-url --no-strip-extras lambdas/python/data-events/requirements-dev.in # -boto3==1.42.89 +boto3==1.42.90 # via moto -botocore==1.42.89 +botocore==1.42.90 # via # boto3 # moto diff --git a/backend/cosmetology-app/lambdas/python/disaster-recovery/requirements-dev.txt b/backend/cosmetology-app/lambdas/python/disaster-recovery/requirements-dev.txt index cab912de8..9203dd5c3 100644 --- a/backend/cosmetology-app/lambdas/python/disaster-recovery/requirements-dev.txt +++ b/backend/cosmetology-app/lambdas/python/disaster-recovery/requirements-dev.txt @@ -4,9 +4,9 @@ # # pip-compile --no-emit-index-url --no-strip-extras lambdas/python/disaster-recovery/requirements-dev.in # -boto3==1.42.89 +boto3==1.42.90 # via moto -botocore==1.42.89 +botocore==1.42.90 # via # boto3 # moto diff --git a/backend/cosmetology-app/lambdas/python/provider-data-v1/requirements-dev.txt b/backend/cosmetology-app/lambdas/python/provider-data-v1/requirements-dev.txt index 05a5fdcf9..17a48d495 100644 --- a/backend/cosmetology-app/lambdas/python/provider-data-v1/requirements-dev.txt +++ b/backend/cosmetology-app/lambdas/python/provider-data-v1/requirements-dev.txt @@ -4,9 +4,9 @@ # # pip-compile --no-emit-index-url --no-strip-extras lambdas/python/provider-data-v1/requirements-dev.in # -boto3==1.42.89 +boto3==1.42.90 # via moto -botocore==1.42.89 +botocore==1.42.90 # via # boto3 # moto diff --git a/backend/cosmetology-app/lambdas/python/search/requirements-dev.txt b/backend/cosmetology-app/lambdas/python/search/requirements-dev.txt index 1da819595..2d45c89de 100644 --- a/backend/cosmetology-app/lambdas/python/search/requirements-dev.txt +++ b/backend/cosmetology-app/lambdas/python/search/requirements-dev.txt @@ -4,9 +4,9 @@ # # pip-compile --no-emit-index-url --no-strip-extras lambdas/python/search/requirements-dev.in # -boto3==1.42.89 +boto3==1.42.90 # via moto -botocore==1.42.89 +botocore==1.42.90 # via # boto3 # moto diff --git a/backend/cosmetology-app/lambdas/python/staff-user-pre-token/requirements-dev.txt b/backend/cosmetology-app/lambdas/python/staff-user-pre-token/requirements-dev.txt index 4c5da213a..df5bf9c25 100644 --- a/backend/cosmetology-app/lambdas/python/staff-user-pre-token/requirements-dev.txt +++ b/backend/cosmetology-app/lambdas/python/staff-user-pre-token/requirements-dev.txt @@ -4,9 +4,9 @@ # # pip-compile --no-emit-index-url --no-strip-extras lambdas/python/staff-user-pre-token/requirements-dev.in # -boto3==1.42.89 +boto3==1.42.90 # via moto -botocore==1.42.89 +botocore==1.42.90 # via # boto3 # moto diff --git a/backend/cosmetology-app/lambdas/python/staff-users/requirements-dev.txt b/backend/cosmetology-app/lambdas/python/staff-users/requirements-dev.txt index cae9c4e42..ae50db10e 100644 --- a/backend/cosmetology-app/lambdas/python/staff-users/requirements-dev.txt +++ b/backend/cosmetology-app/lambdas/python/staff-users/requirements-dev.txt @@ -4,9 +4,9 @@ # # pip-compile --no-emit-index-url --no-strip-extras lambdas/python/staff-users/requirements-dev.in # -boto3==1.42.89 +boto3==1.42.90 # via moto -botocore==1.42.89 +botocore==1.42.90 # via # boto3 # moto diff --git a/backend/cosmetology-app/requirements-dev.txt b/backend/cosmetology-app/requirements-dev.txt index 3571d5a5f..d6e82d687 100644 --- a/backend/cosmetology-app/requirements-dev.txt +++ b/backend/cosmetology-app/requirements-dev.txt @@ -28,7 +28,7 @@ defusedxml==0.7.1 # via py-serializable faker==40.13.0 # via -r requirements-dev.in -filelock==3.25.2 +filelock==3.28.0 # via cachecontrol idna==3.11 # via requests @@ -44,7 +44,7 @@ msgpack==1.1.2 # via cachecontrol packageurl-python==0.17.6 # via cyclonedx-python-lib -packaging==26.0 +packaging==26.1 # via # build # pip-audit @@ -89,7 +89,7 @@ requests==2.33.1 # pip-audit rich==15.0.0 # via pip-audit -ruff==0.15.10 +ruff==0.15.11 # via -r requirements-dev.in sortedcontainers==2.4.0 # via cyclonedx-python-lib diff --git a/backend/cosmetology-app/requirements.txt b/backend/cosmetology-app/requirements.txt index 63e72d35a..29b05a129 100644 --- a/backend/cosmetology-app/requirements.txt +++ b/backend/cosmetology-app/requirements.txt @@ -12,11 +12,11 @@ aws-cdk-asset-awscli-v1==2.2.273 # via aws-cdk-lib aws-cdk-asset-node-proxy-agent-v6==2.1.1 # via aws-cdk-lib -aws-cdk-aws-lambda-python-alpha==2.249.0a0 +aws-cdk-aws-lambda-python-alpha==2.250.0a0 # via -r requirements.in -aws-cdk-cloud-assembly-schema==53.14.0 +aws-cdk-cloud-assembly-schema==53.16.0 # via aws-cdk-lib -aws-cdk-lib==2.249.0 +aws-cdk-lib==2.250.0 # via # -r requirements.in # aws-cdk-aws-lambda-python-alpha From c7c1fe3d3233f54a11f3a2110432b5d56a87ffee Mon Sep 17 00:00:00 2001 From: Landon Shumway Date: Fri, 17 Apr 2026 12:51:11 -0500 Subject: [PATCH 2/8] Enforce timezone awareness on datetime fields Now that we are moving from Marshmallow 3.x -> 4.x, the datetime fields are more permissive, and will convert a bare date string YYYY-MM-DD into a naive datetime format, which we do not want. We need to enforce that these fields are timezone aware to avoid any future bugs/issues inserting naive timestamps. --- .../data_model/schema/adverse_action/record.py | 4 ++-- .../cc_common/data_model/schema/base_record.py | 4 ++-- .../data_model/schema/data_event/api.py | 16 ++++++++-------- .../data_model/schema/investigation/record.py | 6 +++--- .../data_model/schema/license/ingest.py | 4 ++-- .../data_model/schema/license/record.py | 10 +++++----- .../schema/military_affiliation/record.py | 4 ++-- .../data_model/schema/privilege/record.py | 18 +++++++++--------- .../data_model/schema/provider/api.py | 6 +++--- .../data_model/schema/provider/record.py | 12 ++++++------ .../function/test_expiration_reminders.py | 6 +++--- .../data_model/schema/adverse_action/record.py | 4 ++-- .../cc_common/data_model/schema/base_record.py | 4 ++-- .../data_model/schema/data_event/api.py | 8 ++++---- .../data_model/schema/investigation/record.py | 6 +++--- .../data_model/schema/license/ingest.py | 4 ++-- .../data_model/schema/license/record.py | 10 +++++----- .../data_model/schema/provider/record.py | 8 ++++---- 18 files changed, 67 insertions(+), 67 deletions(-) diff --git a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/adverse_action/record.py b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/adverse_action/record.py index 62df0f5f2..292f58fb4 100644 --- a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/adverse_action/record.py +++ b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/adverse_action/record.py @@ -1,6 +1,6 @@ # ruff: noqa: N801, N815 invalid-name from marshmallow import ValidationError, pre_dump, validates_schema -from marshmallow.fields import UUID, Date, DateTime, List, String +from marshmallow.fields import UUID, Date, AwareDateTime, List, String from marshmallow.validate import OneOf from cc_common.config import config @@ -37,7 +37,7 @@ class AdverseActionRecordSchema(BaseRecordSchema): clinicalPrivilegeActionCategories = List(ClinicalPrivilegeActionCategoryField(), required=True, allow_none=False) effectiveStartDate = Date(required=True, allow_none=False) submittingUser = UUID(required=True, allow_none=False) - creationDate = DateTime(required=True, allow_none=False) + creationDate = AwareDateTime(required=True, allow_none=False) adverseActionId = UUID(required=True, allow_none=False) # Populated when the action is lifted diff --git a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/base_record.py b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/base_record.py index f6d32119b..e7636ff0b 100644 --- a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/base_record.py +++ b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/base_record.py @@ -4,7 +4,7 @@ from abc import ABC from marshmallow import EXCLUDE, RAISE, Schema, post_load, pre_dump -from marshmallow.fields import UUID, DateTime, String +from marshmallow.fields import UUID, AwareDateTime, String from cc_common.config import config from cc_common.data_model.schema.fields import Compact, SocialSecurityNumber @@ -39,7 +39,7 @@ class BaseRecordSchema(ForgivingSchema, ABC): # Generated fields pk = String(required=True, allow_none=False) sk = String(required=True, allow_none=False) - dateOfUpdate = DateTime(required=True, allow_none=False) + dateOfUpdate = AwareDateTime(required=True, allow_none=False) # Provided fields type = String(required=True, allow_none=False) diff --git a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/data_event/api.py b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/data_event/api.py index db73d0a23..f8f4dabd1 100644 --- a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/data_event/api.py +++ b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/data_event/api.py @@ -5,7 +5,7 @@ Jurisdiction, ) from cc_common.data_model.schema.military_affiliation.common import MilitaryAuditStatus -from marshmallow.fields import UUID, Date, DateTime, Email, List, Nested, String +from marshmallow.fields import UUID, Date, AwareDateTime, Email, List, Nested, String from marshmallow.validate import Length, OneOf @@ -27,7 +27,7 @@ class PrivilegeEventLineItemSchema(ForgivingSchema): class DataEventDetailBaseSchema(ForgivingSchema): compact = Compact(required=True, allow_none=False) jurisdiction = Jurisdiction(required=True, allow_none=False) - eventTime = DateTime(required=True, allow_none=False) + eventTime = AwareDateTime(required=True, allow_none=False) class PrivilegePurchaseEventDetailSchema(DataEventDetailBaseSchema): @@ -73,8 +73,8 @@ class LicenseRevertDetailSchema(DataEventDetailBaseSchema): providerId = UUID(required=True, allow_none=False) licenseType = String(required=True, allow_none=False) rollbackReason = String(required=True, allow_none=False) - startTime = DateTime(required=True, allow_none=False) - endTime = DateTime(required=True, allow_none=False) + startTime = AwareDateTime(required=True, allow_none=False) + endTime = AwareDateTime(required=True, allow_none=False) rollbackExecutionName = String(required=True, allow_none=False) @@ -82,8 +82,8 @@ class PrivilegeRevertDetailSchema(DataEventDetailBaseSchema): providerId = UUID(required=True, allow_none=False) licenseType = String(required=True, allow_none=False) rollbackReason = String(required=True, allow_none=False) - startTime = DateTime(required=True, allow_none=False) - endTime = DateTime(required=True, allow_none=False) + startTime = AwareDateTime(required=True, allow_none=False) + endTime = AwareDateTime(required=True, allow_none=False) rollbackExecutionName = String(required=True, allow_none=False) @@ -96,7 +96,7 @@ class MilitaryAuditEventDetailSchema(ForgivingSchema): required=True, allow_none=False, validate=OneOf([entry.value for entry in MilitaryAuditStatus]) ) auditNote = String(required=False, allow_none=False) - eventTime = DateTime(required=True, allow_none=False) + eventTime = AwareDateTime(required=True, allow_none=False) class HomeJurisdictionChangeEventDetailSchema(ForgivingSchema): @@ -106,4 +106,4 @@ class HomeJurisdictionChangeEventDetailSchema(ForgivingSchema): providerId = UUID(required=True, allow_none=False) previousHomeJurisdiction = String(required=True, allow_none=True) newHomeJurisdiction = String(required=True, allow_none=False) - eventTime = DateTime(required=True, allow_none=False) + eventTime = AwareDateTime(required=True, allow_none=False) diff --git a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/investigation/record.py b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/investigation/record.py index ee057782a..db8bfba19 100644 --- a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/investigation/record.py +++ b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/investigation/record.py @@ -1,6 +1,6 @@ # ruff: noqa: N801, N815 invalid-name from marshmallow import Schema, ValidationError, pre_dump -from marshmallow.fields import UUID, DateTime, String +from marshmallow.fields import UUID, AwareDateTime, String from cc_common.config import config from cc_common.data_model.schema.base_record import BaseRecordSchema @@ -32,10 +32,10 @@ class InvestigationRecordSchema(BaseRecordSchema, ValidatesLicenseTypeMixin): # Populated on creation investigationId = UUID(required=True, allow_none=False) submittingUser = UUID(required=True, allow_none=False) - creationDate = DateTime(required=True, allow_none=False) + creationDate = AwareDateTime(required=True, allow_none=False) # Populated when the investigation is closed - closeDate = DateTime(required=False, allow_none=False) + closeDate = AwareDateTime(required=False, allow_none=False) closingUser = UUID(required=False, allow_none=False) resultingEncumbranceId = UUID(required=False, allow_none=False) diff --git a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/license/ingest.py b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/license/ingest.py index 056dfd636..177bef625 100644 --- a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/license/ingest.py +++ b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/license/ingest.py @@ -1,6 +1,6 @@ # ruff: noqa: N801, N815, ARG002 invalid-name unused-argument from marshmallow import ValidationError, pre_load, validates_schema -from marshmallow.fields import UUID, Date, DateTime, String +from marshmallow.fields import UUID, Date, AwareDateTime, String from marshmallow.validate import Length from cc_common.data_model.schema.base_record import ForgivingSchema @@ -84,4 +84,4 @@ class SanitizedLicenseIngestDataEventSchema(ForgivingSchema): dateOfIssuance = Date(required=True, allow_none=False) dateOfRenewal = Date(required=False, allow_none=False) dateOfExpiration = Date(required=True, allow_none=False) - eventTime = DateTime(required=True, allow_none=False) + eventTime = AwareDateTime(required=True, allow_none=False) diff --git a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/license/record.py b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/license/record.py index 1cbbed27c..b4a3cbe29 100644 --- a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/license/record.py +++ b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/license/record.py @@ -3,7 +3,7 @@ from urllib.parse import quote from marshmallow import ValidationError, post_dump, post_load, pre_dump, pre_load, validates_schema -from marshmallow.fields import UUID, Date, DateTime, Email, List, Nested, String +from marshmallow.fields import UUID, Date, AwareDateTime, Email, List, Nested, String from marshmallow.validate import Length from cc_common.config import config @@ -55,7 +55,7 @@ class LicenseRecordSchema(BaseRecordSchema, LicenseCommonSchema): # Optional field for tracking the first license upload that caused this record to be created # Note that records which were uploaded before this field was supported will not have this included # and will not be included in the license upload date GSI - firstUploadDate = DateTime(required=False, allow_none=False) + firstUploadDate = AwareDateTime(required=False, allow_none=False) # Provided fields npi = NationalProviderIdentifier(required=False, allow_none=False) @@ -179,7 +179,7 @@ class LicenseUpdateRecordPreviousSchema(ForgivingSchema): middleName = String(required=False, allow_none=False, validate=Length(1, 100)) familyName = String(required=True, allow_none=False, validate=Length(1, 100)) suffix = String(required=False, allow_none=False, validate=Length(1, 100)) - dateOfUpdate = DateTime(required=True, allow_none=False) + dateOfUpdate = AwareDateTime(required=True, allow_none=False) # These date values are determined by the license records uploaded by a state # they do not include a timestamp, so we use the Date field type dateOfIssuance = Date(required=True, allow_none=False) @@ -218,11 +218,11 @@ class LicenseUpdateRecordSchema(BaseRecordSchema, ChangeHashMixin): licenseType = String(required=True, allow_none=False) previous = Nested(LicenseUpdateRecordPreviousSchema, required=True, allow_none=False) # this tracks when the update record was created - createDate = DateTime(required=True, allow_none=False) + createDate = AwareDateTime(required=True, allow_none=False) # this tracks when the update event should be considered in effect for the history of the license record # note for most update types this is the same as the createDate, except encumbrances, which are effective # based on the value provided by the state administrator - effectiveDate = DateTime(required=True, allow_none=False) + effectiveDate = AwareDateTime(required=True, allow_none=False) # We'll allow any fields that can show up in the previous field to be here as well, but none are required updatedValues = Nested(LicenseUpdateRecordPreviousSchema(partial=True), required=True, allow_none=False) # optional field that is only included if the update was an investigation diff --git a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/military_affiliation/record.py b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/military_affiliation/record.py index abb84e614..251b85b2a 100644 --- a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/military_affiliation/record.py +++ b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/military_affiliation/record.py @@ -1,6 +1,6 @@ # ruff: noqa: N801, N815, ARG002 invalid-name unused-argument from marshmallow import pre_dump -from marshmallow.fields import UUID, DateTime, List, String +from marshmallow.fields import UUID, AwareDateTime, List, String from marshmallow.validate import Length, OneOf from cc_common.config import config @@ -26,7 +26,7 @@ class MilitaryAffiliationRecordSchema(BaseRecordSchema): affiliationType = String( required=True, allow_none=False, validate=OneOf([e.value for e in MilitaryAffiliationType]) ) - dateOfUpload = DateTime(required=True, allow_none=False) + dateOfUpload = AwareDateTime(required=True, allow_none=False) status = String(required=True, allow_none=False, validate=OneOf([e.value for e in MilitaryAffiliationStatus])) # Generated fields diff --git a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/privilege/record.py b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/privilege/record.py index bdf15acb7..e33a646d9 100644 --- a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/privilege/record.py +++ b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/privilege/record.py @@ -2,7 +2,7 @@ from datetime import date from marshmallow import Schema, ValidationError, post_dump, post_load, pre_dump, pre_load, validates_schema -from marshmallow.fields import UUID, Date, DateTime, List, Nested, String +from marshmallow.fields import UUID, Date, AwareDateTime, List, Nested, String from marshmallow.validate import Length from cc_common.config import config @@ -83,8 +83,8 @@ class PrivilegeRecordSchema(BaseRecordSchema, ValidatesLicenseTypeMixin): jurisdiction = Jurisdiction(required=True, allow_none=False) licenseJurisdiction = Jurisdiction(required=True, allow_none=False) licenseType = String(required=True, allow_none=False) - dateOfIssuance = DateTime(required=True, allow_none=False) - dateOfRenewal = DateTime(required=True, allow_none=False) + dateOfIssuance = AwareDateTime(required=True, allow_none=False) + dateOfRenewal = AwareDateTime(required=True, allow_none=False) # this is determined by the license expiration date, which is a date field, so this is also a date field dateOfExpiration = Date(required=True, allow_none=False) # the id of the transaction that was made when the user purchased the privilege @@ -135,7 +135,7 @@ def pre_load_initialization(self, in_data, **kwargs): # noqa: ARG001 unused-arg def _enforce_datetimes(self, in_data, **kwargs): # for backwards compatibility with the old data model # we convert any records that are using a Date value - # for dateOfRenewal and dateOfIssuance to DateTime values + # for dateOfRenewal and dateOfIssuance to datetime values in_data['dateOfRenewal'] = ensure_value_is_datetime(in_data.get('dateOfRenewal', in_data['dateOfIssuance'])) in_data['dateOfIssuance'] = ensure_value_is_datetime(in_data['dateOfIssuance']) @@ -185,9 +185,9 @@ class PrivilegeUpdatePreviousRecordSchema(ForgivingSchema): attestations = List(Nested(AttestationVersionRecordSchema()), required=True, allow_none=False) compactTransactionId = String(required=True, allow_none=False) dateOfExpiration = Date(required=True, allow_none=False) - dateOfIssuance = DateTime(required=True, allow_none=False) - dateOfRenewal = DateTime(required=True, allow_none=False) - dateOfUpdate = DateTime(required=True, allow_none=False) + dateOfIssuance = AwareDateTime(required=True, allow_none=False) + dateOfRenewal = AwareDateTime(required=True, allow_none=False) + dateOfUpdate = AwareDateTime(required=True, allow_none=False) licenseJurisdiction = Jurisdiction(required=True, allow_none=False) privilegeId = String(required=True, allow_none=False) homeJurisdictionChangeStatus = HomeJurisdictionChangeStatusField(required=False, allow_none=False) @@ -217,8 +217,8 @@ class PrivilegeUpdateRecordSchema(BaseRecordSchema, ChangeHashMixin, ValidatesLi licenseType = String(required=True, allow_none=False) compactTransactionIdGSIPK = String(required=True, allow_none=False) previous = Nested(PrivilegeUpdatePreviousRecordSchema, required=True, allow_none=False) - createDate = DateTime(required=True, allow_none=False) - effectiveDate = DateTime(required=True, allow_none=False) + createDate = AwareDateTime(required=True, allow_none=False) + effectiveDate = AwareDateTime(required=True, allow_none=False) # We'll allow any fields that can show up in the previous field to be here as well, but none are required updatedValues = Nested(PrivilegeUpdatePreviousRecordSchema(partial=True), required=True, allow_none=False) # optional field that is only included if the update was a deactivation diff --git a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/provider/api.py b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/provider/api.py index 82dc88761..bd1eeff22 100644 --- a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/provider/api.py +++ b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/provider/api.py @@ -2,7 +2,7 @@ from datetime import timedelta from marshmallow import ValidationError, validates_schema -from marshmallow.fields import UUID, Date, DateTime, Email, Integer, List, Nested, Raw, String +from marshmallow.fields import UUID, Date, AwareDateTime, Email, Integer, List, Nested, Raw, String from marshmallow.validate import Length, OneOf, Range, Regexp from cc_common.data_model.schema.base_record import ForgivingSchema @@ -305,8 +305,8 @@ class QuerySchema(CCRequestSchema): Nested schema for the query object within the request. """ - startDateTime = DateTime(required=True, allow_none=False) - endDateTime = DateTime(required=True, allow_none=False) + startDateTime = AwareDateTime(required=True, allow_none=False) + endDateTime = AwareDateTime(required=True, allow_none=False) class PaginationSchema(ForgivingSchema): """ diff --git a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/provider/record.py b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/provider/record.py index d6e51efc7..1a5a9c53d 100644 --- a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/provider/record.py +++ b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/provider/record.py @@ -3,7 +3,7 @@ from urllib.parse import quote from marshmallow import post_dump, post_load, pre_dump, pre_load -from marshmallow.fields import UUID, Date, DateTime, Email, List, Nested, String +from marshmallow.fields import UUID, Date, AwareDateTime, Email, List, Nested, String from marshmallow.validate import Length, Regexp from cc_common.config import config @@ -72,11 +72,11 @@ class ProviderRecordSchema(BaseRecordSchema): # Optional Email verification fields (only present if the provider has requested an email change) pendingEmailAddress = Email(required=False, allow_none=False) emailVerificationCode = String(required=False, allow_none=False, validate=Length(4, 4)) - emailVerificationExpiry = DateTime(required=False, allow_none=False) + emailVerificationExpiry = AwareDateTime(required=False, allow_none=False) # Optional fields for account recovery recoveryToken = String(required=False, allow_none=False) - recoveryExpiry = DateTime(required=False, allow_none=False) + recoveryExpiry = AwareDateTime(required=False, allow_none=False) # Military audit status fields militaryStatus = MilitaryStatusField(required=False, allow_none=False) @@ -86,7 +86,7 @@ class ProviderRecordSchema(BaseRecordSchema): birthMonthDay = String(required=False, allow_none=False, validate=Regexp('^[0-1]{1}[0-9]{1}-[0-3]{1}[0-9]{1}')) privilegeJurisdictions = Set(String, required=False, allow_none=False, load_default=set()) providerFamGivMid = String(required=False, allow_none=False, validate=Length(2, 400)) - providerDateOfUpdate = DateTime(required=True, allow_none=False) + providerDateOfUpdate = AwareDateTime(required=True, allow_none=False) # This field is set whenever the provider registers with the compact connect system, # or updates their home jurisdiction. @@ -215,7 +215,7 @@ class ProviderUpdatePreviousRecordSchema(ForgivingSchema): militaryStatusNote = String(required=False, allow_none=False) currentHomeJurisdiction = CurrentHomeJurisdictionField(required=False, allow_none=False) - dateOfUpdate = DateTime(required=True, allow_none=False) + dateOfUpdate = AwareDateTime(required=True, allow_none=False) @BaseRecordSchema.register_schema('providerUpdate') @@ -234,7 +234,7 @@ class ProviderUpdateRecordSchema(BaseRecordSchema, ChangeHashMixin): compact = Compact(required=True, allow_none=False) previous = Nested(ProviderUpdatePreviousRecordSchema, required=True, allow_none=False) # this tracks when the update record was created - createDate = DateTime(required=True, allow_none=False) + createDate = AwareDateTime(required=True, allow_none=False) # We'll allow any fields that can show up in the previous field to be here as well, but none are required updatedValues = Nested(ProviderUpdatePreviousRecordSchema(partial=True), required=True, allow_none=False) # List of field names that were present in the previous record but removed in the update diff --git a/backend/compact-connect/lambdas/python/search/tests/function/test_expiration_reminders.py b/backend/compact-connect/lambdas/python/search/tests/function/test_expiration_reminders.py index 3c1738139..056504259 100644 --- a/backend/compact-connect/lambdas/python/search/tests/function/test_expiration_reminders.py +++ b/backend/compact-connect/lambdas/python/search/tests/function/test_expiration_reminders.py @@ -210,7 +210,7 @@ def _valid_provider_source_for_schema(self, provider_id: str = 'valid-provider-1 return { 'providerId': provider_id, 'type': 'provider', - 'dateOfUpdate': '2026-01-01T00:00:00', + 'dateOfUpdate': '2026-01-01T00:00:00+00:00', 'compact': DEFAULT_COMPACT, 'licenseJurisdiction': 'oh', 'currentHomeJurisdiction': 'oh', @@ -234,7 +234,7 @@ def _valid_provider_source_for_schema(self, provider_id: str = 'valid-provider-1 'dateOfIssuance': '2025-01-01', 'dateOfRenewal': '2025-01-01', 'dateOfExpiration': '2026-02-16', - 'dateOfUpdate': '2025-01-01T00:00:00', + 'dateOfUpdate': '2025-01-01T00:00:00+00:00', 'administratorSetStatus': 'active', 'privilegeId': 'priv-1', 'status': 'active', @@ -260,7 +260,7 @@ def test_handler_skips_invalid_schema_hit_and_sends_notification_for_valid_hit( # Missing required 'givenName' -> ValidationError 'providerId': 'invalid-provider-456', 'type': 'provider', - 'dateOfUpdate': '2026-01-01T00:00:00', + 'dateOfUpdate': '2026-01-01T00:00:00+00:00', 'compact': DEFAULT_COMPACT, 'licenseJurisdiction': 'oh', 'licenseStatus': 'active', diff --git a/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/adverse_action/record.py b/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/adverse_action/record.py index 62df0f5f2..292f58fb4 100644 --- a/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/adverse_action/record.py +++ b/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/adverse_action/record.py @@ -1,6 +1,6 @@ # ruff: noqa: N801, N815 invalid-name from marshmallow import ValidationError, pre_dump, validates_schema -from marshmallow.fields import UUID, Date, DateTime, List, String +from marshmallow.fields import UUID, Date, AwareDateTime, List, String from marshmallow.validate import OneOf from cc_common.config import config @@ -37,7 +37,7 @@ class AdverseActionRecordSchema(BaseRecordSchema): clinicalPrivilegeActionCategories = List(ClinicalPrivilegeActionCategoryField(), required=True, allow_none=False) effectiveStartDate = Date(required=True, allow_none=False) submittingUser = UUID(required=True, allow_none=False) - creationDate = DateTime(required=True, allow_none=False) + creationDate = AwareDateTime(required=True, allow_none=False) adverseActionId = UUID(required=True, allow_none=False) # Populated when the action is lifted diff --git a/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/base_record.py b/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/base_record.py index f6d32119b..e7636ff0b 100644 --- a/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/base_record.py +++ b/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/base_record.py @@ -4,7 +4,7 @@ from abc import ABC from marshmallow import EXCLUDE, RAISE, Schema, post_load, pre_dump -from marshmallow.fields import UUID, DateTime, String +from marshmallow.fields import UUID, AwareDateTime, String from cc_common.config import config from cc_common.data_model.schema.fields import Compact, SocialSecurityNumber @@ -39,7 +39,7 @@ class BaseRecordSchema(ForgivingSchema, ABC): # Generated fields pk = String(required=True, allow_none=False) sk = String(required=True, allow_none=False) - dateOfUpdate = DateTime(required=True, allow_none=False) + dateOfUpdate = AwareDateTime(required=True, allow_none=False) # Provided fields type = String(required=True, allow_none=False) diff --git a/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/data_event/api.py b/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/data_event/api.py index 7ea74c8d9..9af00775b 100644 --- a/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/data_event/api.py +++ b/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/data_event/api.py @@ -4,13 +4,13 @@ Compact, Jurisdiction, ) -from marshmallow.fields import UUID, Date, DateTime, String +from marshmallow.fields import UUID, Date, AwareDateTime, String class DataEventDetailBaseSchema(ForgivingSchema): compact = Compact(required=True, allow_none=False) jurisdiction = Jurisdiction(required=True, allow_none=False) - eventTime = DateTime(required=True, allow_none=False) + eventTime = AwareDateTime(required=True, allow_none=False) class EncumbranceEventDetailSchema(DataEventDetailBaseSchema): @@ -39,6 +39,6 @@ class LicenseRevertDetailSchema(DataEventDetailBaseSchema): providerId = UUID(required=True, allow_none=False) licenseType = String(required=True, allow_none=False) rollbackReason = String(required=True, allow_none=False) - startTime = DateTime(required=True, allow_none=False) - endTime = DateTime(required=True, allow_none=False) + startTime = AwareDateTime(required=True, allow_none=False) + endTime = AwareDateTime(required=True, allow_none=False) rollbackExecutionName = String(required=True, allow_none=False) diff --git a/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/investigation/record.py b/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/investigation/record.py index ee057782a..db8bfba19 100644 --- a/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/investigation/record.py +++ b/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/investigation/record.py @@ -1,6 +1,6 @@ # ruff: noqa: N801, N815 invalid-name from marshmallow import Schema, ValidationError, pre_dump -from marshmallow.fields import UUID, DateTime, String +from marshmallow.fields import UUID, AwareDateTime, String from cc_common.config import config from cc_common.data_model.schema.base_record import BaseRecordSchema @@ -32,10 +32,10 @@ class InvestigationRecordSchema(BaseRecordSchema, ValidatesLicenseTypeMixin): # Populated on creation investigationId = UUID(required=True, allow_none=False) submittingUser = UUID(required=True, allow_none=False) - creationDate = DateTime(required=True, allow_none=False) + creationDate = AwareDateTime(required=True, allow_none=False) # Populated when the investigation is closed - closeDate = DateTime(required=False, allow_none=False) + closeDate = AwareDateTime(required=False, allow_none=False) closingUser = UUID(required=False, allow_none=False) resultingEncumbranceId = UUID(required=False, allow_none=False) diff --git a/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/license/ingest.py b/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/license/ingest.py index 9f7e205f9..79be8a607 100644 --- a/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/license/ingest.py +++ b/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/license/ingest.py @@ -1,6 +1,6 @@ # ruff: noqa: N801, N815, ARG002 invalid-name unused-argument from marshmallow import ValidationError, pre_load, validates_schema -from marshmallow.fields import UUID, Date, DateTime, String +from marshmallow.fields import UUID, Date, AwareDateTime, String from marshmallow.validate import Length from cc_common.data_model.schema.base_record import ForgivingSchema @@ -82,4 +82,4 @@ class SanitizedLicenseIngestDataEventSchema(ForgivingSchema): dateOfIssuance = Date(required=True, allow_none=False) dateOfRenewal = Date(required=False, allow_none=False) dateOfExpiration = Date(required=True, allow_none=False) - eventTime = DateTime(required=True, allow_none=False) + eventTime = AwareDateTime(required=True, allow_none=False) diff --git a/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/license/record.py b/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/license/record.py index 376bd911d..4770cd1af 100644 --- a/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/license/record.py +++ b/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/license/record.py @@ -3,7 +3,7 @@ from urllib.parse import quote from marshmallow import ValidationError, post_dump, post_load, pre_dump, pre_load, validates_schema -from marshmallow.fields import UUID, Date, DateTime, Email, List, Nested, String +from marshmallow.fields import UUID, Date, AwareDateTime, Email, List, Nested, String from marshmallow.validate import Length from cc_common.config import config @@ -54,7 +54,7 @@ class LicenseRecordSchema(BaseRecordSchema, LicenseCommonSchema): # Optional field for tracking the first license upload that caused this record to be created # Note that records which were uploaded before this field was supported will not have this included # and will not be included in the license upload date GSI - firstUploadDate = DateTime(required=False, allow_none=False) + firstUploadDate = AwareDateTime(required=False, allow_none=False) # Provided fields licenseNumber = String(required=True, allow_none=False, validate=Length(1, 100)) @@ -176,7 +176,7 @@ class LicenseUpdateRecordPreviousSchema(ForgivingSchema): middleName = String(required=False, allow_none=False, validate=Length(1, 100)) familyName = String(required=True, allow_none=False, validate=Length(1, 100)) suffix = String(required=False, allow_none=False, validate=Length(1, 100)) - dateOfUpdate = DateTime(required=True, allow_none=False) + dateOfUpdate = AwareDateTime(required=True, allow_none=False) # These date values are determined by the license records uploaded by a state # they do not include a timestamp, so we use the Date field type dateOfIssuance = Date(required=True, allow_none=False) @@ -215,11 +215,11 @@ class LicenseUpdateRecordSchema(BaseRecordSchema, ChangeHashMixin): licenseType = String(required=True, allow_none=False) previous = Nested(LicenseUpdateRecordPreviousSchema, required=True, allow_none=False) # this tracks when the update record was created - createDate = DateTime(required=True, allow_none=False) + createDate = AwareDateTime(required=True, allow_none=False) # this tracks when the update event should be considered in effect for the history of the license record # note for most update types this is the same as the createDate, except encumbrances, which are effective # based on the value provided by the state administrator - effectiveDate = DateTime(required=True, allow_none=False) + effectiveDate = AwareDateTime(required=True, allow_none=False) # We'll allow any fields that can show up in the previous field to be here as well, but none are required updatedValues = Nested(LicenseUpdateRecordPreviousSchema(partial=True), required=True, allow_none=False) # optional field that is only included if the update was an investigation diff --git a/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/provider/record.py b/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/provider/record.py index c250b5d08..71c586e3d 100644 --- a/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/provider/record.py +++ b/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/provider/record.py @@ -3,7 +3,7 @@ from urllib.parse import quote from marshmallow import post_dump, post_load, pre_dump, pre_load -from marshmallow.fields import UUID, Date, DateTime, List, Nested, String +from marshmallow.fields import UUID, Date, AwareDateTime, List, Nested, String from marshmallow.validate import Length, Regexp from cc_common.config import config @@ -65,7 +65,7 @@ class ProviderRecordSchema(BaseRecordSchema): # Generated fields birthMonthDay = String(required=False, allow_none=False, validate=Regexp('^[0-1]{1}[0-9]{1}-[0-3]{1}[0-9]{1}')) providerFamGivMid = String(required=False, allow_none=False, validate=Length(2, 400)) - providerDateOfUpdate = DateTime(required=True, allow_none=False) + providerDateOfUpdate = AwareDateTime(required=True, allow_none=False) @pre_load def _calculate_statuses(self, in_data, **_kwargs): @@ -172,7 +172,7 @@ class ProviderUpdatePreviousRecordSchema(ForgivingSchema): suffix = String(required=False, allow_none=False, validate=Length(1, 100)) dateOfExpiration = Date(required=True, allow_none=False) dateOfBirth = Date(required=True, allow_none=False) - dateOfUpdate = DateTime(required=True, allow_none=False) + dateOfUpdate = AwareDateTime(required=True, allow_none=False) @BaseRecordSchema.register_schema('providerUpdate') @@ -191,7 +191,7 @@ class ProviderUpdateRecordSchema(BaseRecordSchema, ChangeHashMixin): compact = Compact(required=True, allow_none=False) previous = Nested(ProviderUpdatePreviousRecordSchema, required=True, allow_none=False) # this tracks when the update record was created - createDate = DateTime(required=True, allow_none=False) + createDate = AwareDateTime(required=True, allow_none=False) # We'll allow any fields that can show up in the previous field to be here as well, but none are required updatedValues = Nested(ProviderUpdatePreviousRecordSchema(partial=True), required=True, allow_none=False) # List of field names that were present in the previous record but removed in the update From 9b6c80b65fe5379ccf605a75a60cd778cf3936d6 Mon Sep 17 00:00:00 2001 From: Landon Shumway Date: Fri, 17 Apr 2026 13:46:35 -0500 Subject: [PATCH 3/8] Organize imports --- .../common/cc_common/data_model/schema/adverse_action/record.py | 2 +- .../python/common/cc_common/data_model/schema/data_event/api.py | 2 +- .../python/common/cc_common/data_model/schema/license/ingest.py | 2 +- .../python/common/cc_common/data_model/schema/license/record.py | 2 +- .../common/cc_common/data_model/schema/privilege/record.py | 2 +- .../python/common/cc_common/data_model/schema/provider/api.py | 2 +- .../common/cc_common/data_model/schema/provider/record.py | 2 +- .../common/cc_common/data_model/schema/adverse_action/record.py | 2 +- .../python/common/cc_common/data_model/schema/data_event/api.py | 2 +- .../python/common/cc_common/data_model/schema/license/ingest.py | 2 +- .../python/common/cc_common/data_model/schema/license/record.py | 2 +- .../common/cc_common/data_model/schema/provider/record.py | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/adverse_action/record.py b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/adverse_action/record.py index 292f58fb4..7c9f87832 100644 --- a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/adverse_action/record.py +++ b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/adverse_action/record.py @@ -1,6 +1,6 @@ # ruff: noqa: N801, N815 invalid-name from marshmallow import ValidationError, pre_dump, validates_schema -from marshmallow.fields import UUID, Date, AwareDateTime, List, String +from marshmallow.fields import UUID, AwareDateTime, Date, List, String from marshmallow.validate import OneOf from cc_common.config import config diff --git a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/data_event/api.py b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/data_event/api.py index f8f4dabd1..543877f54 100644 --- a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/data_event/api.py +++ b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/data_event/api.py @@ -5,7 +5,7 @@ Jurisdiction, ) from cc_common.data_model.schema.military_affiliation.common import MilitaryAuditStatus -from marshmallow.fields import UUID, Date, AwareDateTime, Email, List, Nested, String +from marshmallow.fields import UUID, AwareDateTime, Date, Email, List, Nested, String from marshmallow.validate import Length, OneOf diff --git a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/license/ingest.py b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/license/ingest.py index 177bef625..94b6f54ad 100644 --- a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/license/ingest.py +++ b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/license/ingest.py @@ -1,6 +1,6 @@ # ruff: noqa: N801, N815, ARG002 invalid-name unused-argument from marshmallow import ValidationError, pre_load, validates_schema -from marshmallow.fields import UUID, Date, AwareDateTime, String +from marshmallow.fields import UUID, AwareDateTime, Date, String from marshmallow.validate import Length from cc_common.data_model.schema.base_record import ForgivingSchema diff --git a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/license/record.py b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/license/record.py index b4a3cbe29..d61a0b800 100644 --- a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/license/record.py +++ b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/license/record.py @@ -3,7 +3,7 @@ from urllib.parse import quote from marshmallow import ValidationError, post_dump, post_load, pre_dump, pre_load, validates_schema -from marshmallow.fields import UUID, Date, AwareDateTime, Email, List, Nested, String +from marshmallow.fields import UUID, AwareDateTime, Date, Email, List, Nested, String from marshmallow.validate import Length from cc_common.config import config diff --git a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/privilege/record.py b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/privilege/record.py index e33a646d9..c69d91a0f 100644 --- a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/privilege/record.py +++ b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/privilege/record.py @@ -2,7 +2,7 @@ from datetime import date from marshmallow import Schema, ValidationError, post_dump, post_load, pre_dump, pre_load, validates_schema -from marshmallow.fields import UUID, Date, AwareDateTime, List, Nested, String +from marshmallow.fields import UUID, AwareDateTime, Date, List, Nested, String from marshmallow.validate import Length from cc_common.config import config diff --git a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/provider/api.py b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/provider/api.py index bd1eeff22..14a15603f 100644 --- a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/provider/api.py +++ b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/provider/api.py @@ -2,7 +2,7 @@ from datetime import timedelta from marshmallow import ValidationError, validates_schema -from marshmallow.fields import UUID, Date, AwareDateTime, Email, Integer, List, Nested, Raw, String +from marshmallow.fields import UUID, AwareDateTime, Date, Email, Integer, List, Nested, Raw, String from marshmallow.validate import Length, OneOf, Range, Regexp from cc_common.data_model.schema.base_record import ForgivingSchema diff --git a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/provider/record.py b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/provider/record.py index 1a5a9c53d..a544b613d 100644 --- a/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/provider/record.py +++ b/backend/compact-connect/lambdas/python/common/cc_common/data_model/schema/provider/record.py @@ -3,7 +3,7 @@ from urllib.parse import quote from marshmallow import post_dump, post_load, pre_dump, pre_load -from marshmallow.fields import UUID, Date, AwareDateTime, Email, List, Nested, String +from marshmallow.fields import UUID, AwareDateTime, Date, Email, List, Nested, String from marshmallow.validate import Length, Regexp from cc_common.config import config diff --git a/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/adverse_action/record.py b/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/adverse_action/record.py index 292f58fb4..7c9f87832 100644 --- a/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/adverse_action/record.py +++ b/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/adverse_action/record.py @@ -1,6 +1,6 @@ # ruff: noqa: N801, N815 invalid-name from marshmallow import ValidationError, pre_dump, validates_schema -from marshmallow.fields import UUID, Date, AwareDateTime, List, String +from marshmallow.fields import UUID, AwareDateTime, Date, List, String from marshmallow.validate import OneOf from cc_common.config import config diff --git a/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/data_event/api.py b/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/data_event/api.py index 9af00775b..006edb86b 100644 --- a/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/data_event/api.py +++ b/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/data_event/api.py @@ -4,7 +4,7 @@ Compact, Jurisdiction, ) -from marshmallow.fields import UUID, Date, AwareDateTime, String +from marshmallow.fields import UUID, AwareDateTime, Date, String class DataEventDetailBaseSchema(ForgivingSchema): diff --git a/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/license/ingest.py b/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/license/ingest.py index 79be8a607..132198f7c 100644 --- a/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/license/ingest.py +++ b/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/license/ingest.py @@ -1,6 +1,6 @@ # ruff: noqa: N801, N815, ARG002 invalid-name unused-argument from marshmallow import ValidationError, pre_load, validates_schema -from marshmallow.fields import UUID, Date, AwareDateTime, String +from marshmallow.fields import UUID, AwareDateTime, Date, String from marshmallow.validate import Length from cc_common.data_model.schema.base_record import ForgivingSchema diff --git a/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/license/record.py b/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/license/record.py index 4770cd1af..3d2d1f2bf 100644 --- a/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/license/record.py +++ b/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/license/record.py @@ -3,7 +3,7 @@ from urllib.parse import quote from marshmallow import ValidationError, post_dump, post_load, pre_dump, pre_load, validates_schema -from marshmallow.fields import UUID, Date, AwareDateTime, Email, List, Nested, String +from marshmallow.fields import UUID, AwareDateTime, Date, Email, List, Nested, String from marshmallow.validate import Length from cc_common.config import config diff --git a/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/provider/record.py b/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/provider/record.py index 71c586e3d..ec9860ca5 100644 --- a/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/provider/record.py +++ b/backend/cosmetology-app/lambdas/python/common/cc_common/data_model/schema/provider/record.py @@ -3,7 +3,7 @@ from urllib.parse import quote from marshmallow import post_dump, post_load, pre_dump, pre_load -from marshmallow.fields import UUID, Date, AwareDateTime, List, Nested, String +from marshmallow.fields import UUID, AwareDateTime, Date, List, Nested, String from marshmallow.validate import Length, Regexp from cc_common.config import config From 2ccfec554cbacbab4ebf791e8ab1e5dcf92ed7a3 Mon Sep 17 00:00:00 2001 From: Landon Shumway Date: Fri, 17 Apr 2026 13:57:45 -0500 Subject: [PATCH 4/8] pin dev dependencies to match usage in cdk dependencies --- .../compact-connect/lambdas/python/common/requirements-dev.txt | 2 +- .../cosmetology-app/lambdas/python/common/requirements-dev.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/compact-connect/lambdas/python/common/requirements-dev.txt b/backend/compact-connect/lambdas/python/common/requirements-dev.txt index 6f39b1e3f..2808a28c0 100644 --- a/backend/compact-connect/lambdas/python/common/requirements-dev.txt +++ b/backend/compact-connect/lambdas/python/common/requirements-dev.txt @@ -8,7 +8,7 @@ annotated-types==0.7.0 # via pydantic antlr4-python3-runtime==4.13.2 # via moto -attrs==26.1.0 +attrs==25.4.0 # via # -r lambdas/python/common/requirements-dev.in # jsonschema diff --git a/backend/cosmetology-app/lambdas/python/common/requirements-dev.txt b/backend/cosmetology-app/lambdas/python/common/requirements-dev.txt index 6f39b1e3f..2808a28c0 100644 --- a/backend/cosmetology-app/lambdas/python/common/requirements-dev.txt +++ b/backend/cosmetology-app/lambdas/python/common/requirements-dev.txt @@ -8,7 +8,7 @@ annotated-types==0.7.0 # via pydantic antlr4-python3-runtime==4.13.2 # via moto -attrs==26.1.0 +attrs==25.4.0 # via # -r lambdas/python/common/requirements-dev.in # jsonschema From 9840f89114b21b89b5860ffe582bf70d2c87c69c Mon Sep 17 00:00:00 2001 From: Landon Shumway Date: Fri, 17 Apr 2026 14:41:33 -0500 Subject: [PATCH 5/8] Tighten range for allowed marshmallow versions --- backend/compact-connect/lambdas/python/common/requirements.in | 2 +- backend/cosmetology-app/lambdas/python/common/requirements.in | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/compact-connect/lambdas/python/common/requirements.in b/backend/compact-connect/lambdas/python/common/requirements.in index d6f9ab046..bb9c2f281 100644 --- a/backend/compact-connect/lambdas/python/common/requirements.in +++ b/backend/compact-connect/lambdas/python/common/requirements.in @@ -2,5 +2,5 @@ argon2-cffi>=25.1.0, <26.0.0 aws-lambda-powertools>=3.5.0, <4 boto3>=1.34.33, <2 cryptography>=46, <47 -marshmallow>=3.21.3, <5.0.0 +marshmallow>=4.3.0, <5.0.0 requests>=2.31.0, <3.0.0 diff --git a/backend/cosmetology-app/lambdas/python/common/requirements.in b/backend/cosmetology-app/lambdas/python/common/requirements.in index d6f9ab046..bb9c2f281 100644 --- a/backend/cosmetology-app/lambdas/python/common/requirements.in +++ b/backend/cosmetology-app/lambdas/python/common/requirements.in @@ -2,5 +2,5 @@ argon2-cffi>=25.1.0, <26.0.0 aws-lambda-powertools>=3.5.0, <4 boto3>=1.34.33, <2 cryptography>=46, <47 -marshmallow>=3.21.3, <5.0.0 +marshmallow>=4.3.0, <5.0.0 requests>=2.31.0, <3.0.0 From a23ec2d9b04beaeea6ddc363d7d5bea1e140c786 Mon Sep 17 00:00:00 2001 From: Landon Shumway Date: Fri, 17 Apr 2026 14:47:59 -0500 Subject: [PATCH 6/8] update dependencies in purchases directory --- .../python/purchases/requirements-dev.in | 2 +- .../python/purchases/requirements-dev.txt | 17 ++++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/backend/compact-connect/lambdas/python/purchases/requirements-dev.in b/backend/compact-connect/lambdas/python/purchases/requirements-dev.in index f14eb9373..5b44d6ab1 100644 --- a/backend/compact-connect/lambdas/python/purchases/requirements-dev.in +++ b/backend/compact-connect/lambdas/python/purchases/requirements-dev.in @@ -12,6 +12,6 @@ argon2-cffi>=25.1.0, <26.0.0 aws-lambda-powertools>=3.5.0, <4 boto3>=1.34.33, <2 cryptography>=46, <47 -marshmallow>=3.21.3, <4.0.0 +marshmallow>=4.3.0, <5.0.0 requests>=2.31.0, <3.0.0 urllib3>=2.6.3, <3 diff --git a/backend/compact-connect/lambdas/python/purchases/requirements-dev.txt b/backend/compact-connect/lambdas/python/purchases/requirements-dev.txt index 027c60334..ae152f7a7 100644 --- a/backend/compact-connect/lambdas/python/purchases/requirements-dev.txt +++ b/backend/compact-connect/lambdas/python/purchases/requirements-dev.txt @@ -8,15 +8,15 @@ argon2-cffi==25.1.0 # via -r requirements-dev.in argon2-cffi-bindings==25.1.0 # via argon2-cffi -aws-lambda-powertools==3.27.0 +aws-lambda-powertools==3.28.0 # via -r requirements-dev.in boolean-py==5.0 # via license-expression -boto3==1.42.89 +boto3==1.42.91 # via # -r requirements-dev.in # moto -botocore==1.42.89 +botocore==1.42.91 # via # boto3 # moto @@ -51,9 +51,9 @@ defusedxml==0.7.1 # via py-serializable docker==7.1.0 # via moto -faker==40.13.0 +faker==40.14.1 # via -r requirements-dev.in -filelock==3.25.2 +filelock==3.28.0 # via cachecontrol idna==3.11 # via requests @@ -74,7 +74,7 @@ markupsafe==3.0.3 # via # jinja2 # werkzeug -marshmallow==3.26.2 +marshmallow==4.3.0 # via -r requirements-dev.in mdurl==0.1.2 # via markdown-it-py @@ -84,10 +84,9 @@ msgpack==1.1.2 # via cachecontrol packageurl-python==0.17.6 # via cyclonedx-python-lib -packaging==26.0 +packaging==26.1 # via # build - # marshmallow # pip-audit # pip-requirements-parser # pytest @@ -148,7 +147,7 @@ responses==0.26.0 # via moto rich==15.0.0 # via pip-audit -ruff==0.15.10 +ruff==0.15.11 # via -r requirements-dev.in s3transfer==0.16.0 # via boto3 From 1c9a7abc23609944d94c7c3220c91f028177cdf2 Mon Sep 17 00:00:00 2001 From: Landon Shumway Date: Mon, 20 Apr 2026 09:39:19 -0500 Subject: [PATCH 7/8] Update multi-account dependencies to latest --- .../backups/requirements-dev.txt | 26 +++++++------- .../multi-account/backups/requirements.txt | 14 ++++---- .../control-tower/requirements-dev.txt | 34 +++++++++---------- .../control-tower/requirements.txt | 14 ++++---- .../log-aggregation/requirements-dev.txt | 6 ++-- .../log-aggregation/requirements.txt | 14 ++++---- 6 files changed, 54 insertions(+), 54 deletions(-) diff --git a/backend/multi-account/backups/requirements-dev.txt b/backend/multi-account/backups/requirements-dev.txt index 4b3596255..08fc787c5 100644 --- a/backend/multi-account/backups/requirements-dev.txt +++ b/backend/multi-account/backups/requirements-dev.txt @@ -4,20 +4,20 @@ # # pip-compile --no-emit-index-url --no-strip-extras backups/requirements-dev.in # -boto3==1.42.44 +boto3==1.42.91 # via moto -botocore==1.42.44 +botocore==1.42.91 # via # boto3 # moto # s3transfer -certifi==2026.1.4 +certifi==2026.2.25 # via requests cffi==2.0.0 # via cryptography -charset-normalizer==3.4.4 +charset-normalizer==3.4.7 # via requests -cryptography==46.0.4 +cryptography==46.0.7 # via moto idna==3.11 # via requests @@ -33,17 +33,17 @@ markupsafe==3.0.3 # via # jinja2 # werkzeug -moto==5.1.20 +moto==5.1.22 # via -r backups/requirements-dev.in -packaging==26.0 +packaging==26.1 # via pytest pluggy==1.6.0 # via pytest pycparser==3.0 # via cffi -pygments==2.19.2 +pygments==2.20.0 # via pytest -pytest==9.0.2 +pytest==9.0.3 # via -r backups/requirements-dev.in python-dateutil==2.9.0.post0 # via @@ -51,11 +51,11 @@ python-dateutil==2.9.0.post0 # moto pyyaml==6.0.3 # via responses -requests==2.32.5 +requests==2.33.1 # via # moto # responses -responses==0.25.8 +responses==0.26.0 # via moto s3transfer==0.16.0 # via boto3 @@ -66,7 +66,7 @@ urllib3==2.6.3 # botocore # requests # responses -werkzeug==3.1.5 +werkzeug==3.1.8 # via moto -xmltodict==1.0.2 +xmltodict==1.0.4 # via moto diff --git a/backend/multi-account/backups/requirements.txt b/backend/multi-account/backups/requirements.txt index cdd6ff9ff..aaf0a7dd1 100644 --- a/backend/multi-account/backups/requirements.txt +++ b/backend/multi-account/backups/requirements.txt @@ -8,23 +8,23 @@ attrs==25.4.0 # via # cattrs # jsii -aws-cdk-asset-awscli-v1==2.2.263 +aws-cdk-asset-awscli-v1==2.2.273 # via aws-cdk-lib -aws-cdk-asset-node-proxy-agent-v6==2.1.0 +aws-cdk-asset-node-proxy-agent-v6==2.1.1 # via aws-cdk-lib -aws-cdk-cloud-assembly-schema==48.20.0 +aws-cdk-cloud-assembly-schema==53.17.0 # via aws-cdk-lib -aws-cdk-lib==2.237.1 +aws-cdk-lib==2.250.0 # via -r backups/requirements.in cattrs==25.3.0 # via jsii -constructs==10.4.5 +constructs==10.6.0 # via # -r backups/requirements.in # aws-cdk-lib -importlib-resources==6.5.2 +importlib-resources==7.1.0 # via jsii -jsii==1.126.0 +jsii==1.128.0 # via # aws-cdk-asset-awscli-v1 # aws-cdk-asset-node-proxy-agent-v6 diff --git a/backend/multi-account/control-tower/requirements-dev.txt b/backend/multi-account/control-tower/requirements-dev.txt index 9492750cb..221f397b9 100644 --- a/backend/multi-account/control-tower/requirements-dev.txt +++ b/backend/multi-account/control-tower/requirements-dev.txt @@ -6,27 +6,27 @@ # boolean-py==5.0 # via license-expression -build==1.4.0 +build==1.4.3 # via pip-tools cachecontrol[filecache]==0.14.4 # via # cachecontrol # pip-audit -certifi==2026.1.4 +certifi==2026.2.25 # via requests -charset-normalizer==3.4.4 +charset-normalizer==3.4.7 # via requests -click==8.3.1 +click==8.3.2 # via pip-tools -coverage[toml]==7.13.3 +coverage[toml]==7.13.5 # via # -r control-tower/requirements-dev.in # pytest-cov -cyclonedx-python-lib==11.6.0 +cyclonedx-python-lib==11.7.0 # via pip-audit defusedxml==0.7.1 # via py-serializable -filelock==3.20.3 +filelock==3.29.0 # via cachecontrol idna==3.11 # via requests @@ -42,7 +42,7 @@ msgpack==1.1.2 # via cachecontrol packageurl-python==0.17.6 # via cyclonedx-python-lib -packaging==26.0 +packaging==26.1 # via # build # pip-audit @@ -55,9 +55,9 @@ pip-audit==2.10.0 # via -r control-tower/requirements-dev.in pip-requirements-parser==32.0.1 # via pip-audit -pip-tools==7.5.2 +pip-tools==7.5.3 # via -r control-tower/requirements-dev.in -platformdirs==4.5.1 +platformdirs==4.9.6 # via pip-audit pluggy==1.6.0 # via @@ -65,7 +65,7 @@ pluggy==1.6.0 # pytest-cov py-serializable==2.1.0 # via cyclonedx-python-lib -pygments==2.19.2 +pygments==2.20.0 # via # pytest # rich @@ -75,23 +75,23 @@ pyproject-hooks==1.2.0 # via # build # pip-tools -pytest==9.0.2 +pytest==9.0.3 # via # -r control-tower/requirements-dev.in # pytest-cov -pytest-cov==7.0.0 +pytest-cov==7.1.0 # via -r control-tower/requirements-dev.in -requests==2.32.5 +requests==2.33.1 # via # cachecontrol # pip-audit -rich==14.3.2 +rich==15.0.0 # via pip-audit -ruff==0.15.0 +ruff==0.15.11 # via -r control-tower/requirements-dev.in sortedcontainers==2.4.0 # via cyclonedx-python-lib -tomli==2.4.0 +tomli==2.4.1 # via pip-audit tomli-w==1.2.0 # via pip-audit diff --git a/backend/multi-account/control-tower/requirements.txt b/backend/multi-account/control-tower/requirements.txt index 455f07ef6..7283a7b17 100644 --- a/backend/multi-account/control-tower/requirements.txt +++ b/backend/multi-account/control-tower/requirements.txt @@ -8,13 +8,13 @@ attrs==25.4.0 # via # cattrs # jsii -aws-cdk-asset-awscli-v1==2.2.263 +aws-cdk-asset-awscli-v1==2.2.273 # via aws-cdk-lib -aws-cdk-asset-node-proxy-agent-v6==2.1.0 +aws-cdk-asset-node-proxy-agent-v6==2.1.1 # via aws-cdk-lib -aws-cdk-cloud-assembly-schema==48.20.0 +aws-cdk-cloud-assembly-schema==53.17.0 # via aws-cdk-lib -aws-cdk-lib==2.237.1 +aws-cdk-lib==2.250.0 # via # -r control-tower/requirements.in # cdk-nag @@ -22,14 +22,14 @@ cattrs==25.3.0 # via jsii cdk-nag==2.37.55 # via -r control-tower/requirements.in -constructs==10.4.5 +constructs==10.6.0 # via # -r control-tower/requirements.in # aws-cdk-lib # cdk-nag -importlib-resources==6.5.2 +importlib-resources==7.1.0 # via jsii -jsii==1.126.0 +jsii==1.128.0 # via # aws-cdk-asset-awscli-v1 # aws-cdk-asset-node-proxy-agent-v6 diff --git a/backend/multi-account/log-aggregation/requirements-dev.txt b/backend/multi-account/log-aggregation/requirements-dev.txt index 0b5a8d2dd..ef20a9132 100644 --- a/backend/multi-account/log-aggregation/requirements-dev.txt +++ b/backend/multi-account/log-aggregation/requirements-dev.txt @@ -6,11 +6,11 @@ # iniconfig==2.3.0 # via pytest -packaging==26.0 +packaging==26.1 # via pytest pluggy==1.6.0 # via pytest -pygments==2.19.2 +pygments==2.20.0 # via pytest -pytest==9.0.2 +pytest==9.0.3 # via -r log-aggregation/requirements-dev.in diff --git a/backend/multi-account/log-aggregation/requirements.txt b/backend/multi-account/log-aggregation/requirements.txt index 54fe50746..f0c9d4f0b 100644 --- a/backend/multi-account/log-aggregation/requirements.txt +++ b/backend/multi-account/log-aggregation/requirements.txt @@ -8,23 +8,23 @@ attrs==25.4.0 # via # cattrs # jsii -aws-cdk-asset-awscli-v1==2.2.263 +aws-cdk-asset-awscli-v1==2.2.273 # via aws-cdk-lib -aws-cdk-asset-node-proxy-agent-v6==2.1.0 +aws-cdk-asset-node-proxy-agent-v6==2.1.1 # via aws-cdk-lib -aws-cdk-cloud-assembly-schema==48.20.0 +aws-cdk-cloud-assembly-schema==53.17.0 # via aws-cdk-lib -aws-cdk-lib==2.237.1 +aws-cdk-lib==2.250.0 # via -r log-aggregation/requirements.in cattrs==25.3.0 # via jsii -constructs==10.4.5 +constructs==10.6.0 # via # -r log-aggregation/requirements.in # aws-cdk-lib -importlib-resources==6.5.2 +importlib-resources==7.1.0 # via jsii -jsii==1.126.0 +jsii==1.128.0 # via # aws-cdk-asset-awscli-v1 # aws-cdk-asset-node-proxy-agent-v6 From 69d6aa080c0bd4af2172a3fd92ad021546357382 Mon Sep 17 00:00:00 2001 From: Landon Shumway Date: Mon, 20 Apr 2026 09:44:30 -0500 Subject: [PATCH 8/8] compact-connect dependency update to latest --- .../python/cognito-backup/requirements-dev.txt | 4 ++-- .../lambdas/python/common/requirements-dev.txt | 12 ++++++------ .../lambdas/python/common/requirements.txt | 4 ++-- .../compact-configuration/requirements-dev.txt | 4 ++-- .../python/custom-resources/requirements-dev.txt | 4 ++-- .../lambdas/python/data-events/requirements-dev.txt | 4 ++-- .../python/disaster-recovery/requirements-dev.txt | 4 ++-- .../python/provider-data-v1/requirements-dev.txt | 6 +++--- .../lambdas/python/search/requirements-dev.txt | 4 ++-- .../python/staff-user-pre-token/requirements-dev.txt | 4 ++-- .../lambdas/python/staff-users/requirements-dev.txt | 6 +++--- backend/compact-connect/requirements-dev.txt | 4 ++-- backend/compact-connect/requirements.txt | 2 +- 13 files changed, 31 insertions(+), 31 deletions(-) diff --git a/backend/compact-connect/lambdas/python/cognito-backup/requirements-dev.txt b/backend/compact-connect/lambdas/python/cognito-backup/requirements-dev.txt index 232f25a2f..69be98b6b 100644 --- a/backend/compact-connect/lambdas/python/cognito-backup/requirements-dev.txt +++ b/backend/compact-connect/lambdas/python/cognito-backup/requirements-dev.txt @@ -6,11 +6,11 @@ # aws-lambda-powertools==3.28.0 # via -r lambdas/python/cognito-backup/requirements-dev.in -boto3==1.42.90 +boto3==1.42.91 # via # -r lambdas/python/cognito-backup/requirements-dev.in # moto -botocore==1.42.90 +botocore==1.42.91 # via # -r lambdas/python/cognito-backup/requirements-dev.in # boto3 diff --git a/backend/compact-connect/lambdas/python/common/requirements-dev.txt b/backend/compact-connect/lambdas/python/common/requirements-dev.txt index 2808a28c0..7051e5b9f 100644 --- a/backend/compact-connect/lambdas/python/common/requirements-dev.txt +++ b/backend/compact-connect/lambdas/python/common/requirements-dev.txt @@ -19,15 +19,15 @@ aws-sam-translator==1.103.0 # moto aws-xray-sdk==2.15.0 # via moto -boto3==1.42.90 +boto3==1.42.91 # via # aws-sam-translator # moto -boto3-stubs[full]==1.42.90 +boto3-stubs[full]==1.42.91 # via -r lambdas/python/common/requirements-dev.in -boto3-stubs-full==1.42.90 +boto3-stubs-full==1.42.91 # via boto3-stubs -botocore==1.42.90 +botocore==1.42.91 # via # aws-xray-sdk # boto3 @@ -50,7 +50,7 @@ cryptography==46.0.7 # moto docker==7.1.0 # via moto -faker==40.13.0 +faker==40.15.0 # via -r lambdas/python/common/requirements-dev.in graphql-core==3.2.8 # via moto @@ -115,7 +115,7 @@ pydantic==2.12.4 # pydantic-settings pydantic-core==2.41.5 # via pydantic -pydantic-settings==2.13.1 +pydantic-settings==2.14.0 # via # openapi-schema-validator # openapi-spec-validator diff --git a/backend/compact-connect/lambdas/python/common/requirements.txt b/backend/compact-connect/lambdas/python/common/requirements.txt index 6b887b368..ab8a435c2 100644 --- a/backend/compact-connect/lambdas/python/common/requirements.txt +++ b/backend/compact-connect/lambdas/python/common/requirements.txt @@ -10,9 +10,9 @@ argon2-cffi-bindings==25.1.0 # via argon2-cffi aws-lambda-powertools==3.28.0 # via -r lambdas/python/common/requirements.in -boto3==1.42.90 +boto3==1.42.91 # via -r lambdas/python/common/requirements.in -botocore==1.42.90 +botocore==1.42.91 # via # boto3 # s3transfer diff --git a/backend/compact-connect/lambdas/python/compact-configuration/requirements-dev.txt b/backend/compact-connect/lambdas/python/compact-configuration/requirements-dev.txt index 994819868..78e03d642 100644 --- a/backend/compact-connect/lambdas/python/compact-configuration/requirements-dev.txt +++ b/backend/compact-connect/lambdas/python/compact-configuration/requirements-dev.txt @@ -4,9 +4,9 @@ # # pip-compile --no-emit-index-url --no-strip-extras lambdas/python/compact-configuration/requirements-dev.in # -boto3==1.42.90 +boto3==1.42.91 # via moto -botocore==1.42.90 +botocore==1.42.91 # via # boto3 # moto diff --git a/backend/compact-connect/lambdas/python/custom-resources/requirements-dev.txt b/backend/compact-connect/lambdas/python/custom-resources/requirements-dev.txt index b879a879a..8dea4c93d 100644 --- a/backend/compact-connect/lambdas/python/custom-resources/requirements-dev.txt +++ b/backend/compact-connect/lambdas/python/custom-resources/requirements-dev.txt @@ -4,9 +4,9 @@ # # pip-compile --no-emit-index-url --no-strip-extras lambdas/python/custom-resources/requirements-dev.in # -boto3==1.42.90 +boto3==1.42.91 # via moto -botocore==1.42.90 +botocore==1.42.91 # via # boto3 # moto diff --git a/backend/compact-connect/lambdas/python/data-events/requirements-dev.txt b/backend/compact-connect/lambdas/python/data-events/requirements-dev.txt index eb631cec8..87bd93091 100644 --- a/backend/compact-connect/lambdas/python/data-events/requirements-dev.txt +++ b/backend/compact-connect/lambdas/python/data-events/requirements-dev.txt @@ -4,9 +4,9 @@ # # pip-compile --no-emit-index-url --no-strip-extras lambdas/python/data-events/requirements-dev.in # -boto3==1.42.90 +boto3==1.42.91 # via moto -botocore==1.42.90 +botocore==1.42.91 # via # boto3 # moto diff --git a/backend/compact-connect/lambdas/python/disaster-recovery/requirements-dev.txt b/backend/compact-connect/lambdas/python/disaster-recovery/requirements-dev.txt index 9203dd5c3..0dfb52eb7 100644 --- a/backend/compact-connect/lambdas/python/disaster-recovery/requirements-dev.txt +++ b/backend/compact-connect/lambdas/python/disaster-recovery/requirements-dev.txt @@ -4,9 +4,9 @@ # # pip-compile --no-emit-index-url --no-strip-extras lambdas/python/disaster-recovery/requirements-dev.in # -boto3==1.42.90 +boto3==1.42.91 # via moto -botocore==1.42.90 +botocore==1.42.91 # via # boto3 # moto diff --git a/backend/compact-connect/lambdas/python/provider-data-v1/requirements-dev.txt b/backend/compact-connect/lambdas/python/provider-data-v1/requirements-dev.txt index 17a48d495..900ae2be0 100644 --- a/backend/compact-connect/lambdas/python/provider-data-v1/requirements-dev.txt +++ b/backend/compact-connect/lambdas/python/provider-data-v1/requirements-dev.txt @@ -4,9 +4,9 @@ # # pip-compile --no-emit-index-url --no-strip-extras lambdas/python/provider-data-v1/requirements-dev.in # -boto3==1.42.90 +boto3==1.42.91 # via moto -botocore==1.42.90 +botocore==1.42.91 # via # boto3 # moto @@ -21,7 +21,7 @@ cryptography==46.0.7 # via moto docker==7.1.0 # via moto -faker==40.13.0 +faker==40.15.0 # via -r lambdas/python/provider-data-v1/requirements-dev.in idna==3.11 # via requests diff --git a/backend/compact-connect/lambdas/python/search/requirements-dev.txt b/backend/compact-connect/lambdas/python/search/requirements-dev.txt index 2d45c89de..acda1bd0c 100644 --- a/backend/compact-connect/lambdas/python/search/requirements-dev.txt +++ b/backend/compact-connect/lambdas/python/search/requirements-dev.txt @@ -4,9 +4,9 @@ # # pip-compile --no-emit-index-url --no-strip-extras lambdas/python/search/requirements-dev.in # -boto3==1.42.90 +boto3==1.42.91 # via moto -botocore==1.42.90 +botocore==1.42.91 # via # boto3 # moto diff --git a/backend/compact-connect/lambdas/python/staff-user-pre-token/requirements-dev.txt b/backend/compact-connect/lambdas/python/staff-user-pre-token/requirements-dev.txt index df5bf9c25..cf7b3fdf9 100644 --- a/backend/compact-connect/lambdas/python/staff-user-pre-token/requirements-dev.txt +++ b/backend/compact-connect/lambdas/python/staff-user-pre-token/requirements-dev.txt @@ -4,9 +4,9 @@ # # pip-compile --no-emit-index-url --no-strip-extras lambdas/python/staff-user-pre-token/requirements-dev.in # -boto3==1.42.90 +boto3==1.42.91 # via moto -botocore==1.42.90 +botocore==1.42.91 # via # boto3 # moto diff --git a/backend/compact-connect/lambdas/python/staff-users/requirements-dev.txt b/backend/compact-connect/lambdas/python/staff-users/requirements-dev.txt index ae50db10e..6e3f2ef49 100644 --- a/backend/compact-connect/lambdas/python/staff-users/requirements-dev.txt +++ b/backend/compact-connect/lambdas/python/staff-users/requirements-dev.txt @@ -4,9 +4,9 @@ # # pip-compile --no-emit-index-url --no-strip-extras lambdas/python/staff-users/requirements-dev.in # -boto3==1.42.90 +boto3==1.42.91 # via moto -botocore==1.42.90 +botocore==1.42.91 # via # boto3 # moto @@ -23,7 +23,7 @@ cryptography==46.0.7 # moto docker==7.1.0 # via moto -faker==40.13.0 +faker==40.15.0 # via -r lambdas/python/staff-users/requirements-dev.in idna==3.11 # via requests diff --git a/backend/compact-connect/requirements-dev.txt b/backend/compact-connect/requirements-dev.txt index d6e82d687..f59ff80a9 100644 --- a/backend/compact-connect/requirements-dev.txt +++ b/backend/compact-connect/requirements-dev.txt @@ -26,9 +26,9 @@ cyclonedx-python-lib==11.7.0 # via pip-audit defusedxml==0.7.1 # via py-serializable -faker==40.13.0 +faker==40.15.0 # via -r requirements-dev.in -filelock==3.28.0 +filelock==3.29.0 # via cachecontrol idna==3.11 # via requests diff --git a/backend/compact-connect/requirements.txt b/backend/compact-connect/requirements.txt index 29b05a129..bde6e7be9 100644 --- a/backend/compact-connect/requirements.txt +++ b/backend/compact-connect/requirements.txt @@ -14,7 +14,7 @@ aws-cdk-asset-node-proxy-agent-v6==2.1.1 # via aws-cdk-lib aws-cdk-aws-lambda-python-alpha==2.250.0a0 # via -r requirements.in -aws-cdk-cloud-assembly-schema==53.16.0 +aws-cdk-cloud-assembly-schema==53.17.0 # via aws-cdk-lib aws-cdk-lib==2.250.0 # via