diff --git a/.riot/requirements/10a053e.txt b/.riot/requirements/10a053e.txt new file mode 100644 index 00000000000..f0fb00df760 --- /dev/null +++ b/.riot/requirements/10a053e.txt @@ -0,0 +1,31 @@ +# +# This file is autogenerated by pip-compile with Python 3.13 +# by the following command: +# +# pip-compile --no-annotate .riot/requirements/10a053e.in +# +attrs==25.3.0 +blinker==1.9.0 +certifi==2025.6.15 +charset-normalizer==3.4.2 +click==8.2.1 +coverage[toml]==7.9.1 +flask==3.1.1 +hypothesis==6.135.22 +idna==3.10 +iniconfig==2.1.0 +itsdangerous==2.2.0 +jinja2==3.1.6 +markupsafe==3.0.2 +mock==5.2.0 +opentracing==2.4.0 +packaging==25.0 +pluggy==1.6.0 +pygments==2.19.2 +pytest==8.4.1 +pytest-cov==6.2.1 +pytest-mock==3.14.1 +requests==2.32.4 +sortedcontainers==2.4.0 +urllib3==2.5.0 +werkzeug==3.1.3 diff --git a/.riot/requirements/14f9b26.txt b/.riot/requirements/14f9b26.txt new file mode 100644 index 00000000000..44abd609d12 --- /dev/null +++ b/.riot/requirements/14f9b26.txt @@ -0,0 +1,35 @@ +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# pip-compile --no-annotate .riot/requirements/14f9b26.in +# +attrs==25.3.0 +blinker==1.8.2 +certifi==2025.6.15 +charset-normalizer==3.4.2 +click==8.1.8 +coverage[toml]==7.6.1 +exceptiongroup==1.3.0 +flask==2.3.3 +hypothesis==6.113.0 +idna==3.10 +importlib-metadata==8.5.0 +iniconfig==2.1.0 +itsdangerous==2.2.0 +jinja2==3.1.6 +markupsafe==2.1.5 +mock==5.2.0 +opentracing==2.4.0 +packaging==25.0 +pluggy==1.5.0 +pytest==8.3.5 +pytest-cov==5.0.0 +pytest-mock==3.14.1 +requests==2.32.4 +sortedcontainers==2.4.0 +tomli==2.2.1 +typing-extensions==4.13.2 +urllib3==2.2.3 +werkzeug==3.0.6 +zipp==3.20.2 diff --git a/.riot/requirements/168930f.txt b/.riot/requirements/168930f.txt new file mode 100644 index 00000000000..14bd30fb8b7 --- /dev/null +++ b/.riot/requirements/168930f.txt @@ -0,0 +1,31 @@ +# +# This file is autogenerated by pip-compile with Python 3.13 +# by the following command: +# +# pip-compile --no-annotate .riot/requirements/168930f.in +# +attrs==25.3.0 +blinker==1.9.0 +certifi==2025.6.15 +charset-normalizer==3.4.2 +click==8.2.1 +coverage[toml]==7.9.1 +flask==3.1.1 +hypothesis==6.135.22 +idna==3.10 +iniconfig==2.1.0 +itsdangerous==2.2.0 +jinja2==3.1.6 +markupsafe==3.0.2 +mock==5.2.0 +opentracing==2.4.0 +packaging==25.0 +pluggy==1.6.0 +pygments==2.19.2 +pytest==8.4.1 +pytest-cov==6.2.1 +pytest-mock==3.14.1 +requests==2.32.4 +sortedcontainers==2.4.0 +urllib3==2.5.0 +werkzeug==3.1.3 diff --git a/.riot/requirements/182ca07.txt b/.riot/requirements/182ca07.txt new file mode 100644 index 00000000000..41a1ae87f35 --- /dev/null +++ b/.riot/requirements/182ca07.txt @@ -0,0 +1,33 @@ +# +# This file is autogenerated by pip-compile with Python 3.9 +# by the following command: +# +# pip-compile --no-annotate .riot/requirements/182ca07.in +# +attrs==25.3.0 +certifi==2025.6.15 +charset-normalizer==3.4.2 +click==7.1.2 +coverage[toml]==7.9.1 +exceptiongroup==1.3.0 +flask==1.1.4 +hypothesis==6.135.22 +idna==3.10 +iniconfig==2.1.0 +itsdangerous==1.1.0 +jinja2==2.11.3 +markupsafe==1.1.1 +mock==5.2.0 +opentracing==2.4.0 +packaging==25.0 +pluggy==1.6.0 +pygments==2.19.2 +pytest==8.4.1 +pytest-cov==6.2.1 +pytest-mock==3.14.1 +requests==2.32.4 +sortedcontainers==2.4.0 +tomli==2.2.1 +typing-extensions==4.14.0 +urllib3==2.5.0 +werkzeug==1.0.1 diff --git a/.riot/requirements/199cda7.txt b/.riot/requirements/199cda7.txt new file mode 100644 index 00000000000..13df0a111f2 --- /dev/null +++ b/.riot/requirements/199cda7.txt @@ -0,0 +1,34 @@ +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# pip-compile --no-annotate .riot/requirements/199cda7.in +# +attrs==25.3.0 +certifi==2025.6.15 +charset-normalizer==3.4.2 +click==8.1.8 +coverage[toml]==7.6.1 +exceptiongroup==1.3.0 +flask==2.1.3 +hypothesis==6.113.0 +idna==3.10 +importlib-metadata==8.5.0 +iniconfig==2.1.0 +itsdangerous==2.2.0 +jinja2==3.1.6 +markupsafe==2.1.5 +mock==5.2.0 +opentracing==2.4.0 +packaging==25.0 +pluggy==1.5.0 +pytest==8.3.5 +pytest-cov==5.0.0 +pytest-mock==3.14.1 +requests==2.32.4 +sortedcontainers==2.4.0 +tomli==2.2.1 +typing-extensions==4.13.2 +urllib3==2.2.3 +werkzeug==2.3.8 +zipp==3.20.2 diff --git a/.riot/requirements/1b06f43.txt b/.riot/requirements/1b06f43.txt new file mode 100644 index 00000000000..7ec643bd2ad --- /dev/null +++ b/.riot/requirements/1b06f43.txt @@ -0,0 +1,32 @@ +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# pip-compile --no-annotate .riot/requirements/1b06f43.in +# +attrs==25.3.0 +certifi==2025.6.15 +charset-normalizer==3.4.2 +click==7.1.2 +coverage[toml]==7.6.1 +exceptiongroup==1.3.0 +flask==1.1.4 +hypothesis==6.113.0 +idna==3.10 +iniconfig==2.1.0 +itsdangerous==1.1.0 +jinja2==2.11.3 +markupsafe==1.1.1 +mock==5.2.0 +opentracing==2.4.0 +packaging==25.0 +pluggy==1.5.0 +pytest==8.3.5 +pytest-cov==5.0.0 +pytest-mock==3.14.1 +requests==2.32.4 +sortedcontainers==2.4.0 +tomli==2.2.1 +typing-extensions==4.13.2 +urllib3==2.2.3 +werkzeug==1.0.1 diff --git a/.riot/requirements/1cb891d.txt b/.riot/requirements/1cb891d.txt new file mode 100644 index 00000000000..62b0012e9f1 --- /dev/null +++ b/.riot/requirements/1cb891d.txt @@ -0,0 +1,35 @@ +# +# This file is autogenerated by pip-compile with Python 3.9 +# by the following command: +# +# pip-compile --no-annotate .riot/requirements/1cb891d.in +# +attrs==25.3.0 +certifi==2025.6.15 +charset-normalizer==3.4.2 +click==8.1.8 +coverage[toml]==7.9.1 +exceptiongroup==1.3.0 +flask==2.1.3 +hypothesis==6.135.22 +idna==3.10 +importlib-metadata==8.7.0 +iniconfig==2.1.0 +itsdangerous==2.2.0 +jinja2==3.1.6 +markupsafe==3.0.2 +mock==5.2.0 +opentracing==2.4.0 +packaging==25.0 +pluggy==1.6.0 +pygments==2.19.2 +pytest==8.4.1 +pytest-cov==6.2.1 +pytest-mock==3.14.1 +requests==2.32.4 +sortedcontainers==2.4.0 +tomli==2.2.1 +typing-extensions==4.14.0 +urllib3==2.5.0 +werkzeug==2.3.8 +zipp==3.23.0 diff --git a/.riot/requirements/1d71a4a.txt b/.riot/requirements/1d71a4a.txt new file mode 100644 index 00000000000..ad15ba52c75 --- /dev/null +++ b/.riot/requirements/1d71a4a.txt @@ -0,0 +1,33 @@ +# +# This file is autogenerated by pip-compile with Python 3.9 +# by the following command: +# +# pip-compile --no-annotate .riot/requirements/1d71a4a.in +# +attrs==25.3.0 +certifi==2025.6.15 +charset-normalizer==3.4.2 +click==7.1.2 +coverage[toml]==7.9.1 +exceptiongroup==1.3.0 +flask==1.1.4 +hypothesis==6.135.22 +idna==3.10 +iniconfig==2.1.0 +itsdangerous==1.1.0 +jinja2==2.11.3 +markupsafe==1.1.1 +mock==5.2.0 +opentracing==2.4.0 +packaging==25.0 +pluggy==1.6.0 +pygments==2.19.2 +pytest==8.4.1 +pytest-cov==6.2.1 +pytest-mock==3.14.1 +requests==2.32.4 +sortedcontainers==2.4.0 +tomli==2.2.1 +typing-extensions==4.14.0 +urllib3==2.5.0 +werkzeug==1.0.1 diff --git a/.riot/requirements/1e5d795.txt b/.riot/requirements/1e5d795.txt new file mode 100644 index 00000000000..b817e7b055d --- /dev/null +++ b/.riot/requirements/1e5d795.txt @@ -0,0 +1,31 @@ +# +# This file is autogenerated by pip-compile with Python 3.13 +# by the following command: +# +# pip-compile --no-annotate .riot/requirements/1e5d795.in +# +attrs==25.3.0 +blinker==1.9.0 +certifi==2025.6.15 +charset-normalizer==3.4.2 +click==8.2.1 +coverage[toml]==7.9.1 +flask==2.3.3 +hypothesis==6.135.22 +idna==3.10 +iniconfig==2.1.0 +itsdangerous==2.2.0 +jinja2==3.1.6 +markupsafe==3.0.2 +mock==5.2.0 +opentracing==2.4.0 +packaging==25.0 +pluggy==1.6.0 +pygments==2.19.2 +pytest==8.4.1 +pytest-cov==6.2.1 +pytest-mock==3.14.1 +requests==2.32.4 +sortedcontainers==2.4.0 +urllib3==2.5.0 +werkzeug==3.1.3 diff --git a/.riot/requirements/1eebb20.txt b/.riot/requirements/1eebb20.txt new file mode 100644 index 00000000000..2da34c5b7ab --- /dev/null +++ b/.riot/requirements/1eebb20.txt @@ -0,0 +1,35 @@ +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# pip-compile --no-annotate .riot/requirements/1eebb20.in +# +attrs==25.3.0 +blinker==1.8.2 +certifi==2025.6.15 +charset-normalizer==3.4.2 +click==8.1.8 +coverage[toml]==7.6.1 +exceptiongroup==1.3.0 +flask==3.0.3 +hypothesis==6.113.0 +idna==3.10 +importlib-metadata==8.5.0 +iniconfig==2.1.0 +itsdangerous==2.2.0 +jinja2==3.1.6 +markupsafe==2.1.5 +mock==5.2.0 +opentracing==2.4.0 +packaging==25.0 +pluggy==1.5.0 +pytest==8.3.5 +pytest-cov==5.0.0 +pytest-mock==3.14.1 +requests==2.32.4 +sortedcontainers==2.4.0 +tomli==2.2.1 +typing-extensions==4.13.2 +urllib3==2.2.3 +werkzeug==3.0.6 +zipp==3.20.2 diff --git a/.riot/requirements/4727e92.txt b/.riot/requirements/4727e92.txt new file mode 100644 index 00000000000..8022c48a140 --- /dev/null +++ b/.riot/requirements/4727e92.txt @@ -0,0 +1,31 @@ +# +# This file is autogenerated by pip-compile with Python 3.11 +# by the following command: +# +# pip-compile --no-annotate .riot/requirements/4727e92.in +# +attrs==25.3.0 +blinker==1.9.0 +certifi==2025.6.15 +charset-normalizer==3.4.2 +click==8.2.1 +coverage[toml]==7.9.1 +flask==3.1.1 +hypothesis==6.135.22 +idna==3.10 +iniconfig==2.1.0 +itsdangerous==2.2.0 +jinja2==3.1.6 +markupsafe==3.0.2 +mock==5.2.0 +opentracing==2.4.0 +packaging==25.0 +pluggy==1.6.0 +pygments==2.19.2 +pytest==8.4.1 +pytest-cov==6.2.1 +pytest-mock==3.14.1 +requests==2.32.4 +sortedcontainers==2.4.0 +urllib3==2.5.0 +werkzeug==3.1.3 diff --git a/.riot/requirements/49711bf.txt b/.riot/requirements/49711bf.txt new file mode 100644 index 00000000000..9889887bdab --- /dev/null +++ b/.riot/requirements/49711bf.txt @@ -0,0 +1,34 @@ +# +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: +# +# pip-compile --no-annotate .riot/requirements/49711bf.in +# +attrs==25.3.0 +blinker==1.9.0 +certifi==2025.6.15 +charset-normalizer==3.4.2 +click==8.2.1 +coverage[toml]==7.9.1 +exceptiongroup==1.3.0 +flask==2.3.3 +hypothesis==6.135.22 +idna==3.10 +iniconfig==2.1.0 +itsdangerous==2.2.0 +jinja2==3.1.6 +markupsafe==3.0.2 +mock==5.2.0 +opentracing==2.4.0 +packaging==25.0 +pluggy==1.6.0 +pygments==2.19.2 +pytest==8.4.1 +pytest-cov==6.2.1 +pytest-mock==3.14.1 +requests==2.32.4 +sortedcontainers==2.4.0 +tomli==2.2.1 +typing-extensions==4.14.0 +urllib3==2.5.0 +werkzeug==3.1.3 diff --git a/.riot/requirements/5cef490.txt b/.riot/requirements/5cef490.txt new file mode 100644 index 00000000000..d532142721e --- /dev/null +++ b/.riot/requirements/5cef490.txt @@ -0,0 +1,35 @@ +# +# This file is autogenerated by pip-compile with Python 3.9 +# by the following command: +# +# pip-compile --no-annotate .riot/requirements/5cef490.in +# +attrs==25.3.0 +certifi==2025.6.15 +charset-normalizer==3.4.2 +click==8.1.8 +coverage[toml]==7.9.1 +exceptiongroup==1.3.0 +flask==2.1.3 +hypothesis==6.135.22 +idna==3.10 +importlib-metadata==8.7.0 +iniconfig==2.1.0 +itsdangerous==2.2.0 +jinja2==3.1.6 +markupsafe==3.0.2 +mock==5.2.0 +opentracing==2.4.0 +packaging==25.0 +pluggy==1.6.0 +pygments==2.19.2 +pytest==8.4.1 +pytest-cov==6.2.1 +pytest-mock==3.14.1 +requests==2.32.4 +sortedcontainers==2.4.0 +tomli==2.2.1 +typing-extensions==4.14.0 +urllib3==2.5.0 +werkzeug==2.3.8 +zipp==3.23.0 diff --git a/.riot/requirements/7b8bfb0.txt b/.riot/requirements/7b8bfb0.txt new file mode 100644 index 00000000000..badcd22c4fa --- /dev/null +++ b/.riot/requirements/7b8bfb0.txt @@ -0,0 +1,32 @@ +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# pip-compile --no-annotate .riot/requirements/7b8bfb0.in +# +attrs==25.3.0 +certifi==2025.6.15 +charset-normalizer==3.4.2 +click==7.1.2 +coverage[toml]==7.6.1 +exceptiongroup==1.3.0 +flask==1.1.4 +hypothesis==6.113.0 +idna==3.10 +iniconfig==2.1.0 +itsdangerous==1.1.0 +jinja2==2.11.3 +markupsafe==1.1.1 +mock==5.2.0 +opentracing==2.4.0 +packaging==25.0 +pluggy==1.5.0 +pytest==8.3.5 +pytest-cov==5.0.0 +pytest-mock==3.14.1 +requests==2.32.4 +sortedcontainers==2.4.0 +tomli==2.2.1 +typing-extensions==4.13.2 +urllib3==2.2.3 +werkzeug==1.0.1 diff --git a/.riot/requirements/9ff1a39.txt b/.riot/requirements/9ff1a39.txt new file mode 100644 index 00000000000..dc6b4313ccd --- /dev/null +++ b/.riot/requirements/9ff1a39.txt @@ -0,0 +1,34 @@ +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# pip-compile --no-annotate .riot/requirements/9ff1a39.in +# +attrs==25.3.0 +certifi==2025.6.15 +charset-normalizer==3.4.2 +click==8.1.8 +coverage[toml]==7.6.1 +exceptiongroup==1.3.0 +flask==2.1.3 +hypothesis==6.113.0 +idna==3.10 +importlib-metadata==8.5.0 +iniconfig==2.1.0 +itsdangerous==2.2.0 +jinja2==3.1.6 +markupsafe==2.1.5 +mock==5.2.0 +opentracing==2.4.0 +packaging==25.0 +pluggy==1.5.0 +pytest==8.3.5 +pytest-cov==5.0.0 +pytest-mock==3.14.1 +requests==2.32.4 +sortedcontainers==2.4.0 +tomli==2.2.1 +typing-extensions==4.13.2 +urllib3==2.2.3 +werkzeug==2.3.8 +zipp==3.20.2 diff --git a/.riot/requirements/a74d86f.txt b/.riot/requirements/a74d86f.txt new file mode 100644 index 00000000000..ac649987c3b --- /dev/null +++ b/.riot/requirements/a74d86f.txt @@ -0,0 +1,35 @@ +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# pip-compile --no-annotate .riot/requirements/a74d86f.in +# +attrs==25.3.0 +blinker==1.8.2 +certifi==2025.6.15 +charset-normalizer==3.4.2 +click==8.1.8 +coverage[toml]==7.6.1 +exceptiongroup==1.3.0 +flask==3.0.3 +hypothesis==6.113.0 +idna==3.10 +importlib-metadata==8.5.0 +iniconfig==2.1.0 +itsdangerous==2.2.0 +jinja2==3.1.6 +markupsafe==2.1.5 +mock==5.2.0 +opentracing==2.4.0 +packaging==25.0 +pluggy==1.5.0 +pytest==8.3.5 +pytest-cov==5.0.0 +pytest-mock==3.14.1 +requests==2.32.4 +sortedcontainers==2.4.0 +tomli==2.2.1 +typing-extensions==4.13.2 +urllib3==2.2.3 +werkzeug==3.0.6 +zipp==3.20.2 diff --git a/.riot/requirements/aa30c9e.txt b/.riot/requirements/aa30c9e.txt new file mode 100644 index 00000000000..db59d199e9e --- /dev/null +++ b/.riot/requirements/aa30c9e.txt @@ -0,0 +1,31 @@ +# +# This file is autogenerated by pip-compile with Python 3.11 +# by the following command: +# +# pip-compile --no-annotate .riot/requirements/aa30c9e.in +# +attrs==25.3.0 +blinker==1.9.0 +certifi==2025.6.15 +charset-normalizer==3.4.2 +click==8.2.1 +coverage[toml]==7.9.1 +flask==3.1.1 +hypothesis==6.135.22 +idna==3.10 +iniconfig==2.1.0 +itsdangerous==2.2.0 +jinja2==3.1.6 +markupsafe==3.0.2 +mock==5.2.0 +opentracing==2.4.0 +packaging==25.0 +pluggy==1.6.0 +pygments==2.19.2 +pytest==8.4.1 +pytest-cov==6.2.1 +pytest-mock==3.14.1 +requests==2.32.4 +sortedcontainers==2.4.0 +urllib3==2.5.0 +werkzeug==3.1.3 diff --git a/.riot/requirements/b7ac57f.txt b/.riot/requirements/b7ac57f.txt new file mode 100644 index 00000000000..931806e71fd --- /dev/null +++ b/.riot/requirements/b7ac57f.txt @@ -0,0 +1,31 @@ +# +# This file is autogenerated by pip-compile with Python 3.13 +# by the following command: +# +# pip-compile --no-annotate .riot/requirements/b7ac57f.in +# +attrs==25.3.0 +blinker==1.9.0 +certifi==2025.6.15 +charset-normalizer==3.4.2 +click==8.2.1 +coverage[toml]==7.9.1 +flask==2.3.3 +hypothesis==6.135.22 +idna==3.10 +iniconfig==2.1.0 +itsdangerous==2.2.0 +jinja2==3.1.6 +markupsafe==3.0.2 +mock==5.2.0 +opentracing==2.4.0 +packaging==25.0 +pluggy==1.6.0 +pygments==2.19.2 +pytest==8.4.1 +pytest-cov==6.2.1 +pytest-mock==3.14.1 +requests==2.32.4 +sortedcontainers==2.4.0 +urllib3==2.5.0 +werkzeug==3.1.3 diff --git a/.riot/requirements/c00aefc.txt b/.riot/requirements/c00aefc.txt new file mode 100644 index 00000000000..42565085487 --- /dev/null +++ b/.riot/requirements/c00aefc.txt @@ -0,0 +1,35 @@ +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# pip-compile --no-annotate .riot/requirements/c00aefc.in +# +attrs==25.3.0 +blinker==1.8.2 +certifi==2025.6.15 +charset-normalizer==3.4.2 +click==8.1.8 +coverage[toml]==7.6.1 +exceptiongroup==1.3.0 +flask==2.3.3 +hypothesis==6.113.0 +idna==3.10 +importlib-metadata==8.5.0 +iniconfig==2.1.0 +itsdangerous==2.2.0 +jinja2==3.1.6 +markupsafe==2.1.5 +mock==5.2.0 +opentracing==2.4.0 +packaging==25.0 +pluggy==1.5.0 +pytest==8.3.5 +pytest-cov==5.0.0 +pytest-mock==3.14.1 +requests==2.32.4 +sortedcontainers==2.4.0 +tomli==2.2.1 +typing-extensions==4.13.2 +urllib3==2.2.3 +werkzeug==3.0.6 +zipp==3.20.2 diff --git a/.riot/requirements/f8fcf35.txt b/.riot/requirements/f8fcf35.txt new file mode 100644 index 00000000000..7303fa95db4 --- /dev/null +++ b/.riot/requirements/f8fcf35.txt @@ -0,0 +1,34 @@ +# +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: +# +# pip-compile --no-annotate .riot/requirements/f8fcf35.in +# +attrs==25.3.0 +blinker==1.9.0 +certifi==2025.6.15 +charset-normalizer==3.4.2 +click==8.2.1 +coverage[toml]==7.9.1 +exceptiongroup==1.3.0 +flask==2.3.3 +hypothesis==6.135.22 +idna==3.10 +iniconfig==2.1.0 +itsdangerous==2.2.0 +jinja2==3.1.6 +markupsafe==3.0.2 +mock==5.2.0 +opentracing==2.4.0 +packaging==25.0 +pluggy==1.6.0 +pygments==2.19.2 +pytest==8.4.1 +pytest-cov==6.2.1 +pytest-mock==3.14.1 +requests==2.32.4 +sortedcontainers==2.4.0 +tomli==2.2.1 +typing-extensions==4.14.0 +urllib3==2.5.0 +werkzeug==3.1.3 diff --git a/hatch.toml b/hatch.toml index 01b5b8ebf2e..be3a9f1f3cc 100644 --- a/hatch.toml +++ b/hatch.toml @@ -161,48 +161,6 @@ CMAKE_BUILD_PARALLEL_LEVEL = "12" CARGO_BUILD_JOBS = "12" DD_FAST_BUILD = "1" -## ASM Flask - -[envs.appsec_threats_flask] -template = "appsec_threats_flask" -dependencies = [ - "pytest", - "pytest-cov", - "requests", - "hypothesis", - "MarkupSafe{matrix:markupsafe:}", - "Werkzeug{matrix:werkzeug:}", - "flask{matrix:flask}" -] - -[envs.appsec_threats_flask.scripts] -test = [ - "uname -a", - "pip freeze", - "DD_IAST_ENABLED=false python -m pytest tests/appsec/contrib_appsec/test_flask.py {args}", - "DD_IAST_ENABLED=true DD_IAST_REQUEST_SAMPLING=100 python -m pytest tests/appsec/contrib_appsec/test_flask.py {args}" -] - -# if you add or remove a version here, please also update the parallelism parameter -# in .circleci/config.templ.yml -[[envs.appsec_threats_flask.matrix]] -python = ["3.8", "3.9"] -flask = ["~=1.1"] -markupsafe = ["~=1.1"] - -[[envs.appsec_threats_flask.matrix]] -python = ["3.8", "3.9"] -flask = ["==2.1.3"] -werkzeug = ["<3.0"] - -[[envs.appsec_threats_flask.matrix]] -python = ["3.8", "3.10", "3.13"] -flask = ["~=2.3"] - -[[envs.appsec_threats_flask.matrix]] -python = ["3.8", "3.11", "3.13"] -flask = ["~=3.0"] - ## ASM Native IAST module [envs.appsec_iast_native] diff --git a/riotfile.py b/riotfile.py index ad013e74adf..985285f99ab 100644 --- a/riotfile.py +++ b/riotfile.py @@ -80,6 +80,37 @@ def select_pys(min_version: str = MIN_PYTHON_VERSION, max_version: str = MAX_PYT return [version_to_str(version) for version in SUPPORTED_PYTHON_VERSIONS if min_version <= version <= max_version] +# Flask version matrix for appsec_threats_flask +FLASK_THREATS_VENVS = [ + Venv( + pys=["3.8", "3.9"], + pkgs={ + "flask": "~=1.1", + "MarkupSafe": "~=1.1", + }, + ), + Venv( + pys=["3.8", "3.9"], + pkgs={ + "flask": "==2.1.3", + "Werkzeug": "<3.0", + }, + ), + Venv( + pys=["3.8", "3.10", "3.13"], + pkgs={ + "flask": "~=2.3", + }, + ), + Venv( + pys=["3.8", "3.11", "3.13"], + pkgs={ + "flask": "~=3.0", + }, + ), +] + + # Common venv configurations for appsec threats testing _appsec_threats_iast_variants = [ Venv( @@ -3481,5 +3512,35 @@ def select_pys(min_version: str = MIN_PYTHON_VERSION, max_version: str = MAX_PYT ), ], ), + Venv( + command="pytest {cmdargs} tests/appsec/contrib_appsec/test_flask.py", + pys=["3.8", "3.9", "3.10", "3.11", "3.13"], + pkgs={ + "pytest": latest, + "pytest-cov": latest, + "requests": latest, + "hypothesis": latest, + }, + env={ + "DD_TRACE_AGENT_URL": "http://testagent:9126", + "AGENT_VERSION": "testagent", + "DD_REMOTE_CONFIGURATION_ENABLED": "true", + }, + venvs=[ + Venv( + name="appsec_threats_flask_no_iast", + env={"DD_IAST_ENABLED": "false"}, + venvs=FLASK_THREATS_VENVS, + ), + Venv( + name="appsec_threats_flask_iast", + env={ + "DD_IAST_ENABLED": "true", + "DD_IAST_REQUEST_SAMPLING": "100", + }, + venvs=FLASK_THREATS_VENVS, + ), + ], + ), ], ) diff --git a/tests/appsec/suitespec.yml b/tests/appsec/suitespec.yml index d52fb4ff98f..7c81a0182a9 100644 --- a/tests/appsec/suitespec.yml +++ b/tests/appsec/suitespec.yml @@ -230,7 +230,7 @@ suites: - tests/appsec/* - tests/appsec/contrib_appsec/* retry: 2 - runner: hatch + runner: riot urllib: paths: - '@bootstrap'