Skip to content

Extract Vert.x json body response schemas #9001

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

manuel-alvarez-alvarez
Copy link
Member

@manuel-alvarez-alvarez manuel-alvarez-alvarez commented Jun 17, 2025

What Does This Do

Adds response body extraction for Vert.x JSON endpoints to enable automatic API schema discovery and protection by the Web Application Firewall (WAF). Support is for Vert.x >= 4.x (leverages new JSON response API introduced in v4.x)

Motivation

Additional Notes

Contributor Checklist

Jira ticket: APPSEC-57920

@manuel-alvarez-alvarez manuel-alvarez-alvarez added comp: asm waf Application Security Management (WAF) inst: vertx Eclipse Vert.x instrumentation type: enhancement labels Jun 17, 2025
@manuel-alvarez-alvarez manuel-alvarez-alvarez marked this pull request as ready for review June 17, 2025 17:28
@manuel-alvarez-alvarez manuel-alvarez-alvarez requested review from a team as code owners June 17, 2025 17:28
@pr-commenter
Copy link

pr-commenter bot commented Jun 17, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master malvarez/vertx-response-extraction
git_commit_date 1750764487 1750768091
git_commit_sha d78bb4d 3a7d412
release_version 1.51.0-SNAPSHOT~d78bb4d2b2 1.51.0-SNAPSHOT~3a7d412955
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1750769864 1750769864
ci_job_id 995633485 995633485
ci_pipeline_id 68589012 68589012
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-bziamzy-project-304-concurrent-0-2yb6tk2v 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-bziamzy-project-304-concurrent-0-2yb6tk2v 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
module Agent Agent
parent None None

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 47 metrics, 6 unstable metrics.

Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.51.0-SNAPSHOT~3a7d412955, baseline=1.51.0-SNAPSHOT~d78bb4d2b2

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.004 s) : 0, 1003534
Total [baseline] (10.682 s) : 0, 10681812
Agent [candidate] (1.009 s) : 0, 1008753
Total [candidate] (10.747 s) : 0, 10747024
section appsec
Agent [baseline] (1.171 s) : 0, 1171268
Total [baseline] (10.727 s) : 0, 10727244
Agent [candidate] (1.174 s) : 0, 1174262
Total [candidate] (10.702 s) : 0, 10702499
section iast
Agent [baseline] (1.131 s) : 0, 1131361
Total [baseline] (10.815 s) : 0, 10815100
Agent [candidate] (1.133 s) : 0, 1132907
Total [candidate] (10.845 s) : 0, 10845368
section profiling
Agent [baseline] (1.242 s) : 0, 1242072
Total [baseline] (10.958 s) : 0, 10958389
Agent [candidate] (1.242 s) : 0, 1242119
Total [candidate] (11.107 s) : 0, 11106881
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.004 s -
Agent appsec 1.171 s 167.734 ms (16.7%)
Agent iast 1.131 s 127.827 ms (12.7%)
Agent profiling 1.242 s 238.538 ms (23.8%)
Total tracing 10.682 s -
Total appsec 10.727 s 45.432 ms (0.4%)
Total iast 10.815 s 133.288 ms (1.2%)
Total profiling 10.958 s 276.577 ms (2.6%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.009 s -
Agent appsec 1.174 s 165.509 ms (16.4%)
Agent iast 1.133 s 124.154 ms (12.3%)
Agent profiling 1.242 s 233.366 ms (23.1%)
Total tracing 10.747 s -
Total appsec 10.702 s -44.526 ms (-0.4%)
Total iast 10.845 s 98.343 ms (0.9%)
Total profiling 11.107 s 359.856 ms (3.3%)
gantt
    title petclinic - break down per module: candidate=1.51.0-SNAPSHOT~3a7d412955, baseline=1.51.0-SNAPSHOT~d78bb4d2b2

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (692.722 ms) : 0, 692722
BytebuddyAgent [candidate] (696.83 ms) : 0, 696830
GlobalTracer [baseline] (244.542 ms) : 0, 244542
GlobalTracer [candidate] (245.001 ms) : 0, 245001
AppSec [baseline] (30.265 ms) : 0, 30265
AppSec [candidate] (30.776 ms) : 0, 30776
Debugger [baseline] (6.105 ms) : 0, 6105
Debugger [candidate] (6.172 ms) : 0, 6172
Remote Config [baseline] (651.023 µs) : 0, 651
Remote Config [candidate] (665.524 µs) : 0, 666
Telemetry [baseline] (8.271 ms) : 0, 8271
Telemetry [candidate] (8.265 ms) : 0, 8265
section appsec
BytebuddyAgent [baseline] (708.491 ms) : 0, 708491
BytebuddyAgent [candidate] (711.269 ms) : 0, 711269
GlobalTracer [baseline] (236.005 ms) : 0, 236005
GlobalTracer [candidate] (236.313 ms) : 0, 236313
IAST [baseline] (21.872 ms) : 0, 21872
IAST [candidate] (21.916 ms) : 0, 21916
AppSec [baseline] (169.398 ms) : 0, 169398
AppSec [candidate] (169.269 ms) : 0, 169269
Debugger [baseline] (5.923 ms) : 0, 5923
Debugger [candidate] (5.818 ms) : 0, 5818
Remote Config [baseline] (604.809 µs) : 0, 605
Remote Config [candidate] (599.055 µs) : 0, 599
Telemetry [baseline] (8.158 ms) : 0, 8158
Telemetry [candidate] (8.243 ms) : 0, 8243
section iast
BytebuddyAgent [baseline] (808.399 ms) : 0, 808399
BytebuddyAgent [candidate] (809.135 ms) : 0, 809135
GlobalTracer [baseline] (232.861 ms) : 0, 232861
GlobalTracer [candidate] (233.351 ms) : 0, 233351
IAST [baseline] (25.218 ms) : 0, 25218
IAST [candidate] (27.644 ms) : 0, 27644
AppSec [baseline] (29.763 ms) : 0, 29763
AppSec [candidate] (27.602 ms) : 0, 27602
Debugger [baseline] (5.735 ms) : 0, 5735
Debugger [candidate] (5.805 ms) : 0, 5805
Remote Config [baseline] (594.076 µs) : 0, 594
Remote Config [candidate] (570.04 µs) : 0, 570
Telemetry [baseline] (7.875 ms) : 0, 7875
Telemetry [candidate] (7.945 ms) : 0, 7945
section profiling
BytebuddyAgent [baseline] (677.456 ms) : 0, 677456
BytebuddyAgent [candidate] (677.773 ms) : 0, 677773
GlobalTracer [baseline] (361.667 ms) : 0, 361667
GlobalTracer [candidate] (361.274 ms) : 0, 361274
AppSec [baseline] (30.239 ms) : 0, 30239
AppSec [candidate] (30.654 ms) : 0, 30654
Debugger [baseline] (11.241 ms) : 0, 11241
Debugger [candidate] (8.9 ms) : 0, 8900
Remote Config [baseline] (655.389 µs) : 0, 655
Remote Config [candidate] (656.119 µs) : 0, 656
Telemetry [baseline] (10.014 ms) : 0, 10014
Telemetry [candidate] (12.232 ms) : 0, 12232
ProfilingAgent [baseline] (102.137 ms) : 0, 102137
ProfilingAgent [candidate] (101.87 ms) : 0, 101870
Profiling [baseline] (102.162 ms) : 0, 102162
Profiling [candidate] (101.895 ms) : 0, 101895
Loading
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.51.0-SNAPSHOT~3a7d412955, baseline=1.51.0-SNAPSHOT~d78bb4d2b2

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.003 s) : 0, 1003423
Total [baseline] (8.561 s) : 0, 8561049
Agent [candidate] (997.464 ms) : 0, 997464
Total [candidate] (8.578 s) : 0, 8577909
section iast
Agent [baseline] (1.13 s) : 0, 1129879
Total [baseline] (9.26 s) : 0, 9259667
Agent [candidate] (1.13 s) : 0, 1129899
Total [candidate] (9.301 s) : 0, 9300891
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.003 s -
Agent iast 1.13 s 126.456 ms (12.6%)
Total tracing 8.561 s -
Total iast 9.26 s 698.618 ms (8.2%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 997.464 ms -
Agent iast 1.13 s 132.435 ms (13.3%)
Total tracing 8.578 s -
Total iast 9.301 s 722.981 ms (8.4%)
gantt
    title insecure-bank - break down per module: candidate=1.51.0-SNAPSHOT~3a7d412955, baseline=1.51.0-SNAPSHOT~d78bb4d2b2

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (693.203 ms) : 0, 693203
BytebuddyAgent [candidate] (688.269 ms) : 0, 688269
GlobalTracer [baseline] (244.147 ms) : 0, 244147
GlobalTracer [candidate] (243.227 ms) : 0, 243227
AppSec [baseline] (30.113 ms) : 0, 30113
AppSec [candidate] (30.173 ms) : 0, 30173
Debugger [baseline] (6.065 ms) : 0, 6065
Debugger [candidate] (6.068 ms) : 0, 6068
Remote Config [baseline] (664.982 µs) : 0, 665
Remote Config [candidate] (654.517 µs) : 0, 655
Telemetry [baseline] (8.204 ms) : 0, 8204
Telemetry [candidate] (8.118 ms) : 0, 8118
section iast
BytebuddyAgent [baseline] (806.69 ms) : 0, 806690
BytebuddyAgent [candidate] (806.617 ms) : 0, 806617
GlobalTracer [baseline] (232.464 ms) : 0, 232464
GlobalTracer [candidate] (233.012 ms) : 0, 233012
IAST [baseline] (26.889 ms) : 0, 26889
IAST [candidate] (29.259 ms) : 0, 29259
AppSec [baseline] (28.592 ms) : 0, 28592
AppSec [candidate] (25.886 ms) : 0, 25886
Debugger [baseline] (5.834 ms) : 0, 5834
Debugger [candidate] (5.83 ms) : 0, 5830
Remote Config [baseline] (587.695 µs) : 0, 588
Remote Config [candidate] (576.32 µs) : 0, 576
Telemetry [baseline] (7.981 ms) : 0, 7981
Telemetry [candidate] (7.911 ms) : 0, 7911
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master malvarez/vertx-response-extraction
git_commit_date 1750764487 1750768091
git_commit_sha d78bb4d 3a7d412
release_version 1.51.0-SNAPSHOT~d78bb4d2b2 1.51.0-SNAPSHOT~3a7d412955
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1750769661 1750769661
ci_job_id 995633486 995633486
ci_pipeline_id 68589012 68589012
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-psdwjdjn-project-304-concurrent-0-lbacyvz4 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-psdwjdjn-project-304-concurrent-0-lbacyvz4 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

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

scenario Δ mean http_req_duration Δ mean throughput candidate mean http_req_duration candidate mean throughput baseline mean http_req_duration baseline mean throughput
scenario:load:insecure-bank:profiling:high_load better
[-652.666µs; -350.279µs] or [-7.069%; -3.794%]
unstable
[-41.877op/s; +99.439op/s] or [-8.334%; +19.789%]
8.732ms 531.281op/s 9.233ms 502.500op/s
scenario:load:petclinic:profiling:high_load worse
[+3.055ms; +4.071ms] or [+6.502%; +8.665%]
unstable
[-14.450op/s; +0.250op/s] or [-14.494%; +0.251%]
50.552ms 92.600op/s 46.989ms 99.700op/s
scenario:load:petclinic:no_agent:high_load worse
[+1.536ms; +2.178ms] or [+4.302%; +6.100%]
unstable
[-13.595op/s; +3.821op/s] or [-10.384%; +2.919%]
37.560ms 126.038op/s 35.703ms 130.925op/s
scenario:load:petclinic:appsec:high_load worse
[+2.536ms; +3.416ms] or [+5.615%; +7.563%]
unstable
[-12.141op/s; +1.801op/s] or [-11.722%; +1.739%]
48.146ms 98.405op/s 45.170ms 103.575op/s
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.51.0-SNAPSHOT~3a7d412955, baseline=1.51.0-SNAPSHOT~d78bb4d2b2
    dateFormat X
    axisFormat %s
section baseline
no_agent (4.447 ms) : 4388, 4505
.   : milestone, 4447,
iast (9.008 ms) : 8862, 9154
.   : milestone, 9008,
iast_FULL (13.976 ms) : 13693, 14258
.   : milestone, 13976,
iast_GLOBAL (9.87 ms) : 9701, 10039
.   : milestone, 9870,
profiling (9.233 ms) : 9085, 9381
.   : milestone, 9233,
tracing (7.819 ms) : 7702, 7937
.   : milestone, 7819,
section candidate
no_agent (4.451 ms) : 4400, 4503
.   : milestone, 4451,
iast (8.987 ms) : 8842, 9132
.   : milestone, 8987,
iast_FULL (13.773 ms) : 13495, 14050
.   : milestone, 13773,
iast_GLOBAL (9.855 ms) : 9684, 10026
.   : milestone, 9855,
profiling (8.732 ms) : 8599, 8864
.   : milestone, 8732,
tracing (7.876 ms) : 7763, 7990
.   : milestone, 7876,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 4.447 ms [4.388 ms, 4.505 ms] -
iast 9.008 ms [8.862 ms, 9.154 ms] 4.562 ms (102.6%)
iast_FULL 13.976 ms [13.693 ms, 14.258 ms] 9.529 ms (214.3%)
iast_GLOBAL 9.87 ms [9.701 ms, 10.039 ms] 5.423 ms (122.0%)
profiling 9.233 ms [9.085 ms, 9.381 ms] 4.787 ms (107.6%)
tracing 7.819 ms [7.702 ms, 7.937 ms] 3.373 ms (75.8%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 4.451 ms [4.4 ms, 4.503 ms] -
iast 8.987 ms [8.842 ms, 9.132 ms] 4.536 ms (101.9%)
iast_FULL 13.773 ms [13.495 ms, 14.05 ms] 9.321 ms (209.4%)
iast_GLOBAL 9.855 ms [9.684 ms, 10.026 ms] 5.404 ms (121.4%)
profiling 8.732 ms [8.599 ms, 8.864 ms] 4.28 ms (96.2%)
tracing 7.876 ms [7.763 ms, 7.99 ms] 3.425 ms (76.9%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.51.0-SNAPSHOT~3a7d412955, baseline=1.51.0-SNAPSHOT~d78bb4d2b2
    dateFormat X
    axisFormat %s
section baseline
no_agent (35.703 ms) : 35413, 35993
.   : milestone, 35703,
appsec (45.17 ms) : 44778, 45561
.   : milestone, 45170,
code_origins (44.741 ms) : 44388, 45094
.   : milestone, 44741,
iast (44.004 ms) : 43619, 44390
.   : milestone, 44004,
profiling (46.989 ms) : 46538, 47440
.   : milestone, 46989,
tracing (42.83 ms) : 42493, 43167
.   : milestone, 42830,
section candidate
no_agent (37.56 ms) : 37253, 37866
.   : milestone, 37560,
appsec (48.146 ms) : 47720, 48571
.   : milestone, 48146,
code_origins (45.796 ms) : 45408, 46184
.   : milestone, 45796,
iast (43.633 ms) : 43256, 44010
.   : milestone, 43633,
profiling (50.552 ms) : 50060, 51045
.   : milestone, 50552,
tracing (43.919 ms) : 43544, 44293
.   : milestone, 43919,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 35.703 ms [35.413 ms, 35.993 ms] -
appsec 45.17 ms [44.778 ms, 45.561 ms] 9.467 ms (26.5%)
code_origins 44.741 ms [44.388 ms, 45.094 ms] 9.038 ms (25.3%)
iast 44.004 ms [43.619 ms, 44.39 ms] 8.302 ms (23.3%)
profiling 46.989 ms [46.538 ms, 47.44 ms] 11.287 ms (31.6%)
tracing 42.83 ms [42.493 ms, 43.167 ms] 7.127 ms (20.0%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 37.56 ms [37.253 ms, 37.866 ms] -
appsec 48.146 ms [47.72 ms, 48.571 ms] 10.586 ms (28.2%)
code_origins 45.796 ms [45.408 ms, 46.184 ms] 8.236 ms (21.9%)
iast 43.633 ms [43.256 ms, 44.01 ms] 6.074 ms (16.2%)
profiling 50.552 ms [50.06 ms, 51.045 ms] 12.993 ms (34.6%)
tracing 43.919 ms [43.544 ms, 44.293 ms] 6.359 ms (16.9%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master malvarez/vertx-response-extraction
git_commit_date 1750764487 1750768091
git_commit_sha d78bb4d 3a7d412
release_version 1.51.0-SNAPSHOT~d78bb4d2b2 1.51.0-SNAPSHOT~3a7d412955
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1750770130 1750770130
ci_job_id 995633487 995633487
ci_pipeline_id 68589012 68589012
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-bziamzy-project-304-concurrent-1-rf60vc1b 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-bziamzy-project-304-concurrent-1-rf60vc1b 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

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

Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.51.0-SNAPSHOT~3a7d412955, baseline=1.51.0-SNAPSHOT~d78bb4d2b2
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.53 s) : 15530000, 15530000
.   : milestone, 15530000,
appsec (14.922 s) : 14922000, 14922000
.   : milestone, 14922000,
iast (18.289 s) : 18289000, 18289000
.   : milestone, 18289000,
iast_GLOBAL (17.854 s) : 17854000, 17854000
.   : milestone, 17854000,
profiling (15.139 s) : 15139000, 15139000
.   : milestone, 15139000,
tracing (15.104 s) : 15104000, 15104000
.   : milestone, 15104000,
section candidate
no_agent (15.231 s) : 15231000, 15231000
.   : milestone, 15231000,
appsec (14.829 s) : 14829000, 14829000
.   : milestone, 14829000,
iast (18.488 s) : 18488000, 18488000
.   : milestone, 18488000,
iast_GLOBAL (18.038 s) : 18038000, 18038000
.   : milestone, 18038000,
profiling (15.342 s) : 15342000, 15342000
.   : milestone, 15342000,
tracing (15.139 s) : 15139000, 15139000
.   : milestone, 15139000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.53 s [15.53 s, 15.53 s] -
appsec 14.922 s [14.922 s, 14.922 s] -608.0 ms (-3.9%)
iast 18.289 s [18.289 s, 18.289 s] 2.759 s (17.8%)
iast_GLOBAL 17.854 s [17.854 s, 17.854 s] 2.324 s (15.0%)
profiling 15.139 s [15.139 s, 15.139 s] -391.0 ms (-2.5%)
tracing 15.104 s [15.104 s, 15.104 s] -426.0 ms (-2.7%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.231 s [15.231 s, 15.231 s] -
appsec 14.829 s [14.829 s, 14.829 s] -402.0 ms (-2.6%)
iast 18.488 s [18.488 s, 18.488 s] 3.257 s (21.4%)
iast_GLOBAL 18.038 s [18.038 s, 18.038 s] 2.807 s (18.4%)
profiling 15.342 s [15.342 s, 15.342 s] 111.0 ms (0.7%)
tracing 15.139 s [15.139 s, 15.139 s] -92.0 ms (-0.6%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.51.0-SNAPSHOT~3a7d412955, baseline=1.51.0-SNAPSHOT~d78bb4d2b2
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.471 ms) : 1460, 1483
.   : milestone, 1471,
appsec (2.382 ms) : 2335, 2430
.   : milestone, 2382,
iast (2.178 ms) : 2117, 2238
.   : milestone, 2178,
iast_GLOBAL (2.223 ms) : 2161, 2284
.   : milestone, 2223,
profiling (2.039 ms) : 1989, 2088
.   : milestone, 2039,
tracing (2.001 ms) : 1954, 2048
.   : milestone, 2001,
section candidate
no_agent (1.471 ms) : 1459, 1482
.   : milestone, 1471,
appsec (2.386 ms) : 2338, 2434
.   : milestone, 2386,
iast (2.167 ms) : 2106, 2227
.   : milestone, 2167,
iast_GLOBAL (2.218 ms) : 2157, 2279
.   : milestone, 2218,
profiling (2.038 ms) : 1988, 2088
.   : milestone, 2038,
tracing (1.985 ms) : 1938, 2031
.   : milestone, 1985,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.471 ms [1.46 ms, 1.483 ms] -
appsec 2.382 ms [2.335 ms, 2.43 ms] 911.381 µs (62.0%)
iast 2.178 ms [2.117 ms, 2.238 ms] 706.758 µs (48.0%)
iast_GLOBAL 2.223 ms [2.161 ms, 2.284 ms] 751.409 µs (51.1%)
profiling 2.039 ms [1.989 ms, 2.088 ms] 567.614 µs (38.6%)
tracing 2.001 ms [1.954 ms, 2.048 ms] 530.238 µs (36.0%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.471 ms [1.459 ms, 1.482 ms] -
appsec 2.386 ms [2.338 ms, 2.434 ms] 915.396 µs (62.2%)
iast 2.167 ms [2.106 ms, 2.227 ms] 696.112 µs (47.3%)
iast_GLOBAL 2.218 ms [2.157 ms, 2.279 ms] 747.612 µs (50.8%)
profiling 2.038 ms [1.988 ms, 2.088 ms] 567.792 µs (38.6%)
tracing 1.985 ms [1.938 ms, 2.031 ms] 513.973 µs (35.0%)

@manuel-alvarez-alvarez manuel-alvarez-alvarez force-pushed the malvarez/vertx-response-extraction branch from e6d0da9 to bf5e01e Compare June 19, 2025 08:39
Copy link
Member

@jandro996 jandro996 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct me if I'm wrong but I feel that we are missing this part of the RFC

DD_API_SECURITY_PARSE_RESPONSE_BODY: this is a configuration option which libraries with the ability to parse the response body must implement to allow the user to disable this feature. With a true, or equivalent value, response body parsing should be enabled. If implemented, the default value of this configuration option must be true.

There is also a system test that validates this
tests/appsec/api_security/test_schemas.py::Test_Schema_Response_Body_env_var::test_request_method

@manuel-alvarez-alvarez
Copy link
Member Author

Correct me if I'm wrong but I feel that we are missing this part of the RFC

DD_API_SECURITY_PARSE_RESPONSE_BODY: this is a configuration option which libraries with the ability to parse the response body must implement to allow the user to disable this feature. With a true, or equivalent value, response body parsing should be enabled. If implemented, the default value of this configuration option must be true.

There is also a system test that validates this tests/appsec/api_security/test_schemas.py::Test_Schema_Response_Body_env_var::test_request_method

Yep, parsing the body is not going to be implemented in the library at the moment.

Copy link
Member

@jandro996 jandro996 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! just a bunch of questions

@manuel-alvarez-alvarez manuel-alvarez-alvarez force-pushed the malvarez/vertx-response-extraction branch from 3fabdcd to fe0c272 Compare June 23, 2025 09:53
@manuel-alvarez-alvarez manuel-alvarez-alvarez force-pushed the malvarez/vertx-response-extraction branch 2 times, most recently from 25ab23e to 24b6231 Compare June 23, 2025 12:00
Base automatically changed from malvarez/http-route-play to master June 24, 2025 07:55
@manuel-alvarez-alvarez manuel-alvarez-alvarez force-pushed the malvarez/vertx-response-extraction branch 2 times, most recently from d9fd6aa to 5194553 Compare June 24, 2025 08:39
@manuel-alvarez-alvarez manuel-alvarez-alvarez force-pushed the malvarez/vertx-response-extraction branch from 5194553 to 3a7d412 Compare June 24, 2025 12:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp: asm waf Application Security Management (WAF) inst: vertx Eclipse Vert.x instrumentation type: enhancement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants