Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
211ed2d
Add CDK resources for military audit workflow
landonshumway-ia Dec 17, 2025
8a7d848
Initial implementation of military audit endpoint with schema updates
landonshumway-ia Dec 17, 2025
0bc639e
Add initial implementation for notification event handler
landonshumway-ia Dec 17, 2025
05b4808
Adding provider update record with previous status
landonshumway-ia Dec 22, 2025
d0cf2f3
setting default military status fields in api response rather than da…
landonshumway-ia Dec 22, 2025
3212700
Setting provider military status to tentative when file is uploaded
landonshumway-ia Dec 22, 2025
9b4a57f
clean up doc/comment
landonshumway-ia Dec 23, 2025
5e9d375
Add audit approval email template
landonshumway-ia Dec 23, 2025
8f5e2c7
Add audit declined email template
landonshumway-ia Dec 23, 2025
2de09ae
Remove military status fields when user ends military affiliation
landonshumway-ia Dec 23, 2025
4da19fd
Use update statement to update provider status values
landonshumway-ia Dec 23, 2025
693e948
Use update statement during audit processing
landonshumway-ia Dec 23, 2025
da1bae6
Add smoke test for military audit endpoint
landonshumway-ia Dec 24, 2025
7706d93
Add smoke test for approved audit flow
landonshumway-ia Dec 26, 2025
ac5745c
Fix comments
landonshumway-ia Dec 26, 2025
5d2bfee
Using full datetime for military affiliation records
landonshumway-ia Dec 26, 2025
f67c03e
Refactor tests in common layer
landonshumway-ia Dec 26, 2025
4b983f1
PR feedback - use constant
landonshumway-ia Dec 26, 2025
c2077ec
fix tests to use updated format for document keys
landonshumway-ia Dec 26, 2025
c665495
update test to grab latest military affiliation record
landonshumway-ia Dec 26, 2025
a66ec2c
fix test data to use new document key format
landonshumway-ia Dec 26, 2025
844aaea
fix remaining tests to use new format
landonshumway-ia Dec 26, 2025
ad08a64
check top level military status field in privilege purchase logic
landonshumway-ia Dec 29, 2025
bc45b1b
linter/formatting
landonshumway-ia Dec 29, 2025
2419d0c
PR cleanup
landonshumway-ia Dec 29, 2025
e135203
Update API/Postman spec to latest
landonshumway-ia Dec 29, 2025
e950f0e
PR feedback
landonshumway-ia Dec 29, 2025
f210f4a
PR feedback - remove unneeded .value
landonshumway-ia Dec 29, 2025
456965d
update smoke tests to account for now military status
landonshumway-ia Dec 30, 2025
2abec5f
linter/formatting
landonshumway-ia Dec 30, 2025
3d6aed5
Add README for smoke test setup/running
landonshumway-ia Dec 30, 2025
48179be
Fix comment
landonshumway-ia Dec 30, 2025
30f2073
PR feedback - add sso option to smoke test setup
landonshumway-ia Dec 30, 2025
6b37ff5
PR feedback - split status API values from record values
landonshumway-ia Dec 30, 2025
7e52006
PR feedback - use update instead of put
landonshumway-ia Dec 30, 2025
bec0171
use audit status enum for api request schema
landonshumway-ia Dec 30, 2025
5931001
formatting/linter
landonshumway-ia Dec 30, 2025
15caa01
fix import
landonshumway-ia Dec 30, 2025
3c54692
formatting
landonshumway-ia Dec 30, 2025
aa6ef69
PR feedback - set militaryStatus as required
landonshumway-ia Dec 30, 2025
736ea6e
formatting
landonshumway-ia Dec 30, 2025
f4f5c37
set default values on API response schema
landonshumway-ia Dec 31, 2025
db1fcec
Fix tests to account for api default setting
landonshumway-ia Dec 31, 2025
5321cfd
linter/formatter
landonshumway-ia Jan 5, 2026
e360a7d
reword email templates according to feedback
landonshumway-ia Jan 7, 2026
9158260
PR feedback - minor fixes and comments
landonshumway-ia Jan 13, 2026
3b684f4
PR feedback - smoke test README
landonshumway-ia Jan 13, 2026
4b18e60
PR feedback - fix docs and linter
landonshumway-ia Jan 14, 2026
03bb544
use variable name that doesn't shadow parameter
landonshumway-ia Jan 14, 2026
3b11ac1
adjust sensitivity of provider search alarm
landonshumway-ia Jan 14, 2026
8c1fb67
Update OpenAPI spec to latest
landonshumway-ia Jan 14, 2026
61fda2e
PR feedback - fix comments
landonshumway-ia Jan 14, 2026
a8b1826
PR feedback - grammar
landonshumway-ia Jan 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
1 change: 1 addition & 0 deletions backend/compact-connect/bin/run_python_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
'lambdas/python/disaster-recovery',
'lambdas/python/migration',
'lambdas/python/provider-data-v1',
'lambdas/python/search',
'lambdas/python/staff-user-pre-token',
'lambdas/python/staff-users',
'.', # CDK tests
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"openapi": "3.0.1",
"info": {
"title": "LicenseApi",
"version": "2026-01-07T22:16:05Z"
"version": "2026-01-14T16:16:32Z"
},
"servers": [
{
Expand Down Expand Up @@ -3225,6 +3225,144 @@
}
}
},
"/v1/compacts/{compact}/providers/{providerId}/militaryAudit": {
"options": {
"parameters": [
{
"name": "compact",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "providerId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "204 response",
"headers": {
"Access-Control-Allow-Origin": {
"schema": {
"type": "string"
}
},
"Access-Control-Allow-Methods": {
"schema": {
"type": "string"
}
},
"Vary": {
"schema": {
"type": "string"
}
},
"Access-Control-Allow-Headers": {
"schema": {
"type": "string"
}
}
},
"content": {}
}
}
},
"patch": {
"parameters": [
{
"name": "Authorization",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "compact",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "providerId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SandboLicenZnCDqNvEXOu2"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "200 response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SandboLicenTMQQKAeKTKQR"
}
}
}
}
},
"security": [
{
"SandboxAPIStackLicenseApiStaffUsersPoolAuthorizer14A84A9B": [
"aslp/admin",
"al/aslp.admin",
"ak/aslp.admin",
"ar/aslp.admin",
"co/aslp.admin",
"de/aslp.admin",
"ky/aslp.admin",
"la/aslp.admin",
"me/aslp.admin",
"md/aslp.admin",
"mn/aslp.admin",
"ms/aslp.admin",
"mo/aslp.admin",
"ne/aslp.admin",
"oh/aslp.admin",
"octp/admin",
"al/octp.admin",
"ar/octp.admin",
"ky/octp.admin",
"la/octp.admin",
"ms/octp.admin",
"ne/octp.admin",
"oh/octp.admin",
"coun/admin",
"al/coun.admin",
"ar/coun.admin",
"fl/coun.admin",
"ga/coun.admin",
"ky/coun.admin",
"ne/coun.admin",
"oh/coun.admin",
"ut/coun.admin"
]
}
]
}
},
"/v1/provider-users/me/jurisdiction/{jurisdiction}": {
"options": {
"parameters": [
Expand Down Expand Up @@ -6420,6 +6558,28 @@
},
"components": {
"schemas": {
"SandboLicenZnCDqNvEXOu2": {
"required": [
"militaryStatus"
],
"type": "object",
"properties": {
"militaryStatusNote": {
"maxLength": 5000,
"type": "string",
"description": "Optional note from the admin (typically for declines)"
},
"militaryStatus": {
"type": "string",
"description": "The audit result for the military documentation",
"enum": [
"approved",
"declined"
]
}
},
"additionalProperties": false
},
"SandboLicenudbEF4n02FXU": {
"required": [
"newEmailAddress"
Expand Down Expand Up @@ -9146,6 +9306,42 @@
"coun"
]
},
"type": {
"type": "string",
"enum": [
"provider"
]
},
"suffix": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"dateOfExpiration": {
"pattern": "^[12]{1}[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$",
"type": "string",
"format": "date"
},
"providerId": {
"pattern": "[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab]{1}[0-9a-f]{3}-[0-9a-f]{12}",
"type": "string"
},
"familyName": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"birthMonthDay": {
"pattern": "^[01]{1}[0-9]{1}-[0-3]{1}[0-9]{1}$",
"type": "string",
"format": "date"
},
"compactConnectRegisteredEmailAddress": {
"maxLength": 100,
"minLength": 5,
"type": "string",
"format": "email"
},
"npi": {
"pattern": "^[0-9]{10}$",
"type": "string"
Expand Down Expand Up @@ -9242,17 +9438,6 @@
]
}
},
"type": {
"type": "string",
"enum": [
"provider"
]
},
"suffix": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"currentHomeJurisdiction": {
"type": "string",
"description": "The current jurisdiction postal abbreviation if known.",
Expand Down Expand Up @@ -9314,6 +9499,11 @@
"unknown"
]
},
"militaryStatusNote": {
"maxLength": 5000,
"type": "string",
"description": "Optional note about the military status (typically for declines)"
},
"licenses": {
"type": "array",
"items": {
Expand Down Expand Up @@ -10204,10 +10394,15 @@
"pattern": "^[0-9]{4}$",
"type": "string"
},
"dateOfExpiration": {
"pattern": "^[12]{1}[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$",
"militaryStatus": {
"type": "string",
"format": "date"
"description": "Status of military affiliation on the provider record",
"enum": [
"notApplicable",
"tentative",
"approved",
"declined"
]
},
"militaryAffiliations": {
"type": "array",
Expand Down Expand Up @@ -10292,38 +10487,18 @@
}
}
},
"providerId": {
"pattern": "[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab]{1}[0-9a-f]{3}-[0-9a-f]{12}",
"type": "string"
},
"licenseStatus": {
"type": "string",
"enum": [
"active",
"inactive"
]
},
"familyName": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"middleName": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"birthMonthDay": {
"pattern": "^[01]{1}[0-9]{1}-[0-3]{1}[0-9]{1}$",
"type": "string",
"format": "date"
},
"compactConnectRegisteredEmailAddress": {
"maxLength": 100,
"minLength": 5,
"type": "string",
"format": "email"
},
"dateOfUpdate": {
"type": "string",
"format": "date-time"
Expand Down Expand Up @@ -12489,6 +12664,11 @@
"unknown"
]
},
"militaryStatusNote": {
"maxLength": 5000,
"type": "string",
"description": "Optional note about the military status (typically for declines)"
},
"ssnLastFour": {
"pattern": "^[0-9]{4}$",
"type": "string"
Expand All @@ -12498,6 +12678,16 @@
"type": "string",
"format": "date"
},
"militaryStatus": {
"type": "string",
"description": "Status of military affiliation on the provider record",
"enum": [
"notApplicable",
"tentative",
"approved",
"declined"
]
},
"providerId": {
"pattern": "[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab]{1}[0-9a-f]{3}-[0-9a-f]{12}",
"type": "string"
Expand Down
Loading
Loading