Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1110 commits
Select commit Hold shift + click to select a range
2cd3015
AMP-31116 : Issue-Gis has issues Project list and funding orgs
brianbrix May 13, 2026
c27724d
AMP-31117:Issue-Indicator Manager- cannot add valid base revised date
brianbrix May 13, 2026
c8f6c23
AMp-31115: Downloading GIS file is corrupted
brianbrix May 14, 2026
a22033e
AMp-31115: Downloading GIS file is corrupted
brianbrix May 14, 2026
2a0531e
AMp-31115: Downloading GIS file is corrupted
brianbrix May 14, 2026
f9b99e9
AMP-31124: Issue-not possible to setup M&E fields in activity form
brianbrix May 14, 2026
4bcda8a
AMP-31124: Issue-not possible to setup M&E fields in activity form
brianbrix May 14, 2026
730cf5a
AMP-31124: Issue-not possible to setup M&E fields in activity form
brianbrix May 14, 2026
bda76ba
Merge pull request #4473 from devgateway/fix/AMP-31124/ME-items-fm-issue
jdeanquin-dg May 14, 2026
64d5822
Merge pull request #4472 from devgateway/fix/AMP-31115/Issue--downloa…
jdeanquin-dg May 14, 2026
3e081d5
Merge pull request #4471 from devgateway/fix/AMP-31117/Issue-Indicato…
jdeanquin-dg May 14, 2026
652fd30
Merge pull request #4470 from devgateway/fix/AMP-31116/Issues-in-GIS
jdeanquin-dg May 14, 2026
ea3b2a9
Merge pull request #4469 from devgateway/fix/AMP-31113/issue--view-ne…
jdeanquin-dg May 14, 2026
7594242
Merge pull request #4468 from devgateway/fix/AMP-31114/Issue--advance…
jdeanquin-dg May 14, 2026
b363dcd
AMP-31110: issues in admin
brianbrix May 17, 2026
251e303
AMP-31110: issues in admin
brianbrix May 17, 2026
a47852d
AMP-31119: Issue-Disaggregation manager- can add options witout any v…
brianbrix May 18, 2026
bea8d9d
AMP-31123:Issue-Share M&E dashboard- open link leads to login page
brianbrix May 18, 2026
72dbbc0
AMP-31121:Issue-Outcome manager export needs to be changed
brianbrix May 18, 2026
4d580c0
AMP-31128: Contact information is not saved in activity
brianbrix May 18, 2026
ac33651
AMP-31128: Contact information is not saved in activity
brianbrix May 18, 2026
2227887
AMP-31127: Admin feature manager not shows enabled items. Also disagg…
brianbrix May 19, 2026
03f6d82
AMP-31127: Admin feature manager not shows enabled items. Also disagg…
brianbrix May 19, 2026
917ebc5
AMP-31118: Issue-Indicator Manager-export CSV not works
brianbrix May 19, 2026
482ac46
Merge branch 'develop' into Indicator-manager-bug-resolution
brianbrix May 19, 2026
4157bb0
Indicator manager disable regular values when disaggregation is present
brianbrix May 19, 2026
bd946e0
Indicator manager disable regular values when disaggregation is present
brianbrix May 19, 2026
be44a27
Indicator manager disable regular values when disaggregation is present
brianbrix May 19, 2026
68abc37
Merge pull request #4463 from devgateway/Indicator-manager-bug-resolu…
jdeanquin-dg May 19, 2026
44ea41e
Merge pull request #4482 from devgateway/fix/AMP-31118/Issue-Indicato…
jdeanquin-dg May 19, 2026
4311d62
Merge branch 'develop' into fix/AMP-31127/Admin-feature-manager-not-s…
brianbrix May 19, 2026
a23c650
Merge pull request #4481 from devgateway/fix/AMP-31127/Admin-feature-…
jdeanquin-dg May 19, 2026
0040af0
Merge pull request #4479 from devgateway/fix/AMP-31121/Issue-Outcome-…
jdeanquin-dg May 19, 2026
ac190ad
Merge pull request #4477 from devgateway/fix/AMP-31119/Disaggregation…
jdeanquin-dg May 19, 2026
92df9b5
AMP-31112: issue- compare versions of activity leads to error
brianbrix May 21, 2026
ed106e3
AMP-31112: issue- compare versions of activity leads to error
brianbrix May 21, 2026
a1ea3bd
Merge pull request #4483 from devgateway/fix/AMP-31112/compare-versio…
jdeanquin-dg May 27, 2026
330f670
AMP-31133: Add missing ME fields to API and preview
brianbrix May 27, 2026
a78815a
Merge pull request #4467 from devgateway/fix/AMP-31111/Error-when-cre…
jdeanquin-dg May 28, 2026
df75274
Merge pull request #4485 from devgateway/fix/AMP-31133/Add-missing-ME…
jdeanquin-dg May 28, 2026
c6d035e
AMp-31123: Move widnow.replace to useEffect
brianbrix May 28, 2026
279368e
AMp-31110: Minor cleanup
brianbrix May 28, 2026
86b7d86
Merge pull request #4476 from devgateway/fix/AMP-31110/issue--issues-…
jdeanquin-dg May 28, 2026
4874eac
AMP-31135: Issue with Dissagregated values in activity form
brianbrix May 31, 2026
d973c3c
AMP-31135: Issue with Dissagregated values in activity form
brianbrix Jun 1, 2026
90c21ea
Move the auth-redirect useEffect above any conditional returns
brianbrix Jun 2, 2026
ce4f104
Avoid blank page on error
brianbrix Jun 2, 2026
806446b
AMP-31112: Version history shows only current version
brianbrix Jun 2, 2026
d600cbe
AMP-31112: Error when saving activity
brianbrix Jun 2, 2026
cb4ac6d
AMP-31112: Error when saving activity
brianbrix Jun 2, 2026
5342c58
AMP-31128: Resolve copilot commengs
brianbrix Jun 2, 2026
1ce7a50
AMP-31128: Resolve copilot commengs
brianbrix Jun 2, 2026
cb239e4
AMP-31134: Issue- disaggregated values change order of parent and child
brianbrix May 29, 2026
088571f
AMP-31134: Issue- disaggregated values change order of parent and child
brianbrix May 29, 2026
4b09d54
AMP-31134:Issue- disaggregated values change order of parent and child
brianbrix Jun 3, 2026
e7fec7b
AMP-31134:Resolve copilot review comments
brianbrix Jun 3, 2026
e109f68
AMP-31134:Resolve copilot review comments
brianbrix Jun 3, 2026
3b9d24c
AMP-31134:Resolve copilot review comments
brianbrix Jun 3, 2026
0e0af98
Merge pull request #4489 from devgateway/fix/AMP-31134/Issue--disaggr…
jdeanquin-dg Jun 4, 2026
e6e2fc0
Merge pull request #4478 from devgateway/fix/AMP-31123/Issue-Share-M&…
jdeanquin-dg Jun 4, 2026
958d74e
Merge pull request #4480 from devgateway/fix/AMP-31128/Contact-inform…
jdeanquin-dg Jun 4, 2026
2593292
AMP-31141 : Re-enable and redesign CSRF protection for state-changing…
brianbrix Jun 15, 2026
b604a60
AMP-31141 : Failing maven build
brianbrix Jun 15, 2026
afcafc4
AMP-31141 : Re-enable and redesign CSRF protection for state-changing…
brianbrix Jun 15, 2026
c3f64d8
AMP-31141 : Re-enable and redesign CSRF protection for state-changing…
brianbrix Jun 15, 2026
00da6aa
AMP-31141 : Re-enable and redesign CSRF protection for state-changing…
brianbrix Jun 16, 2026
5ecea45
AMP-31141 : Re-enable and redesign CSRF protection for state-changing…
brianbrix Jun 16, 2026
97bb146
AMP-31141 : Activity form not saving due to CSRF
brianbrix Jun 16, 2026
0a70668
AMP-31141 : Activity form not saving due to CSRF
brianbrix Jun 16, 2026
0103f69
AMP-31140 : CSRF protection on REST endpoints
brianbrix Jun 16, 2026
e465941
AMP-31140 : CSRF protection on REST endpoints
brianbrix Jun 16, 2026
e84e47d
AMP-31142 : Modernize authentication handling
brianbrix Jun 16, 2026
e5fa1c7
AMP-31143 : Restore browser hardening headers and document cookie and…
brianbrix Jun 16, 2026
14d4a62
AMP-31141 : Failing to get resources
brianbrix Jun 16, 2026
a21da26
AMP-31141 : Failing to get resources
brianbrix Jun 16, 2026
5b21037
AMP-31144 : Add dependency and CVE scanning for OWASP audit
brianbrix Jun 16, 2026
ffe9285
AMP-31144 : Add dependency and CVE scanning for OWASP audit
brianbrix Jun 16, 2026
d57eff9
AMP-31144 : Add dependency and CVE scanning for OWASP audit
brianbrix Jun 16, 2026
478e2db
AMP-31144 : Add dependency and CVE scanning for OWASP audit
brianbrix Jun 16, 2026
b1f8e11
AMP-31144 : Add dependency and CVE scanning for OWASP audit
brianbrix Jun 16, 2026
2689305
AMP-31144 : Add dependency and CVE scanning for OWASP audit
brianbrix Jun 16, 2026
af575e2
AMP-31144 : Add dependency and CVE scanning for OWASP audit
brianbrix Jun 17, 2026
edab738
AMP-31144 : Add dependency and CVE scanning for OWASP audit
brianbrix Jun 17, 2026
ab2da48
AMP-31144 : Add dependency and CVE scanning for OWASP audit
brianbrix Jun 17, 2026
93240ad
Merge pull request #4487 from devgateway/fix/AMP-31135/Issue-with-Dis…
jdeanquin-dg Jun 17, 2026
08878d0
Merge pull request #4488 from devgateway/fix/AMP-31112/Version-histor…
jdeanquin-dg Jun 17, 2026
84b091c
Fix failing deployment
brianbrix Jun 17, 2026
0de20d5
Merge pull request #4492 from devgateway/fix/develop/failing-deployment
jdeanquin-dg Jun 17, 2026
a43afce
Fix failing deployment
brianbrix Jun 17, 2026
9c4fe3b
Merge pull request #4493 from devgateway/fix/develop/failing-deployment
jdeanquin-dg Jun 17, 2026
6e6b838
Fix failing deployment
brianbrix Jun 17, 2026
0b1a0f1
Merge pull request #4494 from devgateway/fix/develop/failing-deployment
jdeanquin-dg Jun 17, 2026
ebdba38
AMP-31147 : Fix missing selections on shared dashboard
brianbrix Jun 18, 2026
8e9d714
Activity form keeps reloading
jdeanquin-dg Jun 17, 2026
4431d71
Unable to delete disaggregation manager option
brianbrix Jun 18, 2026
495a2d2
Merge pull request #4497 from devgateway/fix/develop/activity-form-re…
jdeanquin-dg Jun 18, 2026
c2a73f7
AMP-31133 : Indiccator ME display and saving issues
brianbrix Jun 20, 2026
99646e8
AMP-31133 : Indicator ME display and saving issues
brianbrix Jun 20, 2026
2920656
AMP-31133 : Indicator ME display and saving issues
brianbrix Jun 20, 2026
fc9d7ec
AMP-31133 : Indicator ME display and saving issues
brianbrix Jun 20, 2026
5c83968
AMP-31133 : Indicator ME display and saving issues
brianbrix Jun 20, 2026
9d99736
AMP-31133 : Indicator ME display and saving issues
brianbrix Jun 20, 2026
9438616
AMP-31133 : Indicator ME display and saving issues
brianbrix Jun 20, 2026
3300690
AMP-31133 : Disaggregated values cleared on admin indicator update; A…
brianbrix Jun 21, 2026
35b1832
AMP-31133 : Actual values not being saved ; Admin disaggregation valu…
brianbrix Jun 21, 2026
b9b5b83
AMP-31133 : Actual values not being saved ; Admin disaggregation valu…
brianbrix Jun 21, 2026
2cf8632
AMP-31133 : Admin not able to update values ; Hide labels
brianbrix Jun 21, 2026
30cb288
AMP-31133 : Add delete confirmation modal for disaggregation options
brianbrix Jun 22, 2026
9912f03
AMP-31133 : Delete/replace disaggregation option
brianbrix Jun 22, 2026
c0e4ed8
AMP-31133 : API not returning actual values for single country
brianbrix Jun 22, 2026
184dc02
AMP-31133 : Add collapse expand signs for dropdowns
brianbrix Jun 23, 2026
e316304
Merge branch 'develop' into task/AMP-31140/Priority-changes-before-Tr…
brianbrix Jun 23, 2026
b907ad7
AMP-31140: Add audit evidence docs and operational scripts
brianbrix Jun 23, 2026
0d6c08a
AMP-31140 : Add NVD API Key
brianbrix Jun 24, 2026
2bf2c44
AMP-31140 : Add NVD API Key to actions
brianbrix Jun 24, 2026
3672d1d
AMP-31140 : Failing to upload scan report
brianbrix Jun 24, 2026
e9badfe
AMP-31140 : Failing to upload scan report
brianbrix Jun 24, 2026
ea8d912
AMP-31140 : NVD API Key is forbidden
brianbrix Jun 24, 2026
d922991
AMP-31140 : NVD API Key is forbidden
brianbrix Jun 24, 2026
e613022
AMP-31140 : NVD API Key is forbidden
brianbrix Jun 24, 2026
5003612
Merge pull request #4499 from devgateway/fix/AMP-31133/Issues-with-in…
jdeanquin-dg Jun 24, 2026
bbb6365
Merge pull request #4495 from devgateway/fix/AMP-31147/Issue--shared-…
jdeanquin-dg Jun 24, 2026
5fe7b11
AMP-31140 : Change CVE scan dependency for CI
brianbrix Jun 24, 2026
e01943c
AMP-31140 : Change CVE scan dependency for CI
brianbrix Jun 24, 2026
a15860b
AMP-31140 : Failing scan due to invalid code paths
brianbrix Jun 24, 2026
4887189
AMP-31140 : Failing scan due to invalid code paths
brianbrix Jun 24, 2026
cd067e5
AMP-31140 : Failing scan due to invalid code paths
brianbrix Jun 24, 2026
bdccaa3
AMP-31140 : Missing output directory
brianbrix Jun 24, 2026
a1b53e1
AMP-31140 : Missing output directory
brianbrix Jun 24, 2026
cdc50cd
AMP-31140 : Missing output directory
brianbrix Jun 24, 2026
222fe8f
AMP-31140 : Try resolving P1 CVEs
brianbrix Jun 25, 2026
0695bd6
AMP-31140 : Try resolving P1 CVEs
brianbrix Jun 26, 2026
8142a94
AMP-31140 : Try resolving CRITICAL CVEs
brianbrix Jun 26, 2026
caf91c5
AMP-31140 : Try resolving CRITICAL CVEs
brianbrix Jun 26, 2026
bb95bc1
AMP-31140 : Avoid failing on earlier failures
brianbrix Jun 26, 2026
68a3e25
AMP-31140 : Avoid failing on earlier failures
brianbrix Jun 26, 2026
aded411
AMP-31140 : NPM CVEs Critical fixes
brianbrix Jun 26, 2026
33f5208
AMP-31140 : NPM CVEs Critical fixes
brianbrix Jun 26, 2026
656bc36
AMP-31140 : NPM CVEs Critical fixes
brianbrix Jun 26, 2026
2fe6c60
AMP-31140 : Failing build due to CVE fix
brianbrix Jun 27, 2026
7bfb150
AMP-31140 : Failing build due to CVE fix
brianbrix Jun 27, 2026
fe6bae3
AMP-31140 : Failing build due to CVE fix
brianbrix Jun 27, 2026
b82f4a0
AMP-31140 : Failing build due to CVE fix
brianbrix Jun 27, 2026
d2a6264
AMP-31140 : Failing build due to CVE fix
brianbrix Jun 27, 2026
3ba0ec8
AMP-31140 : Failing build due to CVE fix
brianbrix Jun 27, 2026
fe12081
AMP-31140 : Failing build due to CVE fix
brianbrix Jun 27, 2026
dc2cd8d
AMP-31140 : Failing build due to CVE fix
brianbrix Jun 27, 2026
51d2253
AMP-31140 : Failing build due to CVE fix
brianbrix Jun 27, 2026
8dab647
AMP-31140 : Failing build due to CVE fix
brianbrix Jun 27, 2026
a6f4cfd
fix: add missing transitive deps for reampv2 npm workspace (react-ove…
brianbrix Jun 27, 2026
f8bab95
AMP-31140 : Failing build due to CVE fix
brianbrix Jun 28, 2026
a99eba6
fix: add missing transitive deps (memoize-one, @nivo/scales, react-ca…
brianbrix Jun 28, 2026
c954cf7
fix: pin react-fit@1.7.0, add @types/node root dep to fix npm ci sync…
brianbrix Jun 28, 2026
99f3124
fix: add styled-components@5.3.11 (peer dep of react-data-table-compo…
brianbrix Jun 28, 2026
245a224
fix: type initialValues explicitly to match FormikProps generic in Ou…
brianbrix Jun 28, 2026
890ca1d
fix: type initialValues explicitly in OutputModal to match FormikProp…
brianbrix Jun 28, 2026
f7420c2
fix: restore browserify transform configs (brfs for dashboard, browse…
brianbrix Jun 29, 2026
b9b053f
fix: explicitly load leaflet before esri-leaflet in lib-load-hacks (b…
brianbrix Jun 29, 2026
bbff511
AMP-31140 : Failing to open GIS due to missing L
brianbrix Jun 29, 2026
355de59
AMP-31152: Unexpected error on generate report
brianbrix Jun 29, 2026
0c14338
fix: bump amp-filter submodule to cd2ba56 (datepicker fix) and update…
brianbrix Jun 29, 2026
4067234
AMP-31153: explicitly hide #filter-popup on apply/cancel (position:fi…
brianbrix Jun 30, 2026
bf81550
AMP-31152: always assign window.jQuery before i18n to fix datepicker.…
brianbrix Jun 30, 2026
3092694
AMP-31153: fix crash on 3rd filter apply
brianbrix Jun 30, 2026
f5aa91f
AMP-31152: fix datepicker.regional - add require('jquery') to jquery-…
brianbrix Jun 30, 2026
49b5657
Merge branch 'develop' into task/AMP-31140/Priority-changes-before-Tr…
brianbrix Jul 1, 2026
b56ac81
AMP-31140: fix compareActivityVersions CSRF 403 redirect to login
brianbrix Jul 1, 2026
1630349
AMP-31154 : wrong data on activity preview
brianbrix Jul 1, 2026
9932590
AMP-31140: update reamp package-lock.json to pin amp-ui to fix commit
brianbrix Jul 1, 2026
5d31352
ci: free disk space on runner before build
brianbrix Jul 1, 2026
b59bc53
AMP-31154 : wrong data on activity preview
brianbrix Jul 2, 2026
3cbeddc
AMP-31154 : wrong data on activity preview
brianbrix Jul 2, 2026
fb67b6d
AMP-31154 : wrong data on activity preview
brianbrix Jul 3, 2026
e482a6d
AMP-31140 : Error with Activity display
brianbrix Jul 5, 2026
668967b
AMP-31155 Update reamp lock to amp-ui base/target disaggregation fix
brianbrix Jul 5, 2026
c1ebe86
AMP-31155 Prevent npm cache race in Docker frontend stages
brianbrix Jul 5, 2026
0835ca7
AMP-31155 Bump amp-ui lock for M&E preview readability
brianbrix Jul 5, 2026
8b602d4
AMP-31155 Bump amp-ui lock to display revised M&E values
brianbrix Jul 5, 2026
b78c2c9
AMP-31140 : Admin not able to delete activity
brianbrix Jul 5, 2026
d1cef6f
AMP-31140 : Admin not able to delete activity
brianbrix Jul 5, 2026
fae07cc
AMP-31148 : Add delete confirmation modal for disaggregation options
brianbrix Jun 22, 2026
26b4e86
AMP-31133 : Delete/replace disaggregation option
brianbrix Jun 22, 2026
9a5343f
AMP-31133 : API not returning actual values for single country
brianbrix Jun 22, 2026
bdad2ee
AMP-31133 : Add collapse expand signs for dropdowns
brianbrix Jun 23, 2026
5c66cc4
AMP-31147 : Fix missing selections on shared dashboard
brianbrix Jun 18, 2026
fe7bc82
Merge pull request #4502 from devgateway/fix/develop/missing-commits
jdeanquin-dg Jul 14, 2026
b416458
AMP-31190 :Issue- internal error when saving activity
brianbrix Aug 6, 2026
c351a6d
AMP-31191 : Issue-AMP menu not functions while you are on help page
brianbrix Aug 6, 2026
b2ab2db
AMP-31184 : Issue- delete activity from admin fails
brianbrix Aug 6, 2026
0813a26
AMP-31184 : Issue- delete activity from admin fails
brianbrix Aug 6, 2026
25f2fed
AMP-31183 : Issue- handling session end
brianbrix Aug 6, 2026
4f197e8
AMP-31182 : Issue- error logging in by newly created user
brianbrix Aug 6, 2026
04959fc
AMP-31181 : Issue- error sending resent passwork emails
brianbrix Aug 6, 2026
9fdea68
AMP-31190 : Issue- internal error when saving activity
brianbrix Aug 6, 2026
ad3c9f4
AMP-31191 : Issue-AMP menu not functions while you are on help page
brianbrix Aug 6, 2026
d088e3e
Make password comparison more secure
brianbrix Aug 6, 2026
7d5f76a
Merge pull request #4491 from devgateway/task/AMP-31140/Priority-chan…
jdeanquin-dg Aug 6, 2026
9feadfd
Resolve failing Clicks due to CSRF
brianbrix Aug 7, 2026
9d45f86
Merge pull request #4507 from devgateway/task/AMP-31140/Priority-chan…
jdeanquin-dg Aug 7, 2026
563c0a6
AMP-31212 : Enhance security by securing cookies and ensuring coss-si…
brianbrix Sep 16, 2026
f258f39
AMP-31212 : Fixing failing docker build
brianbrix Sep 16, 2026
9c62ce9
AMP-31212 : Fixing failing docker build
brianbrix Sep 16, 2026
4d6f010
AMP-31212 : Wrongly formatted patch
brianbrix Sep 16, 2026
9db5021
Remove HttpOnly setting from cookie
brianbrix Oct 1, 2026
e715e5f
Change SameSite cookie policy from strict to lax
brianbrix Oct 1, 2026
bc47814
Failing to load assets
brianbrix Oct 1, 2026
103c23c
Failing to load assets
brianbrix Oct 1, 2026
3b68b90
Failing to load assets
brianbrix Oct 1, 2026
09f0ee7
Failing to load assets
brianbrix Oct 1, 2026
153fd4b
Secure cookies in HttpLoginManager
brianbrix Oct 1, 2026
53f13f1
Upgrade tomcat to v9
brianbrix Oct 1, 2026
5571752
Downgrade back to tomcat 8.5.100
brianbrix Oct 1, 2026
3937b68
Set secure flag for userNameCookie to true
brianbrix Oct 1, 2026
941fe4a
Set session cookie to secure mode
brianbrix Oct 1, 2026
4a8df0d
Merge pull request #4515 from devgateway/fix/AMP-31205/PIDC-Security-…
jdeanquin-dg Oct 1, 2026
32ef2e8
Merge branch 'develop' into feature/GGW-369/Export-Import-Structures
brianbrix Oct 6, 2026
c1883c3
Refactor Excel export to use AmpStructure list directly
brianbrix Oct 6, 2026
64abb3e
Refactor loop to iterate over AmpStructure list
brianbrix Oct 6, 2026
910940a
Close file stream automatically
brianbrix Oct 7, 2026
88c1bc7
Merge remote-tracking branch 'origin/feature/GGW-369/Export-Import-St…
brianbrix Oct 7, 2026
332ef3c
Refactor resource panel setup in AmpStructuresFormSection
brianbrix Oct 7, 2026
524dec3
Copilot comments resolution
brianbrix Oct 7, 2026
841e8c6
Merge remote-tracking branch 'origin/feature/GGW-369/Export-Import-St…
brianbrix Oct 7, 2026
393cc4f
Potential fix for pull request finding 'Secure login cookie breaks pe…
brianbrix Oct 7, 2026
637cb43
Add check for empty sheet in AmpStructuresFormSectionFeature
brianbrix Oct 7, 2026
c3aa0da
Add missing shape column
brianbrix Oct 7, 2026
0ba2907
Merge remote-tracking branch 'origin/feature/GGW-369/Export-Import-St…
brianbrix Oct 7, 2026
e08f406
Check for structure title duplicates
brianbrix Oct 7, 2026
5b8e49c
Allign structures section correctly
brianbrix Oct 7, 2026
9f32bf7
Avoid automatic upload on file chooser
brianbrix Oct 7, 2026
d7ad2b2
Use rest endpoitn to upload structures
brianbrix Oct 7, 2026
67d965b
Use rest endpoint to upload files
brianbrix Oct 7, 2026
6b4453a
Use rest endpoint to upload files
brianbrix Oct 7, 2026
2d453de
Change upload status message
brianbrix Oct 7, 2026
fd23745
Correct upload status message
brianbrix Oct 8, 2026
399f228
Change downloadLink addition to rc.add method
brianbrix Oct 8, 2026
3f17829
Add stagedUploadResponse to target after setting model
brianbrix Oct 8, 2026
ef918e1
Fix method call to add exportStructures
brianbrix Oct 8, 2026
c002b69
Update file size validation for uploads
brianbrix Oct 8, 2026
070e3fa
Expire staged uploads and limit file size and number
brianbrix Oct 8, 2026
7f2542d
Merge remote-tracking branch 'origin/feature/GGW-369/Export-Import-St…
brianbrix Oct 8, 2026
4757e87
Refactor byte limit calculation for uploads
brianbrix Oct 8, 2026
30cbb66
Fix content length check for workbook upload
brianbrix Oct 8, 2026
eb750d1
Expire staged uploads and limit file size and number
brianbrix Oct 8, 2026
813172c
Add exception for exceeding workbook size limit
brianbrix Oct 8, 2026
fb806f8
Merge remote-tracking branch 'origin/feature/GGW-369/Export-Import-St…
brianbrix Oct 8, 2026
ff0bc22
Wrongly placed container error
brianbrix Oct 8, 2026
3a43de1
Wrongly placed container error
brianbrix Oct 8, 2026
74542bb
Wrongly placed container error
brianbrix Oct 8, 2026
6ce49d1
Remove deleteOnExit for staged upload file
brianbrix Oct 8, 2026
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
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
724 changes: 724 additions & 0 deletions .github/workflows/deploy.yml

Large diffs are not rendered by default.

288 changes: 288 additions & 0 deletions .github/workflows/security.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,288 @@
name: Security Scan

on:
push:
# Scan the default branch directly on merge; feature branches are covered
# by the pull_request trigger below, avoiding duplicate runs.
branches:
- develop
- main
pull_request:
branches: [ "**" ]
schedule:
# Re-scan every Monday at 06:00 UTC to catch newly published CVEs.
# Runs on the default branch; push/PR triggers cover all other branches.
- cron: '0 6 * * 1'
workflow_dispatch:
inputs:
pr_number:
description: 'PR number to scan (optional — leave blank to scan the branch selected above)'
required: false
type: string
default: ''

permissions:
contents: read

jobs:
# -----------------------------------------------------------------------
# Resolve the exact commit to scan.
# - Automatic triggers (push / PR / schedule): use the triggering SHA.
# - Manual (workflow_dispatch, no pr_number): use the branch selected in
# the "Run workflow" UI — GitHub checks out that branch automatically.
# - Manual (workflow_dispatch + pr_number): fetch the PR head SHA via API.
# -----------------------------------------------------------------------
setup:
name: Resolve target ref
runs-on: ubuntu-latest
outputs:
ref: ${{ steps.resolve.outputs.ref }}
steps:
- name: Resolve checkout ref
id: resolve
run: |
PR="${{ inputs.pr_number }}"
if [ -n "$PR" ]; then
if ! [[ "$PR" =~ ^[0-9]+$ ]]; then
echo "::error::pr_number must be numeric, got: ${PR}"
exit 1
fi
DATA=$(curl -sf \
-H "Authorization: Bearer ${{ github.token }}" \
"https://api.github.com/repos/${{ github.repository }}/pulls/${PR}")
STATE=$(echo "$DATA" | jq -r '.state')
if [ "$STATE" != "open" ]; then
echo "::error::PR #${PR} is not open (state: ${STATE})"
exit 1
fi
HEAD_REF=$(echo "$DATA" | jq -r '.head.ref')
HEAD_SHA=$(echo "$DATA" | jq -r '.head.sha')
echo "Scanning PR #${PR}: branch=${HEAD_REF} sha=${HEAD_SHA}"
echo "ref=${HEAD_SHA}" >> $GITHUB_OUTPUT
else
echo "ref=${{ github.sha }}" >> $GITHUB_OUTPUT
fi

# -----------------------------------------------------------------------
# Job 1: OWASP Dependency-Check (Java / Maven) + sequential npm audit
# OWASP covers Java/Maven artifacts and static JS files (via RetireJS).
# NodeAudit and NodePackage analyzers are disabled — npm coverage is
# handled entirely by the sequential 'npm audit' steps below, which
# avoid the npm registry rate limit (429) that OWASP's NodeAudit
# analyzer triggers and also eliminate false-negative warnings about
# missing node_modules from the NodePackage analyzer.
# -----------------------------------------------------------------------
owasp-maven:
name: OWASP Dependency-Check (Maven + npm)
runs-on: ubuntu-latest
timeout-minutes: 60
needs: setup

steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ needs.setup.outputs.ref }}

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Create report output directory
run: mkdir -p amp/target/dependency-check-report

- name: Run OWASP Dependency-Check
uses: dependency-check/Dependency-Check_Action@main
id: owasp
continue-on-error: true
with:
project: 'amp'
path: 'amp'
format: 'ALL'
out: 'amp/target/dependency-check-report'
args: >
--nvdApiKey ${{ secrets.NVD_API_KEY }}
--nvdApiDelay 10000
--failOnCVSS 7
--suppression /github/workspace/security/owasp-suppressions.xml
--scan /github/workspace/amp/ckeditor_4.4.6
--disableNodeAudit
--enableExperimental

- name: Upload HTML report
if: always()
uses: actions/upload-artifact@v4
with:
name: owasp-dependency-check-report
path: amp/target/dependency-check-report/
retention-days: 30
if-no-files-found: warn

- name: Show report directory (debug)
if: always()
run: |
echo "=== Dependency-Check output ==="
find . -path "*/dependency-check*" -print 2>/dev/null || true

- name: Fail if OWASP found CVEs
if: steps.owasp.outcome == 'failure'
run: exit 1

# Run npm audit sequentially (one package at a time) to stay within the
# npm registry rate limit. Each package waits for the previous to finish.
#
# KNOWN_UNFIXABLE: amp/TEMPLATE/reamp uses webpack 1 + babel 6, which have
# CVEs with no npm fix (all marked no-auto-fix). These are BUILD-TIME only
# devDependencies, not deployed to production. Fixing requires migrating to
# webpack 5 + babel 7. Tracked as tech debt — audited but excluded from gate.
- name: npm audit (all frontend packages)
id: npm_audit
if: always()
continue-on-error: true
run: |
PACKAGES=(
amp/TEMPLATE/ampTemplate/amp-state
amp/TEMPLATE/ampTemplate/amp-boilerplate
amp/TEMPLATE/ampTemplate/amp-filter
amp/TEMPLATE/ampTemplate/amp-translate
amp/TEMPLATE/ampTemplate/amp-url
amp/TEMPLATE/ampTemplate/amp-settings
amp/TEMPLATE/ampTemplate/gis-layers-manager
amp/TEMPLATE/ampTemplate/dashboard/dev
amp/TEMPLATE/ampTemplate/gisModule/dev
amp/TEMPLATE/reampv2
)
# Packages excluded from the failure gate due to unfixable build-tool CVEs.
# These are still audited and reported, but do not cause CI failure.
EXCLUDED=(
"amp/TEMPLATE/reamp"
)
FAIL=0
mkdir -p amp/target/dependency-check-report/npm-audit
for PKG in "${PACKAGES[@]}" "${EXCLUDED[@]}"; do
if [ ! -f "$PKG/package.json" ]; then
echo "Skipping $PKG (no package.json)"
continue
fi
NAME=$(basename "$PKG")
echo "--- npm audit: $PKG ---"
# Generate lock file if absent (required by npm audit)
if [ ! -f "$PKG/package-lock.json" ]; then
npm install --package-lock-only --ignore-scripts --prefix "$PKG" 2>&1 || true
fi
npm audit \
--prefix "$PKG" \
--audit-level high \
--json > "amp/target/dependency-check-report/npm-audit/${NAME}.json" 2>&1 || true
# Count only CRITICAL vulnerabilities that have a fix available.
# Excludes fix:false (no fix exists anywhere) and isSemVerMajor:true
# (would require a breaking dependency change — tracked as tech debt).
# This avoids false failures from browser-only crypto polyfills
# (cipher-base, sha.js, pbkdf2, elliptic) and abandoned deps like
# amp-translate/jquery (CISA KEV — requires code changes, not a dep bump).
CRIT=$(jq '[.vulnerabilities // {} | to_entries[] |
select(.value.severity == "critical") |
select(
.value.fixAvailable == true or
(.value.fixAvailable | type == "object" and .isSemVerMajor == false)
)] | length' \
"amp/target/dependency-check-report/npm-audit/${NAME}.json" 2>/dev/null || echo 0)
HIGH=$(jq '[.vulnerabilities // {} | to_entries[] |
select(.value.severity == "high") |
select(
.value.fixAvailable == true or
(.value.fixAvailable | type == "object" and .isSemVerMajor == false)
)] | length' \
"amp/target/dependency-check-report/npm-audit/${NAME}.json" 2>/dev/null || echo 0)
CRIT_ALL=$(jq '.metadata.vulnerabilities.critical // 0' \
"amp/target/dependency-check-report/npm-audit/${NAME}.json" 2>/dev/null || echo 0)
HIGH_ALL=$(jq '.metadata.vulnerabilities.high // 0' \
"amp/target/dependency-check-report/npm-audit/${NAME}.json" 2>/dev/null || echo 0)
echo "$NAME: critical=${CRIT_ALL} (${CRIT} actionable) high=${HIGH_ALL} (${HIGH} actionable)"
# Check if this package is excluded from the failure gate
GATED=true
for SKIP in "${EXCLUDED[@]}"; do
if [ "$PKG" = "$SKIP" ]; then GATED=false; break; fi
done
if $GATED && [ "$(( CRIT + HIGH ))" -gt 0 ]; then
echo "::error::$NAME: ${CRIT} critical + ${HIGH} high npm vulnerabilities. Run 'npm audit' in $PKG for details."
FAIL=1
elif ! $GATED && [ "$(( CRIT + HIGH ))" -gt 0 ]; then
echo "::warning::$NAME (excluded from gate): ${CRIT} critical + ${HIGH} high known unfixable CVEs in build tooling (webpack 1 / babel 6). Requires migration to webpack 5 + babel 7."
fi
done
exit $FAIL

- name: Upload npm audit reports
if: always()
uses: actions/upload-artifact@v4
with:
name: npm-audit-reports
path: amp/target/dependency-check-report/npm-audit/
retention-days: 30
if-no-files-found: ignore

- name: Fail if OWASP or npm audit found issues
if: always()
run: |
if [ "${{ steps.owasp.outcome }}" = "failure" ]; then
echo "::error::OWASP Dependency-Check found vulnerabilities above the CVSS threshold."
exit 1
fi
if [ "${{ steps.npm_audit.outcome }}" = "failure" ]; then
echo "::error::npm audit found HIGH or CRITICAL vulnerabilities."
exit 1
fi

# -----------------------------------------------------------------------
# Job 2: Trivy — container image CVE scan (runs on push to main / PRs)
# Catches OS-level CVEs that OWASP cannot see (e.g. base image packages)
# -----------------------------------------------------------------------
trivy-image:
name: Trivy (Container Image)
runs-on: ubuntu-latest
timeout-minutes: 30
needs: setup
# Only scan the image on pushes to main/master or on PRs targeting them,
# to avoid redundant scans on every feature branch push.
if: |
github.event_name == 'pull_request' ||
github.ref == 'refs/heads/main' ||
github.ref == 'refs/heads/master' ||
github.event_name == 'schedule' ||
github.event_name == 'workflow_dispatch'

steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ needs.setup.outputs.ref }}

- name: Build Docker image (no push)
working-directory: amp
run: |
docker build \
--build-arg BUILD_SOURCE=security-scan \
--build-arg AMP_URL=http://localhost/ \
-t amp-security-scan:${{ github.sha }} \
. || echo "::warning::Docker build failed; skipping Trivy image scan"

- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@v0.36.0
with:
image-ref: 'amp-security-scan:${{ github.sha }}'
format: 'sarif'
output: 'trivy-results.sarif'
severity: 'HIGH,CRITICAL'
exit-code: '1'
ignore-unfixed: true
continue-on-error: true

- name: Upload Trivy SARIF artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: trivy-sarif
path: trivy-results.sarif
retention-days: 30
92 changes: 71 additions & 21 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,21 +1,71 @@
amp/TEMPLATE/ampTemplate/node_modules/amp-settings/dist/
amp/TEMPLATE/ampTemplate/node_modules/amp-settings/src/compiled-css/amp-settings.css
amp/TEMPLATE/ampTemplate/node_modules/amp-settings/src/compiled-js/amp-settings.js
amp/TEMPLATE/ampTemplate/node_modules/amp-boilerplate/src/compiled-js/amp-boilerplate.js
amp/TEMPLATE/ampTemplate/node_modules_10/
amp/TEMPLATE/ampTemplate/node_modules/amp-filter/node/node_modules/
amp/TEMPLATE/ampTemplate/node_modules/amp-filter/node/
amp/TEMPLATE/ampTemplate/node_modules/amp-filter/node_modules/
amp/TEMPLATE/ampTemplate/node_modules/amp-boilerplate/dist/amp-boilerplate.js
amp/TEMPLATE/ampTemplate/node_modules/amp-filter/dist/amp-filter.css
amp/TEMPLATE/ampTemplate/node_modules/amp-filter/src/compiled-css/amp-filter.css
amp/TEMPLATE/ampTemplate/node_modules/amp-filter/src/compiled-js/amp-filter.js
amp/TEMPLATE/ampTemplate/node_modules/amp-filter/dist/amp-filter.js
amp/TEMPLATE/ampTemplate/node_modules/amp-state/node/
amp/TEMPLATE/ampTemplate/node_modules/amp-translate/node/
amp/TEMPLATE/ampTemplate/node_modules/amp-translate/node_modules/
.idea/
amp/TEMPLATE/reampv2/node/node_modules/
amp/TEMPLATE/reampv2/node/
amp/gen-src/
/amp/gen-src/
amp/TEMPLATE/ampTemplate/node_modules/amp-settings/dist/
amp/TEMPLATE/ampTemplate/node_modules/amp-settings/src/compiled-css/amp-settings.css
amp/TEMPLATE/ampTemplate/node_modules/amp-settings/src/compiled-js/amp-settings.js
amp/TEMPLATE/ampTemplate/node_modules/amp-boilerplate/src/compiled-js/amp-boilerplate.js
amp/TEMPLATE/ampTemplate/node_modules_10/
amp/TEMPLATE/ampTemplate/node_modules/amp-filter/node/node_modules/
amp/TEMPLATE/ampTemplate/node_modules/amp-filter/node/
amp/TEMPLATE/ampTemplate/node_modules/amp-filter/node_modules/
amp/TEMPLATE/ampTemplate/node_modules/amp-boilerplate/dist/amp-boilerplate.js
amp/TEMPLATE/ampTemplate/node_modules/amp-filter/dist/amp-filter.css
amp/TEMPLATE/ampTemplate/node_modules/amp-filter/src/compiled-css/amp-filter.css
amp/TEMPLATE/ampTemplate/node_modules/amp-filter/src/compiled-js/amp-filter.js
amp/TEMPLATE/ampTemplate/node_modules/amp-filter/dist/amp-filter.js
amp/TEMPLATE/ampTemplate/node_modules/amp-state/node/
amp/TEMPLATE/ampTemplate/node_modules/amp-translate/node/
amp/TEMPLATE/ampTemplate/node_modules/amp-translate/node_modules/
.idea/
amp/TEMPLATE/reampv2/node/node_modules/
amp/TEMPLATE/reampv2/node/
amp/gen-src/
/amp/gen-src/
amp/src/main/java/org/digijava/module/translation/jaxb/Trn.java
amp/src/main/java/org/digijava/module/translation/jaxb/ObjectFactory.java
amp/src/main/java/org/digijava/module/translation/jaxb/Language.java
amp/src/main/java/org/digijava/module/translation/jaxb/Translations.java
amp/src/main/java/org/digijava/module/help/jaxbi/Adapter1.java
amp/src/main/java/org/digijava/module/help/jaxbi/HelpLang.java
amp/src/main/java/org/digijava/module/help/jaxbi/ObjectFactory.java
amp/src/main/java/org/digijava/module/help/jaxbi/AmpHelpRoot.java
amp/src/main/java/org/dgfoundation/amp/reports/xml/Sort.java
amp/src/main/java/org/dgfoundation/amp/reports/xml/Hierarchies.java
amp/src/main/java/org/dgfoundation/amp/reports/xml/Children.java
amp/src/main/java/org/dgfoundation/amp/reports/xml/Values.java
amp/src/main/java/org/dgfoundation/amp/reports/xml/YearRange.java
amp/src/main/java/org/dgfoundation/amp/reports/xml/AmountFormat.java
amp/src/main/java/org/dgfoundation/amp/reports/xml/ParentColumn.java
amp/src/main/java/org/dgfoundation/amp/reports/xml/Filters.java
amp/src/main/java/org/dgfoundation/amp/reports/xml/ReportArea.java
amp/src/main/java/org/dgfoundation/amp/reports/xml/Contents.java
amp/src/main/java/org/dgfoundation/amp/reports/xml/Measures.java
amp/src/main/java/org/dgfoundation/amp/reports/xml/Headers.java
amp/src/main/java/org/dgfoundation/amp/reports/xml/ReportParameter.java
amp/src/main/java/org/dgfoundation/amp/reports/xml/ObjectFactory.java
amp/src/main/java/org/dgfoundation/amp/reports/xml/Columns.java
amp/src/main/java/org/dgfoundation/amp/reports/xml/Column.java
amp/src/main/java/org/dgfoundation/amp/reports/xml/Output.java
amp/src/main/java/org/dgfoundation/amp/reports/xml/Config.java
amp/src/main/java/org/dgfoundation/amp/reports/xml/Settings.java
amp/src/main/java/org/dgfoundation/amp/reports/xml/Report.java
amp/src/main/java/org/dgfoundation/amp/reports/xml/Sorting.java
amp/src/main/java/org/dgfoundation/amp/reports/xml/GroupingOption.java
amp/src/main/java/org/dgfoundation/amp/reports/xml/Cell.java
amp/src/main/java/org/dgfoundation/amp/reports/xml/package-info.java
amp/src/main/java/org/dgfoundation/amp/reports/xml/Filter.java
amp/src/main/java/org/digijava/module/xmlpatcher/jaxb/LangType.java
amp/src/main/java/org/digijava/module/xmlpatcher/jaxb/Patch.java
amp/src/main/java/org/digijava/module/xmlpatcher/jaxb/Lang.java
amp/src/main/java/org/digijava/module/xmlpatcher/jaxb/TriggerType.java
amp/src/main/java/org/digijava/module/xmlpatcher/jaxb/ObjectFactory.java
amp/src/main/java/org/digijava/module/xmlpatcher/jaxb/Rollback.java
amp/src/main/java/org/digijava/module/xmlpatcher/jaxb/Trigger.java
amp/src/main/java/org/digijava/module/xmlpatcher/jaxb/ScriptGroup.java
amp/src/main/java/org/digijava/module/xmlpatcher/jaxb/Condition.java
amp/src/main/java/org/digijava/module/xmlpatcher/jaxb/Script.java
amp/src/main/java/org/digijava/module/xmlpatcher/jaxb/ConditionType.java
amp/src/main/java/org/digijava/module/xmlpatcher/jaxb/package-info.java
amp/src/main/java/org/digijava/module/xmlpatcher/jaxb/ConditionParam.java
amp/src/main/java/org/digijava/module/help/jaxbi/AmpHelpType.java

# ISO 27001 evidence CSVs and raw DB exports — contain personal data, never commit
audit-evidence/evidence/
1 change: 1 addition & 0 deletions .well-known/funding-manifest-urls
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
https://developmentgateway.org/floss/funding.json
Loading
Loading