Lifecycle & Obsolescence
This report highlights lifecycle exposure (EOL/obsolete/unsupported/deprecated signals) as a modernization driver:
where obsolete platforms/software appear in findings
how widespread they are (affected hosts)
suggested upgrade target state (catalog-driven) and optional narrative
Output
Per scan:
output/<scan_name>/lifecycle.html
Optional model artifact (only when metadata export is enabled):
output/<scan_name>/lifecycle_model.json
Model JSON is written when
notifications.include_run_metadata: true.
How to generate
CLI:
miyabi-qualys-ai-triage-pack run --config config/config.yamlConfiguration
Enable/disable:
reports.lifecycle.enabled: true|false
Catalog:
reports.lifecycle.catalog.enabledreports.lifecycle.catalog.catalog_path(default:data/lifecycle_catalog.yaml)
UI options:
reports.lifecycle.ui.enable_filtersreports.lifecycle.ui.max_rows_renderreports.lifecycle.ui.max_versions_per_item
Optional LLM narrative (guardrailed / JSON-only):
reports.lifecycle.llm.enabledreports.lifecycle.llm.modelreports.lifecycle.llm.max_items_for_llm
Data sources (Qualys CSV fields)
Primary:
Title,QID,Severity,Categoryevidence excerpts from
Results/Instance(best-effort, capped)asset identifiers:
FQDN/DNS/NetBIOS/IP, and sometimesOS(if present)
Interpretation notes
Lifecycle classification is keyword/regex driven (deterministic). It does not claim exploitability.
Version extraction is best-effort and intentionally capped to avoid dumping raw results into the report.