Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
e7eaa32
Add notification handler for provider home state changes
landonshumway-ia May 6, 2026
92dddfa
Add email template for home jurisdiction change notification
landonshumway-ia May 6, 2026
268dac1
Checking for home state change during license upload
landonshumway-ia May 6, 2026
c4f3459
linter/formatter
landonshumway-ia May 6, 2026
e5b87e3
Add test for email lambda entry point
landonshumway-ia May 6, 2026
ba39aba
Remove unused import
landonshumway-ia May 6, 2026
3889a1e
node linter
landonshumway-ia May 6, 2026
e55af90
Add test for notification listener configuration
landonshumway-ia May 7, 2026
fe7804c
update poweruser permission set documentation
landonshumway-ia May 7, 2026
caef95a
Remove unused specific email logic
landonshumway-ia May 7, 2026
40707a6
Add smoke test for triggering home state change
landonshumway-ia May 7, 2026
490e18d
PR feedback - filter event records on provider id
landonshumway-ia May 7, 2026
026d1a8
PR feedback - updated max wait time
landonshumway-ia May 7, 2026
62bae5c
Simplify check for home state change during license upload
landonshumway-ia May 11, 2026
255916b
linter/formatting
landonshumway-ia May 11, 2026
301095b
Update backend node lambdas to latest
landonshumway-ia May 11, 2026
6ada04b
Update urllib3 version to address audit check
landonshumway-ia May 11, 2026
6368ba4
Add adverse actions as a top-level field for OpenSearch documents
landonshumway-ia May 11, 2026
9a7e9b5
Add licenseEligibility field to public search list results
landonshumway-ia May 11, 2026
0d07dc2
Update smoke tests to override compact configuration
landonshumway-ia May 11, 2026
f98674b
Add new field to API spec
landonshumway-ia May 11, 2026
82975e9
linter/formatting
landonshumway-ia May 11, 2026
fd52334
PR feedback - test coverage
landonshumway-ia May 11, 2026
c3ff692
update API specs/postman collections to latest
landonshumway-ia May 11, 2026
b8bce3c
Add smoke tests for public search endpoints
landonshumway-ia May 12, 2026
390f335
formatting
landonshumway-ia May 12, 2026
6a88cd6
Add 'mostRecentLicense' field to provider documents in OpenSearch.
landonshumway-ia May 12, 2026
40bb076
Set marker for each most recent license per type
landonshumway-ia May 13, 2026
8d3d4d3
formatting
landonshumway-ia May 13, 2026
66b9715
Filter public search results based on most recent license for type
landonshumway-ia May 13, 2026
5f0ff52
Only include most recent licenses in the public api response
landonshumway-ia May 13, 2026
0374bea
Add smoke test to verify old license is not shown in public search
landonshumway-ia May 13, 2026
7adbd47
PR feedback
landonshumway-ia May 13, 2026
fcf3ab4
remove outdated information from MFA recovery docs
landonshumway-ia May 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,8 @@ Before beginning this procedure, ensure you have:

### Step 2: Archive the DynamoDB Record

In the DynamoDB console, if you change the partition key (pk) value of a existing DynamoDB item, it automatically deletes the old record with the old pk and creates a new one with the new pk, effectively archiving the user record. Perform the following steps:
In the DynamoDB console, perform the following steps:

1. **Create the Archived Record**
- In the DynamoDB table, find the existing staff user record and select it to open the 'Edit item' view.
- **Add a new field**: `archivedDate` = current date (yyyy-mm-dd format)
- **Add a new field**: `archivedReason` = "MFA recovery - user lost access to MFA device"
Expand Down
8 changes: 4 additions & 4 deletions backend/compact-connect/lambdas/nodejs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"type": "commonjs",
"description": "NodeJS lambdas for CompactConnect",
"resolutions": {
"fast-xml-parser": "5.7.0",
"fast-xml-parser": "5.7.3",
"postcss": "8.5.10"
},
"scripts": {
Expand Down Expand Up @@ -45,9 +45,9 @@
},
"dependencies": {
"@aws-lambda-powertools/logger": "^2.32.0",
"@aws-sdk/client-dynamodb": "^3.1029.0",
"@aws-sdk/client-s3": "^3.1029.0",
"@aws-sdk/client-sesv2": "^3.1029.0",
"@aws-sdk/client-dynamodb": "^3.1045.0",
"@aws-sdk/client-s3": "^3.1045.0",
"@aws-sdk/client-sesv2": "^3.1045.0",
"@aws-sdk/util-dynamodb": "^3.996.2",
"@csg-org/email-builder": "^0.0.13",
"nodemailer": "^8.0.5",
Expand Down
782 changes: 393 additions & 389 deletions backend/compact-connect/lambdas/nodejs/yarn.lock

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ six==1.17.0
# via python-dateutil
typing-extensions==4.15.0
# via aws-lambda-powertools
urllib3==2.6.3
urllib3==2.7.0
# via
# botocore
# requests
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ typing-inspection==0.4.2
# via
# pydantic
# pydantic-settings
urllib3==2.6.3
urllib3==2.7.0
# via
# botocore
# docker
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ six==1.17.0
# via python-dateutil
typing-extensions==4.15.0
# via aws-lambda-powertools
urllib3==2.6.3
urllib3==2.7.0
# via
# botocore
# requests
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ s3transfer==0.16.0
# via boto3
six==1.17.0
# via python-dateutil
urllib3==2.6.3
urllib3==2.7.0
# via
# botocore
# docker
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ s3transfer==0.16.0
# via boto3
six==1.17.0
# via python-dateutil
urllib3==2.6.3
urllib3==2.7.0
# via
# botocore
# docker
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ s3transfer==0.16.0
# via boto3
six==1.17.0
# via python-dateutil
urllib3==2.6.3
urllib3==2.7.0
Comment thread
coderabbitai[bot] marked this conversation as resolved.
# via
# botocore
# docker
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ s3transfer==0.16.0
# via boto3
six==1.17.0
# via python-dateutil
urllib3==2.6.3
urllib3==2.7.0
# via
# botocore
# docker
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ s3transfer==0.16.0
# via boto3
six==1.17.0
# via python-dateutil
urllib3==2.6.3
urllib3==2.7.0
# via
# botocore
# docker
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,5 @@ statsig-python-core==0.19.1
# via -r requirements.in
typing-extensions==4.15.0
# via statsig-python-core
urllib3==2.6.3
urllib3==2.7.0
# via requests
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ s3transfer==0.16.0
# via boto3
six==1.17.0
# via python-dateutil
urllib3==2.6.3
urllib3==2.7.0
# via
# botocore
# docker
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@ boto3>=1.34.33, <2
cryptography>=46, <47
marshmallow>=4.3.0, <5.0.0
requests>=2.31.0, <3.0.0
urllib3>=2.6.3, <3
urllib3>=2.7.0, <3
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ tomli-w==1.2.0
# via pip-audit
typing-extensions==4.15.0
# via aws-lambda-powertools
urllib3==2.6.3
urllib3==2.7.0
# via
# -r purchases/requirements-dev.in
# botocore
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# common requirements are managed in the common-python requirements.in file
authorizenet>=1.1.6, <2
# explicitly setting this transitive dependency to pick vulnerability patch
urllib3>=2.6.3, <3
urllib3>=2.7.0, <3
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ pyxb-x==1.2.6.3
# via authorizenet
requests==2.33.1
# via authorizenet
urllib3==2.6.3
urllib3==2.7.0
# via
# -r requirements.in
# requests
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ s3transfer==0.16.0
# via boto3
six==1.17.0
# via python-dateutil
urllib3==2.6.3
urllib3==2.7.0
# via
# botocore
# docker
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ six==1.17.0
# via python-dateutil
typing-extensions==4.15.0
# via grpcio
urllib3==2.6.3
urllib3==2.7.0
# via
# opensearch-py
# requests
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ s3transfer==0.16.0
# via boto3
six==1.17.0
# via python-dateutil
urllib3==2.6.3
urllib3==2.7.0
# via
# botocore
# docker
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ s3transfer==0.16.0
# via boto3
six==1.17.0
# via python-dateutil
urllib3==2.6.3
urllib3==2.7.0
# via
# botocore
# docker
Expand Down
2 changes: 1 addition & 1 deletion backend/compact-connect/requirements-dev.txt
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ tomli==2.4.1
# via pip-audit
tomli-w==1.2.0
# via pip-audit
urllib3==2.6.3
urllib3==2.7.0
# via requests
wheel==0.46.3
# via pip-tools
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ def test_active_member_jurisdictions():
print(f'Successfully verified active member jurisdictions for compact {compact}')


def test_compact_configuration():
def test_compact_configuration(compact: str = None):
"""
Test that a compact admin can update and retrieve compact configuration.

Expand All @@ -112,8 +112,9 @@ def test_compact_configuration():
"""
print('Testing compact configuration...')

if compact is None:
compact = COMPACTS[0] # Use the first compact for testing
# Create a test compact admin user
compact = COMPACTS[0] # Use the first compact for testing
test_email = f'test-compact-admin-{compact}@ccSmokeTestFakeEmail.com'
permissions = {'actions': {'admin'}, 'jurisdictions': {}}

Expand Down Expand Up @@ -222,7 +223,9 @@ def test_compact_configuration():
delete_test_staff_user(test_email, user_sub, compact)


def test_jurisdiction_configuration(jurisdiction: str = 'ne', recreate_compact_config: bool = False):
def test_jurisdiction_configuration(
compact: str = None, jurisdiction: str = 'ne', recreate_compact_config: bool = False
):
"""
Test that a state admin can update and retrieve jurisdiction configuration.

Expand All @@ -232,7 +235,8 @@ def test_jurisdiction_configuration(jurisdiction: str = 'ne', recreate_compact_c
print('Testing jurisdiction configuration...')

# Create a test state admin user with compact admin permissions for simplicity
compact = COMPACTS[0] # Use the first compact for testing
if compact is None:
compact = COMPACTS[0] # Use the first compact for testing
test_email = f'test-state-admin-{jurisdiction}@ccSmokeTestFakeEmail.com'
permissions = {'actions': {'admin'}, 'jurisdictions': {jurisdiction: {'admin'}}}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,12 @@ def _generate_post_body(attestations_from_system, license_type):

def test_purchase_privilege_options():
"""Test the GET /v1/purchases/privileges/options endpoint."""
original_provider_data = call_provider_users_me_endpoint()
compact = original_provider_data.get('compact')
# First, ensure we have known configuration by calling the configuration tests
# These will set up the configurations and return them for verification
compact_config = test_compact_configuration()
jurisdiction_config = test_jurisdiction_configuration()
compact_config = test_compact_configuration(compact=compact)
jurisdiction_config = test_jurisdiction_configuration(compact=compact)

# Now test the purchase privilege options endpoint
headers = get_provider_user_auth_headers_cached()
Expand Down
Loading
Loading