Restructure solution layout by module
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
# AGENTS
|
||||
## Role
|
||||
Kaspersky ICS-CERT connector; authoritative for OT/ICS vendor advisories covered by Kaspersky ICS-CERT; maps affected products as ICS domain entities with platform tags.
|
||||
## Scope
|
||||
- Discover/fetch advisories list; window by publish date or slug; fetch detail pages; handle pagination.
|
||||
- Validate HTML or JSON; extract CVEs, affected OT vendors/models/families, mitigations; normalize product taxonomy; map fixed versions if present.
|
||||
- Persist raw docs with sha256; maintain source_state; idempotent mapping.
|
||||
## Participants
|
||||
- Source.Common (HTTP, HTML helpers, validators).
|
||||
- Storage.Mongo (document, dto, advisory, alias, affected, reference, source_state).
|
||||
- Models (canonical; affected.platform="ics-vendor", tags for device families).
|
||||
- Core/WebService (jobs: source:ics-kaspersky:fetch|parse|map).
|
||||
- Merge engine respects ICS vendor authority for OT impact.
|
||||
## Interfaces & contracts
|
||||
- Aliases: CVE ids; if stable ICS-CERT advisory id exists, store scheme "ICS-KASP".
|
||||
- Affected: Type=vendor; Vendor/Product populated; platforms/tags for device family or firmware line; versions with fixedBy when explicit.
|
||||
- References: advisory, vendor pages, mitigation guides; typed; deduped.
|
||||
- Provenance: method=parser; value=advisory slug.
|
||||
## In/Out of scope
|
||||
In: ICS advisory mapping, affected vendor products, mitigation references.
|
||||
Out: firmware downloads; reverse-engineering artifacts.
|
||||
## Observability & security expectations
|
||||
- Metrics: SourceDiagnostics publishes `concelier.source.http.*` counters/histograms with `concelier.source=ics-kaspersky` to track fetch totals, parse failures, and mapped affected counts.
|
||||
- Logs: slugs, vendor/product counts, timing; allowlist host.
|
||||
## Tests
|
||||
- Author and review coverage in `../StellaOps.Concelier.Connector.Ics.Kaspersky.Tests`.
|
||||
- Shared fixtures (e.g., `MongoIntegrationFixture`, `ConnectorTestHarness`) live in `../StellaOps.Concelier.Testing`.
|
||||
- Keep fixtures deterministic; match new cases to real-world advisories or regression scenarios.
|
||||
Reference in New Issue
Block a user