Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
634 commits
Select commit Hold shift + click to select a range
d1b60d2
add data migration script for new assessmentSubjectDayData collection
JackVCurtis Aug 17, 2023
7a8076a
skip importing of toc docs whose collection already exists
JackVCurtis Aug 22, 2023
4772e31
Merge pull request #373 from AMP-SCZ/355-consolidate-mongo-dbs
JackVCurtis Aug 22, 2023
4d128ac
Revert "Merge pull request #373 from AMP-SCZ/355-consolidate-mongo-dbs"
JackVCurtis Aug 22, 2023
cfc98a4
Revert "skip importing of toc docs whose collection already exists"
JackVCurtis Aug 22, 2023
ce1096c
Revert "add data migration script for new assessmentSubjectDayData co…
JackVCurtis Aug 22, 2023
c74da0b
Revert "355 consolidate mongo dbs"
JackVCurtis Aug 22, 2023
47d3595
Merge pull request #377 from AMP-SCZ/revert-373-355-consolidate-mongo…
JackVCurtis Aug 22, 2023
492cee6
also delete supervisord logs when restarting
tashrifbillah Aug 28, 2023
d8356cc
Admin Page (#359)
elmantis Aug 30, 2023
8798956
Merge branch 'pnl-devel' of github.com:AMP-SCZ/dpdash into pnl-devel
JackVCurtis Aug 31, 2023
482b801
prevent mongodb queries from being passed in reset_pw
JackVCurtis Sep 6, 2023
95b57c9
fix account update form
JackVCurtis Sep 6, 2023
8e2b824
sanitize user update inputs
JackVCurtis Sep 6, 2023
1ce6f43
Main Page (#390)
elmantis Sep 8, 2023
4c173f4
312 extract logic to helpermodel functions 1 (#352)
elmantis Sep 8, 2023
9aeafcb
Merge branch 'pnl-devel' of github.com:AMP-SCZ/dpdash into pnl-devel
JackVCurtis Sep 12, 2023
397e466
Login Page (#392)
elmantis Sep 12, 2023
c0bf488
Merge branch 'pnl-devel' of github.com:AMP-SCZ/dpdash into pnl-devel
JackVCurtis Sep 19, 2023
baad415
Merge pull request #388 from AMP-SCZ/patch_sanitize-authentication-in…
JackVCurtis Sep 19, 2023
eb2dfbc
Merge branch 'pnl-devel' of github.com:AMP-SCZ/dpdash into pnl-devel
JackVCurtis Sep 20, 2023
c567305
Send user object (#405)
elmantis Sep 20, 2023
eb565e2
Counts controller (#391)
elmantis Sep 20, 2023
dabcf24
Register Page (#394)
elmantis Sep 20, 2023
6f706f8
Reset Password Page (#395)
elmantis Sep 20, 2023
0325eaa
Updated New Chart PAge (#400)
elmantis Sep 20, 2023
7c71e5e
Added api routes for charts (#401)
elmantis Sep 20, 2023
828c9c0
Merge branch 'pnl-devel' of github.com:AMP-SCZ/dpdash into pnl-devel
JackVCurtis Sep 21, 2023
4b220dc
remove coroutines, rabbitmq, and respond to SIGINT/SIGTERM
JackVCurtis Sep 20, 2023
b3b5767
add production dockerfile
JackVCurtis Sep 20, 2023
84ee03d
connection to mongodb not using ssl in aws
JackVCurtis Sep 20, 2023
3ae1b75
remove errant console.log
JackVCurtis Sep 20, 2023
2db95b0
remove my local stuff from gitignore
JackVCurtis Sep 21, 2023
cf77035
User Account Page (#406)
elmantis Sep 21, 2023
b320187
die rabbitmq die
JackVCurtis Sep 21, 2023
e80d195
Merge pull request #403 from AMP-SCZ/aws-cloudformation-prototype
JackVCurtis Sep 21, 2023
6ecec88
restore Singularity recipe to the last working version:
tashrifbillah Sep 22, 2023
f4bf4b9
pesky javascript, sure reference whatever you want its undefined (#408)
JackVCurtis Sep 25, 2023
d8ff934
Restore api ingest endpoint, add authentication (#412)
JackVCurtis Sep 25, 2023
effcdb6
Fix resort on complete (#413)
JackVCurtis Sep 26, 2023
60c6ee9
Add flag (#414)
elmantis Sep 27, 2023
289507c
use dataDb for importing subject assessment data according to OG data…
JackVCurtis Sep 27, 2023
c18e8c2
Updated input validation (#416)
elmantis Sep 28, 2023
fbc0fb4
* clear more logs before restarting
tashrifbillah Sep 29, 2023
18038c2
Fixed alignment (#418)
elmantis Sep 29, 2023
1754680
Add Default configuration (#417)
elmantis Sep 29, 2023
04b3945
Removed code and some fixes (#420)
elmantis Oct 2, 2023
3b9e0dc
Optimized (#440)
elmantis Oct 11, 2023
7b057d9
421 Filter Charts By Site (#441)
elmantis Oct 13, 2023
8a30672
Add public flag to configurations (#443)
elmantis Oct 17, 2023
9dbc035
Hande Account Expiration (#444)
elmantis Oct 17, 2023
3a46955
fix project statement (#447)
JackVCurtis Oct 19, 2023
5fe10fb
424 add cdk for deployment (#446)
JackVCurtis Oct 20, 2023
fd9225e
424 add cdk for deployment (#448)
JackVCurtis Oct 20, 2023
fc53a9b
424 add cdk for deployment (#449)
JackVCurtis Oct 20, 2023
f50d287
424 add cdk for deployment (#450)
JackVCurtis Oct 20, 2023
a23b4c8
424 add cdk for deployment (#451)
JackVCurtis Oct 20, 2023
c95cba6
Update deploy_app.yaml to use appropriate AWS credentials version
JackVCurtis Oct 20, 2023
9bc9de8
Update deploy_app.yaml to have OIDC permissions
JackVCurtis Oct 20, 2023
c1afd84
Update deploy_app.yaml to remove old app references
JackVCurtis Oct 20, 2023
87fb603
add mongo lb cert and security group rule for dpdash to mongo (#452)
JackVCurtis Oct 23, 2023
68991b4
add minimal subject attributes (#453)
JackVCurtis Oct 23, 2023
ebeb660
fix connectivity and mongo uri (#455)
JackVCurtis Oct 24, 2023
ff33aa0
use checked value if it is a boolean of false (#456)
JackVCurtis Oct 25, 2023
d987dd6
Add classes and methods to send email (#457)
elmantis Oct 30, 2023
6446be5
Move to route53 (Includes email service) (#463)
JackVCurtis Nov 1, 2023
a2cba3a
Jvc/add image init workflow (#466)
JackVCurtis Nov 3, 2023
2a86405
correct bootstrap action title and fix weird line in deploy_infrastru…
JackVCurtis Nov 7, 2023
9665425
Hopefully the last of the email fixes (#470)
JackVCurtis Nov 8, 2023
fbeec7f
Jvc/fix email arn (#471)
JackVCurtis Nov 8, 2023
7bf98ce
remove jq-based edits to non-existent worker container (#483)
JackVCurtis Nov 20, 2023
2f6dc8d
add my email as admin email to test functionality (#484)
JackVCurtis Nov 20, 2023
e0663b2
add EMAIL_SENDER var to github action (#486)
JackVCurtis Nov 20, 2023
215f150
quick fix to make email templates available in prod (#488)
JackVCurtis Nov 21, 2023
d0bd9bc
use GA vars for EMAIL_SENDER and ADMIN_EMAIL (#490)
JackVCurtis Nov 22, 2023
55cb6d5
add missing dollar sign (#493)
JackVCurtis Nov 27, 2023
2141eda
Updated UI Designs (#492)
elmantis Nov 27, 2023
82ed923
Use a shared TableMenu (#494)
mikestone14 Nov 27, 2023
407e044
Config form pass (#491)
elmantis Nov 27, 2023
333aa73
438 create dashboard page (#496)
JackVCurtis Nov 28, 2023
d171738
Dashboard Page - Charts Table (#500)
elmantis Nov 30, 2023
03f0202
remove DEV_CERT_ARN (now in Rte53) and add EMAIL_SENDER and ADMIN_EMA…
JackVCurtis Dec 4, 2023
b3cdbdf
hosted zone exists, shouldn't be created (#505)
JackVCurtis Dec 4, 2023
2a983d0
Responsive desing (#502)
elmantis Dec 5, 2023
957a527
497 admin page quick pass (#503)
JackVCurtis Dec 5, 2023
e97cf8c
add env vars for region and account (#508)
JackVCurtis Dec 5, 2023
33b056b
fix name of devHostedZone to include Dev (#512)
JackVCurtis Dec 5, 2023
c851b0d
use devCert when created via cdk code (#513)
JackVCurtis Dec 5, 2023
71058b1
Jvc/fix cert reference (#514)
JackVCurtis Dec 5, 2023
7031169
use the root domain of BASE_DOMAIN as mailfrom domain (#515)
JackVCurtis Dec 6, 2023
3ed9dd8
Fix Participants Links (#517)
elmantis Dec 11, 2023
57114ad
Root domain should be used for hosted zone, should fix the email iden…
JackVCurtis Dec 11, 2023
00fd270
last commit was incorrect. This approach was tested in Gnar AWS and w…
JackVCurtis Dec 12, 2023
464de45
Fix mongo build (#526)
JackVCurtis Dec 12, 2023
ac7bd0f
pulll mongo image before tagging (#527)
JackVCurtis Dec 12, 2023
7cd8a21
Verify user (#509)
elmantis Dec 14, 2023
5047978
Ensure Dependencies (#518)
elmantis Dec 14, 2023
b4e770c
Grid (#510)
elmantis Dec 20, 2023
dea76b9
Change DpDash (#531)
elmantis Dec 20, 2023
bf72454
Chart Fixes (#529)
elmantis Dec 21, 2023
640282c
* Change text according to sync date (#554)
elmantis Dec 21, 2023
8b2b028
add default admin creation on startup if no admin is present (#553)
JackVCurtis Dec 21, 2023
e370969
check that an admin with a set password exists when checking admin pr…
JackVCurtis Dec 22, 2023
ec06431
add workflow_dispatch hook (#556)
JackVCurtis Dec 22, 2023
86728a2
this will test whether the permissions are different in the working e…
JackVCurtis Dec 27, 2023
c5951b8
add a github action to log the cloudformation template (#559)
JackVCurtis Dec 27, 2023
df384fd
Owner image (#530)
elmantis Dec 27, 2023
a29e596
Favorite Charts (#557)
elmantis Dec 27, 2023
ce0dde8
Search Charts (#560)
elmantis Dec 29, 2023
9c81673
Filter By studies and status (#561)
elmantis Jan 9, 2024
e2d9632
Input validation (#563)
elmantis Jan 10, 2024
ff5af89
Added route security (#564)
elmantis Jan 10, 2024
6211751
Add status columns to table (#566)
elmantis Jan 10, 2024
e2174a5
ensure admin fix (#567)
elmantis Jan 10, 2024
d6ba169
Jvc/scale up aws resources (#572)
JackVCurtis Jan 11, 2024
122b69d
Fix hasAdmin script (#571)
elmantis Jan 15, 2024
89a1df6
Sort Tables (#573)
elmantis Jan 15, 2024
6a45f59
Staging Fixes (#574)
elmantis Jan 16, 2024
6730c9a
set SameSite: Strict policy for session cookie. As we are web-only th…
JackVCurtis Jan 16, 2024
2d7eca5
Fix logout (#579)
elmantis Jan 17, 2024
44c1ffc
Initialize default config (#583)
elmantis Jan 17, 2024
b801855
rework user serialization in session, persist sessions across restart…
JackVCurtis Jan 17, 2024
536ae03
Read default config (#585)
elmantis Jan 18, 2024
4a3faa8
Role Selection (#584)
elmantis Jan 18, 2024
b2a424e
Edit Chart Target values (#589)
elmantis Jan 19, 2024
f523781
Add Visibility button to configuration (#590)
elmantis Jan 19, 2024
33f0562
Remove Help Link (#591)
elmantis Jan 22, 2024
cc30213
export as csv (#596)
elmantis Jan 22, 2024
3208363
Configuration Upload (#597)
elmantis Jan 23, 2024
7f1d290
View Chart styling (#598)
elmantis Jan 23, 2024
6eb9b14
Responsve charts (#599)
elmantis Jan 23, 2024
16f11d5
Upgrade mongo version (#603)
elmantis Jan 29, 2024
c51dce3
Days in study (#600)
elmantis Jan 29, 2024
4c1c504
Upgrade node version (#602)
elmantis Jan 29, 2024
620f222
Fix metadata import (#605)
elmantis Jan 30, 2024
491af9a
Fix filters (#606)
elmantis Jan 31, 2024
8adbf89
Route Email to Admin page (#612)
elmantis Feb 1, 2024
c8a824c
sort by synced date (#614)
elmantis Feb 5, 2024
ae4340a
Prop name (#611)
elmantis Feb 5, 2024
61bce40
Fix empty user accounts (#609)
elmantis Feb 5, 2024
57ee659
Data migration (#632)
elmantis Feb 23, 2024
7a63d5e
add IAM access to mongodb password (#636)
JackVCurtis Feb 26, 2024
1350de2
fix secret ARN (#637)
JackVCurtis Feb 26, 2024
60af0fe
Jvc/fix secret arn (#638)
JackVCurtis Feb 26, 2024
8f92944
Db connection fix (#639)
JackVCurtis Feb 27, 2024
c7917bb
use appropriate tls settings for DocumentDB (#640)
JackVCurtis Feb 27, 2024
492d6c2
remove replicaSet params (#641)
JackVCurtis Feb 27, 2024
8a20881
that was dumb (#642)
JackVCurtis Feb 27, 2024
27ca647
resend the password reset email if the password has not been set on b…
JackVCurtis Feb 28, 2024
666c135
fix variable name conflict (#645)
JackVCurtis Feb 28, 2024
3e63f78
fix undefined reset key (#646)
JackVCurtis Feb 28, 2024
74821bb
missing await (#647)
JackVCurtis Feb 28, 2024
7de65c1
replace $dateDiff operator (#652)
elmantis Feb 29, 2024
8c72e1c
Fix set operator (#653)
elmantis Feb 29, 2024
22c1cc0
Update query (#651)
elmantis Feb 29, 2024
7c3bfe4
Additional compatibility updates (#655)
elmantis Feb 29, 2024
2b6eac4
Site Metadata (#656)
elmantis Feb 29, 2024
169be40
metadata insert (#657)
elmantis Feb 29, 2024
921c351
remove dependency on facets (#659)
JackVCurtis Mar 4, 2024
553f9a8
Requested sites (#664)
elmantis Mar 4, 2024
8ad96b5
fix matrix size when zooming out screen and downloading to png (#669)
JackVCurtis Mar 6, 2024
9bf129e
Update Chart Page UI (#643)
elmantis Mar 6, 2024
0d4ad50
665 handle null consent date (#673)
JackVCurtis Mar 12, 2024
c0e6d50
remove 'bottom' x axis that was hovering in middle of graph (#674)
JackVCurtis Mar 12, 2024
5a28d96
remove user icon from charts list (#677)
JackVCurtis Mar 12, 2024
4ff90cb
use display name instead of uid for configuration owner (#678)
JackVCurtis Mar 12, 2024
7637ac6
675 display selected filters (#681)
JackVCurtis Mar 14, 2024
115ae8a
add back multiplier to dropdown checkbox height, apparently it applie…
JackVCurtis Mar 14, 2024
598c6af
cache daysInStudy and adjust queries for change (#676)
JackVCurtis Mar 14, 2024
0e16605
add buttons to clear filters/select all filters (#685)
JackVCurtis Mar 14, 2024
2c96297
Chart Page UI Part II (#683)
elmantis Mar 14, 2024
6df3955
add endpoint to delete assessmentDayData (already exists for metadata…
JackVCurtis Mar 15, 2024
ad60a60
support study-level matrix route when subject is unspecified (#687)
JackVCurtis Mar 18, 2024
c3f51b4
Stack Filters Vertically (#696)
elmantis Mar 20, 2024
4e0f623
change cdk code to reflect final prod architecture, add prod github a…
JackVCurtis Mar 21, 2024
dd38dcb
:`# This is a combination of 2 commits. (#703)
elmantis Mar 21, 2024
3ba700f
Totals column (#708)
elmantis Mar 22, 2024
614f2db
default to date of creation (#704)
elmantis Mar 22, 2024
4de17f2
Add hover activity over Study code in the Participants Table (#679)
dheshanm Mar 25, 2024
e780369
Jvc/prod launch tweaks (#709)
JackVCurtis Mar 26, 2024
cfe112a
use staging vars for bootstrap and template display (#710)
JackVCurtis Mar 26, 2024
38ef7a2
add action to create repositories (#711)
JackVCurtis Mar 26, 2024
d34b9d2
Graph Table (#695)
elmantis Mar 27, 2024
7a9e6ce
Bar size (#715)
elmantis Mar 27, 2024
d433ed7
add user to dependency array for re-rendering graph (#714)
JackVCurtis Mar 28, 2024
24f12d4
622 Update the chart sharing to use a modal (#697)
JackVCurtis Mar 29, 2024
6f5e587
Investigate bar charts that don't reach 100% (#716)
elmantis Mar 29, 2024
160faff
Add short code to graph table (#717)
elmantis Mar 29, 2024
32550c7
Configure prettier & eslint (#719)
mikestone14 Apr 1, 2024
ec87af9
add network filter that limits available sites (#722)
JackVCurtis Apr 5, 2024
c78ad2c
Remove explicit width from filter inputs (#724)
mikestone14 Apr 5, 2024
de7d0cd
Weird name display in configurations table (#721)
elmantis Apr 5, 2024
c9babd1
add bash script to simplify manual staging deployment (#727)
JackVCurtis Apr 10, 2024
27f64dd
Assessment Collection (#726)
elmantis Apr 10, 2024
2505f82
Change column name (#729)
elmantis Apr 12, 2024
96288fb
Totals row last (#735)
elmantis Apr 16, 2024
50ddd2e
Predictive Search (#732)
elmantis Apr 16, 2024
3284163
Add admin check (#730)
elmantis Apr 16, 2024
ca6d970
Add study page (#718)
elmantis Apr 17, 2024
a041b6e
Fix crash from tooltip (#736)
elmantis Apr 17, 2024
70c64ad
Saving a Matrix view saves an empty PNG (#737)
elmantis Apr 18, 2024
838d766
Filters (#738)
elmantis Apr 26, 2024
6182a84
Allow users to save configurations as draft (#739)
elmantis May 9, 2024
49dad13
Recruitment status filters (#743)
elmantis May 13, 2024
cfc3845
Funnel to error logger (#744)
elmantis May 17, 2024
1a354d1
Configurations Form (#746)
elmantis May 23, 2024
30ae24e
Bug Fix: Matrix Configurations (#747)
elmantis May 23, 2024
8079f14
Additional consoles (#748)
elmantis May 31, 2024
60f0ffa
Insertone to upsert (#750)
elmantis Jun 4, 2024
617a64d
Learn more button navigate (#752)
elmantis Jun 6, 2024
0c0f680
Change update to upsert (#753)
elmantis Jun 6, 2024
2501664
fix import (#754)
elmantis Jun 7, 2024
7ed95be
fix ip dep (#755)
elmantis Jun 13, 2024
ec22ffe
Fix recruitment filters (#756)
elmantis Jul 8, 2024
1edd816
Assessment name update (#757)
elmantis Jul 10, 2024
5986072
Configurable filters and on-prem deployment (#763)
JackVCurtis Apr 22, 2025
6fbb71c
Add nginx proxy manager to docker compose.
ngmaloney May 28, 2025
b7f67c7
update node and log masked mongo uri (#767)
JackVCurtis Jul 3, 2025
ac5795b
hotfix log bug that is preventing startup
JackVCurtis Jul 7, 2025
924921d
prerequisite, SMTP_HOST, make-cert.sh
tashrifbillah Aug 13, 2025
33ff54c
minor
tashrifbillah Aug 13, 2025
8638bda
* two screenshots for Nginx proxy
tashrifbillah Aug 13, 2025
2ac7fa0
alignment change
tashrifbillah Aug 13, 2025
5ab84c6
Merge pull request #768 from AMP-SCZ/patch-on-prem-instruction
tashrifbillah Aug 18, 2025
b85f9e7
include note on importing charts, configs, users
tashrifbillah Aug 26, 2025
e9f03f8
Fix back icon path
mikestone14 Sep 9, 2025
bf917c5
Format fixes
mikestone14 Sep 9, 2025
6736dec
attach the SSL certificate
tashrifbillah Sep 30, 2025
78ee14c
MGB's mail relay server is not recognized by nodemailer.
tashrifbillah Sep 30, 2025
756ee9f
include SMTP_REJECT_UNAUTHORIZED option
tashrifbillah Sep 30, 2025
2be5062
use ports instead of expose
tashrifbillah Sep 30, 2025
a986af5
SMTP_REJECT_UNAUTHORIZED comparison logic needed fixing
tashrifbillah Sep 30, 2025
bd5a343
clarify comment
tashrifbillah Sep 30, 2025
ae5b086
mongosh method of connecting to mongodb
tashrifbillah Oct 14, 2025
f66741c
remove Excluded: 0
tashrifbillah Oct 16, 2025
2c57420
typo
tashrifbillah Oct 17, 2025
e45fb81
Merge pull request #772 from AMP-SCZ/patch-1
tashrifbillah Oct 27, 2025
e0c8211
* make one VM and one worksation sections
tashrifbillah Oct 27, 2025
114dacd
use I, II, etc.
tashrifbillah Oct 27, 2025
13c35d5
use i, iii, etc.
tashrifbillah Oct 27, 2025
2cc318f
instructions for deploying DPdash at an MGB VM
tashrifbillah Oct 28, 2025
35bc1e9
update screenshot
tashrifbillah Oct 28, 2025
9e84bcb
attach SSL certificate to your host
tashrifbillah Oct 28, 2025
a413b20
instructions for opening up 81/tcp port
tashrifbillah Oct 28, 2025
ee12133
minor
tashrifbillah Oct 28, 2025
9c5a43a
typo
tashrifbillah Oct 28, 2025
589c963
typo
tashrifbillah Oct 28, 2025
5113659
add dpdash.service file
tashrifbillah Oct 28, 2025
b387230
Merge branch 'pnl-devel' into patch-1
tashrifbillah Oct 28, 2025
1b062d6
Merge pull request #774 from AMP-SCZ/patch-1
tashrifbillah Oct 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.vscode
.github
.node_modules
singularity
16 changes: 16 additions & 0 deletions .env.development.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# SERVER_PORT=8000
# MONGODB_PORT=27017
# MONGODB_ADMIN_USER=dpdash
# MONGODB_ADMIN_PASSWORD=Get the password from whoever gave you the backup.tar for mongodb. Should match the .env file
# MONGODB_URI=mongodb://${MONGODB_ADMIN_USER}:${MONGODB_ADMIN_PASSWORD}@mongodb:27017/dpdmongo?authSource=admin
# SESSION_SECRET=This can be any secure value

# RABBIT_PORT=5672
# RABBIT_HOST=app-tier
# RABBIT_USERNAME=dpdash
# RABBIT_PASSWORD=Use any secure value, but make sure it's the same in the .env file
# RABBIT_ADDRESS=amqp://${RABBIT_USERNAME}:${RABBIT_PASSWORD}@app-tier:5672
# RABBIT_PUBLISHER_QUEUE=dpdash
# RABBIT_CONSUMER_QUEUE=dpdashResponse

# LOG_FILE_PATH=logs/app.log
20 changes: 20 additions & 0 deletions .env.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
MONGODB_URI=mongodb://mongodb:27017/dpdmongo?authSource=admin
SESSION_SECRET=foooo
SMTP_HOST=your.smtpserver.com
SMTP_PORT=587
SMTP_USER=yoursmtpuser
SMTP_PASS=yoursmtppassword
SMTP_REJECT_UNAUTHORIZED=false
ADMIN_EMAIL=adminaccountemail@example.com
EMAIL_SENDER=automatedemailfromaddress@example.com
HOME_URL=your.domain.com
IMPORT_API_USERS=api-user-1,api-user-2
IMPORT_API_KEYS=api-key-1,api-key-2

# For local development with smtp4dev
# SMTP_HOST=smtp4dev
# SMTP_PORT=2525
# SMTP_USER=
# SMTP_PASS=
# SMTP4DEV_UI_PORT=8080
# SMTP4DEV_SMTP_PORT=2525
5 changes: 5 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
dist/
node_modules/
cdk_lib/
public/
ts_bin/
65 changes: 65 additions & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
{
"extends": [
"eslint:recommended",
"plugin:react/recommended",
"prettier",
"universe/web",
"universe/node",
],
"parser": "@babel/eslint-parser",
"env": {
"browser": true,
"node": true,
},
"parserOptions": {
"requireConfigFile": false,
"babelOptions": {
"presets": ["@babel/preset-react"],
},
"ecmaFeatures": {
"jsx": true,
},
"ecmaVersion": 15,
"sourceType": "module",
"parserOptions": {
"project": "./tsconfig.json",
},
},
"plugins": [
"react",
"jest",
"testing-library",
"no-only-tests",
"sort-keys-fix",
"prettier",
"promise",
],
"rules": {
"react/prop-types": "off",
"no-unused-vars": [
"error",
{ "varsIgnorePattern": "^_", "argsIgnorePattern": "^_" },
],
"import/order": [
"error",
{
"alphabetize": {
"caseInsensitive": true,
"order": "asc",
},
"groups": ["builtin", "external", "internal"],
"newlines-between": "always",
"pathGroups": [
{
"group": "external",
"pattern": "react",
"position": "before",
},
],
"pathGroupsExcludedImportTypes": ["react"],
},
],
"no-only-tests/no-only-tests": "error",
"react/react-in-jsx-scope": "off",
},
}
34 changes: 34 additions & 0 deletions .github/workflows/bootstrap_cdk.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Bootstrap CDK
on:
workflow_dispatch:
jobs:
deploy:
name: Deploy with AWS CDK
runs-on: ubuntu-latest
# These permissions are needed to interact with GitHub's OIDC Token endpoint.
permissions:
id-token: write
contents: read
if: ${{ startsWith(vars.ROLE_ARN, 'arn:aws:iam') }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Configure AWS credentials from Test account
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ vars.ROLE_ARN }}
aws-region: us-east-1
- name: Install dependencies
run: npm ci --legacy-peer-deps
- name: Bootstrap CDK
env:
CDK_DEFAULT_ACCOUNT: ${{ vars.CDK_DEFAULT_ACCOUNT }}
CDK_DEFAULT_REGION: ${{ vars.CDK_DEFAULT_REGION }}
CERT_ARN: ${{ vars.CERT_ARN_STAGING }}
SES_IDENTITY_ARN: ${{ vars.SES_IDENTITY_ARN }}
EMAIL_SENDER: ${{ vars.EMAIL_SENDER }}
ADMIN_EMAIL: ${{ vars.ADMIN_EMAIL }}
BASE_DOMAIN: ${{ vars.BASE_DOMAIN_STAGING }}
APP_MEMORY: ${{ vars.APP_MEMORY || '2048' }}
APP_CPU: ${{ vars.APP_CPU || '1024' }}
run: npm run bootstrap -- --require-approval never
45 changes: 45 additions & 0 deletions .github/workflows/build_images.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Build Images
on:
workflow_dispatch:
jobs:
build-and-push:
name: Build and Push Docker Dependencies
runs-on: ubuntu-latest
# These permissions are needed to interact with GitHub's OIDC Token endpoint.
permissions:
id-token: write
contents: read
if: ${{ startsWith(vars.ROLE_ARN, 'arn:aws:iam') }}
steps:
- name: checkout
uses: actions/checkout@v3

- name: configure aws credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ vars.ROLE_ARN }}
role-session-name: dpdash-ghactions-session
aws-region: us-east-1

- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v1

- name: Build, tag, and push dpdash docker image to Amazon ECR
env:
REGISTRY: ${{ steps.login-ecr.outputs.registry }}
REPOSITORY: dpdash
IMAGE_TAG: latest
run: |
docker build -t $REGISTRY/$REPOSITORY:$IMAGE_TAG .
docker push $REGISTRY/$REPOSITORY:$IMAGE_TAG

- name: Build, tag, and push mongo docker image to Amazon ECR
env:
REGISTRY: ${{ steps.login-ecr.outputs.registry }}
REPOSITORY: mongo
IMAGE_TAG: '5.0.21'
run: |
docker pull $REPOSITORY:$IMAGE_TAG
docker tag $REPOSITORY:$IMAGE_TAG $REGISTRY/$REPOSITORY:$IMAGE_TAG
docker push $REGISTRY/$REPOSITORY:$IMAGE_TAG
38 changes: 38 additions & 0 deletions .github/workflows/create_repositories.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Create Repositories
on:
workflow_dispatch:
jobs:
create-repositories:
name: Create Repositories for Docker Dependencies
runs-on: ubuntu-latest
# These permissions are needed to interact with GitHub's OIDC Token endpoint.
permissions:
id-token: write
contents: read
if: ${{ startsWith(vars.ROLE_ARN, 'arn:aws:iam') }}
steps:
- name: checkout
uses: actions/checkout@v3

- name: configure aws credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ vars.ROLE_ARN }}
role-session-name: dpdash-ghactions-session
aws-region: us-east-1

- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v1

- name: Create dpdash docker repository in Amazon ECR
env:
REGISTRY: ${{ steps.login-ecr.outputs.registry }}
REPOSITORY: dpdash
run: aws ecr create-repository --repository-name ${REPOSITORY}

- name: Create mongo docker repository in Amazon ECR
env:
REGISTRY: ${{ steps.login-ecr.outputs.registry }}
REPOSITORY: mongo
run: aws ecr create-repository --repository-name ${REPOSITORY}
76 changes: 76 additions & 0 deletions .github/workflows/deploy_app_prod.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: Deploy App Production
on:
workflow_dispatch:
push:
branches:
- master
jobs:
test:
name: Test on Node ${{ matrix.node }} and ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
node: ['latest']
os: [ubuntu-latest]
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Use Node ${{ matrix.node }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- name: Install deps
run: npm ci
- name: Test
run: npm run test
build-and-deploy:
name: Build and Deploy Docker Image
needs: test
runs-on: ubuntu-latest
# These permissions are needed to interact with GitHub's OIDC Token endpoint.
permissions:
id-token: write
contents: read
if: ${{ startsWith(vars.ROLE_ARN, 'arn:aws:iam') }}
steps:
- name: checkout
uses: actions/checkout@v3

- name: configure aws credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ vars.ROLE_ARN }}
role-session-name: dpdash-ghactions-session
aws-region: us-east-1

- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v1

- name: Build, tag, and push docker image to Amazon ECR
env:
REGISTRY: ${{ steps.login-ecr.outputs.registry }}
REPOSITORY: dpdash
IMAGE_TAG: ${{ github.sha }}
run: |
docker build -t $REGISTRY/$REPOSITORY:$IMAGE_TAG .
docker push $REGISTRY/$REPOSITORY:$IMAGE_TAG

- name: Update ECS Task
env:
REGISTRY: ${{ steps.login-ecr.outputs.registry }}
REPOSITORY: dpdash
IMAGE_TAG: ${{ github.sha }}
CLUSTER_NAME: dpDashCluster
TASK_NAME: dpDashTaskDefinition
SERVICE_NAME: dpDashService
run:
| # Grab JSON of current DP Dash task definition, replace container image field with the new container and fix up the JSON, then upload the task and update the service with the new task
export ECR_IMAGE="$REGISTRY/$REPOSITORY:$IMAGE_TAG"
export TASK_DEFINITION=$(aws ecs describe-task-definition --task-definition "$TASK_NAME" --region="us-east-1")
export NEW_TASK_DEFINITION=$(echo $TASK_DEFINITION | jq --arg IMAGE "$ECR_IMAGE" '.taskDefinition | .containerDefinitions[0].image = $IMAGE | del(.taskDefinitionArn) | del(.revision) | del(.status) | del(.requiresAttributes) | del(.compatibilities) | del(.registeredAt) | del(.registeredBy)')
export NEW_REVISION=$(aws ecs register-task-definition --region "us-east-1" --cli-input-json "${NEW_TASK_DEFINITION}")
export NEW_REVISION_DATA=$(echo $NEW_REVISION | jq '.taskDefinition.revision')
export NEW_SERVICE=$(aws ecs update-service --cluster "$CLUSTER_NAME" --service "$SERVICE_NAME" --task-definition "$TASK_NAME" --force-new-deployment)
echo "done"
echo "DP Dash, Revision: ${NEW_REVISION_DATA}, Image: $REGISTRY/$REPOSITORY:$IMAGE_TAG"
76 changes: 76 additions & 0 deletions .github/workflows/deploy_app_staging.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: Deploy App Staging
on:
workflow_dispatch:
push:
branches:
- pnl-devel
jobs:
test:
name: Test on Node ${{ matrix.node }} and ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
node: ['latest']
os: [ubuntu-latest]
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Use Node ${{ matrix.node }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- name: Install deps
run: npm ci
- name: Test
run: npm run test
build-and-deploy:
name: Build and Deploy Docker Image
needs: test
runs-on: ubuntu-latest
# These permissions are needed to interact with GitHub's OIDC Token endpoint.
permissions:
id-token: write
contents: read
if: ${{ startsWith(vars.ROLE_ARN, 'arn:aws:iam') }}
steps:
- name: checkout
uses: actions/checkout@v3

- name: configure aws credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ vars.ROLE_ARN }}
role-session-name: dpdash-ghactions-session
aws-region: us-east-1

- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v1

- name: Build, tag, and push docker image to Amazon ECR
env:
REGISTRY: ${{ steps.login-ecr.outputs.registry }}
REPOSITORY: dpdash
IMAGE_TAG: ${{ github.sha }}
run: |
docker build -t $REGISTRY/$REPOSITORY:$IMAGE_TAG .
docker push $REGISTRY/$REPOSITORY:$IMAGE_TAG

- name: Update ECS Task
env:
REGISTRY: ${{ steps.login-ecr.outputs.registry }}
REPOSITORY: dpdash
IMAGE_TAG: ${{ github.sha }}
CLUSTER_NAME: dpDashDevCluster
TASK_NAME: dpDashDevTaskDefinition
SERVICE_NAME: dpDashDevService
run:
| # Grab JSON of current DP Dash task definition, replace container image field with the new container and fix up the JSON, then upload the task and update the service with the new task
export ECR_IMAGE="$REGISTRY/$REPOSITORY:$IMAGE_TAG"
export TASK_DEFINITION=$(aws ecs describe-task-definition --task-definition "$TASK_NAME" --region="us-east-1")
export NEW_TASK_DEFINITION=$(echo $TASK_DEFINITION | jq --arg IMAGE "$ECR_IMAGE" '.taskDefinition | .containerDefinitions[0].image = $IMAGE | del(.taskDefinitionArn) | del(.revision) | del(.status) | del(.requiresAttributes) | del(.compatibilities) | del(.registeredAt) | del(.registeredBy)')
export NEW_REVISION=$(aws ecs register-task-definition --region "us-east-1" --cli-input-json "${NEW_TASK_DEFINITION}")
export NEW_REVISION_DATA=$(echo $NEW_REVISION | jq '.taskDefinition.revision')
export NEW_SERVICE=$(aws ecs update-service --cluster "$CLUSTER_NAME" --service "$SERVICE_NAME" --task-definition "$TASK_NAME" --force-new-deployment)
echo "done"
echo "DP Dash, Revision: ${NEW_REVISION_DATA}, Image: $REGISTRY/$REPOSITORY:$IMAGE_TAG"
Loading