Skip to content

Contract Migration Notes

Matthew A. Davis edited this page May 8, 2026 · 1 revision

Contract Migration Notes (Phase 1)

What changed

Phase 1 introduces shared contract/model modules without changing analyzer behavior.

New shared modules:

SDK-style import paths added:

Core updated to consume shared modules:

  • src/attackmap/analyzers.py now imports analyzer contracts from analyzer_contracts.
  • src/attackmap/scanner.py now imports recon models from recon_models.

Backward compatibility

  • Existing imports from attackmap.analyzers continue to work.
    • AnalyzerMetadata, AnalyzerResult, and Analyzer remain available.
    • Analyzer is now a compatibility alias to AnalyzerProtocol.
  • Existing imports from attackmap.models continue to work unchanged.
  • ScanResult shape and field semantics are unchanged.
  • auth_hints semantics are intentionally unchanged in phase 1.

Recommended import targets going forward

For repository/plugin analyzer contracts:

  • from attackmap.sdk.contracts import AnalyzerProtocol, AnalyzerMetadata, AnalyzerResult

For recon/result models:

  • from attackmap.sdk.models import Route, ExternalCall, DatabaseHint, AuthHint, SecretHint, ScanResult

Not included in phase 1

  • No schema changes to ScanResult.
  • No split of overloaded auth_hints semantics.
  • No changes to analyzer discovery, merge logic, or CLI behavior.

Migrated from https://gitlab.com/matthewd.xyzAI/AttackMap/-/wikis/Generated-Docs/Contract-Migration-Notes.

Clone this wiki locally