Skip to content

Expand appsec integrations to Laminas Framework#3716

Draft
estringana wants to merge 8 commits intomasterfrom
estringana/add-laminas-appsec-integration
Draft

Expand appsec integrations to Laminas Framework#3716
estringana wants to merge 8 commits intomasterfrom
estringana/add-laminas-appsec-integration

Conversation

@estringana
Copy link
Copy Markdown
Contributor

Description

Reviewer checklist

  • Test coverage seems ok.
  • Appropriate labels assigned.

@estringana estringana force-pushed the estringana/add-laminas-appsec-integration branch from 820057d to eae5325 Compare March 23, 2026 11:22
@datadog-prod-us1-4
Copy link
Copy Markdown

datadog-prod-us1-4 bot commented Mar 23, 2026

⚠️ Tests

Fix all issues with BitsAI or with Cursor

⚠️ Warnings

❄️ 4 New flaky tests detected

testLoggedInCalls from tests/Integrations/Laminas/Mvc/V3_3.DDTrace\Tests\Integrations\Laminas\Mvc\V3_3\AutomatedLoginEventsTest   View in Datadog   (Fix with Cursor)
DDTrace\Tests\Integrations\Laminas\Mvc\V3_3\AutomatedLoginEventsTest::testLoggedInCalls
Got error from webserver:

tests/Common/WebFrameworkTestCase.php:74
tests/Common/MultiPHPUnitVersionAdapter_typed.php:33
tests/Common/RetryTraitVersionGeneric.php:28
testUserLoginFailureEvent from tests/Integrations/Laminas/Mvc/V3_3.DDTrace\Tests\Integrations\Laminas\Mvc\V3_3\AutomatedLoginEventsTest   View in Datadog   (Fix with Cursor)
DDTrace\Tests\Integrations\Laminas\Mvc\V3_3\AutomatedLoginEventsTest::testUserLoginFailureEvent
Got error from webserver:

tests/Common/WebFrameworkTestCase.php:74
tests/Common/MultiPHPUnitVersionAdapter_typed.php:33
tests/Common/RetryTraitVersionGeneric.php:28
testUserLoginSuccessEvent from tests/Integrations/Laminas/Mvc/V3_3.DDTrace\Tests\Integrations\Laminas\Mvc\V3_3\AutomatedLoginEventsTest   View in Datadog   (Fix with Cursor)
DDTrace\Tests\Integrations\Laminas\Mvc\V3_3\AutomatedLoginEventsTest::testUserLoginSuccessEvent
Got error from webserver:

tests/Common/WebFrameworkTestCase.php:74
tests/Common/MultiPHPUnitVersionAdapter_typed.php:33
tests/Common/RetryTraitVersionGeneric.php:28
testUserSignUp from tests/Integrations/Laminas/Mvc/V3_3.DDTrace\Tests\Integrations\Laminas\Mvc\V3_3\AutomatedLoginEventsTest   View in Datadog   (Fix with Cursor)
DDTrace\Tests\Integrations\Laminas\Mvc\V3_3\AutomatedLoginEventsTest::testUserSignUp
Got error from webserver:

tests/Common/WebFrameworkTestCase.php:74
tests/Common/MultiPHPUnitVersionAdapter_typed.php:33
tests/Common/RetryTraitVersionGeneric.php:28
View all

🧪 1078 Tests failed

Endpoints are sent() from com.datadog.appsec.php.integration.Laminas33Tests   View in Datadog   (Fix with Cursor)
Assertion failed: 

assert endpoints.size() == 4
       |         |      |
       |         3      false
       [Endpoint[method='GET', operationName='http.request', path='/register', resourceName='GET /register'], Endpoint[method='GET', operationName='http.request', path='/authenticate', resourceName='GET /authenticate'], Endpoint[method='GET', operationName='http.request', path='/', resourceName='GET /']]

Assertion failed: 

assert endpoints.size() == 4
...
home request sets http route to literal slash() from com.datadog.appsec.php.integration.Laminas33Tests   View in Datadog   (Fix with Cursor)
Assertion failed: 

assert span.meta.'http.route' == '/'
       |    |    |            |
       |    |    null         false
       |    ['laminas.route.action':'Application\\Controller\\IndexController@index', 'laminas.route.name':'home', 'http.url':'http://docker:32772/', '_dd.p.dm':'-1', 'env':'integration', 'http.client_ip':'172.17.0.1', 'http.status_code':'200', 'http.request.headers.user-agent':'Java-http-client/17.0.15', 'component':'laminas', 'http.response.headers.content-type':'text/html; charset=UTF-8', 'http.endpoint':'/', '_dd.appsec.event_rules.version':'1.4.3', '_dd.p.ksr':'1', 'span.kind':'server', '_dd.appsec.helper_runtime':'rust', '_dd.runtime_family':'php', 'runtime-id':'ae447bb3-cecd-41ac-a89b-225035f3662e', 'http.request.headers.content-length':'0', 'http.method':'GET', 'http.version':'1.1', 'http.useragent':'Java-http-client/17.0.15']
       com.datadog.appsec.php.model.Span@6d9428f3

Assertion failed: 

...
Login failure automated event() from com.datadog.appsec.php.integration.Laminas33Tests   View in Datadog   (Fix with Cursor)
Assertion failed: 

assert span.meta.'http.route' == '/authenticate'
       |    |    |            |
       |    |    null         false
       |    ['appsec.events.users.login.failure.track':'true', 'server.business_logic.users.login.failure':'null', 'laminas.route.action':'Application\\Controller\\LoginController@auth', 'appsec.events.users.login.failure.usr.login':'nonExisiting@email.com', 'http.url':'http://docker:32772/authenticate?email=nonExisiting@email.com', 'http.client_ip':'172.17.0.1', 'span.kind':'server', 'runtime-id':'ae447bb3-cecd-41ac-a89b-225035f3662e', 'appsec.events.users.login.failure.usr.exists':'false', 'http.request.headers.content-length':'0', '_dd.appsec.s.req.params':'[[[8]],{"len":1}]', 'http.version':'1.1', '_dd.appsec.s.req.query':'[{"email":[8]}]', 'http.method':'GET', 'laminas.route.name':'authenticate', '_dd.appsec.s.req.cookies':'[[],{"len":0}]', '_dd.appsec.usr.id':'nonExisiting@email.com', '_dd.appsec.s.req.body':'[[],{"len":0}]', '_dd.p.dm':'-5', 'env':'integration', 'http.request.headers.user-agent':'Java-http-client/17.0.15', 'http.status_code':'403', 'component':'laminas', '_dd.p.ts':'02', 'http.response.headers.content-type':'text/html; charset=UTF-8', 'http.endpoint':'/authenticate', '_dd.appsec.event_rules.version':'1.4.3', '_dd.appsec.helper_runtime':'rust', '_dd.runtime_family':'php', '_dd.appsec.usr.login':'nonExisiting@email.com', 'http.request.headers.host':'docker:32772', 'appsec.events.users.login.failure.usr.id':'nonExisiting@email.com', '_dd.appsec.events.users.login.failure.auto.mode':'identification', 'http.useragent':'Java-http-client/17.0.15']
       com.datadog.appsec.php.model.Span@533e2f4

Assertion failed: 

...
View all
This comment will be updated automatically if new data arrives.
🔗 Commit SHA: d2866e8 | Docs | Datadog PR Page | Was this helpful? React with 👍/👎 or give us feedback!

@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Mar 23, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 68.74%. Comparing base (78ecdb0) to head (d2866e8).
⚠️ Report is 16 commits behind head on master.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #3716      +/-   ##
==========================================
- Coverage   68.81%   68.74%   -0.08%     
==========================================
  Files         166      166              
  Lines       19030    19030              
  Branches     1797     1797              
==========================================
- Hits        13096    13082      -14     
- Misses       5121     5135      +14     
  Partials      813      813              
Flag Coverage Δ
helper-rust-integration 78.82% <ø> (-0.03%) ⬇️
helper-rust-unit 49.17% <ø> (-0.20%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.
see 4 files with indirect coverage changes


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 78ecdb0...d2866e8. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@pr-commenter
Copy link
Copy Markdown

pr-commenter bot commented Mar 23, 2026

Benchmarks [ tracer ]

Benchmark execution time: 2026-03-23 16:32:35

Comparing candidate commit f9ebd59 in PR branch estringana/add-laminas-appsec-integration with baseline commit 78ecdb0 in branch master.

Found 3 performance improvements and 1 performance regressions! Performance is the same for 190 metrics, 0 unstable metrics.

scenario:MessagePackSerializationBench/benchMessagePackSerialization

  • 🟩 execution_time [-6.859µs; -5.581µs] or [-6.113%; -4.973%]

scenario:MessagePackSerializationBench/benchMessagePackSerialization-opcache

  • 🟩 execution_time [-3.543µs; -2.397µs] or [-3.213%; -2.174%]

scenario:PHPRedisBench/benchRedisOverhead

  • 🟥 execution_time [+30.284µs; +59.801µs] or [+3.852%; +7.606%]

scenario:SamplingRuleMatchingBench/benchRegexMatching1-opcache

  • 🟩 execution_time [-9.770µs; -9.517µs] or [-87.318%; -85.061%]

@github-actions
Copy link
Copy Markdown
Contributor

Snapshots difference summary

The following differences have been observed in committed snapshots. It is meant to help the reviewer.
The diff is simplistic, so please check some files anyway while we improve it.

If you need to update snapshots, please refer to CONTRIBUTING.md

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants