Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
957 commits
Select commit Hold shift + click to select a range
36cc698
Version 2026.4.5
nolanpro Mar 12, 2026
d288caa
Merge pull request #8728 from ProcessMaker/feature/FOUR-29250
nolanpro Mar 13, 2026
4e3fa3a
Merge pull request #8733 from ProcessMaker/bugfix/FOUR-25486
nolanpro Mar 13, 2026
91109ca
Merge pull request #8712 from ProcessMaker/bugfix/FOUR-27394
nolanpro Mar 13, 2026
107d55d
Update dependencies
nolanpro Mar 13, 2026
e5b2464
Update dependency
nolanpro Mar 13, 2026
0d36bf7
Version 2026.5.1
processmaker-bot Mar 13, 2026
9adf3c4
Solving fix with Recent Assets Copy option from ellipsis with Scripts
CarliPinell Mar 16, 2026
edd5ca4
Update table columns
sanjacornelius Mar 18, 2026
028fa82
FOUR-29961: APPLICANT >> Improve Draft behavior
rodriquelca Mar 18, 2026
17ecd4f
Merge pull request #8747 from ProcessMaker/task/FOUR-29116
sanjacornelius Mar 18, 2026
8921fe3
Merge pull request #8752 from ProcessMaker/feature/FOUR-29961
nolanpro Mar 18, 2026
e6ad0df
Update dependencies
nolanpro Mar 18, 2026
25c7763
Version 2026.5.2
processmaker-bot Mar 18, 2026
bffe1a1
FOUR-29436: avoid session logout on permission cache invalidation
eiresendez Mar 23, 2026
4e1b054
Prevent access for BLOCKED/INACTIVE users
agustinbusso Mar 23, 2026
e8d7b4a
FOUR-29436: track legacy permission cache keys
eiresendez Mar 23, 2026
ee99786
Resolve FOUR-29252
eiresendez Mar 24, 2026
67195cb
Implement account status checks in password reset flow
marcoAntonioNina Mar 24, 2026
7e6b7b5
Add PasswordResetTest to validate password reset flow for blocked and…
marcoAntonioNina Mar 24, 2026
e41939c
Enhance password reset flow to include checks for inactive user
marcoAntonioNina Mar 24, 2026
e910706
Merge pull request #8755 from ProcessMaker/security/FOUR-30041
nolanpro Mar 24, 2026
7e4e133
Merge pull request #8757 from ProcessMaker/bugfix/FOUR-30040-A
nolanpro Mar 24, 2026
f48b687
Version 2026.5.3
processmaker-bot Mar 24, 2026
af74433
Add cases retention logs API endpoint
sanjacornelius Mar 24, 2026
2289a3a
Cast case_ids as array and add CaseIdsTableCell
sanjacornelius Mar 24, 2026
5a6c16f
Improve logs filtering and remove unused imports
sanjacornelius Mar 24, 2026
33de33c
Merge branch 'develop' of github.com:ProcessMaker/processmaker into e…
marcoAntonioNina Mar 25, 2026
e2646cd
Merge pull request #8758 from ProcessMaker/task/FOUR-29764
sanjacornelius Mar 25, 2026
32352c2
Include username tovalidate when using the reset password
agustinbusso Mar 25, 2026
9f98cff
Merge pull request #8759 from ProcessMaker/security/FOUR-30042
nolanpro Mar 25, 2026
1159229
Version 2026.5.3
processmaker-bot Mar 25, 2026
6d51ee5
Add CSV export job and signed download URL
sanjacornelius Mar 25, 2026
accef99
Add CaseRetention log CSV writer and filter
sanjacornelius Mar 25, 2026
cb60060
Remove case retention broadcast events
sanjacornelius Mar 26, 2026
20b8eaf
Add notification for case retention export
sanjacornelius Mar 26, 2026
a4253d1
`Fix permission cache invalidation and add Redis session regression c…
eiresendez Mar 26, 2026
c388349
Merge pull request #8760 from ProcessMaker/task/FOUR-29118
sanjacornelius Mar 27, 2026
e49fafd
Merge branch 'develop' into task/FOUR-28803
nolanpro Mar 28, 2026
d628fac
Update composer dependencies
nolanpro Mar 28, 2026
e68f3c7
Add sameSite header to cookies using .env or by default set to lax
agustinbusso Mar 30, 2026
a37671f
Merge pull request #8697 from ProcessMaker/bugfix/FOUR-25827
nolanpro Mar 31, 2026
5d6710d
Skip status clause in PMQL if advanced filter set
mcraeteisha Mar 31, 2026
4210c83
Restrict retention policy UI to admins
sanjacornelius Mar 31, 2026
45413cf
Add tests for advanced vs PMQL status filter
mcraeteisha Mar 31, 2026
6762c1d
Restrict retention fields to administrators
sanjacornelius Mar 31, 2026
8024b4d
Update dependencies
nolanpro Mar 31, 2026
0a86432
Version 2026.6.1
processmaker-bot Mar 31, 2026
4192138
Restrict retention updates to administrators
sanjacornelius Mar 31, 2026
0dcaa1d
Preserve retention metadata for non-admins
sanjacornelius Mar 31, 2026
112608c
Merge pull request #8763 from ProcessMaker/observation/FOUR-30263
sanjacornelius Mar 31, 2026
006321c
Remove homestead
nolanpro Mar 31, 2026
27fe3f8
Merge branch 'develop' into task/FOUR-28803
nolanpro Mar 31, 2026
1ea7f1f
Resolve FOUR-28033
eiresendez Apr 1, 2026
8c1f877
Merge pull request #8765 from ProcessMaker/observation/FOUR-30278
sanjacornelius Apr 2, 2026
b120a67
Use temporary upgrade for for open telemetry
nolanpro Apr 2, 2026
f10f3b4
Remove unused packages
nolanpro Apr 2, 2026
dbaceb8
Update dependencies for laravel 13
nolanpro Apr 2, 2026
ad86c55
Add back packages that were temporarily removed for the L13 dependenc…
nolanpro Apr 2, 2026
3003f0a
Add serializable_classes config
nolanpro Apr 2, 2026
910f630
Fix middleware name change in Laravel 13
nolanpro Apr 2, 2026
2800d22
Update Dependencies
nolanpro Apr 6, 2026
15013c7
Fix swagger annotations
nolanpro Apr 6, 2026
e03959e
Remove unused file
nolanpro Apr 6, 2026
ff5e610
Remove dusk provider
nolanpro Apr 6, 2026
d0b4509
Version 2026.6.2
nolanpro Apr 6, 2026
9d3abdd
Fix l5-generate for cached config
nolanpro Apr 7, 2026
12669e2
Merge branch 'develop' into task/FOUR-28803
nolanpro Apr 7, 2026
ac33e2e
Merge branch 'task/FOUR-28803' into task/FOUR-28803-L13
nolanpro Apr 7, 2026
b936593
Support retention downgrades: Add case retention tier service and int…
sanjacornelius Apr 7, 2026
e45dfa8
Add no cache option when rebuilding
nolanpro Apr 7, 2026
1841f3b
Merge pull request #8769 from ProcessMaker/bugfix/FOUR-30478
nolanpro Apr 7, 2026
023e4d2
Update dependency
nolanpro Apr 7, 2026
25c0950
Version 2026.6.3
nolanpro Apr 7, 2026
e833af2
Add retention-shortening message to en.json
sanjacornelius Apr 8, 2026
f0f84ba
Fix composer.lock
nolanpro Apr 8, 2026
4bd98ec
Update build hash
nolanpro Apr 8, 2026
e6a84b8
Fix FOUR-28033 interstitial screen selection
eiresendez Apr 8, 2026
56be19f
Restore default interstitial selection
eiresendez Apr 8, 2026
2be10ea
Fix bootIfNotBooted circular issue in laravel 13
nolanpro Apr 8, 2026
0d3e40c
Use tier-allowed periods when evaluating retention
sanjacornelius Apr 8, 2026
fea7d0a
Fix test
nolanpro Apr 8, 2026
c4249fd
Add SMART_EXTRACT vars to microservice runner
sanjacornelius Apr 9, 2026
65392e5
Change workflow reference to 'testbench' branch
nolanpro Apr 9, 2026
91da6b1
Expose retention tier notice and show warning
sanjacornelius Apr 9, 2026
2517209
Use our forks for dependencies and a new pmql release
nolanpro Apr 10, 2026
dfebca4
Merge pull request #8773 from ProcessMaker/observation/FOUR-30459
sanjacornelius Apr 10, 2026
2cafb52
Merge pull request #8768 from ProcessMaker/task/FOUR-28803-L13
nolanpro Apr 10, 2026
aaf0a1b
Update workflow reference from 'testbench' to 'main'
nolanpro Apr 10, 2026
35db6bf
Merge branch 'develop' into task/FOUR-28803
nolanpro Apr 10, 2026
95352c5
Delete draft after editing request data
nolanpro Apr 10, 2026
c111eca
Merge pull request #7864 from ProcessMaker/bugfix/FOUR-19108
nolanpro Apr 10, 2026
0834ec0
Merge pull request #8699 from ProcessMaker/bugfix/FOUR-25963
nolanpro Apr 10, 2026
5ec6775
Merge pull request #8564 from ProcessMaker/defect/FOUR-25983
nolanpro Apr 10, 2026
cdcdac3
Merge pull request #8700 from ProcessMaker/bugfix/FOUR-26241
nolanpro Apr 10, 2026
f9c3aef
Merge pull request #8750 from ProcessMaker/bugfix/FOUR-26367
nolanpro Apr 10, 2026
34ff4da
Merge pull request #8707 from ProcessMaker/task/FOUR-27903
nolanpro Apr 10, 2026
ae0b22b
Merge pull request #8703 from ProcessMaker/bugfix/FOUR-28338
nolanpro Apr 10, 2026
9b0c9a6
Merge pull request #8653 from ProcessMaker/bugfix/FOUR-28342
nolanpro Apr 10, 2026
acf88f0
Merge pull request #8761 from ProcessMaker/task/FOUR-28351
nolanpro Apr 10, 2026
4a80ede
Merge pull request #8687 from ProcessMaker/task/FOUR-28803
nolanpro Apr 10, 2026
e2aa901
Merge branch 'develop' into bugfix/FOUR-28471
eiresendez Apr 10, 2026
0e1621e
Merge pull request #8682 from ProcessMaker/bugfix/FOUR-28471
nolanpro Apr 10, 2026
de0e63a
Update JavaScript Dependencies
nolanpro Apr 10, 2026
6852ecf
Update dependencies
nolanpro Apr 10, 2026
873d698
Version 2026.7.1
processmaker-bot Apr 10, 2026
371a28e
Fix security advisories
nolanpro Apr 13, 2026
5ed57d9
Move package-accessibility to enterprise
nolanpro Apr 13, 2026
763297d
Change cases retention icon to fa-sync-alt
sanjacornelius Apr 13, 2026
b1a71fb
Merge branch 'develop' into epic/FOUR-29101
sanjacornelius Apr 13, 2026
2f70555
Merge pull request #8774 from ProcessMaker/observation/FOUR-29760
sanjacornelius Apr 13, 2026
129c00e
Fix axios vulnerability in swagger ui
nolanpro Apr 14, 2026
a59bea0
Fix swagger generate problem
nolanpro Apr 15, 2026
18902a6
FOUR-30704: REGRESSION Not all pages are displayed on forms tab to r…
henryjonathanquispe Apr 16, 2026
5beb7b4
FOUR-30704: REGRESSION Not all pages are displayed on forms tab to r…
henryjonathanquispe Apr 16, 2026
7f0f448
FOUR-30704: REGRESSION Not all pages are displayed on forms tab to r…
henryjonathanquispe Apr 16, 2026
5b536c0
FOUR-30726 REGRESSION >> Public files are not displayed on screens
gproly Apr 17, 2026
0662445
Revert unnecessary changes.
gproly Apr 17, 2026
abd745e
Revert unnecessary changes.
gproly Apr 17, 2026
1df5aa0
Added a new update_by column in process_template table
gustavobascope Apr 17, 2026
60dfb50
Qualify token filter columns; add tests
mcraeteisha Apr 17, 2026
212c11d
Qualify id in scope filter and extend tests
mcraeteisha Apr 20, 2026
47c35ce
Merge branch 'develop' into epic/FOUR-25679
agustinbusso Apr 21, 2026
d60122d
The total size branch now retrieves the limit using `getMaxFileSize('…
gproly Apr 21, 2026
2995232
fix PHPUnit notices: RequestControllerShowTest — The `ModelerManager`…
gproly Apr 21, 2026
bd4e866
fix php-cs-fixer issues.
gproly Apr 21, 2026
746b2cc
Improvements on detect public files.
gproly Apr 21, 2026
aa6bddf
There is broken functionality due to the backend having too much resp…
gproly Apr 22, 2026
16b5446
Fix DevLink
nolanpro Apr 22, 2026
16a066c
Merge pull request #8775 from ProcessMaker/task/FOUR-30670
nolanpro Apr 23, 2026
0cb38e6
Merge pull request #8781 from ProcessMaker/bugfix/FOUR-30703
nolanpro Apr 23, 2026
c8b8adc
Merge pull request #8778 from ProcessMaker/FOUR-30704
nolanpro Apr 23, 2026
7d7c0c2
Merge pull request #8789 from ProcessMaker/bugfix/FOUR-30705
nolanpro Apr 23, 2026
4f24d36
Merge pull request #8777 from ProcessMaker/bugfix/FOUR-30724
nolanpro Apr 23, 2026
02069bf
Merge pull request #8780 from ProcessMaker/observation/FOUR-30742
nolanpro Apr 23, 2026
a826796
Update JavaScript Dependencies
nolanpro Apr 23, 2026
cbef30f
Update dependencies
nolanpro Apr 23, 2026
5aa2bfd
Version 2026.7.2
processmaker-bot Apr 23, 2026
0b7be67
Move package-accessibility to enterprise
nolanpro Apr 24, 2026
1486da1
Update custom package versions
nolanpro Apr 24, 2026
8c75471
Remove prefix
nolanpro Apr 24, 2026
14ebeae
Update plg version
nolanpro Apr 24, 2026
f2ae9d4
Add forked repo here for package-esign
nolanpro Apr 24, 2026
5e211eb
Fix inbox dashboard scroll clipping
eiresendez Apr 27, 2026
d4858df
Handle self-service status in advanced filters
mcraeteisha Apr 27, 2026
54d758e
Code cleanup
mcraeteisha Apr 27, 2026
83d1d77
Merge branch 'develop' into bugfix/FOUR-25589
mcraeteisha Apr 27, 2026
69a5712
FOUR-28073 Canceled case still progresses to Completed
gproly Apr 28, 2026
7e03f40
Merge remote-tracking branch 'origin/develop' into feature/FOUR-26166-b
caleeli Apr 28, 2026
8ea654c
fix
gproly Apr 28, 2026
f8089a5
Improvements
gproly Apr 28, 2026
5fb9b5c
FOUR-30819 sanitize screen template config
eiresendez Apr 28, 2026
cdf2696
FOUR-27838:Add the case number to all screens in the applicant process
fagubla Apr 29, 2026
0f1e370
reset app.php
fagubla Apr 29, 2026
cf0339b
FOUR-30819 Scope template sanitizer to imported content
eiresendez Apr 29, 2026
137df95
Merge pull request #8793 from ProcessMaker/task/FOUR-30672
nolanpro Apr 29, 2026
27286ad
Version 2026.7.3
processmaker-bot Apr 29, 2026
b6d3d52
Merge remote-tracking branch 'origin/develop' into feature/FOUR-26166-b
devmiguelangel Apr 30, 2026
574a8d6
change label
fagubla Apr 30, 2026
5bfe890
FOUR-30999 Review Issue with upgrade using package-plg:develop
gproly Apr 30, 2026
1e72df3
Remove foreign key and check if column exists
nolanpro Apr 30, 2026
62ca862
Merge pull request #8808 from ProcessMaker/fix-migration
nolanpro Apr 30, 2026
9967e26
Bump build
nolanpro Apr 30, 2026
2b3db57
feat: update configuration structure for scheduled jobs
devmiguelangel May 6, 2026
809d566
FOUR-30819 Sanitize screen template renderable strings
eiresendez May 6, 2026
a275081
Add migration to create permissions for task tabs
marcoAntonioNina May 6, 2026
e4553ea
fix observations.
gproly May 6, 2026
d0fd28a
Merge branch 'develop' into bugfix/FOUR-30819
eiresendez May 6, 2026
77c992f
Merge branch 'develop' into epic/FOUR-25679
agustinbusso May 6, 2026
4910032
Implement conditional rendering for task tabs based on user permissions
marcoAntonioNina May 6, 2026
4b8b6e5
Fix observations and discard unnecessary changes.
gproly May 6, 2026
0f2709e
Merge pull request #8766 from ProcessMaker/bugfix/FOUR-25589
nolanpro May 6, 2026
97427c8
Merge pull request #8794 from ProcessMaker/defect/FOUR-26677
nolanpro May 6, 2026
e2df15e
Added PHPUnit and small improvements.
gproly May 6, 2026
5e1dddb
Merge pull request #8767 from ProcessMaker/task/FOUR-28033
nolanpro May 6, 2026
3c8cfc3
Merge pull request #8734 from ProcessMaker/epic/FOUR-29101
nolanpro May 6, 2026
b7658a6
Merge pull request #8756 from ProcessMaker/task/FOUR-29252
nolanpro May 6, 2026
4ad3efd
Merge pull request #8753 from ProcessMaker/bugfix/FOUR-29436
nolanpro May 6, 2026
a0ec004
Merge pull request #8772 from ProcessMaker/bugfix/FOUR-30560
nolanpro May 6, 2026
11df340
Merge pull request #8779 from ProcessMaker/bugfix/FOUR-30726
nolanpro May 6, 2026
020fda6
Merge pull request #8807 from ProcessMaker/bugfix/FOUR-30999
nolanpro May 6, 2026
158110a
Merge branch 'develop' into bugfix/FOUR-28073
nolanpro May 6, 2026
c4c76f0
Merge remote-tracking branch 'origin/develop' into epic/FOUR-25679
agustinbusso May 7, 2026
6a3b230
Fix format
agustinbusso May 7, 2026
8423af3
Merge branch 'develop' into feature/FOUR-27838
fagubla May 7, 2026
209ce40
Implement dynamic tab visibility in CaseDetail component based on use…
marcoAntonioNina May 7, 2026
86b3a55
Add additional permissions to UserObserver for task tabs
marcoAntonioNina May 7, 2026
04baf2f
Merge pull request #8814 from ProcessMaker/epic/FOUR-31097
marcoAntonioNina May 7, 2026
2ce834e
Merge pull request #8815 from ProcessMaker/epic/FOUR-31098
marcoAntonioNina May 7, 2026
42bb2f5
Merge pull request #8817 from ProcessMaker/task/FOUR-31099
marcoAntonioNina May 7, 2026
e641fa5
Merge pull request #8818 from ProcessMaker/task/FOUR-31100
marcoAntonioNina May 7, 2026
27c63c9
Merge pull request #8801 from ProcessMaker/bugfix/FOUR-28073
nolanpro May 7, 2026
bd0bb6c
Update dependencies
nolanpro May 7, 2026
6c89eae
Version 2026.8.1
processmaker-bot May 7, 2026
1997f43
Add migration to assign tab task permissions to non-administrator use…
marcoAntonioNina May 7, 2026
ea611ac
Merge pull request #8820 from ProcessMaker/task/FOUR-31101
marcoAntonioNina May 7, 2026
8208d45
Set the user_id on the oauth client
nolanpro May 7, 2026
898ea58
Fix test permissions
marcoAntonioNina May 8, 2026
60ea979
Use .us Microsoft endpoints for Office365 OAuth
ronytic May 8, 2026
841421e
Merge pull request #8812 from ProcessMaker/FOUR-26194
caleeli May 8, 2026
d30e5a8
FOUR-31158 Resolve group assignments by name
eiresendez May 11, 2026
169e308
Merge pull request #8825 from ProcessMaker/defect/FOUR-29998
nolanpro May 14, 2026
7581b25
Version 2026.8.2
processmaker-bot May 14, 2026
9af8ea3
Use .us Microsoft endpoints for Office365 OAuth
ronytic May 8, 2026
7f75cfc
Update build
nolanpro May 14, 2026
7885212
Revert "Use .us Microsoft endpoints for Office365 OAuth"
nolanpro May 14, 2026
287b582
Update build
nolanpro May 14, 2026
0600098
[FOUR-31262] Trivial change: update release name
ryancooley May 14, 2026
37d01e0
Add self-service status handling and refactor status filter logic in …
marcoAntonioNina May 14, 2026
8ddeda5
Update applyProcessManager method in TaskController to include reques…
marcoAntonioNina May 14, 2026
1621d6f
Add tests for advanced status filtering in Tasks API
marcoAntonioNina May 14, 2026
41d0068
Merge branch 'develop' of github.com:ProcessMaker/processmaker into t…
marcoAntonioNina May 15, 2026
345e5e2
Move package-accessibility to custom packages
nolanpro May 15, 2026
16e7b54
Update dependency
nolanpro May 15, 2026
92722f6
Merge pull request #8831 from ProcessMaker/move-package-accessibility
nolanpro May 15, 2026
ca8e8ee
Merge branch 'develop' of github.com:ProcessMaker/processmaker into t…
marcoAntonioNina May 15, 2026
108c15a
Merge branch 'develop' into epic/FOUR-25679
agustinbusso May 18, 2026
1901905
Authorize access to 'all cases' view
mcraeteisha May 18, 2026
4862540
Add tests for view-all_cases permission
mcraeteisha May 18, 2026
f8d45c3
Remove permission middleware in api v1.1
mcraeteisha May 18, 2026
44829fb
Restrict case listing; allow users to view own cases
mcraeteisha May 18, 2026
5f08f50
Add tests for cases access control and Gate setup
mcraeteisha May 18, 2026
fd53631
Update comment
mcraeteisha May 18, 2026
f696ae8
Change on clients adding modal for plainSecret
AugustoLopezProcess May 18, 2026
6efca9c
Update all clients and add an observer
nolanpro May 19, 2026
ae94732
Merge branch 'develop' of github.com:ProcessMaker/processmaker into e…
marcoAntonioNina May 19, 2026
2dd8c43
fix permission nambe
marcoAntonioNina May 19, 2026
4f4b217
Merge branch 'develop' into bugfix/FOUR-31130
nolanpro May 19, 2026
96a6b3d
Resolve failing CaseControllerSearchTests
mcraeteisha May 19, 2026
8ef6815
Update dependency
nolanpro May 19, 2026
7eb50e1
Dont show modal on edit and refresh clients
AugustoLopezProcess May 19, 2026
671ed38
Use migration suggested in docs
nolanpro May 19, 2026
1e61229
Merge branch 'develop' into bugfix/FOUR-31130
nolanpro May 19, 2026
83fffed
Deleting secret in transform for manual filter
AugustoLopezProcess May 19, 2026
9c4ed30
Fix grant types
nolanpro May 19, 2026
123596c
Remove setting user_id on client
nolanpro May 19, 2026
fac4d28
Merge pull request #8698 from ProcessMaker/epic/FOUR-25679
nolanpro May 19, 2026
626f010
Merge pull request #8804 from ProcessMaker/feature/FOUR-27838
nolanpro May 19, 2026
9cb92fe
Merge pull request #8803 from ProcessMaker/bugfix/FOUR-30819
nolanpro May 19, 2026
e3be6ec
Merge pull request #8821 from ProcessMaker/epic/FOUR-31103
nolanpro May 19, 2026
664bc3f
Merge pull request #8823 from ProcessMaker/bugfix/FOUR-31130
nolanpro May 19, 2026
0aaa088
Merge pull request #8830 from ProcessMaker/task/FOUR-31219
nolanpro May 19, 2026
e2a1d17
Merge pull request #8829 from ProcessMaker/FOUR-31262
nolanpro May 19, 2026
1b4c616
Merge pull request #8828 from ProcessMaker/feature-office365-us-support
nolanpro May 19, 2026
7b4e423
Merge pull request #8835 from ProcessMaker/FOUR-31336
nolanpro May 19, 2026
87ba520
Update dependencies
nolanpro May 19, 2026
be8c9c4
Merge pull request #8834 from ProcessMaker/defect/FOUR-27623
nolanpro May 19, 2026
cc70786
Version 2026.9.1
processmaker-bot May 19, 2026
1d2cc90
Revert passport schema update for this version
nolanpro May 19, 2026
93cae59
Merge remote-tracking branch 'origin/develop' into feature/FOUR-26166-b
caleeli May 20, 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
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ OPEN_AI_NLQ_TO_PMQL_ENABLED=true
OPEN_AI_PROCESS_TRANSLATIONS_ENABLED=true
OPEN_AI_SECRET="sk-O2D..."
AI_MICROSERVICE_HOST="http://localhost:8010"
AI_MICROSERVICE_HOST_WS="wss://localhost:8010"
PROCESS_REQUEST_ERRORS_RATE_LIMIT=1
PROCESS_REQUEST_ERRORS_RATE_LIMIT_DURATION=86400
CUSTOM_EXECUTORS=false
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,4 @@ devhub/pm-font/dist
test-db-snapshot.db
snapshot_*.db
storage/transitions
.envrc
14 changes: 2 additions & 12 deletions ProcessMaker/Application.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace ProcessMaker;

use Igaster\LaravelTheme\Facades\Theme;
use Illuminate\Container\Container;
use Illuminate\Filesystem\Filesystem;
use Illuminate\Foundation\Application as IlluminateApplication;
use Illuminate\Foundation\Bootstrap\LoadEnvironmentVariables;
Expand All @@ -12,8 +13,8 @@
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Config;
use ProcessMaker\Console\Kernel;
use ProcessMaker\Multitenancy\Tenant;
use ProcessMaker\Multitenancy\TenantBootstrapper;

/**
* Class Application.
Expand Down Expand Up @@ -101,15 +102,4 @@ public function registerConfiguredProviders()

parent::registerConfiguredProviders();
}

public function bootstrapWith(array $bootstrappers)
{
// Insert TenantBootstrapper after LoadEnvironmentVariables
if ($bootstrappers[0] !== LoadEnvironmentVariables::class) {
throw new \Exception('LoadEnvironmentVariables is not the first bootstrapper. Did a laravel upgrade change this?');
}
array_splice($bootstrappers, 1, 0, [TenantBootstrapper::class]);

return parent::bootstrapWith($bootstrappers);
}
}
52 changes: 50 additions & 2 deletions ProcessMaker/AssignmentRules/ProcessManagerAssigned.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
use ProcessMaker\Exception\ThereIsNoProcessManagerAssignedException;
use ProcessMaker\Models\Process;
use ProcessMaker\Models\ProcessRequest;
use ProcessMaker\Models\ProcessRequestToken;
use ProcessMaker\Models\User;
use ProcessMaker\Nayra\Contracts\Bpmn\ActivityInterface;
use ProcessMaker\Nayra\Contracts\Bpmn\TokenInterface;

Expand All @@ -24,16 +26,62 @@ class ProcessManagerAssigned implements AssignmentRuleInterface
* @param TokenInterface $token
* @param Process $process
* @param ProcessRequest $request
* @return int
* @return int|null
* @throws ThereIsNoProcessManagerAssignedException
*/
public function getNextUser(ActivityInterface $task, TokenInterface $token, Process $process, ProcessRequest $request)
{
$user_id = $request->processVersion->manager_id;
// review for multiple managers
$managers = $request->processVersion->manager_id;
$user_id = $this->getNextManagerAssigned($managers, $task, $request);
if (!$user_id) {
throw new ThereIsNoProcessManagerAssignedException($task);
}

return $user_id;
}

/**
* Get the round robin manager using a true round robin algorithm
*
* @param array $managers
* @param ActivityInterface $task
* @param ProcessRequest $request
* @return int|null
*/
private function getNextManagerAssigned($managers, $task, $request)
{
// Validate input
if (empty($managers) || !is_array($managers)) {
return null;
}

// If only one manager, return it
if (count($managers) === 1) {
return $managers[0];
}

// get the last manager assigned to the task across all requests
$last = ProcessRequestToken::where('process_id', $request->process_id)
->where('element_id', $task->getId())
->whereIn('user_id', $managers)
->orderBy('created_at', 'desc')
->first();

$user_id = $last ? $last->user_id : null;

sort($managers);

$key = array_search($user_id, $managers);
if ($key === false) {
// If no previous manager found, start with the first manager
$key = 0;
} else {
// Move to the next manager in the round-robin
$key = ($key + 1) % count($managers);
}
$user_id = $managers[$key];

return $user_id;
}
}
49 changes: 49 additions & 0 deletions ProcessMaker/CaseRetention/CaseRetentionLogCsvWriter.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<?php

namespace ProcessMaker\CaseRetention;

use Illuminate\Database\Eloquent\Builder;

final class CaseRetentionLogCsvWriter
{
/**
* Stream CSV rows to a writable stream (no column header row). UTF-8 BOM prepended.
*
* @param resource $stream
*/
public static function writeQueryToStream(Builder $query, $stream): void
{
fwrite($stream, "\xEF\xBB\xBF");

$query->clone()->chunkById(500, function ($rows) use ($stream) {
foreach ($rows as $row) {
$caseIds = $row->case_ids;
if (is_array($caseIds)) {
$caseIds = json_encode($caseIds);
}

fputcsv($stream, [
$row->id,
$row->process_id,
$caseIds,
$row->deleted_count,
$row->total_time_taken,
self::csvDateColumn($row->deleted_at),
self::csvDateColumn($row->created_at),
]);
}
});
}

public static function csvDateColumn(mixed $value): string
{
if ($value === null || $value === '') {
return '';
}
if ($value instanceof \DateTimeInterface) {
return $value->format('Y-m-d H:i:s');
}

return (string) $value;
}
}
39 changes: 39 additions & 0 deletions ProcessMaker/CaseRetention/CaseRetentionLogQueryFilter.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?php

namespace ProcessMaker\CaseRetention;

use Illuminate\Database\Eloquent\Builder;

final class CaseRetentionLogQueryFilter
{
public static function applyIfFilled(Builder $query, ?string $filter): void
{
if ($filter === null || trim($filter) === '') {
return;
}

self::apply($query, trim($filter));
}

/**
* Search log id, process_id, numeric columns, and JSON case_ids — not date columns.
*/
public static function apply(Builder $query, string $term): void
{
$like = '%' . $term . '%';
$driver = $query->getConnection()->getDriverName();

$query->where(function ($q) use ($like, $driver) {
$q->where('id', 'like', $like)
->orWhere('process_id', 'like', $like)
->orWhere('deleted_count', 'like', $like)
->orWhere('total_time_taken', 'like', $like);

if ($driver === 'pgsql') {
$q->orWhereRaw('case_ids::text ILIKE ?', [$like]);
} else {
$q->orWhereRaw('CAST(case_ids AS CHAR) LIKE ?', [$like]);
}
});
}
}
39 changes: 37 additions & 2 deletions ProcessMaker/Console/Commands/BuildScriptExecutors.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,11 @@ class BuildScriptExecutors extends Command
*
* @var string
*/
protected $signature = 'processmaker:build-script-executor {lang} {user?} {--rebuild}';
protected $signature = 'processmaker:build-script-executor
{lang : The ID or language of the script executor}
{user? : The user ID to send the broadcast event to}
{--rebuild : Rebuild the docker image}
{--build-args= : The build arguments for the docker build command}';

/**
* The console command description.
Expand Down Expand Up @@ -156,9 +160,17 @@ public function buildExecutor()
$this->info('Building the docker executor');

$image = $scriptExecutor->dockerImageName();
$cacheArg = $this->option('rebuild') ? '--no-cache ' : '';
$command = Docker::command() .
" build --build-arg SDK_DIR=./sdk -t {$image} -f {$packagePath}/Dockerfile.custom {$packagePath}";
" build {$cacheArg}--build-arg SDK_DIR=./sdk -t {$image} -f {$packagePath}/Dockerfile.custom {$packagePath}";

$buildArgs = $this->getBuildArgs();

foreach ($buildArgs as $buildArg) {
$command .= ' ' . $buildArg;
}

$this->info("Running command: $command");
$this->execCommand($command);

$isNayra = $scriptExecutor->language === Base::NAYRA_LANG;
Expand All @@ -167,6 +179,29 @@ public function buildExecutor()
}
}

/**
* Get the build arguments for the docker build command.
*
* @return array
* - '--build-arg <key>=<value>'
*/
public function getBuildArgs(): array
{
$args = $this->option('build-args');

if ($args) {
$buildArgs = [];

foreach (explode(',', $args) as $arg) {
$buildArgs[] = '--build-arg ' . $arg;
}

return $buildArgs;
}

return [];
}

public function getDockerfileContent(ScriptExecutor $scriptExecutor): string
{
$lang = $scriptExecutor->language;
Expand Down
6 changes: 4 additions & 2 deletions ProcessMaker/Console/Commands/CreateDataLakeViews.php
Original file line number Diff line number Diff line change
Expand Up @@ -181,9 +181,10 @@ protected function getTableColumns(string $tableName): array
*/
protected function getTables(): array
{
$database = \DB::connection()->getDatabaseName();
$tables = array_map(function ($item) {
return $item['name'];
}, Schema::getTables());
}, Schema::getTables($database));

return $tables;
}
Expand All @@ -193,9 +194,10 @@ protected function getTables(): array
*/
protected function getViews(): array
{
$database = \DB::connection()->getDatabaseName();
$views = array_map(function ($item) {
return $item['name'];
}, Schema::getViews());
}, Schema::getViews($database));

return $views;
}
Expand Down
66 changes: 0 additions & 66 deletions ProcessMaker/Console/Commands/CreateTestDBs.php

This file was deleted.

Loading
Loading