Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
275e18b
add missing file (#209)
wbprice Nov 13, 2025
3e3b4c8
Update load balancer listener config, update allowed hosts in django …
wbprice Nov 13, 2025
d86786e
update allowed hosts (#211)
wbprice Nov 13, 2025
28a47c3
remove strategy page redirect
acme-cms-challenge Nov 14, 2025
2a5b02e
clean up remaining redirect to strategy page config
acme-cms-challenge Nov 14, 2025
9d1e354
terraform fmt
acme-cms-challenge Nov 14, 2025
e29ca0e
Merge pull request #212 from DSACMS/wbprice/remove-strategy-page-redi…
dturner5234 Nov 14, 2025
eb9020e
Wbprice/internal dns configuration (#213)
wbprice Nov 17, 2025
66b4aa8
Remove sandbox terraform definitions and github actions workflows (#214)
wbprice Nov 17, 2025
e3caf02
specify storage autoscaling limits (#215)
wbprice Nov 17, 2025
4635193
[NDH-303] Implement Custom Sorting in FHIR API (#195)
IsaacMilarky Nov 17, 2025
6ffa866
Use an alias to describe directory domain (#217)
wbprice Nov 17, 2025
cf8c33f
[NDH-446] ensure login header, footer, and body are responsive on mob…
abachman-dsac Nov 17, 2025
7b3e31d
ensure header title does not wrap at desktop size (#218)
abachman-dsac Nov 19, 2025
d6125b5
[NDH-399] Introducing feature flags! (#193)
abachman-dsac Nov 19, 2025
fe83030
added ross miller to the team in COMMUNITY.md (#222)
rmillergv Nov 19, 2025
cc575ec
updating contributors list (#224)
github-actions[bot] Nov 19, 2025
db46820
updating contributors list (#225)
github-actions[bot] Nov 19, 2025
a263d9a
Provision test resources (#219)
wbprice Nov 19, 2025
e63d538
[NDH-401]: Refactored tests.py into different suites (#223)
sachin-panayil Nov 19, 2025
1737fed
fix: address sorting change test breakage for LocationViewSetTestCase…
abachman-dsac Nov 20, 2025
9f12e8d
Update internal domains (#226)
wbprice Nov 20, 2025
bf24bbd
bump storage space in dev etl rds (#228)
wbprice Nov 20, 2025
532be7f
removed browsableAPI renderer (#230)
sachin-panayil Nov 24, 2025
8d9682a
[NDH-359] Establish code quality baseline for Python and Typescript (…
abachman-dsac Nov 24, 2025
ec612ce
re-enable dms (#229)
wbprice Nov 24, 2025
b9431f5
Update CODEOWNERS file (#231)
abachman-dsac Nov 25, 2025
a28f0b7
Introduce Playwright for end-to-end-testing (#227)
abachman-dsac Nov 25, 2025
8eb4573
Update code.json metadata (#235)
github-actions[bot] Dec 1, 2025
dd4290c
CI Runner Out of Space Errors (#232)
wbprice Dec 1, 2025
545c815
[NDH-398] Organization details screen - initial work (#198)
abachman-dsac Dec 1, 2025
09db047
Fixing Failing Gitleaks Action (#238)
sachin-panayil Dec 2, 2025
784f8dc
[NDH-448] Modify Django Tests to Use setUpTestData Methods Instead of…
IsaacMilarky Dec 2, 2025
20807da
self-referencing rules for etl and fhir api db security groups (#233)
tspecht-cms Dec 3, 2025
eda9497
Automate export of FHIR API schema to Typescript (#239)
abachman-dsac Dec 3, 2025
33276f8
http -> https redirect (#245)
wbprice Dec 3, 2025
846eee5
correct typo in lvextend instructions (#244)
wbprice Dec 3, 2025
7c23913
[NDH-424] Unified project tooling (#237)
abachman-dsac Dec 4, 2025
7c8eb71
Organization component test should wait for feature flag components t…
abachman-dsac Dec 4, 2025
9af608c
NDH-520: set up prod-test env (#248)
tspecht-cms Dec 5, 2025
c33ff0f
[NDH-553] Basic React error pages (#249)
abachman-dsac Dec 5, 2025
adbe81d
[NDH-324] Improve Practitioner Test Assertions (#250)
IsaacMilarky Dec 8, 2025
6e1d590
[NDH-397] Initial Practitioner page (#240)
abachman-dsac Dec 8, 2025
a87baea
[NDH-476]: Organization Detail MVP (#242)
sachin-panayil Dec 8, 2025
7037c03
[NDH-559] provider_directory.tests.test_views should not rely on file…
abachman-dsac Dec 8, 2025
6fa7da7
Wbprice/self hosted runner containers (#251)
wbprice Dec 8, 2025
f666cb6
Update internal route53 configuration (#253)
wbprice Dec 9, 2025
7aac220
we want an internal domain for the directory in prod-test (#255)
wbprice Dec 9, 2025
359059c
[NDH-477]: Practitioner Page MVP (#254)
sachin-panayil Dec 10, 2025
cc50ed4
some tweaks to support working with real data (#206)
spopelka-dsac Dec 10, 2025
06e2600
Change trigger for backend tests (#259)
IsaacMilarky Dec 11, 2025
0982e5e
Backend test fix (#260)
IsaacMilarky Dec 11, 2025
5d918b2
adding migration, updating models.py and updating serializers (#262)
spopelka-dsac Dec 11, 2025
9c8c6e2
fixing dumb db var name bug (#263)
spopelka-dsac Dec 11, 2025
6fc7c63
adding public, npd as the search path (#265)
spopelka-dsac Dec 11, 2025
1232436
Disable ecs service for gha (#266)
wbprice Dec 11, 2025
3e50556
hardcode npd database name (#267)
wbprice Dec 11, 2025
2690532
[NDH-574] Add Playwright GitHub Action (#264)
abachman-dsac Dec 12, 2025
5a2c8f7
[NDH-471] Organization listing page with pagination (#269)
abachman-dsac Dec 15, 2025
3a9ec40
EC2 Instance user data for semi-ephemeral EC2 GitHub Actions Runners …
wbprice Dec 16, 2025
1eaca5b
update weekly refresh token using date modulo'd by 7 rather than mill…
wbprice Dec 16, 2025
92ded33
Update trust policy to read from npd-ops rather than NPD (#275)
wbprice Dec 16, 2025
e5f7382
Use templatefile() in place of "template_file" (#276)
tspecht-cms Dec 16, 2025
6522fa4
Update weekly refresh token (#277)
wbprice Dec 16, 2025
3333620
NDH-572: apply AWS support recs (#258)
tspecht-cms Dec 16, 2025
270c5b0
Ndh 613 delete test env (#280)
tspecht-cms Dec 17, 2025
94a3138
deleted clinical org repeatable-migration (#286)
spopelka-dsac Dec 19, 2025
39b3ca9
Wbprice/ndh 584 resolve flyway schema already exists error (#281)
wbprice Dec 19, 2025
db2c17c
[NDH-639] Add optional SQL query tracing to the backend test suite (#…
abachman-dsac Dec 19, 2025
8be7965
[NDH-479] Basic organization search (#272)
abachman-dsac Dec 22, 2025
f721f88
[NDH-618] Developer Page Content Changes (#288)
sachin-panayil Dec 29, 2025
7b1715a
remove infrastructure definitions (#292)
wbprice Dec 31, 2025
f06b99f
Update code.json metadata (#293)
github-actions[bot] Jan 2, 2026
d722e4b
updated CODEOWNERS file to reflect current staff (#291)
sachin-panayil Jan 5, 2026
c33c334
add csrf config and csrf logging config (#298)
wbprice Jan 5, 2026
9fba7b7
Adjusting Aria Levels and Side Bar (#290)
sachin-panayil Jan 5, 2026
c897a88
[NDH-324] Amendments to Fixtures and Test cases (#256)
IsaacMilarky Jan 6, 2026
9f6e6bb
[NDH-641] Add Snyk GitHub Workflow (#284)
IsaacMilarky Jan 6, 2026
525f601
backfilling hotfixes into main (#302)
spopelka-dsac Jan 7, 2026
256a966
fixing failing snyk status (#306)
sachin-panayil Jan 8, 2026
23820a3
Fixes in README.md (#307)
sman-dsac Jan 8, 2026
d79ab11
replicating changes off of main (#311)
spopelka-dsac Jan 9, 2026
bd5a067
upgraded vulnerable package (#312)
sachin-panayil Jan 9, 2026
f978be3
updated sytnax to fix string bug] (#315)
sachin-panayil Jan 13, 2026
c6d3fed
adding workflow that allows for automated sync from release to main (…
sachin-panayil Jan 13, 2026
c88d958
removing the conflict at the source (#321)
spopelka-dsac Jan 14, 2026
7594ccc
Wbprice/the perfect storm (#324)
wbprice Jan 14, 2026
44c4191
changing whitespace in test_practitioner.py (#326)
spopelka-dsac Jan 14, 2026
def1a9b
Wbprice/merge release into main (#333)
wbprice 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
17 changes: 17 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Code Owners
# Who are the points of contact in your project who are responsible/accountable for the project? This can often be an engineering or design manager or leader, who may or may not be the primary maintainers of the project. List them by GitHub Username

@spopelka-dsac
@wbprice

# Repo Domains
# The Repo Domains section of your CODEOWNERS.md file helps manage code review responsibilities efficiently. Each domain represents a different aspect of the repository, such as documentation, frontend, backend, DevOps, testing, etc. In this section, list each domain and assign the appropriate GitHub usernames or teams responsible for that domain. This ensures that pull requests (PRs) are reviewed by the right experts, maintaining high code quality and relevance
# Not every name on the list is required to review every change, but at least one person named should be review every PR making contributions.

/frontend/ @sachin-panayil @sman-dsac @spopelka-dsac

/backend/ @spopelka-dsac @IsaacMilarky @sachin-panayil

/infrastructure/ @wbprice

/flyway/ @spopelka-dsac
35 changes: 0 additions & 35 deletions .github/CODEOWNERS.md

This file was deleted.

39 changes: 19 additions & 20 deletions .github/workflows/backend-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,20 @@ permissions:

on:
pull_request:
push:
branches:
- main

jobs:
lint:
runs-on: ubuntu-latest

steps:
- name: Checkout repo
uses: actions/checkout@v4
- uses: astral-sh/ruff-action@v3
with:
src: "./backend"

test:
runs-on: ubuntu-latest
defaults:
run:
working-directory: backend/

steps:
- name: Checkout repo
Expand All @@ -26,25 +30,20 @@ jobs:

- name: Ensure test directories have appropriate permissions for writing
run: |
mkdir -p ./artifacts/test-reports
chmod 777 ./artifacts/test-reports
chmod 777 ./provider_directory/static
mkdir -p ./backend/artifacts/test-reports
chmod 777 ./backend/artifacts/test-reports
chmod 777 ./backend/provider_directory/static

- name: Setup test environment
run: |
make test-setup

- name: Build and run tests
- name: Run tests
run: |
make test
make test-backend

- name: Upload test results as artifact
uses: actions/upload-artifact@v4
with:
name: test-results
path: backend/artifacts/test-reports/*.xml

- name: Publish Test Results
uses: EnricoMi/publish-unit-test-result-action@v2
if: (!cancelled())
with:
check_name: "Backend Django Test Results"
comment_mode: changes in failures
files: |
backend/artifacts/test-reports/*.xml
67 changes: 0 additions & 67 deletions .github/workflows/deploy-to-sandbox.yml

This file was deleted.

39 changes: 39 additions & 0 deletions .github/workflows/end-to-end-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: End to End Tests

permissions: {}

on:
push:
branches: [main, release]
pull_request:
branches: [main, release]

jobs:
test:
timeout-minutes: 10
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: docker/setup-compose-action@v1
- uses: actions/setup-node@v5
with:
node-version: lts/*
# build service conatiners required for `make test-server`
- name: Build containers
run: docker compose build db db-migrations django-web web
- name: Install Playwright dependencies
working-directory: playwright/
run: npm ci
- name: Install Playwright browsers
working-directory: playwright/
run: npx playwright install chromium --with-deps
# this step starts the test web server via `make test-server`
- name: Run Playwright tests
working-directory: playwright/
run: npx playwright test
- uses: actions/upload-artifact@v4
if: ${{ !cancelled() }}
with:
name: playwright-report
path: playwright/playwright-report/
retention-days: 7
10 changes: 8 additions & 2 deletions .github/workflows/frontend-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,19 @@ jobs:
run: |
npm ci

- name: Lint frontend
- name: Typecheck
working-directory: frontend
run: |
npm run typecheck

- name: Lint
working-directory: frontend
run: |
npm run lint

- name: Run tests
- name: Test
working-directory: frontend
env:
VITE_API_BASE_URL: http://localhost:8000
run: |
npm run coverage
46 changes: 46 additions & 0 deletions .github/workflows/hotfix-sync.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Hotfix Sync

on:
pull_request:
branches: [release]
types: [opened, closed]

permissions:
contents: write
pull-requests: write

jobs:
remind-label:
if: github.event.action == 'opened'
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v7
with:
script: |
const labels = context.payload.pull_request.labels.map(l => l.name);

if (!labels.includes('hotfix')) {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number,
body: `👋 If this is a hotfix, please add the \`hotfix\` label to automatically cherry pick and sync your changes with main via PR!`
});
}

cherry-pick:
if: >
github.event.action == 'closed' &&
github.event.pull_request.merged == true &&
contains(github.event.pull_request.labels.*.name, 'hotfix')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: carloscastrojumo/github-cherry-pick-action@v1.0.1
with:
branch: main
labels: synced-cherry-pick
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
26 changes: 26 additions & 0 deletions .github/workflows/snyk.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Scan Project with Snyk Python Workflow
on: push
permissions:
contents: read
jobs:
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install -r backend/requirements.txt
pip install -r etls/loadFIPS/requirements.txt
- name: Install Snyk CLI
run: |
npm install -g snyk@latest

- name: Run Snyk scan
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
run: |
snyk test --all-projects
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ celerybeat.pid

# Environments
.env
.env.test
.venv
env/
venv/
Expand Down Expand Up @@ -185,4 +186,4 @@ scratch/

# tool version management
mise.toml
.pre-commit-config.yaml

29 changes: 29 additions & 0 deletions .gitleaksignore
Original file line number Diff line number Diff line change
Expand Up @@ -206,3 +206,32 @@
#False positive
e1161fe24ddffc2afaac005126d2e21666d36dcc:db/sql/inserts/sample_data.sql:generic-api-key:27140
20530ff1fcdaaccb9554bc511d21e09f09360750:frontend/index.html:tfstate-provider-ids:13
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/estree/package.json:tfstate-provider-ids:10
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/json-schema/package.json:tfstate-provider-ids:10
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/json-schema/package.json:tfstate-provider-ids:15
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/json-schema/package.json:tfstate-provider-ids:20
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/json-schema/package.json:tfstate-provider-ids:25
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/node/package.json:tfstate-provider-ids:10
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/node/package.json:tfstate-provider-ids:15
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/node/package.json:tfstate-provider-ids:20
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/node/package.json:tfstate-provider-ids:25
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/node/package.json:tfstate-provider-ids:30
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/node/package.json:tfstate-provider-ids:40
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/node/package.json:tfstate-provider-ids:45
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/node/package.json:tfstate-provider-ids:50
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/node/package.json:tfstate-provider-ids:55
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/node/package.json:tfstate-provider-ids:60
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/node/package.json:tfstate-provider-ids:65
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/node/package.json:tfstate-provider-ids:70
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/node/package.json:tfstate-provider-ids:80
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/node/package.json:tfstate-provider-ids:85
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/node/package.json:tfstate-provider-ids:90
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/node/package.json:tfstate-provider-ids:95
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/node/package.json:tfstate-provider-ids:100
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/node/package.json:tfstate-provider-ids:105
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/node/package.json:tfstate-provider-ids:115
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/node/package.json:tfstate-provider-ids:110
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/node/package.json:tfstate-provider-ids:120
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/node/package.json:tfstate-provider-ids:125
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/node/package.json:tfstate-provider-ids:35
22bb4d12d16dcdda27efc8389df470af6e576c96:playwright/node_modules/@types/node/package.json:tfstate-provider-ids:75
Loading
Loading