No module blocking/availability tracking - blocked modules not configurable #19

Closed
opened 2026-04-03 19:00:44 +00:00 by Mark · 1 comment
Owner

Problem

There's no system for:

  1. Tracking which modules are blocked (require API keys that aren't configured)
  2. Tracking which modules are available (have required configuration)
  3. Configuring module availability per investigation
  4. Dynamic module selection based on availability

Currently orchestrator hardcodes:

disallowed = set()  # Allow all modules including playbooks
allowed_modules = [m for m in sorted(ModuleRegistry._modules.keys()) if m not in disallowed]

But many modules require API keys that may not be configured:

  • virustotal requires VIRUSTOTAL_API_KEY
  • shodan requires SHODAN_API_KEY
  • etc.

Files

  • backend/app/services/investigations/orchestrator.py:268
  • backend/app/modules/base.py - EvidenceModule.requires_config field

Solution Required

  1. Check module requirements at investigation start
  2. Mark modules as "blocked" if required config missing
  3. Exclude blocked modules from allowed_modules
  4. Store blocked module list in InvestigationRun.config_json
  5. Allow user to configure blocked modules per investigation
  6. LLM should know which modules are available vs blocked
## Problem There's no system for: 1. Tracking which modules are blocked (require API keys that aren't configured) 2. Tracking which modules are available (have required configuration) 3. Configuring module availability per investigation 4. Dynamic module selection based on availability Currently orchestrator hardcodes: ```python disallowed = set() # Allow all modules including playbooks allowed_modules = [m for m in sorted(ModuleRegistry._modules.keys()) if m not in disallowed] ``` But many modules require API keys that may not be configured: - virustotal requires VIRUSTOTAL_API_KEY - shodan requires SHODAN_API_KEY - etc. ## Files - `backend/app/services/investigations/orchestrator.py:268` - `backend/app/modules/base.py` - EvidenceModule.requires_config field ## Solution Required 1. Check module requirements at investigation start 2. Mark modules as "blocked" if required config missing 3. Exclude blocked modules from allowed_modules 4. Store blocked module list in InvestigationRun.config_json 5. Allow user to configure blocked modules per investigation 6. LLM should know which modules are available vs blocked
Author
Owner

This issue has been decomposed into the following sub-issues:

# Title Phase Scope
#76 No module blocking/availability tracking - blocked modules n There's no system for: 1. Tracking which modules are blocked (require API keys t
#77 No module blocking/availability tracking - blocked modules n - backend/app/services/investigations/orchestrator.py:268 - `backend/app/modul
#78 No module blocking/availability tracking - blocked modules n 1. Check module requirements at investigation start 2. Mark modules as "blocked"

Each sub-issue has been labeled with needs-triage and will be evaluated by the triage pipeline before queue routing.

This issue has been decomposed into the following sub-issues: | # | Title | Phase Scope | |---|-------|-------------| | #76 | No module blocking/availability tracking - blocked modules n | There's no system for: 1. Tracking which modules are blocked (require API keys t | | #77 | No module blocking/availability tracking - blocked modules n | - `backend/app/services/investigations/orchestrator.py:268` - `backend/app/modul | | #78 | No module blocking/availability tracking - blocked modules n | 1. Check module requirements at investigation start 2. Mark modules as "blocked" | Each sub-issue has been labeled with `needs-triage` and will be evaluated by the triage pipeline before queue routing.
Mark closed this issue 2026-05-28 00:31:53 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Mark/osint-hub#19
No description provided.