Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
d187bd4
feat(etag): add ETag middleware and customizable ETag generation
eiresendez Nov 26, 2024
d3e4d2e
refactor: combine ETag generation and validation into a single middle…
eiresendez Nov 28, 2024
d5dd9a8
refactor: add tests for combined ETag middleware and remove deprecate…
eiresendez Nov 28, 2024
bc39c24
test: add middleware tests for user-specific ETag generation
eiresendez Nov 28, 2024
ea9795c
Add ETag to Screen Responses
eiresendez Nov 28, 2024
924cd3c
Merge branch 'epic/FOUR-20929' into story/FOUR-20933
eiresendez Nov 29, 2024
c283de6
Merge pull request #7771 from ProcessMaker/story/FOUR-20933
eiresendez Dec 2, 2024
7d33532
Merge branch 'release-2024-fall' into epic/FOUR-20929
eiresendez Dec 2, 2024
f058177
Exclude 'active_at' field from TaskResource and requestor serializati…
eiresendez Dec 2, 2024
48cd7d6
Implement ETag Caching for Task Responses
eiresendez Dec 2, 2024
8b327c8
restrict ETag handling to GET/HEAD and enforce user-specific caching
eiresendez Dec 3, 2024
dae2468
Add ETag middleware to API group to support package routes
eiresendez Dec 5, 2024
8a94369
Apply ETag middleware to v1.1 routes for consistent caching
eiresendez Dec 5, 2024
d748403
feat: add flexibility to ETag generation with sources
eiresendez Dec 5, 2024
cdaa80d
add ETag middleware to startProcesses route
eiresendez Dec 6, 2024
e64f7a7
Merge pull request #7786 from ProcessMaker/story/FOUR-20944
eiresendez Dec 6, 2024
da5ba5d
Add detailed ETag implementation and testing documentation
eiresendez Dec 10, 2024
33fe4f6
Add ETag cache invalidation tests
eiresendez Dec 11, 2024
428b0ee
Enhance ETag middleware to log dynamic endpoint detection
eiresendez Dec 12, 2024
24afdfc
Merge pull request #7817 from ProcessMaker/story/FOUR-20950
eiresendez Dec 13, 2024
f28fcb5
Add configuration support for ETag logging and caching
eiresendez Dec 16, 2024
4e7afdc
Add ETag response time comparison for 200 vs 304
eiresendez Dec 17, 2024
d590373
Add ETag history tracking to detect dynamic endpoints
eiresendez Dec 17, 2024
8086a78
Add long-duration test to validate ETag stability under sustained load
eiresendez Dec 17, 2024
c295567
Merge pull request #7834 from ProcessMaker/story/FOUR-20954
eiresendez Dec 18, 2024
a6b7ee0
Merge branch 'release-2025-winter' into epic/FOUR-20929
eiresendez Jan 23, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Apply ETag middleware to v1.1 routes for consistent caching
  • Loading branch information
eiresendez committed Dec 5, 2024
commit 8a94369fd213988a5bae094667eccf5ca5143074
2 changes: 1 addition & 1 deletion ProcessMaker/Providers/RouteServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ protected function mapApiRoutes()
{
Route::middleware('api')
->group(base_path('routes/api.php'));
Route::middleware('auth:api')
Route::middleware(['auth:api', 'etag'])
->group(base_path('routes/v1_1/api.php'));
}

Expand Down
4 changes: 1 addition & 3 deletions routes/api.php
Original file line number Diff line number Diff line change
Expand Up @@ -208,9 +208,7 @@
Route::post('tasks/{task}/setViewed', [TaskController::class, 'setViewed'])->name('tasks.set_viewed')->middleware('can:viewScreen,task,screen');
Route::put('tasks/{task}/setPriority', [TaskController::class, 'setPriority'])->name('tasks.priority');
Route::put('tasks/updateReassign', [TaskController::class, 'updateReassign'])->name('tasks.updateReassign');
Route::get('tasks/user-can-reassign', [TaskController::class, 'userCanReassign'])
->middleware('etag:user')
->name('tasks.user_can_reassign');
Route::get('tasks/user-can-reassign', [TaskController::class, 'userCanReassign'])->name('tasks.user_can_reassign');

// TaskDrafts
Route::put('drafts/{task}', [TaskDraftController::class, 'update'])->name('taskdraft.update');
Expand Down
3 changes: 1 addition & 2 deletions routes/v1_1/api.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,10 @@
// Route to show a task
Route::get('/{task}', [TaskController::class, 'show'])
->name('show')
->middleware(['bindings', 'can:view,task', 'etag:user']);
->middleware(['bindings', 'can:view,task']);

// Route to show the screen of a task
Route::get('/{taskId}/screen', [TaskController::class, 'showScreen'])
->middleware('etag')
->name('show.screen');

// Route to show the interstitial screen of a task
Expand Down
2 changes: 1 addition & 1 deletion tests/Feature/Etag/HandleEtagTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ public function testDefaultGetEtagGeneratesCorrectEtagWithUser()
$user = User::factory()->create();
$this->actingAs($user);

Route::middleware('etag:user')->any(self::TEST_ROUTE, function () {
Route::middleware('etag')->any(self::TEST_ROUTE, function () {
return response($this->response, 200);
});

Expand Down