Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
434 commits
Select commit Hold shift + click to select a range
992dca8
DSUEC-47 Redact `Staff` key and value from change event (#616)
mabe13 Jan 31, 2023
6ca60e3
DSUEC-79 Alert when Alarms revert to OK state (#619)
JackPlowman Jan 31, 2023
0afaefe
DSUEC-81 Fix Alarm Integration Test (#621)
JackPlowman Feb 1, 2023
20ee0a0
DSUEC-66 Delete Old Deployment Pipelines (#615)
JackPlowman Feb 1, 2023
a8e6529
DI-70 Integration test for Staff field redaction (#623)
Corbisc Feb 2, 2023
2507887
DSUEC-30 Identify Palliative Care Mismatches (#593)
JackPlowman Feb 3, 2023
970d0d5
DSUEC-48 Incorrect Palliative Stockholder Type Report (#618)
JackPlowman Feb 6, 2023
3fa2f47
DSUEC-64 Dynamodb Clean Up Job (#612)
JackPlowman Feb 7, 2023
1bd8c79
DSUEC-93 Update Release Documentation (#626)
JackPlowman Feb 8, 2023
8840680
DSUEC-49 Report on Unexpected Pharmacy Profiling (#620)
JackPlowman Feb 8, 2023
e9a7657
DSUEC-72 Fix Nonprod Environment Removal Stage (#627)
JackPlowman Feb 8, 2023
98f1171
DSUEC-94 Migrate Demo to point to UAT2 (#628)
JackPlowman Feb 8, 2023
f94add5
DSUEC-82 Palliative care automation tests (#631)
Corbisc Feb 9, 2023
c5fae3f
DSUEC-95 Improve dashboard with new metrics and labels (#630)
JackPlowman Feb 13, 2023
baf9dd9
DSUEC-96 Improve GitHub Actions (#632)
JackPlowman Feb 13, 2023
962e842
DSUEC-100 Make Finding Palliative Care from Change Event More Robust …
JackPlowman Feb 15, 2023
69374e8
Update GitHub Actions for Releases (#636)
JackPlowman Feb 20, 2023
aa20784
DSUEC-105 Fix Source Version for Removing Blue/Green Environments (#639)
JackPlowman Feb 28, 2023
d1461dc
DSUEC-121 Database Security Group Lookup (#643)
JackPlowman Feb 28, 2023
6911141
DSUEC-120 Upgrade Psycopg Version (#642)
JackPlowman Mar 1, 2023
7c470c7
DSUEC-117 Upgrade Python Version to 3.10 (#644)
JackPlowman Mar 3, 2023
601ff77
DSUEC-75 Route 53 address for DoS database connections (#647)
mabe13 Mar 6, 2023
23565fa
DSUEC-127 Allow lambdas to be able to access backups (#648)
JackPlowman Mar 6, 2023
48ce393
DSUEC-109 Skip Palliative Care Check (#640)
JackPlowman Mar 13, 2023
05abb4f
DSUEC-125 Pin Bandit Version (#653)
JackPlowman Mar 14, 2023
cf7c558
DSUEC-506 Test Failure Resolution Step (#655)
Corbisc Mar 14, 2023
b36f9ce
DS-550 Update DoS DB URLS and SGs for Demo and Live in preparation fo…
mabe13 Mar 20, 2023
5202245
Increase CodeQL vulnerability scanning (#659)
JackPlowman Mar 24, 2023
e493a40
DSUEC-125 Fix Security Warning Messages (#654)
JackPlowman Mar 24, 2023
1e00b09
DSUEC-129 Log only Type 13 to Unexpected Pharmacy Profiling Report (#…
JackPlowman Mar 24, 2023
ad17b73
DSUEC-578 Service Error Report Integration Tests (#661)
Corbisc Mar 27, 2023
d7f4f81
DSUEC-118 Migrate to New Pipeline Roles (#649)
JackPlowman Mar 28, 2023
42ea4fc
DSUEC-46 Update Palliative Care on DoS Service (#617)
JackPlowman Mar 30, 2023
ef73a74
DSUEC-99 Create Integration Tests for DSUEC-46 (#633)
Corbisc Mar 30, 2023
ff0b95a
DSUEC-511 Add security headers to API Gateway (#662)
JackPlowman Apr 3, 2023
e9283da
DSUEC-524 Add Prospective Architecture Diagrams (#660)
JackPlowman Apr 12, 2023
8a9073f
DS-128 Update DoS Version (#667)
JackPlowman Apr 17, 2023
47e5628
DS-513 Add Server Access Logging (#665)
JackPlowman Apr 17, 2023
e16571d
DSUEC-106 Validate SDSGID Combination (#638)
JackPlowman Apr 17, 2023
96fd008
DS-638 Add Object Encryption to File Upload (#668)
JackPlowman Apr 18, 2023
2660651
DS-673 Revert Back to Previous DoS DB Endpoints (#669)
mabe13 Apr 18, 2023
39cccd3
DS-705 Fix Bucket Acl Issue (#673)
JackPlowman Apr 24, 2023
0c2d751
DI-706 Disable Logging Bucket (#674)
JackPlowman Apr 24, 2023
e33bd2d
DS-705 Fix Depends On Removed Resources (#675)
JackPlowman Apr 24, 2023
cd0eed7
DS-717 Change Branch Number Prefix (#676)
JackPlowman Apr 25, 2023
6a05aa5
DS-711 Update Perf2 profile (#677)
JackPlowman Apr 25, 2023
5e8743e
DS-128 Add Improving Performance ADR (#666)
JackPlowman Apr 25, 2023
6ec1148
DS-719 Improve Palliative Care Logging (#680)
JackPlowman Apr 26, 2023
581e686
DS-744 Add Quality of Life Updates (#682)
JackPlowman May 9, 2023
f357ae0
DS-747 Add Data Item Update Metrics (#683)
JackPlowman May 10, 2023
9fff863
DS-707 Add Server Access Logging (#678)
JackPlowman May 11, 2023
178736b
DS-774 Broken F001SXX3 Integration Test (#688)
JackPlowman May 11, 2023
88fa4de
DS-780 Apply Ruff to Application Folder (#689)
JackPlowman May 17, 2023
7534617
DS-835 Update Metrics Dimensions for Service Updates (#694)
JackPlowman May 25, 2023
afb606a
DS-817 Add Region to Blank Opening Times Report (#690)
JackPlowman May 26, 2023
84c5625
DS-785 Refactoring ChangesToDoS class (#692)
mabe13 May 30, 2023
12825ba
DS-839 Refactor Integration and Performance Test Suites (#695)
JackPlowman May 30, 2023
ae49985
DS-86 Refactor PreRelease Pipeline (#698)
JackPlowman May 30, 2023
25600af
Fix AWS_PROFILE variable in Pipelines (#700)
JackPlowman May 31, 2023
f1234a4
DS-845 Remove GitHub Warnings and More Ruff Refactoring (#697)
JackPlowman May 31, 2023
69b2703
DS-836 Update perf and perf2 Connection Variables (#693)
JackPlowman May 31, 2023
44e8303
DS-692 Update Profiles for Aurora Connections (#691)
JackPlowman May 31, 2023
dd1e22c
DS-859 Add make target to remove all development environments (#701)
JackPlowman Jun 1, 2023
4f96c12
DS-881 Improve Report Logging Tests (#710)
JackPlowman Jun 5, 2023
94bf484
DS-896 Remove Old Environment Work Arounds (#713)
JackPlowman Jun 8, 2023
8552b4f
DS-914 Update Build Environment to include Integration Tests (#716)
JackPlowman Jun 12, 2023
c4eb15a
DS-904 Remove Old Dentist Reports and Scripts (#717)
JackPlowman Jun 13, 2023
1b7acf5
DS-885 Remove Palliative Care Changed Report Logging (#718)
JackPlowman Jun 13, 2023
d0c75f1
DS-928 CloudWatch Log Insights Query Retry Process (#730)
JackPlowman Jun 14, 2023
9614451
DS-933 Revert New Aurora Connection Details (#732)
JackPlowman Jun 14, 2023
e983156
DS-929 Update Remove Staff Key Job (#729)
JackPlowman Jun 15, 2023
26b2fb8
DS-913 Separate Non Common Functions (#731)
JackPlowman Jun 19, 2023
5ec189e
DS-818 Update Service Sync Reports (#708)
JackPlowman Jun 19, 2023
216c421
DS-903 Add Production Smoke Test (#734)
JackPlowman Jun 20, 2023
151b2da
DS-897 Remove DynamoDB Job (#736)
JackPlowman Jun 20, 2023
0a003c9
DS-961 Update Dependabot Configuration (#737)
JackPlowman Jun 20, 2023
8d91f1d
DS-930 Reduce AppConfig Costs (#733)
JackPlowman Jun 20, 2023
d56b49f
DS-962 Add Production Smoke Test to Development Pipeline (#738)
JackPlowman Jun 21, 2023
c2ef19d
DS-65 Add CICD Rollback Testing (#748)
JackPlowman Jun 21, 2023
7be5f70
DS-771 Update Service Matcher Reports (#719)
JackPlowman Jun 23, 2023
b18d3d8
DS-1000 Refactor Development and Deployment Tools (#749)
JackPlowman Jun 23, 2023
f4bff76
DS-1003 Fix Smoke Test (#750)
JackPlowman Jun 23, 2023
30c3a49
DS-693 Web Application Firewall (#679)
JackPlowman Jun 26, 2023
fd69589
DS-690 Migrate to SSO roles (#672)
JackPlowman Jun 26, 2023
f319f6d
DS-1006 Fix Shared Resources Deployment Log Group (#751)
JackPlowman Jun 27, 2023
0e4c422
DS-924 Improve Application Performance (#722)
JackPlowman Aug 1, 2023
782e985
DS-1145 Fix development pipeline (#772)
JackPlowman Aug 1, 2023
ee8223f
DS-1044 Pharmacy First Active Matching (#771)
JackPlowman Aug 3, 2023
3fcbcc0
DS-1189 Update Documentation and Diagrams to Remove Orchestrator (#778)
JackPlowman Aug 8, 2023
c21ced9
DS-1191 Update Security Documentation (#779)
JackPlowman Aug 8, 2023
16fcd0c
DS-1198 Bump Up Load Test Event Load (#782)
JackPlowman Aug 8, 2023
c4d401c
DS-1183 Fix live db-dos-handler variable not being defined (Hotfix 16…
mabe13 Aug 10, 2023
7b092da
DS-1153 Fix Pre-Release Pipeline and Convert to CodeBuild Batch Proj…
JackPlowman Aug 10, 2023
23a44c7
DS-1149 Add Infrastructure For Service Matcher Feature Flags (#774)
JackPlowman Aug 10, 2023
00f5585
DS-1205 Update Environments Documentation (#786)
JackPlowman Aug 10, 2023
75b873c
DS-512 Set API Gateway Rate Limit (#670)
JackPlowman Aug 11, 2023
9b81f13
DS-1208 Refactor Build Environment to Task Env Deploy and Test (#787)
JackPlowman Aug 11, 2023
07836d1
DS-1149 Convert AppConfig Feature Flag to Parameter Store Feature Fla…
JackPlowman Aug 11, 2023
9f6e885
DS-1160 Remove Dentist Tests and References (#789)
JackPlowman Aug 14, 2023
c33ba24
DS-1157 Remove Dentist Code from Application (#790)
JackPlowman Aug 15, 2023
d4ecdd1
DS-1161 Match Active, Closed and Commissioning Pharmacy First Service…
JackPlowman Aug 16, 2023
78b630e
DS-1218 Update CloudWatch Query Names (#792)
JackPlowman Aug 16, 2023
6c839c9
DS-1221 Speed Up Integration Tests in Task Deploy and Test (#791)
JackPlowman Aug 16, 2023
483cd94
DS-980 Set Service Status in Reports using Database Value (#794)
JackPlowman Aug 17, 2023
0d3977a
DS-1186 Only Process Services If Any Are Active (#797)
JackPlowman Aug 17, 2023
ec4a5e2
DS-1241 Fix Integration Test ODSCode Bug (#800)
JackPlowman Aug 22, 2023
e994fef
DS-1154 Remove AppConfig Application Usage (#801)
JackPlowman Aug 23, 2023
b200b77
DS-978 Upgrade Python Version of Application and Tests (#795)
JackPlowman Aug 25, 2023
1116ceb
DS-1260 Reduce Performance Test Load (#805)
JackPlowman Aug 25, 2023
0428aea
DS-1271 Remove Reliance on RDS Instances (#807)
JackPlowman Aug 29, 2023
b8f7943
DS-1289 Rearrange Integration Test Functions and Folder Structure (#813)
JackPlowman Aug 31, 2023
a6a9cdf
DS-947 Exception reporting for PF services (#804)
mabe13 Sep 1, 2023
5724b3f
DS-1262 Show Aurora DBs Stats on CloudWatch Dashboard (#811)
JackPlowman Sep 4, 2023
35725ee
DS-1276 Update Dashboard to See Pharmacy First Changes (#810)
JackPlowman Sep 4, 2023
1759027
DS-1305 Test Docker Image Pulling Improvement (#820)
JackPlowman Sep 4, 2023
85364c6
DS-1261 Fix Pre-Release CodeBuild Version Error (#806)
JackPlowman Sep 4, 2023
b1a6662
DS-1315 Remove Unused AppConfig Permissions (#828)
JackPlowman Sep 5, 2023
e2306bc
DS-987 Apply Blood Pressure Service (#796)
JackPlowman Sep 8, 2023
70b4dfa
DS-1284 Blood Pressure Integration Tests (#829)
JackPlowman Sep 8, 2023
6be35ae
DS-1328 Improve CloudWatch Dashboards (#833)
JackPlowman Sep 8, 2023
899af56
DS-1332 Add Cloudwatch Dashboard Variables (#834)
JackPlowman Sep 11, 2023
c6a2368
DS-1348 Fix Blue Green Cleanup Job (#836)
JackPlowman Sep 11, 2023
f7d0917
DS-908 Refactor and Improve Performance Tests (#831)
JackPlowman Sep 11, 2023
f428283
DS-1359 Refactor Performance Tests to Reduce Code Complexity (#837)
JackPlowman Sep 11, 2023
144452b
DS-1372 Reduce CloudWatch Alarm Thresholds (#840)
JackPlowman Sep 13, 2023
4c38c8a
DS-1331 Point Dev to Regression Aurora (#835)
JackPlowman Sep 14, 2023
68647b3
DS-1068 Apply Contraception Service (#798)
JackPlowman Sep 15, 2023
1a0a964
DS-1301 Add Contraception Integration Tests (#830)
JackPlowman Sep 15, 2023
a710a94
DS-1375 Point demo at UAT3 database schema (#843)
mabe13 Sep 15, 2023
f96f54c
DS-1403 Add Palliative Care Performance Test (#844)
JackPlowman Sep 18, 2023
9c7bd5a
DS-1404 Fix Performance Test Specified Opening Times (#845)
JackPlowman Sep 18, 2023
b793b3c
DS-1162 Discard Non Active Services (#799)
JackPlowman Sep 19, 2023
74df24a
DS-1303 Add Integration Tests for DS-1162 (#851)
JackPlowman Sep 20, 2023
a3742a2
DS-1349 Refactor Pharmacy First (#841)
JackPlowman Sep 21, 2023
5182a5c
DS-1417 Bump Up Pipeline Docker Image Versions (#850)
JackPlowman Sep 21, 2023
f0e0afb
DS-1155 Remove AppConfig configuration (#847)
JackPlowman Sep 22, 2023
84742db
DS-721 Apply Web Application Firewall in Block Mode (#848)
JackPlowman Sep 22, 2023
ac4464a
DS-1435 Increase Pipeline Build Timeouts (#853)
JackPlowman Sep 22, 2023
534254b
DS-1396 Remove Unused Alarms and Improve Alarm Triggers (#842)
JackPlowman Sep 22, 2023
7c5bb83
DS-1447 Run Pipeline Without Tools Image (#857)
JackPlowman Sep 25, 2023
dbb76fa
DS-1397 Improve Slack Alerts (#846)
JackPlowman Sep 25, 2023
5cf484a
DS-1439 General Python Refactoring (#855)
JackPlowman Sep 25, 2023
5561f82
DS-1420 Merge CloudWatch Dashboards (#854)
JackPlowman Sep 26, 2023
2cb0ca4
DS-1270 Update to Aurora Terminology (#827)
JackPlowman Sep 26, 2023
32955e5
DS-1139 Remove Unmatched Service Type Report (#860)
JackPlowman Sep 29, 2023
acbeb57
DS-1368 Remove Unexpected Pharmacy Profiling Report (#864)
JackPlowman Sep 29, 2023
2039b9d
DS-1369 Remove Invalid Palliative Stockholder Service Report (#865)
JackPlowman Sep 29, 2023
d6b5368
DS-1487 Add Update Request Sent Metric (#869)
JackPlowman Oct 3, 2023
9c1af2f
DS-1490 Increase Stress Test Rate (#870)
JackPlowman Oct 4, 2023
99ec1bd
DS-1491 Refactor and Add Markdown Actions (#871)
JackPlowman Oct 4, 2023
b7816f8
DS-1164 Add Info Log of Non Blank Opening Times (#858)
JackPlowman Oct 4, 2023
45ba920
DS-1316 Tighten Palliative Care Update (#838)
JackPlowman Oct 5, 2023
4ba7916
DS-1469 Add New Palliative Care Integration Tests (#859)
JackPlowman Oct 6, 2023
636412b
DS-1477 Merge Hotfix 18.1 back into Develop (#863)
JackPlowman Oct 10, 2023
2046d96
DS-1537 Remove Legacy Make Targets (#873)
JackPlowman Oct 11, 2023
2b954fc
DS-1539 Remove Legacy Documentation (#874)
JackPlowman Oct 11, 2023
7aa6c59
DS-1542 Bump up Checkov version (#876)
JackPlowman Oct 12, 2023
ca6b9ee
DS-1543 Bump Up TFSec Version (#877)
JackPlowman Oct 12, 2023
a848dc4
DS-1013 Blank Standard Opening Times No Update (#832)
JackPlowman Oct 12, 2023
3f179c8
DS-1519 Update Blank Opening Times Integration Tests (#878)
vkjonnagadda Oct 12, 2023
61ae535
DS-1367 New Missing Service Type (#861)
JackPlowman Oct 13, 2023
f95f76f
DS-1252 Remove AppConfig Deployment and Folder (#879)
JackPlowman Oct 17, 2023
cfda455
DS-1520 Missing Service Type Integration Tests (#881)
vkjonnagadda Oct 18, 2023
db18846
DS-1541 Improve Application Documentation (#880)
JackPlowman Oct 19, 2023
ecfb1d0
DS-1583 Update Integration Tests CodeBuild To Use Tags (#883)
JackPlowman Oct 20, 2023
fec690f
DS-1603 Refactor Integration Tests - Remove Old Test and Irrelevant T…
JackPlowman Oct 24, 2023
e0a6f0f
DS-1608 Improve Task Deploy and Test Build Time (#893)
JackPlowman Oct 25, 2023
f75c0fa
DS-1399 Refactor Integration Tests - Update Tag Groups (#892)
JackPlowman Oct 26, 2023
a53e0e8
DS-1619 Fix Development Environment Typo (#894)
JackPlowman Oct 26, 2023
11bbd81
DS-1611 Reduce Task Deploy and Test Deployment Time (#895)
JackPlowman Oct 27, 2023
deb6220
DS-1627 Trim Application Logging (#896)
JackPlowman Oct 31, 2023
d992810
DS-156 Fix Blank Opening Times in Production Smoke Test (#908)
JackPlowman Nov 1, 2023
37f7ca7
DS-1195 Pharmacy First Smoke Testing (#909)
JackPlowman Nov 2, 2023
d6ba83d
DS-1317 Create Quality Checker Lambda (#839)
JackPlowman Nov 8, 2023
5a4381c
DS-1658 Quality Checker Integration Tests (#914)
JackPlowman Nov 9, 2023
880fe36
DS-1571 Fix Broken Web Application Firewall Rule (#885)
JackPlowman Nov 10, 2023
3d54a38
DS-1678 Remove References to tx-mfa (#911)
JackPlowman Nov 10, 2023
64880ee
DS-1689 Bump Up Ruff Version and Implement Ruff Formatting (#915)
JackPlowman Nov 10, 2023
3574867
DS-1602 Add Repository Security Policy (#917)
JackPlowman Nov 10, 2023
4935085
DS-1601 Add Repository Licence (#918)
JackPlowman Nov 10, 2023
0fe69eb
DS-1641 Only Send Relevant Logs and Metrics to Splunk (#912)
JackPlowman Nov 13, 2023
f96988b
DS-1544 Remove Serverless Framework and Refactor Application Terrafor…
JackPlowman Nov 15, 2023
ba65441
DS-1709 Add Architectural Decision Record for Application Metrics (#920)
JackPlowman Nov 15, 2023
4796a12
DS-1654 Create CloudWatch Metric Filters (#921)
JackPlowman Nov 16, 2023
74fcd2b
DS-1724 Fix KMS Principals Being Set Incorrectly (#928)
JackPlowman Nov 16, 2023
959101a
DS-1687 Remove Pharmacy First Parameter Usage (#923)
JackPlowman Nov 16, 2023
8f8f693
DS-1721 Task Testing Changes and Integration Test Changes (#924)
JackPlowman Nov 17, 2023
77e3df2
DS-1716 Remove Python Ruff Exclusions and Add Fixes (#927)
JackPlowman Nov 17, 2023
c6f97e7
DS-17721 Fix Broken Sequence Number Tests (#935)
JackPlowman Nov 20, 2023
79feed8
DS-1723 Format Public Phone Number (#929)
JackPlowman Nov 20, 2023
6379a2d
DS-1767 Fix Failed Quality Checker Invocation Alert (#933)
JackPlowman Nov 20, 2023
5a4808a
DS-1787 Fix Smoke Test Phone Updates (#936)
JackPlowman Nov 21, 2023
6d5c333
DS-1776 Remove Python Dead Code (#934)
JackPlowman Nov 21, 2023
a15a778
DS-1755 Update DoS Environment Setup for New Jenkins (#937)
JackPlowman Nov 22, 2023
5173b63
DS-1792 Remove False Negatives from Lambda Error Rate Alarms (#939)
JackPlowman Nov 23, 2023
ba0f023
DS-1633 Upgrade Terraform S3 Module Version (#940)
JackPlowman Nov 23, 2023
5e3b849
DS-1806 Add Database Labels to CloudWatch Dashboard (#941)
JackPlowman Nov 23, 2023
a8c0146
DS-1810 Update CloudWatch Alarms (#942)
JackPlowman Dec 4, 2023
d174051
DS-1755 Fix Refreshing DoS Environment CodeBuild Regularly (#948)
JackPlowman Dec 4, 2023
743130f
DS-1832 Fixes Blank Opening Times Report with logging change (#949)
mabe13 Dec 5, 2023
2624c38
DS-1909 Modify Alarms To Not Deploy Into Task Environments (#953)
JackPlowman Dec 11, 2023
111e474
DS-1815 Performance Test Results Script (#946)
JackPlowman Dec 11, 2023
752e3a7
DS-867 Update Security Group Ingress Rules for New Security Group (#930)
JackPlowman Dec 13, 2023
8f77980
DS-932 Update Database Route 53 Addresses (#931)
JackPlowman Dec 13, 2023
d125ce8
DS-1708 Remove Pharmacy First Feature Flag Parameter Store (#954)
JackPlowman Dec 13, 2023
04e5fb1
DS-1811 Turn on Terraform Refresh (#947)
JackPlowman Dec 13, 2023
75034e5
DS-1925 Upgrade CodeQL Version To 3 (#957)
JackPlowman Dec 14, 2023
c0c6cef
DS-1926 Updates GitHub Actions Versions and Configurations (#958)
JackPlowman Dec 14, 2023
a033774
DS-1931 Add Vale GitHub Action (#960)
JackPlowman Dec 14, 2023
c1e7332
DS-1934 Add Vale Fixes and Improve Documentation (#961)
JackPlowman Dec 14, 2023
1315ebe
DS-1957 Update MGMT Security Group Name (#964)
JackPlowman Dec 18, 2023
6741978
DS-1958 Fix DoS Environment Setup Schedule (#965)
JackPlowman Dec 18, 2023
a98031f
DS-1959 Remove Broken Delete ECR Images CodeBuild (#966)
JackPlowman Dec 18, 2023
2a58032
DS-1964 Improve Performance Test Results Script (#967)
JackPlowman Dec 18, 2023
a72f035
DS-1936 Add Vale Packages (#962)
JackPlowman Dec 19, 2023
01a0e18
DS-1921 Remove Unused Blue/Green Deployment Parameter Stores (#955)
JackPlowman Dec 19, 2023
37412e0
DS-1960 Refactor Development and Deployment Tools Terraform Stack (#968)
JackPlowman Dec 20, 2023
b55a424
DS-1970 Point Event Replay Lambda To Change Event Queue (#971)
JackPlowman Dec 20, 2023
50e9032
DS-1966 Improve Lambda IAM Permissions (#969)
JackPlowman Dec 20, 2023
5081e30
DS-1972 Fix Environment Removal Slack Message (#973)
JackPlowman Dec 20, 2023
76c0ded
DS-1971 Remove Old Compare Specified Opening Times Script (#972)
JackPlowman Dec 21, 2023
9c2f9f6
DS-1973 Remove Release Environment After Testing (#974)
JackPlowman Dec 21, 2023
23c1456
DS-1977 Update CodeBuild To Use Local BuildSpecs (#975)
JackPlowman Dec 22, 2023
0affe59
DS-1984 Fix Specified Opening Times Smoke Test Bug (#976)
JackPlowman Dec 27, 2023
651ec3e
DS-1987 Fix Missing Release Deploy and Test BuildSpec (#980)
JackPlowman Dec 28, 2023
1b13b78
DS-1985 Chaos Engineering Scenarios (#982)
JackPlowman Jan 3, 2024
de92b8d
DS-1991 Add Quality Checker Schedule (#983)
JackPlowman Jan 3, 2024
ff22cef
DS-1986 Add Disaster Recovery Plan (#978)
JackPlowman Jan 8, 2024
640eced
DS-2064 Upgrade Development and Deployment Tools Terraform Provider (…
JackPlowman Jan 16, 2024
f739ec1
DS-2154 Upgrade Moto Mocking (#989)
JackPlowman Jan 29, 2024
7264617
DS-2170 Fix Quality Checker EventBridge Rule Permission (#990)
JackPlowman Jan 31, 2024
9a1d13a
DS-2141 Fix Organisation Name and Type Logging (#988)
JackPlowman Feb 1, 2024
ecb2154
DS-2260 Fix Vale Set Up (#997)
JackPlowman Feb 21, 2024
ec49e5c
Remove Vale Violations (#998)
JackPlowman Feb 23, 2024
ff0b6a8
DS-2264 Upgrade to use latest AWS Lambda PowerTools Logging Standards…
JackPlowman Feb 23, 2024
0e8b4f0
DS-2275 Show Blue/Green Environment Variables in Shared Resources Dep…
JackPlowman Feb 23, 2024
5d5c9ee
DS-2244 Add Penetration Test Make Profile (#1001)
mabe13 Feb 23, 2024
d38c8ef
DS-2400 Integration Test and Unit Python package Bug (#1011)
mabe13 Apr 3, 2024
978e780
DS-2408 Add image build security scan fix to missed pipelines (#1012)
mabe13 Apr 8, 2024
d4f59b8
Add Texas backup tag to dynamoDB (#1021)
mabe13 May 14, 2024
2fc0735
DS-2622 Remove ECR vulnerability scan check from release PR codebuild…
mabe13 May 23, 2024
49b7efd
DS-2622 Remove ECR vulnerability scan check from development codepipe…
mabe13 May 23, 2024
b941f6f
DS-2622 Remove last missed ECR vulnerability scan check (#1025)
mabe13 May 24, 2024
ce6cbbb
DS-2941 Fix Make Targets (#1028)
Tomdango Sep 6, 2024
cf19362
DS-1462 Upgrade Python to 3.12 (#922)
JackPlowman Sep 13, 2024
f7d9fcb
DS-2829 Add missing HTTP security headers (#1027)
nsindhu26 Sep 26, 2024
11b94a1
DS-2840 Sns encryption policy (#1032)
nsindhu26 Oct 8, 2024
3c64597
DS-2834 Restricted endpoint to security group (#1033)
ThomasC-Kainos Oct 22, 2024
4089ad2
DS-3136 Enable distance selling (#1034)
ThomasC-Kainos Nov 26, 2024
b12de9c
Merge branch 'main' into release/27.0
nsindhu26 Dec 17, 2024
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
2 changes: 1 addition & 1 deletion application/common/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
CLOSED_AND_HIDDEN_STATUSES = ["HIDDEN", "CLOSED"]

PHARMACY_SERVICE_TYPE_IDS = [13, 131, 132, 134, 137, 148, 149]
PHARMACY_ORGANISATION_SUB_TYPES = ["Community"]
PHARMACY_ORGANISATION_SUB_TYPES = ["Community", "DistanceSelling"]
PHARMACY_ODSCODE_LENGTH = 5
PHARMACY_SERVICE_TYPE_ID = 13

Expand Down
32 changes: 32 additions & 0 deletions infrastructure/stacks/application/data.tf
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,22 @@ data "aws_iam_policy_document" "sns_topic_app_alerts_for_slack_access_default_re
}
resources = [aws_sns_topic.sns_topic_app_alerts_for_slack_default_region.arn]
}

statement {
sid = "DenyNonSecureTransport"
effect = "Deny"
actions = ["sns:Publish"]
principals {
type = "*"
identifiers = ["*"]
}
resources = [aws_sns_topic.sns_topic_app_alerts_for_slack_default_region.arn]
condition {
test = "Bool"
variable = "aws:SecureTransport"
values = ["false"]
}
}
}

data "aws_iam_policy_document" "sns_topic_app_alerts_for_slack_access_alarm_region" {
Expand All @@ -63,6 +79,22 @@ data "aws_iam_policy_document" "sns_topic_app_alerts_for_slack_access_alarm_regi
}
resources = [aws_sns_topic.sns_topic_app_alerts_for_slack_route53_health_check_alarm_region.arn]
}

statement {
sid = "DenyNonSecureTransport"
effect = "Deny"
actions = ["sns:Publish"]
principals {
type = "*"
identifiers = ["*"]
}
resources = [aws_sns_topic.sns_topic_app_alerts_for_slack_route53_health_check_alarm_region.arn]
condition {
test = "Bool"
variable = "aws:SecureTransport"
values = ["false"]
}
}
}

# ##############
Expand Down
14 changes: 7 additions & 7 deletions infrastructure/stacks/application/security_groups.tf
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@ resource "aws_security_group_rule" "allow_https_out" {

#tfsec:ignore:aws-vpc-no-public-egress-sgr
resource "aws_security_group_rule" "allow_postgres_out" {
type = "egress"
from_port = 5432
to_port = 5432
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
security_group_id = aws_security_group.lambda_sg.id
description = "Allow all Postgres outbound traffic"
type = "egress"
from_port = 5432
to_port = 5432
protocol = "tcp"
source_security_group_id = data.aws_security_group.db_sg.id
security_group_id = aws_security_group.lambda_sg.id
description = "Allow all Postgres outbound traffic"
}

resource "aws_security_group_rule" "database_allow_in_from_lambda" {
Expand Down
50 changes: 50 additions & 0 deletions infrastructure/stacks/shared-resources/api-gateway-responses.tf
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ resource "aws_api_gateway_method_response" "response_200" {
"method.response.header.Cache-control" = true
"method.response.header.Pragma" = true
"method.response.header.Strict-Transport-Security" = true
"method.response.header.X-Frame-Options" = true
"method.response.header.X-Content-Type-Options" = true
"method.response.header.Content-Security-Policy" = true
}
response_models = {
"application/json" = aws_api_gateway_model.default_model.name
Expand All @@ -22,6 +25,9 @@ resource "aws_api_gateway_method_response" "response_400" {
"method.response.header.Cache-control" = true
"method.response.header.Pragma" = true
"method.response.header.Strict-Transport-Security" = true
"method.response.header.X-Frame-Options" = true
"method.response.header.X-Content-Type-Options" = true
"method.response.header.Content-Security-Policy" = true
}
response_models = {
"application/json" = aws_api_gateway_model.default_model.name
Expand All @@ -37,6 +43,9 @@ resource "aws_api_gateway_method_response" "response_500" {
"method.response.header.Cache-control" = true
"method.response.header.Pragma" = true
"method.response.header.Strict-Transport-Security" = true
"method.response.header.X-Frame-Options" = true
"method.response.header.X-Content-Type-Options" = true
"method.response.header.Content-Security-Policy" = true
}
response_models = {
"application/json" = aws_api_gateway_model.default_model.name
Expand All @@ -54,6 +63,9 @@ resource "aws_api_gateway_integration_response" "di_endpoint_integration_success
"method.response.header.Cache-control" = "'no-cache'"
"method.response.header.Pragma" = "'no-store'"
"method.response.header.Strict-Transport-Security" = "'max-age=31536000; includeSubDomains'"
"method.response.header.X-Frame-Options" = "'DENY'"
"method.response.header.X-Content-Type-Options" = "'nosniff'"
"method.response.header.Content-Security-Policy" = "'default-src 'self''"
}

depends_on = [
Expand All @@ -75,6 +87,9 @@ resource "aws_api_gateway_integration_response" "response_400" {
"method.response.header.Cache-control" = "'no-cache'"
"method.response.header.Pragma" = "'no-store'"
"method.response.header.Strict-Transport-Security" = "'max-age=31536000; includeSubDomains'"
"method.response.header.X-Frame-Options" = "'DENY'"
"method.response.header.X-Content-Type-Options" = "'nosniff'"
"method.response.header.Content-Security-Policy" = "'default-src 'self''"
}

depends_on = [
Expand All @@ -96,6 +111,9 @@ resource "aws_api_gateway_integration_response" "response_500" {
"method.response.header.Cache-control" = "'no-cache'"
"method.response.header.Pragma" = "'no-store'"
"method.response.header.Strict-Transport-Security" = "'max-age=31536000; includeSubDomains'"
"method.response.header.X-Frame-Options" = "'DENY'"
"method.response.header.X-Content-Type-Options" = "'nosniff'"
"method.response.header.Content-Security-Policy" = "'default-src 'self''"
}

depends_on = [
Expand All @@ -112,9 +130,41 @@ resource "aws_api_gateway_gateway_response" "access_denied_403_gateway_response"
response_type = "ACCESS_DENIED"
response_templates = ({ "application/json" : jsonencode({ "Message" : "Access Denied, please contact the development team for assistance" }) })

response_parameters = {
"gatewayresponse.header.Cache-control" = "'no-cache'"
"gatewayresponse.header.Pragma" = "'no-store'"
"gatewayresponse.header.Strict-Transport-Security" = "'max-age=31536000; includeSubDomains'"
"gatewayresponse.header.X-Frame-Options" = "'DENY'"
"gatewayresponse.header.X-Content-Type-Options" = "'nosniff'"
"gatewayresponse.header.Content-Security-Policy" = "'default-src 'self''"
}

depends_on = [
aws_api_gateway_integration.di_endpoint_integration,
aws_api_gateway_resource.di_endpoint_change_event_path,
aws_api_gateway_method.di_endpoint_method,
]
}

resource "aws_api_gateway_gateway_response" "invalid_api_key_403_response" {
rest_api_id = aws_api_gateway_rest_api.di_endpoint.id
status_code = "403"
response_type = "INVALID_API_KEY"
response_templates = ({ "application/json" : jsonencode({ "message" : "Forbidden" }) })

response_parameters = {
"gatewayresponse.header.Cache-Control" = "'no-cache'"
"gatewayresponse.header.Pragma" = "'no-store'"
"gatewayresponse.header.Strict-Transport-Security" = "'max-age=31536000; includeSubDomains'"
"gatewayresponse.header.X-Frame-Options" = "'DENY'"
"gatewayresponse.header.X-Content-Type-Options" = "'nosniff'"
"gatewayresponse.header.Content-Security-Policy" = "'default-src 'self''"
}

depends_on = [
aws_api_gateway_integration.di_endpoint_integration,
aws_api_gateway_resource.di_endpoint_change_event_path,
aws_api_gateway_method.di_endpoint_method,
]
}

3 changes: 2 additions & 1 deletion infrastructure/stacks/shared-resources/api-gateway.tf
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,8 @@ EOF
resource "aws_api_gateway_deployment" "di_endpoint_deployment" {
rest_api_id = aws_api_gateway_rest_api.di_endpoint.id
depends_on = [
aws_api_gateway_rest_api_policy.di_endpoint_policy
aws_api_gateway_rest_api_policy.di_endpoint_policy,
aws_api_gateway_gateway_response.invalid_api_key_403_response
]
triggers = {
redeployment = join("", [md5(jsonencode([
Expand Down
32 changes: 32 additions & 0 deletions infrastructure/stacks/shared-resources/data.tf
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,22 @@ data "aws_iam_policy_document" "shared_resources_sns_topic_app_alerts_for_slack_
}
resources = [aws_sns_topic.shared_resources_sns_topic_app_alerts_for_slack_default_region.arn]
}

statement {
sid = "DenyNonSecureTransport"
effect = "Deny"
actions = ["sns:Publish"]
principals {
type = "*"
identifiers = ["*"]
}
resources = [aws_sns_topic.shared_resources_sns_topic_app_alerts_for_slack_default_region.arn]
condition {
test = "Bool"
variable = "aws:SecureTransport"
values = ["false"]
}
}
}

data "aws_iam_policy_document" "shared_resources_sns_topic_app_alerts_for_slack_access_alarm_region" {
Expand All @@ -80,6 +96,22 @@ data "aws_iam_policy_document" "shared_resources_sns_topic_app_alerts_for_slack_
}
resources = [aws_sns_topic.shared_resources_sns_topic_app_alerts_for_slack_route53_health_check_alarm_region.arn]
}

statement {
sid = "DenyNonSecureTransport"
effect = "Deny"
actions = ["sns:Publish"]
principals {
type = "*"
identifiers = ["*"]
}
resources = [aws_sns_topic.shared_resources_sns_topic_app_alerts_for_slack_route53_health_check_alarm_region.arn]
condition {
test = "Bool"
variable = "aws:SecureTransport"
values = ["false"]
}
}
}

data "aws_iam_role" "di_firehose_role" {
Expand Down
52 changes: 51 additions & 1 deletion test/integration/features/F001_Valid_Change_Events.feature
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,9 @@ Feature: F001. Ensure valid change events are converted and sent to DoS
Scenario: F001SXX3. A Changed event with aligned data does not save an update to DoS
Given a basic service is created
When the Changed Event is sent for processing with "valid" api key
Then the "service-sync" lambda shows field "message" with value "No changes to save"
Then the change event response has status code "200"
And the response has security headers
And the "service-sync" lambda shows field "message" with value "No changes to save"
And the service history is not updated

@complete @general
Expand Down Expand Up @@ -511,3 +513,51 @@ Feature: F001. Ensure valid change events are converted and sent to DoS
| " 0123456789" | 0123456789 |
| "0123456789 " | 0123456789 |
| "012 34567 89" | 0123456789 |


@complete @general
Scenario Outline: F001SX40. Changes are processed successfully for service_type = "134" with OrganisationSubType = "DistanceSelling"
Given an entry is created in the services table
And the service "service_type" is set to "134"
And the service "service_status" is set to "1"
And the entry is committed to the services table
And the change event "OrganisationSubType" is set to "DistanceSelling"
When the Changed Event is sent for processing with "valid" api key
Then the "service-sync" lambda shows field "message" with value "Update Request Success"
Then the Changed Event is stored in dynamo db
And the service history is not updated
When the change event "<field>" is set to "<value>"
When the Changed Event is sent for processing with "valid" api key
Then the Changed Event is stored in dynamo db
Then the "<DOS_field>" is updated within the DoS DB
And the service history shows "<service_hist_field>" change type is "modify"

Examples:
| field | value | DOS_field |service_hist_field |
| website | www.testonetwo.com | website | cmsurl |
| phone | 22459436909 | phone | cmstelephoneno |
| Address1 | 5 Tester Way | address | postaladdress |

@complete @general
Scenario: F001SX41. Changed Event with updated postcode to verify location changes with service_type = "134" and OrganisationSubType = "DistanceSelling"
Given an entry is created in the services table
And the service "service_type" is set to "134"
And the service "service_status" is set to "1"
And the entry is committed to the services table
And the change event "OrganisationSubType" is set to "DistanceSelling"
When the Changed Event is sent for processing with "valid" api key
Then the "service-sync" lambda shows field "message" with value "Update Request Success"
Then the Changed Event is stored in dynamo db
And the service history is not updated
When the change event "Postcode" is set to "PR4 2BE"
When the Changed Event is sent for processing with "valid" api key
Then the Changed Event is stored in dynamo db
Then DoS has "PR4 2BE" in the "Postcode" field
Then DoS has "KIRKHAM" in the "town" field
And DoS has "341832" in the "easting" field
And DoS has "432011" in the "northing" field
And DoS has "53.781108" in the "latitude" field
And DoS has "-2.886537" in the "longitude" field
And the service history is updated with the "Postcode"
And the service history shows "postalcode" change type is "modify"

8 changes: 8 additions & 0 deletions test/integration/features/F002_Invalid_Change_Events.feature
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,11 @@ Feature: F002. Invalid change event Exception handling
And the change event has an additional date with no specified date
When the Changed Event is sent for processing with "valid" api key
Then the "service-sync" lambda shows field "message" with value "Opening times are not valid"

@complete @validation
Scenario: F002SXX9. A Changed Event where OrganisationSubType is NOT DistanceSelling is reported and ignored
Given a basic service is created with type "134"
And the change event "OrganisationSubType" is set to "Distance Selling"
When the Changed Event is sent for processing with "valid" api key
Then the "ingest-change-event" lambda shows field "message" with value "Validation Error - Unexpected Org Sub Type ID: 'Distance Selling'"
And the service history is not updated
1 change: 1 addition & 0 deletions test/integration/features/F003_DoS_Security.feature
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ Feature: F003. Endpoint security and reporting
Given a basic service is created
When the Changed Event is sent for processing with "invalid" api key
Then the change event response has status code "403"
And the response has security headers
And the Slack channel shows an alert saying "DI 4XX Endpoint Errors" from "SHARED_ENVIRONMENT"
1 change: 1 addition & 0 deletions test/integration/features/F004_Error_Handling.feature
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ Feature: F004. Error Handling
Given a basic service is created
When the Changed Event is sent for processing with no sequence id
Then the change event response has status code "400"
And the response has security headers

@complete @slack_and_infrastructure
Scenario: F004SXX6. An Alphanumeric Sequence number raises a 400 Bad Request exception
Expand Down
8 changes: 8 additions & 0 deletions test/integration/features/F005_Support_Functions.feature
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@ Feature: F005. Support Functions
Then the Changed Event is stored in dynamo db
And the stored Changed Event is reprocessed in DI

@complete @general
Scenario: F005SXX1. An unprocessed Changed Event with service_type = "134" and OrganisationSubType = "DistanceSelling" is replayed in DI
Given a basic service is created with type "134"
And the change event "OrganisationSubType" is set to "DistanceSelling"
When the Changed Event is sent for processing with "valid" api key
Then the Changed Event is stored in dynamo db
And the stored Changed Event is reprocessed in DI

@complete @slack_and_infrastructure
Scenario: F005SXX2 SQS Message for Change Event DLQ Alert
Given a basic service is created
Expand Down
14 changes: 14 additions & 0 deletions test/integration/features/F006_Opening_Times.feature
Original file line number Diff line number Diff line change
Expand Up @@ -79,3 +79,17 @@ Feature: F006. Opening times
When the Changed Event is sent for processing with "valid" api key
Then DoS is open from "10:00" until "16:00" on "Jan 01 2025"
And the "service-sync" lambda does not show "report_key" with value "BLANK_STANDARD_OPENINGS"

@complete @opening_times
Scenario: F006SXX11. Confirm actual opening times change for specified date and time is captured by DoS with service_type = "134" and OrganisationSubType = "DistanceSelling"
Given a basic service is created with type "134"
And the change event "OrganisationSubType" is set to "DistanceSelling"
When the Changed Event is sent for processing with "valid" api key
Then the "service-sync" lambda shows field "message" with value "Update Request Success"
Then the Changed Event is stored in dynamo db
And the service history is not updated
When the change event is "open" on date "Dec 25 2028"
When the Changed Event is sent for processing with "valid" api key
Then the Changed Event is stored in dynamo db
Then the DoS service has been updated with the specified date is captured by DoS
And the service history is updated with the "added" specified opening times
5 changes: 3 additions & 2 deletions test/integration/steps/functions/dos/get_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,17 +60,18 @@ def get_services_table_location_data(service_id: str) -> list:
return loads(loads(response))


def get_service_id(odscode: str) -> str:
def get_service_id(odscode: str, typeid: int = 13) -> str:
"""Get service id.

Args:
odscode (str): ODSCode.
typeid (int, optional): Type ID. Defaults to 13. If not provided, the default value is 13.

Returns:
str: Service id.
"""
data = []
query = f"SELECT id FROM services WHERE typeid = 13 AND statusid = 1 AND odscode like '{odscode}%' LIMIT 1" # noqa: S608
query = f"SELECT id FROM services WHERE typeid = {typeid} AND statusid = 1 AND odscode like '{odscode}%' LIMIT 1" # noqa: S608
for _ in range(16):
lambda_payload = {"type": "read", "query": query, "query_vars": None}
response = invoke_dos_db_handler_lambda(lambda_payload)
Expand Down
6 changes: 3 additions & 3 deletions test/integration/steps/functions/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,10 +80,10 @@ def get_expected_data(context: Context, changed_data_name: str) -> Any:
"""Get the previous data from the context."""
match changed_data_name.lower():
case "phone_no" | "phone" | "public_phone" | "publicphone":
changed_data = context.phone
changed_data = context.generator_data["publicphone"]
case "website" | "web":
changed_data = context.website
case "address":
changed_data = context.generator_data["web"]
case "address" | "address1":
changed_data = get_address_string(context)
case "postcode":
changed_data = context.change_event["Postcode"]
Expand Down
Loading
Loading