Ignore invalid integration rows (#1404)

This commit is contained in:
red person
2026-06-03 08:07:11 +03:00
committed by GitHub
parent 43dc346255
commit 34efabdec8
2 changed files with 15 additions and 0 deletions

View File

@@ -197,6 +197,10 @@ def load_integrations() -> List[Dict[str, Any]]:
if not isinstance(integrations, list): if not isinstance(integrations, list):
log.error("Invalid integrations file shape: expected a list") log.error("Invalid integrations file shape: expected a list")
return [] return []
valid_integrations = [item for item in integrations if isinstance(item, dict)]
if len(valid_integrations) != len(integrations):
log.error("Invalid integrations file rows: ignored non-object entries")
integrations = valid_integrations
if _has_plaintext_api_key(integrations): if _has_plaintext_api_key(integrations):
save_integrations(_decrypt_integration_secrets(integrations)) save_integrations(_decrypt_integration_secrets(integrations))
return _decrypt_integration_secrets(integrations) return _decrypt_integration_secrets(integrations)

View File

@@ -0,0 +1,11 @@
import json
from src import integrations
def test_load_integrations_skips_non_object_rows(tmp_path, monkeypatch):
data_file = tmp_path / "integrations.json"
data_file.write_text(json.dumps([{"id": "good", "name": "Good"}, "bad", None]))
monkeypatch.setattr(integrations, "DATA_FILE", str(data_file))
assert integrations.load_integrations() == [{"id": "good", "name": "Good"}]