From 90f9cd6cb0de8e370c21493d3341695a1acfac9c Mon Sep 17 00:00:00 2001 From: kavin553 Date: Tue, 14 Jul 2026 19:12:57 +0530 Subject: [PATCH 1/2] fix: make SARIF repository URL configurable --- .env.example | 3 +++ backend/secuscan/config.py | 9 +++++++++ backend/secuscan/reporting.py | 23 +++++++++++++---------- 3 files changed, 25 insertions(+), 10 deletions(-) diff --git a/.env.example b/.env.example index a850c3828..e9c24532d 100644 --- a/.env.example +++ b/.env.example @@ -7,6 +7,9 @@ SECUSCAN_LOG_LEVEL=INFO SECUSCAN_BIND_ADDRESS=127.0.0.1 SECUSCAN_BIND_PORT=8000 +SECUSCAN_REPOSITORY_URL=https://github.com/utksh1/SecuScan +SECUSCAN_SARIF_SCHEMA_URL=https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json + # Storage and Cache # SECUSCAN_DATABASE_PATH=backend/data/secuscan.db # SECUSCAN_REDIS_URL=redis://127.0.0.1:6379/0 diff --git a/backend/secuscan/config.py b/backend/secuscan/config.py index 35bcf2823..e094891bc 100644 --- a/backend/secuscan/config.py +++ b/backend/secuscan/config.py @@ -18,6 +18,15 @@ class Settings(BaseSettings): # Server Configuration bind_address: str = "127.0.0.1" bind_port: int = 8000 + + # Repository Configuration + repository_url: str = "https://github.com/utksh1/SecuScan" + + # SARIF Schema Configuration + sarif_schema_url: str = ( + "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json" + ) + debug: bool = True # Primary data store diff --git a/backend/secuscan/reporting.py b/backend/secuscan/reporting.py index f71658f09..36bf3bac8 100644 --- a/backend/secuscan/reporting.py +++ b/backend/secuscan/reporting.py @@ -3,7 +3,8 @@ import html import io import json -import re + +from .config import settingsimport re from .redaction import redact, redact_dict from .ai_summary import generate_summary from datetime import datetime @@ -1238,15 +1239,17 @@ def generate_sarif_report(cls, task: Dict[str, Any], result: Dict[str, Any]) -> results.append(sarif_result) sarif_output = { - "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json", - "version": "2.1.0", - "runs": [ - { - "tool": { - "driver": { - "name": tool_name, - "version": "1.0.0", - "informationUri": "https://github.com/utksh1/SecuScan", + "$schema": settings.sarif_schema_url, + + "version":"2.1.0", + + "runs":[ + { + "tool":{ + "driver":{ + "name":tool_name, + "version":"1.0.0", + "informationUri": settings.repository_url, "rules": rules } }, From a5da9bdb7c49bb5f0fd67eaf9d2da918d7dedf48 Mon Sep 17 00:00:00 2001 From: kavin553 Date: Tue, 14 Jul 2026 19:29:53 +0530 Subject: [PATCH 2/2] fix: make SARIF repository URL configurable --- backend/secuscan/reporting.py | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/backend/secuscan/reporting.py b/backend/secuscan/reporting.py index 36bf3bac8..72293797b 100644 --- a/backend/secuscan/reporting.py +++ b/backend/secuscan/reporting.py @@ -4,7 +4,8 @@ import io import json -from .config import settingsimport re +from .config import settings +import re from .redaction import redact, redact_dict from .ai_summary import generate_summary from datetime import datetime @@ -1240,24 +1241,28 @@ def generate_sarif_report(cls, task: Dict[str, Any], result: Dict[str, Any]) -> sarif_output = { "$schema": settings.sarif_schema_url, - - "version":"2.1.0", - - "runs":[ + "version": "2.1.0", + "runs": [ { - "tool":{ - "driver":{ - "name":tool_name, - "version":"1.0.0", + "tool": { + "driver": { + "name": tool_name, + "version": "1.0.0", "informationUri": settings.repository_url, - "rules": rules - } + "rules": rules, + "properties": { + "generatorVersion": _version_, }, - "results": results } - ] + }, + "properties": { + "pluginId": task.get("plugin_id"), + "exportTimestamp": datetime.now(timezone.utc).isoformat(), + }, + "results": results, } - + ] +} return json.dumps(sarif_output, indent=2)