|
1 | | -.PHONY: setup install format format-check lint type-check test test-coverage auth-test api-security-test terraform-fmt terraform-fmt-check terraform-init terraform-validate terraform-test infrastructure-test infrastructure-evidence verify-infrastructure-evidence infrastructure-report security-tools secrets-scan sast sast-semgrep sast-bandit semgrep-test sca dependency-audit sbom verify-sbom iac-scan checkov-scan container-build-security container-scan appsec-fast appsec-full appsec-evidence verify-appsec-evidence appsec-report pre-commit-install pre-commit-run quality run docker-build docker-run threat-model-validate threat-model-evidence verify-threat-model-evidence threat-model-report api-security-evidence verify-api-security-evidence api-security-report dev-token-researcher dev-token-approver dev-token-auditor clean |
| 1 | +.PHONY: setup install format format-check lint type-check test test-coverage auth-test api-security-test terraform-fmt terraform-fmt-check terraform-init terraform-validate terraform-test infrastructure-test infrastructure-evidence verify-infrastructure-evidence infrastructure-report security-tools secrets-scan sast sast-semgrep sast-bandit semgrep-test sca dependency-audit sbom verify-sbom iac-scan checkov-scan container-build-security container-scan appsec-fast appsec-full appsec-evidence verify-appsec-evidence appsec-report dynamic-tools dynamic-server-start dynamic-server-wait dynamic-server-stop schemathesis-test api-schema-security-test zap-baseline zap-api-scan auth-boundary-test authorisation-boundary-test object-access-test input-mutation-test security-header-test cors-test resource-consumption-test audit-dynamic-test dast dynamic-evidence verify-dynamic-evidence dynamic-report dynamic-fast dynamic-full pre-commit-install pre-commit-run quality run docker-build docker-run threat-model-validate threat-model-evidence verify-threat-model-evidence threat-model-report api-security-evidence verify-api-security-evidence api-security-report dev-token-researcher dev-token-approver dev-token-auditor clean |
2 | 2 |
|
3 | 3 | PYTHON ?= python3 |
4 | 4 | VENV ?= .venv |
@@ -120,6 +120,69 @@ appsec-fast: secrets-scan sast dependency-audit |
120 | 120 |
|
121 | 121 | appsec-full: appsec-fast sbom verify-sbom checkov-scan container-build-security container-scan appsec-evidence verify-appsec-evidence appsec-report |
122 | 122 |
|
| 123 | +dynamic-tools: |
| 124 | + PYTHONPATH=src $(PYTHON) scripts/dynamic_security_tools.py tools |
| 125 | + |
| 126 | +dynamic-server-start: |
| 127 | + PYTHONPATH=src $(PYTHON) scripts/dynamic_security_tools.py server-start |
| 128 | + |
| 129 | +dynamic-server-wait: |
| 130 | + PYTHONPATH=src $(PYTHON) scripts/dynamic_security_tools.py server-wait |
| 131 | + |
| 132 | +dynamic-server-stop: |
| 133 | + PYTHONPATH=src $(PYTHON) scripts/dynamic_security_tools.py server-stop |
| 134 | + |
| 135 | +schemathesis-test: |
| 136 | + PYTHONPATH=src $(PYTHON) scripts/dynamic_security_tools.py schemathesis |
| 137 | + |
| 138 | +api-schema-security-test: schemathesis-test |
| 139 | + |
| 140 | +zap-baseline: |
| 141 | + PYTHONPATH=src $(PYTHON) scripts/dynamic_security_tools.py zap |
| 142 | + |
| 143 | +zap-api-scan: zap-baseline |
| 144 | + |
| 145 | +auth-boundary-test: |
| 146 | + PYTHONPATH=src $(PYTEST) tests/dynamic -q -k authentication --json-report --json-report-file=outputs/security/dynamic/raw/pytest-dynamic.json |
| 147 | + |
| 148 | +authorisation-boundary-test: |
| 149 | + PYTHONPATH=src $(PYTEST) tests/dynamic -q -k authorisation --json-report --json-report-file=outputs/security/dynamic/raw/pytest-dynamic.json |
| 150 | + |
| 151 | +object-access-test: |
| 152 | + PYTHONPATH=src $(PYTEST) tests/dynamic -q -k object_level --json-report --json-report-file=outputs/security/dynamic/raw/pytest-dynamic.json |
| 153 | + |
| 154 | +input-mutation-test: |
| 155 | + PYTHONPATH=src $(PYTEST) tests/dynamic -q -k input_mutation --json-report --json-report-file=outputs/security/dynamic/raw/pytest-dynamic.json |
| 156 | + |
| 157 | +security-header-test: |
| 158 | + PYTHONPATH=src $(PYTEST) tests/dynamic -q -k security_headers --json-report --json-report-file=outputs/security/dynamic/raw/pytest-dynamic.json |
| 159 | + |
| 160 | +cors-test: |
| 161 | + PYTHONPATH=src $(PYTEST) tests/dynamic -q -k cors --json-report --json-report-file=outputs/security/dynamic/raw/pytest-dynamic.json |
| 162 | + |
| 163 | +resource-consumption-test: |
| 164 | + PYTHONPATH=src $(PYTEST) tests/dynamic -q -k rate_limit --json-report --json-report-file=outputs/security/dynamic/raw/pytest-dynamic.json |
| 165 | + |
| 166 | +audit-dynamic-test: |
| 167 | + PYTHONPATH=src $(PYTEST) tests/dynamic -q -k audit --json-report --json-report-file=outputs/security/dynamic/raw/pytest-dynamic.json |
| 168 | + |
| 169 | +dast: zap-baseline |
| 170 | + |
| 171 | +dynamic-evidence: |
| 172 | + PYTHONPATH=src $(PYTHON) -m genomic_research_access_api.security.dynamic.evidence --timestamp 2026-01-01T00:00:00Z |
| 173 | + |
| 174 | +verify-dynamic-evidence: |
| 175 | + PYTHONPATH=src $(PYTHON) -m genomic_research_access_api.security.dynamic.evidence --verify |
| 176 | + |
| 177 | +dynamic-report: |
| 178 | + PYTHONPATH=src $(PYTHON) -m genomic_research_access_api.security.dynamic.report |
| 179 | + |
| 180 | +dynamic-fast: |
| 181 | + PYTHONPATH=src $(PYTHON) scripts/dynamic_security_tools.py pytest |
| 182 | + |
| 183 | +dynamic-full: |
| 184 | + PYTHONPATH=src $(PYTHON) scripts/dynamic_security_tools.py full |
| 185 | + |
123 | 186 | pre-commit-install: |
124 | 187 | $(PYTHON) -m pip install pre-commit==3.8.0 |
125 | 188 | $(VENV)/bin/pre-commit install |
|
0 commit comments