diff --git a/SPRINTS.md b/SPRINTS.md index 6494f3d9..06a60200 100644 --- a/SPRINTS.md +++ b/SPRINTS.md @@ -17,29 +17,29 @@ | Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Authority/TASKS.md | DONE (2025-10-11) | Team WebService & Authority | SEC3.BUILD | Authority rate-limiter follow-through
`Security.RateLimiting` now fronts token/authorize/internal limiters; Authority + Configuration matrices (`dotnet test src/StellaOps.Authority/StellaOps.Authority.sln`, `dotnet test src/StellaOps.Configuration.Tests/StellaOps.Configuration.Tests.csproj`) passed on 2025-10-11; awaiting #authority-core broadcast. | | Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Authority/TASKS.md | DONE (2025-10-14) | Team Authority Platform & Security Guild | AUTHCORE-BUILD-OPENIDDICT / AUTHCORE-STORAGE-DEVICE-TOKENS / AUTHCORE-BOOTSTRAP-INVITES | Address remaining Authority compile blockers (OpenIddict transaction shim, token device document, bootstrap invite cleanup) so `dotnet build src/StellaOps.Authority.sln` returns success. | | Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Authority/StellaOps.Authority.Plugin.Standard/TASKS.md | DONE (2025-10-11) | Team WebService & Authority | PLG6.DOC | Plugin developer guide polish
Section 9 now documents rate limiter metadata, config keys, and lockout interplay; YAML samples updated alongside Authority config templates. | -| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Source.CertCc/TASKS.md | DONE (2025-10-11) | Team Connector Resumption – CERT/RedHat | FEEDCONN-CERTCC-02-001 | Fetch pipeline & state tracking
Summary planner now drives monthly/yearly VINCE fetches, persists pending summaries/notes, and hydrates VINCE detail queue with telemetry.
Team instructions: Read ./AGENTS.md and src/StellaOps.Concelier.Source.CertCc/AGENTS.md. Coordinate daily with Models/Merge leads so new normalizedVersions output and provenance tags stay aligned with ./src/FASTER_MODELING_AND_NORMALIZATION.md. | -| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Source.CertCc/TASKS.md | DONE (2025-10-11) | Team Connector Resumption – CERT/RedHat | FEEDCONN-CERTCC-02-002 | VINCE note detail fetcher
Summary planner queues VINCE note detail endpoints, persists raw JSON with SHA/ETag metadata, and records retry/backoff metrics. | -| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Source.CertCc/TASKS.md | DONE (2025-10-11) | Team Connector Resumption – CERT/RedHat | FEEDCONN-CERTCC-02-003 | DTO & parser implementation
Added VINCE DTO aggregate, Markdown→text sanitizer, vendor/status/vulnerability parsers, and parser regression fixture. | -| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Source.CertCc/TASKS.md | DONE (2025-10-11) | Team Connector Resumption – CERT/RedHat | FEEDCONN-CERTCC-02-004 | Canonical mapping & range primitives
VINCE DTO aggregate flows through `CertCcMapper`, emitting vendor range primitives + normalized version rules that persist via `_advisoryStore`. | -| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Source.CertCc/TASKS.md | DONE (2025-10-12) | Team Connector Resumption – CERT/RedHat | FEEDCONN-CERTCC-02-005 | Deterministic fixtures/tests
Snapshot harness refreshed 2025-10-12; `certcc-*.snapshot.json` regenerated and regression suite green without UPDATE flag drift. | -| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Source.CertCc/TASKS.md | DONE (2025-10-12) | Team Connector Resumption – CERT/RedHat | FEEDCONN-CERTCC-02-006 | Telemetry & documentation
`CertCcDiagnostics` publishes summary/detail/parse/map metrics (meter `StellaOps.Concelier.Source.CertCc`), README documents instruments, and log guidance captured for Ops on 2025-10-12. | -| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Source.CertCc/TASKS.md | DONE (2025-10-12) | Team Connector Resumption – CERT/RedHat | FEEDCONN-CERTCC-02-007 | Connector test harness remediation
Harness now wires `AddSourceCommon`, resets `FakeTimeProvider`, and passes canned-response regression run dated 2025-10-12. | -| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Source.CertCc/TASKS.md | DONE (2025-10-11) | Team Connector Resumption – CERT/RedHat | FEEDCONN-CERTCC-02-008 | Snapshot coverage handoff
Fixtures regenerated with normalized ranges + provenance fields on 2025-10-11; QA handoff notes published and merge backfill unblocked. | -| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Source.CertCc/TASKS.md | DONE (2025-10-12) | Team Connector Resumption – CERT/RedHat | FEEDCONN-CERTCC-02-012 | Schema sync & snapshot regen follow-up
Fixtures regenerated with normalizedVersions + provenance decision reasons; handoff notes updated for Merge backfill 2025-10-12. | -| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Source.CertCc/TASKS.md | DONE (2025-10-11) | Team Connector Resumption – CERT/RedHat | FEEDCONN-CERTCC-02-009 | Detail/map reintegration plan
Staged reintegration plan published in `src/StellaOps.Concelier.Source.CertCc/FEEDCONN-CERTCC-02-009_PLAN.md`; coordinates enablement with FEEDCONN-CERTCC-02-004. | -| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Source.CertCc/TASKS.md | DONE (2025-10-12) | Team Connector Resumption – CERT/RedHat | FEEDCONN-CERTCC-02-010 | Partial-detail graceful degradation
Detail fetch now tolerates 404/403/410 responses and regression tests cover mixed endpoint availability. | -| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Source.Distro.RedHat/TASKS.md | DONE (2025-10-11) | Team Connector Resumption – CERT/RedHat | FEEDCONN-REDHAT-02-001 | Fixture validation sweep
Instructions to work:
Fixtures regenerated post-model-helper rollout; provenance ordering and normalizedVersions scaffolding verified via tests. Conflict resolver deltas logged in src/StellaOps.Concelier.Source.Distro.RedHat/CONFLICT_RESOLVER_NOTES.md for Sprint 3 consumers. | -| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Source.Vndr.Apple/TASKS.md | DONE (2025-10-12) | Team Vendor Apple Specialists | FEEDCONN-APPLE-02-001 | Canonical mapping & range primitives
Mapper emits SemVer rules (`scheme=apple:*`); fixtures regenerated with trimmed references + new RSR coverage, update tooling finalized. | -| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Source.Vndr.Apple/TASKS.md | DONE (2025-10-11) | Team Vendor Apple Specialists | FEEDCONN-APPLE-02-002 | Deterministic fixtures/tests
Sanitized live fixtures + regression snapshots wired into tests; normalized rule coverage asserted. | -| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Source.Vndr.Apple/TASKS.md | DONE (2025-10-11) | Team Vendor Apple Specialists | FEEDCONN-APPLE-02-003 | Telemetry & documentation
Apple meter metrics wired into Concelier WebService OpenTelemetry configuration; README and fixtures document normalizedVersions coverage. | -| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Source.Vndr.Apple/TASKS.md | DONE (2025-10-12) | Team Vendor Apple Specialists | FEEDCONN-APPLE-02-004 | Live HTML regression sweep
Sanitised HT125326/HT125328/HT106355/HT214108/HT215500 fixtures recorded and regression tests green on 2025-10-12. | -| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Source.Vndr.Apple/TASKS.md | DONE (2025-10-11) | Team Vendor Apple Specialists | FEEDCONN-APPLE-02-005 | Fixture regeneration tooling
`UPDATE_APPLE_FIXTURES=1` flow fetches & rewrites fixtures; README documents usage.
Instructions to work:
DONE Read ./AGENTS.md and src/StellaOps.Concelier.Source.Vndr.Apple/AGENTS.md. Resume stalled tasks, ensuring normalizedVersions output and fixtures align with ./src/FASTER_MODELING_AND_NORMALIZATION.md before handing data to the conflict sprint. | -| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Source.Ghsa/TASKS.md | DONE (2025-10-12) | Team Connector Normalized Versions Rollout | FEEDCONN-GHSA-02-001 | GHSA normalized versions & provenance
Team instructions: Read ./AGENTS.md and each module's AGENTS file. Adopt the `NormalizedVersions` array emitted by the models sprint, wiring provenance `decisionReason` where merge overrides occur. Follow ./src/FASTER_MODELING_AND_NORMALIZATION.md; report via src/StellaOps.Concelier.Merge/TASKS.md (FEEDMERGE-COORD-02-900). Progress 2025-10-11: GHSA/OSV emit normalized arrays with refreshed fixtures; CVE mapper now surfaces SemVer normalized ranges; NVD/KEV adoption pending; outstanding follow-ups include FEEDSTORAGE-DATA-02-001, FEEDMERGE-ENGINE-02-002, and rolling `tools/FixtureUpdater` updates across connectors. | -| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Source.Osv/TASKS.md | DONE (2025-10-12) | Team Connector Normalized Versions Rollout | FEEDCONN-OSV-02-003 | OSV normalized versions & freshness | -| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Source.Nvd/TASKS.md | DONE (2025-10-12) | Team Connector Normalized Versions Rollout | FEEDCONN-NVD-02-002 | NVD normalized versions & timestamps | -| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Source.Cve/TASKS.md | DONE (2025-10-12) | Team Connector Normalized Versions Rollout | FEEDCONN-CVE-02-003 | CVE normalized versions uplift | -| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Source.Kev/TASKS.md | DONE (2025-10-12) | Team Connector Normalized Versions Rollout | FEEDCONN-KEV-02-003 | KEV normalized versions propagation | -| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Source.Osv/TASKS.md | DONE (2025-10-12) | Team Connector Normalized Versions Rollout | FEEDCONN-OSV-04-003 | OSV parity fixture refresh | +| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Connector.CertCc/TASKS.md | DONE (2025-10-11) | Team Connector Resumption – CERT/RedHat | FEEDCONN-CERTCC-02-001 | Fetch pipeline & state tracking
Summary planner now drives monthly/yearly VINCE fetches, persists pending summaries/notes, and hydrates VINCE detail queue with telemetry.
Team instructions: Read ./AGENTS.md and src/StellaOps.Concelier.Connector.CertCc/AGENTS.md. Coordinate daily with Models/Merge leads so new normalizedVersions output and provenance tags stay aligned with ./src/FASTER_MODELING_AND_NORMALIZATION.md. | +| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Connector.CertCc/TASKS.md | DONE (2025-10-11) | Team Connector Resumption – CERT/RedHat | FEEDCONN-CERTCC-02-002 | VINCE note detail fetcher
Summary planner queues VINCE note detail endpoints, persists raw JSON with SHA/ETag metadata, and records retry/backoff metrics. | +| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Connector.CertCc/TASKS.md | DONE (2025-10-11) | Team Connector Resumption – CERT/RedHat | FEEDCONN-CERTCC-02-003 | DTO & parser implementation
Added VINCE DTO aggregate, Markdown→text sanitizer, vendor/status/vulnerability parsers, and parser regression fixture. | +| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Connector.CertCc/TASKS.md | DONE (2025-10-11) | Team Connector Resumption – CERT/RedHat | FEEDCONN-CERTCC-02-004 | Canonical mapping & range primitives
VINCE DTO aggregate flows through `CertCcMapper`, emitting vendor range primitives + normalized version rules that persist via `_advisoryStore`. | +| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Connector.CertCc/TASKS.md | DONE (2025-10-12) | Team Connector Resumption – CERT/RedHat | FEEDCONN-CERTCC-02-005 | Deterministic fixtures/tests
Snapshot harness refreshed 2025-10-12; `certcc-*.snapshot.json` regenerated and regression suite green without UPDATE flag drift. | +| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Connector.CertCc/TASKS.md | DONE (2025-10-12) | Team Connector Resumption – CERT/RedHat | FEEDCONN-CERTCC-02-006 | Telemetry & documentation
`CertCcDiagnostics` publishes summary/detail/parse/map metrics (meter `StellaOps.Concelier.Connector.CertCc`), README documents instruments, and log guidance captured for Ops on 2025-10-12. | +| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Connector.CertCc/TASKS.md | DONE (2025-10-12) | Team Connector Resumption – CERT/RedHat | FEEDCONN-CERTCC-02-007 | Connector test harness remediation
Harness now wires `AddSourceCommon`, resets `FakeTimeProvider`, and passes canned-response regression run dated 2025-10-12. | +| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Connector.CertCc/TASKS.md | DONE (2025-10-11) | Team Connector Resumption – CERT/RedHat | FEEDCONN-CERTCC-02-008 | Snapshot coverage handoff
Fixtures regenerated with normalized ranges + provenance fields on 2025-10-11; QA handoff notes published and merge backfill unblocked. | +| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Connector.CertCc/TASKS.md | DONE (2025-10-12) | Team Connector Resumption – CERT/RedHat | FEEDCONN-CERTCC-02-012 | Schema sync & snapshot regen follow-up
Fixtures regenerated with normalizedVersions + provenance decision reasons; handoff notes updated for Merge backfill 2025-10-12. | +| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Connector.CertCc/TASKS.md | DONE (2025-10-11) | Team Connector Resumption – CERT/RedHat | FEEDCONN-CERTCC-02-009 | Detail/map reintegration plan
Staged reintegration plan published in `src/StellaOps.Concelier.Connector.CertCc/FEEDCONN-CERTCC-02-009_PLAN.md`; coordinates enablement with FEEDCONN-CERTCC-02-004. | +| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Connector.CertCc/TASKS.md | DONE (2025-10-12) | Team Connector Resumption – CERT/RedHat | FEEDCONN-CERTCC-02-010 | Partial-detail graceful degradation
Detail fetch now tolerates 404/403/410 responses and regression tests cover mixed endpoint availability. | +| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Connector.Distro.RedHat/TASKS.md | DONE (2025-10-11) | Team Connector Resumption – CERT/RedHat | FEEDCONN-REDHAT-02-001 | Fixture validation sweep
Instructions to work:
Fixtures regenerated post-model-helper rollout; provenance ordering and normalizedVersions scaffolding verified via tests. Conflict resolver deltas logged in src/StellaOps.Concelier.Connector.Distro.RedHat/CONFLICT_RESOLVER_NOTES.md for Sprint 3 consumers. | +| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Connector.Vndr.Apple/TASKS.md | DONE (2025-10-12) | Team Vendor Apple Specialists | FEEDCONN-APPLE-02-001 | Canonical mapping & range primitives
Mapper emits SemVer rules (`scheme=apple:*`); fixtures regenerated with trimmed references + new RSR coverage, update tooling finalized. | +| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Connector.Vndr.Apple/TASKS.md | DONE (2025-10-11) | Team Vendor Apple Specialists | FEEDCONN-APPLE-02-002 | Deterministic fixtures/tests
Sanitized live fixtures + regression snapshots wired into tests; normalized rule coverage asserted. | +| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Connector.Vndr.Apple/TASKS.md | DONE (2025-10-11) | Team Vendor Apple Specialists | FEEDCONN-APPLE-02-003 | Telemetry & documentation
Apple meter metrics wired into Concelier WebService OpenTelemetry configuration; README and fixtures document normalizedVersions coverage. | +| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Connector.Vndr.Apple/TASKS.md | DONE (2025-10-12) | Team Vendor Apple Specialists | FEEDCONN-APPLE-02-004 | Live HTML regression sweep
Sanitised HT125326/HT125328/HT106355/HT214108/HT215500 fixtures recorded and regression tests green on 2025-10-12. | +| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Connector.Vndr.Apple/TASKS.md | DONE (2025-10-11) | Team Vendor Apple Specialists | FEEDCONN-APPLE-02-005 | Fixture regeneration tooling
`UPDATE_APPLE_FIXTURES=1` flow fetches & rewrites fixtures; README documents usage.
Instructions to work:
DONE Read ./AGENTS.md and src/StellaOps.Concelier.Connector.Vndr.Apple/AGENTS.md. Resume stalled tasks, ensuring normalizedVersions output and fixtures align with ./src/FASTER_MODELING_AND_NORMALIZATION.md before handing data to the conflict sprint. | +| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Connector.Ghsa/TASKS.md | DONE (2025-10-12) | Team Connector Normalized Versions Rollout | FEEDCONN-GHSA-02-001 | GHSA normalized versions & provenance
Team instructions: Read ./AGENTS.md and each module's AGENTS file. Adopt the `NormalizedVersions` array emitted by the models sprint, wiring provenance `decisionReason` where merge overrides occur. Follow ./src/FASTER_MODELING_AND_NORMALIZATION.md; report via src/StellaOps.Concelier.Merge/TASKS.md (FEEDMERGE-COORD-02-900). Progress 2025-10-11: GHSA/OSV emit normalized arrays with refreshed fixtures; CVE mapper now surfaces SemVer normalized ranges; NVD/KEV adoption pending; outstanding follow-ups include FEEDSTORAGE-DATA-02-001, FEEDMERGE-ENGINE-02-002, and rolling `tools/FixtureUpdater` updates across connectors. | +| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Connector.Osv/TASKS.md | DONE (2025-10-12) | Team Connector Normalized Versions Rollout | FEEDCONN-OSV-02-003 | OSV normalized versions & freshness | +| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Connector.Nvd/TASKS.md | DONE (2025-10-12) | Team Connector Normalized Versions Rollout | FEEDCONN-NVD-02-002 | NVD normalized versions & timestamps | +| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Connector.Cve/TASKS.md | DONE (2025-10-12) | Team Connector Normalized Versions Rollout | FEEDCONN-CVE-02-003 | CVE normalized versions uplift | +| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Connector.Kev/TASKS.md | DONE (2025-10-12) | Team Connector Normalized Versions Rollout | FEEDCONN-KEV-02-003 | KEV normalized versions propagation | +| Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.Connector.Osv/TASKS.md | DONE (2025-10-12) | Team Connector Normalized Versions Rollout | FEEDCONN-OSV-04-003 | OSV parity fixture refresh | | Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.WebService/TASKS.md | DONE (2025-10-10) | Team WebService & Authority | FEEDWEB-DOCS-01-001 | Document authority toggle & scope requirements
Quickstart carries toggle/scope guidance pending docs guild review (no change this sprint). | | Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.WebService/TASKS.md | DONE (2025-10-12) | Team WebService & Authority | FEEDWEB-ENGINE-01-002 | Plumb Authority client resilience options
WebService wires `authority.resilience.*` into `AddStellaOpsAuthClient` and adds binding coverage via `AuthorityClientResilienceOptionsAreBound`. | | Sprint 1 | Stabilize In-Progress Foundations | src/StellaOps.Concelier.WebService/TASKS.md | DONE (2025-10-12) | Team WebService & Authority | FEEDWEB-DOCS-01-003 | Author ops guidance for resilience tuning
Operator docs now outline connected vs air-gapped resilience profiles and monitoring cues. | @@ -59,28 +59,28 @@ | Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Storage.Mongo/TASKS.md | DONE (2025-10-11) | Team Normalization & Storage Backbone | FEEDSTORAGE-DATA-02-002 | Provenance decision reason persistence | | Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Storage.Mongo/TASKS.md | DONE (2025-10-11) | Team Normalization & Storage Backbone | FEEDSTORAGE-DATA-02-003 | Normalized versions indexing
Indexes seeded + docs updated 2025-10-11 to cover flattened normalized rules for connector adoption. | | Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Merge/TASKS.md | DONE (2025-10-11) | Team Normalization & Storage Backbone | FEEDMERGE-ENGINE-02-002 | Normalized versions union & dedupe
Affected package resolver unions/dedupes normalized rules, stamps merge provenance with `decisionReason`, and tests cover the rollout. | -| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Source.Ghsa/TASKS.md | DONE (2025-10-11) | Team Connector Expansion – GHSA/NVD/OSV | FEEDCONN-GHSA-02-001 | GHSA normalized versions & provenance | -| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Source.Ghsa/TASKS.md | DONE (2025-10-11) | Team Connector Expansion – GHSA/NVD/OSV | FEEDCONN-GHSA-02-004 | GHSA credits & ecosystem severity mapping | -| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Source.Ghsa/TASKS.md | DONE (2025-10-12) | Team Connector Expansion – GHSA/NVD/OSV | FEEDCONN-GHSA-02-005 | GitHub quota monitoring & retries | -| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Source.Ghsa/TASKS.md | DONE (2025-10-12) | Team Connector Expansion – GHSA/NVD/OSV | FEEDCONN-GHSA-02-006 | Production credential & scheduler rollout | -| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Source.Ghsa/TASKS.md | DONE (2025-10-12) | Team Connector Expansion – GHSA/NVD/OSV | FEEDCONN-GHSA-02-007 | Credit parity regression fixtures | -| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Source.Nvd/TASKS.md | DONE (2025-10-11) | Team Connector Expansion – GHSA/NVD/OSV | FEEDCONN-NVD-02-002 | NVD normalized versions & timestamps | -| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Source.Nvd/TASKS.md | DONE (2025-10-11) | Team Connector Expansion – GHSA/NVD/OSV | FEEDCONN-NVD-02-004 | NVD CVSS & CWE precedence payloads | -| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Source.Nvd/TASKS.md | DONE (2025-10-12) | Team Connector Expansion – GHSA/NVD/OSV | FEEDCONN-NVD-02-005 | NVD merge/export parity regression | -| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Source.Osv/TASKS.md | DONE (2025-10-11) | Team Connector Expansion – GHSA/NVD/OSV | FEEDCONN-OSV-02-003 | OSV normalized versions & freshness | -| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Source.Osv/TASKS.md | DONE (2025-10-11) | Team Connector Expansion – GHSA/NVD/OSV | FEEDCONN-OSV-02-004 | OSV references & credits alignment | -| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Source.Osv/TASKS.md | DONE (2025-10-12) | Team Connector Expansion – GHSA/NVD/OSV | FEEDCONN-OSV-02-005 | Fixture updater workflow
Resolved 2025-10-12: OSV mapper now derives canonical PURLs for Go + scoped npm packages when raw payloads omit `purl`; conflict fixtures unchanged for invalid npm names. Verified via `dotnet test src/StellaOps.Concelier.Source.Osv.Tests`, `src/StellaOps.Concelier.Source.Ghsa.Tests`, `src/StellaOps.Concelier.Source.Nvd.Tests`, and backbone normalization/storage suites. | -| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Source.Acsc/TASKS.md | DONE (2025-10-12) | Team Connector Expansion – Regional & Vendor Feeds | FEEDCONN-ACSC-02-001 … 02-008 | Fetch→parse→map pipeline, fixtures, diagnostics, and README finished 2025-10-12; downstream export parity captured via FEEDEXPORT-JSON-04-001 / FEEDEXPORT-TRIVY-04-001 (completed). | -| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Source.Cccs/TASKS.md | DONE (2025-10-16) | Team Connector Expansion – Regional & Vendor Feeds | FEEDCONN-CCCS-02-001 … 02-008 | Observability meter, historical harvest plan, and DOM sanitizer refinements wrapped; ops notes live under `docs/ops/concelier-cccs-operations.md` with fixtures validating EN/FR list handling. | -| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Source.CertBund/TASKS.md | DONE (2025-10-15) | Team Connector Expansion – Regional & Vendor Feeds | FEEDCONN-CERTBUND-02-001 … 02-008 | Telemetry/docs (02-006) and history/locale sweep (02-007) completed alongside pipeline; runbook `docs/ops/concelier-certbund-operations.md` captures locale guidance and offline packaging. | -| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Source.Kisa/TASKS.md | DONE (2025-10-14) | Team Connector Expansion – Regional & Vendor Feeds | FEEDCONN-KISA-02-001 … 02-007 | Connector, tests, and telemetry/docs (02-006) finalized; localisation notes in `docs/dev/kisa_connector_notes.md` complete rollout. | -| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Source.Ru.Bdu/TASKS.md | DONE (2025-10-14) | Team Connector Expansion – Regional & Vendor Feeds | FEEDCONN-RUBDU-02-001 … 02-008 | Fetch/parser/mapper refinements, regression fixtures, telemetry/docs, access options, and trusted root packaging all landed; README documents offline access strategy. | -| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Source.Ru.Nkcki/TASKS.md | DONE (2025-10-13) | Team Connector Expansion – Regional & Vendor Feeds | FEEDCONN-NKCKI-02-001 … 02-008 | Listing fetch, parser, mapper, fixtures, telemetry/docs, and archive plan finished; Mongo2Go/libcrypto dependency resolved via bundled OpenSSL noted in ops guide. | -| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Source.Ics.Cisa/TASKS.md | DONE (2025-10-16) | Team Connector Expansion – Regional & Vendor Feeds | FEEDCONN-ICSCISA-02-001 … 02-011 | Feed parser attachment fixes, SemVer exact values, regression suites, telemetry/docs updates, and handover complete; ops runbook now details attachment verification + proxy usage. | -| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Source.Vndr.Cisco/TASKS.md | DONE (2025-10-14) | Team Connector Expansion – Regional & Vendor Feeds | FEEDCONN-CISCO-02-001 … 02-007 | OAuth fetch pipeline, DTO/mapping, tests, and telemetry/docs shipped; monitoring/export integration follow-ups recorded in Ops docs and exporter backlog (completed). | -| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Source.Vndr.Msrc/TASKS.md | DONE (2025-10-15) | Team Connector Expansion – Regional & Vendor Feeds | FEEDCONN-MSRC-02-001 … 02-008 | Azure AD onboarding (02-008) unblocked fetch/parse/map pipeline; fixtures, telemetry/docs, and Offline Kit guidance published in `docs/ops/concelier-msrc-operations.md`. | -| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Source.Cve/TASKS.md | DONE (2025-10-15) | Team Connector Support & Monitoring | FEEDCONN-CVE-02-001 … 02-002 | CVE data-source selection, fetch pipeline, and docs landed 2025-10-10. 2025-10-15: smoke verified using the seeded mirror fallback; connector now logs a warning and pulls from `seed-data/cve/` until live CVE Services credentials arrive. | -| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Source.Kev/TASKS.md | DONE (2025-10-12) | Team Connector Support & Monitoring | FEEDCONN-KEV-02-001 … 02-002 | KEV catalog ingestion, fixtures, telemetry, and schema validation completed 2025-10-12; ops dashboard published. | +| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Connector.Ghsa/TASKS.md | DONE (2025-10-11) | Team Connector Expansion – GHSA/NVD/OSV | FEEDCONN-GHSA-02-001 | GHSA normalized versions & provenance | +| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Connector.Ghsa/TASKS.md | DONE (2025-10-11) | Team Connector Expansion – GHSA/NVD/OSV | FEEDCONN-GHSA-02-004 | GHSA credits & ecosystem severity mapping | +| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Connector.Ghsa/TASKS.md | DONE (2025-10-12) | Team Connector Expansion – GHSA/NVD/OSV | FEEDCONN-GHSA-02-005 | GitHub quota monitoring & retries | +| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Connector.Ghsa/TASKS.md | DONE (2025-10-12) | Team Connector Expansion – GHSA/NVD/OSV | FEEDCONN-GHSA-02-006 | Production credential & scheduler rollout | +| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Connector.Ghsa/TASKS.md | DONE (2025-10-12) | Team Connector Expansion – GHSA/NVD/OSV | FEEDCONN-GHSA-02-007 | Credit parity regression fixtures | +| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Connector.Nvd/TASKS.md | DONE (2025-10-11) | Team Connector Expansion – GHSA/NVD/OSV | FEEDCONN-NVD-02-002 | NVD normalized versions & timestamps | +| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Connector.Nvd/TASKS.md | DONE (2025-10-11) | Team Connector Expansion – GHSA/NVD/OSV | FEEDCONN-NVD-02-004 | NVD CVSS & CWE precedence payloads | +| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Connector.Nvd/TASKS.md | DONE (2025-10-12) | Team Connector Expansion – GHSA/NVD/OSV | FEEDCONN-NVD-02-005 | NVD merge/export parity regression | +| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Connector.Osv/TASKS.md | DONE (2025-10-11) | Team Connector Expansion – GHSA/NVD/OSV | FEEDCONN-OSV-02-003 | OSV normalized versions & freshness | +| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Connector.Osv/TASKS.md | DONE (2025-10-11) | Team Connector Expansion – GHSA/NVD/OSV | FEEDCONN-OSV-02-004 | OSV references & credits alignment | +| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Connector.Osv/TASKS.md | DONE (2025-10-12) | Team Connector Expansion – GHSA/NVD/OSV | FEEDCONN-OSV-02-005 | Fixture updater workflow
Resolved 2025-10-12: OSV mapper now derives canonical PURLs for Go + scoped npm packages when raw payloads omit `purl`; conflict fixtures unchanged for invalid npm names. Verified via `dotnet test src/StellaOps.Concelier.Connector.Osv.Tests`, `src/StellaOps.Concelier.Connector.Ghsa.Tests`, `src/StellaOps.Concelier.Connector.Nvd.Tests`, and backbone normalization/storage suites. | +| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Connector.Acsc/TASKS.md | DONE (2025-10-12) | Team Connector Expansion – Regional & Vendor Feeds | FEEDCONN-ACSC-02-001 … 02-008 | Fetch→parse→map pipeline, fixtures, diagnostics, and README finished 2025-10-12; downstream export parity captured via FEEDEXPORT-JSON-04-001 / FEEDEXPORT-TRIVY-04-001 (completed). | +| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Connector.Cccs/TASKS.md | DONE (2025-10-16) | Team Connector Expansion – Regional & Vendor Feeds | FEEDCONN-CCCS-02-001 … 02-008 | Observability meter, historical harvest plan, and DOM sanitizer refinements wrapped; ops notes live under `docs/ops/concelier-cccs-operations.md` with fixtures validating EN/FR list handling. | +| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Connector.CertBund/TASKS.md | DONE (2025-10-15) | Team Connector Expansion – Regional & Vendor Feeds | FEEDCONN-CERTBUND-02-001 … 02-008 | Telemetry/docs (02-006) and history/locale sweep (02-007) completed alongside pipeline; runbook `docs/ops/concelier-certbund-operations.md` captures locale guidance and offline packaging. | +| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Connector.Kisa/TASKS.md | DONE (2025-10-14) | Team Connector Expansion – Regional & Vendor Feeds | FEEDCONN-KISA-02-001 … 02-007 | Connector, tests, and telemetry/docs (02-006) finalized; localisation notes in `docs/dev/kisa_connector_notes.md` complete rollout. | +| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Connector.Ru.Bdu/TASKS.md | DONE (2025-10-14) | Team Connector Expansion – Regional & Vendor Feeds | FEEDCONN-RUBDU-02-001 … 02-008 | Fetch/parser/mapper refinements, regression fixtures, telemetry/docs, access options, and trusted root packaging all landed; README documents offline access strategy. | +| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Connector.Ru.Nkcki/TASKS.md | DONE (2025-10-13) | Team Connector Expansion – Regional & Vendor Feeds | FEEDCONN-NKCKI-02-001 … 02-008 | Listing fetch, parser, mapper, fixtures, telemetry/docs, and archive plan finished; Mongo2Go/libcrypto dependency resolved via bundled OpenSSL noted in ops guide. | +| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Connector.Ics.Cisa/TASKS.md | DONE (2025-10-16) | Team Connector Expansion – Regional & Vendor Feeds | FEEDCONN-ICSCISA-02-001 … 02-011 | Feed parser attachment fixes, SemVer exact values, regression suites, telemetry/docs updates, and handover complete; ops runbook now details attachment verification + proxy usage. | +| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Connector.Vndr.Cisco/TASKS.md | DONE (2025-10-14) | Team Connector Expansion – Regional & Vendor Feeds | FEEDCONN-CISCO-02-001 … 02-007 | OAuth fetch pipeline, DTO/mapping, tests, and telemetry/docs shipped; monitoring/export integration follow-ups recorded in Ops docs and exporter backlog (completed). | +| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Connector.Vndr.Msrc/TASKS.md | DONE (2025-10-15) | Team Connector Expansion – Regional & Vendor Feeds | FEEDCONN-MSRC-02-001 … 02-008 | Azure AD onboarding (02-008) unblocked fetch/parse/map pipeline; fixtures, telemetry/docs, and Offline Kit guidance published in `docs/ops/concelier-msrc-operations.md`. | +| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Connector.Cve/TASKS.md | DONE (2025-10-15) | Team Connector Support & Monitoring | FEEDCONN-CVE-02-001 … 02-002 | CVE data-source selection, fetch pipeline, and docs landed 2025-10-10. 2025-10-15: smoke verified using the seeded mirror fallback; connector now logs a warning and pulls from `seed-data/cve/` until live CVE Services credentials arrive. | +| Sprint 2 | Connector & Data Implementation Wave | src/StellaOps.Concelier.Connector.Kev/TASKS.md | DONE (2025-10-12) | Team Connector Support & Monitoring | FEEDCONN-KEV-02-001 … 02-002 | KEV catalog ingestion, fixtures, telemetry, and schema validation completed 2025-10-12; ops dashboard published. | | Sprint 2 | Connector & Data Implementation Wave | docs/TASKS.md | DONE (2025-10-11) | Team Docs & Knowledge Base | FEEDDOCS-DOCS-01-001 | Canonical schema docs refresh
Updated canonical schema + provenance guides with SemVer style, normalized version rules, decision reason change log, and migration notes. | | Sprint 2 | Connector & Data Implementation Wave | docs/TASKS.md | DONE (2025-10-11) | Team Docs & Knowledge Base | FEEDDOCS-DOCS-02-001 | Concelier-SemVer Playbook
Published merge playbook covering mapper patterns, dedupe flow, indexes, and rollout checklist. | | Sprint 2 | Connector & Data Implementation Wave | docs/TASKS.md | DONE (2025-10-11) | Team Docs & Knowledge Base | FEEDDOCS-DOCS-02-002 | Normalized versions query guide
Delivered Mongo index/query addendum with `$unwind` recipes, dedupe checks, and operational checklist.
Instructions to work:
DONE Read ./AGENTS.md and docs/AGENTS.md. Document every schema/index/query change produced in Sprint 1-2 leveraging ./src/FASTER_MODELING_AND_NORMALIZATION.md. | @@ -93,9 +93,9 @@ | Sprint 3 | Conflict Resolution Integration & Communications | src/StellaOps.Concelier.Merge/TASKS.md | DONE (2025-10-11) | Team Merge & QA Enforcement | FEEDMERGE-ENGINE-04-002 | Override metrics instrumentation
Merge events capture per-field decisions; counters/logs align with conflict rules. | | Sprint 3 | Conflict Resolution Integration & Communications | src/StellaOps.Concelier.Merge/TASKS.md | DONE (2025-10-11) | Team Merge & QA Enforcement | FEEDMERGE-ENGINE-04-003 | Reference & credit union pipeline
Canonical merge preserves unions with updated tests. | | Sprint 3 | Conflict Resolution Integration & Communications | src/StellaOps.Concelier.Merge/TASKS.md | DONE (2025-10-11) | Team Merge & QA Enforcement | FEEDMERGE-QA-04-001 | End-to-end conflict regression suite
Added regression tests (`AdvisoryMergeServiceTests`) covering canonical + precedence flow.
Instructions to work:
Read ./AGENTS.md and merge AGENTS. Integrate the canonical merger, instrument metrics, and deliver comprehensive regression tests following ./src/DEDUP_CONFLICTS_RESOLUTION_ALGO.md. | -| Sprint 3 | Conflict Resolution Integration & Communications | src/StellaOps.Concelier.Source.Ghsa/TASKS.md | DONE (2025-10-12) | Team Connector Regression Fixtures | FEEDCONN-GHSA-04-002 | GHSA conflict regression fixtures | -| Sprint 3 | Conflict Resolution Integration & Communications | src/StellaOps.Concelier.Source.Nvd/TASKS.md | DONE (2025-10-12) | Team Connector Regression Fixtures | FEEDCONN-NVD-04-002 | NVD conflict regression fixtures | -| Sprint 3 | Conflict Resolution Integration & Communications | src/StellaOps.Concelier.Source.Osv/TASKS.md | DONE (2025-10-12) | Team Connector Regression Fixtures | FEEDCONN-OSV-04-002 | OSV conflict regression fixtures
Instructions to work:
Read ./AGENTS.md and module AGENTS. Produce fixture triples supporting the precedence/tie-breaker paths defined in ./src/DEDUP_CONFLICTS_RESOLUTION_ALGO.md and hand them to Merge QA. | +| Sprint 3 | Conflict Resolution Integration & Communications | src/StellaOps.Concelier.Connector.Ghsa/TASKS.md | DONE (2025-10-12) | Team Connector Regression Fixtures | FEEDCONN-GHSA-04-002 | GHSA conflict regression fixtures | +| Sprint 3 | Conflict Resolution Integration & Communications | src/StellaOps.Concelier.Connector.Nvd/TASKS.md | DONE (2025-10-12) | Team Connector Regression Fixtures | FEEDCONN-NVD-04-002 | NVD conflict regression fixtures | +| Sprint 3 | Conflict Resolution Integration & Communications | src/StellaOps.Concelier.Connector.Osv/TASKS.md | DONE (2025-10-12) | Team Connector Regression Fixtures | FEEDCONN-OSV-04-002 | OSV conflict regression fixtures
Instructions to work:
Read ./AGENTS.md and module AGENTS. Produce fixture triples supporting the precedence/tie-breaker paths defined in ./src/DEDUP_CONFLICTS_RESOLUTION_ALGO.md and hand them to Merge QA. | | Sprint 3 | Conflict Resolution Integration & Communications | docs/TASKS.md | DONE (2025-10-11) | Team Documentation Guild – Conflict Guidance | FEEDDOCS-DOCS-05-001 | Concelier Conflict Rules
Runbook published at `docs/ops/concelier-conflict-resolution.md`; metrics/log guidance aligned with Sprint 3 merge counters. | | Sprint 3 | Conflict Resolution Integration & Communications | docs/TASKS.md | DONE (2025-10-16) | Team Documentation Guild – Conflict Guidance | FEEDDOCS-DOCS-05-002 | Conflict runbook ops rollout
Ops review completed, alert thresholds applied, and change log appended in `docs/ops/concelier-conflict-resolution.md`; task closed after connector signals verified. | | Sprint 4 | Schema Parity & Freshness Alignment | src/StellaOps.Concelier.Models/TASKS.md | DONE (2025-10-15) | Team Models & Merge Leads | FEEDMODELS-SCHEMA-04-001 | Advisory schema parity (description/CWE/canonical metric)
Extend `Advisory` and related records with description text, CWE collection, and canonical metric pointer; refresh validation + serializer determinism tests. | @@ -105,8 +105,8 @@ | Sprint 4 | Schema Parity & Freshness Alignment | src/StellaOps.Concelier.Merge/TASKS.md | DONE (2025-10-15) | Team Merge & QA Enforcement | FEEDMERGE-ENGINE-04-005 | Connector coordination for new advisory fields
GHSA/NVD/OSV connectors now ship description, CWE, and canonical metric data with refreshed fixtures; merge coordination log updated and exporters notified. | | Sprint 4 | Schema Parity & Freshness Alignment | src/StellaOps.Concelier.Exporter.Json/TASKS.md | DONE (2025-10-15) | Team Exporters – JSON | FEEDEXPORT-JSON-04-001 | Surface new advisory fields in JSON exporter
Update schemas/offline bundle + fixtures once model/core parity lands.
2025-10-15: `dotnet test src/StellaOps.Concelier.Exporter.Json.Tests` validated canonical metric/CWE emission. | | Sprint 4 | Schema Parity & Freshness Alignment | src/StellaOps.Concelier.Exporter.TrivyDb/TASKS.md | DONE (2025-10-15) | Team Exporters – Trivy DB | FEEDEXPORT-TRIVY-04-001 | Propagate new advisory fields into Trivy DB package
Extend Bolt builder, metadata, and regression tests for the expanded schema.
2025-10-15: `dotnet test src/StellaOps.Concelier.Exporter.TrivyDb.Tests` confirmed canonical metric/CWE propagation. | -| Sprint 4 | Schema Parity & Freshness Alignment | src/StellaOps.Concelier.Source.Ghsa/TASKS.md | DONE (2025-10-16) | Team Connector Regression Fixtures | FEEDCONN-GHSA-04-004 | Harden CVSS fallback so canonical metric ids persist when GitHub omits vectors; extend fixtures and document severity precedence hand-off to Merge. | -| Sprint 4 | Schema Parity & Freshness Alignment | src/StellaOps.Concelier.Source.Osv/TASKS.md | DONE (2025-10-16) | Team Connector Expansion – GHSA/NVD/OSV | FEEDCONN-OSV-04-005 | Map OSV advisories lacking CVSS vectors to canonical metric ids/notes and document CWE provenance quirks; schedule parity fixture updates. | +| Sprint 4 | Schema Parity & Freshness Alignment | src/StellaOps.Concelier.Connector.Ghsa/TASKS.md | DONE (2025-10-16) | Team Connector Regression Fixtures | FEEDCONN-GHSA-04-004 | Harden CVSS fallback so canonical metric ids persist when GitHub omits vectors; extend fixtures and document severity precedence hand-off to Merge. | +| Sprint 4 | Schema Parity & Freshness Alignment | src/StellaOps.Concelier.Connector.Osv/TASKS.md | DONE (2025-10-16) | Team Connector Expansion – GHSA/NVD/OSV | FEEDCONN-OSV-04-005 | Map OSV advisories lacking CVSS vectors to canonical metric ids/notes and document CWE provenance quirks; schedule parity fixture updates. | | Sprint 5 | Excititor Core Foundations | src/StellaOps.Excititor.Core/TASKS.md | DONE (2025-10-15) | Team Excititor Core & Policy | EXCITITOR-CORE-01-001 | Stand up canonical VEX claim/consensus records with deterministic serializers so Storage/Exports share a stable contract. | | Sprint 5 | Excititor Core Foundations | src/StellaOps.Excititor.Core/TASKS.md | DONE (2025-10-15) | Team Excititor Core & Policy | EXCITITOR-CORE-01-002 | Implement trust-weighted consensus resolver with baseline policy weights, justification gates, telemetry output, and majority/tie handling. | | Sprint 5 | Excititor Core Foundations | src/StellaOps.Excititor.Core/TASKS.md | DONE (2025-10-15) | Team Excititor Core & Policy | EXCITITOR-CORE-01-003 | Publish shared connector/exporter/attestation abstractions and deterministic query signature utilities for cache/attestation workflows. | diff --git a/TODOS.md b/TODOS.md index 7f27bef3..c380c896 100644 --- a/TODOS.md +++ b/TODOS.md @@ -4,7 +4,7 @@ |FEEDCONN-CERTCC-02-005 Deterministic fixtures/tests|DONE (2025-10-11)|Snapshot regression for summary/detail fetch landed; fixtures regenerate via `UPDATE_CERTCC_FIXTURES`.| |FEEDCONN-CERTCC-02-008 Snapshot coverage handoff|DONE (2025-10-11)|Fixtures + README guidance shipped; QA can rerun with `UPDATE_CERTCC_FIXTURES=1` and share recorded-request diff with Merge.| |FEEDCONN-CERTCC-02-007 Connector test harness remediation|DONE (2025-10-11)|Harness now resets time provider, wires Source.Common, and verifies VINCE canned responses across fetch→parse→map.| -|FEEDCONN-CERTCC-02-009 Detail/map reintegration plan|DONE (2025-10-11)|Plan published in `src/StellaOps.Concelier.Source.CertCc/FEEDCONN-CERTCC-02-009_PLAN.md`; outlines staged enablement + rollback.| +|FEEDCONN-CERTCC-02-009 Detail/map reintegration plan|DONE (2025-10-11)|Plan published in `src/StellaOps.Concelier.Connector.CertCc/FEEDCONN-CERTCC-02-009_PLAN.md`; outlines staged enablement + rollback.| # Connector Apple Status | Task | Status | Notes | diff --git a/docs/19_TEST_SUITE_OVERVIEW.md b/docs/19_TEST_SUITE_OVERVIEW.md index 28d98e75..991e8d07 100755 --- a/docs/19_TEST_SUITE_OVERVIEW.md +++ b/docs/19_TEST_SUITE_OVERVIEW.md @@ -63,13 +63,13 @@ The script spins up MongoDB/Redis via Testcontainers and requires: The Concelier connector suite includes a regression test (`OsvGhsaParityRegressionTests`) that checks a curated set of GHSA identifiers against OSV responses. The fixture -snapshots live in `src/StellaOps.Concelier.Source.Osv.Tests/Fixtures/` and are kept +snapshots live in `src/StellaOps.Concelier.Connector.Osv.Tests/Fixtures/` and are kept deterministic so the parity report remains reproducible. To refresh the fixtures when GHSA/OSV payloads change: 1. Ensure outbound HTTPS access to `https://api.osv.dev` and `https://api.github.com`. -2. Run `UPDATE_PARITY_FIXTURES=1 dotnet test src/StellaOps.Concelier.Source.Osv.Tests/StellaOps.Concelier.Source.Osv.Tests.csproj`. +2. Run `UPDATE_PARITY_FIXTURES=1 dotnet test src/StellaOps.Concelier.Connector.Osv.Tests/StellaOps.Concelier.Connector.Osv.Tests.csproj`. 3. Commit the regenerated `osv-ghsa.*.json` files that the test emits (raw snapshots and canonical advisories). The regen flow logs `[Parity]` messages and normalises `recordedAt` timestamps so the diff --git a/docs/dev/fixtures.md b/docs/dev/fixtures.md index e6aa0faf..876905b5 100644 --- a/docs/dev/fixtures.md +++ b/docs/dev/fixtures.md @@ -7,39 +7,39 @@ fixture sets, where they live, and how to regenerate them safely. ## GHSA ↔ OSV parity fixtures -- **Location:** `src/StellaOps.Concelier.Source.Osv.Tests/Fixtures/osv-ghsa.*.json` +- **Location:** `src/StellaOps.Concelier.Connector.Osv.Tests/Fixtures/osv-ghsa.*.json` - **Purpose:** Exercised by `OsvGhsaParityRegressionTests` to ensure OSV + GHSA outputs stay aligned on aliases, ranges, references, and credits. -- **Regeneration:** Either run the test harness with online regeneration (`UPDATE_PARITY_FIXTURES=1 dotnet test src/StellaOps.Concelier.Source.Osv.Tests/StellaOps.Concelier.Source.Osv.Tests.csproj`) +- **Regeneration:** Either run the test harness with online regeneration (`UPDATE_PARITY_FIXTURES=1 dotnet test src/StellaOps.Concelier.Connector.Osv.Tests/StellaOps.Concelier.Connector.Osv.Tests.csproj`) or execute the fixture updater (`dotnet run --project tools/FixtureUpdater/FixtureUpdater.csproj`). Both paths normalise timestamps and canonical ordering. - **SemVer provenance:** The regenerated fixtures should show `normalizedVersions[].notes` in the `osv:{ecosystem}:{advisoryId}:{identifier}` shape emitted by `SemVerRangeRuleBuilder`. Confirm the constraints and notes line up with GHSA/NVD composites before committing. -- **Verification:** Inspect the diff, then re-run `dotnet test src/StellaOps.Concelier.Source.Osv.Tests/StellaOps.Concelier.Source.Osv.Tests.csproj` to confirm parity. +- **Verification:** Inspect the diff, then re-run `dotnet test src/StellaOps.Concelier.Connector.Osv.Tests/StellaOps.Concelier.Connector.Osv.Tests.csproj` to confirm parity. ## GHSA credit parity fixtures -- **Location:** `src/StellaOps.Concelier.Source.Ghsa.Tests/Fixtures/credit-parity.{ghsa,osv,nvd}.json` +- **Location:** `src/StellaOps.Concelier.Connector.Ghsa.Tests/Fixtures/credit-parity.{ghsa,osv,nvd}.json` - **Purpose:** Exercised by `GhsaCreditParityRegressionTests` to guarantee GHSA/NVD/OSV acknowledgements remain in lockstep. - **Regeneration:** `dotnet run --project tools/FixtureUpdater/FixtureUpdater.csproj` rewrites all three canonical snapshots. -- **Verification:** `dotnet test src/StellaOps.Concelier.Source.Ghsa.Tests/StellaOps.Concelier.Source.Ghsa.Tests.csproj`. +- **Verification:** `dotnet test src/StellaOps.Concelier.Connector.Ghsa.Tests/StellaOps.Concelier.Connector.Ghsa.Tests.csproj`. > Always commit fixture changes together with the code that motivated them and reference the regression test that guards the behaviour. ## Apple security update fixtures -- **Location:** `src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/Fixtures/*.html` and `.expected.json`. +- **Location:** `src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/Fixtures/*.html` and `.expected.json`. - **Purpose:** Exercised by `AppleLiveRegressionTests` to guarantee the Apple HTML parser and mapper stay deterministic while covering Rapid Security Responses and multi-device advisories. - **Regeneration:** Use the helper scripts (`scripts/update-apple-fixtures.sh` or `scripts/update-apple-fixtures.ps1`). They export `UPDATE_APPLE_FIXTURES=1`, propagate the flag through `WSLENV`, touch `.update-apple-fixtures`, and then run the Apple test project. This keeps WSL/VSCode test invocations in sync while the refresh workflow fetches live Apple support pages, sanitises them, and rewrites both the HTML and expected DTO snapshots with normalised ordering. -- **Verification:** Inspect the generated diffs and re-run `dotnet test src/StellaOps.Concelier.Source.Vndr.Apple.Tests/StellaOps.Concelier.Source.Vndr.Apple.Tests.csproj` without the env var to confirm determinism. +- **Verification:** Inspect the generated diffs and re-run `dotnet test src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/StellaOps.Concelier.Connector.Vndr.Apple.Tests.csproj` without the env var to confirm determinism. > **Tip for other connector owners:** mirror the sentinel + `WSLENV` pattern (`touch .update--fixtures`, append the env var via `WSLENV`) when you add fixture refresh scripts so contributors running under WSL inherit the regeneration flag automatically. ## KISA advisory fixtures -- **Location:** `src/StellaOps.Concelier.Source.Kisa.Tests/Fixtures/kisa-{feed,detail}.(xml|json)` +- **Location:** `src/StellaOps.Concelier.Connector.Kisa.Tests/Fixtures/kisa-{feed,detail}.(xml|json)` - **Purpose:** Used by `KisaConnectorTests` to verify Hangul-aware fetch → parse → map flows and to assert telemetry counters stay wired. -- **Regeneration:** `UPDATE_KISA_FIXTURES=1 dotnet test src/StellaOps.Concelier.Source.Kisa.Tests/StellaOps.Concelier.Source.Kisa.Tests.csproj` +- **Regeneration:** `UPDATE_KISA_FIXTURES=1 dotnet test src/StellaOps.Concelier.Connector.Kisa.Tests/StellaOps.Concelier.Connector.Kisa.Tests.csproj` - **Verification:** Re-run the same test suite without the env var; confirm advisory content remains NFC-normalised and HTML is sanitised. Metrics assertions will fail if counters drift. - **Localisation note:** RSS `category` values (e.g. `취약점정보`) remain in Hangul—do not translate them in fixtures; they feed directly into metrics/log tags. diff --git a/docs/dev/kisa_connector_notes.md b/docs/dev/kisa_connector_notes.md index bee33738..5ebd37b4 100644 --- a/docs/dev/kisa_connector_notes.md +++ b/docs/dev/kisa_connector_notes.md @@ -4,7 +4,7 @@ The KISA/KNVD connector now ships with structured telemetry, richer logging, and ## Telemetry counters -All metrics are emitted from `KisaDiagnostics` (`Meter` name `StellaOps.Concelier.Source.Kisa`). +All metrics are emitted from `KisaDiagnostics` (`Meter` name `StellaOps.Concelier.Connector.Kisa`). | Metric | Description | Tags | | --- | --- | --- | @@ -39,7 +39,7 @@ The messages use structured properties (`Idx`, `Category`, `DocumentId`, `Severi - Hangul fields (`title`, `summary`, `category`, `reference.label`, product vendor/name) are normalised to NFC before storage. Sample category `취약점정보` roughly translates to “vulnerability information”. - Advisory HTML is sanitised via `HtmlContentSanitizer`, stripping script/style while preserving inline anchors for translation pipelines. - Metrics carry Hangul `category` tags and logging keeps Hangul strings intact; this ensures air-gapped operators can validate native-language content without relying on MT. -- Fixtures live under `src/StellaOps.Concelier.Source.Kisa.Tests/Fixtures/`. Regenerate with `UPDATE_KISA_FIXTURES=1 dotnet test src/StellaOps.Concelier.Source.Kisa.Tests/StellaOps.Concelier.Source.Kisa.Tests.csproj`. +- Fixtures live under `src/StellaOps.Concelier.Connector.Kisa.Tests/Fixtures/`. Regenerate with `UPDATE_KISA_FIXTURES=1 dotnet test src/StellaOps.Concelier.Connector.Kisa.Tests/StellaOps.Concelier.Connector.Kisa.Tests.csproj`. - The regression suite asserts canonical mapping, state cleanup, and telemetry counters (`KisaConnectorTests.Telemetry_RecordsMetrics`) so QA can track instrumentation drift. For operator docs, link to this brief when documenting Hangul handling or counter dashboards so localisation reviewers have a single reference point. diff --git a/docs/dev/normalized_versions_rollout.md b/docs/dev/normalized_versions_rollout.md index b348bcd8..dab2d619 100644 --- a/docs/dev/normalized_versions_rollout.md +++ b/docs/dev/normalized_versions_rollout.md @@ -18,22 +18,22 @@ This dashboard tracks connector readiness for emitting `AffectedPackage.Normaliz | Connector | Owner team | Normalized versions status | Last update | Next action / link | |-----------|------------|---------------------------|-------------|--------------------| -| Acsc | BE-Conn-ACSC | ❌ Not started – mapper pending | 2025-10-11 | Design DTOs + mapper with normalized rule array; see `src/StellaOps.Concelier.Source.Acsc/TASKS.md`. | +| Acsc | BE-Conn-ACSC | ❌ Not started – mapper pending | 2025-10-11 | Design DTOs + mapper with normalized rule array; see `src/StellaOps.Concelier.Connector.Acsc/TASKS.md`. | | Cccs | BE-Conn-CCCS | ❌ Not started – mapper pending | 2025-10-11 | Add normalized SemVer array in canonical mapper; coordinate fixtures per `TASKS.md`. | -| CertBund | BE-Conn-CERTBUND | ✅ Canonical mapper emitting vendor ranges | 2025-10-14 | Normalized vendor range payloads landed alongside telemetry/docs updates; see `src/StellaOps.Concelier.Source.CertBund/TASKS.md`. | -| CertCc | BE-Conn-CERTCC | ⚠️ In progress – fetch pipeline DOING | 2025-10-11 | Implement VINCE mapper with SemVer/NEVRA rules; unblock snapshot regeneration; `src/StellaOps.Concelier.Source.CertCc/TASKS.md`. | -| Kev | BE-Conn-KEV | ✅ Normalized catalog/due-date rules verified | 2025-10-12 | Fixtures reconfirmed via `dotnet test src/StellaOps.Concelier.Source.Kev.Tests`; `src/StellaOps.Concelier.Source.Kev/TASKS.md`. | -| Cve | BE-Conn-CVE | ✅ Normalized SemVer rules verified | 2025-10-12 | Snapshot parity green (`dotnet test src/StellaOps.Concelier.Source.Cve.Tests`); `src/StellaOps.Concelier.Source.Cve/TASKS.md`. | -| Ghsa | BE-Conn-GHSA | ⚠️ DOING – normalized rollout task active | 2025-10-11 18:45 UTC | Wire `SemVerRangeRuleBuilder` + refresh fixtures; `src/StellaOps.Concelier.Source.Ghsa/TASKS.md`. | -| Osv | BE-Conn-OSV | ✅ SemVer mapper & parity fixtures verified | 2025-10-12 | GHSA parity regression passing (`dotnet test src/StellaOps.Concelier.Source.Osv.Tests`); `src/StellaOps.Concelier.Source.Osv/TASKS.md`. | -| Ics.Cisa | BE-Conn-ICS-CISA | ❌ Not started – mapper TODO | 2025-10-11 | Plan SemVer/firmware scheme selection; `src/StellaOps.Concelier.Source.Ics.Cisa/TASKS.md`. | +| CertBund | BE-Conn-CERTBUND | ✅ Canonical mapper emitting vendor ranges | 2025-10-14 | Normalized vendor range payloads landed alongside telemetry/docs updates; see `src/StellaOps.Concelier.Connector.CertBund/TASKS.md`. | +| CertCc | BE-Conn-CERTCC | ⚠️ In progress – fetch pipeline DOING | 2025-10-11 | Implement VINCE mapper with SemVer/NEVRA rules; unblock snapshot regeneration; `src/StellaOps.Concelier.Connector.CertCc/TASKS.md`. | +| Kev | BE-Conn-KEV | ✅ Normalized catalog/due-date rules verified | 2025-10-12 | Fixtures reconfirmed via `dotnet test src/StellaOps.Concelier.Connector.Kev.Tests`; `src/StellaOps.Concelier.Connector.Kev/TASKS.md`. | +| Cve | BE-Conn-CVE | ✅ Normalized SemVer rules verified | 2025-10-12 | Snapshot parity green (`dotnet test src/StellaOps.Concelier.Connector.Cve.Tests`); `src/StellaOps.Concelier.Connector.Cve/TASKS.md`. | +| Ghsa | BE-Conn-GHSA | ⚠️ DOING – normalized rollout task active | 2025-10-11 18:45 UTC | Wire `SemVerRangeRuleBuilder` + refresh fixtures; `src/StellaOps.Concelier.Connector.Ghsa/TASKS.md`. | +| Osv | BE-Conn-OSV | ✅ SemVer mapper & parity fixtures verified | 2025-10-12 | GHSA parity regression passing (`dotnet test src/StellaOps.Concelier.Connector.Osv.Tests`); `src/StellaOps.Concelier.Connector.Osv/TASKS.md`. | +| Ics.Cisa | BE-Conn-ICS-CISA | ❌ Not started – mapper TODO | 2025-10-11 | Plan SemVer/firmware scheme selection; `src/StellaOps.Concelier.Connector.Ics.Cisa/TASKS.md`. | | Kisa | BE-Conn-KISA | ✅ Landed 2025-10-14 (mapper + telemetry) | 2025-10-11 | Hangul-aware mapper emits normalized rules; see `docs/dev/kisa_connector_notes.md` for localisation/metric details. | -| Ru.Bdu | BE-Conn-BDU | ✅ Raw scheme emitted | 2025-10-14 | Mapper now writes `ru-bdu.raw` normalized rules with provenance + telemetry; `src/StellaOps.Concelier.Source.Ru.Bdu/TASKS.md`. | -| Ru.Nkcki | BE-Conn-Nkcki | ❌ Not started – mapper TODO | 2025-10-11 | Similar to BDU; ensure Cyrillic provenance preserved; `src/StellaOps.Concelier.Source.Ru.Nkcki/TASKS.md`. | -| Vndr.Apple | BE-Conn-Apple | ✅ Shipped – emitting normalized arrays | 2025-10-11 | Continue fixture/tooling work; `src/StellaOps.Concelier.Source.Vndr.Apple/TASKS.md`. | +| Ru.Bdu | BE-Conn-BDU | ✅ Raw scheme emitted | 2025-10-14 | Mapper now writes `ru-bdu.raw` normalized rules with provenance + telemetry; `src/StellaOps.Concelier.Connector.Ru.Bdu/TASKS.md`. | +| Ru.Nkcki | BE-Conn-Nkcki | ❌ Not started – mapper TODO | 2025-10-11 | Similar to BDU; ensure Cyrillic provenance preserved; `src/StellaOps.Concelier.Connector.Ru.Nkcki/TASKS.md`. | +| Vndr.Apple | BE-Conn-Apple | ✅ Shipped – emitting normalized arrays | 2025-10-11 | Continue fixture/tooling work; `src/StellaOps.Concelier.Connector.Vndr.Apple/TASKS.md`. | | Vndr.Cisco | BE-Conn-Cisco | ✅ SemVer + vendor extensions emitted | 2025-10-14 | Connector outputs SemVer primitives with `cisco.productId` notes; see `CiscoMapper` and fixtures for coverage. | -| Vndr.Msrc | BE-Conn-MSRC | ✅ Map + normalized build rules landed | 2025-10-15 | `MsrcMapper` emits `msrc.build` normalized rules with CVRF references; see `src/StellaOps.Concelier.Source.Vndr.Msrc/TASKS.md`. | -| Nvd | BE-Conn-NVD | ⚠️ Needs follow-up – mapper complete but normalized array MR pending | 2025-10-11 | Align CVE notes + normalized payload flag; `src/StellaOps.Concelier.Source.Nvd/TASKS.md`. | +| Vndr.Msrc | BE-Conn-MSRC | ✅ Map + normalized build rules landed | 2025-10-15 | `MsrcMapper` emits `msrc.build` normalized rules with CVRF references; see `src/StellaOps.Concelier.Connector.Vndr.Msrc/TASKS.md`. | +| Nvd | BE-Conn-NVD | ⚠️ Needs follow-up – mapper complete but normalized array MR pending | 2025-10-11 | Align CVE notes + normalized payload flag; `src/StellaOps.Concelier.Connector.Nvd/TASKS.md`. | Legend: ✅ complete, ⚠️ in progress/partial, ❌ not started. diff --git a/docs/ops/concelier-apple-operations.md b/docs/ops/concelier-apple-operations.md index 53a83663..be26306d 100644 --- a/docs/ops/concelier-apple-operations.md +++ b/docs/ops/concelier-apple-operations.md @@ -29,7 +29,7 @@ concelier: 2. Trigger a full connector cycle: - CLI: `stella db jobs run source:vndr-apple:fetch --and-then source:vndr-apple:parse --and-then source:vndr-apple:map` - REST: `POST /jobs/run { "kind": "source:vndr-apple:fetch", "chain": ["source:vndr-apple:parse", "source:vndr-apple:map"] }` -3. Validate metrics exported under meter `StellaOps.Concelier.Source.Vndr.Apple`: +3. Validate metrics exported under meter `StellaOps.Concelier.Connector.Vndr.Apple`: - `apple.fetch.items` (documents fetched) - `apple.fetch.failures` - `apple.fetch.unchanged` @@ -57,21 +57,21 @@ concelier: - `increase(apple_parse_failures_total[6h])` to catch parser drift (alerts at `>0`) - **Alerts** – Page if `rate(apple_fetch_items_total[2h]) == 0` during business hours while other connectors are active. This often indicates lookup feed failures or misconfigured allow-lists. - **Logs** – Surface warnings `Apple document {DocumentId} missing GridFS payload` or `Apple parse failed`—repeated hits imply storage issues or HTML regressions. -- **Telemetry pipeline** – `StellaOps.Concelier.WebService` now exports `StellaOps.Concelier.Source.Vndr.Apple` alongside existing Concelier meters; ensure your OTEL collector or Prometheus scraper includes it. +- **Telemetry pipeline** – `StellaOps.Concelier.WebService` now exports `StellaOps.Concelier.Connector.Vndr.Apple` alongside existing Concelier meters; ensure your OTEL collector or Prometheus scraper includes it. ## 4. Fixture Maintenance -Regression fixtures live under `src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/Fixtures`. Refresh them whenever Apple reshapes the HT layout or when new platforms appear. +Regression fixtures live under `src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/Fixtures`. Refresh them whenever Apple reshapes the HT layout or when new platforms appear. 1. Run the helper script matching your platform: - Bash: `./scripts/update-apple-fixtures.sh` - PowerShell: `./scripts/update-apple-fixtures.ps1` 2. Each script exports `UPDATE_APPLE_FIXTURES=1`, updates the `WSLENV` passthrough, and touches `.update-apple-fixtures` so WSL+VS Code test runs observe the flag. The subsequent test execution fetches the live HT articles listed in `AppleFixtureManager`, sanitises the HTML, and rewrites the `.expected.json` DTO snapshots. -3. Review the diff for localisation or nav noise. Once satisfied, re-run the tests without the env var (`dotnet test src/StellaOps.Concelier.Source.Vndr.Apple.Tests/StellaOps.Concelier.Source.Vndr.Apple.Tests.csproj`) to verify determinism. +3. Review the diff for localisation or nav noise. Once satisfied, re-run the tests without the env var (`dotnet test src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/StellaOps.Concelier.Connector.Vndr.Apple.Tests.csproj`) to verify determinism. 4. Commit fixture updates together with any parser/mapping changes that motivated them. ## 5. Known Issues & Follow-up Tasks - Apple occasionally throttles anonymous requests after bursts. The connector backs off automatically, but persistent `apple.fetch.failures` spikes might require mirroring the HT content or scheduling wider fetch windows. - Rapid Security Responses may appear before the general patch notes surface in the lookup JSON. When that happens, the fetch run will log `detailFailures>0`. Collect sample HTML and refresh fixtures to confirm parser coverage. -- Multi-locale content is still under regression sweep (`src/StellaOps.Concelier.Source.Vndr.Apple/TASKS.md`). Capture non-`en-us` snapshots once the fixture tooling stabilises. +- Multi-locale content is still under regression sweep (`src/StellaOps.Concelier.Connector.Vndr.Apple/TASKS.md`). Capture non-`en-us` snapshots once the fixture tooling stabilises. diff --git a/docs/ops/concelier-cccs-operations.md b/docs/ops/concelier-cccs-operations.md index 3111ee12..c4e4c238 100644 --- a/docs/ops/concelier-cccs-operations.md +++ b/docs/ops/concelier-cccs-operations.md @@ -27,7 +27,7 @@ concelier: ## 2. Telemetry & Logging -- **Metrics (Meter `StellaOps.Concelier.Source.Cccs`):** +- **Metrics (Meter `StellaOps.Concelier.Connector.Cccs`):** - `cccs.fetch.attempts`, `cccs.fetch.success`, `cccs.fetch.failures` - `cccs.fetch.documents`, `cccs.fetch.unchanged` - `cccs.parse.success`, `cccs.parse.failures`, `cccs.parse.quarantine` @@ -67,6 +67,6 @@ Suggested Grafana alerts: ## 5. Fixture Maintenance -- Regression fixtures live in `src/StellaOps.Concelier.Source.Cccs.Tests/Fixtures`. -- Refresh via `UPDATE_CCCS_FIXTURES=1 dotnet test src/StellaOps.Concelier.Source.Cccs.Tests/StellaOps.Concelier.Source.Cccs.Tests.csproj`. +- Regression fixtures live in `src/StellaOps.Concelier.Connector.Cccs.Tests/Fixtures`. +- Refresh via `UPDATE_CCCS_FIXTURES=1 dotnet test src/StellaOps.Concelier.Connector.Cccs.Tests/StellaOps.Concelier.Connector.Cccs.Tests.csproj`. - Fixtures capture both EN/FR advisories with nested lists to guard against sanitiser regressions; review diffs for heading/list changes before committing. diff --git a/docs/ops/concelier-certbund-operations.md b/docs/ops/concelier-certbund-operations.md index 19fc656f..5622e288 100644 --- a/docs/ops/concelier-certbund-operations.md +++ b/docs/ops/concelier-certbund-operations.md @@ -36,7 +36,7 @@ concelier: ## 2. Telemetry & Logging -- **Meter**: `StellaOps.Concelier.Source.CertBund` +- **Meter**: `StellaOps.Concelier.Connector.CertBund` - **Counters / histograms**: - `certbund.feed.fetch.attempts|success|failures` - `certbund.feed.items.count` diff --git a/docs/ops/concelier-cisco-operations.md b/docs/ops/concelier-cisco-operations.md index c565aa2c..3096d589 100644 --- a/docs/ops/concelier-cisco-operations.md +++ b/docs/ops/concelier-cisco-operations.md @@ -66,7 +66,7 @@ This runbook describes how Ops provisions, rotates, and distributes Cisco PSIRT ## 7. Telemetry & Monitoring -- **Metrics (Meter `StellaOps.Concelier.Source.Vndr.Cisco`)** +- **Metrics (Meter `StellaOps.Concelier.Connector.Vndr.Cisco`)** - `cisco.fetch.documents`, `cisco.fetch.failures`, `cisco.fetch.unchanged` - `cisco.parse.success`, `cisco.parse.failures` - `cisco.map.success`, `cisco.map.failures`, `cisco.map.affected.packages` diff --git a/docs/ops/concelier-conflict-resolution.md b/docs/ops/concelier-conflict-resolution.md index 6d13215c..7b7a51b8 100644 --- a/docs/ops/concelier-conflict-resolution.md +++ b/docs/ops/concelier-conflict-resolution.md @@ -139,13 +139,13 @@ Keep this runbook synchronized with future sprint notes and update alert thresho ## 9. Synthetic Regression Fixtures -- **Locations** – Canonical conflict snapshots now live at `src/StellaOps.Concelier.Source.Ghsa.Tests/Fixtures/conflict-ghsa.canonical.json`, `src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/Fixtures/conflict-nvd.canonical.json`, and `src/StellaOps.Concelier.Source.Osv.Tests/Fixtures/conflict-osv.canonical.json`. +- **Locations** – Canonical conflict snapshots now live at `src/StellaOps.Concelier.Connector.Ghsa.Tests/Fixtures/conflict-ghsa.canonical.json`, `src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/Fixtures/conflict-nvd.canonical.json`, and `src/StellaOps.Concelier.Connector.Osv.Tests/Fixtures/conflict-osv.canonical.json`. - **Validation commands** – To regenerate and verify the fixtures offline, run: ```bash -dotnet test src/StellaOps.Concelier.Source.Ghsa.Tests/StellaOps.Concelier.Source.Ghsa.Tests.csproj --filter GhsaConflictFixtureTests -dotnet test src/StellaOps.Concelier.Source.Nvd.Tests/StellaOps.Concelier.Source.Nvd.Tests.csproj --filter NvdConflictFixtureTests -dotnet test src/StellaOps.Concelier.Source.Osv.Tests/StellaOps.Concelier.Source.Osv.Tests.csproj --filter OsvConflictFixtureTests +dotnet test src/StellaOps.Concelier.Connector.Ghsa.Tests/StellaOps.Concelier.Connector.Ghsa.Tests.csproj --filter GhsaConflictFixtureTests +dotnet test src/StellaOps.Concelier.Connector.Nvd.Tests/StellaOps.Concelier.Connector.Nvd.Tests.csproj --filter NvdConflictFixtureTests +dotnet test src/StellaOps.Concelier.Connector.Osv.Tests/StellaOps.Concelier.Connector.Osv.Tests.csproj --filter OsvConflictFixtureTests dotnet test src/StellaOps.Concelier.Merge.Tests/StellaOps.Concelier.Merge.Tests.csproj --filter MergeAsync_AppliesCanonicalRulesAndPersistsDecisions ``` diff --git a/docs/ops/concelier-cve-kev-operations.md b/docs/ops/concelier-cve-kev-operations.md index e486c03b..66f38377 100644 --- a/docs/ops/concelier-cve-kev-operations.md +++ b/docs/ops/concelier-cve-kev-operations.md @@ -36,7 +36,7 @@ concelier: 2. Trigger one end-to-end cycle: - Concelier CLI: `stella db jobs run source:cve:fetch --and-then source:cve:parse --and-then source:cve:map` - REST fallback: `POST /jobs/run { "kind": "source:cve:fetch", "chain": ["source:cve:parse", "source:cve:map"] }` -3. Observe the following metrics (exported via OTEL meter `StellaOps.Concelier.Source.Cve`): +3. Observe the following metrics (exported via OTEL meter `StellaOps.Concelier.Connector.Cve`): - `cve.fetch.attempts`, `cve.fetch.success`, `cve.fetch.documents`, `cve.fetch.failures`, `cve.fetch.unchanged` - `cve.parse.success`, `cve.parse.failures`, `cve.parse.quarantine` - `cve.map.success` @@ -58,12 +58,12 @@ concelier: While Ops finalises long-lived CVE Services credentials, we validated the connector end-to-end against the recorded CVE-2024-0001 payloads used in regression tests: -- Command: `dotnet test src/StellaOps.Concelier.Source.Cve.Tests/StellaOps.Concelier.Source.Cve.Tests.csproj -l "console;verbosity=detailed"` +- Command: `dotnet test src/StellaOps.Concelier.Connector.Cve.Tests/StellaOps.Concelier.Connector.Cve.Tests.csproj -l "console;verbosity=detailed"` - Summary log emitted by the connector: ``` CVEs fetch window 2024-09-01T00:00:00Z->2024-10-01T00:00:00Z pages=1 listSuccess=1 detailDocuments=1 detailFailures=0 detailUnchanged=0 pendingDocuments=0->1 pendingMappings=0->1 hasMorePages=False nextWindowStart=2024-09-15T12:00:00Z nextWindowEnd=(none) nextPage=1 ``` -- Telemetry captured by `Meter` `StellaOps.Concelier.Source.Cve`: +- Telemetry captured by `Meter` `StellaOps.Concelier.Connector.Cve`: | Metric | Value | |--------|-------| | `cve.fetch.attempts` | 1 | @@ -109,7 +109,7 @@ Treat repeated schema failures or growing anomaly counts as an upstream regressi 2. Trigger a pipeline run: - CLI: `stella db jobs run source:kev:fetch --and-then source:kev:parse --and-then source:kev:map` - REST: `POST /jobs/run { "kind": "source:kev:fetch", "chain": ["source:kev:parse", "source:kev:map"] }` -3. Verify the metrics exposed by meter `StellaOps.Concelier.Source.Kev`: +3. Verify the metrics exposed by meter `StellaOps.Concelier.Connector.Kev`: - `kev.fetch.attempts`, `kev.fetch.success`, `kev.fetch.unchanged`, `kev.fetch.failures` - `kev.parse.entries` (tag `catalogVersion`), `kev.parse.failures`, `kev.parse.anomalies` (tag `reason`) - `kev.map.advisories` (tag `catalogVersion`) diff --git a/docs/ops/concelier-icscisa-operations.md b/docs/ops/concelier-icscisa-operations.md index d67b8375..5b5f2002 100644 --- a/docs/ops/concelier-icscisa-operations.md +++ b/docs/ops/concelier-icscisa-operations.md @@ -102,7 +102,7 @@ The Offline Kit deployment script copies this file into the container secret dir ## 6. Telemetry & Monitoring -The connector emits metrics under the meter `StellaOps.Concelier.Source.Ics.Cisa`. They allow operators to track Akamai fallbacks, detail enrichment health, and advisory fan-out. +The connector emits metrics under the meter `StellaOps.Concelier.Connector.Ics.Cisa`. They allow operators to track Akamai fallbacks, detail enrichment health, and advisory fan-out. - `icscisa.fetch.*` – counters for `attempts`, `success`, `failures`, `not_modified`, and `fallbacks`, plus histogram `icscisa.fetch.documents` showing documents added per topic pull (tags: `concelier.source`, `icscisa.topic`). - `icscisa.parse.*` – counters for `success`/`failures` and histograms `icscisa.parse.advisories`, `icscisa.parse.attachments`, `icscisa.parse.detail_fetches` to monitor enrichment workload per feed document. diff --git a/docs/ops/concelier-kisa-operations.md b/docs/ops/concelier-kisa-operations.md index d2b4ec42..4c6860df 100644 --- a/docs/ops/concelier-kisa-operations.md +++ b/docs/ops/concelier-kisa-operations.md @@ -27,7 +27,7 @@ concelier: 2. Run a full connector cycle: - CLI: `stella db jobs run source:kisa:fetch --and-then source:kisa:parse --and-then source:kisa:map` - REST: `POST /jobs/run { "kind": "source:kisa:fetch", "chain": ["source:kisa:parse", "source:kisa:map"] }` -3. Confirm telemetry (Meter `StellaOps.Concelier.Source.Kisa`): +3. Confirm telemetry (Meter `StellaOps.Concelier.Connector.Kisa`): - `kisa.feed.success`, `kisa.feed.items` - `kisa.detail.success` / `.failures` - `kisa.parse.success` / `.failures` @@ -63,8 +63,8 @@ concelier: ## 5. Fixture & Regression Maintenance -- Regression fixtures: `src/StellaOps.Concelier.Source.Kisa.Tests/Fixtures/kisa-feed.xml` and `kisa-detail.json`. -- Refresh via `UPDATE_KISA_FIXTURES=1 dotnet test src/StellaOps.Concelier.Source.Kisa.Tests/StellaOps.Concelier.Source.Kisa.Tests.csproj`. +- Regression fixtures: `src/StellaOps.Concelier.Connector.Kisa.Tests/Fixtures/kisa-feed.xml` and `kisa-detail.json`. +- Refresh via `UPDATE_KISA_FIXTURES=1 dotnet test src/StellaOps.Concelier.Connector.Kisa.Tests/StellaOps.Concelier.Connector.Kisa.Tests.csproj`. - The telemetry regression (`KisaConnectorTests.Telemetry_RecordsMetrics`) will fail if counters/log wiring drifts—treat failures as gating. ## 6. Known Issues diff --git a/docs/ops/concelier-nkcki-operations.md b/docs/ops/concelier-nkcki-operations.md index a619ca22..1dece7a6 100644 --- a/docs/ops/concelier-nkcki-operations.md +++ b/docs/ops/concelier-nkcki-operations.md @@ -18,7 +18,7 @@ When operating in offline-first mode, set `cacheDirectory` to a writable path (e ## Telemetry -`RuNkckiDiagnostics` emits the following metrics under meter `StellaOps.Concelier.Source.Ru.Nkcki`: +`RuNkckiDiagnostics` emits the following metrics under meter `StellaOps.Concelier.Connector.Ru.Nkcki`: - `nkcki.listing.fetch.attempts` / `nkcki.listing.fetch.success` / `nkcki.listing.fetch.failures` - `nkcki.listing.pages.visited` (histogram, `pages`) @@ -45,4 +45,4 @@ For large migrations, seed caches with archived zip bundles, then run fetch/pars - Bulletin fetches fall back to cached copies before surfacing an error. - Mongo integration tests rely on bundled OpenSSL 1.1 libraries (`tools/openssl/linux-x64`) to keep `Mongo2Go` operational on modern distros. -Refer to `ru-nkcki` entries in `src/StellaOps.Concelier.Source.Ru.Nkcki/TASKS.md` for outstanding items. +Refer to `ru-nkcki` entries in `src/StellaOps.Concelier.Connector.Ru.Nkcki/TASKS.md` for outstanding items. diff --git a/docs/ops/concelier-osv-operations.md b/docs/ops/concelier-osv-operations.md index 137e1a95..5e543795 100644 --- a/docs/ops/concelier-osv-operations.md +++ b/docs/ops/concelier-osv-operations.md @@ -20,5 +20,5 @@ The OSV connector ingests advisories from OSV.dev across OSS ecosystems. This no - Exporters already surface `canonicalMetricId`; no schema change is required, but ORAS/Trivy bundles should be spot-checked after deploying the connector update. ## 4. Runbook updates -- Fixture parity suites (`osv-ghsa.*`) now assert the fallback id and provenance notes. Regenerate via `dotnet test src/StellaOps.Concelier.Source.Osv.Tests/StellaOps.Concelier.Source.Osv.Tests.csproj`. +- Fixture parity suites (`osv-ghsa.*`) now assert the fallback id and provenance notes. Regenerate via `dotnet test src/StellaOps.Concelier.Connector.Osv.Tests/StellaOps.Concelier.Connector.Osv.Tests.csproj`. - When investigating merge severity conflicts, include the fallback counter and confirm OSV advisories carry the expected `osv:severity/` id before raising connector bugs. diff --git a/scripts/update-apple-fixtures.ps1 b/scripts/update-apple-fixtures.ps1 index 9d74276b..63b3fb8f 100644 --- a/scripts/update-apple-fixtures.ps1 +++ b/scripts/update-apple-fixtures.ps1 @@ -10,9 +10,9 @@ $env:UPDATE_APPLE_FIXTURES = "1" Push-Location $rootDir try { - $sentinel = Join-Path $rootDir "src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/Fixtures/.update-apple-fixtures" + $sentinel = Join-Path $rootDir "src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/Fixtures/.update-apple-fixtures" New-Item -ItemType File -Path $sentinel -Force | Out-Null - dotnet test "src\StellaOps.Concelier.Source.Vndr.Apple.Tests\StellaOps.Concelier.Source.Vndr.Apple.Tests.csproj" @Args + dotnet test "src\StellaOps.Concelier.Connector.Vndr.Apple.Tests\StellaOps.Concelier.Connector.Vndr.Apple.Tests.csproj" @Args } finally { Pop-Location diff --git a/scripts/update-apple-fixtures.sh b/scripts/update-apple-fixtures.sh index 75da107d..9e2bd125 100644 --- a/scripts/update-apple-fixtures.sh +++ b/scripts/update-apple-fixtures.sh @@ -10,5 +10,5 @@ else export WSLENV="UPDATE_APPLE_FIXTURES/up" fi -touch "$ROOT_DIR/src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/Fixtures/.update-apple-fixtures" -( cd "$ROOT_DIR" && dotnet test "src/StellaOps.Concelier.Source.Vndr.Apple.Tests/StellaOps.Concelier.Source.Vndr.Apple.Tests.csproj" "$@" ) +touch "$ROOT_DIR/src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/Fixtures/.update-apple-fixtures" +( cd "$ROOT_DIR" && dotnet test "src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/StellaOps.Concelier.Connector.Vndr.Apple.Tests.csproj" "$@" ) diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 6a5f61eb..3de1fe85 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -4,7 +4,7 @@ $(MSBuildThisFileDirectory)PluginBinaries $(SolutionDir)PluginBinaries\Authority $(MSBuildThisFileDirectory)PluginBinaries\Authority - true + true true true diff --git a/src/StellaOps.Authority/StellaOps.Authority.sln b/src/StellaOps.Authority/StellaOps.Authority.sln index 58ee2491..500f2cfd 100644 --- a/src/StellaOps.Authority/StellaOps.Authority.sln +++ b/src/StellaOps.Authority/StellaOps.Authority.sln @@ -27,7 +27,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Authority.Plugins EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Testing", "..\StellaOps.Concelier.Testing\StellaOps.Concelier.Testing.csproj", "{D48E48BF-80C8-43DA-8BE6-E2B9E769C49E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Common", "..\StellaOps.Concelier.Source.Common\StellaOps.Concelier.Source.Common.csproj", "{E0B9CD7A-C4FF-44EB-BE04-9B998C1C4166}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Common", "..\StellaOps.Concelier.Connector.Common\StellaOps.Concelier.Connector.Common.csproj", "{E0B9CD7A-C4FF-44EB-BE04-9B998C1C4166}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Storage.Mongo", "..\StellaOps.Concelier.Storage.Mongo\StellaOps.Concelier.Storage.Mongo.csproj", "{67C85AC6-1670-4A0D-A81F-6015574F46C7}" EndProject diff --git a/src/StellaOps.Concelier.Source.Acsc.Tests/Acsc/AcscConnectorFetchTests.cs b/src/StellaOps.Concelier.Connector.Acsc.Tests/Acsc/AcscConnectorFetchTests.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Acsc.Tests/Acsc/AcscConnectorFetchTests.cs rename to src/StellaOps.Concelier.Connector.Acsc.Tests/Acsc/AcscConnectorFetchTests.cs index 025b29c1..fa40ab75 100644 --- a/src/StellaOps.Concelier.Source.Acsc.Tests/Acsc/AcscConnectorFetchTests.cs +++ b/src/StellaOps.Concelier.Connector.Acsc.Tests/Acsc/AcscConnectorFetchTests.cs @@ -10,17 +10,17 @@ using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Options; using Microsoft.Extensions.Time.Testing; using MongoDB.Bson; -using StellaOps.Concelier.Source.Acsc; -using StellaOps.Concelier.Source.Acsc.Configuration; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Common.Testing; +using StellaOps.Concelier.Connector.Acsc; +using StellaOps.Concelier.Connector.Acsc.Configuration; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Common.Testing; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Testing; using Xunit; -namespace StellaOps.Concelier.Source.Acsc.Tests.Acsc; +namespace StellaOps.Concelier.Connector.Acsc.Tests.Acsc; [Collection("mongo-fixture")] public sealed class AcscConnectorFetchTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.Acsc.Tests/Acsc/AcscConnectorParseTests.cs b/src/StellaOps.Concelier.Connector.Acsc.Tests/Acsc/AcscConnectorParseTests.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Acsc.Tests/Acsc/AcscConnectorParseTests.cs rename to src/StellaOps.Concelier.Connector.Acsc.Tests/Acsc/AcscConnectorParseTests.cs index 05b312f8..c489d7d8 100644 --- a/src/StellaOps.Concelier.Source.Acsc.Tests/Acsc/AcscConnectorParseTests.cs +++ b/src/StellaOps.Concelier.Connector.Acsc.Tests/Acsc/AcscConnectorParseTests.cs @@ -10,11 +10,11 @@ using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Time.Testing; using MongoDB.Bson; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Acsc; -using StellaOps.Concelier.Source.Acsc.Configuration; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Common.Testing; +using StellaOps.Concelier.Connector.Acsc; +using StellaOps.Concelier.Connector.Acsc.Configuration; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Common.Testing; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; @@ -22,7 +22,7 @@ using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Concelier.Testing; using Xunit; -namespace StellaOps.Concelier.Source.Acsc.Tests.Acsc; +namespace StellaOps.Concelier.Connector.Acsc.Tests.Acsc; [Collection("mongo-fixture")] public sealed class AcscConnectorParseTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.Acsc.Tests/Acsc/AcscHttpClientConfigurationTests.cs b/src/StellaOps.Concelier.Connector.Acsc.Tests/Acsc/AcscHttpClientConfigurationTests.cs similarity index 91% rename from src/StellaOps.Concelier.Source.Acsc.Tests/Acsc/AcscHttpClientConfigurationTests.cs rename to src/StellaOps.Concelier.Connector.Acsc.Tests/Acsc/AcscHttpClientConfigurationTests.cs index c05eacab..d1f5b683 100644 --- a/src/StellaOps.Concelier.Source.Acsc.Tests/Acsc/AcscHttpClientConfigurationTests.cs +++ b/src/StellaOps.Concelier.Connector.Acsc.Tests/Acsc/AcscHttpClientConfigurationTests.cs @@ -2,11 +2,11 @@ using System.Net; using System.Net.Http; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Acsc.Configuration; -using StellaOps.Concelier.Source.Common.Http; +using StellaOps.Concelier.Connector.Acsc.Configuration; +using StellaOps.Concelier.Connector.Common.Http; using Xunit; -namespace StellaOps.Concelier.Source.Acsc.Tests.Acsc; +namespace StellaOps.Concelier.Connector.Acsc.Tests.Acsc; public sealed class AcscHttpClientConfigurationTests { diff --git a/src/StellaOps.Concelier.Source.Acsc.Tests/Acsc/Fixtures/acsc-advisories-multi.snapshot.json b/src/StellaOps.Concelier.Connector.Acsc.Tests/Acsc/Fixtures/acsc-advisories-multi.snapshot.json similarity index 100% rename from src/StellaOps.Concelier.Source.Acsc.Tests/Acsc/Fixtures/acsc-advisories-multi.snapshot.json rename to src/StellaOps.Concelier.Connector.Acsc.Tests/Acsc/Fixtures/acsc-advisories-multi.snapshot.json diff --git a/src/StellaOps.Concelier.Source.Acsc.Tests/Acsc/Fixtures/acsc-advisories.snapshot.json b/src/StellaOps.Concelier.Connector.Acsc.Tests/Acsc/Fixtures/acsc-advisories.snapshot.json similarity index 100% rename from src/StellaOps.Concelier.Source.Acsc.Tests/Acsc/Fixtures/acsc-advisories.snapshot.json rename to src/StellaOps.Concelier.Connector.Acsc.Tests/Acsc/Fixtures/acsc-advisories.snapshot.json diff --git a/src/StellaOps.Concelier.Source.Acsc.Tests/StellaOps.Concelier.Source.Acsc.Tests.csproj b/src/StellaOps.Concelier.Connector.Acsc.Tests/StellaOps.Concelier.Connector.Acsc.Tests.csproj similarity index 73% rename from src/StellaOps.Concelier.Source.Acsc.Tests/StellaOps.Concelier.Source.Acsc.Tests.csproj rename to src/StellaOps.Concelier.Connector.Acsc.Tests/StellaOps.Concelier.Connector.Acsc.Tests.csproj index 71714c17..1003af9c 100644 --- a/src/StellaOps.Concelier.Source.Acsc.Tests/StellaOps.Concelier.Source.Acsc.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.Acsc.Tests/StellaOps.Concelier.Connector.Acsc.Tests.csproj @@ -7,10 +7,10 @@ - + - + diff --git a/src/StellaOps.Concelier.Source.Acsc/AGENTS.md b/src/StellaOps.Concelier.Connector.Acsc/AGENTS.md similarity index 94% rename from src/StellaOps.Concelier.Source.Acsc/AGENTS.md rename to src/StellaOps.Concelier.Connector.Acsc/AGENTS.md index 849d6d3f..da14973c 100644 --- a/src/StellaOps.Concelier.Source.Acsc/AGENTS.md +++ b/src/StellaOps.Concelier.Connector.Acsc/AGENTS.md @@ -35,6 +35,6 @@ Out of scope: - Handle transient fetch failures gracefully with exponential backoff and mark failures in source state. ## Tests -- Add integration-style tests under `StellaOps.Concelier.Source.Acsc.Tests` covering fetch/parse/map with canned fixtures. +- Add integration-style tests under `StellaOps.Concelier.Connector.Acsc.Tests` covering fetch/parse/map with canned fixtures. - Snapshot canonical advisories; provide UPDATE flag flow for regeneration. - Validate determinism (ordering, casing, timestamps) to satisfy pipeline reproducibility requirements. diff --git a/src/StellaOps.Concelier.Source.Acsc/AcscConnector.cs b/src/StellaOps.Concelier.Connector.Acsc/AcscConnector.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Acsc/AcscConnector.cs rename to src/StellaOps.Concelier.Connector.Acsc/AcscConnector.cs index 2f3467e9..902ecf61 100644 --- a/src/StellaOps.Concelier.Source.Acsc/AcscConnector.cs +++ b/src/StellaOps.Concelier.Connector.Acsc/AcscConnector.cs @@ -12,18 +12,18 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using MongoDB.Bson; using MongoDB.Bson.IO; -using StellaOps.Concelier.Source.Acsc.Configuration; -using StellaOps.Concelier.Source.Acsc.Internal; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Common.Html; -using StellaOps.Concelier.Source.Common; +using StellaOps.Concelier.Connector.Acsc.Configuration; +using StellaOps.Concelier.Connector.Acsc.Internal; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Common.Html; +using StellaOps.Concelier.Connector.Common; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Acsc; +namespace StellaOps.Concelier.Connector.Acsc; public sealed class AcscConnector : IFeedConnector { diff --git a/src/StellaOps.Concelier.Source.Acsc/AcscConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.Acsc/AcscConnectorPlugin.cs similarity index 91% rename from src/StellaOps.Concelier.Source.Acsc/AcscConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.Acsc/AcscConnectorPlugin.cs index 7fa46f3c..768c8c31 100644 --- a/src/StellaOps.Concelier.Source.Acsc/AcscConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.Acsc/AcscConnectorPlugin.cs @@ -1,7 +1,7 @@ using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Acsc; +namespace StellaOps.Concelier.Connector.Acsc; public sealed class AcscConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.Acsc/AcscDependencyInjectionRoutine.cs b/src/StellaOps.Concelier.Connector.Acsc/AcscDependencyInjectionRoutine.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Acsc/AcscDependencyInjectionRoutine.cs rename to src/StellaOps.Concelier.Connector.Acsc/AcscDependencyInjectionRoutine.cs index fc8f9287..68fd3266 100644 --- a/src/StellaOps.Concelier.Source.Acsc/AcscDependencyInjectionRoutine.cs +++ b/src/StellaOps.Concelier.Connector.Acsc/AcscDependencyInjectionRoutine.cs @@ -2,9 +2,9 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using StellaOps.DependencyInjection; using StellaOps.Concelier.Core.Jobs; -using StellaOps.Concelier.Source.Acsc.Configuration; +using StellaOps.Concelier.Connector.Acsc.Configuration; -namespace StellaOps.Concelier.Source.Acsc; +namespace StellaOps.Concelier.Connector.Acsc; public sealed class AcscDependencyInjectionRoutine : IDependencyInjectionRoutine { diff --git a/src/StellaOps.Concelier.Source.Acsc/AcscServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.Acsc/AcscServiceCollectionExtensions.cs similarity index 90% rename from src/StellaOps.Concelier.Source.Acsc/AcscServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.Acsc/AcscServiceCollectionExtensions.cs index 8845bb73..4e337c3f 100644 --- a/src/StellaOps.Concelier.Source.Acsc/AcscServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.Acsc/AcscServiceCollectionExtensions.cs @@ -1,11 +1,11 @@ using System.Net; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Acsc.Configuration; -using StellaOps.Concelier.Source.Acsc.Internal; -using StellaOps.Concelier.Source.Common.Http; +using StellaOps.Concelier.Connector.Acsc.Configuration; +using StellaOps.Concelier.Connector.Acsc.Internal; +using StellaOps.Concelier.Connector.Common.Http; -namespace StellaOps.Concelier.Source.Acsc; +namespace StellaOps.Concelier.Connector.Acsc; public static class AcscServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Source.Acsc/Configuration/AcscFeedOptions.cs b/src/StellaOps.Concelier.Connector.Acsc/Configuration/AcscFeedOptions.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Acsc/Configuration/AcscFeedOptions.cs rename to src/StellaOps.Concelier.Connector.Acsc/Configuration/AcscFeedOptions.cs index 919bedf9..a7ee6641 100644 --- a/src/StellaOps.Concelier.Source.Acsc/Configuration/AcscFeedOptions.cs +++ b/src/StellaOps.Concelier.Connector.Acsc/Configuration/AcscFeedOptions.cs @@ -1,6 +1,6 @@ using System.Text.RegularExpressions; -namespace StellaOps.Concelier.Source.Acsc.Configuration; +namespace StellaOps.Concelier.Connector.Acsc.Configuration; /// /// Defines a single ACSC RSS feed endpoint. diff --git a/src/StellaOps.Concelier.Source.Acsc/Configuration/AcscOptions.cs b/src/StellaOps.Concelier.Connector.Acsc/Configuration/AcscOptions.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Acsc/Configuration/AcscOptions.cs rename to src/StellaOps.Concelier.Connector.Acsc/Configuration/AcscOptions.cs index 3e07f5bd..17c8f74e 100644 --- a/src/StellaOps.Concelier.Source.Acsc/Configuration/AcscOptions.cs +++ b/src/StellaOps.Concelier.Connector.Acsc/Configuration/AcscOptions.cs @@ -1,7 +1,7 @@ using System.Net; using System.Net.Http; -namespace StellaOps.Concelier.Source.Acsc.Configuration; +namespace StellaOps.Concelier.Connector.Acsc.Configuration; /// /// Connector options governing ACSC feed access and retry behaviour. diff --git a/src/StellaOps.Concelier.Source.Acsc/Internal/AcscCursor.cs b/src/StellaOps.Concelier.Connector.Acsc/Internal/AcscCursor.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Acsc/Internal/AcscCursor.cs rename to src/StellaOps.Concelier.Connector.Acsc/Internal/AcscCursor.cs index 56472c02..6940a906 100644 --- a/src/StellaOps.Concelier.Source.Acsc/Internal/AcscCursor.cs +++ b/src/StellaOps.Concelier.Connector.Acsc/Internal/AcscCursor.cs @@ -1,6 +1,6 @@ using MongoDB.Bson; -namespace StellaOps.Concelier.Source.Acsc.Internal; +namespace StellaOps.Concelier.Connector.Acsc.Internal; internal enum AcscEndpointPreference { diff --git a/src/StellaOps.Concelier.Source.Acsc/Internal/AcscDiagnostics.cs b/src/StellaOps.Concelier.Connector.Acsc/Internal/AcscDiagnostics.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Acsc/Internal/AcscDiagnostics.cs rename to src/StellaOps.Concelier.Connector.Acsc/Internal/AcscDiagnostics.cs index 50caef03..911e382f 100644 --- a/src/StellaOps.Concelier.Source.Acsc/Internal/AcscDiagnostics.cs +++ b/src/StellaOps.Concelier.Connector.Acsc/Internal/AcscDiagnostics.cs @@ -1,10 +1,10 @@ using System.Diagnostics.Metrics; -namespace StellaOps.Concelier.Source.Acsc.Internal; +namespace StellaOps.Concelier.Connector.Acsc.Internal; public sealed class AcscDiagnostics : IDisposable { - private const string MeterName = "StellaOps.Concelier.Source.Acsc"; + private const string MeterName = "StellaOps.Concelier.Connector.Acsc"; private const string MeterVersion = "1.0.0"; private readonly Meter _meter; diff --git a/src/StellaOps.Concelier.Source.Acsc/Internal/AcscDocumentMetadata.cs b/src/StellaOps.Concelier.Connector.Acsc/Internal/AcscDocumentMetadata.cs similarity index 92% rename from src/StellaOps.Concelier.Source.Acsc/Internal/AcscDocumentMetadata.cs rename to src/StellaOps.Concelier.Connector.Acsc/Internal/AcscDocumentMetadata.cs index 5a594637..76611146 100644 --- a/src/StellaOps.Concelier.Source.Acsc/Internal/AcscDocumentMetadata.cs +++ b/src/StellaOps.Concelier.Connector.Acsc/Internal/AcscDocumentMetadata.cs @@ -1,6 +1,6 @@ using StellaOps.Concelier.Storage.Mongo.Documents; -namespace StellaOps.Concelier.Source.Acsc.Internal; +namespace StellaOps.Concelier.Connector.Acsc.Internal; internal readonly record struct AcscDocumentMetadata(string FeedSlug, string FetchMode) { diff --git a/src/StellaOps.Concelier.Source.Acsc/Internal/AcscDto.cs b/src/StellaOps.Concelier.Connector.Acsc/Internal/AcscDto.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Acsc/Internal/AcscDto.cs rename to src/StellaOps.Concelier.Connector.Acsc/Internal/AcscDto.cs index c4c92627..4150ab7d 100644 --- a/src/StellaOps.Concelier.Source.Acsc/Internal/AcscDto.cs +++ b/src/StellaOps.Concelier.Connector.Acsc/Internal/AcscDto.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace StellaOps.Concelier.Source.Acsc.Internal; +namespace StellaOps.Concelier.Connector.Acsc.Internal; internal sealed record AcscFeedDto( [property: JsonPropertyName("feedSlug")] string FeedSlug, diff --git a/src/StellaOps.Concelier.Source.Acsc/Internal/AcscFeedParser.cs b/src/StellaOps.Concelier.Connector.Acsc/Internal/AcscFeedParser.cs similarity index 99% rename from src/StellaOps.Concelier.Source.Acsc/Internal/AcscFeedParser.cs rename to src/StellaOps.Concelier.Connector.Acsc/Internal/AcscFeedParser.cs index 428b3388..15e39b16 100644 --- a/src/StellaOps.Concelier.Source.Acsc/Internal/AcscFeedParser.cs +++ b/src/StellaOps.Concelier.Connector.Acsc/Internal/AcscFeedParser.cs @@ -4,9 +4,9 @@ using System.Xml.Linq; using AngleSharp.Dom; using AngleSharp.Html.Parser; using System.Security.Cryptography; -using StellaOps.Concelier.Source.Common.Html; +using StellaOps.Concelier.Connector.Common.Html; -namespace StellaOps.Concelier.Source.Acsc.Internal; +namespace StellaOps.Concelier.Connector.Acsc.Internal; internal static class AcscFeedParser { diff --git a/src/StellaOps.Concelier.Source.Acsc/Internal/AcscMapper.cs b/src/StellaOps.Concelier.Connector.Acsc/Internal/AcscMapper.cs similarity index 99% rename from src/StellaOps.Concelier.Source.Acsc/Internal/AcscMapper.cs rename to src/StellaOps.Concelier.Connector.Acsc/Internal/AcscMapper.cs index cb65712f..014fb96a 100644 --- a/src/StellaOps.Concelier.Source.Acsc/Internal/AcscMapper.cs +++ b/src/StellaOps.Concelier.Connector.Acsc/Internal/AcscMapper.cs @@ -5,7 +5,7 @@ using StellaOps.Concelier.Models; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; -namespace StellaOps.Concelier.Source.Acsc.Internal; +namespace StellaOps.Concelier.Connector.Acsc.Internal; internal static class AcscMapper { diff --git a/src/StellaOps.Concelier.Source.Acsc/Jobs.cs b/src/StellaOps.Concelier.Connector.Acsc/Jobs.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Acsc/Jobs.cs rename to src/StellaOps.Concelier.Connector.Acsc/Jobs.cs index ec6d472a..9ed3d62d 100644 --- a/src/StellaOps.Concelier.Source.Acsc/Jobs.cs +++ b/src/StellaOps.Concelier.Connector.Acsc/Jobs.cs @@ -1,6 +1,6 @@ using StellaOps.Concelier.Core.Jobs; -namespace StellaOps.Concelier.Source.Acsc; +namespace StellaOps.Concelier.Connector.Acsc; internal static class AcscJobKinds { diff --git a/src/StellaOps.Concelier.Source.Nvd/Properties/AssemblyInfo.cs b/src/StellaOps.Concelier.Connector.Acsc/Properties/AssemblyInfo.cs similarity index 54% rename from src/StellaOps.Concelier.Source.Nvd/Properties/AssemblyInfo.cs rename to src/StellaOps.Concelier.Connector.Acsc/Properties/AssemblyInfo.cs index 600970a4..d1621444 100644 --- a/src/StellaOps.Concelier.Source.Nvd/Properties/AssemblyInfo.cs +++ b/src/StellaOps.Concelier.Connector.Acsc/Properties/AssemblyInfo.cs @@ -1,4 +1,4 @@ using System.Runtime.CompilerServices; -[assembly: InternalsVisibleTo("StellaOps.Concelier.Source.Nvd.Tests")] [assembly: InternalsVisibleTo("FixtureUpdater")] +[assembly: InternalsVisibleTo("StellaOps.Concelier.Connector.Acsc.Tests")] diff --git a/src/StellaOps.Concelier.Source.Acsc/README.md b/src/StellaOps.Concelier.Connector.Acsc/README.md similarity index 88% rename from src/StellaOps.Concelier.Source.Acsc/README.md rename to src/StellaOps.Concelier.Connector.Acsc/README.md index 765c9605..1cc25a83 100644 --- a/src/StellaOps.Concelier.Source.Acsc/README.md +++ b/src/StellaOps.Concelier.Connector.Acsc/README.md @@ -1,4 +1,4 @@ -## StellaOps.Concelier.Source.Acsc +## StellaOps.Concelier.Connector.Acsc Australian Cyber Security Centre (ACSC) connector that ingests RSS/Atom advisories, sanitises embedded HTML, and maps entries into canonical `Advisory` records for Concelier. @@ -29,7 +29,7 @@ The dependency injection routine registers the connector plus scheduled jobs: | `source:acsc:probe` | `25,55 * * * *` | Verify direct endpoint health and adjust cursor preference. | ### Metrics -Emitted via `AcscDiagnostics` (`Meter` = `StellaOps.Concelier.Source.Acsc`): +Emitted via `AcscDiagnostics` (`Meter` = `StellaOps.Concelier.Connector.Acsc`): | Instrument | Unit | Description | | --- | --- | --- | @@ -54,10 +54,10 @@ Key log messages include: Logs include feed slug metadata for troubleshooting parallel ingestion. ### Tests & fixtures -`StellaOps.Concelier.Source.Acsc.Tests` exercises the fetch→parse→map pipeline using canned RSS content. Deterministic snapshots live in `Acsc/Fixtures`. To refresh them after intentional behavioural changes: +`StellaOps.Concelier.Connector.Acsc.Tests` exercises the fetch→parse→map pipeline using canned RSS content. Deterministic snapshots live in `Acsc/Fixtures`. To refresh them after intentional behavioural changes: ```bash -UPDATE_ACSC_FIXTURES=1 dotnet test src/StellaOps.Concelier.Source.Acsc.Tests/StellaOps.Concelier.Source.Acsc.Tests.csproj +UPDATE_ACSC_FIXTURES=1 dotnet test src/StellaOps.Concelier.Connector.Acsc.Tests/StellaOps.Concelier.Connector.Acsc.Tests.csproj ``` Remember to review the generated `.actual.json` files when assertions fail without fixture updates. diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple/StellaOps.Concelier.Source.Vndr.Apple.csproj b/src/StellaOps.Concelier.Connector.Acsc/StellaOps.Concelier.Connector.Acsc.csproj similarity index 82% rename from src/StellaOps.Concelier.Source.Vndr.Apple/StellaOps.Concelier.Source.Vndr.Apple.csproj rename to src/StellaOps.Concelier.Connector.Acsc/StellaOps.Concelier.Connector.Acsc.csproj index c34f357b..cfae3203 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Apple/StellaOps.Concelier.Source.Vndr.Apple.csproj +++ b/src/StellaOps.Concelier.Connector.Acsc/StellaOps.Concelier.Connector.Acsc.csproj @@ -7,12 +7,12 @@ - - - - + + + + diff --git a/src/StellaOps.Concelier.Source.Acsc/TASKS.md b/src/StellaOps.Concelier.Connector.Acsc/TASKS.md similarity index 100% rename from src/StellaOps.Concelier.Source.Acsc/TASKS.md rename to src/StellaOps.Concelier.Connector.Acsc/TASKS.md diff --git a/src/StellaOps.Concelier.Source.Cccs.Tests/CccsConnectorTests.cs b/src/StellaOps.Concelier.Connector.Cccs.Tests/CccsConnectorTests.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Cccs.Tests/CccsConnectorTests.cs rename to src/StellaOps.Concelier.Connector.Cccs.Tests/CccsConnectorTests.cs index 49edfb05..8bc5465c 100644 --- a/src/StellaOps.Concelier.Source.Cccs.Tests/CccsConnectorTests.cs +++ b/src/StellaOps.Concelier.Connector.Cccs.Tests/CccsConnectorTests.cs @@ -11,18 +11,18 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Options; using MongoDB.Bson; -using StellaOps.Concelier.Source.Cccs; -using StellaOps.Concelier.Source.Cccs.Configuration; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Common.Testing; +using StellaOps.Concelier.Connector.Cccs; +using StellaOps.Concelier.Connector.Cccs.Configuration; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Common.Testing; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Testing; using Xunit; -namespace StellaOps.Concelier.Source.Cccs.Tests; +namespace StellaOps.Concelier.Connector.Cccs.Tests; [Collection("mongo-fixture")] public sealed class CccsConnectorTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.Cccs.Tests/Fixtures/cccs-feed-en.json b/src/StellaOps.Concelier.Connector.Cccs.Tests/Fixtures/cccs-feed-en.json similarity index 100% rename from src/StellaOps.Concelier.Source.Cccs.Tests/Fixtures/cccs-feed-en.json rename to src/StellaOps.Concelier.Connector.Cccs.Tests/Fixtures/cccs-feed-en.json diff --git a/src/StellaOps.Concelier.Source.Cccs.Tests/Fixtures/cccs-raw-advisory-fr.json b/src/StellaOps.Concelier.Connector.Cccs.Tests/Fixtures/cccs-raw-advisory-fr.json similarity index 100% rename from src/StellaOps.Concelier.Source.Cccs.Tests/Fixtures/cccs-raw-advisory-fr.json rename to src/StellaOps.Concelier.Connector.Cccs.Tests/Fixtures/cccs-raw-advisory-fr.json diff --git a/src/StellaOps.Concelier.Source.Cccs.Tests/Fixtures/cccs-raw-advisory.json b/src/StellaOps.Concelier.Connector.Cccs.Tests/Fixtures/cccs-raw-advisory.json similarity index 100% rename from src/StellaOps.Concelier.Source.Cccs.Tests/Fixtures/cccs-raw-advisory.json rename to src/StellaOps.Concelier.Connector.Cccs.Tests/Fixtures/cccs-raw-advisory.json diff --git a/src/StellaOps.Concelier.Source.Cccs.Tests/Fixtures/cccs-taxonomy-en.json b/src/StellaOps.Concelier.Connector.Cccs.Tests/Fixtures/cccs-taxonomy-en.json similarity index 100% rename from src/StellaOps.Concelier.Source.Cccs.Tests/Fixtures/cccs-taxonomy-en.json rename to src/StellaOps.Concelier.Connector.Cccs.Tests/Fixtures/cccs-taxonomy-en.json diff --git a/src/StellaOps.Concelier.Source.Cccs.Tests/Internal/CccsHtmlParserTests.cs b/src/StellaOps.Concelier.Connector.Cccs.Tests/Internal/CccsHtmlParserTests.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Cccs.Tests/Internal/CccsHtmlParserTests.cs rename to src/StellaOps.Concelier.Connector.Cccs.Tests/Internal/CccsHtmlParserTests.cs index 005c9ff2..f0b66c99 100644 --- a/src/StellaOps.Concelier.Source.Cccs.Tests/Internal/CccsHtmlParserTests.cs +++ b/src/StellaOps.Concelier.Connector.Cccs.Tests/Internal/CccsHtmlParserTests.cs @@ -3,12 +3,12 @@ using System.IO; using System.Linq; using System.Text.Json; using FluentAssertions; -using StellaOps.Concelier.Source.Cccs.Internal; -using StellaOps.Concelier.Source.Common.Html; +using StellaOps.Concelier.Connector.Cccs.Internal; +using StellaOps.Concelier.Connector.Common.Html; using Xunit; using Xunit.Abstractions; -namespace StellaOps.Concelier.Source.Cccs.Tests.Internal; +namespace StellaOps.Concelier.Connector.Cccs.Tests.Internal; public sealed class CccsHtmlParserTests { diff --git a/src/StellaOps.Concelier.Source.Cccs.Tests/Internal/CccsMapperTests.cs b/src/StellaOps.Concelier.Connector.Cccs.Tests/Internal/CccsMapperTests.cs similarity index 88% rename from src/StellaOps.Concelier.Source.Cccs.Tests/Internal/CccsMapperTests.cs rename to src/StellaOps.Concelier.Connector.Cccs.Tests/Internal/CccsMapperTests.cs index 632cb7af..c8310a08 100644 --- a/src/StellaOps.Concelier.Source.Cccs.Tests/Internal/CccsMapperTests.cs +++ b/src/StellaOps.Concelier.Connector.Cccs.Tests/Internal/CccsMapperTests.cs @@ -1,12 +1,12 @@ using System; using FluentAssertions; -using StellaOps.Concelier.Source.Cccs.Internal; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Html; +using StellaOps.Concelier.Connector.Cccs.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Html; using StellaOps.Concelier.Storage.Mongo.Documents; using Xunit; -namespace StellaOps.Concelier.Source.Cccs.Tests.Internal; +namespace StellaOps.Concelier.Connector.Cccs.Tests.Internal; public sealed class CccsMapperTests { diff --git a/src/StellaOps.Concelier.Source.CertCc.Tests/StellaOps.Concelier.Source.CertCc.Tests.csproj b/src/StellaOps.Concelier.Connector.Cccs.Tests/StellaOps.Concelier.Connector.Cccs.Tests.csproj similarity index 67% rename from src/StellaOps.Concelier.Source.CertCc.Tests/StellaOps.Concelier.Source.CertCc.Tests.csproj rename to src/StellaOps.Concelier.Connector.Cccs.Tests/StellaOps.Concelier.Connector.Cccs.Tests.csproj index d89a3bbc..af845994 100644 --- a/src/StellaOps.Concelier.Source.CertCc.Tests/StellaOps.Concelier.Source.CertCc.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.Cccs.Tests/StellaOps.Concelier.Connector.Cccs.Tests.csproj @@ -5,8 +5,8 @@ enable - - + + diff --git a/src/StellaOps.Concelier.Source.Cccs/AGENTS.md b/src/StellaOps.Concelier.Connector.Cccs/AGENTS.md similarity index 95% rename from src/StellaOps.Concelier.Source.Cccs/AGENTS.md rename to src/StellaOps.Concelier.Connector.Cccs/AGENTS.md index ca2636f6..3619eac4 100644 --- a/src/StellaOps.Concelier.Source.Cccs/AGENTS.md +++ b/src/StellaOps.Concelier.Connector.Cccs/AGENTS.md @@ -35,6 +35,6 @@ Out of scope: - Respect upstream rate limits; mark failures in source state with backoff. ## Tests -- Add `StellaOps.Concelier.Source.Cccs.Tests` covering fetch/parse/map with canned fixtures. +- Add `StellaOps.Concelier.Connector.Cccs.Tests` covering fetch/parse/map with canned fixtures. - Snapshot canonical advisories; support fixture regeneration via env flag. - Validate deterministic ordering and timestamps to maintain reproducibility. diff --git a/src/StellaOps.Concelier.Source.Cccs/CccsConnector.cs b/src/StellaOps.Concelier.Connector.Cccs/CccsConnector.cs similarity index 99% rename from src/StellaOps.Concelier.Source.Cccs/CccsConnector.cs rename to src/StellaOps.Concelier.Connector.Cccs/CccsConnector.cs index 3bc3246d..1ee050de 100644 --- a/src/StellaOps.Concelier.Source.Cccs/CccsConnector.cs +++ b/src/StellaOps.Concelier.Connector.Cccs/CccsConnector.cs @@ -11,17 +11,17 @@ using System.Globalization; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using MongoDB.Bson; -using StellaOps.Concelier.Source.Cccs.Configuration; -using StellaOps.Concelier.Source.Cccs.Internal; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; +using StellaOps.Concelier.Connector.Cccs.Configuration; +using StellaOps.Concelier.Connector.Cccs.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Cccs; +namespace StellaOps.Concelier.Connector.Cccs; public sealed class CccsConnector : IFeedConnector { diff --git a/src/StellaOps.Concelier.Source.Cccs/CccsConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.Cccs/CccsConnectorPlugin.cs similarity index 92% rename from src/StellaOps.Concelier.Source.Cccs/CccsConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.Cccs/CccsConnectorPlugin.cs index 7295acbc..b8dd5170 100644 --- a/src/StellaOps.Concelier.Source.Cccs/CccsConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.Cccs/CccsConnectorPlugin.cs @@ -2,7 +2,7 @@ using System; using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Cccs; +namespace StellaOps.Concelier.Connector.Cccs; public sealed class CccsConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.Cccs/CccsDependencyInjectionRoutine.cs b/src/StellaOps.Concelier.Connector.Cccs/CccsDependencyInjectionRoutine.cs similarity index 93% rename from src/StellaOps.Concelier.Source.Cccs/CccsDependencyInjectionRoutine.cs rename to src/StellaOps.Concelier.Connector.Cccs/CccsDependencyInjectionRoutine.cs index c4b21202..74ed6896 100644 --- a/src/StellaOps.Concelier.Source.Cccs/CccsDependencyInjectionRoutine.cs +++ b/src/StellaOps.Concelier.Connector.Cccs/CccsDependencyInjectionRoutine.cs @@ -3,9 +3,9 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using StellaOps.DependencyInjection; using StellaOps.Concelier.Core.Jobs; -using StellaOps.Concelier.Source.Cccs.Configuration; +using StellaOps.Concelier.Connector.Cccs.Configuration; -namespace StellaOps.Concelier.Source.Cccs; +namespace StellaOps.Concelier.Connector.Cccs; public sealed class CccsDependencyInjectionRoutine : IDependencyInjectionRoutine { diff --git a/src/StellaOps.Concelier.Source.Cccs/CccsServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.Cccs/CccsServiceCollectionExtensions.cs similarity index 86% rename from src/StellaOps.Concelier.Source.Cccs/CccsServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.Cccs/CccsServiceCollectionExtensions.cs index dff98d64..c6833c4b 100644 --- a/src/StellaOps.Concelier.Source.Cccs/CccsServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.Cccs/CccsServiceCollectionExtensions.cs @@ -3,12 +3,12 @@ using System.Linq; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Cccs.Configuration; -using StellaOps.Concelier.Source.Cccs.Internal; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Common.Html; +using StellaOps.Concelier.Connector.Cccs.Configuration; +using StellaOps.Concelier.Connector.Cccs.Internal; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Common.Html; -namespace StellaOps.Concelier.Source.Cccs; +namespace StellaOps.Concelier.Connector.Cccs; public static class CccsServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Source.Cccs/Configuration/CccsOptions.cs b/src/StellaOps.Concelier.Connector.Cccs/Configuration/CccsOptions.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Cccs/Configuration/CccsOptions.cs rename to src/StellaOps.Concelier.Connector.Cccs/Configuration/CccsOptions.cs index 851261b3..633cee37 100644 --- a/src/StellaOps.Concelier.Source.Cccs/Configuration/CccsOptions.cs +++ b/src/StellaOps.Concelier.Connector.Cccs/Configuration/CccsOptions.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -namespace StellaOps.Concelier.Source.Cccs.Configuration; +namespace StellaOps.Concelier.Connector.Cccs.Configuration; public sealed class CccsOptions { diff --git a/src/StellaOps.Concelier.Source.Cccs/Internal/CccsAdvisoryDto.cs b/src/StellaOps.Concelier.Connector.Cccs/Internal/CccsAdvisoryDto.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Cccs/Internal/CccsAdvisoryDto.cs rename to src/StellaOps.Concelier.Connector.Cccs/Internal/CccsAdvisoryDto.cs index b158c222..ed06ad0e 100644 --- a/src/StellaOps.Concelier.Source.Cccs/Internal/CccsAdvisoryDto.cs +++ b/src/StellaOps.Concelier.Connector.Cccs/Internal/CccsAdvisoryDto.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json.Serialization; -namespace StellaOps.Concelier.Source.Cccs.Internal; +namespace StellaOps.Concelier.Connector.Cccs.Internal; internal sealed record CccsAdvisoryDto { diff --git a/src/StellaOps.Concelier.Source.Cccs/Internal/CccsCursor.cs b/src/StellaOps.Concelier.Connector.Cccs/Internal/CccsCursor.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Cccs/Internal/CccsCursor.cs rename to src/StellaOps.Concelier.Connector.Cccs/Internal/CccsCursor.cs index 44630c64..d2633f00 100644 --- a/src/StellaOps.Concelier.Source.Cccs/Internal/CccsCursor.cs +++ b/src/StellaOps.Concelier.Connector.Cccs/Internal/CccsCursor.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using MongoDB.Bson; -namespace StellaOps.Concelier.Source.Cccs.Internal; +namespace StellaOps.Concelier.Connector.Cccs.Internal; internal sealed record CccsCursor( IReadOnlyCollection PendingDocuments, diff --git a/src/StellaOps.Concelier.Source.Cccs/Internal/CccsDiagnostics.cs b/src/StellaOps.Concelier.Connector.Cccs/Internal/CccsDiagnostics.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Cccs/Internal/CccsDiagnostics.cs rename to src/StellaOps.Concelier.Connector.Cccs/Internal/CccsDiagnostics.cs index c46743f9..7ae0243d 100644 --- a/src/StellaOps.Concelier.Source.Cccs/Internal/CccsDiagnostics.cs +++ b/src/StellaOps.Concelier.Connector.Cccs/Internal/CccsDiagnostics.cs @@ -1,10 +1,10 @@ using System.Diagnostics.Metrics; -namespace StellaOps.Concelier.Source.Cccs.Internal; +namespace StellaOps.Concelier.Connector.Cccs.Internal; public sealed class CccsDiagnostics : IDisposable { - private const string MeterName = "StellaOps.Concelier.Source.Cccs"; + private const string MeterName = "StellaOps.Concelier.Connector.Cccs"; private const string MeterVersion = "1.0.0"; private readonly Meter _meter; diff --git a/src/StellaOps.Concelier.Source.Cccs/Internal/CccsFeedClient.cs b/src/StellaOps.Concelier.Connector.Cccs/Internal/CccsFeedClient.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Cccs/Internal/CccsFeedClient.cs rename to src/StellaOps.Concelier.Connector.Cccs/Internal/CccsFeedClient.cs index 305b9c60..acfe94eb 100644 --- a/src/StellaOps.Concelier.Source.Cccs/Internal/CccsFeedClient.cs +++ b/src/StellaOps.Concelier.Connector.Cccs/Internal/CccsFeedClient.cs @@ -6,10 +6,10 @@ using System.Text.Json.Serialization; using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Logging; -using StellaOps.Concelier.Source.Cccs.Configuration; -using StellaOps.Concelier.Source.Common.Fetch; +using StellaOps.Concelier.Connector.Cccs.Configuration; +using StellaOps.Concelier.Connector.Common.Fetch; -namespace StellaOps.Concelier.Source.Cccs.Internal; +namespace StellaOps.Concelier.Connector.Cccs.Internal; public sealed class CccsFeedClient { diff --git a/src/StellaOps.Concelier.Source.Cccs/Internal/CccsFeedModels.cs b/src/StellaOps.Concelier.Connector.Cccs/Internal/CccsFeedModels.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Cccs/Internal/CccsFeedModels.cs rename to src/StellaOps.Concelier.Connector.Cccs/Internal/CccsFeedModels.cs index 701e22b7..a0e3c6e7 100644 --- a/src/StellaOps.Concelier.Source.Cccs/Internal/CccsFeedModels.cs +++ b/src/StellaOps.Concelier.Connector.Cccs/Internal/CccsFeedModels.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Text.Json; using System.Text.Json.Serialization; -namespace StellaOps.Concelier.Source.Cccs.Internal; +namespace StellaOps.Concelier.Connector.Cccs.Internal; internal sealed class CccsFeedResponse { diff --git a/src/StellaOps.Concelier.Source.Cccs/Internal/CccsHtmlParser.cs b/src/StellaOps.Concelier.Connector.Cccs/Internal/CccsHtmlParser.cs similarity index 99% rename from src/StellaOps.Concelier.Source.Cccs/Internal/CccsHtmlParser.cs rename to src/StellaOps.Concelier.Connector.Cccs/Internal/CccsHtmlParser.cs index d7cb892e..932c50a9 100644 --- a/src/StellaOps.Concelier.Source.Cccs/Internal/CccsHtmlParser.cs +++ b/src/StellaOps.Concelier.Connector.Cccs/Internal/CccsHtmlParser.cs @@ -6,9 +6,9 @@ using System.Text.RegularExpressions; using AngleSharp.Dom; using AngleSharp.Html.Dom; using AngleSharp.Html.Parser; -using StellaOps.Concelier.Source.Common.Html; +using StellaOps.Concelier.Connector.Common.Html; -namespace StellaOps.Concelier.Source.Cccs.Internal; +namespace StellaOps.Concelier.Connector.Cccs.Internal; public sealed class CccsHtmlParser { diff --git a/src/StellaOps.Concelier.Source.Cccs/Internal/CccsMapper.cs b/src/StellaOps.Concelier.Connector.Cccs/Internal/CccsMapper.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Cccs/Internal/CccsMapper.cs rename to src/StellaOps.Concelier.Connector.Cccs/Internal/CccsMapper.cs index 2cc36045..8d23cdf2 100644 --- a/src/StellaOps.Concelier.Source.Cccs/Internal/CccsMapper.cs +++ b/src/StellaOps.Concelier.Connector.Cccs/Internal/CccsMapper.cs @@ -4,7 +4,7 @@ using System.Linq; using StellaOps.Concelier.Models; using StellaOps.Concelier.Storage.Mongo.Documents; -namespace StellaOps.Concelier.Source.Cccs.Internal; +namespace StellaOps.Concelier.Connector.Cccs.Internal; internal static class CccsMapper { diff --git a/src/StellaOps.Concelier.Source.Cccs/Internal/CccsRawAdvisoryDocument.cs b/src/StellaOps.Concelier.Connector.Cccs/Internal/CccsRawAdvisoryDocument.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Cccs/Internal/CccsRawAdvisoryDocument.cs rename to src/StellaOps.Concelier.Connector.Cccs/Internal/CccsRawAdvisoryDocument.cs index 03c153c6..0966175d 100644 --- a/src/StellaOps.Concelier.Source.Cccs/Internal/CccsRawAdvisoryDocument.cs +++ b/src/StellaOps.Concelier.Connector.Cccs/Internal/CccsRawAdvisoryDocument.cs @@ -1,7 +1,7 @@ using System; using System.Text.Json.Serialization; -namespace StellaOps.Concelier.Source.Cccs.Internal; +namespace StellaOps.Concelier.Connector.Cccs.Internal; internal sealed record CccsRawAdvisoryDocument { diff --git a/src/StellaOps.Concelier.Source.Cccs/Jobs.cs b/src/StellaOps.Concelier.Connector.Cccs/Jobs.cs similarity index 92% rename from src/StellaOps.Concelier.Source.Cccs/Jobs.cs rename to src/StellaOps.Concelier.Connector.Cccs/Jobs.cs index c8f7084b..defe4a43 100644 --- a/src/StellaOps.Concelier.Source.Cccs/Jobs.cs +++ b/src/StellaOps.Concelier.Connector.Cccs/Jobs.cs @@ -3,7 +3,7 @@ using System.Threading; using System.Threading.Tasks; using StellaOps.Concelier.Core.Jobs; -namespace StellaOps.Concelier.Source.Cccs; +namespace StellaOps.Concelier.Connector.Cccs; internal static class CccsJobKinds { diff --git a/src/StellaOps.Concelier.Connector.Cccs/Properties/AssemblyInfo.cs b/src/StellaOps.Concelier.Connector.Cccs/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..83b1e0c4 --- /dev/null +++ b/src/StellaOps.Concelier.Connector.Cccs/Properties/AssemblyInfo.cs @@ -0,0 +1,3 @@ +using System.Runtime.CompilerServices; + +[assembly: InternalsVisibleTo("StellaOps.Concelier.Connector.Cccs.Tests")] diff --git a/src/StellaOps.Concelier.Source.Kisa/StellaOps.Concelier.Source.Kisa.csproj b/src/StellaOps.Concelier.Connector.Cccs/StellaOps.Concelier.Connector.Cccs.csproj similarity index 80% rename from src/StellaOps.Concelier.Source.Kisa/StellaOps.Concelier.Source.Kisa.csproj rename to src/StellaOps.Concelier.Connector.Cccs/StellaOps.Concelier.Connector.Cccs.csproj index a187c54c..45e65329 100644 --- a/src/StellaOps.Concelier.Source.Kisa/StellaOps.Concelier.Source.Kisa.csproj +++ b/src/StellaOps.Concelier.Connector.Cccs/StellaOps.Concelier.Connector.Cccs.csproj @@ -6,12 +6,11 @@ enable - - - - + + + + - diff --git a/src/StellaOps.Concelier.Source.Cccs/TASKS.md b/src/StellaOps.Concelier.Connector.Cccs/TASKS.md similarity index 92% rename from src/StellaOps.Concelier.Source.Cccs/TASKS.md rename to src/StellaOps.Concelier.Connector.Cccs/TASKS.md index 2b2b6fc7..0732cc75 100644 --- a/src/StellaOps.Concelier.Source.Cccs/TASKS.md +++ b/src/StellaOps.Concelier.Connector.Cccs/TASKS.md @@ -5,7 +5,7 @@ |FEEDCONN-CCCS-02-002 Implement fetch & source state handling|BE-Conn-CCCS|Source.Common, Storage.Mongo|**DONE (2025-10-14)** – `CccsConnector.FetchAsync` now hydrates feeds via `CccsFeedClient`, persists per-entry JSON payloads with SHA256 dedupe and cursor state, throttles requests, and records taxonomy + language metadata in document state.| |FEEDCONN-CCCS-02-003 DTO/parser implementation|BE-Conn-CCCS|Source.Common|**DONE (2025-10-14)** – Added `CccsHtmlParser` to sanitize Atom body HTML, extract serial/date/product bullets, collapse whitespace, and emit normalized reference URLs; `ParseAsync` now persists DTO records under schema `cccs.dto.v1`.| |FEEDCONN-CCCS-02-004 Canonical mapping & range primitives|BE-Conn-CCCS|Models|**DONE (2025-10-14)** – `CccsMapper` now materializes canonical advisories (aliases from serial/source/CVEs, references incl. canonical URL, vendor package records) with provenance masks; `MapAsync` stores results in `AdvisoryStore`.| -|FEEDCONN-CCCS-02-005 Deterministic fixtures & tests|QA|Testing|**DONE (2025-10-14)** – Added English/French fixtures plus parser + connector end-to-end tests (`StellaOps.Concelier.Source.Cccs.Tests`). Canned HTTP handler + Mongo fixture enables fetch→parse→map regression; fixtures refresh via `UPDATE_CCCS_FIXTURES=1`.| +|FEEDCONN-CCCS-02-005 Deterministic fixtures & tests|QA|Testing|**DONE (2025-10-14)** – Added English/French fixtures plus parser + connector end-to-end tests (`StellaOps.Concelier.Connector.Cccs.Tests`). Canned HTTP handler + Mongo fixture enables fetch→parse→map regression; fixtures refresh via `UPDATE_CCCS_FIXTURES=1`.| |FEEDCONN-CCCS-02-006 Observability & documentation|DevEx|Docs|**DONE (2025-10-15)** – Added `CccsDiagnostics` meter (fetch/parse/map counters), enriched connector logs with document counts, and published `docs/ops/concelier-cccs-operations.md` covering config, telemetry, and sanitiser guidance.| |FEEDCONN-CCCS-02-007 Historical advisory harvesting plan|BE-Conn-CCCS|Research|**DONE (2025-10-15)** – Measured `/api/cccs/threats/v1/get` inventory (~5.1k rows/lang; earliest 2018-06-08), documented backfill workflow + language split strategy, and linked the runbook for Offline Kit execution.| |FEEDCONN-CCCS-02-008 Raw DOM parsing refinement|BE-Conn-CCCS|Source.Common|**DONE (2025-10-15)** – Parser now walks unsanitised DOM (heading + nested list coverage), sanitizer keeps ``/`section` nodes, and regression fixtures/tests assert EN/FR list handling + preserved HTML structure.| diff --git a/src/StellaOps.Concelier.Source.CertBund.Tests/CertBundConnectorTests.cs b/src/StellaOps.Concelier.Connector.CertBund.Tests/CertBundConnectorTests.cs similarity index 96% rename from src/StellaOps.Concelier.Source.CertBund.Tests/CertBundConnectorTests.cs rename to src/StellaOps.Concelier.Connector.CertBund.Tests/CertBundConnectorTests.cs index f10f7187..75955292 100644 --- a/src/StellaOps.Concelier.Source.CertBund.Tests/CertBundConnectorTests.cs +++ b/src/StellaOps.Concelier.Connector.CertBund.Tests/CertBundConnectorTests.cs @@ -11,11 +11,11 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Options; using MongoDB.Bson; -using StellaOps.Concelier.Source.CertBund.Configuration; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Common.Testing; +using StellaOps.Concelier.Connector.CertBund.Configuration; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Common.Testing; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; @@ -23,7 +23,7 @@ using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Concelier.Testing; using Xunit; -namespace StellaOps.Concelier.Source.CertBund.Tests; +namespace StellaOps.Concelier.Connector.CertBund.Tests; [Collection("mongo-fixture")] public sealed class CertBundConnectorTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.CertBund.Tests/Fixtures/certbund-detail.json b/src/StellaOps.Concelier.Connector.CertBund.Tests/Fixtures/certbund-detail.json similarity index 100% rename from src/StellaOps.Concelier.Source.CertBund.Tests/Fixtures/certbund-detail.json rename to src/StellaOps.Concelier.Connector.CertBund.Tests/Fixtures/certbund-detail.json diff --git a/src/StellaOps.Concelier.Source.CertBund.Tests/Fixtures/certbund-feed.xml b/src/StellaOps.Concelier.Connector.CertBund.Tests/Fixtures/certbund-feed.xml similarity index 100% rename from src/StellaOps.Concelier.Source.CertBund.Tests/Fixtures/certbund-feed.xml rename to src/StellaOps.Concelier.Connector.CertBund.Tests/Fixtures/certbund-feed.xml diff --git a/src/StellaOps.Concelier.Source.CertBund.Tests/StellaOps.Concelier.Source.CertBund.Tests.csproj b/src/StellaOps.Concelier.Connector.CertBund.Tests/StellaOps.Concelier.Connector.CertBund.Tests.csproj similarity index 70% rename from src/StellaOps.Concelier.Source.CertBund.Tests/StellaOps.Concelier.Source.CertBund.Tests.csproj rename to src/StellaOps.Concelier.Connector.CertBund.Tests/StellaOps.Concelier.Connector.CertBund.Tests.csproj index 6ce29b3d..c8648cc7 100644 --- a/src/StellaOps.Concelier.Source.CertBund.Tests/StellaOps.Concelier.Source.CertBund.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.CertBund.Tests/StellaOps.Concelier.Connector.CertBund.Tests.csproj @@ -5,8 +5,8 @@ enable - - + + diff --git a/src/StellaOps.Concelier.Source.CertBund/AGENTS.md b/src/StellaOps.Concelier.Connector.CertBund/AGENTS.md similarity index 94% rename from src/StellaOps.Concelier.Source.CertBund/AGENTS.md rename to src/StellaOps.Concelier.Connector.CertBund/AGENTS.md index b84c06fb..097bb000 100644 --- a/src/StellaOps.Concelier.Source.CertBund/AGENTS.md +++ b/src/StellaOps.Concelier.Connector.CertBund/AGENTS.md @@ -35,6 +35,6 @@ Out of scope: - Handle transient failures gracefully with exponential backoff and failure records in source state. ## Tests -- Add `StellaOps.Concelier.Source.CertBund.Tests` covering fetch/parse/map with canned fixtures. +- Add `StellaOps.Concelier.Connector.CertBund.Tests` covering fetch/parse/map with canned fixtures. - Snapshot canonical advisories; support regeneration via environment flag. - Ensure deterministic ordering, casing, and timestamps. diff --git a/src/StellaOps.Concelier.Source.CertBund/CertBundConnector.cs b/src/StellaOps.Concelier.Connector.CertBund/CertBundConnector.cs similarity index 98% rename from src/StellaOps.Concelier.Source.CertBund/CertBundConnector.cs rename to src/StellaOps.Concelier.Connector.CertBund/CertBundConnector.cs index 352a3ee9..2c19b78b 100644 --- a/src/StellaOps.Concelier.Source.CertBund/CertBundConnector.cs +++ b/src/StellaOps.Concelier.Connector.CertBund/CertBundConnector.cs @@ -7,18 +7,18 @@ using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using MongoDB.Bson; -using StellaOps.Concelier.Source.CertBund.Configuration; -using StellaOps.Concelier.Source.CertBund.Internal; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Common.Html; +using StellaOps.Concelier.Connector.CertBund.Configuration; +using StellaOps.Concelier.Connector.CertBund.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Common.Html; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.CertBund; +namespace StellaOps.Concelier.Connector.CertBund; public sealed class CertBundConnector : IFeedConnector { diff --git a/src/StellaOps.Concelier.Source.CertBund/CertBundConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.CertBund/CertBundConnectorPlugin.cs similarity index 91% rename from src/StellaOps.Concelier.Source.CertBund/CertBundConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.CertBund/CertBundConnectorPlugin.cs index 0d0684a2..be2b681e 100644 --- a/src/StellaOps.Concelier.Source.CertBund/CertBundConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.CertBund/CertBundConnectorPlugin.cs @@ -2,7 +2,7 @@ using System; using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.CertBund; +namespace StellaOps.Concelier.Connector.CertBund; public sealed class CertBundConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.CertBund/CertBundDependencyInjectionRoutine.cs b/src/StellaOps.Concelier.Connector.CertBund/CertBundDependencyInjectionRoutine.cs similarity index 92% rename from src/StellaOps.Concelier.Source.CertBund/CertBundDependencyInjectionRoutine.cs rename to src/StellaOps.Concelier.Connector.CertBund/CertBundDependencyInjectionRoutine.cs index a57083ce..1fd39094 100644 --- a/src/StellaOps.Concelier.Source.CertBund/CertBundDependencyInjectionRoutine.cs +++ b/src/StellaOps.Concelier.Connector.CertBund/CertBundDependencyInjectionRoutine.cs @@ -3,9 +3,9 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using StellaOps.DependencyInjection; using StellaOps.Concelier.Core.Jobs; -using StellaOps.Concelier.Source.CertBund.Configuration; +using StellaOps.Concelier.Connector.CertBund.Configuration; -namespace StellaOps.Concelier.Source.CertBund; +namespace StellaOps.Concelier.Connector.CertBund; public sealed class CertBundDependencyInjectionRoutine : IDependencyInjectionRoutine { diff --git a/src/StellaOps.Concelier.Source.CertBund/CertBundServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.CertBund/CertBundServiceCollectionExtensions.cs similarity index 87% rename from src/StellaOps.Concelier.Source.CertBund/CertBundServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.CertBund/CertBundServiceCollectionExtensions.cs index 1b8afd40..0c055615 100644 --- a/src/StellaOps.Concelier.Source.CertBund/CertBundServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.CertBund/CertBundServiceCollectionExtensions.cs @@ -3,12 +3,12 @@ using System.Net; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.CertBund.Configuration; -using StellaOps.Concelier.Source.CertBund.Internal; -using StellaOps.Concelier.Source.Common.Html; -using StellaOps.Concelier.Source.Common.Http; +using StellaOps.Concelier.Connector.CertBund.Configuration; +using StellaOps.Concelier.Connector.CertBund.Internal; +using StellaOps.Concelier.Connector.Common.Html; +using StellaOps.Concelier.Connector.Common.Http; -namespace StellaOps.Concelier.Source.CertBund; +namespace StellaOps.Concelier.Connector.CertBund; public static class CertBundServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Source.CertBund/Configuration/CertBundOptions.cs b/src/StellaOps.Concelier.Connector.CertBund/Configuration/CertBundOptions.cs similarity index 98% rename from src/StellaOps.Concelier.Source.CertBund/Configuration/CertBundOptions.cs rename to src/StellaOps.Concelier.Connector.CertBund/Configuration/CertBundOptions.cs index 75f2dc82..f2fc1082 100644 --- a/src/StellaOps.Concelier.Source.CertBund/Configuration/CertBundOptions.cs +++ b/src/StellaOps.Concelier.Connector.CertBund/Configuration/CertBundOptions.cs @@ -1,6 +1,6 @@ using System.Net; -namespace StellaOps.Concelier.Source.CertBund.Configuration; +namespace StellaOps.Concelier.Connector.CertBund.Configuration; public sealed class CertBundOptions { diff --git a/src/StellaOps.Concelier.Source.CertBund/Internal/CertBundAdvisoryDto.cs b/src/StellaOps.Concelier.Connector.CertBund/Internal/CertBundAdvisoryDto.cs similarity index 97% rename from src/StellaOps.Concelier.Source.CertBund/Internal/CertBundAdvisoryDto.cs rename to src/StellaOps.Concelier.Connector.CertBund/Internal/CertBundAdvisoryDto.cs index f5d3c275..6ec62c7e 100644 --- a/src/StellaOps.Concelier.Source.CertBund/Internal/CertBundAdvisoryDto.cs +++ b/src/StellaOps.Concelier.Connector.CertBund/Internal/CertBundAdvisoryDto.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json.Serialization; -namespace StellaOps.Concelier.Source.CertBund.Internal; +namespace StellaOps.Concelier.Connector.CertBund.Internal; public sealed record CertBundAdvisoryDto { diff --git a/src/StellaOps.Concelier.Source.CertBund/Internal/CertBundCursor.cs b/src/StellaOps.Concelier.Connector.CertBund/Internal/CertBundCursor.cs similarity index 98% rename from src/StellaOps.Concelier.Source.CertBund/Internal/CertBundCursor.cs rename to src/StellaOps.Concelier.Connector.CertBund/Internal/CertBundCursor.cs index fc8bdca4..2bd39ad5 100644 --- a/src/StellaOps.Concelier.Source.CertBund/Internal/CertBundCursor.cs +++ b/src/StellaOps.Concelier.Connector.CertBund/Internal/CertBundCursor.cs @@ -2,7 +2,7 @@ using System; using System.Linq; using MongoDB.Bson; -namespace StellaOps.Concelier.Source.CertBund.Internal; +namespace StellaOps.Concelier.Connector.CertBund.Internal; internal sealed record CertBundCursor( IReadOnlyCollection PendingDocuments, diff --git a/src/StellaOps.Concelier.Source.CertBund/Internal/CertBundDetailParser.cs b/src/StellaOps.Concelier.Connector.CertBund/Internal/CertBundDetailParser.cs similarity index 96% rename from src/StellaOps.Concelier.Source.CertBund/Internal/CertBundDetailParser.cs rename to src/StellaOps.Concelier.Connector.CertBund/Internal/CertBundDetailParser.cs index b8f62019..0f713fdb 100644 --- a/src/StellaOps.Concelier.Source.CertBund/Internal/CertBundDetailParser.cs +++ b/src/StellaOps.Concelier.Connector.CertBund/Internal/CertBundDetailParser.cs @@ -3,9 +3,9 @@ using System.Collections.Generic; using System.Linq; using System.Text.Json; using System.Text.Json.Serialization; -using StellaOps.Concelier.Source.Common.Html; +using StellaOps.Concelier.Connector.Common.Html; -namespace StellaOps.Concelier.Source.CertBund.Internal; +namespace StellaOps.Concelier.Connector.CertBund.Internal; public sealed class CertBundDetailParser { diff --git a/src/StellaOps.Concelier.Source.CertBund/Internal/CertBundDetailResponse.cs b/src/StellaOps.Concelier.Connector.CertBund/Internal/CertBundDetailResponse.cs similarity index 96% rename from src/StellaOps.Concelier.Source.CertBund/Internal/CertBundDetailResponse.cs rename to src/StellaOps.Concelier.Connector.CertBund/Internal/CertBundDetailResponse.cs index 9b84df70..92676484 100644 --- a/src/StellaOps.Concelier.Source.CertBund/Internal/CertBundDetailResponse.cs +++ b/src/StellaOps.Concelier.Connector.CertBund/Internal/CertBundDetailResponse.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace StellaOps.Concelier.Source.CertBund.Internal; +namespace StellaOps.Concelier.Connector.CertBund.Internal; internal sealed record CertBundDetailResponse { diff --git a/src/StellaOps.Concelier.Source.CertBund/Internal/CertBundDiagnostics.cs b/src/StellaOps.Concelier.Connector.CertBund/Internal/CertBundDiagnostics.cs similarity index 98% rename from src/StellaOps.Concelier.Source.CertBund/Internal/CertBundDiagnostics.cs rename to src/StellaOps.Concelier.Connector.CertBund/Internal/CertBundDiagnostics.cs index 4a666409..03c0cf68 100644 --- a/src/StellaOps.Concelier.Source.CertBund/Internal/CertBundDiagnostics.cs +++ b/src/StellaOps.Concelier.Connector.CertBund/Internal/CertBundDiagnostics.cs @@ -2,14 +2,14 @@ using System; using System.Collections.Generic; using System.Diagnostics.Metrics; -namespace StellaOps.Concelier.Source.CertBund.Internal; +namespace StellaOps.Concelier.Connector.CertBund.Internal; /// /// Emits OpenTelemetry counters and histograms for the CERT-Bund connector. /// public sealed class CertBundDiagnostics : IDisposable { - private const string MeterName = "StellaOps.Concelier.Source.CertBund"; + private const string MeterName = "StellaOps.Concelier.Connector.CertBund"; private const string MeterVersion = "1.0.0"; private readonly Meter _meter; diff --git a/src/StellaOps.Concelier.Source.CertBund/Internal/CertBundDocumentMetadata.cs b/src/StellaOps.Concelier.Connector.CertBund/Internal/CertBundDocumentMetadata.cs similarity index 92% rename from src/StellaOps.Concelier.Source.CertBund/Internal/CertBundDocumentMetadata.cs rename to src/StellaOps.Concelier.Connector.CertBund/Internal/CertBundDocumentMetadata.cs index 084fdbff..26149696 100644 --- a/src/StellaOps.Concelier.Source.CertBund/Internal/CertBundDocumentMetadata.cs +++ b/src/StellaOps.Concelier.Connector.CertBund/Internal/CertBundDocumentMetadata.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -namespace StellaOps.Concelier.Source.CertBund.Internal; +namespace StellaOps.Concelier.Connector.CertBund.Internal; internal static class CertBundDocumentMetadata { diff --git a/src/StellaOps.Concelier.Source.CertBund/Internal/CertBundFeedClient.cs b/src/StellaOps.Concelier.Connector.CertBund/Internal/CertBundFeedClient.cs similarity index 97% rename from src/StellaOps.Concelier.Source.CertBund/Internal/CertBundFeedClient.cs rename to src/StellaOps.Concelier.Connector.CertBund/Internal/CertBundFeedClient.cs index 08a26b01..9641e051 100644 --- a/src/StellaOps.Concelier.Source.CertBund/Internal/CertBundFeedClient.cs +++ b/src/StellaOps.Concelier.Connector.CertBund/Internal/CertBundFeedClient.cs @@ -8,9 +8,9 @@ using System.Threading.Tasks; using System.Xml.Linq; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.CertBund.Configuration; +using StellaOps.Concelier.Connector.CertBund.Configuration; -namespace StellaOps.Concelier.Source.CertBund.Internal; +namespace StellaOps.Concelier.Connector.CertBund.Internal; public sealed class CertBundFeedClient { diff --git a/src/StellaOps.Concelier.Source.CertBund/Internal/CertBundFeedItem.cs b/src/StellaOps.Concelier.Connector.CertBund/Internal/CertBundFeedItem.cs similarity index 76% rename from src/StellaOps.Concelier.Source.CertBund/Internal/CertBundFeedItem.cs rename to src/StellaOps.Concelier.Connector.CertBund/Internal/CertBundFeedItem.cs index 8f197f2c..40eab8f0 100644 --- a/src/StellaOps.Concelier.Source.CertBund/Internal/CertBundFeedItem.cs +++ b/src/StellaOps.Concelier.Connector.CertBund/Internal/CertBundFeedItem.cs @@ -1,4 +1,4 @@ -namespace StellaOps.Concelier.Source.CertBund.Internal; +namespace StellaOps.Concelier.Connector.CertBund.Internal; using System; diff --git a/src/StellaOps.Concelier.Source.CertBund/Internal/CertBundMapper.cs b/src/StellaOps.Concelier.Connector.CertBund/Internal/CertBundMapper.cs similarity index 99% rename from src/StellaOps.Concelier.Source.CertBund/Internal/CertBundMapper.cs rename to src/StellaOps.Concelier.Connector.CertBund/Internal/CertBundMapper.cs index c9949fb3..540e9660 100644 --- a/src/StellaOps.Concelier.Source.CertBund/Internal/CertBundMapper.cs +++ b/src/StellaOps.Concelier.Connector.CertBund/Internal/CertBundMapper.cs @@ -4,7 +4,7 @@ using System.Linq; using StellaOps.Concelier.Models; using StellaOps.Concelier.Storage.Mongo.Documents; -namespace StellaOps.Concelier.Source.CertBund.Internal; +namespace StellaOps.Concelier.Connector.CertBund.Internal; internal static class CertBundMapper { diff --git a/src/StellaOps.Concelier.Source.CertBund/Jobs.cs b/src/StellaOps.Concelier.Connector.CertBund/Jobs.cs similarity index 92% rename from src/StellaOps.Concelier.Source.CertBund/Jobs.cs rename to src/StellaOps.Concelier.Connector.CertBund/Jobs.cs index 8832b232..bc4fd0c9 100644 --- a/src/StellaOps.Concelier.Source.CertBund/Jobs.cs +++ b/src/StellaOps.Concelier.Connector.CertBund/Jobs.cs @@ -3,7 +3,7 @@ using System.Threading; using System.Threading.Tasks; using StellaOps.Concelier.Core.Jobs; -namespace StellaOps.Concelier.Source.CertBund; +namespace StellaOps.Concelier.Connector.CertBund; internal static class CertBundJobKinds { diff --git a/src/StellaOps.Concelier.Source.CertBund/README.md b/src/StellaOps.Concelier.Connector.CertBund/README.md similarity index 97% rename from src/StellaOps.Concelier.Source.CertBund/README.md rename to src/StellaOps.Concelier.Connector.CertBund/README.md index 6c1c57aa..4553f4b2 100644 --- a/src/StellaOps.Concelier.Source.CertBund/README.md +++ b/src/StellaOps.Concelier.Connector.CertBund/README.md @@ -6,7 +6,7 @@ - **Detail API** – `https://wid.cert-bund.de/portal/api/securityadvisory?name=`. The connector reuses the bootstrapped `SocketsHttpHandler` so cookies and headers match the Angular SPA. Manual reproduction requires the same cookie container; otherwise the endpoint responds with the shell HTML document. ## Telemetry -The OpenTelemetry meter is `StellaOps.Concelier.Source.CertBund`. Key instruments: +The OpenTelemetry meter is `StellaOps.Concelier.Connector.CertBund`. Key instruments: | Metric | Type | Notes | | --- | --- | --- | diff --git a/src/StellaOps.Concelier.Source.CertBund/StellaOps.Concelier.Source.CertBund.csproj b/src/StellaOps.Concelier.Connector.CertBund/StellaOps.Concelier.Connector.CertBund.csproj similarity index 76% rename from src/StellaOps.Concelier.Source.CertBund/StellaOps.Concelier.Source.CertBund.csproj rename to src/StellaOps.Concelier.Connector.CertBund/StellaOps.Concelier.Connector.CertBund.csproj index c2c3e2fe..6ba1e732 100644 --- a/src/StellaOps.Concelier.Source.CertBund/StellaOps.Concelier.Source.CertBund.csproj +++ b/src/StellaOps.Concelier.Connector.CertBund/StellaOps.Concelier.Connector.CertBund.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/StellaOps.Concelier.Source.CertBund/TASKS.md b/src/StellaOps.Concelier.Connector.CertBund/TASKS.md similarity index 85% rename from src/StellaOps.Concelier.Source.CertBund/TASKS.md rename to src/StellaOps.Concelier.Connector.CertBund/TASKS.md index 1e446d34..7b0639d0 100644 --- a/src/StellaOps.Concelier.Source.CertBund/TASKS.md +++ b/src/StellaOps.Concelier.Connector.CertBund/TASKS.md @@ -5,8 +5,8 @@ |FEEDCONN-CERTBUND-02-002 Fetch job & state persistence|BE-Conn-CERTBUND|Source.Common, Storage.Mongo|**DONE (2025-10-14)** – `CertBundConnector.FetchAsync` consumes RSS via session-bootstrapped client, stores per-advisory JSON documents with metadata + SHA, throttles detail requests, and maintains cursor state (pending docs/mappings, known advisory IDs, last published).| |FEEDCONN-CERTBUND-02-003 Parser/DTO implementation|BE-Conn-CERTBUND|Source.Common|**DONE (2025-10-14)** – Detail JSON piped through `CertBundDetailParser` (raw DOM sanitised to HTML), capturing severity, CVEs, product list, and references into DTO records (`cert-bund.detail.v1`).| |FEEDCONN-CERTBUND-02-004 Canonical mapping & range primitives|BE-Conn-CERTBUND|Models|**DONE (2025-10-14)** – `CertBundMapper` emits canonical advisories (aliases, references, vendor package ranges, provenance) with severity normalisation and deterministic ordering.| -|FEEDCONN-CERTBUND-02-005 Regression fixtures & tests|QA|Testing|**DONE (2025-10-14)** – Added `StellaOps.Concelier.Source.CertBund.Tests` covering fetch→parse→map against canned RSS/JSON fixtures; integration harness uses Mongo2Go + canned HTTP handler; fixtures regenerate via `UPDATE_CERTBUND_FIXTURES=1`.| -|FEEDCONN-CERTBUND-02-006 Telemetry & documentation|DevEx|Docs|**DONE (2025-10-15)** – Added `CertBundDiagnostics` (meter `StellaOps.Concelier.Source.CertBund`) with fetch/parse/map counters + histograms, recorded coverage days, wired stage summary logs, and published the ops runbook (`docs/ops/concelier-certbund-operations.md`).| +|FEEDCONN-CERTBUND-02-005 Regression fixtures & tests|QA|Testing|**DONE (2025-10-14)** – Added `StellaOps.Concelier.Connector.CertBund.Tests` covering fetch→parse→map against canned RSS/JSON fixtures; integration harness uses Mongo2Go + canned HTTP handler; fixtures regenerate via `UPDATE_CERTBUND_FIXTURES=1`.| +|FEEDCONN-CERTBUND-02-006 Telemetry & documentation|DevEx|Docs|**DONE (2025-10-15)** – Added `CertBundDiagnostics` (meter `StellaOps.Concelier.Connector.CertBund`) with fetch/parse/map counters + histograms, recorded coverage days, wired stage summary logs, and published the ops runbook (`docs/ops/concelier-certbund-operations.md`).| |FEEDCONN-CERTBUND-02-007 Feed history & locale assessment|BE-Conn-CERTBUND|Research|**DONE (2025-10-15)** – Measured RSS retention (~6 days/≈250 items), captured connector-driven backfill guidance in the runbook, and aligned locale guidance (preserve `language=de`, Docs glossary follow-up). **Next:** coordinate with Tools to land the state-seeding helper so scripted backfills replace manual Mongo tweaks.| |FEEDCONN-CERTBUND-02-008 Session bootstrap & cookie strategy|BE-Conn-CERTBUND|Source.Common|**DONE (2025-10-14)** – Feed client primes the portal session (cookie container via `SocketsHttpHandler`), shares cookies across detail requests, and documents bootstrap behaviour in options (`PortalBootstrapUri`).| |FEEDCONN-CERTBUND-02-009 Offline Kit export packaging|BE-Conn-CERTBUND, Docs|Offline Kit|**DONE (2025-10-17)** – Added `tools/certbund_offline_snapshot.py` to capture search/export JSON, emit deterministic manifests + SHA files, and refreshed docs (`docs/ops/concelier-certbund-operations.md`, `docs/24_OFFLINE_KIT.md`) with offline-kit instructions and manifest layout guidance. Seed data README/ignore rules cover local snapshot hygiene.| diff --git a/src/StellaOps.Concelier.Source.CertCc.Tests/CertCc/CertCcConnectorFetchTests.cs b/src/StellaOps.Concelier.Connector.CertCc.Tests/CertCc/CertCcConnectorFetchTests.cs similarity index 95% rename from src/StellaOps.Concelier.Source.CertCc.Tests/CertCc/CertCcConnectorFetchTests.cs rename to src/StellaOps.Concelier.Connector.CertCc.Tests/CertCc/CertCcConnectorFetchTests.cs index 6bc2d61c..32256485 100644 --- a/src/StellaOps.Concelier.Source.CertCc.Tests/CertCc/CertCcConnectorFetchTests.cs +++ b/src/StellaOps.Concelier.Connector.CertCc.Tests/CertCc/CertCcConnectorFetchTests.cs @@ -10,19 +10,19 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Time.Testing; using MongoDB.Bson; -using StellaOps.Concelier.Source.CertCc; -using StellaOps.Concelier.Source.CertCc.Configuration; -using StellaOps.Concelier.Source.CertCc.Internal; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Common.Cursors; -using StellaOps.Concelier.Source.Common.Testing; +using StellaOps.Concelier.Connector.CertCc; +using StellaOps.Concelier.Connector.CertCc.Configuration; +using StellaOps.Concelier.Connector.CertCc.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Common.Cursors; +using StellaOps.Concelier.Connector.Common.Testing; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Testing; using Xunit; -namespace StellaOps.Concelier.Source.CertCc.Tests.CertCc; +namespace StellaOps.Concelier.Connector.CertCc.Tests.CertCc; [Collection("mongo-fixture")] public sealed class CertCcConnectorFetchTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.CertCc.Tests/CertCc/CertCcConnectorSnapshotTests.cs b/src/StellaOps.Concelier.Connector.CertCc.Tests/CertCc/CertCcConnectorSnapshotTests.cs similarity index 97% rename from src/StellaOps.Concelier.Source.CertCc.Tests/CertCc/CertCcConnectorSnapshotTests.cs rename to src/StellaOps.Concelier.Connector.CertCc.Tests/CertCc/CertCcConnectorSnapshotTests.cs index bb665ddf..6a9f69fc 100644 --- a/src/StellaOps.Concelier.Source.CertCc.Tests/CertCc/CertCcConnectorSnapshotTests.cs +++ b/src/StellaOps.Concelier.Connector.CertCc.Tests/CertCc/CertCcConnectorSnapshotTests.cs @@ -16,19 +16,19 @@ using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Time.Testing; using MongoDB.Bson; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.CertCc; -using StellaOps.Concelier.Source.CertCc.Configuration; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Cursors; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Common.Testing; +using StellaOps.Concelier.Connector.CertCc; +using StellaOps.Concelier.Connector.CertCc.Configuration; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Cursors; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Common.Testing; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Testing; using Xunit; -namespace StellaOps.Concelier.Source.CertCc.Tests.CertCc; +namespace StellaOps.Concelier.Connector.CertCc.Tests.CertCc; [Collection("mongo-fixture")] public sealed class CertCcConnectorSnapshotTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.CertCc.Tests/CertCc/CertCcConnectorTests.cs b/src/StellaOps.Concelier.Connector.CertCc.Tests/CertCc/CertCcConnectorTests.cs similarity index 98% rename from src/StellaOps.Concelier.Source.CertCc.Tests/CertCc/CertCcConnectorTests.cs rename to src/StellaOps.Concelier.Connector.CertCc.Tests/CertCc/CertCcConnectorTests.cs index 1fd06a0c..6a8ed2cd 100644 --- a/src/StellaOps.Concelier.Source.CertCc.Tests/CertCc/CertCcConnectorTests.cs +++ b/src/StellaOps.Concelier.Connector.CertCc.Tests/CertCc/CertCcConnectorTests.cs @@ -15,19 +15,19 @@ using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Time.Testing; using MongoDB.Bson; using MongoDB.Driver; -using StellaOps.Concelier.Source.CertCc; -using StellaOps.Concelier.Source.CertCc.Configuration; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Cursors; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Common.Testing; +using StellaOps.Concelier.Connector.CertCc; +using StellaOps.Concelier.Connector.CertCc.Configuration; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Cursors; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Common.Testing; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Testing; using Xunit; -namespace StellaOps.Concelier.Source.CertCc.Tests.CertCc; +namespace StellaOps.Concelier.Connector.CertCc.Tests.CertCc; [Collection("mongo-fixture")] public sealed class CertCcConnectorTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/certcc-advisories.snapshot.json b/src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/certcc-advisories.snapshot.json similarity index 100% rename from src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/certcc-advisories.snapshot.json rename to src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/certcc-advisories.snapshot.json diff --git a/src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/certcc-documents.snapshot.json b/src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/certcc-documents.snapshot.json similarity index 100% rename from src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/certcc-documents.snapshot.json rename to src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/certcc-documents.snapshot.json diff --git a/src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/certcc-requests.snapshot.json b/src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/certcc-requests.snapshot.json similarity index 100% rename from src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/certcc-requests.snapshot.json rename to src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/certcc-requests.snapshot.json diff --git a/src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/certcc-state.snapshot.json b/src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/certcc-state.snapshot.json similarity index 100% rename from src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/certcc-state.snapshot.json rename to src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/certcc-state.snapshot.json diff --git a/src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/summary-2025-09.json b/src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/summary-2025-09.json similarity index 100% rename from src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/summary-2025-09.json rename to src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/summary-2025-09.json diff --git a/src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/summary-2025-10.json b/src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/summary-2025-10.json similarity index 100% rename from src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/summary-2025-10.json rename to src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/summary-2025-10.json diff --git a/src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/summary-2025-11.json b/src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/summary-2025-11.json similarity index 100% rename from src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/summary-2025-11.json rename to src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/summary-2025-11.json diff --git a/src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/summary-2025.json b/src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/summary-2025.json similarity index 100% rename from src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/summary-2025.json rename to src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/summary-2025.json diff --git a/src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/vendor-statuses-294418.json b/src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/vendor-statuses-294418.json similarity index 100% rename from src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/vendor-statuses-294418.json rename to src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/vendor-statuses-294418.json diff --git a/src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/vendors-294418.json b/src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/vendors-294418.json similarity index 100% rename from src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/vendors-294418.json rename to src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/vendors-294418.json diff --git a/src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/vu-257161.json b/src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/vu-257161.json similarity index 100% rename from src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/vu-257161.json rename to src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/vu-257161.json diff --git a/src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/vu-294418-vendors.json b/src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/vu-294418-vendors.json similarity index 100% rename from src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/vu-294418-vendors.json rename to src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/vu-294418-vendors.json diff --git a/src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/vu-294418-vuls.json b/src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/vu-294418-vuls.json similarity index 100% rename from src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/vu-294418-vuls.json rename to src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/vu-294418-vuls.json diff --git a/src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/vu-294418.json b/src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/vu-294418.json similarity index 100% rename from src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/vu-294418.json rename to src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/vu-294418.json diff --git a/src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/vulnerabilities-294418.json b/src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/vulnerabilities-294418.json similarity index 100% rename from src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/vulnerabilities-294418.json rename to src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/vulnerabilities-294418.json diff --git a/src/StellaOps.Concelier.Source.CertCc.Tests/Internal/CertCcMapperTests.cs b/src/StellaOps.Concelier.Connector.CertCc.Tests/Internal/CertCcMapperTests.cs similarity index 97% rename from src/StellaOps.Concelier.Source.CertCc.Tests/Internal/CertCcMapperTests.cs rename to src/StellaOps.Concelier.Connector.CertCc.Tests/Internal/CertCcMapperTests.cs index aa48284d..bff9d5d6 100644 --- a/src/StellaOps.Concelier.Source.CertCc.Tests/Internal/CertCcMapperTests.cs +++ b/src/StellaOps.Concelier.Connector.CertCc.Tests/Internal/CertCcMapperTests.cs @@ -2,12 +2,12 @@ using System; using System.Globalization; using MongoDB.Bson; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.CertCc.Internal; +using StellaOps.Concelier.Connector.CertCc.Internal; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using Xunit; -namespace StellaOps.Concelier.Source.CertCc.Tests.Internal; +namespace StellaOps.Concelier.Connector.CertCc.Tests.Internal; public sealed class CertCcMapperTests { diff --git a/src/StellaOps.Concelier.Source.CertCc.Tests/Internal/CertCcSummaryParserTests.cs b/src/StellaOps.Concelier.Connector.CertCc.Tests/Internal/CertCcSummaryParserTests.cs similarity index 93% rename from src/StellaOps.Concelier.Source.CertCc.Tests/Internal/CertCcSummaryParserTests.cs rename to src/StellaOps.Concelier.Connector.CertCc.Tests/Internal/CertCcSummaryParserTests.cs index 91c6efac..9848d72c 100644 --- a/src/StellaOps.Concelier.Source.CertCc.Tests/Internal/CertCcSummaryParserTests.cs +++ b/src/StellaOps.Concelier.Connector.CertCc.Tests/Internal/CertCcSummaryParserTests.cs @@ -1,9 +1,9 @@ using System.Text; using System.Text.Json; -using StellaOps.Concelier.Source.CertCc.Internal; +using StellaOps.Concelier.Connector.CertCc.Internal; using Xunit; -namespace StellaOps.Concelier.Source.CertCc.Tests.Internal; +namespace StellaOps.Concelier.Connector.CertCc.Tests.Internal; public sealed class CertCcSummaryParserTests { diff --git a/src/StellaOps.Concelier.Source.CertCc.Tests/Internal/CertCcSummaryPlannerTests.cs b/src/StellaOps.Concelier.Connector.CertCc.Tests/Internal/CertCcSummaryPlannerTests.cs similarity index 93% rename from src/StellaOps.Concelier.Source.CertCc.Tests/Internal/CertCcSummaryPlannerTests.cs rename to src/StellaOps.Concelier.Connector.CertCc.Tests/Internal/CertCcSummaryPlannerTests.cs index 61daa0b3..7e800658 100644 --- a/src/StellaOps.Concelier.Source.CertCc.Tests/Internal/CertCcSummaryPlannerTests.cs +++ b/src/StellaOps.Concelier.Connector.CertCc.Tests/Internal/CertCcSummaryPlannerTests.cs @@ -1,12 +1,12 @@ using System; using System.Linq; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.CertCc.Configuration; -using StellaOps.Concelier.Source.CertCc.Internal; -using StellaOps.Concelier.Source.Common.Cursors; +using StellaOps.Concelier.Connector.CertCc.Configuration; +using StellaOps.Concelier.Connector.CertCc.Internal; +using StellaOps.Concelier.Connector.Common.Cursors; using Xunit; -namespace StellaOps.Concelier.Source.CertCc.Tests.Internal; +namespace StellaOps.Concelier.Connector.CertCc.Tests.Internal; public sealed class CertCcSummaryPlannerTests { diff --git a/src/StellaOps.Concelier.Source.CertCc.Tests/Internal/CertCcVendorStatementParserTests.cs b/src/StellaOps.Concelier.Connector.CertCc.Tests/Internal/CertCcVendorStatementParserTests.cs similarity index 88% rename from src/StellaOps.Concelier.Source.CertCc.Tests/Internal/CertCcVendorStatementParserTests.cs rename to src/StellaOps.Concelier.Connector.CertCc.Tests/Internal/CertCcVendorStatementParserTests.cs index 98e2d283..da014adf 100644 --- a/src/StellaOps.Concelier.Source.CertCc.Tests/Internal/CertCcVendorStatementParserTests.cs +++ b/src/StellaOps.Concelier.Connector.CertCc.Tests/Internal/CertCcVendorStatementParserTests.cs @@ -1,8 +1,8 @@ using System.Linq; -using StellaOps.Concelier.Source.CertCc.Internal; +using StellaOps.Concelier.Connector.CertCc.Internal; using Xunit; -namespace StellaOps.Concelier.Source.CertCc.Tests.Internal; +namespace StellaOps.Concelier.Connector.CertCc.Tests.Internal; public sealed class CertCcVendorStatementParserTests { diff --git a/src/StellaOps.Concelier.Source.Cccs.Tests/StellaOps.Concelier.Source.Cccs.Tests.csproj b/src/StellaOps.Concelier.Connector.CertCc.Tests/StellaOps.Concelier.Connector.CertCc.Tests.csproj similarity index 66% rename from src/StellaOps.Concelier.Source.Cccs.Tests/StellaOps.Concelier.Source.Cccs.Tests.csproj rename to src/StellaOps.Concelier.Connector.CertCc.Tests/StellaOps.Concelier.Connector.CertCc.Tests.csproj index 7c032179..853c8ee0 100644 --- a/src/StellaOps.Concelier.Source.Cccs.Tests/StellaOps.Concelier.Source.Cccs.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.CertCc.Tests/StellaOps.Concelier.Connector.CertCc.Tests.csproj @@ -5,8 +5,8 @@ enable - - + + diff --git a/src/StellaOps.Concelier.Source.CertCc/AGENTS.md b/src/StellaOps.Concelier.Connector.CertCc/AGENTS.md similarity index 94% rename from src/StellaOps.Concelier.Source.CertCc/AGENTS.md rename to src/StellaOps.Concelier.Connector.CertCc/AGENTS.md index 621f2fe7..e750d321 100644 --- a/src/StellaOps.Concelier.Source.CertCc/AGENTS.md +++ b/src/StellaOps.Concelier.Connector.CertCc/AGENTS.md @@ -33,6 +33,6 @@ Out of scope: - Respect upstream throttling via retry/backoff. ## Tests -- Add `StellaOps.Concelier.Source.CertCc.Tests` to cover fetch/parse/map with canned fixtures. +- Add `StellaOps.Concelier.Connector.CertCc.Tests` to cover fetch/parse/map with canned fixtures. - Snapshot canonical advisories and support UPDATE flag for regeneration. - Ensure deterministic ordering and timestamp normalisation. diff --git a/src/StellaOps.Concelier.Source.CertCc/CertCcConnector.cs b/src/StellaOps.Concelier.Connector.CertCc/CertCcConnector.cs similarity index 99% rename from src/StellaOps.Concelier.Source.CertCc/CertCcConnector.cs rename to src/StellaOps.Concelier.Connector.CertCc/CertCcConnector.cs index a6cd55a9..1ebc851a 100644 --- a/src/StellaOps.Concelier.Source.CertCc/CertCcConnector.cs +++ b/src/StellaOps.Concelier.Connector.CertCc/CertCcConnector.cs @@ -11,17 +11,17 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using MongoDB.Bson; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.CertCc.Configuration; -using StellaOps.Concelier.Source.CertCc.Internal; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; +using StellaOps.Concelier.Connector.CertCc.Configuration; +using StellaOps.Concelier.Connector.CertCc.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.CertCc; +namespace StellaOps.Concelier.Connector.CertCc; public sealed class CertCcConnector : IFeedConnector { diff --git a/src/StellaOps.Concelier.Source.CertCc/CertCcConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.CertCc/CertCcConnectorPlugin.cs similarity index 91% rename from src/StellaOps.Concelier.Source.CertCc/CertCcConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.CertCc/CertCcConnectorPlugin.cs index bb229e6b..3dd78ad0 100644 --- a/src/StellaOps.Concelier.Source.CertCc/CertCcConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.CertCc/CertCcConnectorPlugin.cs @@ -2,7 +2,7 @@ using System; using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.CertCc; +namespace StellaOps.Concelier.Connector.CertCc; public sealed class CertCcConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.CertCc/CertCcDependencyInjectionRoutine.cs b/src/StellaOps.Concelier.Connector.CertCc/CertCcDependencyInjectionRoutine.cs similarity index 93% rename from src/StellaOps.Concelier.Source.CertCc/CertCcDependencyInjectionRoutine.cs rename to src/StellaOps.Concelier.Connector.CertCc/CertCcDependencyInjectionRoutine.cs index 7a03ff72..8cc6cf3b 100644 --- a/src/StellaOps.Concelier.Source.CertCc/CertCcDependencyInjectionRoutine.cs +++ b/src/StellaOps.Concelier.Connector.CertCc/CertCcDependencyInjectionRoutine.cs @@ -3,9 +3,9 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using StellaOps.DependencyInjection; using StellaOps.Concelier.Core.Jobs; -using StellaOps.Concelier.Source.CertCc.Configuration; +using StellaOps.Concelier.Connector.CertCc.Configuration; -namespace StellaOps.Concelier.Source.CertCc; +namespace StellaOps.Concelier.Connector.CertCc; public sealed class CertCcDependencyInjectionRoutine : IDependencyInjectionRoutine { diff --git a/src/StellaOps.Concelier.Source.CertCc/CertCcServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.CertCc/CertCcServiceCollectionExtensions.cs similarity index 86% rename from src/StellaOps.Concelier.Source.CertCc/CertCcServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.CertCc/CertCcServiceCollectionExtensions.cs index 32b4e5cb..23fbff3e 100644 --- a/src/StellaOps.Concelier.Source.CertCc/CertCcServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.CertCc/CertCcServiceCollectionExtensions.cs @@ -2,11 +2,11 @@ using System; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.CertCc.Configuration; -using StellaOps.Concelier.Source.CertCc.Internal; -using StellaOps.Concelier.Source.Common.Http; +using StellaOps.Concelier.Connector.CertCc.Configuration; +using StellaOps.Concelier.Connector.CertCc.Internal; +using StellaOps.Concelier.Connector.Common.Http; -namespace StellaOps.Concelier.Source.CertCc; +namespace StellaOps.Concelier.Connector.CertCc; public static class CertCcServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Source.CertCc/Configuration/CertCcOptions.cs b/src/StellaOps.Concelier.Connector.CertCc/Configuration/CertCcOptions.cs similarity index 95% rename from src/StellaOps.Concelier.Source.CertCc/Configuration/CertCcOptions.cs rename to src/StellaOps.Concelier.Connector.CertCc/Configuration/CertCcOptions.cs index e969d786..ff36ddc7 100644 --- a/src/StellaOps.Concelier.Source.CertCc/Configuration/CertCcOptions.cs +++ b/src/StellaOps.Concelier.Connector.CertCc/Configuration/CertCcOptions.cs @@ -1,7 +1,7 @@ using System; -using StellaOps.Concelier.Source.Common.Cursors; +using StellaOps.Concelier.Connector.Common.Cursors; -namespace StellaOps.Concelier.Source.CertCc.Configuration; +namespace StellaOps.Concelier.Connector.CertCc.Configuration; /// /// Connector options governing CERT/CC fetch cadence and API endpoints. diff --git a/src/StellaOps.Concelier.Source.CertCc/FEEDCONN-CERTCC-02-009_PLAN.md b/src/StellaOps.Concelier.Connector.CertCc/FEEDCONN-CERTCC-02-009_PLAN.md similarity index 90% rename from src/StellaOps.Concelier.Source.CertCc/FEEDCONN-CERTCC-02-009_PLAN.md rename to src/StellaOps.Concelier.Connector.CertCc/FEEDCONN-CERTCC-02-009_PLAN.md index 0e619fbd..a15f9fa6 100644 --- a/src/StellaOps.Concelier.Source.CertCc/FEEDCONN-CERTCC-02-009_PLAN.md +++ b/src/StellaOps.Concelier.Connector.CertCc/FEEDCONN-CERTCC-02-009_PLAN.md @@ -25,7 +25,7 @@ | Phase | Window (UTC) | Actions | Success Signals | Rollback | |-------|--------------|---------|-----------------|----------| -| **0 – Pre-flight validation** | 2025-10-11 → 2025-10-12 | • Finish FEEDCONN-CERTCC-02-007 harness fixes and regenerate fixtures.
• Run `dotnet test src/StellaOps.Concelier.Source.CertCc.Tests` with `UPDATE_CERTCC_FIXTURES=0` to confirm deterministic baselines.
• Generate sample advisory batch (`dotnet test … --filter SnapshotSmoke`) and deliver JSON diff to Merge for schema verification (`normalizedVersions[].scheme == certcc.vendor`, provenance masks populated). | • Harness tests green locally and in CI.
• Merge sign-off that sample advisories conform to `FASTER_MODELING_AND_NORMALIZATION.md`. | N/A (no production enablement yet). | +| **0 – Pre-flight validation** | 2025-10-11 → 2025-10-12 | • Finish FEEDCONN-CERTCC-02-007 harness fixes and regenerate fixtures.
• Run `dotnet test src/StellaOps.Concelier.Connector.CertCc.Tests` with `UPDATE_CERTCC_FIXTURES=0` to confirm deterministic baselines.
• Generate sample advisory batch (`dotnet test … --filter SnapshotSmoke`) and deliver JSON diff to Merge for schema verification (`normalizedVersions[].scheme == certcc.vendor`, provenance masks populated). | • Harness tests green locally and in CI.
• Merge sign-off that sample advisories conform to `FASTER_MODELING_AND_NORMALIZATION.md`. | N/A (no production enablement yet). | | **1 – Shadow parse/map in staging** | Target start 2025-10-13 | • Register `source:cert-cc:parse` and `source:cert-cc:map` jobs, but gate them behind new config flag `concelier:sources:cert-cc:enableDetailMapping` (default `false`).
• Deploy (restart required for options rebinding), enable flag, and point connector at staging Mongo with isolated collection (`advisories_certcc_shadow`).
• Run connector for ≥2 cycles; compare advisory counts vs. fetch-only baseline and validate `concelier.range.primitives` metrics include `scheme=certcc.vendor`. | • No uncaught exceptions in staging logs.
• Shadow advisories match expected vendor counts (±5%).
• `certcc.summary.fetch.*` + new `certcc.map.duration.ms` metrics stable. | Disable flag; staging returns to fetch-only. No production impact. | | **2 – Controlled production enablement** | Target start 2025-10-14 | • Redeploy production with flag enabled, start with job concurrency `1`, and reduce `MaxNotesPerFetch` to 5 for first 24 h.
• Observe metrics dashboards hourly (fetch/map latency, pending queues, Mongo write throughput).
• QA to replay latest snapshots and confirm no deterministic drift.
• Publish advisory sample (top 10 changed docs) to Merge Slack channel for validation. | • Pending parse/mapping queues drain within expected SLA (<30 min).
• No increase in merge dedupe anomalies.
• Mongo writes stay within 10% of baseline. | Toggle flag off, re-run fetch-only. Clear `pendingMappings` via connector cursor reset if stuck. | | **3 – Full production & cleanup** | Target start 2025-10-15 | • Restore `MaxNotesPerFetch` to configured default (20).
• Remove temporary throttles and leave flag enabled by default.
• Update `README.md` rollout notes; close FEEDCONN-CERTCC-02-009.
• Kick off post-merge audit with Merge to ensure new advisories dedupe with other sources. | • Stable operations for ≥48 h, no degradation alerts.
• Merge confirms conflict resolver behaviour unchanged. | If regression detected, revert to Phase 2 state or disable jobs; retain plan for reuse. | @@ -56,4 +56,4 @@ - [ ] Decide if CSAF endpoint ingestion (optional) should piggyback on Phase 3 or stay deferred. - [ ] Validate that FEEDCONN-CERTCC-02-010 coverage handles mixed 200/404 VINCE endpoints during partial outages. -Once Dependencies (Section 2) are cleared and Phase 3 completes, update `src/StellaOps.Concelier.Source.CertCc/TASKS.md` and close FEEDCONN-CERTCC-02-009. +Once Dependencies (Section 2) are cleared and Phase 3 completes, update `src/StellaOps.Concelier.Connector.CertCc/TASKS.md` and close FEEDCONN-CERTCC-02-009. diff --git a/src/StellaOps.Concelier.Connector.CertCc/FEEDCONN-CERTCC-02-012_HANDOFF.md b/src/StellaOps.Concelier.Connector.CertCc/FEEDCONN-CERTCC-02-012_HANDOFF.md new file mode 100644 index 00000000..1c2b414d --- /dev/null +++ b/src/StellaOps.Concelier.Connector.CertCc/FEEDCONN-CERTCC-02-012_HANDOFF.md @@ -0,0 +1,20 @@ +# FEEDCONN-CERTCC-02-012 – Schema Sync & Snapshot Regeneration + +## Summary +- Re-ran `StellaOps.Concelier.Connector.CertCc.Tests` with `UPDATE_CERTCC_FIXTURES=1`; fixtures now capture SemVer-style normalized versions (`scheme=certcc.vendor`) and `provenance.decisionReason` values emitted by the mapper. +- Recorded HTTP request ordering is persisted in `certcc-requests.snapshot.json` to keep Merge aware of the deterministic fetch plan. +- Advisories snapshot (`certcc-advisories.snapshot.json`) reflects the dual-write storage changes (normalized versions + provenance) introduced by FEEDMODELS-SCHEMA-* and FEEDSTORAGE-DATA-*. + +## Artifacts +- `src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/certcc-advisories.snapshot.json` +- `src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/certcc-documents.snapshot.json` +- `src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/certcc-requests.snapshot.json` +- `src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/certcc-state.snapshot.json` + +## Validation steps +```bash +dotnet test src/StellaOps.Concelier.Connector.CertCc.Tests +UPDATE_CERTCC_FIXTURES=1 dotnet test src/StellaOps.Concelier.Connector.CertCc.Tests +``` + +The first command verifies deterministic behavior; the second regenerates fixtures if a future schema change occurs. Share the four snapshot files above with Merge for their backfill diff. diff --git a/src/StellaOps.Concelier.Source.CertCc/Internal/CertCcCursor.cs b/src/StellaOps.Concelier.Connector.CertCc/Internal/CertCcCursor.cs similarity index 98% rename from src/StellaOps.Concelier.Source.CertCc/Internal/CertCcCursor.cs rename to src/StellaOps.Concelier.Connector.CertCc/Internal/CertCcCursor.cs index 075a774c..809adb7d 100644 --- a/src/StellaOps.Concelier.Source.CertCc/Internal/CertCcCursor.cs +++ b/src/StellaOps.Concelier.Connector.CertCc/Internal/CertCcCursor.cs @@ -1,7 +1,7 @@ using MongoDB.Bson; -using StellaOps.Concelier.Source.Common.Cursors; +using StellaOps.Concelier.Connector.Common.Cursors; -namespace StellaOps.Concelier.Source.CertCc.Internal; +namespace StellaOps.Concelier.Connector.CertCc.Internal; internal sealed record CertCcCursor( TimeWindowCursorState SummaryState, diff --git a/src/StellaOps.Concelier.Source.CertCc/Internal/CertCcDiagnostics.cs b/src/StellaOps.Concelier.Connector.CertCc/Internal/CertCcDiagnostics.cs similarity index 97% rename from src/StellaOps.Concelier.Source.CertCc/Internal/CertCcDiagnostics.cs rename to src/StellaOps.Concelier.Connector.CertCc/Internal/CertCcDiagnostics.cs index c11bc0bd..7b4bab34 100644 --- a/src/StellaOps.Concelier.Source.CertCc/Internal/CertCcDiagnostics.cs +++ b/src/StellaOps.Concelier.Connector.CertCc/Internal/CertCcDiagnostics.cs @@ -1,16 +1,16 @@ using System; using System.Collections.Generic; using System.Diagnostics.Metrics; -using StellaOps.Concelier.Source.Common.Cursors; +using StellaOps.Concelier.Connector.Common.Cursors; -namespace StellaOps.Concelier.Source.CertCc.Internal; +namespace StellaOps.Concelier.Connector.CertCc.Internal; /// /// Emits CERT/CC-specific telemetry for summary planning and fetch activity. /// public sealed class CertCcDiagnostics : IDisposable { - private const string MeterName = "StellaOps.Concelier.Source.CertCc"; + private const string MeterName = "StellaOps.Concelier.Connector.CertCc"; private const string MeterVersion = "1.0.0"; private readonly Meter _meter; diff --git a/src/StellaOps.Concelier.Source.CertCc/Internal/CertCcMapper.cs b/src/StellaOps.Concelier.Connector.CertCc/Internal/CertCcMapper.cs similarity index 99% rename from src/StellaOps.Concelier.Source.CertCc/Internal/CertCcMapper.cs rename to src/StellaOps.Concelier.Connector.CertCc/Internal/CertCcMapper.cs index f971d190..f58d051a 100644 --- a/src/StellaOps.Concelier.Source.CertCc/Internal/CertCcMapper.cs +++ b/src/StellaOps.Concelier.Connector.CertCc/Internal/CertCcMapper.cs @@ -8,7 +8,7 @@ using StellaOps.Concelier.Models; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; -namespace StellaOps.Concelier.Source.CertCc.Internal; +namespace StellaOps.Concelier.Connector.CertCc.Internal; internal static class CertCcMapper { diff --git a/src/StellaOps.Concelier.Source.CertCc/Internal/CertCcNoteDto.cs b/src/StellaOps.Concelier.Connector.CertCc/Internal/CertCcNoteDto.cs similarity index 97% rename from src/StellaOps.Concelier.Source.CertCc/Internal/CertCcNoteDto.cs rename to src/StellaOps.Concelier.Connector.CertCc/Internal/CertCcNoteDto.cs index 52aaa117..faed5cbb 100644 --- a/src/StellaOps.Concelier.Source.CertCc/Internal/CertCcNoteDto.cs +++ b/src/StellaOps.Concelier.Connector.CertCc/Internal/CertCcNoteDto.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -namespace StellaOps.Concelier.Source.CertCc.Internal; +namespace StellaOps.Concelier.Connector.CertCc.Internal; internal sealed record CertCcNoteDto( CertCcNoteMetadata Metadata, diff --git a/src/StellaOps.Concelier.Source.CertCc/Internal/CertCcNoteParser.cs b/src/StellaOps.Concelier.Connector.CertCc/Internal/CertCcNoteParser.cs similarity index 99% rename from src/StellaOps.Concelier.Source.CertCc/Internal/CertCcNoteParser.cs rename to src/StellaOps.Concelier.Connector.CertCc/Internal/CertCcNoteParser.cs index 5f807189..6a5bb199 100644 --- a/src/StellaOps.Concelier.Source.CertCc/Internal/CertCcNoteParser.cs +++ b/src/StellaOps.Concelier.Connector.CertCc/Internal/CertCcNoteParser.cs @@ -8,10 +8,10 @@ using System.Text; using System.Text.Json; using System.Text.RegularExpressions; using Markdig; -using StellaOps.Concelier.Source.Common.Html; -using StellaOps.Concelier.Source.Common.Url; +using StellaOps.Concelier.Connector.Common.Html; +using StellaOps.Concelier.Connector.Common.Url; -namespace StellaOps.Concelier.Source.CertCc.Internal; +namespace StellaOps.Concelier.Connector.CertCc.Internal; internal static class CertCcNoteParser { diff --git a/src/StellaOps.Concelier.Source.CertCc/Internal/CertCcSummaryParser.cs b/src/StellaOps.Concelier.Connector.CertCc/Internal/CertCcSummaryParser.cs similarity index 98% rename from src/StellaOps.Concelier.Source.CertCc/Internal/CertCcSummaryParser.cs rename to src/StellaOps.Concelier.Connector.CertCc/Internal/CertCcSummaryParser.cs index 77867790..6a2a3505 100644 --- a/src/StellaOps.Concelier.Source.CertCc/Internal/CertCcSummaryParser.cs +++ b/src/StellaOps.Concelier.Connector.CertCc/Internal/CertCcSummaryParser.cs @@ -4,7 +4,7 @@ using System.Globalization; using System.Linq; using System.Text.Json; -namespace StellaOps.Concelier.Source.CertCc.Internal; +namespace StellaOps.Concelier.Connector.CertCc.Internal; internal static class CertCcSummaryParser { diff --git a/src/StellaOps.Concelier.Source.CertCc/Internal/CertCcSummaryPlan.cs b/src/StellaOps.Concelier.Connector.CertCc/Internal/CertCcSummaryPlan.cs similarity index 77% rename from src/StellaOps.Concelier.Source.CertCc/Internal/CertCcSummaryPlan.cs rename to src/StellaOps.Concelier.Connector.CertCc/Internal/CertCcSummaryPlan.cs index ee149c14..535b097e 100644 --- a/src/StellaOps.Concelier.Source.CertCc/Internal/CertCcSummaryPlan.cs +++ b/src/StellaOps.Concelier.Connector.CertCc/Internal/CertCcSummaryPlan.cs @@ -1,8 +1,8 @@ using System; using System.Collections.Generic; -using StellaOps.Concelier.Source.Common.Cursors; +using StellaOps.Concelier.Connector.Common.Cursors; -namespace StellaOps.Concelier.Source.CertCc.Internal; +namespace StellaOps.Concelier.Connector.CertCc.Internal; public sealed record CertCcSummaryPlan( TimeWindow Window, diff --git a/src/StellaOps.Concelier.Source.CertCc/Internal/CertCcSummaryPlanner.cs b/src/StellaOps.Concelier.Connector.CertCc/Internal/CertCcSummaryPlanner.cs similarity index 94% rename from src/StellaOps.Concelier.Source.CertCc/Internal/CertCcSummaryPlanner.cs rename to src/StellaOps.Concelier.Connector.CertCc/Internal/CertCcSummaryPlanner.cs index b2398f28..ec102b30 100644 --- a/src/StellaOps.Concelier.Source.CertCc/Internal/CertCcSummaryPlanner.cs +++ b/src/StellaOps.Concelier.Connector.CertCc/Internal/CertCcSummaryPlanner.cs @@ -2,10 +2,10 @@ using System; using System.Collections.Generic; using System.Linq; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.CertCc.Configuration; -using StellaOps.Concelier.Source.Common.Cursors; +using StellaOps.Concelier.Connector.CertCc.Configuration; +using StellaOps.Concelier.Connector.Common.Cursors; -namespace StellaOps.Concelier.Source.CertCc.Internal; +namespace StellaOps.Concelier.Connector.CertCc.Internal; /// /// Computes which CERT/CC summary endpoints should be fetched for the next export window. diff --git a/src/StellaOps.Concelier.Source.CertCc/Internal/CertCcVendorStatementParser.cs b/src/StellaOps.Concelier.Connector.CertCc/Internal/CertCcVendorStatementParser.cs similarity index 99% rename from src/StellaOps.Concelier.Source.CertCc/Internal/CertCcVendorStatementParser.cs rename to src/StellaOps.Concelier.Connector.CertCc/Internal/CertCcVendorStatementParser.cs index ec11ffa8..1fc6464d 100644 --- a/src/StellaOps.Concelier.Source.CertCc/Internal/CertCcVendorStatementParser.cs +++ b/src/StellaOps.Concelier.Connector.CertCc/Internal/CertCcVendorStatementParser.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; -namespace StellaOps.Concelier.Source.CertCc.Internal; +namespace StellaOps.Concelier.Connector.CertCc.Internal; internal static class CertCcVendorStatementParser { diff --git a/src/StellaOps.Concelier.Source.CertCc/Jobs.cs b/src/StellaOps.Concelier.Connector.CertCc/Jobs.cs similarity index 92% rename from src/StellaOps.Concelier.Source.CertCc/Jobs.cs rename to src/StellaOps.Concelier.Connector.CertCc/Jobs.cs index 7e58c189..30f3e404 100644 --- a/src/StellaOps.Concelier.Source.CertCc/Jobs.cs +++ b/src/StellaOps.Concelier.Connector.CertCc/Jobs.cs @@ -3,7 +3,7 @@ using System.Threading; using System.Threading.Tasks; using StellaOps.Concelier.Core.Jobs; -namespace StellaOps.Concelier.Source.CertCc; +namespace StellaOps.Concelier.Connector.CertCc; internal static class CertCcJobKinds { diff --git a/src/StellaOps.Concelier.Connector.CertCc/Properties/AssemblyInfo.cs b/src/StellaOps.Concelier.Connector.CertCc/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..b3d751e2 --- /dev/null +++ b/src/StellaOps.Concelier.Connector.CertCc/Properties/AssemblyInfo.cs @@ -0,0 +1,3 @@ +using System.Runtime.CompilerServices; + +[assembly: InternalsVisibleTo("StellaOps.Concelier.Connector.CertCc.Tests")] diff --git a/src/StellaOps.Concelier.Source.CertCc/README.md b/src/StellaOps.Concelier.Connector.CertCc/README.md similarity index 92% rename from src/StellaOps.Concelier.Source.CertCc/README.md rename to src/StellaOps.Concelier.Connector.CertCc/README.md index 6e98afbf..02b62a57 100644 --- a/src/StellaOps.Concelier.Source.CertCc/README.md +++ b/src/StellaOps.Concelier.Connector.CertCc/README.md @@ -29,7 +29,7 @@ Operational considerations: ## Telemetry & monitoring -The connector exposes an OpenTelemetry meter named `StellaOps.Concelier.Source.CertCc`. Key instruments include: +The connector exposes an OpenTelemetry meter named `StellaOps.Concelier.Connector.CertCc`. Key instruments include: - Planning: `certcc.plan.windows`, `certcc.plan.requests`, and `certcc.plan.window_days`. - Summary fetch: `certcc.summary.fetch.attempts`, `.success`, `.not_modified`, `.failures`. @@ -47,8 +47,8 @@ CERT/CC publishes a Vulnerability Data Archive (JSON exports plus tooling) for d The connector ships deterministic fixtures so QA and Merge teams can replay fetch→parse→map without live calls. Use the following flow when validating changes or refreshing snapshots: -1. `dotnet test src/StellaOps.Concelier.Source.CertCc.Tests` – runs the connector snapshot suite against canned VINCE responses. -2. `UPDATE_CERTCC_FIXTURES=1 dotnet test src/StellaOps.Concelier.Source.CertCc.Tests` – regenerates fixtures under `src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/*.snapshot.json` and mirrors them in the test output directory (`bin/Debug/net10.0/Source/CertCc/Fixtures`). +1. `dotnet test src/StellaOps.Concelier.Connector.CertCc.Tests` – runs the connector snapshot suite against canned VINCE responses. +2. `UPDATE_CERTCC_FIXTURES=1 dotnet test src/StellaOps.Concelier.Connector.CertCc.Tests` – regenerates fixtures under `src/StellaOps.Concelier.Connector.CertCc.Tests/Fixtures/*.snapshot.json` and mirrors them in the test output directory (`bin/Debug/net10.0/Source/CertCc/Fixtures`). - The harness now records every HTTP request; `certcc-requests.snapshot.json` must list summaries/months in canonical order. - Expect `certcc-advisories.snapshot.json` to include normalized versions (`scheme=certcc.vendor`) and provenance decision reasons. 3. Review diffs and attach `certcc-*.snapshot.json` plus test logs when handing off to Merge. diff --git a/src/StellaOps.Concelier.Source.CertCc/StellaOps.Concelier.Source.CertCc.csproj b/src/StellaOps.Concelier.Connector.CertCc/StellaOps.Concelier.Connector.CertCc.csproj similarity index 82% rename from src/StellaOps.Concelier.Source.CertCc/StellaOps.Concelier.Source.CertCc.csproj rename to src/StellaOps.Concelier.Connector.CertCc/StellaOps.Concelier.Connector.CertCc.csproj index 9cc5e5e0..860f5b2a 100644 --- a/src/StellaOps.Concelier.Source.CertCc/StellaOps.Concelier.Source.CertCc.csproj +++ b/src/StellaOps.Concelier.Connector.CertCc/StellaOps.Concelier.Connector.CertCc.csproj @@ -11,7 +11,7 @@ - + diff --git a/src/StellaOps.Concelier.Source.CertCc/TASKS.md b/src/StellaOps.Concelier.Connector.CertCc/TASKS.md similarity index 100% rename from src/StellaOps.Concelier.Source.CertCc/TASKS.md rename to src/StellaOps.Concelier.Connector.CertCc/TASKS.md diff --git a/src/StellaOps.Concelier.Source.CertFr.Tests/CertFr/CertFrConnectorTests.cs b/src/StellaOps.Concelier.Connector.CertFr.Tests/CertFr/CertFrConnectorTests.cs similarity index 95% rename from src/StellaOps.Concelier.Source.CertFr.Tests/CertFr/CertFrConnectorTests.cs rename to src/StellaOps.Concelier.Connector.CertFr.Tests/CertFr/CertFrConnectorTests.cs index e3feb043..a843fe7d 100644 --- a/src/StellaOps.Concelier.Source.CertFr.Tests/CertFr/CertFrConnectorTests.cs +++ b/src/StellaOps.Concelier.Connector.CertFr.Tests/CertFr/CertFrConnectorTests.cs @@ -15,11 +15,11 @@ using Microsoft.Extensions.Options; using Microsoft.Extensions.Time.Testing; using MongoDB.Bson; using MongoDB.Driver; -using StellaOps.Concelier.Source.CertFr; -using StellaOps.Concelier.Source.CertFr.Configuration; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Common.Testing; +using StellaOps.Concelier.Connector.CertFr; +using StellaOps.Concelier.Connector.CertFr.Configuration; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Common.Testing; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; @@ -27,7 +27,7 @@ using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Concelier.Testing; using StellaOps.Concelier.Models; -namespace StellaOps.Concelier.Source.CertFr.Tests; +namespace StellaOps.Concelier.Connector.CertFr.Tests; [Collection("mongo-fixture")] public sealed class CertFrConnectorTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.CertFr.Tests/CertFr/Fixtures/certfr-advisories.snapshot.json b/src/StellaOps.Concelier.Connector.CertFr.Tests/CertFr/Fixtures/certfr-advisories.snapshot.json similarity index 100% rename from src/StellaOps.Concelier.Source.CertFr.Tests/CertFr/Fixtures/certfr-advisories.snapshot.json rename to src/StellaOps.Concelier.Connector.CertFr.Tests/CertFr/Fixtures/certfr-advisories.snapshot.json diff --git a/src/StellaOps.Concelier.Source.CertFr.Tests/CertFr/Fixtures/certfr-detail-AV-2024-001.html b/src/StellaOps.Concelier.Connector.CertFr.Tests/CertFr/Fixtures/certfr-detail-AV-2024-001.html similarity index 100% rename from src/StellaOps.Concelier.Source.CertFr.Tests/CertFr/Fixtures/certfr-detail-AV-2024-001.html rename to src/StellaOps.Concelier.Connector.CertFr.Tests/CertFr/Fixtures/certfr-detail-AV-2024-001.html diff --git a/src/StellaOps.Concelier.Source.CertFr.Tests/CertFr/Fixtures/certfr-detail-AV-2024-002.html b/src/StellaOps.Concelier.Connector.CertFr.Tests/CertFr/Fixtures/certfr-detail-AV-2024-002.html similarity index 100% rename from src/StellaOps.Concelier.Source.CertFr.Tests/CertFr/Fixtures/certfr-detail-AV-2024-002.html rename to src/StellaOps.Concelier.Connector.CertFr.Tests/CertFr/Fixtures/certfr-detail-AV-2024-002.html diff --git a/src/StellaOps.Concelier.Source.CertFr.Tests/CertFr/Fixtures/certfr-feed.xml b/src/StellaOps.Concelier.Connector.CertFr.Tests/CertFr/Fixtures/certfr-feed.xml similarity index 100% rename from src/StellaOps.Concelier.Source.CertFr.Tests/CertFr/Fixtures/certfr-feed.xml rename to src/StellaOps.Concelier.Connector.CertFr.Tests/CertFr/Fixtures/certfr-feed.xml diff --git a/src/StellaOps.Concelier.Source.CertFr.Tests/StellaOps.Concelier.Source.CertFr.Tests.csproj b/src/StellaOps.Concelier.Connector.CertFr.Tests/StellaOps.Concelier.Connector.CertFr.Tests.csproj similarity index 68% rename from src/StellaOps.Concelier.Source.CertFr.Tests/StellaOps.Concelier.Source.CertFr.Tests.csproj rename to src/StellaOps.Concelier.Connector.CertFr.Tests/StellaOps.Concelier.Connector.CertFr.Tests.csproj index e9d83b70..bc08c36d 100644 --- a/src/StellaOps.Concelier.Source.CertFr.Tests/StellaOps.Concelier.Source.CertFr.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.CertFr.Tests/StellaOps.Concelier.Connector.CertFr.Tests.csproj @@ -6,8 +6,8 @@ - - + + diff --git a/src/StellaOps.Concelier.Source.CertFr/AGENTS.md b/src/StellaOps.Concelier.Connector.CertFr/AGENTS.md similarity index 94% rename from src/StellaOps.Concelier.Source.CertFr/AGENTS.md rename to src/StellaOps.Concelier.Connector.CertFr/AGENTS.md index 6913254f..15d9fbd7 100644 --- a/src/StellaOps.Concelier.Source.CertFr/AGENTS.md +++ b/src/StellaOps.Concelier.Connector.CertFr/AGENTS.md @@ -22,6 +22,6 @@ Out: OVAL or package-level authority. - Metrics: SourceDiagnostics emits shared `concelier.source.http.*` counters/histograms tagged `concelier.source=certfr`, covering fetch counts, parse failures, and map activity. - Logs: feed URL(s), item ids/urls, extraction durations; no PII; allowlist hostnames. ## Tests -- Author and review coverage in `../StellaOps.Concelier.Source.CertFr.Tests`. +- Author and review coverage in `../StellaOps.Concelier.Connector.CertFr.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. diff --git a/src/StellaOps.Concelier.Source.CertFr/CertFrConnector.cs b/src/StellaOps.Concelier.Connector.CertFr/CertFrConnector.cs similarity index 96% rename from src/StellaOps.Concelier.Source.CertFr/CertFrConnector.cs rename to src/StellaOps.Concelier.Connector.CertFr/CertFrConnector.cs index 87c422cc..36a6460f 100644 --- a/src/StellaOps.Concelier.Source.CertFr/CertFrConnector.cs +++ b/src/StellaOps.Concelier.Connector.CertFr/CertFrConnector.cs @@ -5,17 +5,17 @@ using System.Text.Json; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using MongoDB.Bson; -using StellaOps.Concelier.Source.CertFr.Configuration; -using StellaOps.Concelier.Source.CertFr.Internal; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; +using StellaOps.Concelier.Connector.CertFr.Configuration; +using StellaOps.Concelier.Connector.CertFr.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.CertFr; +namespace StellaOps.Concelier.Connector.CertFr; public sealed class CertFrConnector : IFeedConnector { diff --git a/src/StellaOps.Concelier.Source.CertFr/CertFrConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.CertFr/CertFrConnectorPlugin.cs similarity index 88% rename from src/StellaOps.Concelier.Source.CertFr/CertFrConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.CertFr/CertFrConnectorPlugin.cs index ee4ad7cc..7ed05ebe 100644 --- a/src/StellaOps.Concelier.Source.CertFr/CertFrConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.CertFr/CertFrConnectorPlugin.cs @@ -2,7 +2,7 @@ using System; using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.CertFr; +namespace StellaOps.Concelier.Connector.CertFr; public sealed class CertFrConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.CertFr/CertFrDependencyInjectionRoutine.cs b/src/StellaOps.Concelier.Connector.CertFr/CertFrDependencyInjectionRoutine.cs similarity index 91% rename from src/StellaOps.Concelier.Source.CertFr/CertFrDependencyInjectionRoutine.cs rename to src/StellaOps.Concelier.Connector.CertFr/CertFrDependencyInjectionRoutine.cs index ba2bbb39..8d2f0b4f 100644 --- a/src/StellaOps.Concelier.Source.CertFr/CertFrDependencyInjectionRoutine.cs +++ b/src/StellaOps.Concelier.Connector.CertFr/CertFrDependencyInjectionRoutine.cs @@ -3,9 +3,9 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using StellaOps.DependencyInjection; using StellaOps.Concelier.Core.Jobs; -using StellaOps.Concelier.Source.CertFr.Configuration; +using StellaOps.Concelier.Connector.CertFr.Configuration; -namespace StellaOps.Concelier.Source.CertFr; +namespace StellaOps.Concelier.Connector.CertFr; public sealed class CertFrDependencyInjectionRoutine : IDependencyInjectionRoutine { diff --git a/src/StellaOps.Concelier.Source.CertFr/CertFrServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.CertFr/CertFrServiceCollectionExtensions.cs similarity index 83% rename from src/StellaOps.Concelier.Source.CertFr/CertFrServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.CertFr/CertFrServiceCollectionExtensions.cs index 5568522e..2c3d5cb2 100644 --- a/src/StellaOps.Concelier.Source.CertFr/CertFrServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.CertFr/CertFrServiceCollectionExtensions.cs @@ -2,11 +2,11 @@ using System; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.CertFr.Configuration; -using StellaOps.Concelier.Source.CertFr.Internal; -using StellaOps.Concelier.Source.Common.Http; +using StellaOps.Concelier.Connector.CertFr.Configuration; +using StellaOps.Concelier.Connector.CertFr.Internal; +using StellaOps.Concelier.Connector.Common.Http; -namespace StellaOps.Concelier.Source.CertFr; +namespace StellaOps.Concelier.Connector.CertFr; public static class CertFrServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Source.CertFr/Configuration/CertFrOptions.cs b/src/StellaOps.Concelier.Connector.CertFr/Configuration/CertFrOptions.cs similarity index 92% rename from src/StellaOps.Concelier.Source.CertFr/Configuration/CertFrOptions.cs rename to src/StellaOps.Concelier.Connector.CertFr/Configuration/CertFrOptions.cs index f8591f66..0865bc1a 100644 --- a/src/StellaOps.Concelier.Source.CertFr/Configuration/CertFrOptions.cs +++ b/src/StellaOps.Concelier.Connector.CertFr/Configuration/CertFrOptions.cs @@ -1,6 +1,6 @@ using System; -namespace StellaOps.Concelier.Source.CertFr.Configuration; +namespace StellaOps.Concelier.Connector.CertFr.Configuration; public sealed class CertFrOptions { diff --git a/src/StellaOps.Concelier.Source.CertFr/Internal/CertFrCursor.cs b/src/StellaOps.Concelier.Connector.CertFr/Internal/CertFrCursor.cs similarity index 94% rename from src/StellaOps.Concelier.Source.CertFr/Internal/CertFrCursor.cs rename to src/StellaOps.Concelier.Connector.CertFr/Internal/CertFrCursor.cs index 43546599..28fae7c2 100644 --- a/src/StellaOps.Concelier.Source.CertFr/Internal/CertFrCursor.cs +++ b/src/StellaOps.Concelier.Connector.CertFr/Internal/CertFrCursor.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using MongoDB.Bson; -namespace StellaOps.Concelier.Source.CertFr.Internal; +namespace StellaOps.Concelier.Connector.CertFr.Internal; internal sealed record CertFrCursor( DateTimeOffset? LastPublished, diff --git a/src/StellaOps.Concelier.Source.CertFr/Internal/CertFrDocumentMetadata.cs b/src/StellaOps.Concelier.Connector.CertFr/Internal/CertFrDocumentMetadata.cs similarity index 94% rename from src/StellaOps.Concelier.Source.CertFr/Internal/CertFrDocumentMetadata.cs rename to src/StellaOps.Concelier.Connector.CertFr/Internal/CertFrDocumentMetadata.cs index 752e2dfb..c29b8e88 100644 --- a/src/StellaOps.Concelier.Source.CertFr/Internal/CertFrDocumentMetadata.cs +++ b/src/StellaOps.Concelier.Connector.CertFr/Internal/CertFrDocumentMetadata.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using StellaOps.Concelier.Storage.Mongo.Documents; -namespace StellaOps.Concelier.Source.CertFr.Internal; +namespace StellaOps.Concelier.Connector.CertFr.Internal; internal sealed record CertFrDocumentMetadata( string AdvisoryId, diff --git a/src/StellaOps.Concelier.Source.CertFr/Internal/CertFrDto.cs b/src/StellaOps.Concelier.Connector.CertFr/Internal/CertFrDto.cs similarity index 89% rename from src/StellaOps.Concelier.Source.CertFr/Internal/CertFrDto.cs rename to src/StellaOps.Concelier.Connector.CertFr/Internal/CertFrDto.cs index 016d06ce..b5be2fc9 100644 --- a/src/StellaOps.Concelier.Source.CertFr/Internal/CertFrDto.cs +++ b/src/StellaOps.Concelier.Connector.CertFr/Internal/CertFrDto.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json.Serialization; -namespace StellaOps.Concelier.Source.CertFr.Internal; +namespace StellaOps.Concelier.Connector.CertFr.Internal; internal sealed record CertFrDto( [property: JsonPropertyName("advisoryId")] string AdvisoryId, diff --git a/src/StellaOps.Concelier.Source.CertFr/Internal/CertFrFeedClient.cs b/src/StellaOps.Concelier.Connector.CertFr/Internal/CertFrFeedClient.cs similarity index 94% rename from src/StellaOps.Concelier.Source.CertFr/Internal/CertFrFeedClient.cs rename to src/StellaOps.Concelier.Connector.CertFr/Internal/CertFrFeedClient.cs index c22676a7..da6e09d1 100644 --- a/src/StellaOps.Concelier.Source.CertFr/Internal/CertFrFeedClient.cs +++ b/src/StellaOps.Concelier.Connector.CertFr/Internal/CertFrFeedClient.cs @@ -8,9 +8,9 @@ using System.Threading.Tasks; using System.Xml.Linq; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.CertFr.Configuration; +using StellaOps.Concelier.Connector.CertFr.Configuration; -namespace StellaOps.Concelier.Source.CertFr.Internal; +namespace StellaOps.Concelier.Connector.CertFr.Internal; public sealed class CertFrFeedClient { diff --git a/src/StellaOps.Concelier.Source.CertFr/Internal/CertFrFeedItem.cs b/src/StellaOps.Concelier.Connector.CertFr/Internal/CertFrFeedItem.cs similarity index 71% rename from src/StellaOps.Concelier.Source.CertFr/Internal/CertFrFeedItem.cs rename to src/StellaOps.Concelier.Connector.CertFr/Internal/CertFrFeedItem.cs index 492e2d56..1e723b64 100644 --- a/src/StellaOps.Concelier.Source.CertFr/Internal/CertFrFeedItem.cs +++ b/src/StellaOps.Concelier.Connector.CertFr/Internal/CertFrFeedItem.cs @@ -1,6 +1,6 @@ using System; -namespace StellaOps.Concelier.Source.CertFr.Internal; +namespace StellaOps.Concelier.Connector.CertFr.Internal; public sealed record CertFrFeedItem( string AdvisoryId, diff --git a/src/StellaOps.Concelier.Source.CertFr/Internal/CertFrMapper.cs b/src/StellaOps.Concelier.Connector.CertFr/Internal/CertFrMapper.cs similarity index 97% rename from src/StellaOps.Concelier.Source.CertFr/Internal/CertFrMapper.cs rename to src/StellaOps.Concelier.Connector.CertFr/Internal/CertFrMapper.cs index c7b869e8..4a10b7da 100644 --- a/src/StellaOps.Concelier.Source.CertFr/Internal/CertFrMapper.cs +++ b/src/StellaOps.Concelier.Connector.CertFr/Internal/CertFrMapper.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using StellaOps.Concelier.Models; -namespace StellaOps.Concelier.Source.CertFr.Internal; +namespace StellaOps.Concelier.Connector.CertFr.Internal; internal static class CertFrMapper { diff --git a/src/StellaOps.Concelier.Source.CertFr/Internal/CertFrParser.cs b/src/StellaOps.Concelier.Connector.CertFr/Internal/CertFrParser.cs similarity index 95% rename from src/StellaOps.Concelier.Source.CertFr/Internal/CertFrParser.cs rename to src/StellaOps.Concelier.Connector.CertFr/Internal/CertFrParser.cs index b91bc645..515f8959 100644 --- a/src/StellaOps.Concelier.Source.CertFr/Internal/CertFrParser.cs +++ b/src/StellaOps.Concelier.Connector.CertFr/Internal/CertFrParser.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; -namespace StellaOps.Concelier.Source.CertFr.Internal; +namespace StellaOps.Concelier.Connector.CertFr.Internal; internal static class CertFrParser { diff --git a/src/StellaOps.Concelier.Source.CertFr/Jobs.cs b/src/StellaOps.Concelier.Connector.CertFr/Jobs.cs similarity index 94% rename from src/StellaOps.Concelier.Source.CertFr/Jobs.cs rename to src/StellaOps.Concelier.Connector.CertFr/Jobs.cs index 225083cd..5e8c1acd 100644 --- a/src/StellaOps.Concelier.Source.CertFr/Jobs.cs +++ b/src/StellaOps.Concelier.Connector.CertFr/Jobs.cs @@ -3,7 +3,7 @@ using System.Threading; using System.Threading.Tasks; using StellaOps.Concelier.Core.Jobs; -namespace StellaOps.Concelier.Source.CertFr; +namespace StellaOps.Concelier.Connector.CertFr; internal static class CertFrJobKinds { diff --git a/src/StellaOps.Concelier.Source.CertFr/StellaOps.Concelier.Source.CertFr.csproj b/src/StellaOps.Concelier.Connector.CertFr/StellaOps.Concelier.Connector.CertFr.csproj similarity index 79% rename from src/StellaOps.Concelier.Source.CertFr/StellaOps.Concelier.Source.CertFr.csproj rename to src/StellaOps.Concelier.Connector.CertFr/StellaOps.Concelier.Connector.CertFr.csproj index e6cec2e9..cf97d924 100644 --- a/src/StellaOps.Concelier.Source.CertFr/StellaOps.Concelier.Source.CertFr.csproj +++ b/src/StellaOps.Concelier.Connector.CertFr/StellaOps.Concelier.Connector.CertFr.csproj @@ -6,7 +6,7 @@ - + diff --git a/src/StellaOps.Concelier.Source.CertFr/TASKS.md b/src/StellaOps.Concelier.Connector.CertFr/TASKS.md similarity index 100% rename from src/StellaOps.Concelier.Source.CertFr/TASKS.md rename to src/StellaOps.Concelier.Connector.CertFr/TASKS.md diff --git a/src/StellaOps.Concelier.Source.CertIn.Tests/CertIn/CertInConnectorTests.cs b/src/StellaOps.Concelier.Connector.CertIn.Tests/CertIn/CertInConnectorTests.cs similarity index 95% rename from src/StellaOps.Concelier.Source.CertIn.Tests/CertIn/CertInConnectorTests.cs rename to src/StellaOps.Concelier.Connector.CertIn.Tests/CertIn/CertInConnectorTests.cs index 33c8de4c..5212b4ec 100644 --- a/src/StellaOps.Concelier.Source.CertIn.Tests/CertIn/CertInConnectorTests.cs +++ b/src/StellaOps.Concelier.Connector.CertIn.Tests/CertIn/CertInConnectorTests.cs @@ -15,20 +15,20 @@ using Microsoft.Extensions.Options; using Microsoft.Extensions.Time.Testing; using MongoDB.Bson; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.CertIn; -using StellaOps.Concelier.Source.CertIn.Configuration; -using StellaOps.Concelier.Source.CertIn.Internal; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Common.Testing; +using StellaOps.Concelier.Connector.CertIn; +using StellaOps.Concelier.Connector.CertIn.Configuration; +using StellaOps.Concelier.Connector.CertIn.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Common.Testing; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Concelier.Testing; -namespace StellaOps.Concelier.Source.CertIn.Tests; +namespace StellaOps.Concelier.Connector.CertIn.Tests; [Collection("mongo-fixture")] public sealed class CertInConnectorTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.CertIn.Tests/CertIn/Fixtures/alerts-page1.json b/src/StellaOps.Concelier.Connector.CertIn.Tests/CertIn/Fixtures/alerts-page1.json similarity index 100% rename from src/StellaOps.Concelier.Source.CertIn.Tests/CertIn/Fixtures/alerts-page1.json rename to src/StellaOps.Concelier.Connector.CertIn.Tests/CertIn/Fixtures/alerts-page1.json diff --git a/src/StellaOps.Concelier.Source.CertIn.Tests/CertIn/Fixtures/detail-CIAD-2024-0005.html b/src/StellaOps.Concelier.Connector.CertIn.Tests/CertIn/Fixtures/detail-CIAD-2024-0005.html similarity index 100% rename from src/StellaOps.Concelier.Source.CertIn.Tests/CertIn/Fixtures/detail-CIAD-2024-0005.html rename to src/StellaOps.Concelier.Connector.CertIn.Tests/CertIn/Fixtures/detail-CIAD-2024-0005.html diff --git a/src/StellaOps.Concelier.Source.CertIn.Tests/CertIn/Fixtures/expected-advisory.json b/src/StellaOps.Concelier.Connector.CertIn.Tests/CertIn/Fixtures/expected-advisory.json similarity index 100% rename from src/StellaOps.Concelier.Source.CertIn.Tests/CertIn/Fixtures/expected-advisory.json rename to src/StellaOps.Concelier.Connector.CertIn.Tests/CertIn/Fixtures/expected-advisory.json diff --git a/src/StellaOps.Concelier.Source.CertIn.Tests/StellaOps.Concelier.Source.CertIn.Tests.csproj b/src/StellaOps.Concelier.Connector.CertIn.Tests/StellaOps.Concelier.Connector.CertIn.Tests.csproj similarity index 68% rename from src/StellaOps.Concelier.Source.CertIn.Tests/StellaOps.Concelier.Source.CertIn.Tests.csproj rename to src/StellaOps.Concelier.Connector.CertIn.Tests/StellaOps.Concelier.Connector.CertIn.Tests.csproj index efc31563..8a9c9b42 100644 --- a/src/StellaOps.Concelier.Source.CertIn.Tests/StellaOps.Concelier.Source.CertIn.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.CertIn.Tests/StellaOps.Concelier.Connector.CertIn.Tests.csproj @@ -6,8 +6,8 @@ - - + + diff --git a/src/StellaOps.Concelier.Source.CertIn/AGENTS.md b/src/StellaOps.Concelier.Connector.CertIn/AGENTS.md similarity index 94% rename from src/StellaOps.Concelier.Source.CertIn/AGENTS.md rename to src/StellaOps.Concelier.Connector.CertIn/AGENTS.md index 388e7475..4aec2205 100644 --- a/src/StellaOps.Concelier.Source.CertIn/AGENTS.md +++ b/src/StellaOps.Concelier.Connector.CertIn/AGENTS.md @@ -23,6 +23,6 @@ Out: package range authority; scraping behind auth walls. - Metrics: shared `concelier.source.http.*` counters/histograms from SourceDiagnostics tagged `concelier.source=certin` capture fetch volume, parse failures, and map enrich counts. - Logs: advisory codes, CVE counts per advisory, timing; allowlist host; redact personal data if present. ## Tests -- Author and review coverage in `../StellaOps.Concelier.Source.CertIn.Tests`. +- Author and review coverage in `../StellaOps.Concelier.Connector.CertIn.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. diff --git a/src/StellaOps.Concelier.Source.CertIn/CertInConnector.cs b/src/StellaOps.Concelier.Connector.CertIn/CertInConnector.cs similarity index 96% rename from src/StellaOps.Concelier.Source.CertIn/CertInConnector.cs rename to src/StellaOps.Concelier.Connector.CertIn/CertInConnector.cs index f7373d31..510e848e 100644 --- a/src/StellaOps.Concelier.Source.CertIn/CertInConnector.cs +++ b/src/StellaOps.Concelier.Connector.CertIn/CertInConnector.cs @@ -8,17 +8,17 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using MongoDB.Bson; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.CertIn.Configuration; -using StellaOps.Concelier.Source.CertIn.Internal; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; +using StellaOps.Concelier.Connector.CertIn.Configuration; +using StellaOps.Concelier.Connector.CertIn.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.CertIn; +namespace StellaOps.Concelier.Connector.CertIn; public sealed class CertInConnector : IFeedConnector { diff --git a/src/StellaOps.Concelier.Source.CertIn/CertInConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.CertIn/CertInConnectorPlugin.cs similarity index 88% rename from src/StellaOps.Concelier.Source.CertIn/CertInConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.CertIn/CertInConnectorPlugin.cs index 7571b94d..4d7b08b3 100644 --- a/src/StellaOps.Concelier.Source.CertIn/CertInConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.CertIn/CertInConnectorPlugin.cs @@ -1,7 +1,7 @@ using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.CertIn; +namespace StellaOps.Concelier.Connector.CertIn; public sealed class CertInConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.CertIn/CertInDependencyInjectionRoutine.cs b/src/StellaOps.Concelier.Connector.CertIn/CertInDependencyInjectionRoutine.cs similarity index 91% rename from src/StellaOps.Concelier.Source.CertIn/CertInDependencyInjectionRoutine.cs rename to src/StellaOps.Concelier.Connector.CertIn/CertInDependencyInjectionRoutine.cs index 8ad26c0a..a1c2abe3 100644 --- a/src/StellaOps.Concelier.Source.CertIn/CertInDependencyInjectionRoutine.cs +++ b/src/StellaOps.Concelier.Connector.CertIn/CertInDependencyInjectionRoutine.cs @@ -3,9 +3,9 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using StellaOps.DependencyInjection; using StellaOps.Concelier.Core.Jobs; -using StellaOps.Concelier.Source.CertIn.Configuration; +using StellaOps.Concelier.Connector.CertIn.Configuration; -namespace StellaOps.Concelier.Source.CertIn; +namespace StellaOps.Concelier.Connector.CertIn; public sealed class CertInDependencyInjectionRoutine : IDependencyInjectionRoutine { diff --git a/src/StellaOps.Concelier.Source.CertIn/CertInServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.CertIn/CertInServiceCollectionExtensions.cs similarity index 83% rename from src/StellaOps.Concelier.Source.CertIn/CertInServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.CertIn/CertInServiceCollectionExtensions.cs index fcc4b329..f9861107 100644 --- a/src/StellaOps.Concelier.Source.CertIn/CertInServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.CertIn/CertInServiceCollectionExtensions.cs @@ -1,11 +1,11 @@ using System; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.CertIn.Configuration; -using StellaOps.Concelier.Source.CertIn.Internal; -using StellaOps.Concelier.Source.Common.Http; +using StellaOps.Concelier.Connector.CertIn.Configuration; +using StellaOps.Concelier.Connector.CertIn.Internal; +using StellaOps.Concelier.Connector.Common.Http; -namespace StellaOps.Concelier.Source.CertIn; +namespace StellaOps.Concelier.Connector.CertIn; public static class CertInServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Source.CertIn/Configuration/CertInOptions.cs b/src/StellaOps.Concelier.Connector.CertIn/Configuration/CertInOptions.cs similarity index 93% rename from src/StellaOps.Concelier.Source.CertIn/Configuration/CertInOptions.cs rename to src/StellaOps.Concelier.Connector.CertIn/Configuration/CertInOptions.cs index 67464a55..a2f8757f 100644 --- a/src/StellaOps.Concelier.Source.CertIn/Configuration/CertInOptions.cs +++ b/src/StellaOps.Concelier.Connector.CertIn/Configuration/CertInOptions.cs @@ -1,7 +1,7 @@ using System; using System.Diagnostics.CodeAnalysis; -namespace StellaOps.Concelier.Source.CertIn.Configuration; +namespace StellaOps.Concelier.Connector.CertIn.Configuration; public sealed class CertInOptions { diff --git a/src/StellaOps.Concelier.Source.CertIn/Internal/CertInAdvisoryDto.cs b/src/StellaOps.Concelier.Connector.CertIn/Internal/CertInAdvisoryDto.cs similarity index 83% rename from src/StellaOps.Concelier.Source.CertIn/Internal/CertInAdvisoryDto.cs rename to src/StellaOps.Concelier.Connector.CertIn/Internal/CertInAdvisoryDto.cs index 7cd46995..7a8bf7a3 100644 --- a/src/StellaOps.Concelier.Source.CertIn/Internal/CertInAdvisoryDto.cs +++ b/src/StellaOps.Concelier.Connector.CertIn/Internal/CertInAdvisoryDto.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Immutable; -namespace StellaOps.Concelier.Source.CertIn.Internal; +namespace StellaOps.Concelier.Connector.CertIn.Internal; internal sealed record CertInAdvisoryDto( string AdvisoryId, diff --git a/src/StellaOps.Concelier.Source.CertIn/Internal/CertInClient.cs b/src/StellaOps.Concelier.Connector.CertIn/Internal/CertInClient.cs similarity index 94% rename from src/StellaOps.Concelier.Source.CertIn/Internal/CertInClient.cs rename to src/StellaOps.Concelier.Connector.CertIn/Internal/CertInClient.cs index 7538e623..569fe0b3 100644 --- a/src/StellaOps.Concelier.Source.CertIn/Internal/CertInClient.cs +++ b/src/StellaOps.Concelier.Connector.CertIn/Internal/CertInClient.cs @@ -9,9 +9,9 @@ using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.CertIn.Configuration; +using StellaOps.Concelier.Connector.CertIn.Configuration; -namespace StellaOps.Concelier.Source.CertIn.Internal; +namespace StellaOps.Concelier.Connector.CertIn.Internal; public sealed class CertInClient { diff --git a/src/StellaOps.Concelier.Source.CertIn/Internal/CertInCursor.cs b/src/StellaOps.Concelier.Connector.CertIn/Internal/CertInCursor.cs similarity index 94% rename from src/StellaOps.Concelier.Source.CertIn/Internal/CertInCursor.cs rename to src/StellaOps.Concelier.Connector.CertIn/Internal/CertInCursor.cs index cc5784d7..776d7fa6 100644 --- a/src/StellaOps.Concelier.Source.CertIn/Internal/CertInCursor.cs +++ b/src/StellaOps.Concelier.Connector.CertIn/Internal/CertInCursor.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using MongoDB.Bson; -namespace StellaOps.Concelier.Source.CertIn.Internal; +namespace StellaOps.Concelier.Connector.CertIn.Internal; internal sealed record CertInCursor( DateTimeOffset? LastPublished, diff --git a/src/StellaOps.Concelier.Source.CertIn/Internal/CertInDetailParser.cs b/src/StellaOps.Concelier.Connector.CertIn/Internal/CertInDetailParser.cs similarity index 96% rename from src/StellaOps.Concelier.Source.CertIn/Internal/CertInDetailParser.cs rename to src/StellaOps.Concelier.Connector.CertIn/Internal/CertInDetailParser.cs index f3d9d304..f63cec01 100644 --- a/src/StellaOps.Concelier.Source.CertIn/Internal/CertInDetailParser.cs +++ b/src/StellaOps.Concelier.Connector.CertIn/Internal/CertInDetailParser.cs @@ -5,7 +5,7 @@ using System.Linq; using System.Text; using System.Text.RegularExpressions; -namespace StellaOps.Concelier.Source.CertIn.Internal; +namespace StellaOps.Concelier.Connector.CertIn.Internal; internal static class CertInDetailParser { diff --git a/src/StellaOps.Concelier.Source.CertIn/Internal/CertInListingItem.cs b/src/StellaOps.Concelier.Connector.CertIn/Internal/CertInListingItem.cs similarity index 71% rename from src/StellaOps.Concelier.Source.CertIn/Internal/CertInListingItem.cs rename to src/StellaOps.Concelier.Connector.CertIn/Internal/CertInListingItem.cs index 3b4dd0af..c42c311d 100644 --- a/src/StellaOps.Concelier.Source.CertIn/Internal/CertInListingItem.cs +++ b/src/StellaOps.Concelier.Connector.CertIn/Internal/CertInListingItem.cs @@ -1,6 +1,6 @@ using System; -namespace StellaOps.Concelier.Source.CertIn.Internal; +namespace StellaOps.Concelier.Connector.CertIn.Internal; public sealed record CertInListingItem( string AdvisoryId, diff --git a/src/StellaOps.Concelier.Source.CertIn/Jobs.cs b/src/StellaOps.Concelier.Connector.CertIn/Jobs.cs similarity index 94% rename from src/StellaOps.Concelier.Source.CertIn/Jobs.cs rename to src/StellaOps.Concelier.Connector.CertIn/Jobs.cs index fcba42dc..0a9788b4 100644 --- a/src/StellaOps.Concelier.Source.CertIn/Jobs.cs +++ b/src/StellaOps.Concelier.Connector.CertIn/Jobs.cs @@ -3,7 +3,7 @@ using System.Threading; using System.Threading.Tasks; using StellaOps.Concelier.Core.Jobs; -namespace StellaOps.Concelier.Source.CertIn; +namespace StellaOps.Concelier.Connector.CertIn; internal static class CertInJobKinds { diff --git a/src/StellaOps.Concelier.Source.Ics.Kaspersky/StellaOps.Concelier.Source.Ics.Kaspersky.csproj b/src/StellaOps.Concelier.Connector.CertIn/StellaOps.Concelier.Connector.CertIn.csproj similarity index 79% rename from src/StellaOps.Concelier.Source.Ics.Kaspersky/StellaOps.Concelier.Source.Ics.Kaspersky.csproj rename to src/StellaOps.Concelier.Connector.CertIn/StellaOps.Concelier.Connector.CertIn.csproj index 832b35b4..44c74bcc 100644 --- a/src/StellaOps.Concelier.Source.Ics.Kaspersky/StellaOps.Concelier.Source.Ics.Kaspersky.csproj +++ b/src/StellaOps.Concelier.Connector.CertIn/StellaOps.Concelier.Connector.CertIn.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/StellaOps.Concelier.Source.CertIn/TASKS.md b/src/StellaOps.Concelier.Connector.CertIn/TASKS.md similarity index 100% rename from src/StellaOps.Concelier.Source.CertIn/TASKS.md rename to src/StellaOps.Concelier.Connector.CertIn/TASKS.md diff --git a/src/StellaOps.Concelier.Source.Common.Tests/Common/CannedHttpMessageHandlerTests.cs b/src/StellaOps.Concelier.Connector.Common.Tests/Common/CannedHttpMessageHandlerTests.cs similarity index 90% rename from src/StellaOps.Concelier.Source.Common.Tests/Common/CannedHttpMessageHandlerTests.cs rename to src/StellaOps.Concelier.Connector.Common.Tests/Common/CannedHttpMessageHandlerTests.cs index 95af9e46..01c69579 100644 --- a/src/StellaOps.Concelier.Source.Common.Tests/Common/CannedHttpMessageHandlerTests.cs +++ b/src/StellaOps.Concelier.Connector.Common.Tests/Common/CannedHttpMessageHandlerTests.cs @@ -1,8 +1,8 @@ using System.Net; using System.Net.Http; -using StellaOps.Concelier.Source.Common.Testing; +using StellaOps.Concelier.Connector.Common.Testing; -namespace StellaOps.Concelier.Source.Common.Tests; +namespace StellaOps.Concelier.Connector.Common.Tests; public sealed class CannedHttpMessageHandlerTests { diff --git a/src/StellaOps.Concelier.Source.Common.Tests/Common/HtmlContentSanitizerTests.cs b/src/StellaOps.Concelier.Connector.Common.Tests/Common/HtmlContentSanitizerTests.cs similarity index 92% rename from src/StellaOps.Concelier.Source.Common.Tests/Common/HtmlContentSanitizerTests.cs rename to src/StellaOps.Concelier.Connector.Common.Tests/Common/HtmlContentSanitizerTests.cs index 91adb52b..6ab1f76c 100644 --- a/src/StellaOps.Concelier.Source.Common.Tests/Common/HtmlContentSanitizerTests.cs +++ b/src/StellaOps.Concelier.Connector.Common.Tests/Common/HtmlContentSanitizerTests.cs @@ -1,6 +1,6 @@ -using StellaOps.Concelier.Source.Common.Html; +using StellaOps.Concelier.Connector.Common.Html; -namespace StellaOps.Concelier.Source.Common.Tests; +namespace StellaOps.Concelier.Connector.Common.Tests; public sealed class HtmlContentSanitizerTests { diff --git a/src/StellaOps.Concelier.Source.Common.Tests/Common/PackageCoordinateHelperTests.cs b/src/StellaOps.Concelier.Connector.Common.Tests/Common/PackageCoordinateHelperTests.cs similarity index 89% rename from src/StellaOps.Concelier.Source.Common.Tests/Common/PackageCoordinateHelperTests.cs rename to src/StellaOps.Concelier.Connector.Common.Tests/Common/PackageCoordinateHelperTests.cs index 8858b9e2..8f4d6571 100644 --- a/src/StellaOps.Concelier.Source.Common.Tests/Common/PackageCoordinateHelperTests.cs +++ b/src/StellaOps.Concelier.Connector.Common.Tests/Common/PackageCoordinateHelperTests.cs @@ -1,7 +1,7 @@ using NuGet.Versioning; -using StellaOps.Concelier.Source.Common.Packages; +using StellaOps.Concelier.Connector.Common.Packages; -namespace StellaOps.Concelier.Source.Common.Tests; +namespace StellaOps.Concelier.Connector.Common.Tests; public sealed class PackageCoordinateHelperTests { diff --git a/src/StellaOps.Concelier.Source.Common.Tests/Common/PdfTextExtractorTests.cs b/src/StellaOps.Concelier.Connector.Common.Tests/Common/PdfTextExtractorTests.cs similarity index 91% rename from src/StellaOps.Concelier.Source.Common.Tests/Common/PdfTextExtractorTests.cs rename to src/StellaOps.Concelier.Connector.Common.Tests/Common/PdfTextExtractorTests.cs index 10e95ebc..6609a72e 100644 --- a/src/StellaOps.Concelier.Source.Common.Tests/Common/PdfTextExtractorTests.cs +++ b/src/StellaOps.Concelier.Connector.Common.Tests/Common/PdfTextExtractorTests.cs @@ -1,6 +1,6 @@ -using StellaOps.Concelier.Source.Common.Pdf; +using StellaOps.Concelier.Connector.Common.Pdf; -namespace StellaOps.Concelier.Source.Common.Tests; +namespace StellaOps.Concelier.Connector.Common.Tests; public sealed class PdfTextExtractorTests { diff --git a/src/StellaOps.Concelier.Source.Common.Tests/Common/SourceFetchServiceTests.cs b/src/StellaOps.Concelier.Connector.Common.Tests/Common/SourceFetchServiceTests.cs similarity index 88% rename from src/StellaOps.Concelier.Source.Common.Tests/Common/SourceFetchServiceTests.cs rename to src/StellaOps.Concelier.Connector.Common.Tests/Common/SourceFetchServiceTests.cs index b234d1a6..ff1bd09e 100644 --- a/src/StellaOps.Concelier.Source.Common.Tests/Common/SourceFetchServiceTests.cs +++ b/src/StellaOps.Concelier.Connector.Common.Tests/Common/SourceFetchServiceTests.cs @@ -1,6 +1,6 @@ -using StellaOps.Concelier.Source.Common.Fetch; +using StellaOps.Concelier.Connector.Common.Fetch; -namespace StellaOps.Concelier.Source.Common.Tests; +namespace StellaOps.Concelier.Connector.Common.Tests; public sealed class SourceFetchServiceTests { diff --git a/src/StellaOps.Concelier.Source.Common.Tests/Common/SourceHttpClientBuilderTests.cs b/src/StellaOps.Concelier.Connector.Common.Tests/Common/SourceHttpClientBuilderTests.cs similarity index 99% rename from src/StellaOps.Concelier.Source.Common.Tests/Common/SourceHttpClientBuilderTests.cs rename to src/StellaOps.Concelier.Connector.Common.Tests/Common/SourceHttpClientBuilderTests.cs index b99a698f..0ae1d047 100644 --- a/src/StellaOps.Concelier.Source.Common.Tests/Common/SourceHttpClientBuilderTests.cs +++ b/src/StellaOps.Concelier.Connector.Common.Tests/Common/SourceHttpClientBuilderTests.cs @@ -10,9 +10,9 @@ using System.Text; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Common.Http; +using StellaOps.Concelier.Connector.Common.Http; -namespace StellaOps.Concelier.Source.Common.Tests; +namespace StellaOps.Concelier.Connector.Common.Tests; public sealed class SourceHttpClientBuilderTests { diff --git a/src/StellaOps.Concelier.Source.Common.Tests/Common/TimeWindowCursorPlannerTests.cs b/src/StellaOps.Concelier.Connector.Common.Tests/Common/TimeWindowCursorPlannerTests.cs similarity index 93% rename from src/StellaOps.Concelier.Source.Common.Tests/Common/TimeWindowCursorPlannerTests.cs rename to src/StellaOps.Concelier.Connector.Common.Tests/Common/TimeWindowCursorPlannerTests.cs index 247ba633..27b43e83 100644 --- a/src/StellaOps.Concelier.Source.Common.Tests/Common/TimeWindowCursorPlannerTests.cs +++ b/src/StellaOps.Concelier.Connector.Common.Tests/Common/TimeWindowCursorPlannerTests.cs @@ -1,7 +1,7 @@ using MongoDB.Bson; -using StellaOps.Concelier.Source.Common.Cursors; +using StellaOps.Concelier.Connector.Common.Cursors; -namespace StellaOps.Concelier.Source.Common.Tests; +namespace StellaOps.Concelier.Connector.Common.Tests; public sealed class TimeWindowCursorPlannerTests { diff --git a/src/StellaOps.Concelier.Source.Common.Tests/Common/UrlNormalizerTests.cs b/src/StellaOps.Concelier.Connector.Common.Tests/Common/UrlNormalizerTests.cs similarity index 83% rename from src/StellaOps.Concelier.Source.Common.Tests/Common/UrlNormalizerTests.cs rename to src/StellaOps.Concelier.Connector.Common.Tests/Common/UrlNormalizerTests.cs index 78e6a857..d26e437b 100644 --- a/src/StellaOps.Concelier.Source.Common.Tests/Common/UrlNormalizerTests.cs +++ b/src/StellaOps.Concelier.Connector.Common.Tests/Common/UrlNormalizerTests.cs @@ -1,6 +1,6 @@ -using StellaOps.Concelier.Source.Common.Url; +using StellaOps.Concelier.Connector.Common.Url; -namespace StellaOps.Concelier.Source.Common.Tests; +namespace StellaOps.Concelier.Connector.Common.Tests; public sealed class UrlNormalizerTests { diff --git a/src/StellaOps.Concelier.Source.Common.Tests/Json/JsonSchemaValidatorTests.cs b/src/StellaOps.Concelier.Connector.Common.Tests/Json/JsonSchemaValidatorTests.cs similarity index 91% rename from src/StellaOps.Concelier.Source.Common.Tests/Json/JsonSchemaValidatorTests.cs rename to src/StellaOps.Concelier.Connector.Common.Tests/Json/JsonSchemaValidatorTests.cs index f4e0350f..4d916ef6 100644 --- a/src/StellaOps.Concelier.Source.Common.Tests/Json/JsonSchemaValidatorTests.cs +++ b/src/StellaOps.Concelier.Connector.Common.Tests/Json/JsonSchemaValidatorTests.cs @@ -2,9 +2,9 @@ using System; using System.Text.Json; using Json.Schema; using Microsoft.Extensions.Logging.Abstractions; -using StellaOps.Concelier.Source.Common.Json; +using StellaOps.Concelier.Connector.Common.Json; -namespace StellaOps.Concelier.Source.Common.Tests.Json; +namespace StellaOps.Concelier.Connector.Common.Tests.Json; public sealed class JsonSchemaValidatorTests { diff --git a/src/StellaOps.Concelier.Source.Common.Tests/StellaOps.Concelier.Source.Common.Tests.csproj b/src/StellaOps.Concelier.Connector.Common.Tests/StellaOps.Concelier.Connector.Common.Tests.csproj similarity index 64% rename from src/StellaOps.Concelier.Source.Common.Tests/StellaOps.Concelier.Source.Common.Tests.csproj rename to src/StellaOps.Concelier.Connector.Common.Tests/StellaOps.Concelier.Connector.Common.Tests.csproj index 5692be0a..1fb726a4 100644 --- a/src/StellaOps.Concelier.Source.Common.Tests/StellaOps.Concelier.Source.Common.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.Common.Tests/StellaOps.Concelier.Connector.Common.Tests.csproj @@ -5,6 +5,6 @@ enable - + diff --git a/src/StellaOps.Concelier.Source.Common.Tests/Xml/XmlSchemaValidatorTests.cs b/src/StellaOps.Concelier.Connector.Common.Tests/Xml/XmlSchemaValidatorTests.cs similarity index 88% rename from src/StellaOps.Concelier.Source.Common.Tests/Xml/XmlSchemaValidatorTests.cs rename to src/StellaOps.Concelier.Connector.Common.Tests/Xml/XmlSchemaValidatorTests.cs index bea93021..fbaf10b9 100644 --- a/src/StellaOps.Concelier.Source.Common.Tests/Xml/XmlSchemaValidatorTests.cs +++ b/src/StellaOps.Concelier.Connector.Common.Tests/Xml/XmlSchemaValidatorTests.cs @@ -3,10 +3,10 @@ using System.Xml; using System.Xml.Linq; using System.Xml.Schema; using Microsoft.Extensions.Logging.Abstractions; -using ConcelierXmlSchemaValidator = StellaOps.Concelier.Source.Common.Xml.XmlSchemaValidator; -using ConcelierXmlSchemaValidationException = StellaOps.Concelier.Source.Common.Xml.XmlSchemaValidationException; +using ConcelierXmlSchemaValidator = StellaOps.Concelier.Connector.Common.Xml.XmlSchemaValidator; +using ConcelierXmlSchemaValidationException = StellaOps.Concelier.Connector.Common.Xml.XmlSchemaValidationException; -namespace StellaOps.Concelier.Source.Common.Tests.Xml; +namespace StellaOps.Concelier.Connector.Common.Tests.Xml; public sealed class XmlSchemaValidatorTests { diff --git a/src/StellaOps.Concelier.Source.Common/AGENTS.md b/src/StellaOps.Concelier.Connector.Common/AGENTS.md similarity index 95% rename from src/StellaOps.Concelier.Source.Common/AGENTS.md rename to src/StellaOps.Concelier.Connector.Common/AGENTS.md index bd58523e..52be2af8 100644 --- a/src/StellaOps.Concelier.Source.Common/AGENTS.md +++ b/src/StellaOps.Concelier.Connector.Common/AGENTS.md @@ -26,6 +26,6 @@ Out: connector-specific schemas/mapping rules, merge precedence. - Logs include uri, status, retries, etag; redact tokens and auth headers. - Distributed tracing hooks and per-connector counters should be wired centrally for consistent observability. ## Tests -- Author and review coverage in `../StellaOps.Concelier.Source.Common.Tests`. +- Author and review coverage in `../StellaOps.Concelier.Connector.Common.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. diff --git a/src/StellaOps.Concelier.Source.Common/Cursors/PaginationPlanner.cs b/src/StellaOps.Concelier.Connector.Common/Cursors/PaginationPlanner.cs similarity index 91% rename from src/StellaOps.Concelier.Source.Common/Cursors/PaginationPlanner.cs rename to src/StellaOps.Concelier.Connector.Common/Cursors/PaginationPlanner.cs index cb3fffe3..2b49bac5 100644 --- a/src/StellaOps.Concelier.Source.Common/Cursors/PaginationPlanner.cs +++ b/src/StellaOps.Concelier.Connector.Common/Cursors/PaginationPlanner.cs @@ -1,4 +1,4 @@ -namespace StellaOps.Concelier.Source.Common.Cursors; +namespace StellaOps.Concelier.Connector.Common.Cursors; /// /// Provides helpers for computing pagination start indices for sources that expose total result counts. diff --git a/src/StellaOps.Concelier.Source.Common/Cursors/TimeWindowCursorOptions.cs b/src/StellaOps.Concelier.Connector.Common/Cursors/TimeWindowCursorOptions.cs similarity index 92% rename from src/StellaOps.Concelier.Source.Common/Cursors/TimeWindowCursorOptions.cs rename to src/StellaOps.Concelier.Connector.Common/Cursors/TimeWindowCursorOptions.cs index dbd380ac..a256db10 100644 --- a/src/StellaOps.Concelier.Source.Common/Cursors/TimeWindowCursorOptions.cs +++ b/src/StellaOps.Concelier.Connector.Common/Cursors/TimeWindowCursorOptions.cs @@ -1,4 +1,4 @@ -namespace StellaOps.Concelier.Source.Common.Cursors; +namespace StellaOps.Concelier.Connector.Common.Cursors; /// /// Configuration applied when advancing sliding time-window cursors. diff --git a/src/StellaOps.Concelier.Source.Common/Cursors/TimeWindowCursorPlanner.cs b/src/StellaOps.Concelier.Connector.Common/Cursors/TimeWindowCursorPlanner.cs similarity index 92% rename from src/StellaOps.Concelier.Source.Common/Cursors/TimeWindowCursorPlanner.cs rename to src/StellaOps.Concelier.Connector.Common/Cursors/TimeWindowCursorPlanner.cs index 3616c8b5..2c0941d5 100644 --- a/src/StellaOps.Concelier.Source.Common/Cursors/TimeWindowCursorPlanner.cs +++ b/src/StellaOps.Concelier.Connector.Common/Cursors/TimeWindowCursorPlanner.cs @@ -1,4 +1,4 @@ -namespace StellaOps.Concelier.Source.Common.Cursors; +namespace StellaOps.Concelier.Connector.Common.Cursors; /// /// Utility methods for computing sliding time-window ranges used by connectors. diff --git a/src/StellaOps.Concelier.Source.Common/Cursors/TimeWindowCursorState.cs b/src/StellaOps.Concelier.Connector.Common/Cursors/TimeWindowCursorState.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Common/Cursors/TimeWindowCursorState.cs rename to src/StellaOps.Concelier.Connector.Common/Cursors/TimeWindowCursorState.cs index 5343e578..cd664936 100644 --- a/src/StellaOps.Concelier.Source.Common/Cursors/TimeWindowCursorState.cs +++ b/src/StellaOps.Concelier.Connector.Common/Cursors/TimeWindowCursorState.cs @@ -1,6 +1,6 @@ using MongoDB.Bson; -namespace StellaOps.Concelier.Source.Common.Cursors; +namespace StellaOps.Concelier.Connector.Common.Cursors; /// /// Represents the persisted state of a sliding time-window cursor. diff --git a/src/StellaOps.Concelier.Source.Common/DocumentStatuses.cs b/src/StellaOps.Concelier.Connector.Common/DocumentStatuses.cs similarity index 91% rename from src/StellaOps.Concelier.Source.Common/DocumentStatuses.cs rename to src/StellaOps.Concelier.Connector.Common/DocumentStatuses.cs index d76d28e1..1207c2b3 100644 --- a/src/StellaOps.Concelier.Source.Common/DocumentStatuses.cs +++ b/src/StellaOps.Concelier.Connector.Common/DocumentStatuses.cs @@ -1,4 +1,4 @@ -namespace StellaOps.Concelier.Source.Common; +namespace StellaOps.Concelier.Connector.Common; /// /// Well-known lifecycle statuses for raw source documents as they move through fetch/parse/map stages. diff --git a/src/StellaOps.Concelier.Source.Common/Fetch/CryptoJitterSource.cs b/src/StellaOps.Concelier.Connector.Common/Fetch/CryptoJitterSource.cs similarity index 92% rename from src/StellaOps.Concelier.Source.Common/Fetch/CryptoJitterSource.cs rename to src/StellaOps.Concelier.Connector.Common/Fetch/CryptoJitterSource.cs index 2eca2ea2..1110fa8c 100644 --- a/src/StellaOps.Concelier.Source.Common/Fetch/CryptoJitterSource.cs +++ b/src/StellaOps.Concelier.Connector.Common/Fetch/CryptoJitterSource.cs @@ -1,6 +1,6 @@ using System.Security.Cryptography; -namespace StellaOps.Concelier.Source.Common.Fetch; +namespace StellaOps.Concelier.Connector.Common.Fetch; /// /// Jitter source backed by for thread-safe, high-entropy delays. diff --git a/src/StellaOps.Concelier.Source.Common/Fetch/IJitterSource.cs b/src/StellaOps.Concelier.Connector.Common/Fetch/IJitterSource.cs similarity index 75% rename from src/StellaOps.Concelier.Source.Common/Fetch/IJitterSource.cs rename to src/StellaOps.Concelier.Connector.Common/Fetch/IJitterSource.cs index fbb73dba..ff2874e6 100644 --- a/src/StellaOps.Concelier.Source.Common/Fetch/IJitterSource.cs +++ b/src/StellaOps.Concelier.Connector.Common/Fetch/IJitterSource.cs @@ -1,4 +1,4 @@ -namespace StellaOps.Concelier.Source.Common.Fetch; +namespace StellaOps.Concelier.Connector.Common.Fetch; /// /// Produces random jitter durations used to decorrelate retries. diff --git a/src/StellaOps.Concelier.Source.Common/Fetch/RawDocumentStorage.cs b/src/StellaOps.Concelier.Connector.Common/Fetch/RawDocumentStorage.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Common/Fetch/RawDocumentStorage.cs rename to src/StellaOps.Concelier.Connector.Common/Fetch/RawDocumentStorage.cs index 55ec6f93..0590e201 100644 --- a/src/StellaOps.Concelier.Source.Common/Fetch/RawDocumentStorage.cs +++ b/src/StellaOps.Concelier.Connector.Common/Fetch/RawDocumentStorage.cs @@ -2,7 +2,7 @@ using MongoDB.Bson; using MongoDB.Driver; using MongoDB.Driver.GridFS; -namespace StellaOps.Concelier.Source.Common.Fetch; +namespace StellaOps.Concelier.Connector.Common.Fetch; /// /// Handles persistence of raw upstream documents in GridFS buckets for later parsing. diff --git a/src/StellaOps.Concelier.Source.Common/Fetch/SourceFetchContentResult.cs b/src/StellaOps.Concelier.Connector.Common/Fetch/SourceFetchContentResult.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Common/Fetch/SourceFetchContentResult.cs rename to src/StellaOps.Concelier.Connector.Common/Fetch/SourceFetchContentResult.cs index 96762c12..f1cd1dbd 100644 --- a/src/StellaOps.Concelier.Source.Common/Fetch/SourceFetchContentResult.cs +++ b/src/StellaOps.Concelier.Connector.Common/Fetch/SourceFetchContentResult.cs @@ -1,6 +1,6 @@ using System.Net; -namespace StellaOps.Concelier.Source.Common.Fetch; +namespace StellaOps.Concelier.Connector.Common.Fetch; /// /// Result of fetching raw response content without persisting a document. diff --git a/src/StellaOps.Concelier.Source.Common/Fetch/SourceFetchRequest.cs b/src/StellaOps.Concelier.Connector.Common/Fetch/SourceFetchRequest.cs similarity index 89% rename from src/StellaOps.Concelier.Source.Common/Fetch/SourceFetchRequest.cs rename to src/StellaOps.Concelier.Connector.Common/Fetch/SourceFetchRequest.cs index 9c27cda4..4d4b0bac 100644 --- a/src/StellaOps.Concelier.Source.Common/Fetch/SourceFetchRequest.cs +++ b/src/StellaOps.Concelier.Connector.Common/Fetch/SourceFetchRequest.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.Net.Http; -namespace StellaOps.Concelier.Source.Common.Fetch; +namespace StellaOps.Concelier.Connector.Common.Fetch; /// /// Parameters describing a fetch operation for a source connector. diff --git a/src/StellaOps.Concelier.Source.Common/Fetch/SourceFetchResult.cs b/src/StellaOps.Concelier.Connector.Common/Fetch/SourceFetchResult.cs similarity index 92% rename from src/StellaOps.Concelier.Source.Common/Fetch/SourceFetchResult.cs rename to src/StellaOps.Concelier.Connector.Common/Fetch/SourceFetchResult.cs index e09ada4e..417e07ee 100644 --- a/src/StellaOps.Concelier.Source.Common/Fetch/SourceFetchResult.cs +++ b/src/StellaOps.Concelier.Connector.Common/Fetch/SourceFetchResult.cs @@ -1,7 +1,7 @@ using System.Net; using StellaOps.Concelier.Storage.Mongo.Documents; -namespace StellaOps.Concelier.Source.Common.Fetch; +namespace StellaOps.Concelier.Connector.Common.Fetch; /// /// Outcome of fetching a raw document from an upstream source. diff --git a/src/StellaOps.Concelier.Source.Common/Fetch/SourceFetchService.cs b/src/StellaOps.Concelier.Connector.Common/Fetch/SourceFetchService.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Common/Fetch/SourceFetchService.cs rename to src/StellaOps.Concelier.Connector.Common/Fetch/SourceFetchService.cs index ed7564bd..43c0d292 100644 --- a/src/StellaOps.Concelier.Source.Common/Fetch/SourceFetchService.cs +++ b/src/StellaOps.Concelier.Connector.Common/Fetch/SourceFetchService.cs @@ -9,12 +9,12 @@ using System.Text; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using MongoDB.Bson; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Common.Telemetry; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Common.Telemetry; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Documents; -namespace StellaOps.Concelier.Source.Common.Fetch; +namespace StellaOps.Concelier.Connector.Common.Fetch; /// /// Executes HTTP fetches for connectors, capturing raw responses with metadata for downstream stages. diff --git a/src/StellaOps.Concelier.Source.Common/Fetch/SourceRetryPolicy.cs b/src/StellaOps.Concelier.Connector.Common/Fetch/SourceRetryPolicy.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Common/Fetch/SourceRetryPolicy.cs rename to src/StellaOps.Concelier.Connector.Common/Fetch/SourceRetryPolicy.cs index 24a1d77a..b6c4bd63 100644 --- a/src/StellaOps.Concelier.Source.Common/Fetch/SourceRetryPolicy.cs +++ b/src/StellaOps.Concelier.Connector.Common/Fetch/SourceRetryPolicy.cs @@ -1,7 +1,7 @@ using System.Globalization; using System.Net; -namespace StellaOps.Concelier.Source.Common.Fetch; +namespace StellaOps.Concelier.Connector.Common.Fetch; /// /// Provides retry/backoff behavior for source HTTP fetches. diff --git a/src/StellaOps.Concelier.Source.Common/Html/HtmlContentSanitizer.cs b/src/StellaOps.Concelier.Connector.Common/Html/HtmlContentSanitizer.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Common/Html/HtmlContentSanitizer.cs rename to src/StellaOps.Concelier.Connector.Common/Html/HtmlContentSanitizer.cs index 010dc26b..bb0144ec 100644 --- a/src/StellaOps.Concelier.Source.Common/Html/HtmlContentSanitizer.cs +++ b/src/StellaOps.Concelier.Connector.Common/Html/HtmlContentSanitizer.cs @@ -1,9 +1,9 @@ using System.Linq; using AngleSharp.Dom; using AngleSharp.Html.Parser; -using StellaOps.Concelier.Source.Common.Url; +using StellaOps.Concelier.Connector.Common.Url; -namespace StellaOps.Concelier.Source.Common.Html; +namespace StellaOps.Concelier.Connector.Common.Html; /// /// Sanitizes untrusted HTML fragments produced by upstream advisories. diff --git a/src/StellaOps.Concelier.Source.Common/Http/AllowlistedHttpMessageHandler.cs b/src/StellaOps.Concelier.Connector.Common/Http/AllowlistedHttpMessageHandler.cs similarity index 93% rename from src/StellaOps.Concelier.Source.Common/Http/AllowlistedHttpMessageHandler.cs rename to src/StellaOps.Concelier.Connector.Common/Http/AllowlistedHttpMessageHandler.cs index c1597f9f..5cb1dc10 100644 --- a/src/StellaOps.Concelier.Source.Common/Http/AllowlistedHttpMessageHandler.cs +++ b/src/StellaOps.Concelier.Connector.Common/Http/AllowlistedHttpMessageHandler.cs @@ -1,6 +1,6 @@ using System.Net.Http.Headers; -namespace StellaOps.Concelier.Source.Common.Http; +namespace StellaOps.Concelier.Connector.Common.Http; /// /// Delegating handler that enforces an allowlist of destination hosts for outbound requests. diff --git a/src/StellaOps.Concelier.Source.Common/Http/ServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.Common/Http/ServiceCollectionExtensions.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Common/Http/ServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.Common/Http/ServiceCollectionExtensions.cs index 6ef25fca..255b3f95 100644 --- a/src/StellaOps.Concelier.Source.Common/Http/ServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.Common/Http/ServiceCollectionExtensions.cs @@ -4,9 +4,9 @@ using System.Net.Security; using System.Security.Cryptography.X509Certificates; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Common.Xml; +using StellaOps.Concelier.Connector.Common.Xml; -namespace StellaOps.Concelier.Source.Common.Http; +namespace StellaOps.Concelier.Connector.Common.Http; public static class ServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Source.Common/Http/SourceHttpClientConfigurationBinder.cs b/src/StellaOps.Concelier.Connector.Common/Http/SourceHttpClientConfigurationBinder.cs similarity index 99% rename from src/StellaOps.Concelier.Source.Common/Http/SourceHttpClientConfigurationBinder.cs rename to src/StellaOps.Concelier.Connector.Common/Http/SourceHttpClientConfigurationBinder.cs index 72013453..e4ef917d 100644 --- a/src/StellaOps.Concelier.Source.Common/Http/SourceHttpClientConfigurationBinder.cs +++ b/src/StellaOps.Concelier.Connector.Common/Http/SourceHttpClientConfigurationBinder.cs @@ -9,7 +9,7 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; -namespace StellaOps.Concelier.Source.Common.Http; +namespace StellaOps.Concelier.Connector.Common.Http; internal static class SourceHttpClientConfigurationBinder { diff --git a/src/StellaOps.Concelier.Source.Common/Http/SourceHttpClientOptions.cs b/src/StellaOps.Concelier.Connector.Common/Http/SourceHttpClientOptions.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Common/Http/SourceHttpClientOptions.cs rename to src/StellaOps.Concelier.Connector.Common/Http/SourceHttpClientOptions.cs index cb76578f..8b5958cd 100644 --- a/src/StellaOps.Concelier.Source.Common/Http/SourceHttpClientOptions.cs +++ b/src/StellaOps.Concelier.Connector.Common/Http/SourceHttpClientOptions.cs @@ -4,7 +4,7 @@ using System.Net.Http; using System.Net.Security; using System.Security.Cryptography.X509Certificates; -namespace StellaOps.Concelier.Source.Common.Http; +namespace StellaOps.Concelier.Connector.Common.Http; /// /// Configuration applied to named HTTP clients used by connectors. diff --git a/src/StellaOps.Concelier.Source.Common/Json/IJsonSchemaValidator.cs b/src/StellaOps.Concelier.Connector.Common/Json/IJsonSchemaValidator.cs similarity index 73% rename from src/StellaOps.Concelier.Source.Common/Json/IJsonSchemaValidator.cs rename to src/StellaOps.Concelier.Connector.Common/Json/IJsonSchemaValidator.cs index 251a2d01..c74df3a2 100644 --- a/src/StellaOps.Concelier.Source.Common/Json/IJsonSchemaValidator.cs +++ b/src/StellaOps.Concelier.Connector.Common/Json/IJsonSchemaValidator.cs @@ -1,7 +1,7 @@ using System.Text.Json; using Json.Schema; -namespace StellaOps.Concelier.Source.Common.Json; +namespace StellaOps.Concelier.Connector.Common.Json; public interface IJsonSchemaValidator { diff --git a/src/StellaOps.Concelier.Source.Common/Json/JsonSchemaValidationError.cs b/src/StellaOps.Concelier.Connector.Common/Json/JsonSchemaValidationError.cs similarity index 70% rename from src/StellaOps.Concelier.Source.Common/Json/JsonSchemaValidationError.cs rename to src/StellaOps.Concelier.Connector.Common/Json/JsonSchemaValidationError.cs index af498f18..08da59c1 100644 --- a/src/StellaOps.Concelier.Source.Common/Json/JsonSchemaValidationError.cs +++ b/src/StellaOps.Concelier.Connector.Common/Json/JsonSchemaValidationError.cs @@ -1,4 +1,4 @@ -namespace StellaOps.Concelier.Source.Common.Json; +namespace StellaOps.Concelier.Connector.Common.Json; public sealed record JsonSchemaValidationError( string InstanceLocation, diff --git a/src/StellaOps.Concelier.Source.Common/Json/JsonSchemaValidationException.cs b/src/StellaOps.Concelier.Connector.Common/Json/JsonSchemaValidationException.cs similarity index 87% rename from src/StellaOps.Concelier.Source.Common/Json/JsonSchemaValidationException.cs rename to src/StellaOps.Concelier.Connector.Common/Json/JsonSchemaValidationException.cs index 5fca53b4..2451e89d 100644 --- a/src/StellaOps.Concelier.Source.Common/Json/JsonSchemaValidationException.cs +++ b/src/StellaOps.Concelier.Connector.Common/Json/JsonSchemaValidationException.cs @@ -1,4 +1,4 @@ -namespace StellaOps.Concelier.Source.Common.Json; +namespace StellaOps.Concelier.Connector.Common.Json; public sealed class JsonSchemaValidationException : Exception { diff --git a/src/StellaOps.Concelier.Source.Common/Json/JsonSchemaValidator.cs b/src/StellaOps.Concelier.Connector.Common/Json/JsonSchemaValidator.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Common/Json/JsonSchemaValidator.cs rename to src/StellaOps.Concelier.Connector.Common/Json/JsonSchemaValidator.cs index 0e561b1d..cf2e9d9d 100644 --- a/src/StellaOps.Concelier.Source.Common/Json/JsonSchemaValidator.cs +++ b/src/StellaOps.Concelier.Connector.Common/Json/JsonSchemaValidator.cs @@ -4,7 +4,7 @@ using System.Text.Json; using Json.Schema; using Microsoft.Extensions.Logging; -namespace StellaOps.Concelier.Source.Common.Json; +namespace StellaOps.Concelier.Connector.Common.Json; public sealed class JsonSchemaValidator : IJsonSchemaValidator { private readonly ILogger _logger; diff --git a/src/StellaOps.Concelier.Source.Common/Packages/PackageCoordinateHelper.cs b/src/StellaOps.Concelier.Connector.Common/Packages/PackageCoordinateHelper.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Common/Packages/PackageCoordinateHelper.cs rename to src/StellaOps.Concelier.Connector.Common/Packages/PackageCoordinateHelper.cs index 1447c86e..953f8e91 100644 --- a/src/StellaOps.Concelier.Source.Common/Packages/PackageCoordinateHelper.cs +++ b/src/StellaOps.Concelier.Connector.Common/Packages/PackageCoordinateHelper.cs @@ -3,7 +3,7 @@ using System.Text; using NuGet.Versioning; using StellaOps.Concelier.Normalization.Identifiers; -namespace StellaOps.Concelier.Source.Common.Packages; +namespace StellaOps.Concelier.Connector.Common.Packages; /// /// Shared helpers for working with Package URLs and SemVer coordinates inside connectors. diff --git a/src/StellaOps.Concelier.Source.Common/Pdf/PdfTextExtractor.cs b/src/StellaOps.Concelier.Connector.Common/Pdf/PdfTextExtractor.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Common/Pdf/PdfTextExtractor.cs rename to src/StellaOps.Concelier.Connector.Common/Pdf/PdfTextExtractor.cs index a9e9d5c6..5a6d50ef 100644 --- a/src/StellaOps.Concelier.Source.Common/Pdf/PdfTextExtractor.cs +++ b/src/StellaOps.Concelier.Connector.Common/Pdf/PdfTextExtractor.cs @@ -6,7 +6,7 @@ using System.Text; using UglyToad.PdfPig; using UglyToad.PdfPig.Content; -namespace StellaOps.Concelier.Source.Common.Pdf; +namespace StellaOps.Concelier.Connector.Common.Pdf; /// /// Extracts text from PDF advisories using UglyToad.PdfPig without requiring native dependencies. diff --git a/src/StellaOps.Concelier.Connector.Common/Properties/AssemblyInfo.cs b/src/StellaOps.Concelier.Connector.Common/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..b3710fdc --- /dev/null +++ b/src/StellaOps.Concelier.Connector.Common/Properties/AssemblyInfo.cs @@ -0,0 +1,3 @@ +using System.Runtime.CompilerServices; + +[assembly: InternalsVisibleTo("StellaOps.Concelier.Connector.Common.Tests")] diff --git a/src/StellaOps.Concelier.Source.Common/StellaOps.Concelier.Source.Common.csproj b/src/StellaOps.Concelier.Connector.Common/StellaOps.Concelier.Connector.Common.csproj similarity index 100% rename from src/StellaOps.Concelier.Source.Common/StellaOps.Concelier.Source.Common.csproj rename to src/StellaOps.Concelier.Connector.Common/StellaOps.Concelier.Connector.Common.csproj diff --git a/src/StellaOps.Concelier.Source.Common/TASKS.md b/src/StellaOps.Concelier.Connector.Common/TASKS.md similarity index 100% rename from src/StellaOps.Concelier.Source.Common/TASKS.md rename to src/StellaOps.Concelier.Connector.Common/TASKS.md diff --git a/src/StellaOps.Concelier.Source.Common/Telemetry/SourceDiagnostics.cs b/src/StellaOps.Concelier.Connector.Common/Telemetry/SourceDiagnostics.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Common/Telemetry/SourceDiagnostics.cs rename to src/StellaOps.Concelier.Connector.Common/Telemetry/SourceDiagnostics.cs index 1afb0b1b..f3af5ee3 100644 --- a/src/StellaOps.Concelier.Source.Common/Telemetry/SourceDiagnostics.cs +++ b/src/StellaOps.Concelier.Connector.Common/Telemetry/SourceDiagnostics.cs @@ -2,15 +2,15 @@ using System.Diagnostics; using System.Diagnostics.Metrics; using System.Net; -namespace StellaOps.Concelier.Source.Common.Telemetry; +namespace StellaOps.Concelier.Connector.Common.Telemetry; /// /// Central telemetry instrumentation for connector HTTP operations. /// public static class SourceDiagnostics { - public const string ActivitySourceName = "StellaOps.Concelier.Source"; - public const string MeterName = "StellaOps.Concelier.Source"; + public const string ActivitySourceName = "StellaOps.Concelier.Connector"; + public const string MeterName = "StellaOps.Concelier.Connector"; private static readonly ActivitySource ActivitySource = new(ActivitySourceName); private static readonly Meter Meter = new(MeterName); diff --git a/src/StellaOps.Concelier.Source.Common/Testing/CannedHttpMessageHandler.cs b/src/StellaOps.Concelier.Connector.Common/Testing/CannedHttpMessageHandler.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Common/Testing/CannedHttpMessageHandler.cs rename to src/StellaOps.Concelier.Connector.Common/Testing/CannedHttpMessageHandler.cs index d60e27ac..49e0e339 100644 --- a/src/StellaOps.Concelier.Source.Common/Testing/CannedHttpMessageHandler.cs +++ b/src/StellaOps.Concelier.Connector.Common/Testing/CannedHttpMessageHandler.cs @@ -3,7 +3,7 @@ using System.Net; using System.Net.Http; using System.Text; -namespace StellaOps.Concelier.Source.Common.Testing; +namespace StellaOps.Concelier.Connector.Common.Testing; /// /// Deterministic HTTP handler used by tests to supply canned responses keyed by request URI and method. diff --git a/src/StellaOps.Concelier.Source.Common/Url/UrlNormalizer.cs b/src/StellaOps.Concelier.Connector.Common/Url/UrlNormalizer.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Common/Url/UrlNormalizer.cs rename to src/StellaOps.Concelier.Connector.Common/Url/UrlNormalizer.cs index 2630ebcf..bc4ef357 100644 --- a/src/StellaOps.Concelier.Source.Common/Url/UrlNormalizer.cs +++ b/src/StellaOps.Concelier.Connector.Common/Url/UrlNormalizer.cs @@ -1,4 +1,4 @@ -namespace StellaOps.Concelier.Source.Common.Url; +namespace StellaOps.Concelier.Connector.Common.Url; /// /// Utilities for normalizing URLs from upstream feeds. diff --git a/src/StellaOps.Concelier.Source.Common/Xml/IXmlSchemaValidator.cs b/src/StellaOps.Concelier.Connector.Common/Xml/IXmlSchemaValidator.cs similarity index 74% rename from src/StellaOps.Concelier.Source.Common/Xml/IXmlSchemaValidator.cs rename to src/StellaOps.Concelier.Connector.Common/Xml/IXmlSchemaValidator.cs index 06d970e1..62b1cfa3 100644 --- a/src/StellaOps.Concelier.Source.Common/Xml/IXmlSchemaValidator.cs +++ b/src/StellaOps.Concelier.Connector.Common/Xml/IXmlSchemaValidator.cs @@ -1,7 +1,7 @@ using System.Xml.Linq; using System.Xml.Schema; -namespace StellaOps.Concelier.Source.Common.Xml; +namespace StellaOps.Concelier.Connector.Common.Xml; public interface IXmlSchemaValidator { diff --git a/src/StellaOps.Concelier.Source.Common/Xml/XmlSchemaValidationError.cs b/src/StellaOps.Concelier.Connector.Common/Xml/XmlSchemaValidationError.cs similarity index 59% rename from src/StellaOps.Concelier.Source.Common/Xml/XmlSchemaValidationError.cs rename to src/StellaOps.Concelier.Connector.Common/Xml/XmlSchemaValidationError.cs index e2c062c2..de35c49b 100644 --- a/src/StellaOps.Concelier.Source.Common/Xml/XmlSchemaValidationError.cs +++ b/src/StellaOps.Concelier.Connector.Common/Xml/XmlSchemaValidationError.cs @@ -1,3 +1,3 @@ -namespace StellaOps.Concelier.Source.Common.Xml; +namespace StellaOps.Concelier.Connector.Common.Xml; public sealed record XmlSchemaValidationError(string Message, string? Location); diff --git a/src/StellaOps.Concelier.Source.Common/Xml/XmlSchemaValidationException.cs b/src/StellaOps.Concelier.Connector.Common/Xml/XmlSchemaValidationException.cs similarity index 88% rename from src/StellaOps.Concelier.Source.Common/Xml/XmlSchemaValidationException.cs rename to src/StellaOps.Concelier.Connector.Common/Xml/XmlSchemaValidationException.cs index 5c483f39..cfd9f101 100644 --- a/src/StellaOps.Concelier.Source.Common/Xml/XmlSchemaValidationException.cs +++ b/src/StellaOps.Concelier.Connector.Common/Xml/XmlSchemaValidationException.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -namespace StellaOps.Concelier.Source.Common.Xml; +namespace StellaOps.Concelier.Connector.Common.Xml; public sealed class XmlSchemaValidationException : Exception { diff --git a/src/StellaOps.Concelier.Source.Common/Xml/XmlSchemaValidator.cs b/src/StellaOps.Concelier.Connector.Common/Xml/XmlSchemaValidator.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Common/Xml/XmlSchemaValidator.cs rename to src/StellaOps.Concelier.Connector.Common/Xml/XmlSchemaValidator.cs index 1203e501..fab7d904 100644 --- a/src/StellaOps.Concelier.Source.Common/Xml/XmlSchemaValidator.cs +++ b/src/StellaOps.Concelier.Connector.Common/Xml/XmlSchemaValidator.cs @@ -4,7 +4,7 @@ using System.Xml.Linq; using System.Xml.Schema; using Microsoft.Extensions.Logging; -namespace StellaOps.Concelier.Source.Common.Xml; +namespace StellaOps.Concelier.Connector.Common.Xml; public sealed class XmlSchemaValidator : IXmlSchemaValidator { diff --git a/src/StellaOps.Concelier.Source.Cve.Tests/Cve/CveConnectorTests.cs b/src/StellaOps.Concelier.Connector.Cve.Tests/Cve/CveConnectorTests.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Cve.Tests/Cve/CveConnectorTests.cs rename to src/StellaOps.Concelier.Connector.Cve.Tests/Cve/CveConnectorTests.cs index bb5757ee..f38f2a6d 100644 --- a/src/StellaOps.Concelier.Source.Cve.Tests/Cve/CveConnectorTests.cs +++ b/src/StellaOps.Concelier.Connector.Cve.Tests/Cve/CveConnectorTests.cs @@ -10,10 +10,10 @@ using Microsoft.Extensions.Options; using MongoDB.Bson; using MongoDB.Driver; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Common.Testing; -using StellaOps.Concelier.Source.Cve.Configuration; -using StellaOps.Concelier.Source.Cve.Internal; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Common.Testing; +using StellaOps.Concelier.Connector.Cve.Configuration; +using StellaOps.Concelier.Connector.Cve.Internal; using StellaOps.Concelier.Testing; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; @@ -21,7 +21,7 @@ using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using Xunit.Abstractions; -namespace StellaOps.Concelier.Source.Cve.Tests; +namespace StellaOps.Concelier.Connector.Cve.Tests; [Collection("mongo-fixture")] public sealed class CveConnectorTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.Cve.Tests/Fixtures/cve-CVE-2024-0001.json b/src/StellaOps.Concelier.Connector.Cve.Tests/Fixtures/cve-CVE-2024-0001.json similarity index 100% rename from src/StellaOps.Concelier.Source.Cve.Tests/Fixtures/cve-CVE-2024-0001.json rename to src/StellaOps.Concelier.Connector.Cve.Tests/Fixtures/cve-CVE-2024-0001.json diff --git a/src/StellaOps.Concelier.Source.Cve.Tests/Fixtures/cve-list.json b/src/StellaOps.Concelier.Connector.Cve.Tests/Fixtures/cve-list.json similarity index 100% rename from src/StellaOps.Concelier.Source.Cve.Tests/Fixtures/cve-list.json rename to src/StellaOps.Concelier.Connector.Cve.Tests/Fixtures/cve-list.json diff --git a/src/StellaOps.Concelier.Source.Cve.Tests/Fixtures/expected-CVE-2024-0001.json b/src/StellaOps.Concelier.Connector.Cve.Tests/Fixtures/expected-CVE-2024-0001.json similarity index 100% rename from src/StellaOps.Concelier.Source.Cve.Tests/Fixtures/expected-CVE-2024-0001.json rename to src/StellaOps.Concelier.Connector.Cve.Tests/Fixtures/expected-CVE-2024-0001.json diff --git a/src/StellaOps.Concelier.Source.Ghsa.Tests/StellaOps.Concelier.Source.Ghsa.Tests.csproj b/src/StellaOps.Concelier.Connector.Cve.Tests/StellaOps.Concelier.Connector.Cve.Tests.csproj similarity index 73% rename from src/StellaOps.Concelier.Source.Ghsa.Tests/StellaOps.Concelier.Source.Ghsa.Tests.csproj rename to src/StellaOps.Concelier.Connector.Cve.Tests/StellaOps.Concelier.Connector.Cve.Tests.csproj index 662bd40a..ab4cf6ca 100644 --- a/src/StellaOps.Concelier.Source.Ghsa.Tests/StellaOps.Concelier.Source.Ghsa.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.Cve.Tests/StellaOps.Concelier.Connector.Cve.Tests.csproj @@ -5,9 +5,9 @@ enable - - + + diff --git a/src/StellaOps.Concelier.Source.Cve/AGENTS.md b/src/StellaOps.Concelier.Connector.Cve/AGENTS.md similarity index 94% rename from src/StellaOps.Concelier.Source.Cve/AGENTS.md rename to src/StellaOps.Concelier.Connector.Cve/AGENTS.md index d29264e6..1f96a9e5 100644 --- a/src/StellaOps.Concelier.Source.Cve/AGENTS.md +++ b/src/StellaOps.Concelier.Connector.Cve/AGENTS.md @@ -33,6 +33,6 @@ Out of scope: - Sanitize and validate payloads before persistence. ## Tests -- Add `StellaOps.Concelier.Source.Cve.Tests` with canned CVE JSON fixtures covering fetch/parse/map. +- Add `StellaOps.Concelier.Connector.Cve.Tests` with canned CVE JSON fixtures covering fetch/parse/map. - Snapshot canonical advisories; include env flag for fixture regeneration. - Ensure deterministic ordering and timestamp handling. diff --git a/src/StellaOps.Concelier.Source.Cve/Configuration/CveOptions.cs b/src/StellaOps.Concelier.Connector.Cve/Configuration/CveOptions.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Cve/Configuration/CveOptions.cs rename to src/StellaOps.Concelier.Connector.Cve/Configuration/CveOptions.cs index 5d4348f2..093d5868 100644 --- a/src/StellaOps.Concelier.Source.Cve/Configuration/CveOptions.cs +++ b/src/StellaOps.Concelier.Connector.Cve/Configuration/CveOptions.cs @@ -2,7 +2,7 @@ using System; using System.Diagnostics.CodeAnalysis; using System.IO; -namespace StellaOps.Concelier.Source.Cve.Configuration; +namespace StellaOps.Concelier.Connector.Cve.Configuration; public sealed class CveOptions { diff --git a/src/StellaOps.Concelier.Source.Cve/CveConnector.cs b/src/StellaOps.Concelier.Connector.Cve/CveConnector.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Cve/CveConnector.cs rename to src/StellaOps.Concelier.Connector.Cve/CveConnector.cs index e1b9874e..99f3a018 100644 --- a/src/StellaOps.Concelier.Source.Cve/CveConnector.cs +++ b/src/StellaOps.Concelier.Connector.Cve/CveConnector.cs @@ -11,17 +11,17 @@ using Microsoft.Extensions.Options; using MongoDB.Bson; using StellaOps.Concelier.Models; using StellaOps.Concelier.Normalization.Text; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Cve.Configuration; -using StellaOps.Concelier.Source.Cve.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Cve.Configuration; +using StellaOps.Concelier.Connector.Cve.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Cve; +namespace StellaOps.Concelier.Connector.Cve; public sealed class CveConnector : IFeedConnector { diff --git a/src/StellaOps.Concelier.Source.Cve/CveConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.Cve/CveConnectorPlugin.cs similarity index 91% rename from src/StellaOps.Concelier.Source.Cve/CveConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.Cve/CveConnectorPlugin.cs index 4824d4f0..9fbf00fa 100644 --- a/src/StellaOps.Concelier.Source.Cve/CveConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.Cve/CveConnectorPlugin.cs @@ -1,7 +1,7 @@ using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Cve; +namespace StellaOps.Concelier.Connector.Cve; public sealed class CveConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.Cve/CveDependencyInjectionRoutine.cs b/src/StellaOps.Concelier.Connector.Cve/CveDependencyInjectionRoutine.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Cve/CveDependencyInjectionRoutine.cs rename to src/StellaOps.Concelier.Connector.Cve/CveDependencyInjectionRoutine.cs index 2ad0d994..1a9f44a1 100644 --- a/src/StellaOps.Concelier.Source.Cve/CveDependencyInjectionRoutine.cs +++ b/src/StellaOps.Concelier.Connector.Cve/CveDependencyInjectionRoutine.cs @@ -3,9 +3,9 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using StellaOps.DependencyInjection; using StellaOps.Concelier.Core.Jobs; -using StellaOps.Concelier.Source.Cve.Configuration; +using StellaOps.Concelier.Connector.Cve.Configuration; -namespace StellaOps.Concelier.Source.Cve; +namespace StellaOps.Concelier.Connector.Cve; public sealed class CveDependencyInjectionRoutine : IDependencyInjectionRoutine { diff --git a/src/StellaOps.Concelier.Source.Cve/CveServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.Cve/CveServiceCollectionExtensions.cs similarity index 88% rename from src/StellaOps.Concelier.Source.Cve/CveServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.Cve/CveServiceCollectionExtensions.cs index cd761685..2435fd37 100644 --- a/src/StellaOps.Concelier.Source.Cve/CveServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.Cve/CveServiceCollectionExtensions.cs @@ -1,10 +1,10 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Cve.Configuration; -using StellaOps.Concelier.Source.Cve.Internal; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Cve.Configuration; +using StellaOps.Concelier.Connector.Cve.Internal; -namespace StellaOps.Concelier.Source.Cve; +namespace StellaOps.Concelier.Connector.Cve; public static class CveServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Source.Cve/Internal/CveCursor.cs b/src/StellaOps.Concelier.Connector.Cve/Internal/CveCursor.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Cve/Internal/CveCursor.cs rename to src/StellaOps.Concelier.Connector.Cve/Internal/CveCursor.cs index 9b6c19e8..9909facf 100644 --- a/src/StellaOps.Concelier.Source.Cve/Internal/CveCursor.cs +++ b/src/StellaOps.Concelier.Connector.Cve/Internal/CveCursor.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Linq; using MongoDB.Bson; -namespace StellaOps.Concelier.Source.Cve.Internal; +namespace StellaOps.Concelier.Connector.Cve.Internal; internal sealed record CveCursor( DateTimeOffset? LastModifiedExclusive, diff --git a/src/StellaOps.Concelier.Source.Cve/Internal/CveDiagnostics.cs b/src/StellaOps.Concelier.Connector.Cve/Internal/CveDiagnostics.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Cve/Internal/CveDiagnostics.cs rename to src/StellaOps.Concelier.Connector.Cve/Internal/CveDiagnostics.cs index 26477bdc..4778c860 100644 --- a/src/StellaOps.Concelier.Source.Cve/Internal/CveDiagnostics.cs +++ b/src/StellaOps.Concelier.Connector.Cve/Internal/CveDiagnostics.cs @@ -1,10 +1,10 @@ using System.Diagnostics.Metrics; -namespace StellaOps.Concelier.Source.Cve.Internal; +namespace StellaOps.Concelier.Connector.Cve.Internal; public sealed class CveDiagnostics : IDisposable { - public const string MeterName = "StellaOps.Concelier.Source.Cve"; + public const string MeterName = "StellaOps.Concelier.Connector.Cve"; public const string MeterVersion = "1.0.0"; private readonly Meter _meter; diff --git a/src/StellaOps.Concelier.Source.Cve/Internal/CveListParser.cs b/src/StellaOps.Concelier.Connector.Cve/Internal/CveListParser.cs similarity index 99% rename from src/StellaOps.Concelier.Source.Cve/Internal/CveListParser.cs rename to src/StellaOps.Concelier.Connector.Cve/Internal/CveListParser.cs index 7843ba7d..8e680cae 100644 --- a/src/StellaOps.Concelier.Source.Cve/Internal/CveListParser.cs +++ b/src/StellaOps.Concelier.Connector.Cve/Internal/CveListParser.cs @@ -1,7 +1,7 @@ using System.Globalization; using System.Text.Json; -namespace StellaOps.Concelier.Source.Cve.Internal; +namespace StellaOps.Concelier.Connector.Cve.Internal; internal static class CveListParser { diff --git a/src/StellaOps.Concelier.Source.Cve/Internal/CveMapper.cs b/src/StellaOps.Concelier.Connector.Cve/Internal/CveMapper.cs similarity index 99% rename from src/StellaOps.Concelier.Source.Cve/Internal/CveMapper.cs rename to src/StellaOps.Concelier.Connector.Cve/Internal/CveMapper.cs index ef0f4626..79619b73 100644 --- a/src/StellaOps.Concelier.Source.Cve/Internal/CveMapper.cs +++ b/src/StellaOps.Concelier.Connector.Cve/Internal/CveMapper.cs @@ -5,7 +5,7 @@ using StellaOps.Concelier.Normalization.Cvss; using StellaOps.Concelier.Storage.Mongo.Documents; using NuGet.Versioning; -namespace StellaOps.Concelier.Source.Cve.Internal; +namespace StellaOps.Concelier.Connector.Cve.Internal; internal static class CveMapper { diff --git a/src/StellaOps.Concelier.Source.Cve/Internal/CveRecordDto.cs b/src/StellaOps.Concelier.Connector.Cve/Internal/CveRecordDto.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Cve/Internal/CveRecordDto.cs rename to src/StellaOps.Concelier.Connector.Cve/Internal/CveRecordDto.cs index ceda5444..a2488e03 100644 --- a/src/StellaOps.Concelier.Source.Cve/Internal/CveRecordDto.cs +++ b/src/StellaOps.Concelier.Connector.Cve/Internal/CveRecordDto.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace StellaOps.Concelier.Source.Cve.Internal; +namespace StellaOps.Concelier.Connector.Cve.Internal; internal sealed record CveRecordDto { diff --git a/src/StellaOps.Concelier.Source.Cve/Internal/CveRecordParser.cs b/src/StellaOps.Concelier.Connector.Cve/Internal/CveRecordParser.cs similarity index 99% rename from src/StellaOps.Concelier.Source.Cve/Internal/CveRecordParser.cs rename to src/StellaOps.Concelier.Connector.Cve/Internal/CveRecordParser.cs index f6247ac6..32364dbc 100644 --- a/src/StellaOps.Concelier.Source.Cve/Internal/CveRecordParser.cs +++ b/src/StellaOps.Concelier.Connector.Cve/Internal/CveRecordParser.cs @@ -3,7 +3,7 @@ using System.Linq; using System.Text.Json; using StellaOps.Concelier.Normalization.Text; -namespace StellaOps.Concelier.Source.Cve.Internal; +namespace StellaOps.Concelier.Connector.Cve.Internal; internal static class CveRecordParser { diff --git a/src/StellaOps.Concelier.Source.Cve/Jobs.cs b/src/StellaOps.Concelier.Connector.Cve/Jobs.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Cve/Jobs.cs rename to src/StellaOps.Concelier.Connector.Cve/Jobs.cs index 34714a3b..6d8023bb 100644 --- a/src/StellaOps.Concelier.Source.Cve/Jobs.cs +++ b/src/StellaOps.Concelier.Connector.Cve/Jobs.cs @@ -1,6 +1,6 @@ using StellaOps.Concelier.Core.Jobs; -namespace StellaOps.Concelier.Source.Cve; +namespace StellaOps.Concelier.Connector.Cve; internal static class CveJobKinds { diff --git a/src/StellaOps.Concelier.Source.Cve/StellaOps.Concelier.Source.Cve.csproj b/src/StellaOps.Concelier.Connector.Cve/StellaOps.Concelier.Connector.Cve.csproj similarity index 75% rename from src/StellaOps.Concelier.Source.Cve/StellaOps.Concelier.Source.Cve.csproj rename to src/StellaOps.Concelier.Connector.Cve/StellaOps.Concelier.Connector.Cve.csproj index 7066145d..d97e92d3 100644 --- a/src/StellaOps.Concelier.Source.Cve/StellaOps.Concelier.Source.Cve.csproj +++ b/src/StellaOps.Concelier.Connector.Cve/StellaOps.Concelier.Connector.Cve.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/StellaOps.Concelier.Source.Cve/TASKS.md b/src/StellaOps.Concelier.Connector.Cve/TASKS.md similarity index 91% rename from src/StellaOps.Concelier.Source.Cve/TASKS.md rename to src/StellaOps.Concelier.Connector.Cve/TASKS.md index 3c385609..94f5041f 100644 --- a/src/StellaOps.Concelier.Source.Cve/TASKS.md +++ b/src/StellaOps.Concelier.Connector.Cve/TASKS.md @@ -5,8 +5,8 @@ |Fetch/cursor implementation|BE-Conn-CVE|Source.Common, Storage.Mongo|**DONE (2025-10-10)** – Time-window + page-aware cursor with SourceFetchService fetching list/detail pairs, resumable state persisted via `CveCursor`.| |DTOs & parser|BE-Conn-CVE|Source.Common|**DONE (2025-10-10)** – `CveRecordParser` and DTOs capture aliases, references, metrics, vendor ranges; sanitises text and timestamps.| |Canonical mapping & range primitives|BE-Conn-CVE|Models|**DONE (2025-10-10)** – `CveMapper` emits canonical advisories, vendor range primitives, SemVer/range statuses, references, CVSS normalization.
2025-10-11 research trail: confirm subsequent MR adds `NormalizedVersions` shaped like `[{"scheme":"semver","type":"range","min":"","minInclusive":true,"max":"","maxInclusive":false,"notes":"nvd:CVE-2025-XXXX"}]` so storage provenance joins continue to work.| -|Deterministic tests & fixtures|QA|Testing|**DONE (2025-10-10)** – Added `StellaOps.Concelier.Source.Cve.Tests` harness with canned fixtures + snapshot regression covering fetch/parse/map.| +|Deterministic tests & fixtures|QA|Testing|**DONE (2025-10-10)** – Added `StellaOps.Concelier.Connector.Cve.Tests` harness with canned fixtures + snapshot regression covering fetch/parse/map.| |Observability & docs|DevEx|Docs|**DONE (2025-10-10)** – Diagnostics meter (`cve.fetch.*`, etc.) wired; options/usage documented via `CveServiceCollectionExtensions`.| |Operator rollout playbook|BE-Conn-CVE, Ops|Docs|**DONE (2025-10-12)** – Refreshed `docs/ops/concelier-cve-kev-operations.md` with credential checklist, smoke book, PromQL guardrails, and linked Grafana pack (`docs/ops/concelier-cve-kev-grafana-dashboard.json`).| |Live smoke & monitoring|QA, BE-Conn-CVE|WebService, Observability|**DONE (2025-10-15)** – Executed connector harness smoke using CVE Services sample window (CVE-2024-0001), confirmed fetch/parse/map telemetry (`cve.fetch.*`, `cve.map.success`) all incremented once, and archived the summary log + Grafana import guidance in `docs/ops/concelier-cve-kev-operations.md` (“Staging smoke 2025-10-15”).| -|FEEDCONN-CVE-02-003 Normalized versions rollout|BE-Conn-CVE|Models `FEEDMODELS-SCHEMA-01-003`, Normalization playbook|**DONE (2025-10-12)** – Confirmed SemVer primitives map to normalized rules with `cve:{cveId}:{identifier}` notes and refreshed snapshots; `dotnet test src/StellaOps.Concelier.Source.Cve.Tests` passes on net10 preview.| +|FEEDCONN-CVE-02-003 Normalized versions rollout|BE-Conn-CVE|Models `FEEDMODELS-SCHEMA-01-003`, Normalization playbook|**DONE (2025-10-12)** – Confirmed SemVer primitives map to normalized rules with `cve:{cveId}:{identifier}` notes and refreshed snapshots; `dotnet test src/StellaOps.Concelier.Connector.Cve.Tests` passes on net10 preview.| diff --git a/src/StellaOps.Concelier.Source.Distro.Debian.Tests/DebianConnectorTests.cs b/src/StellaOps.Concelier.Connector.Distro.Debian.Tests/DebianConnectorTests.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Distro.Debian.Tests/DebianConnectorTests.cs rename to src/StellaOps.Concelier.Connector.Distro.Debian.Tests/DebianConnectorTests.cs index 444e5c00..12975e9c 100644 --- a/src/StellaOps.Concelier.Source.Distro.Debian.Tests/DebianConnectorTests.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Debian.Tests/DebianConnectorTests.cs @@ -16,10 +16,10 @@ using Microsoft.Extensions.Options; using Microsoft.Extensions.Time.Testing; using MongoDB.Driver; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Common.Testing; -using StellaOps.Concelier.Source.Distro.Debian.Configuration; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Common.Testing; +using StellaOps.Concelier.Connector.Distro.Debian.Configuration; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; @@ -28,7 +28,7 @@ using StellaOps.Concelier.Testing; using Xunit; using Xunit.Abstractions; -namespace StellaOps.Concelier.Source.Distro.Debian.Tests; +namespace StellaOps.Concelier.Connector.Distro.Debian.Tests; [Collection("mongo-fixture")] public sealed class DebianConnectorTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.Distro.Debian.Tests/DebianMapperTests.cs b/src/StellaOps.Concelier.Connector.Distro.Debian.Tests/DebianMapperTests.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Distro.Debian.Tests/DebianMapperTests.cs rename to src/StellaOps.Concelier.Connector.Distro.Debian.Tests/DebianMapperTests.cs index 65b0c30c..8b75a5b0 100644 --- a/src/StellaOps.Concelier.Source.Distro.Debian.Tests/DebianMapperTests.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Debian.Tests/DebianMapperTests.cs @@ -1,11 +1,11 @@ using System; using Xunit; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Distro.Debian; -using StellaOps.Concelier.Source.Distro.Debian.Internal; +using StellaOps.Concelier.Connector.Distro.Debian; +using StellaOps.Concelier.Connector.Distro.Debian.Internal; using StellaOps.Concelier.Storage.Mongo.Documents; -namespace StellaOps.Concelier.Source.Distro.Debian.Tests; +namespace StellaOps.Concelier.Connector.Distro.Debian.Tests; public sealed class DebianMapperTests { diff --git a/src/StellaOps.Concelier.Source.Distro.Debian.Tests/Source/Distro/Debian/Fixtures/debian-detail-dsa-2024-123.html b/src/StellaOps.Concelier.Connector.Distro.Debian.Tests/Source/Distro/Debian/Fixtures/debian-detail-dsa-2024-123.html similarity index 100% rename from src/StellaOps.Concelier.Source.Distro.Debian.Tests/Source/Distro/Debian/Fixtures/debian-detail-dsa-2024-123.html rename to src/StellaOps.Concelier.Connector.Distro.Debian.Tests/Source/Distro/Debian/Fixtures/debian-detail-dsa-2024-123.html diff --git a/src/StellaOps.Concelier.Source.Distro.Debian.Tests/Source/Distro/Debian/Fixtures/debian-detail-dsa-2024-124.html b/src/StellaOps.Concelier.Connector.Distro.Debian.Tests/Source/Distro/Debian/Fixtures/debian-detail-dsa-2024-124.html similarity index 100% rename from src/StellaOps.Concelier.Source.Distro.Debian.Tests/Source/Distro/Debian/Fixtures/debian-detail-dsa-2024-124.html rename to src/StellaOps.Concelier.Connector.Distro.Debian.Tests/Source/Distro/Debian/Fixtures/debian-detail-dsa-2024-124.html diff --git a/src/StellaOps.Concelier.Source.Distro.Debian.Tests/Source/Distro/Debian/Fixtures/debian-list.txt b/src/StellaOps.Concelier.Connector.Distro.Debian.Tests/Source/Distro/Debian/Fixtures/debian-list.txt similarity index 100% rename from src/StellaOps.Concelier.Source.Distro.Debian.Tests/Source/Distro/Debian/Fixtures/debian-list.txt rename to src/StellaOps.Concelier.Connector.Distro.Debian.Tests/Source/Distro/Debian/Fixtures/debian-list.txt diff --git a/src/StellaOps.Concelier.Source.Distro.Debian.Tests/StellaOps.Concelier.Source.Distro.Debian.Tests.csproj b/src/StellaOps.Concelier.Connector.Distro.Debian.Tests/StellaOps.Concelier.Connector.Distro.Debian.Tests.csproj similarity index 62% rename from src/StellaOps.Concelier.Source.Distro.Debian.Tests/StellaOps.Concelier.Source.Distro.Debian.Tests.csproj rename to src/StellaOps.Concelier.Connector.Distro.Debian.Tests/StellaOps.Concelier.Connector.Distro.Debian.Tests.csproj index eee68959..373f2b25 100644 --- a/src/StellaOps.Concelier.Source.Distro.Debian.Tests/StellaOps.Concelier.Source.Distro.Debian.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.Distro.Debian.Tests/StellaOps.Concelier.Connector.Distro.Debian.Tests.csproj @@ -6,8 +6,8 @@ - - + + diff --git a/src/StellaOps.Concelier.Connector.Distro.Debian/AssemblyInfo.cs b/src/StellaOps.Concelier.Connector.Distro.Debian/AssemblyInfo.cs new file mode 100644 index 00000000..ed109896 --- /dev/null +++ b/src/StellaOps.Concelier.Connector.Distro.Debian/AssemblyInfo.cs @@ -0,0 +1,3 @@ +using System.Runtime.CompilerServices; + +[assembly: InternalsVisibleTo("StellaOps.Concelier.Connector.Distro.Debian.Tests")] diff --git a/src/StellaOps.Concelier.Source.Distro.Debian/Configuration/DebianOptions.cs b/src/StellaOps.Concelier.Connector.Distro.Debian/Configuration/DebianOptions.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Distro.Debian/Configuration/DebianOptions.cs rename to src/StellaOps.Concelier.Connector.Distro.Debian/Configuration/DebianOptions.cs index 7157b6ff..f7573f23 100644 --- a/src/StellaOps.Concelier.Source.Distro.Debian/Configuration/DebianOptions.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Debian/Configuration/DebianOptions.cs @@ -1,6 +1,6 @@ using System; -namespace StellaOps.Concelier.Source.Distro.Debian.Configuration; +namespace StellaOps.Concelier.Connector.Distro.Debian.Configuration; public sealed class DebianOptions { diff --git a/src/StellaOps.Concelier.Source.Distro.Debian/DebianConnector.cs b/src/StellaOps.Concelier.Connector.Distro.Debian/DebianConnector.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Distro.Debian/DebianConnector.cs rename to src/StellaOps.Concelier.Connector.Distro.Debian/DebianConnector.cs index 31bbc0ac..3666fd92 100644 --- a/src/StellaOps.Concelier.Source.Distro.Debian/DebianConnector.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Debian/DebianConnector.cs @@ -10,17 +10,17 @@ using Microsoft.Extensions.Options; using MongoDB.Bson; using MongoDB.Bson.IO; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Distro.Debian.Configuration; -using StellaOps.Concelier.Source.Distro.Debian.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Distro.Debian.Configuration; +using StellaOps.Concelier.Connector.Distro.Debian.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Distro.Debian; +namespace StellaOps.Concelier.Connector.Distro.Debian; public sealed class DebianConnector : IFeedConnector { diff --git a/src/StellaOps.Concelier.Source.Distro.Debian/DebianConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.Distro.Debian/DebianConnectorPlugin.cs similarity index 88% rename from src/StellaOps.Concelier.Source.Distro.Debian/DebianConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.Distro.Debian/DebianConnectorPlugin.cs index 7e78d15d..18df76e0 100644 --- a/src/StellaOps.Concelier.Source.Distro.Debian/DebianConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Debian/DebianConnectorPlugin.cs @@ -4,7 +4,7 @@ using System; using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Distro.Debian; +namespace StellaOps.Concelier.Connector.Distro.Debian; public sealed class DebianConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.Distro.Debian/DebianDependencyInjectionRoutine.cs b/src/StellaOps.Concelier.Connector.Distro.Debian/DebianDependencyInjectionRoutine.cs similarity index 91% rename from src/StellaOps.Concelier.Source.Distro.Debian/DebianDependencyInjectionRoutine.cs rename to src/StellaOps.Concelier.Connector.Distro.Debian/DebianDependencyInjectionRoutine.cs index 718fbb24..f4dc07dd 100644 --- a/src/StellaOps.Concelier.Source.Distro.Debian/DebianDependencyInjectionRoutine.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Debian/DebianDependencyInjectionRoutine.cs @@ -3,9 +3,9 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using StellaOps.DependencyInjection; using StellaOps.Concelier.Core.Jobs; -using StellaOps.Concelier.Source.Distro.Debian.Configuration; +using StellaOps.Concelier.Connector.Distro.Debian.Configuration; -namespace StellaOps.Concelier.Source.Distro.Debian; +namespace StellaOps.Concelier.Connector.Distro.Debian; public sealed class DebianDependencyInjectionRoutine : IDependencyInjectionRoutine { diff --git a/src/StellaOps.Concelier.Source.Distro.Debian/DebianServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.Distro.Debian/DebianServiceCollectionExtensions.cs similarity index 87% rename from src/StellaOps.Concelier.Source.Distro.Debian/DebianServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.Distro.Debian/DebianServiceCollectionExtensions.cs index 595384b7..f1d03a6a 100644 --- a/src/StellaOps.Concelier.Source.Distro.Debian/DebianServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Debian/DebianServiceCollectionExtensions.cs @@ -1,10 +1,10 @@ using System; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Distro.Debian.Configuration; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Distro.Debian.Configuration; -namespace StellaOps.Concelier.Source.Distro.Debian; +namespace StellaOps.Concelier.Connector.Distro.Debian; public static class DebianServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Source.Distro.Debian/Internal/DebianAdvisoryDto.cs b/src/StellaOps.Concelier.Connector.Distro.Debian/Internal/DebianAdvisoryDto.cs similarity index 87% rename from src/StellaOps.Concelier.Source.Distro.Debian/Internal/DebianAdvisoryDto.cs rename to src/StellaOps.Concelier.Connector.Distro.Debian/Internal/DebianAdvisoryDto.cs index a2d10450..729acc60 100644 --- a/src/StellaOps.Concelier.Source.Distro.Debian/Internal/DebianAdvisoryDto.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Debian/Internal/DebianAdvisoryDto.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -namespace StellaOps.Concelier.Source.Distro.Debian.Internal; +namespace StellaOps.Concelier.Connector.Distro.Debian.Internal; internal sealed record DebianAdvisoryDto( string AdvisoryId, diff --git a/src/StellaOps.Concelier.Source.Distro.Debian/Internal/DebianCursor.cs b/src/StellaOps.Concelier.Connector.Distro.Debian/Internal/DebianCursor.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Distro.Debian/Internal/DebianCursor.cs rename to src/StellaOps.Concelier.Connector.Distro.Debian/Internal/DebianCursor.cs index cb1d7c1b..a8c77bb5 100644 --- a/src/StellaOps.Concelier.Source.Distro.Debian/Internal/DebianCursor.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Debian/Internal/DebianCursor.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using MongoDB.Bson; -namespace StellaOps.Concelier.Source.Distro.Debian.Internal; +namespace StellaOps.Concelier.Connector.Distro.Debian.Internal; internal sealed record DebianCursor( DateTimeOffset? LastPublished, diff --git a/src/StellaOps.Concelier.Source.Distro.Debian/Internal/DebianDetailMetadata.cs b/src/StellaOps.Concelier.Connector.Distro.Debian/Internal/DebianDetailMetadata.cs similarity index 76% rename from src/StellaOps.Concelier.Source.Distro.Debian/Internal/DebianDetailMetadata.cs rename to src/StellaOps.Concelier.Connector.Distro.Debian/Internal/DebianDetailMetadata.cs index 067bd0db..2d08e5e4 100644 --- a/src/StellaOps.Concelier.Source.Distro.Debian/Internal/DebianDetailMetadata.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Debian/Internal/DebianDetailMetadata.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -namespace StellaOps.Concelier.Source.Distro.Debian.Internal; +namespace StellaOps.Concelier.Connector.Distro.Debian.Internal; internal sealed record DebianDetailMetadata( string AdvisoryId, diff --git a/src/StellaOps.Concelier.Source.Distro.Debian/Internal/DebianFetchCacheEntry.cs b/src/StellaOps.Concelier.Connector.Distro.Debian/Internal/DebianFetchCacheEntry.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Distro.Debian/Internal/DebianFetchCacheEntry.cs rename to src/StellaOps.Concelier.Connector.Distro.Debian/Internal/DebianFetchCacheEntry.cs index db66b96e..c06e49ff 100644 --- a/src/StellaOps.Concelier.Source.Distro.Debian/Internal/DebianFetchCacheEntry.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Debian/Internal/DebianFetchCacheEntry.cs @@ -1,7 +1,7 @@ using System; using MongoDB.Bson; -namespace StellaOps.Concelier.Source.Distro.Debian.Internal; +namespace StellaOps.Concelier.Connector.Distro.Debian.Internal; internal sealed record DebianFetchCacheEntry(string? ETag, DateTimeOffset? LastModified) { diff --git a/src/StellaOps.Concelier.Source.Distro.Debian/Internal/DebianHtmlParser.cs b/src/StellaOps.Concelier.Connector.Distro.Debian/Internal/DebianHtmlParser.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Distro.Debian/Internal/DebianHtmlParser.cs rename to src/StellaOps.Concelier.Connector.Distro.Debian/Internal/DebianHtmlParser.cs index cc407884..3438995f 100644 --- a/src/StellaOps.Concelier.Source.Distro.Debian/Internal/DebianHtmlParser.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Debian/Internal/DebianHtmlParser.cs @@ -5,7 +5,7 @@ using System.Linq; using AngleSharp.Html.Dom; using AngleSharp.Html.Parser; -namespace StellaOps.Concelier.Source.Distro.Debian.Internal; +namespace StellaOps.Concelier.Connector.Distro.Debian.Internal; internal static class DebianHtmlParser { diff --git a/src/StellaOps.Concelier.Source.Distro.Debian/Internal/DebianListEntry.cs b/src/StellaOps.Concelier.Connector.Distro.Debian/Internal/DebianListEntry.cs similarity index 74% rename from src/StellaOps.Concelier.Source.Distro.Debian/Internal/DebianListEntry.cs rename to src/StellaOps.Concelier.Connector.Distro.Debian/Internal/DebianListEntry.cs index f87e5124..658126f5 100644 --- a/src/StellaOps.Concelier.Source.Distro.Debian/Internal/DebianListEntry.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Debian/Internal/DebianListEntry.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -namespace StellaOps.Concelier.Source.Distro.Debian.Internal; +namespace StellaOps.Concelier.Connector.Distro.Debian.Internal; internal sealed record DebianListEntry( string AdvisoryId, diff --git a/src/StellaOps.Concelier.Source.Distro.Debian/Internal/DebianListParser.cs b/src/StellaOps.Concelier.Connector.Distro.Debian/Internal/DebianListParser.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Distro.Debian/Internal/DebianListParser.cs rename to src/StellaOps.Concelier.Connector.Distro.Debian/Internal/DebianListParser.cs index a4648ee0..7a6d5e17 100644 --- a/src/StellaOps.Concelier.Source.Distro.Debian/Internal/DebianListParser.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Debian/Internal/DebianListParser.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Globalization; using System.Text.RegularExpressions; -namespace StellaOps.Concelier.Source.Distro.Debian.Internal; +namespace StellaOps.Concelier.Connector.Distro.Debian.Internal; internal static class DebianListParser { diff --git a/src/StellaOps.Concelier.Source.Distro.Debian/Internal/DebianMapper.cs b/src/StellaOps.Concelier.Connector.Distro.Debian/Internal/DebianMapper.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Distro.Debian/Internal/DebianMapper.cs rename to src/StellaOps.Concelier.Connector.Distro.Debian/Internal/DebianMapper.cs index 231d54cb..9570c2b2 100644 --- a/src/StellaOps.Concelier.Source.Distro.Debian/Internal/DebianMapper.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Debian/Internal/DebianMapper.cs @@ -3,10 +3,10 @@ using System.Collections.Generic; using System.Linq; using StellaOps.Concelier.Models; using StellaOps.Concelier.Normalization.Distro; -using StellaOps.Concelier.Source.Common; +using StellaOps.Concelier.Connector.Common; using StellaOps.Concelier.Storage.Mongo.Documents; -namespace StellaOps.Concelier.Source.Distro.Debian.Internal; +namespace StellaOps.Concelier.Connector.Distro.Debian.Internal; internal static class DebianMapper { diff --git a/src/StellaOps.Concelier.Source.Distro.Debian/Jobs.cs b/src/StellaOps.Concelier.Connector.Distro.Debian/Jobs.cs similarity index 93% rename from src/StellaOps.Concelier.Source.Distro.Debian/Jobs.cs rename to src/StellaOps.Concelier.Connector.Distro.Debian/Jobs.cs index 07046411..f0526fe3 100644 --- a/src/StellaOps.Concelier.Source.Distro.Debian/Jobs.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Debian/Jobs.cs @@ -3,7 +3,7 @@ using System.Threading; using System.Threading.Tasks; using StellaOps.Concelier.Core.Jobs; -namespace StellaOps.Concelier.Source.Distro.Debian; +namespace StellaOps.Concelier.Connector.Distro.Debian; internal static class DebianJobKinds { diff --git a/src/StellaOps.Concelier.Source.Distro.Debian/StellaOps.Concelier.Source.Distro.Debian.csproj b/src/StellaOps.Concelier.Connector.Distro.Debian/StellaOps.Concelier.Connector.Distro.Debian.csproj similarity index 82% rename from src/StellaOps.Concelier.Source.Distro.Debian/StellaOps.Concelier.Source.Distro.Debian.csproj rename to src/StellaOps.Concelier.Connector.Distro.Debian/StellaOps.Concelier.Connector.Distro.Debian.csproj index 51f2b1a6..23396f92 100644 --- a/src/StellaOps.Concelier.Source.Distro.Debian/StellaOps.Concelier.Source.Distro.Debian.csproj +++ b/src/StellaOps.Concelier.Connector.Distro.Debian/StellaOps.Concelier.Connector.Distro.Debian.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/Fixtures/csaf-rhsa-2025-0001.json b/src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/Fixtures/csaf-rhsa-2025-0001.json similarity index 100% rename from src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/Fixtures/csaf-rhsa-2025-0001.json rename to src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/Fixtures/csaf-rhsa-2025-0001.json diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/Fixtures/csaf-rhsa-2025-0002.json b/src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/Fixtures/csaf-rhsa-2025-0002.json similarity index 100% rename from src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/Fixtures/csaf-rhsa-2025-0002.json rename to src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/Fixtures/csaf-rhsa-2025-0002.json diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/Fixtures/csaf-rhsa-2025-0003.json b/src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/Fixtures/csaf-rhsa-2025-0003.json similarity index 100% rename from src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/Fixtures/csaf-rhsa-2025-0003.json rename to src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/Fixtures/csaf-rhsa-2025-0003.json diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/Fixtures/rhsa-2025-0001.snapshot.json b/src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/Fixtures/rhsa-2025-0001.snapshot.json similarity index 100% rename from src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/Fixtures/rhsa-2025-0001.snapshot.json rename to src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/Fixtures/rhsa-2025-0001.snapshot.json diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/Fixtures/rhsa-2025-0002.snapshot.json b/src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/Fixtures/rhsa-2025-0002.snapshot.json similarity index 100% rename from src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/Fixtures/rhsa-2025-0002.snapshot.json rename to src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/Fixtures/rhsa-2025-0002.snapshot.json diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/Fixtures/rhsa-2025-0003.snapshot.json b/src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/Fixtures/rhsa-2025-0003.snapshot.json similarity index 100% rename from src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/Fixtures/rhsa-2025-0003.snapshot.json rename to src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/Fixtures/rhsa-2025-0003.snapshot.json diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/Fixtures/summary-page1-repeat.json b/src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/Fixtures/summary-page1-repeat.json similarity index 100% rename from src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/Fixtures/summary-page1-repeat.json rename to src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/Fixtures/summary-page1-repeat.json diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/Fixtures/summary-page1.json b/src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/Fixtures/summary-page1.json similarity index 100% rename from src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/Fixtures/summary-page1.json rename to src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/Fixtures/summary-page1.json diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/Fixtures/summary-page2.json b/src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/Fixtures/summary-page2.json similarity index 100% rename from src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/Fixtures/summary-page2.json rename to src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/Fixtures/summary-page2.json diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/Fixtures/summary-page3.json b/src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/Fixtures/summary-page3.json similarity index 100% rename from src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/Fixtures/summary-page3.json rename to src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/Fixtures/summary-page3.json diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/RedHatConnectorHarnessTests.cs b/src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/RedHatConnectorHarnessTests.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/RedHatConnectorHarnessTests.cs rename to src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/RedHatConnectorHarnessTests.cs index 00ae9baf..74686796 100644 --- a/src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/RedHatConnectorHarnessTests.cs +++ b/src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/RedHatConnectorHarnessTests.cs @@ -3,15 +3,15 @@ using System.IO; using System.Linq; using Microsoft.Extensions.DependencyInjection; using MongoDB.Bson; -using StellaOps.Concelier.Source.Common.Testing; -using StellaOps.Concelier.Source.Distro.RedHat; -using StellaOps.Concelier.Source.Distro.RedHat.Configuration; +using StellaOps.Concelier.Connector.Common.Testing; +using StellaOps.Concelier.Connector.Distro.RedHat; +using StellaOps.Concelier.Connector.Distro.RedHat.Configuration; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Testing; using StellaOps.Concelier.Testing; -namespace StellaOps.Concelier.Source.Distro.RedHat.Tests; +namespace StellaOps.Concelier.Connector.Distro.RedHat.Tests; [Collection("mongo-fixture")] public sealed class RedHatConnectorHarnessTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/RedHatConnectorTests.cs b/src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/RedHatConnectorTests.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/RedHatConnectorTests.cs rename to src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/RedHatConnectorTests.cs index d98c7c48..ce2a4534 100644 --- a/src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/RedHatConnectorTests.cs +++ b/src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/RedHatConnectorTests.cs @@ -14,14 +14,14 @@ using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Options; using Microsoft.Extensions.Time.Testing; using MongoDB.Bson; -using StellaOps.Concelier.Source.Common; +using StellaOps.Concelier.Connector.Common; using StellaOps.Concelier.Core.Jobs; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Common.Testing; -using StellaOps.Concelier.Source.Distro.RedHat; -using StellaOps.Concelier.Source.Distro.RedHat.Configuration; -using StellaOps.Concelier.Source.Distro.RedHat.Internal; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Common.Testing; +using StellaOps.Concelier.Connector.Distro.RedHat; +using StellaOps.Concelier.Connector.Distro.RedHat.Configuration; +using StellaOps.Concelier.Connector.Distro.RedHat.Internal; using StellaOps.Concelier.Models; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; @@ -32,7 +32,7 @@ using StellaOps.Plugin; using Xunit; using Xunit.Abstractions; -namespace StellaOps.Concelier.Source.Distro.RedHat.Tests; +namespace StellaOps.Concelier.Connector.Distro.RedHat.Tests; [Collection("mongo-fixture")] public sealed class RedHatConnectorTests : IAsyncLifetime @@ -567,9 +567,9 @@ public sealed class RedHatConnectorTests : IAsyncLifetime services.Configure(schedulerOptions => { - var fetchType = Type.GetType("StellaOps.Concelier.Source.Distro.RedHat.RedHatFetchJob, StellaOps.Concelier.Source.Distro.RedHat", throwOnError: true)!; - var parseType = Type.GetType("StellaOps.Concelier.Source.Distro.RedHat.RedHatParseJob, StellaOps.Concelier.Source.Distro.RedHat", throwOnError: true)!; - var mapType = Type.GetType("StellaOps.Concelier.Source.Distro.RedHat.RedHatMapJob, StellaOps.Concelier.Source.Distro.RedHat", throwOnError: true)!; + var fetchType = Type.GetType("StellaOps.Concelier.Connector.Distro.RedHat.RedHatFetchJob, StellaOps.Concelier.Connector.Distro.RedHat", throwOnError: true)!; + var parseType = Type.GetType("StellaOps.Concelier.Connector.Distro.RedHat.RedHatParseJob, StellaOps.Concelier.Connector.Distro.RedHat", throwOnError: true)!; + var mapType = Type.GetType("StellaOps.Concelier.Connector.Distro.RedHat.RedHatMapJob, StellaOps.Concelier.Connector.Distro.RedHat", throwOnError: true)!; schedulerOptions.Definitions["source:redhat:fetch"] = new JobDefinition("source:redhat:fetch", fetchType, TimeSpan.FromMinutes(12), TimeSpan.FromMinutes(6), "0,15,30,45 * * * *", true); schedulerOptions.Definitions["source:redhat:parse"] = new JobDefinition("source:redhat:parse", parseType, TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(6), "5,20,35,50 * * * *", true); diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat.Tests/StellaOps.Concelier.Source.Distro.RedHat.Tests.csproj b/src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/StellaOps.Concelier.Connector.Distro.RedHat.Tests.csproj similarity index 70% rename from src/StellaOps.Concelier.Source.Distro.RedHat.Tests/StellaOps.Concelier.Source.Distro.RedHat.Tests.csproj rename to src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/StellaOps.Concelier.Connector.Distro.RedHat.Tests.csproj index fbcba581..591ae8de 100644 --- a/src/StellaOps.Concelier.Source.Distro.RedHat.Tests/StellaOps.Concelier.Source.Distro.RedHat.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/StellaOps.Concelier.Connector.Distro.RedHat.Tests.csproj @@ -6,8 +6,8 @@ - - + + diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat/AGENTS.md b/src/StellaOps.Concelier.Connector.Distro.RedHat/AGENTS.md similarity index 94% rename from src/StellaOps.Concelier.Source.Distro.RedHat/AGENTS.md rename to src/StellaOps.Concelier.Connector.Distro.RedHat/AGENTS.md index 81c82880..0394fed9 100644 --- a/src/StellaOps.Concelier.Source.Distro.RedHat/AGENTS.md +++ b/src/StellaOps.Concelier.Connector.Distro.RedHat/AGENTS.md @@ -22,6 +22,6 @@ Out: building RPM artifacts; cross-distro reconciliation beyond Red Hat. - Metrics: SourceDiagnostics publishes `concelier.source.http.*` counters/histograms tagged `concelier.source=redhat`, capturing fetch volumes, parse/OVAL failures, and map affected counts without bespoke metric names. - Logs: cursor bounds, advisory ids, NEVRA counts; allowlist Red Hat endpoints. ## Tests -- Author and review coverage in `../StellaOps.Concelier.Source.Distro.RedHat.Tests`. +- Author and review coverage in `../StellaOps.Concelier.Connector.Distro.RedHat.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. diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat/CONFLICT_RESOLVER_NOTES.md b/src/StellaOps.Concelier.Connector.Distro.RedHat/CONFLICT_RESOLVER_NOTES.md similarity index 83% rename from src/StellaOps.Concelier.Source.Distro.RedHat/CONFLICT_RESOLVER_NOTES.md rename to src/StellaOps.Concelier.Connector.Distro.RedHat/CONFLICT_RESOLVER_NOTES.md index ea4f3623..19bb2e1e 100644 --- a/src/StellaOps.Concelier.Source.Distro.RedHat/CONFLICT_RESOLVER_NOTES.md +++ b/src/StellaOps.Concelier.Connector.Distro.RedHat/CONFLICT_RESOLVER_NOTES.md @@ -18,8 +18,8 @@ The Red Hat connector fixtures were re-baselined after the model helper rollout ## Updated goldens -- `src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/Fixtures/rhsa-2025-0001.snapshot.json` -- `src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/Fixtures/rhsa-2025-0002.snapshot.json` -- `src/StellaOps.Concelier.Source.Distro.RedHat.Tests/RedHat/Fixtures/rhsa-2025-0003.snapshot.json` +- `src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/Fixtures/rhsa-2025-0001.snapshot.json` +- `src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/Fixtures/rhsa-2025-0002.snapshot.json` +- `src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/Fixtures/rhsa-2025-0003.snapshot.json` Keep these notes in sync with any future provenance or normalized-rule updates so the conflict resolver team can reason about fixture-driven regressions. diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat/Configuration/RedHatOptions.cs b/src/StellaOps.Concelier.Connector.Distro.RedHat/Configuration/RedHatOptions.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Distro.RedHat/Configuration/RedHatOptions.cs rename to src/StellaOps.Concelier.Connector.Distro.RedHat/Configuration/RedHatOptions.cs index 7523d365..f9d90b28 100644 --- a/src/StellaOps.Concelier.Source.Distro.RedHat/Configuration/RedHatOptions.cs +++ b/src/StellaOps.Concelier.Connector.Distro.RedHat/Configuration/RedHatOptions.cs @@ -1,4 +1,4 @@ -namespace StellaOps.Concelier.Source.Distro.RedHat.Configuration; +namespace StellaOps.Concelier.Connector.Distro.RedHat.Configuration; public sealed class RedHatOptions { diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat/Internal/Models/RedHatCsafModels.cs b/src/StellaOps.Concelier.Connector.Distro.RedHat/Internal/Models/RedHatCsafModels.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Distro.RedHat/Internal/Models/RedHatCsafModels.cs rename to src/StellaOps.Concelier.Connector.Distro.RedHat/Internal/Models/RedHatCsafModels.cs index 349959fc..d97167e3 100644 --- a/src/StellaOps.Concelier.Source.Distro.RedHat/Internal/Models/RedHatCsafModels.cs +++ b/src/StellaOps.Concelier.Connector.Distro.RedHat/Internal/Models/RedHatCsafModels.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json.Serialization; -namespace StellaOps.Concelier.Source.Distro.RedHat.Internal.Models; +namespace StellaOps.Concelier.Connector.Distro.RedHat.Internal.Models; internal sealed class RedHatCsafEnvelope { diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat/Internal/RedHatCursor.cs b/src/StellaOps.Concelier.Connector.Distro.RedHat/Internal/RedHatCursor.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Distro.RedHat/Internal/RedHatCursor.cs rename to src/StellaOps.Concelier.Connector.Distro.RedHat/Internal/RedHatCursor.cs index e2a2a5da..e8e107ff 100644 --- a/src/StellaOps.Concelier.Source.Distro.RedHat/Internal/RedHatCursor.cs +++ b/src/StellaOps.Concelier.Connector.Distro.RedHat/Internal/RedHatCursor.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using MongoDB.Bson; -namespace StellaOps.Concelier.Source.Distro.RedHat.Internal; +namespace StellaOps.Concelier.Connector.Distro.RedHat.Internal; internal sealed record RedHatCursor( DateTimeOffset? LastReleasedOn, diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat/Internal/RedHatMapper.cs b/src/StellaOps.Concelier.Connector.Distro.RedHat/Internal/RedHatMapper.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Distro.RedHat/Internal/RedHatMapper.cs rename to src/StellaOps.Concelier.Connector.Distro.RedHat/Internal/RedHatMapper.cs index f14ba468..448c88bf 100644 --- a/src/StellaOps.Concelier.Source.Distro.RedHat/Internal/RedHatMapper.cs +++ b/src/StellaOps.Concelier.Connector.Distro.RedHat/Internal/RedHatMapper.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text.Json; using System.Text.Json.Serialization; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Distro.RedHat.Internal.Models; +using StellaOps.Concelier.Connector.Distro.RedHat.Internal.Models; using StellaOps.Concelier.Normalization.Cvss; using StellaOps.Concelier.Normalization.Distro; using StellaOps.Concelier.Normalization.Identifiers; @@ -12,7 +12,7 @@ using StellaOps.Concelier.Normalization.Text; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; -namespace StellaOps.Concelier.Source.Distro.RedHat.Internal; +namespace StellaOps.Concelier.Connector.Distro.RedHat.Internal; internal static class RedHatMapper { diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat/Internal/RedHatSummaryItem.cs b/src/StellaOps.Concelier.Connector.Distro.RedHat/Internal/RedHatSummaryItem.cs similarity index 93% rename from src/StellaOps.Concelier.Source.Distro.RedHat/Internal/RedHatSummaryItem.cs rename to src/StellaOps.Concelier.Connector.Distro.RedHat/Internal/RedHatSummaryItem.cs index 9712d5d9..81afa8d7 100644 --- a/src/StellaOps.Concelier.Source.Distro.RedHat/Internal/RedHatSummaryItem.cs +++ b/src/StellaOps.Concelier.Connector.Distro.RedHat/Internal/RedHatSummaryItem.cs @@ -1,7 +1,7 @@ using System; using System.Text.Json; -namespace StellaOps.Concelier.Source.Distro.RedHat.Internal; +namespace StellaOps.Concelier.Connector.Distro.RedHat.Internal; internal readonly record struct RedHatSummaryItem(string AdvisoryId, DateTimeOffset ReleasedOn, Uri ResourceUri) { diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat/Jobs.cs b/src/StellaOps.Concelier.Connector.Distro.RedHat/Jobs.cs similarity index 93% rename from src/StellaOps.Concelier.Source.Distro.RedHat/Jobs.cs rename to src/StellaOps.Concelier.Connector.Distro.RedHat/Jobs.cs index d9477bd5..1ae03368 100644 --- a/src/StellaOps.Concelier.Source.Distro.RedHat/Jobs.cs +++ b/src/StellaOps.Concelier.Connector.Distro.RedHat/Jobs.cs @@ -3,7 +3,7 @@ using System.Threading; using System.Threading.Tasks; using StellaOps.Concelier.Core.Jobs; -namespace StellaOps.Concelier.Source.Distro.RedHat; +namespace StellaOps.Concelier.Connector.Distro.RedHat; internal static class RedHatJobKinds { diff --git a/src/StellaOps.Concelier.Connector.Distro.RedHat/Properties/AssemblyInfo.cs b/src/StellaOps.Concelier.Connector.Distro.RedHat/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..ad7d4030 --- /dev/null +++ b/src/StellaOps.Concelier.Connector.Distro.RedHat/Properties/AssemblyInfo.cs @@ -0,0 +1,3 @@ +using System.Runtime.CompilerServices; + +[assembly: InternalsVisibleTo("StellaOps.Concelier.Connector.Distro.RedHat.Tests")] diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat/RedHatConnector.cs b/src/StellaOps.Concelier.Connector.Distro.RedHat/RedHatConnector.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Distro.RedHat/RedHatConnector.cs rename to src/StellaOps.Concelier.Connector.Distro.RedHat/RedHatConnector.cs index 2b352119..5efab6be 100644 --- a/src/StellaOps.Concelier.Source.Distro.RedHat/RedHatConnector.cs +++ b/src/StellaOps.Concelier.Connector.Distro.RedHat/RedHatConnector.cs @@ -8,17 +8,17 @@ using Microsoft.Extensions.Options; using MongoDB.Bson; using MongoDB.Bson.IO; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Distro.RedHat.Configuration; -using StellaOps.Concelier.Source.Distro.RedHat.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Distro.RedHat.Configuration; +using StellaOps.Concelier.Connector.Distro.RedHat.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Distro.RedHat; +namespace StellaOps.Concelier.Connector.Distro.RedHat; public sealed class RedHatConnector : IFeedConnector { diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat/RedHatConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.Distro.RedHat/RedHatConnectorPlugin.cs similarity index 87% rename from src/StellaOps.Concelier.Source.Distro.RedHat/RedHatConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.Distro.RedHat/RedHatConnectorPlugin.cs index 40105a8a..4b5f39b3 100644 --- a/src/StellaOps.Concelier.Source.Distro.RedHat/RedHatConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.Distro.RedHat/RedHatConnectorPlugin.cs @@ -1,7 +1,7 @@ using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Distro.RedHat; +namespace StellaOps.Concelier.Connector.Distro.RedHat; public sealed class RedHatConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat/RedHatDependencyInjectionRoutine.cs b/src/StellaOps.Concelier.Connector.Distro.RedHat/RedHatDependencyInjectionRoutine.cs similarity index 91% rename from src/StellaOps.Concelier.Source.Distro.RedHat/RedHatDependencyInjectionRoutine.cs rename to src/StellaOps.Concelier.Connector.Distro.RedHat/RedHatDependencyInjectionRoutine.cs index 1fae4b2e..2cdacf7b 100644 --- a/src/StellaOps.Concelier.Source.Distro.RedHat/RedHatDependencyInjectionRoutine.cs +++ b/src/StellaOps.Concelier.Connector.Distro.RedHat/RedHatDependencyInjectionRoutine.cs @@ -3,9 +3,9 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using StellaOps.DependencyInjection; using StellaOps.Concelier.Core.Jobs; -using StellaOps.Concelier.Source.Distro.RedHat.Configuration; +using StellaOps.Concelier.Connector.Distro.RedHat.Configuration; -namespace StellaOps.Concelier.Source.Distro.RedHat; +namespace StellaOps.Concelier.Connector.Distro.RedHat; public sealed class RedHatDependencyInjectionRoutine : IDependencyInjectionRoutine { diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat/RedHatServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.Distro.RedHat/RedHatServiceCollectionExtensions.cs similarity index 85% rename from src/StellaOps.Concelier.Source.Distro.RedHat/RedHatServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.Distro.RedHat/RedHatServiceCollectionExtensions.cs index b494a2c4..d872d84e 100644 --- a/src/StellaOps.Concelier.Source.Distro.RedHat/RedHatServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.Distro.RedHat/RedHatServiceCollectionExtensions.cs @@ -1,10 +1,10 @@ using System; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Distro.RedHat.Configuration; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Distro.RedHat.Configuration; -namespace StellaOps.Concelier.Source.Distro.RedHat; +namespace StellaOps.Concelier.Connector.Distro.RedHat; public static class RedHatServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat/StellaOps.Concelier.Source.Distro.RedHat.csproj b/src/StellaOps.Concelier.Connector.Distro.RedHat/StellaOps.Concelier.Connector.Distro.RedHat.csproj similarity index 84% rename from src/StellaOps.Concelier.Source.Distro.RedHat/StellaOps.Concelier.Source.Distro.RedHat.csproj rename to src/StellaOps.Concelier.Connector.Distro.RedHat/StellaOps.Concelier.Connector.Distro.RedHat.csproj index 88efa00b..f04c7094 100644 --- a/src/StellaOps.Concelier.Source.Distro.RedHat/StellaOps.Concelier.Source.Distro.RedHat.csproj +++ b/src/StellaOps.Concelier.Connector.Distro.RedHat/StellaOps.Concelier.Connector.Distro.RedHat.csproj @@ -7,7 +7,7 @@ - + diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat/TASKS.md b/src/StellaOps.Concelier.Connector.Distro.RedHat/TASKS.md similarity index 100% rename from src/StellaOps.Concelier.Source.Distro.RedHat/TASKS.md rename to src/StellaOps.Concelier.Connector.Distro.RedHat/TASKS.md diff --git a/src/StellaOps.Concelier.Source.Distro.Suse.Tests/Source/Distro/Suse/Fixtures/suse-changes.csv b/src/StellaOps.Concelier.Connector.Distro.Suse.Tests/Source/Distro/Suse/Fixtures/suse-changes.csv similarity index 100% rename from src/StellaOps.Concelier.Source.Distro.Suse.Tests/Source/Distro/Suse/Fixtures/suse-changes.csv rename to src/StellaOps.Concelier.Connector.Distro.Suse.Tests/Source/Distro/Suse/Fixtures/suse-changes.csv diff --git a/src/StellaOps.Concelier.Source.Distro.Suse.Tests/Source/Distro/Suse/Fixtures/suse-su-2025_0001-1.json b/src/StellaOps.Concelier.Connector.Distro.Suse.Tests/Source/Distro/Suse/Fixtures/suse-su-2025_0001-1.json similarity index 100% rename from src/StellaOps.Concelier.Source.Distro.Suse.Tests/Source/Distro/Suse/Fixtures/suse-su-2025_0001-1.json rename to src/StellaOps.Concelier.Connector.Distro.Suse.Tests/Source/Distro/Suse/Fixtures/suse-su-2025_0001-1.json diff --git a/src/StellaOps.Concelier.Source.Distro.Suse.Tests/Source/Distro/Suse/Fixtures/suse-su-2025_0002-1.json b/src/StellaOps.Concelier.Connector.Distro.Suse.Tests/Source/Distro/Suse/Fixtures/suse-su-2025_0002-1.json similarity index 100% rename from src/StellaOps.Concelier.Source.Distro.Suse.Tests/Source/Distro/Suse/Fixtures/suse-su-2025_0002-1.json rename to src/StellaOps.Concelier.Connector.Distro.Suse.Tests/Source/Distro/Suse/Fixtures/suse-su-2025_0002-1.json diff --git a/src/StellaOps.Concelier.Source.Distro.Suse.Tests/StellaOps.Concelier.Source.Distro.Suse.Tests.csproj b/src/StellaOps.Concelier.Connector.Distro.Suse.Tests/StellaOps.Concelier.Connector.Distro.Suse.Tests.csproj similarity index 69% rename from src/StellaOps.Concelier.Source.Distro.Suse.Tests/StellaOps.Concelier.Source.Distro.Suse.Tests.csproj rename to src/StellaOps.Concelier.Connector.Distro.Suse.Tests/StellaOps.Concelier.Connector.Distro.Suse.Tests.csproj index cb1a3b4a..34253211 100644 --- a/src/StellaOps.Concelier.Source.Distro.Suse.Tests/StellaOps.Concelier.Source.Distro.Suse.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.Distro.Suse.Tests/StellaOps.Concelier.Connector.Distro.Suse.Tests.csproj @@ -5,8 +5,8 @@ enable - - + + diff --git a/src/StellaOps.Concelier.Source.Distro.Suse.Tests/SuseConnectorTests.cs b/src/StellaOps.Concelier.Connector.Distro.Suse.Tests/SuseConnectorTests.cs similarity index 93% rename from src/StellaOps.Concelier.Source.Distro.Suse.Tests/SuseConnectorTests.cs rename to src/StellaOps.Concelier.Connector.Distro.Suse.Tests/SuseConnectorTests.cs index 74f2ea44..3a5f961c 100644 --- a/src/StellaOps.Concelier.Source.Distro.Suse.Tests/SuseConnectorTests.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Suse.Tests/SuseConnectorTests.cs @@ -13,11 +13,11 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Time.Testing; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Common.Testing; -using StellaOps.Concelier.Source.Distro.Suse; -using StellaOps.Concelier.Source.Distro.Suse.Configuration; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Common.Testing; +using StellaOps.Concelier.Connector.Distro.Suse; +using StellaOps.Concelier.Connector.Distro.Suse.Configuration; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; @@ -26,7 +26,7 @@ using StellaOps.Concelier.Testing; using Xunit; using Xunit.Abstractions; -namespace StellaOps.Concelier.Source.Distro.Suse.Tests; +namespace StellaOps.Concelier.Connector.Distro.Suse.Tests; [Collection("mongo-fixture")] public sealed class SuseConnectorTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.Distro.Suse.Tests/SuseCsafParserTests.cs b/src/StellaOps.Concelier.Connector.Distro.Suse.Tests/SuseCsafParserTests.cs similarity index 91% rename from src/StellaOps.Concelier.Source.Distro.Suse.Tests/SuseCsafParserTests.cs rename to src/StellaOps.Concelier.Connector.Distro.Suse.Tests/SuseCsafParserTests.cs index 3e2a3340..edfdea30 100644 --- a/src/StellaOps.Concelier.Source.Distro.Suse.Tests/SuseCsafParserTests.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Suse.Tests/SuseCsafParserTests.cs @@ -2,10 +2,10 @@ using System; using System.IO; using System.Linq; using System.Text.Json; -using StellaOps.Concelier.Source.Distro.Suse.Internal; +using StellaOps.Concelier.Connector.Distro.Suse.Internal; using Xunit; -namespace StellaOps.Concelier.Source.Distro.Suse.Tests; +namespace StellaOps.Concelier.Connector.Distro.Suse.Tests; public sealed class SuseCsafParserTests { diff --git a/src/StellaOps.Concelier.Source.Distro.Suse.Tests/SuseMapperTests.cs b/src/StellaOps.Concelier.Connector.Distro.Suse.Tests/SuseMapperTests.cs similarity index 91% rename from src/StellaOps.Concelier.Source.Distro.Suse.Tests/SuseMapperTests.cs rename to src/StellaOps.Concelier.Connector.Distro.Suse.Tests/SuseMapperTests.cs index 2ba1c739..243485a2 100644 --- a/src/StellaOps.Concelier.Source.Distro.Suse.Tests/SuseMapperTests.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Suse.Tests/SuseMapperTests.cs @@ -3,13 +3,13 @@ using System.Collections.Generic; using System.IO; using MongoDB.Bson; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Distro.Suse; -using StellaOps.Concelier.Source.Distro.Suse.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Distro.Suse; +using StellaOps.Concelier.Connector.Distro.Suse.Internal; using StellaOps.Concelier.Storage.Mongo.Documents; using Xunit; -namespace StellaOps.Concelier.Source.Distro.Suse.Tests; +namespace StellaOps.Concelier.Connector.Distro.Suse.Tests; public sealed class SuseMapperTests { diff --git a/src/StellaOps.Concelier.Connector.Distro.Suse/AssemblyInfo.cs b/src/StellaOps.Concelier.Connector.Distro.Suse/AssemblyInfo.cs new file mode 100644 index 00000000..8a1cf0e4 --- /dev/null +++ b/src/StellaOps.Concelier.Connector.Distro.Suse/AssemblyInfo.cs @@ -0,0 +1,3 @@ +using System.Runtime.CompilerServices; + +[assembly: InternalsVisibleTo("StellaOps.Concelier.Connector.Distro.Suse.Tests")] diff --git a/src/StellaOps.Concelier.Source.Distro.Suse/Configuration/SuseOptions.cs b/src/StellaOps.Concelier.Connector.Distro.Suse/Configuration/SuseOptions.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Distro.Suse/Configuration/SuseOptions.cs rename to src/StellaOps.Concelier.Connector.Distro.Suse/Configuration/SuseOptions.cs index 6f3ff71b..02bd9508 100644 --- a/src/StellaOps.Concelier.Source.Distro.Suse/Configuration/SuseOptions.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Suse/Configuration/SuseOptions.cs @@ -1,6 +1,6 @@ using System; -namespace StellaOps.Concelier.Source.Distro.Suse.Configuration; +namespace StellaOps.Concelier.Connector.Distro.Suse.Configuration; public sealed class SuseOptions { diff --git a/src/StellaOps.Concelier.Source.Distro.Suse/Internal/SuseAdvisoryDto.cs b/src/StellaOps.Concelier.Connector.Distro.Suse/Internal/SuseAdvisoryDto.cs similarity index 87% rename from src/StellaOps.Concelier.Source.Distro.Suse/Internal/SuseAdvisoryDto.cs rename to src/StellaOps.Concelier.Connector.Distro.Suse/Internal/SuseAdvisoryDto.cs index 146f7af6..14d445ab 100644 --- a/src/StellaOps.Concelier.Source.Distro.Suse/Internal/SuseAdvisoryDto.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Suse/Internal/SuseAdvisoryDto.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -namespace StellaOps.Concelier.Source.Distro.Suse.Internal; +namespace StellaOps.Concelier.Connector.Distro.Suse.Internal; internal sealed record SuseAdvisoryDto( string AdvisoryId, diff --git a/src/StellaOps.Concelier.Source.Distro.Suse/Internal/SuseChangeRecord.cs b/src/StellaOps.Concelier.Connector.Distro.Suse/Internal/SuseChangeRecord.cs similarity index 60% rename from src/StellaOps.Concelier.Source.Distro.Suse/Internal/SuseChangeRecord.cs rename to src/StellaOps.Concelier.Connector.Distro.Suse/Internal/SuseChangeRecord.cs index 455320af..54870611 100644 --- a/src/StellaOps.Concelier.Source.Distro.Suse/Internal/SuseChangeRecord.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Suse/Internal/SuseChangeRecord.cs @@ -1,5 +1,5 @@ using System; -namespace StellaOps.Concelier.Source.Distro.Suse.Internal; +namespace StellaOps.Concelier.Connector.Distro.Suse.Internal; internal sealed record SuseChangeRecord(string FileName, DateTimeOffset ModifiedAt); diff --git a/src/StellaOps.Concelier.Source.Distro.Suse/Internal/SuseChangesParser.cs b/src/StellaOps.Concelier.Connector.Distro.Suse/Internal/SuseChangesParser.cs similarity index 93% rename from src/StellaOps.Concelier.Source.Distro.Suse/Internal/SuseChangesParser.cs rename to src/StellaOps.Concelier.Connector.Distro.Suse/Internal/SuseChangesParser.cs index 566603ad..94893386 100644 --- a/src/StellaOps.Concelier.Source.Distro.Suse/Internal/SuseChangesParser.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Suse/Internal/SuseChangesParser.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Globalization; using System.IO; -namespace StellaOps.Concelier.Source.Distro.Suse.Internal; +namespace StellaOps.Concelier.Connector.Distro.Suse.Internal; internal static class SuseChangesParser { diff --git a/src/StellaOps.Concelier.Source.Distro.Suse/Internal/SuseCsafParser.cs b/src/StellaOps.Concelier.Connector.Distro.Suse/Internal/SuseCsafParser.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Distro.Suse/Internal/SuseCsafParser.cs rename to src/StellaOps.Concelier.Connector.Distro.Suse/Internal/SuseCsafParser.cs index 023e4d50..2ae5359c 100644 --- a/src/StellaOps.Concelier.Source.Distro.Suse/Internal/SuseCsafParser.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Suse/Internal/SuseCsafParser.cs @@ -5,7 +5,7 @@ using System.Globalization; using System.Text.Json; using StellaOps.Concelier.Normalization.Distro; -namespace StellaOps.Concelier.Source.Distro.Suse.Internal; +namespace StellaOps.Concelier.Connector.Distro.Suse.Internal; internal static class SuseCsafParser { diff --git a/src/StellaOps.Concelier.Source.Distro.Suse/Internal/SuseCursor.cs b/src/StellaOps.Concelier.Connector.Distro.Suse/Internal/SuseCursor.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Distro.Suse/Internal/SuseCursor.cs rename to src/StellaOps.Concelier.Connector.Distro.Suse/Internal/SuseCursor.cs index b3d8986b..b2e4acc8 100644 --- a/src/StellaOps.Concelier.Source.Distro.Suse/Internal/SuseCursor.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Suse/Internal/SuseCursor.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using MongoDB.Bson; -namespace StellaOps.Concelier.Source.Distro.Suse.Internal; +namespace StellaOps.Concelier.Connector.Distro.Suse.Internal; internal sealed record SuseCursor( DateTimeOffset? LastModified, diff --git a/src/StellaOps.Concelier.Source.Distro.Suse/Internal/SuseFetchCacheEntry.cs b/src/StellaOps.Concelier.Connector.Distro.Suse/Internal/SuseFetchCacheEntry.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Distro.Suse/Internal/SuseFetchCacheEntry.cs rename to src/StellaOps.Concelier.Connector.Distro.Suse/Internal/SuseFetchCacheEntry.cs index 1007d426..88cfbdf7 100644 --- a/src/StellaOps.Concelier.Source.Distro.Suse/Internal/SuseFetchCacheEntry.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Suse/Internal/SuseFetchCacheEntry.cs @@ -1,7 +1,7 @@ using System; using MongoDB.Bson; -namespace StellaOps.Concelier.Source.Distro.Suse.Internal; +namespace StellaOps.Concelier.Connector.Distro.Suse.Internal; internal sealed record SuseFetchCacheEntry(string? ETag, DateTimeOffset? LastModified) { diff --git a/src/StellaOps.Concelier.Source.Distro.Suse/Internal/SuseMapper.cs b/src/StellaOps.Concelier.Connector.Distro.Suse/Internal/SuseMapper.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Distro.Suse/Internal/SuseMapper.cs rename to src/StellaOps.Concelier.Connector.Distro.Suse/Internal/SuseMapper.cs index 8c1ff1b6..3a052e08 100644 --- a/src/StellaOps.Concelier.Source.Distro.Suse/Internal/SuseMapper.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Suse/Internal/SuseMapper.cs @@ -6,7 +6,7 @@ using StellaOps.Concelier.Models; using StellaOps.Concelier.Normalization.Distro; using StellaOps.Concelier.Storage.Mongo.Documents; -namespace StellaOps.Concelier.Source.Distro.Suse.Internal; +namespace StellaOps.Concelier.Connector.Distro.Suse.Internal; internal static class SuseMapper { diff --git a/src/StellaOps.Concelier.Source.Distro.Suse/Jobs.cs b/src/StellaOps.Concelier.Connector.Distro.Suse/Jobs.cs similarity index 93% rename from src/StellaOps.Concelier.Source.Distro.Suse/Jobs.cs rename to src/StellaOps.Concelier.Connector.Distro.Suse/Jobs.cs index 6537de6e..cd88105e 100644 --- a/src/StellaOps.Concelier.Source.Distro.Suse/Jobs.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Suse/Jobs.cs @@ -3,7 +3,7 @@ using System.Threading; using System.Threading.Tasks; using StellaOps.Concelier.Core.Jobs; -namespace StellaOps.Concelier.Source.Distro.Suse; +namespace StellaOps.Concelier.Connector.Distro.Suse; internal static class SuseJobKinds { diff --git a/src/StellaOps.Concelier.Source.Distro.Suse/StellaOps.Concelier.Source.Distro.Suse.csproj b/src/StellaOps.Concelier.Connector.Distro.Suse/StellaOps.Concelier.Connector.Distro.Suse.csproj similarity index 82% rename from src/StellaOps.Concelier.Source.Distro.Suse/StellaOps.Concelier.Source.Distro.Suse.csproj rename to src/StellaOps.Concelier.Connector.Distro.Suse/StellaOps.Concelier.Connector.Distro.Suse.csproj index 51f2b1a6..23396f92 100644 --- a/src/StellaOps.Concelier.Source.Distro.Suse/StellaOps.Concelier.Source.Distro.Suse.csproj +++ b/src/StellaOps.Concelier.Connector.Distro.Suse/StellaOps.Concelier.Connector.Distro.Suse.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/StellaOps.Concelier.Source.Distro.Suse/SuseConnector.cs b/src/StellaOps.Concelier.Connector.Distro.Suse/SuseConnector.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Distro.Suse/SuseConnector.cs rename to src/StellaOps.Concelier.Connector.Distro.Suse/SuseConnector.cs index 19f860e9..96f947d4 100644 --- a/src/StellaOps.Concelier.Source.Distro.Suse/SuseConnector.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Suse/SuseConnector.cs @@ -12,17 +12,17 @@ using Microsoft.Extensions.Options; using MongoDB.Bson; using MongoDB.Bson.IO; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Distro.Suse.Configuration; -using StellaOps.Concelier.Source.Distro.Suse.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Distro.Suse.Configuration; +using StellaOps.Concelier.Connector.Distro.Suse.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Distro.Suse; +namespace StellaOps.Concelier.Connector.Distro.Suse; public sealed class SuseConnector : IFeedConnector { diff --git a/src/StellaOps.Concelier.Source.Distro.Suse/SuseConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.Distro.Suse/SuseConnectorPlugin.cs similarity index 87% rename from src/StellaOps.Concelier.Source.Distro.Suse/SuseConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.Distro.Suse/SuseConnectorPlugin.cs index a3a112d9..b6423b57 100644 --- a/src/StellaOps.Concelier.Source.Distro.Suse/SuseConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Suse/SuseConnectorPlugin.cs @@ -2,7 +2,7 @@ using System; using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Distro.Suse; +namespace StellaOps.Concelier.Connector.Distro.Suse; public sealed class SuseConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.Distro.Suse/SuseDependencyInjectionRoutine.cs b/src/StellaOps.Concelier.Connector.Distro.Suse/SuseDependencyInjectionRoutine.cs similarity index 91% rename from src/StellaOps.Concelier.Source.Distro.Suse/SuseDependencyInjectionRoutine.cs rename to src/StellaOps.Concelier.Connector.Distro.Suse/SuseDependencyInjectionRoutine.cs index d9874877..d4fa8498 100644 --- a/src/StellaOps.Concelier.Source.Distro.Suse/SuseDependencyInjectionRoutine.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Suse/SuseDependencyInjectionRoutine.cs @@ -3,9 +3,9 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using StellaOps.DependencyInjection; using StellaOps.Concelier.Core.Jobs; -using StellaOps.Concelier.Source.Distro.Suse.Configuration; +using StellaOps.Concelier.Connector.Distro.Suse.Configuration; -namespace StellaOps.Concelier.Source.Distro.Suse; +namespace StellaOps.Concelier.Connector.Distro.Suse; public sealed class SuseDependencyInjectionRoutine : IDependencyInjectionRoutine { diff --git a/src/StellaOps.Concelier.Source.Distro.Suse/SuseServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.Distro.Suse/SuseServiceCollectionExtensions.cs similarity index 86% rename from src/StellaOps.Concelier.Source.Distro.Suse/SuseServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.Distro.Suse/SuseServiceCollectionExtensions.cs index 8587953a..12973cb5 100644 --- a/src/StellaOps.Concelier.Source.Distro.Suse/SuseServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Suse/SuseServiceCollectionExtensions.cs @@ -1,10 +1,10 @@ using System; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Distro.Suse.Configuration; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Distro.Suse.Configuration; -namespace StellaOps.Concelier.Source.Distro.Suse; +namespace StellaOps.Concelier.Connector.Distro.Suse; public static class SuseServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Source.Distro.Ubuntu.Tests/Fixtures/ubuntu-notices-page0.json b/src/StellaOps.Concelier.Connector.Distro.Ubuntu.Tests/Fixtures/ubuntu-notices-page0.json similarity index 100% rename from src/StellaOps.Concelier.Source.Distro.Ubuntu.Tests/Fixtures/ubuntu-notices-page0.json rename to src/StellaOps.Concelier.Connector.Distro.Ubuntu.Tests/Fixtures/ubuntu-notices-page0.json diff --git a/src/StellaOps.Concelier.Source.Distro.Ubuntu.Tests/Fixtures/ubuntu-notices-page1.json b/src/StellaOps.Concelier.Connector.Distro.Ubuntu.Tests/Fixtures/ubuntu-notices-page1.json similarity index 100% rename from src/StellaOps.Concelier.Source.Distro.Ubuntu.Tests/Fixtures/ubuntu-notices-page1.json rename to src/StellaOps.Concelier.Connector.Distro.Ubuntu.Tests/Fixtures/ubuntu-notices-page1.json diff --git a/src/StellaOps.Concelier.Source.Distro.Ubuntu.Tests/StellaOps.Concelier.Source.Distro.Ubuntu.Tests.csproj b/src/StellaOps.Concelier.Connector.Distro.Ubuntu.Tests/StellaOps.Concelier.Connector.Distro.Ubuntu.Tests.csproj similarity index 68% rename from src/StellaOps.Concelier.Source.Distro.Ubuntu.Tests/StellaOps.Concelier.Source.Distro.Ubuntu.Tests.csproj rename to src/StellaOps.Concelier.Connector.Distro.Ubuntu.Tests/StellaOps.Concelier.Connector.Distro.Ubuntu.Tests.csproj index 48d05291..db8d3994 100644 --- a/src/StellaOps.Concelier.Source.Distro.Ubuntu.Tests/StellaOps.Concelier.Source.Distro.Ubuntu.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.Distro.Ubuntu.Tests/StellaOps.Concelier.Connector.Distro.Ubuntu.Tests.csproj @@ -5,8 +5,8 @@ enable - - + + diff --git a/src/StellaOps.Concelier.Source.Distro.Ubuntu.Tests/UbuntuConnectorTests.cs b/src/StellaOps.Concelier.Connector.Distro.Ubuntu.Tests/UbuntuConnectorTests.cs similarity index 93% rename from src/StellaOps.Concelier.Source.Distro.Ubuntu.Tests/UbuntuConnectorTests.cs rename to src/StellaOps.Concelier.Connector.Distro.Ubuntu.Tests/UbuntuConnectorTests.cs index 081ad244..5b0e3c4b 100644 --- a/src/StellaOps.Concelier.Source.Distro.Ubuntu.Tests/UbuntuConnectorTests.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Ubuntu.Tests/UbuntuConnectorTests.cs @@ -13,17 +13,17 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Time.Testing; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Common.Testing; -using StellaOps.Concelier.Source.Distro.Ubuntu; -using StellaOps.Concelier.Source.Distro.Ubuntu.Configuration; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Common.Testing; +using StellaOps.Concelier.Connector.Distro.Ubuntu; +using StellaOps.Concelier.Connector.Distro.Ubuntu.Configuration; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Testing; using Xunit; -namespace StellaOps.Concelier.Source.Distro.Ubuntu.Tests; +namespace StellaOps.Concelier.Connector.Distro.Ubuntu.Tests; [Collection("mongo-fixture")] public sealed class UbuntuConnectorTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.Distro.Ubuntu/Configuration/UbuntuOptions.cs b/src/StellaOps.Concelier.Connector.Distro.Ubuntu/Configuration/UbuntuOptions.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Distro.Ubuntu/Configuration/UbuntuOptions.cs rename to src/StellaOps.Concelier.Connector.Distro.Ubuntu/Configuration/UbuntuOptions.cs index 6e6a3fbe..dd8c89f8 100644 --- a/src/StellaOps.Concelier.Source.Distro.Ubuntu/Configuration/UbuntuOptions.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Ubuntu/Configuration/UbuntuOptions.cs @@ -1,6 +1,6 @@ using System; -namespace StellaOps.Concelier.Source.Distro.Ubuntu.Configuration; +namespace StellaOps.Concelier.Connector.Distro.Ubuntu.Configuration; public sealed class UbuntuOptions { diff --git a/src/StellaOps.Concelier.Source.Distro.Ubuntu/Internal/UbuntuCursor.cs b/src/StellaOps.Concelier.Connector.Distro.Ubuntu/Internal/UbuntuCursor.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Distro.Ubuntu/Internal/UbuntuCursor.cs rename to src/StellaOps.Concelier.Connector.Distro.Ubuntu/Internal/UbuntuCursor.cs index 9e00a8b8..a1584df4 100644 --- a/src/StellaOps.Concelier.Source.Distro.Ubuntu/Internal/UbuntuCursor.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Ubuntu/Internal/UbuntuCursor.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using MongoDB.Bson; -namespace StellaOps.Concelier.Source.Distro.Ubuntu.Internal; +namespace StellaOps.Concelier.Connector.Distro.Ubuntu.Internal; internal sealed record UbuntuCursor( DateTimeOffset? LastPublished, diff --git a/src/StellaOps.Concelier.Source.Distro.Ubuntu/Internal/UbuntuFetchCacheEntry.cs b/src/StellaOps.Concelier.Connector.Distro.Ubuntu/Internal/UbuntuFetchCacheEntry.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Distro.Ubuntu/Internal/UbuntuFetchCacheEntry.cs rename to src/StellaOps.Concelier.Connector.Distro.Ubuntu/Internal/UbuntuFetchCacheEntry.cs index 373dd98d..157181ac 100644 --- a/src/StellaOps.Concelier.Source.Distro.Ubuntu/Internal/UbuntuFetchCacheEntry.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Ubuntu/Internal/UbuntuFetchCacheEntry.cs @@ -1,7 +1,7 @@ using System; using MongoDB.Bson; -namespace StellaOps.Concelier.Source.Distro.Ubuntu.Internal; +namespace StellaOps.Concelier.Connector.Distro.Ubuntu.Internal; internal sealed record UbuntuFetchCacheEntry(string? ETag, DateTimeOffset? LastModified) { diff --git a/src/StellaOps.Concelier.Source.Distro.Ubuntu/Internal/UbuntuMapper.cs b/src/StellaOps.Concelier.Connector.Distro.Ubuntu/Internal/UbuntuMapper.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Distro.Ubuntu/Internal/UbuntuMapper.cs rename to src/StellaOps.Concelier.Connector.Distro.Ubuntu/Internal/UbuntuMapper.cs index a437aafb..36f8b549 100644 --- a/src/StellaOps.Concelier.Source.Distro.Ubuntu/Internal/UbuntuMapper.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Ubuntu/Internal/UbuntuMapper.cs @@ -5,7 +5,7 @@ using StellaOps.Concelier.Models; using StellaOps.Concelier.Normalization.Distro; using StellaOps.Concelier.Storage.Mongo.Documents; -namespace StellaOps.Concelier.Source.Distro.Ubuntu.Internal; +namespace StellaOps.Concelier.Connector.Distro.Ubuntu.Internal; internal static class UbuntuMapper { diff --git a/src/StellaOps.Concelier.Source.Distro.Ubuntu/Internal/UbuntuNoticeDto.cs b/src/StellaOps.Concelier.Connector.Distro.Ubuntu/Internal/UbuntuNoticeDto.cs similarity index 86% rename from src/StellaOps.Concelier.Source.Distro.Ubuntu/Internal/UbuntuNoticeDto.cs rename to src/StellaOps.Concelier.Connector.Distro.Ubuntu/Internal/UbuntuNoticeDto.cs index ff740eab..184e9e64 100644 --- a/src/StellaOps.Concelier.Source.Distro.Ubuntu/Internal/UbuntuNoticeDto.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Ubuntu/Internal/UbuntuNoticeDto.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -namespace StellaOps.Concelier.Source.Distro.Ubuntu.Internal; +namespace StellaOps.Concelier.Connector.Distro.Ubuntu.Internal; internal sealed record UbuntuNoticeDto( string NoticeId, diff --git a/src/StellaOps.Concelier.Source.Distro.Ubuntu/Internal/UbuntuNoticeParser.cs b/src/StellaOps.Concelier.Connector.Distro.Ubuntu/Internal/UbuntuNoticeParser.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Distro.Ubuntu/Internal/UbuntuNoticeParser.cs rename to src/StellaOps.Concelier.Connector.Distro.Ubuntu/Internal/UbuntuNoticeParser.cs index dcf11570..2c10ca38 100644 --- a/src/StellaOps.Concelier.Source.Distro.Ubuntu/Internal/UbuntuNoticeParser.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Ubuntu/Internal/UbuntuNoticeParser.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Globalization; using System.Text.Json; -namespace StellaOps.Concelier.Source.Distro.Ubuntu.Internal; +namespace StellaOps.Concelier.Connector.Distro.Ubuntu.Internal; internal static class UbuntuNoticeParser { diff --git a/src/StellaOps.Concelier.Source.Distro.Ubuntu/Jobs.cs b/src/StellaOps.Concelier.Connector.Distro.Ubuntu/Jobs.cs similarity index 93% rename from src/StellaOps.Concelier.Source.Distro.Ubuntu/Jobs.cs rename to src/StellaOps.Concelier.Connector.Distro.Ubuntu/Jobs.cs index a3bd578e..86c23540 100644 --- a/src/StellaOps.Concelier.Source.Distro.Ubuntu/Jobs.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Ubuntu/Jobs.cs @@ -3,7 +3,7 @@ using System.Threading; using System.Threading.Tasks; using StellaOps.Concelier.Core.Jobs; -namespace StellaOps.Concelier.Source.Distro.Ubuntu; +namespace StellaOps.Concelier.Connector.Distro.Ubuntu; internal static class UbuntuJobKinds { diff --git a/src/StellaOps.Concelier.Source.Distro.Ubuntu/StellaOps.Concelier.Source.Distro.Ubuntu.csproj b/src/StellaOps.Concelier.Connector.Distro.Ubuntu/StellaOps.Concelier.Connector.Distro.Ubuntu.csproj similarity index 82% rename from src/StellaOps.Concelier.Source.Distro.Ubuntu/StellaOps.Concelier.Source.Distro.Ubuntu.csproj rename to src/StellaOps.Concelier.Connector.Distro.Ubuntu/StellaOps.Concelier.Connector.Distro.Ubuntu.csproj index 51f2b1a6..23396f92 100644 --- a/src/StellaOps.Concelier.Source.Distro.Ubuntu/StellaOps.Concelier.Source.Distro.Ubuntu.csproj +++ b/src/StellaOps.Concelier.Connector.Distro.Ubuntu/StellaOps.Concelier.Connector.Distro.Ubuntu.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/StellaOps.Concelier.Source.Distro.Ubuntu/TASKS.md b/src/StellaOps.Concelier.Connector.Distro.Ubuntu/TASKS.md similarity index 100% rename from src/StellaOps.Concelier.Source.Distro.Ubuntu/TASKS.md rename to src/StellaOps.Concelier.Connector.Distro.Ubuntu/TASKS.md diff --git a/src/StellaOps.Concelier.Source.Distro.Ubuntu/UbuntuConnector.cs b/src/StellaOps.Concelier.Connector.Distro.Ubuntu/UbuntuConnector.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Distro.Ubuntu/UbuntuConnector.cs rename to src/StellaOps.Concelier.Connector.Distro.Ubuntu/UbuntuConnector.cs index 62102240..3a6c0229 100644 --- a/src/StellaOps.Concelier.Source.Distro.Ubuntu/UbuntuConnector.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Ubuntu/UbuntuConnector.cs @@ -8,17 +8,17 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using MongoDB.Bson; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Distro.Ubuntu.Configuration; -using StellaOps.Concelier.Source.Distro.Ubuntu.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Distro.Ubuntu.Configuration; +using StellaOps.Concelier.Connector.Distro.Ubuntu.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Distro.Ubuntu; +namespace StellaOps.Concelier.Connector.Distro.Ubuntu; public sealed class UbuntuConnector : IFeedConnector { diff --git a/src/StellaOps.Concelier.Source.Distro.Ubuntu/UbuntuConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.Distro.Ubuntu/UbuntuConnectorPlugin.cs similarity index 87% rename from src/StellaOps.Concelier.Source.Distro.Ubuntu/UbuntuConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.Distro.Ubuntu/UbuntuConnectorPlugin.cs index c125fb73..bb8f1e9a 100644 --- a/src/StellaOps.Concelier.Source.Distro.Ubuntu/UbuntuConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Ubuntu/UbuntuConnectorPlugin.cs @@ -2,7 +2,7 @@ using System; using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Distro.Ubuntu; +namespace StellaOps.Concelier.Connector.Distro.Ubuntu; public sealed class UbuntuConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.Distro.Ubuntu/UbuntuDependencyInjectionRoutine.cs b/src/StellaOps.Concelier.Connector.Distro.Ubuntu/UbuntuDependencyInjectionRoutine.cs similarity index 91% rename from src/StellaOps.Concelier.Source.Distro.Ubuntu/UbuntuDependencyInjectionRoutine.cs rename to src/StellaOps.Concelier.Connector.Distro.Ubuntu/UbuntuDependencyInjectionRoutine.cs index c7d2c4a0..baff7c2d 100644 --- a/src/StellaOps.Concelier.Source.Distro.Ubuntu/UbuntuDependencyInjectionRoutine.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Ubuntu/UbuntuDependencyInjectionRoutine.cs @@ -3,9 +3,9 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using StellaOps.DependencyInjection; using StellaOps.Concelier.Core.Jobs; -using StellaOps.Concelier.Source.Distro.Ubuntu.Configuration; +using StellaOps.Concelier.Connector.Distro.Ubuntu.Configuration; -namespace StellaOps.Concelier.Source.Distro.Ubuntu; +namespace StellaOps.Concelier.Connector.Distro.Ubuntu; public sealed class UbuntuDependencyInjectionRoutine : IDependencyInjectionRoutine { diff --git a/src/StellaOps.Concelier.Source.Distro.Ubuntu/UbuntuServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.Distro.Ubuntu/UbuntuServiceCollectionExtensions.cs similarity index 87% rename from src/StellaOps.Concelier.Source.Distro.Ubuntu/UbuntuServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.Distro.Ubuntu/UbuntuServiceCollectionExtensions.cs index a0c50847..547beb2e 100644 --- a/src/StellaOps.Concelier.Source.Distro.Ubuntu/UbuntuServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.Distro.Ubuntu/UbuntuServiceCollectionExtensions.cs @@ -1,10 +1,10 @@ using System; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Distro.Ubuntu.Configuration; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Distro.Ubuntu.Configuration; -namespace StellaOps.Concelier.Source.Distro.Ubuntu; +namespace StellaOps.Concelier.Connector.Distro.Ubuntu; public static class UbuntuServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Source.Ghsa.Tests/Fixtures/conflict-ghsa.canonical.json b/src/StellaOps.Concelier.Connector.Ghsa.Tests/Fixtures/conflict-ghsa.canonical.json similarity index 100% rename from src/StellaOps.Concelier.Source.Ghsa.Tests/Fixtures/conflict-ghsa.canonical.json rename to src/StellaOps.Concelier.Connector.Ghsa.Tests/Fixtures/conflict-ghsa.canonical.json diff --git a/src/StellaOps.Concelier.Source.Ghsa.Tests/Fixtures/credit-parity.ghsa.json b/src/StellaOps.Concelier.Connector.Ghsa.Tests/Fixtures/credit-parity.ghsa.json similarity index 100% rename from src/StellaOps.Concelier.Source.Ghsa.Tests/Fixtures/credit-parity.ghsa.json rename to src/StellaOps.Concelier.Connector.Ghsa.Tests/Fixtures/credit-parity.ghsa.json diff --git a/src/StellaOps.Concelier.Source.Ghsa.Tests/Fixtures/credit-parity.nvd.json b/src/StellaOps.Concelier.Connector.Ghsa.Tests/Fixtures/credit-parity.nvd.json similarity index 100% rename from src/StellaOps.Concelier.Source.Ghsa.Tests/Fixtures/credit-parity.nvd.json rename to src/StellaOps.Concelier.Connector.Ghsa.Tests/Fixtures/credit-parity.nvd.json diff --git a/src/StellaOps.Concelier.Source.Ghsa.Tests/Fixtures/credit-parity.osv.json b/src/StellaOps.Concelier.Connector.Ghsa.Tests/Fixtures/credit-parity.osv.json similarity index 100% rename from src/StellaOps.Concelier.Source.Ghsa.Tests/Fixtures/credit-parity.osv.json rename to src/StellaOps.Concelier.Connector.Ghsa.Tests/Fixtures/credit-parity.osv.json diff --git a/src/StellaOps.Concelier.Source.Ghsa.Tests/Fixtures/expected-GHSA-xxxx-yyyy-zzzz.json b/src/StellaOps.Concelier.Connector.Ghsa.Tests/Fixtures/expected-GHSA-xxxx-yyyy-zzzz.json similarity index 100% rename from src/StellaOps.Concelier.Source.Ghsa.Tests/Fixtures/expected-GHSA-xxxx-yyyy-zzzz.json rename to src/StellaOps.Concelier.Connector.Ghsa.Tests/Fixtures/expected-GHSA-xxxx-yyyy-zzzz.json diff --git a/src/StellaOps.Concelier.Source.Ghsa.Tests/Fixtures/ghsa-GHSA-xxxx-yyyy-zzzz.json b/src/StellaOps.Concelier.Connector.Ghsa.Tests/Fixtures/ghsa-GHSA-xxxx-yyyy-zzzz.json similarity index 100% rename from src/StellaOps.Concelier.Source.Ghsa.Tests/Fixtures/ghsa-GHSA-xxxx-yyyy-zzzz.json rename to src/StellaOps.Concelier.Connector.Ghsa.Tests/Fixtures/ghsa-GHSA-xxxx-yyyy-zzzz.json diff --git a/src/StellaOps.Concelier.Source.Ghsa.Tests/Fixtures/ghsa-list.json b/src/StellaOps.Concelier.Connector.Ghsa.Tests/Fixtures/ghsa-list.json similarity index 100% rename from src/StellaOps.Concelier.Source.Ghsa.Tests/Fixtures/ghsa-list.json rename to src/StellaOps.Concelier.Connector.Ghsa.Tests/Fixtures/ghsa-list.json diff --git a/src/StellaOps.Concelier.Source.Ghsa.Tests/Ghsa/GhsaConflictFixtureTests.cs b/src/StellaOps.Concelier.Connector.Ghsa.Tests/Ghsa/GhsaConflictFixtureTests.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Ghsa.Tests/Ghsa/GhsaConflictFixtureTests.cs rename to src/StellaOps.Concelier.Connector.Ghsa.Tests/Ghsa/GhsaConflictFixtureTests.cs index dec3e25c..c817c187 100644 --- a/src/StellaOps.Concelier.Source.Ghsa.Tests/Ghsa/GhsaConflictFixtureTests.cs +++ b/src/StellaOps.Concelier.Connector.Ghsa.Tests/Ghsa/GhsaConflictFixtureTests.cs @@ -1,8 +1,8 @@ using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Ghsa.Internal; +using StellaOps.Concelier.Connector.Ghsa.Internal; using StellaOps.Concelier.Storage.Mongo.Documents; -namespace StellaOps.Concelier.Source.Ghsa.Tests; +namespace StellaOps.Concelier.Connector.Ghsa.Tests; public sealed class GhsaConflictFixtureTests { diff --git a/src/StellaOps.Concelier.Source.Ghsa.Tests/Ghsa/GhsaConnectorTests.cs b/src/StellaOps.Concelier.Connector.Ghsa.Tests/Ghsa/GhsaConnectorTests.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Ghsa.Tests/Ghsa/GhsaConnectorTests.cs rename to src/StellaOps.Concelier.Connector.Ghsa.Tests/Ghsa/GhsaConnectorTests.cs index df84ddef..577b20c1 100644 --- a/src/StellaOps.Concelier.Source.Ghsa.Tests/Ghsa/GhsaConnectorTests.cs +++ b/src/StellaOps.Concelier.Connector.Ghsa.Tests/Ghsa/GhsaConnectorTests.cs @@ -6,14 +6,14 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common.Testing; -using StellaOps.Concelier.Source.Ghsa.Configuration; -using StellaOps.Concelier.Source.Ghsa.Internal; +using StellaOps.Concelier.Connector.Common.Testing; +using StellaOps.Concelier.Connector.Ghsa.Configuration; +using StellaOps.Concelier.Connector.Ghsa.Internal; using StellaOps.Concelier.Testing; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; -namespace StellaOps.Concelier.Source.Ghsa.Tests; +namespace StellaOps.Concelier.Connector.Ghsa.Tests; [Collection("mongo-fixture")] public sealed class GhsaConnectorTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.Ghsa.Tests/Ghsa/GhsaCreditParityRegressionTests.cs b/src/StellaOps.Concelier.Connector.Ghsa.Tests/Ghsa/GhsaCreditParityRegressionTests.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Ghsa.Tests/Ghsa/GhsaCreditParityRegressionTests.cs rename to src/StellaOps.Concelier.Connector.Ghsa.Tests/Ghsa/GhsaCreditParityRegressionTests.cs index da953cc1..5463bbd4 100644 --- a/src/StellaOps.Concelier.Source.Ghsa.Tests/Ghsa/GhsaCreditParityRegressionTests.cs +++ b/src/StellaOps.Concelier.Connector.Ghsa.Tests/Ghsa/GhsaCreditParityRegressionTests.cs @@ -4,7 +4,7 @@ using System.Text.Json; using StellaOps.Concelier.Models; using Xunit; -namespace StellaOps.Concelier.Source.Ghsa.Tests.Ghsa; +namespace StellaOps.Concelier.Connector.Ghsa.Tests.Ghsa; public sealed class GhsaCreditParityRegressionTests { diff --git a/src/StellaOps.Concelier.Source.Ghsa.Tests/Ghsa/GhsaDependencyInjectionRoutineTests.cs b/src/StellaOps.Concelier.Connector.Ghsa.Tests/Ghsa/GhsaDependencyInjectionRoutineTests.cs similarity index 93% rename from src/StellaOps.Concelier.Source.Ghsa.Tests/Ghsa/GhsaDependencyInjectionRoutineTests.cs rename to src/StellaOps.Concelier.Connector.Ghsa.Tests/Ghsa/GhsaDependencyInjectionRoutineTests.cs index 09839943..1482a0d5 100644 --- a/src/StellaOps.Concelier.Source.Ghsa.Tests/Ghsa/GhsaDependencyInjectionRoutineTests.cs +++ b/src/StellaOps.Concelier.Connector.Ghsa.Tests/Ghsa/GhsaDependencyInjectionRoutineTests.cs @@ -6,12 +6,12 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Options; using StellaOps.Concelier.Core.Jobs; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Ghsa; -using StellaOps.Concelier.Source.Ghsa.Configuration; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Ghsa; +using StellaOps.Concelier.Connector.Ghsa.Configuration; using Xunit; -namespace StellaOps.Concelier.Source.Ghsa.Tests.Ghsa; +namespace StellaOps.Concelier.Connector.Ghsa.Tests.Ghsa; public sealed class GhsaDependencyInjectionRoutineTests { diff --git a/src/StellaOps.Concelier.Source.Ghsa.Tests/Ghsa/GhsaDiagnosticsTests.cs b/src/StellaOps.Concelier.Connector.Ghsa.Tests/Ghsa/GhsaDiagnosticsTests.cs similarity index 88% rename from src/StellaOps.Concelier.Source.Ghsa.Tests/Ghsa/GhsaDiagnosticsTests.cs rename to src/StellaOps.Concelier.Connector.Ghsa.Tests/Ghsa/GhsaDiagnosticsTests.cs index bfd5d927..db4dd638 100644 --- a/src/StellaOps.Concelier.Source.Ghsa.Tests/Ghsa/GhsaDiagnosticsTests.cs +++ b/src/StellaOps.Concelier.Connector.Ghsa.Tests/Ghsa/GhsaDiagnosticsTests.cs @@ -1,8 +1,8 @@ using System; -using StellaOps.Concelier.Source.Ghsa.Internal; +using StellaOps.Concelier.Connector.Ghsa.Internal; using Xunit; -namespace StellaOps.Concelier.Source.Ghsa.Tests.Ghsa; +namespace StellaOps.Concelier.Connector.Ghsa.Tests.Ghsa; public class GhsaDiagnosticsTests : IDisposable { diff --git a/src/StellaOps.Concelier.Source.Ghsa.Tests/Ghsa/GhsaMapperTests.cs b/src/StellaOps.Concelier.Connector.Ghsa.Tests/Ghsa/GhsaMapperTests.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Ghsa.Tests/Ghsa/GhsaMapperTests.cs rename to src/StellaOps.Concelier.Connector.Ghsa.Tests/Ghsa/GhsaMapperTests.cs index 21f1e1da..20802584 100644 --- a/src/StellaOps.Concelier.Source.Ghsa.Tests/Ghsa/GhsaMapperTests.cs +++ b/src/StellaOps.Concelier.Connector.Ghsa.Tests/Ghsa/GhsaMapperTests.cs @@ -1,7 +1,7 @@ -using StellaOps.Concelier.Source.Ghsa.Internal; +using StellaOps.Concelier.Connector.Ghsa.Internal; using StellaOps.Concelier.Storage.Mongo.Documents; -namespace StellaOps.Concelier.Source.Ghsa.Tests; +namespace StellaOps.Concelier.Connector.Ghsa.Tests; public sealed class GhsaMapperTests { diff --git a/src/StellaOps.Concelier.Source.Ghsa.Tests/Ghsa/GhsaRateLimitParserTests.cs b/src/StellaOps.Concelier.Connector.Ghsa.Tests/Ghsa/GhsaRateLimitParserTests.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Ghsa.Tests/Ghsa/GhsaRateLimitParserTests.cs rename to src/StellaOps.Concelier.Connector.Ghsa.Tests/Ghsa/GhsaRateLimitParserTests.cs index e12bc1d9..620b2dcf 100644 --- a/src/StellaOps.Concelier.Source.Ghsa.Tests/Ghsa/GhsaRateLimitParserTests.cs +++ b/src/StellaOps.Concelier.Connector.Ghsa.Tests/Ghsa/GhsaRateLimitParserTests.cs @@ -1,9 +1,9 @@ using System.Collections.Generic; using System.Globalization; -using StellaOps.Concelier.Source.Ghsa.Internal; +using StellaOps.Concelier.Connector.Ghsa.Internal; using Xunit; -namespace StellaOps.Concelier.Source.Ghsa.Tests.Ghsa; +namespace StellaOps.Concelier.Connector.Ghsa.Tests.Ghsa; public class GhsaRateLimitParserTests { diff --git a/src/StellaOps.Concelier.Source.Cve.Tests/StellaOps.Concelier.Source.Cve.Tests.csproj b/src/StellaOps.Concelier.Connector.Ghsa.Tests/StellaOps.Concelier.Connector.Ghsa.Tests.csproj similarity index 73% rename from src/StellaOps.Concelier.Source.Cve.Tests/StellaOps.Concelier.Source.Cve.Tests.csproj rename to src/StellaOps.Concelier.Connector.Ghsa.Tests/StellaOps.Concelier.Connector.Ghsa.Tests.csproj index 99902bbe..43aadf3d 100644 --- a/src/StellaOps.Concelier.Source.Cve.Tests/StellaOps.Concelier.Source.Cve.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.Ghsa.Tests/StellaOps.Concelier.Connector.Ghsa.Tests.csproj @@ -5,9 +5,9 @@ enable + + - - diff --git a/src/StellaOps.Concelier.Source.Ghsa/AGENTS.md b/src/StellaOps.Concelier.Connector.Ghsa/AGENTS.md similarity index 95% rename from src/StellaOps.Concelier.Source.Ghsa/AGENTS.md rename to src/StellaOps.Concelier.Connector.Ghsa/AGENTS.md index cb6cf033..ea9606d5 100644 --- a/src/StellaOps.Concelier.Source.Ghsa/AGENTS.md +++ b/src/StellaOps.Concelier.Connector.Ghsa/AGENTS.md @@ -34,6 +34,6 @@ Out of scope: - Sanitize/validate payloads before persistence. ## Tests -- Add `StellaOps.Concelier.Source.Ghsa.Tests` with canned GraphQL/REST fixtures. +- Add `StellaOps.Concelier.Connector.Ghsa.Tests` with canned GraphQL/REST fixtures. - Snapshot canonical advisories; enable fixture regeneration with env flag. - Confirm deterministic ordering/time normalisation. diff --git a/src/StellaOps.Concelier.Source.Ghsa/Configuration/GhsaOptions.cs b/src/StellaOps.Concelier.Connector.Ghsa/Configuration/GhsaOptions.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Ghsa/Configuration/GhsaOptions.cs rename to src/StellaOps.Concelier.Connector.Ghsa/Configuration/GhsaOptions.cs index 16915db6..43429045 100644 --- a/src/StellaOps.Concelier.Source.Ghsa/Configuration/GhsaOptions.cs +++ b/src/StellaOps.Concelier.Connector.Ghsa/Configuration/GhsaOptions.cs @@ -1,6 +1,6 @@ using System.Diagnostics.CodeAnalysis; -namespace StellaOps.Concelier.Source.Ghsa.Configuration; +namespace StellaOps.Concelier.Connector.Ghsa.Configuration; public sealed class GhsaOptions { diff --git a/src/StellaOps.Concelier.Source.Ghsa/GhsaConnector.cs b/src/StellaOps.Concelier.Connector.Ghsa/GhsaConnector.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Ghsa/GhsaConnector.cs rename to src/StellaOps.Concelier.Connector.Ghsa/GhsaConnector.cs index 01c5b8e5..e61a144a 100644 --- a/src/StellaOps.Concelier.Source.Ghsa/GhsaConnector.cs +++ b/src/StellaOps.Concelier.Connector.Ghsa/GhsaConnector.cs @@ -7,17 +7,17 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using MongoDB.Bson; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Ghsa.Configuration; -using StellaOps.Concelier.Source.Ghsa.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Ghsa.Configuration; +using StellaOps.Concelier.Connector.Ghsa.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Ghsa; +namespace StellaOps.Concelier.Connector.Ghsa; public sealed class GhsaConnector : IFeedConnector { diff --git a/src/StellaOps.Concelier.Source.Ghsa/GhsaConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.Ghsa/GhsaConnectorPlugin.cs similarity index 91% rename from src/StellaOps.Concelier.Source.Ghsa/GhsaConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.Ghsa/GhsaConnectorPlugin.cs index fbe9b500..a8070edd 100644 --- a/src/StellaOps.Concelier.Source.Ghsa/GhsaConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.Ghsa/GhsaConnectorPlugin.cs @@ -1,7 +1,7 @@ using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Ghsa; +namespace StellaOps.Concelier.Connector.Ghsa; public sealed class GhsaConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.Ghsa/GhsaDependencyInjectionRoutine.cs b/src/StellaOps.Concelier.Connector.Ghsa/GhsaDependencyInjectionRoutine.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Ghsa/GhsaDependencyInjectionRoutine.cs rename to src/StellaOps.Concelier.Connector.Ghsa/GhsaDependencyInjectionRoutine.cs index 0418c72e..72eda1f9 100644 --- a/src/StellaOps.Concelier.Source.Ghsa/GhsaDependencyInjectionRoutine.cs +++ b/src/StellaOps.Concelier.Connector.Ghsa/GhsaDependencyInjectionRoutine.cs @@ -3,9 +3,9 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using StellaOps.DependencyInjection; using StellaOps.Concelier.Core.Jobs; -using StellaOps.Concelier.Source.Ghsa.Configuration; +using StellaOps.Concelier.Connector.Ghsa.Configuration; -namespace StellaOps.Concelier.Source.Ghsa; +namespace StellaOps.Concelier.Connector.Ghsa; public sealed class GhsaDependencyInjectionRoutine : IDependencyInjectionRoutine { diff --git a/src/StellaOps.Concelier.Source.Ghsa/GhsaServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.Ghsa/GhsaServiceCollectionExtensions.cs similarity index 87% rename from src/StellaOps.Concelier.Source.Ghsa/GhsaServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.Ghsa/GhsaServiceCollectionExtensions.cs index 9e86e59e..6fe9b012 100644 --- a/src/StellaOps.Concelier.Source.Ghsa/GhsaServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.Ghsa/GhsaServiceCollectionExtensions.cs @@ -1,10 +1,10 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Ghsa.Configuration; -using StellaOps.Concelier.Source.Ghsa.Internal; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Ghsa.Configuration; +using StellaOps.Concelier.Connector.Ghsa.Internal; -namespace StellaOps.Concelier.Source.Ghsa; +namespace StellaOps.Concelier.Connector.Ghsa; public static class GhsaServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Source.Ghsa/Internal/GhsaCursor.cs b/src/StellaOps.Concelier.Connector.Ghsa/Internal/GhsaCursor.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Ghsa/Internal/GhsaCursor.cs rename to src/StellaOps.Concelier.Connector.Ghsa/Internal/GhsaCursor.cs index 9d3e62d7..f6acf36e 100644 --- a/src/StellaOps.Concelier.Source.Ghsa/Internal/GhsaCursor.cs +++ b/src/StellaOps.Concelier.Connector.Ghsa/Internal/GhsaCursor.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Linq; using MongoDB.Bson; -namespace StellaOps.Concelier.Source.Ghsa.Internal; +namespace StellaOps.Concelier.Connector.Ghsa.Internal; internal sealed record GhsaCursor( DateTimeOffset? LastUpdatedExclusive, diff --git a/src/StellaOps.Concelier.Source.Ghsa/Internal/GhsaDiagnostics.cs b/src/StellaOps.Concelier.Connector.Ghsa/Internal/GhsaDiagnostics.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Ghsa/Internal/GhsaDiagnostics.cs rename to src/StellaOps.Concelier.Connector.Ghsa/Internal/GhsaDiagnostics.cs index 31ffd771..2fd9b4d6 100644 --- a/src/StellaOps.Concelier.Source.Ghsa/Internal/GhsaDiagnostics.cs +++ b/src/StellaOps.Concelier.Connector.Ghsa/Internal/GhsaDiagnostics.cs @@ -1,11 +1,11 @@ using System.Collections.Generic; using System.Diagnostics.Metrics; -namespace StellaOps.Concelier.Source.Ghsa.Internal; +namespace StellaOps.Concelier.Connector.Ghsa.Internal; public sealed class GhsaDiagnostics : IDisposable { - private const string MeterName = "StellaOps.Concelier.Source.Ghsa"; + private const string MeterName = "StellaOps.Concelier.Connector.Ghsa"; private const string MeterVersion = "1.0.0"; private readonly Meter _meter; diff --git a/src/StellaOps.Concelier.Source.Ghsa/Internal/GhsaListParser.cs b/src/StellaOps.Concelier.Connector.Ghsa/Internal/GhsaListParser.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Ghsa/Internal/GhsaListParser.cs rename to src/StellaOps.Concelier.Connector.Ghsa/Internal/GhsaListParser.cs index e1a19e86..a5bf6ec1 100644 --- a/src/StellaOps.Concelier.Source.Ghsa/Internal/GhsaListParser.cs +++ b/src/StellaOps.Concelier.Connector.Ghsa/Internal/GhsaListParser.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Globalization; using System.Text.Json; -namespace StellaOps.Concelier.Source.Ghsa.Internal; +namespace StellaOps.Concelier.Connector.Ghsa.Internal; internal static class GhsaListParser { diff --git a/src/StellaOps.Concelier.Source.Ghsa/Internal/GhsaMapper.cs b/src/StellaOps.Concelier.Connector.Ghsa/Internal/GhsaMapper.cs similarity index 99% rename from src/StellaOps.Concelier.Source.Ghsa/Internal/GhsaMapper.cs rename to src/StellaOps.Concelier.Connector.Ghsa/Internal/GhsaMapper.cs index 63ec6d57..c5e04bdc 100644 --- a/src/StellaOps.Concelier.Source.Ghsa/Internal/GhsaMapper.cs +++ b/src/StellaOps.Concelier.Connector.Ghsa/Internal/GhsaMapper.cs @@ -7,7 +7,7 @@ using StellaOps.Concelier.Normalization.Cvss; using StellaOps.Concelier.Normalization.SemVer; using StellaOps.Concelier.Storage.Mongo.Documents; -namespace StellaOps.Concelier.Source.Ghsa.Internal; +namespace StellaOps.Concelier.Connector.Ghsa.Internal; internal static class GhsaMapper { diff --git a/src/StellaOps.Concelier.Source.Ghsa/Internal/GhsaRateLimitParser.cs b/src/StellaOps.Concelier.Connector.Ghsa/Internal/GhsaRateLimitParser.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Ghsa/Internal/GhsaRateLimitParser.cs rename to src/StellaOps.Concelier.Connector.Ghsa/Internal/GhsaRateLimitParser.cs index 3d89434c..43a75c4e 100644 --- a/src/StellaOps.Concelier.Source.Ghsa/Internal/GhsaRateLimitParser.cs +++ b/src/StellaOps.Concelier.Connector.Ghsa/Internal/GhsaRateLimitParser.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Globalization; -namespace StellaOps.Concelier.Source.Ghsa.Internal; +namespace StellaOps.Concelier.Connector.Ghsa.Internal; internal static class GhsaRateLimitParser { diff --git a/src/StellaOps.Concelier.Source.Ghsa/Internal/GhsaRateLimitSnapshot.cs b/src/StellaOps.Concelier.Connector.Ghsa/Internal/GhsaRateLimitSnapshot.cs similarity index 89% rename from src/StellaOps.Concelier.Source.Ghsa/Internal/GhsaRateLimitSnapshot.cs rename to src/StellaOps.Concelier.Connector.Ghsa/Internal/GhsaRateLimitSnapshot.cs index eaa3bfab..891a65c2 100644 --- a/src/StellaOps.Concelier.Source.Ghsa/Internal/GhsaRateLimitSnapshot.cs +++ b/src/StellaOps.Concelier.Connector.Ghsa/Internal/GhsaRateLimitSnapshot.cs @@ -1,6 +1,6 @@ using System; -namespace StellaOps.Concelier.Source.Ghsa.Internal; +namespace StellaOps.Concelier.Connector.Ghsa.Internal; internal readonly record struct GhsaRateLimitSnapshot( string Phase, diff --git a/src/StellaOps.Concelier.Source.Ghsa/Internal/GhsaRecordDto.cs b/src/StellaOps.Concelier.Connector.Ghsa/Internal/GhsaRecordDto.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Ghsa/Internal/GhsaRecordDto.cs rename to src/StellaOps.Concelier.Connector.Ghsa/Internal/GhsaRecordDto.cs index 50e5fece..5b996dc2 100644 --- a/src/StellaOps.Concelier.Source.Ghsa/Internal/GhsaRecordDto.cs +++ b/src/StellaOps.Concelier.Connector.Ghsa/Internal/GhsaRecordDto.cs @@ -1,4 +1,4 @@ -namespace StellaOps.Concelier.Source.Ghsa.Internal; +namespace StellaOps.Concelier.Connector.Ghsa.Internal; internal sealed record GhsaRecordDto { diff --git a/src/StellaOps.Concelier.Source.Ghsa/Internal/GhsaRecordParser.cs b/src/StellaOps.Concelier.Connector.Ghsa/Internal/GhsaRecordParser.cs similarity index 99% rename from src/StellaOps.Concelier.Source.Ghsa/Internal/GhsaRecordParser.cs rename to src/StellaOps.Concelier.Connector.Ghsa/Internal/GhsaRecordParser.cs index a17fa744..66bf6edf 100644 --- a/src/StellaOps.Concelier.Source.Ghsa/Internal/GhsaRecordParser.cs +++ b/src/StellaOps.Concelier.Connector.Ghsa/Internal/GhsaRecordParser.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Globalization; using System.Text.Json; -namespace StellaOps.Concelier.Source.Ghsa.Internal; +namespace StellaOps.Concelier.Connector.Ghsa.Internal; internal static class GhsaRecordParser { diff --git a/src/StellaOps.Concelier.Source.Ghsa/Jobs.cs b/src/StellaOps.Concelier.Connector.Ghsa/Jobs.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Ghsa/Jobs.cs rename to src/StellaOps.Concelier.Connector.Ghsa/Jobs.cs index b4f8d569..2287a2d3 100644 --- a/src/StellaOps.Concelier.Source.Ghsa/Jobs.cs +++ b/src/StellaOps.Concelier.Connector.Ghsa/Jobs.cs @@ -1,6 +1,6 @@ using StellaOps.Concelier.Core.Jobs; -namespace StellaOps.Concelier.Source.Ghsa; +namespace StellaOps.Concelier.Connector.Ghsa; internal static class GhsaJobKinds { diff --git a/src/StellaOps.Concelier.Source.Acsc/Properties/AssemblyInfo.cs b/src/StellaOps.Concelier.Connector.Ghsa/Properties/AssemblyInfo.cs similarity index 54% rename from src/StellaOps.Concelier.Source.Acsc/Properties/AssemblyInfo.cs rename to src/StellaOps.Concelier.Connector.Ghsa/Properties/AssemblyInfo.cs index ee8e3585..9f8d5a8b 100644 --- a/src/StellaOps.Concelier.Source.Acsc/Properties/AssemblyInfo.cs +++ b/src/StellaOps.Concelier.Connector.Ghsa/Properties/AssemblyInfo.cs @@ -1,4 +1,4 @@ using System.Runtime.CompilerServices; [assembly: InternalsVisibleTo("FixtureUpdater")] -[assembly: InternalsVisibleTo("StellaOps.Concelier.Source.Acsc.Tests")] +[assembly: InternalsVisibleTo("StellaOps.Concelier.Connector.Ghsa.Tests")] diff --git a/src/StellaOps.Concelier.Source.Ghsa/StellaOps.Concelier.Source.Ghsa.csproj b/src/StellaOps.Concelier.Connector.Ghsa/StellaOps.Concelier.Connector.Ghsa.csproj similarity index 80% rename from src/StellaOps.Concelier.Source.Ghsa/StellaOps.Concelier.Source.Ghsa.csproj rename to src/StellaOps.Concelier.Connector.Ghsa/StellaOps.Concelier.Connector.Ghsa.csproj index eea76fdd..71801984 100644 --- a/src/StellaOps.Concelier.Source.Ghsa/StellaOps.Concelier.Source.Ghsa.csproj +++ b/src/StellaOps.Concelier.Connector.Ghsa/StellaOps.Concelier.Connector.Ghsa.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/StellaOps.Concelier.Source.Ghsa/TASKS.md b/src/StellaOps.Concelier.Connector.Ghsa/TASKS.md similarity index 93% rename from src/StellaOps.Concelier.Source.Ghsa/TASKS.md rename to src/StellaOps.Concelier.Connector.Ghsa/TASKS.md index f886c73c..03723827 100644 --- a/src/StellaOps.Concelier.Source.Ghsa/TASKS.md +++ b/src/StellaOps.Concelier.Connector.Ghsa/TASKS.md @@ -5,15 +5,15 @@ |Fetch pipeline & state management|BE-Conn-GHSA|Source.Common, Storage.Mongo|**DONE (2025-10-10)** – Implemented list/detail fetch using `GhsaCursor` (time window + page), resumable SourceState and backoff controls.| |DTO & parser implementation|BE-Conn-GHSA|Source.Common|**DONE (2025-10-10)** – Added `GhsaRecordParser`/DTOs extracting aliases, references, severity, vulnerable ranges, patched versions.| |Canonical mapping & range primitives|BE-Conn-GHSA|Models|**DONE (2025-10-10)** – `GhsaMapper` emits GHSA advisories with SemVer packages, vendor extensions (ecosystem/package) and deterministic references.
2025-10-11 research trail: upcoming normalized array should follow `[{"scheme":"semver","type":"range","min":"","minInclusive":true,"max":"","maxInclusive":false,"notes":"ghsa:GHSA-xxxx"}]`; include patched-only advisories as `lt`/`lte` when no explicit floor.| -|Deterministic fixtures & tests|QA|Testing|**DONE (2025-10-10)** – New `StellaOps.Concelier.Source.Ghsa.Tests` regression covers fetch/parse/map via canned GHSA fixtures and snapshot assertions.| +|Deterministic fixtures & tests|QA|Testing|**DONE (2025-10-10)** – New `StellaOps.Concelier.Connector.Ghsa.Tests` regression covers fetch/parse/map via canned GHSA fixtures and snapshot assertions.| |Telemetry & documentation|DevEx|Docs|**DONE (2025-10-10)** – Diagnostics meter (`ghsa.fetch.*`) wired; DI extension documents token/headers and job registrations.| |GitHub quota monitoring & retries|BE-Conn-GHSA, Observability|Source.Common|**DONE (2025-10-12)** – Rate-limit metrics/logs added, retry/backoff handles 403 secondary limits, and ops runbook documents dashboards + mitigation steps.| |Production credential & scheduler rollout|Ops, BE-Conn-GHSA|Docs, WebService|**DONE (2025-10-12)** – Scheduler defaults registered via `JobSchedulerBuilder`, credential provisioning documented (Compose/Helm samples), and staged backfill guidance captured in `docs/ops/concelier-ghsa-operations.md`.| -|FEEDCONN-GHSA-04-002 Conflict regression fixtures|BE-Conn-GHSA, QA|Merge `FEEDMERGE-ENGINE-04-001`|**DONE (2025-10-12)** – Added `conflict-ghsa.canonical.json` + `GhsaConflictFixtureTests`; SemVer ranges and credits align with merge precedence triple and shareable with QA. Validation: `dotnet test src/StellaOps.Concelier.Source.Ghsa.Tests/StellaOps.Concelier.Source.Ghsa.Tests.csproj --filter GhsaConflictFixtureTests`.| +|FEEDCONN-GHSA-04-002 Conflict regression fixtures|BE-Conn-GHSA, QA|Merge `FEEDMERGE-ENGINE-04-001`|**DONE (2025-10-12)** – Added `conflict-ghsa.canonical.json` + `GhsaConflictFixtureTests`; SemVer ranges and credits align with merge precedence triple and shareable with QA. Validation: `dotnet test src/StellaOps.Concelier.Connector.Ghsa.Tests/StellaOps.Concelier.Connector.Ghsa.Tests.csproj --filter GhsaConflictFixtureTests`.| |FEEDCONN-GHSA-02-004 GHSA credits & ecosystem severity mapping|BE-Conn-GHSA|Models `FEEDMODELS-SCHEMA-01-002`|**DONE (2025-10-11)** – Mapper emits advisory credits with provenance masks, fixtures assert role/contact ordering, and severity normalization remains unchanged.| |FEEDCONN-GHSA-02-007 Credit parity regression fixtures|BE-Conn-GHSA, QA|Source.Nvd, Source.Osv|**DONE (2025-10-12)** – Parity fixtures regenerated via `tools/FixtureUpdater`, normalized SemVer notes verified against GHSA/NVD/OSV snapshots, and the fixtures guide now documents the headroom checks.| |FEEDCONN-GHSA-02-001 Normalized versions rollout|BE-Conn-GHSA|Models `FEEDMODELS-SCHEMA-01-003`, Normalization playbook|**DONE (2025-10-11)** – GHSA mapper now emits SemVer primitives + normalized ranges, fixtures refreshed, connector tests passing; report logged via FEEDMERGE-COORD-02-900.| |FEEDCONN-GHSA-02-005 Quota monitoring hardening|BE-Conn-GHSA, Observability|Source.Common metrics|**DONE (2025-10-12)** – Diagnostics expose headroom histograms/gauges, warning logs dedupe below the configured threshold, and the ops runbook gained alerting and mitigation guidance.| |FEEDCONN-GHSA-02-006 Scheduler rollout integration|BE-Conn-GHSA, Ops|Job scheduler|**DONE (2025-10-12)** – Dependency routine tests assert cron/timeouts, and the runbook highlights cron overrides plus backoff toggles for staged rollouts.| |FEEDCONN-GHSA-04-003 Description/CWE/metric parity rollout|BE-Conn-GHSA|Models, Core|**DONE (2025-10-15)** – Mapper emits advisory description, CWE weaknesses, and canonical CVSS metric id with updated fixtures (`osv-ghsa.osv.json` parity suite) and connector regression covers the new fields. Reported completion to Merge coordination.| -|FEEDCONN-GHSA-04-004 Canonical metric fallback coverage|BE-Conn-GHSA|Models, Merge|**DONE (2025-10-16)** – Ensure canonical metric ids remain populated when GitHub omits CVSS vectors/scores; add fixtures capturing severity-only advisories, document precedence with Merge, and emit analytics to track fallback usage.
2025-10-16: Mapper now emits `ghsa:severity/` canonical ids when vectors are missing, diagnostics expose `ghsa.map.canonical_metric_fallbacks`, conflict/mapper fixtures updated, and runbook documents Merge precedence. Tests: `dotnet test src/StellaOps.Concelier.Source.Ghsa.Tests/StellaOps.Concelier.Source.Ghsa.Tests.csproj`.| +|FEEDCONN-GHSA-04-004 Canonical metric fallback coverage|BE-Conn-GHSA|Models, Merge|**DONE (2025-10-16)** – Ensure canonical metric ids remain populated when GitHub omits CVSS vectors/scores; add fixtures capturing severity-only advisories, document precedence with Merge, and emit analytics to track fallback usage.
2025-10-16: Mapper now emits `ghsa:severity/` canonical ids when vectors are missing, diagnostics expose `ghsa.map.canonical_metric_fallbacks`, conflict/mapper fixtures updated, and runbook documents Merge precedence. Tests: `dotnet test src/StellaOps.Concelier.Connector.Ghsa.Tests/StellaOps.Concelier.Connector.Ghsa.Tests.csproj`.| diff --git a/src/StellaOps.Concelier.Source.Ics.Cisa.Tests/IcsCisa/Fixtures/icsa-25-123-01.html b/src/StellaOps.Concelier.Connector.Ics.Cisa.Tests/IcsCisa/Fixtures/icsa-25-123-01.html similarity index 100% rename from src/StellaOps.Concelier.Source.Ics.Cisa.Tests/IcsCisa/Fixtures/icsa-25-123-01.html rename to src/StellaOps.Concelier.Connector.Ics.Cisa.Tests/IcsCisa/Fixtures/icsa-25-123-01.html diff --git a/src/StellaOps.Concelier.Source.Ics.Cisa.Tests/IcsCisa/Fixtures/icsma-25-045-01.html b/src/StellaOps.Concelier.Connector.Ics.Cisa.Tests/IcsCisa/Fixtures/icsma-25-045-01.html similarity index 100% rename from src/StellaOps.Concelier.Source.Ics.Cisa.Tests/IcsCisa/Fixtures/icsma-25-045-01.html rename to src/StellaOps.Concelier.Connector.Ics.Cisa.Tests/IcsCisa/Fixtures/icsma-25-045-01.html diff --git a/src/StellaOps.Concelier.Source.Ics.Cisa.Tests/IcsCisa/Fixtures/sample-feed.xml b/src/StellaOps.Concelier.Connector.Ics.Cisa.Tests/IcsCisa/Fixtures/sample-feed.xml similarity index 100% rename from src/StellaOps.Concelier.Source.Ics.Cisa.Tests/IcsCisa/Fixtures/sample-feed.xml rename to src/StellaOps.Concelier.Connector.Ics.Cisa.Tests/IcsCisa/Fixtures/sample-feed.xml diff --git a/src/StellaOps.Concelier.Source.Ics.Cisa.Tests/IcsCisa/IcsCisaConnectorMappingTests.cs b/src/StellaOps.Concelier.Connector.Ics.Cisa.Tests/IcsCisa/IcsCisaConnectorMappingTests.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Ics.Cisa.Tests/IcsCisa/IcsCisaConnectorMappingTests.cs rename to src/StellaOps.Concelier.Connector.Ics.Cisa.Tests/IcsCisa/IcsCisaConnectorMappingTests.cs index 6f7fa286..962c6749 100644 --- a/src/StellaOps.Concelier.Source.Ics.Cisa.Tests/IcsCisa/IcsCisaConnectorMappingTests.cs +++ b/src/StellaOps.Concelier.Connector.Ics.Cisa.Tests/IcsCisa/IcsCisaConnectorMappingTests.cs @@ -2,11 +2,11 @@ using System; using System.Collections.Generic; using System.Linq; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Ics.Cisa; -using StellaOps.Concelier.Source.Ics.Cisa.Internal; +using StellaOps.Concelier.Connector.Ics.Cisa; +using StellaOps.Concelier.Connector.Ics.Cisa.Internal; using Xunit; -namespace StellaOps.Concelier.Source.Ics.Cisa.Tests.IcsCisa; +namespace StellaOps.Concelier.Connector.Ics.Cisa.Tests.IcsCisa; public class IcsCisaConnectorMappingTests { diff --git a/src/StellaOps.Concelier.Source.Ics.Cisa.Tests/IcsCisa/IcsCisaFeedParserTests.cs b/src/StellaOps.Concelier.Connector.Ics.Cisa.Tests/IcsCisa/IcsCisaFeedParserTests.cs similarity index 92% rename from src/StellaOps.Concelier.Source.Ics.Cisa.Tests/IcsCisa/IcsCisaFeedParserTests.cs rename to src/StellaOps.Concelier.Connector.Ics.Cisa.Tests/IcsCisa/IcsCisaFeedParserTests.cs index 3455e6c9..bee3eed9 100644 --- a/src/StellaOps.Concelier.Source.Ics.Cisa.Tests/IcsCisa/IcsCisaFeedParserTests.cs +++ b/src/StellaOps.Concelier.Connector.Ics.Cisa.Tests/IcsCisa/IcsCisaFeedParserTests.cs @@ -2,10 +2,10 @@ using System; using System.IO; using System.Linq; using System.Threading.Tasks; -using StellaOps.Concelier.Source.Ics.Cisa.Internal; +using StellaOps.Concelier.Connector.Ics.Cisa.Internal; using Xunit; -namespace StellaOps.Concelier.Source.Ics.Cisa.Tests.IcsCisa; +namespace StellaOps.Concelier.Connector.Ics.Cisa.Tests.IcsCisa; public class IcsCisaFeedParserTests { diff --git a/src/StellaOps.Concelier.Source.Ics.Cisa.Tests/IcsCisaConnectorTests.cs b/src/StellaOps.Concelier.Connector.Ics.Cisa.Tests/IcsCisaConnectorTests.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Ics.Cisa.Tests/IcsCisaConnectorTests.cs rename to src/StellaOps.Concelier.Connector.Ics.Cisa.Tests/IcsCisaConnectorTests.cs index 528c746e..8c2f4f67 100644 --- a/src/StellaOps.Concelier.Source.Ics.Cisa.Tests/IcsCisaConnectorTests.cs +++ b/src/StellaOps.Concelier.Connector.Ics.Cisa.Tests/IcsCisaConnectorTests.cs @@ -10,16 +10,16 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Http; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; -using StellaOps.Concelier.Source.Common.Testing; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Ics.Cisa; -using StellaOps.Concelier.Source.Ics.Cisa.Configuration; +using StellaOps.Concelier.Connector.Common.Testing; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Ics.Cisa; +using StellaOps.Concelier.Connector.Ics.Cisa.Configuration; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Testing; using Xunit; -namespace StellaOps.Concelier.Source.Ics.Cisa.Tests; +namespace StellaOps.Concelier.Connector.Ics.Cisa.Tests; [Collection("mongo-fixture")] public sealed class IcsCisaConnectorTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.Ics.Cisa.Tests/StellaOps.Concelier.Source.Ics.Cisa.Tests.csproj b/src/StellaOps.Concelier.Connector.Ics.Cisa.Tests/StellaOps.Concelier.Connector.Ics.Cisa.Tests.csproj similarity index 69% rename from src/StellaOps.Concelier.Source.Ics.Cisa.Tests/StellaOps.Concelier.Source.Ics.Cisa.Tests.csproj rename to src/StellaOps.Concelier.Connector.Ics.Cisa.Tests/StellaOps.Concelier.Connector.Ics.Cisa.Tests.csproj index 55963613..9de5526a 100644 --- a/src/StellaOps.Concelier.Source.Ics.Cisa.Tests/StellaOps.Concelier.Source.Ics.Cisa.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.Ics.Cisa.Tests/StellaOps.Concelier.Connector.Ics.Cisa.Tests.csproj @@ -6,8 +6,8 @@ - - + + diff --git a/src/StellaOps.Concelier.Source.Ics.Cisa/AGENTS.md b/src/StellaOps.Concelier.Connector.Ics.Cisa/AGENTS.md similarity index 94% rename from src/StellaOps.Concelier.Source.Ics.Cisa/AGENTS.md rename to src/StellaOps.Concelier.Connector.Ics.Cisa/AGENTS.md index 467e6b2f..f451f862 100644 --- a/src/StellaOps.Concelier.Source.Ics.Cisa/AGENTS.md +++ b/src/StellaOps.Concelier.Connector.Ics.Cisa/AGENTS.md @@ -34,6 +34,6 @@ Out of scope: - Honour upstream rate limits with exponential backoff. ## Tests -- Add `StellaOps.Concelier.Source.Ics.Cisa.Tests` to cover fetch/parse/map with canned fixtures. +- Add `StellaOps.Concelier.Connector.Ics.Cisa.Tests` to cover fetch/parse/map with canned fixtures. - Snapshot canonical advisories; support fixture regeneration via env flag. - Ensure deterministic ordering/time normalisation. diff --git a/src/StellaOps.Concelier.Source.Ics.Cisa/Configuration/IcsCisaOptions.cs b/src/StellaOps.Concelier.Connector.Ics.Cisa/Configuration/IcsCisaOptions.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Ics.Cisa/Configuration/IcsCisaOptions.cs rename to src/StellaOps.Concelier.Connector.Ics.Cisa/Configuration/IcsCisaOptions.cs index 2d0afd5a..8294f9e2 100644 --- a/src/StellaOps.Concelier.Source.Ics.Cisa/Configuration/IcsCisaOptions.cs +++ b/src/StellaOps.Concelier.Connector.Ics.Cisa/Configuration/IcsCisaOptions.cs @@ -5,7 +5,7 @@ using System.Linq; using System.Net; using System.Net.Http; -namespace StellaOps.Concelier.Source.Ics.Cisa.Configuration; +namespace StellaOps.Concelier.Connector.Ics.Cisa.Configuration; public sealed class IcsCisaOptions { diff --git a/src/StellaOps.Concelier.Source.Ics.Cisa/HANDOVER.md b/src/StellaOps.Concelier.Connector.Ics.Cisa/HANDOVER.md similarity index 72% rename from src/StellaOps.Concelier.Source.Ics.Cisa/HANDOVER.md rename to src/StellaOps.Concelier.Connector.Ics.Cisa/HANDOVER.md index 9bf7bfd4..e741097d 100644 --- a/src/StellaOps.Concelier.Source.Ics.Cisa/HANDOVER.md +++ b/src/StellaOps.Concelier.Connector.Ics.Cisa/HANDOVER.md @@ -10,12 +10,12 @@ - SemVer primitive deserialisation now restores `exactValue` (e.g., `"4.2"` → `"4.2.0"`), keeping connector snapshots deterministic. - Console debugging noise was removed from connector/parser code. - Ops runbook documents attachment + SemVer validation steps for dry runs. -- `dotnet test src/StellaOps.Concelier.Source.Ics.Cisa.Tests/StellaOps.Concelier.Source.Ics.Cisa.Tests.csproj` passes (2025-10-16). +- `dotnet test src/StellaOps.Concelier.Connector.Ics.Cisa.Tests/StellaOps.Concelier.Connector.Ics.Cisa.Tests.csproj` passes (2025-10-16). ## Outstanding Items - None. Continue monitoring Akamai access decisions and proxy requirements via Ops feedback. ## Verification Checklist -- ✅ `dotnet test src/StellaOps.Concelier.Source.Ics.Cisa.Tests/StellaOps.Concelier.Source.Ics.Cisa.Tests.csproj` -- ☐ `dotnet test src/StellaOps.Concelier.Source.Common.Tests/StellaOps.Concelier.Source.Common.Tests.csproj` (proxy support) — rerun when Source.Common changes land. +- ✅ `dotnet test src/StellaOps.Concelier.Connector.Ics.Cisa.Tests/StellaOps.Concelier.Connector.Ics.Cisa.Tests.csproj` +- ☐ `dotnet test src/StellaOps.Concelier.Connector.Common.Tests/StellaOps.Concelier.Connector.Common.Tests.csproj` (proxy support) — rerun when Source.Common changes land. - Keep this summary aligned with `TASKS.md` as further work emerges. diff --git a/src/StellaOps.Concelier.Source.Ics.Cisa/IcsCisaConnector.cs b/src/StellaOps.Concelier.Connector.Ics.Cisa/IcsCisaConnector.cs similarity index 99% rename from src/StellaOps.Concelier.Source.Ics.Cisa/IcsCisaConnector.cs rename to src/StellaOps.Concelier.Connector.Ics.Cisa/IcsCisaConnector.cs index 08efae93..0d269b14 100644 --- a/src/StellaOps.Concelier.Source.Ics.Cisa/IcsCisaConnector.cs +++ b/src/StellaOps.Concelier.Connector.Ics.Cisa/IcsCisaConnector.cs @@ -18,18 +18,18 @@ using Microsoft.Extensions.Options; using MongoDB.Bson; using MongoDB.Bson.IO; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Common.Html; -using StellaOps.Concelier.Source.Ics.Cisa.Configuration; -using StellaOps.Concelier.Source.Ics.Cisa.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Common.Html; +using StellaOps.Concelier.Connector.Ics.Cisa.Configuration; +using StellaOps.Concelier.Connector.Ics.Cisa.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Ics.Cisa; +namespace StellaOps.Concelier.Connector.Ics.Cisa; public sealed class IcsCisaConnector : IFeedConnector { diff --git a/src/StellaOps.Concelier.Source.Ics.Cisa/IcsCisaConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.Ics.Cisa/IcsCisaConnectorPlugin.cs similarity index 91% rename from src/StellaOps.Concelier.Source.Ics.Cisa/IcsCisaConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.Ics.Cisa/IcsCisaConnectorPlugin.cs index 3579ee61..ea2bcfd2 100644 --- a/src/StellaOps.Concelier.Source.Ics.Cisa/IcsCisaConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.Ics.Cisa/IcsCisaConnectorPlugin.cs @@ -1,7 +1,7 @@ using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Ics.Cisa; +namespace StellaOps.Concelier.Connector.Ics.Cisa; public sealed class IcsCisaConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.Ics.Cisa/IcsCisaDependencyInjectionRoutine.cs b/src/StellaOps.Concelier.Connector.Ics.Cisa/IcsCisaDependencyInjectionRoutine.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Ics.Cisa/IcsCisaDependencyInjectionRoutine.cs rename to src/StellaOps.Concelier.Connector.Ics.Cisa/IcsCisaDependencyInjectionRoutine.cs index f8f43c76..dddcffc8 100644 --- a/src/StellaOps.Concelier.Source.Ics.Cisa/IcsCisaDependencyInjectionRoutine.cs +++ b/src/StellaOps.Concelier.Connector.Ics.Cisa/IcsCisaDependencyInjectionRoutine.cs @@ -3,9 +3,9 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using StellaOps.DependencyInjection; using StellaOps.Concelier.Core.Jobs; -using StellaOps.Concelier.Source.Ics.Cisa.Configuration; +using StellaOps.Concelier.Connector.Ics.Cisa.Configuration; -namespace StellaOps.Concelier.Source.Ics.Cisa; +namespace StellaOps.Concelier.Connector.Ics.Cisa; public sealed class IcsCisaDependencyInjectionRoutine : IDependencyInjectionRoutine { diff --git a/src/StellaOps.Concelier.Source.Ics.Cisa/IcsCisaServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.Ics.Cisa/IcsCisaServiceCollectionExtensions.cs similarity index 91% rename from src/StellaOps.Concelier.Source.Ics.Cisa/IcsCisaServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.Ics.Cisa/IcsCisaServiceCollectionExtensions.cs index f0e2e398..f8ce3711 100644 --- a/src/StellaOps.Concelier.Source.Ics.Cisa/IcsCisaServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.Ics.Cisa/IcsCisaServiceCollectionExtensions.cs @@ -2,11 +2,11 @@ using System; using System.Net; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Ics.Cisa.Configuration; -using StellaOps.Concelier.Source.Ics.Cisa.Internal; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Ics.Cisa.Configuration; +using StellaOps.Concelier.Connector.Ics.Cisa.Internal; -namespace StellaOps.Concelier.Source.Ics.Cisa; +namespace StellaOps.Concelier.Connector.Ics.Cisa; public static class IcsCisaServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Source.Ics.Cisa/Internal/IcsCisaAdvisoryDto.cs b/src/StellaOps.Concelier.Connector.Ics.Cisa/Internal/IcsCisaAdvisoryDto.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Ics.Cisa/Internal/IcsCisaAdvisoryDto.cs rename to src/StellaOps.Concelier.Connector.Ics.Cisa/Internal/IcsCisaAdvisoryDto.cs index cda69445..5afd2413 100644 --- a/src/StellaOps.Concelier.Source.Ics.Cisa/Internal/IcsCisaAdvisoryDto.cs +++ b/src/StellaOps.Concelier.Connector.Ics.Cisa/Internal/IcsCisaAdvisoryDto.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json.Serialization; -namespace StellaOps.Concelier.Source.Ics.Cisa.Internal; +namespace StellaOps.Concelier.Connector.Ics.Cisa.Internal; public sealed record IcsCisaAdvisoryDto { diff --git a/src/StellaOps.Concelier.Source.Ics.Cisa/Internal/IcsCisaAttachmentDto.cs b/src/StellaOps.Concelier.Connector.Ics.Cisa/Internal/IcsCisaAttachmentDto.cs similarity index 79% rename from src/StellaOps.Concelier.Source.Ics.Cisa/Internal/IcsCisaAttachmentDto.cs rename to src/StellaOps.Concelier.Connector.Ics.Cisa/Internal/IcsCisaAttachmentDto.cs index 53e94b1f..1978f0fb 100644 --- a/src/StellaOps.Concelier.Source.Ics.Cisa/Internal/IcsCisaAttachmentDto.cs +++ b/src/StellaOps.Concelier.Connector.Ics.Cisa/Internal/IcsCisaAttachmentDto.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace StellaOps.Concelier.Source.Ics.Cisa.Internal; +namespace StellaOps.Concelier.Connector.Ics.Cisa.Internal; public sealed record IcsCisaAttachmentDto { diff --git a/src/StellaOps.Concelier.Source.Ics.Cisa/Internal/IcsCisaCursor.cs b/src/StellaOps.Concelier.Connector.Ics.Cisa/Internal/IcsCisaCursor.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Ics.Cisa/Internal/IcsCisaCursor.cs rename to src/StellaOps.Concelier.Connector.Ics.Cisa/Internal/IcsCisaCursor.cs index 9fa28ca1..b9454ff6 100644 --- a/src/StellaOps.Concelier.Source.Ics.Cisa/Internal/IcsCisaCursor.cs +++ b/src/StellaOps.Concelier.Connector.Ics.Cisa/Internal/IcsCisaCursor.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using MongoDB.Bson; -namespace StellaOps.Concelier.Source.Ics.Cisa.Internal; +namespace StellaOps.Concelier.Connector.Ics.Cisa.Internal; internal sealed record IcsCisaCursor( DateTimeOffset? LastPublished, diff --git a/src/StellaOps.Concelier.Source.Ics.Cisa/Internal/IcsCisaDiagnostics.cs b/src/StellaOps.Concelier.Connector.Ics.Cisa/Internal/IcsCisaDiagnostics.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Ics.Cisa/Internal/IcsCisaDiagnostics.cs rename to src/StellaOps.Concelier.Connector.Ics.Cisa/Internal/IcsCisaDiagnostics.cs index 9d00236e..e70a96bb 100644 --- a/src/StellaOps.Concelier.Source.Ics.Cisa/Internal/IcsCisaDiagnostics.cs +++ b/src/StellaOps.Concelier.Connector.Ics.Cisa/Internal/IcsCisaDiagnostics.cs @@ -2,11 +2,11 @@ using System; using System.Collections.Generic; using System.Diagnostics.Metrics; -namespace StellaOps.Concelier.Source.Ics.Cisa.Internal; +namespace StellaOps.Concelier.Connector.Ics.Cisa.Internal; public sealed class IcsCisaDiagnostics : IDisposable { - private const string MeterName = "StellaOps.Concelier.Source.Ics.Cisa"; + private const string MeterName = "StellaOps.Concelier.Connector.Ics.Cisa"; private const string MeterVersion = "1.0.0"; private readonly Meter _meter; diff --git a/src/StellaOps.Concelier.Source.Ics.Cisa/Internal/IcsCisaFeedDto.cs b/src/StellaOps.Concelier.Connector.Ics.Cisa/Internal/IcsCisaFeedDto.cs similarity index 87% rename from src/StellaOps.Concelier.Source.Ics.Cisa/Internal/IcsCisaFeedDto.cs rename to src/StellaOps.Concelier.Connector.Ics.Cisa/Internal/IcsCisaFeedDto.cs index f9fa67a0..32636ffb 100644 --- a/src/StellaOps.Concelier.Source.Ics.Cisa/Internal/IcsCisaFeedDto.cs +++ b/src/StellaOps.Concelier.Connector.Ics.Cisa/Internal/IcsCisaFeedDto.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.Text.Json.Serialization; -namespace StellaOps.Concelier.Source.Ics.Cisa.Internal; +namespace StellaOps.Concelier.Connector.Ics.Cisa.Internal; public sealed record IcsCisaFeedDto { diff --git a/src/StellaOps.Concelier.Source.Ics.Cisa/Internal/IcsCisaFeedParser.cs b/src/StellaOps.Concelier.Connector.Ics.Cisa/Internal/IcsCisaFeedParser.cs similarity index 99% rename from src/StellaOps.Concelier.Source.Ics.Cisa/Internal/IcsCisaFeedParser.cs rename to src/StellaOps.Concelier.Connector.Ics.Cisa/Internal/IcsCisaFeedParser.cs index e5004a59..369cfe0f 100644 --- a/src/StellaOps.Concelier.Source.Ics.Cisa/Internal/IcsCisaFeedParser.cs +++ b/src/StellaOps.Concelier.Connector.Ics.Cisa/Internal/IcsCisaFeedParser.cs @@ -8,9 +8,9 @@ using System.Text.RegularExpressions; using System.Xml; using AngleSharp.Html.Parser; using AngleSharp.Html.Dom; -using StellaOps.Concelier.Source.Common.Html; +using StellaOps.Concelier.Connector.Common.Html; -namespace StellaOps.Concelier.Source.Ics.Cisa.Internal; +namespace StellaOps.Concelier.Connector.Ics.Cisa.Internal; public sealed class IcsCisaFeedParser { diff --git a/src/StellaOps.Concelier.Source.Ics.Cisa/Jobs.cs b/src/StellaOps.Concelier.Connector.Ics.Cisa/Jobs.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Ics.Cisa/Jobs.cs rename to src/StellaOps.Concelier.Connector.Ics.Cisa/Jobs.cs index f0fee34b..75c263a6 100644 --- a/src/StellaOps.Concelier.Source.Ics.Cisa/Jobs.cs +++ b/src/StellaOps.Concelier.Connector.Ics.Cisa/Jobs.cs @@ -3,7 +3,7 @@ using System.Threading; using System.Threading.Tasks; using StellaOps.Concelier.Core.Jobs; -namespace StellaOps.Concelier.Source.Ics.Cisa; +namespace StellaOps.Concelier.Connector.Ics.Cisa; internal static class IcsCisaJobKinds { diff --git a/src/StellaOps.Concelier.Source.Ics.Cisa/StellaOps.Concelier.Source.Ics.Cisa.csproj b/src/StellaOps.Concelier.Connector.Ics.Cisa/StellaOps.Concelier.Connector.Ics.Cisa.csproj similarity index 81% rename from src/StellaOps.Concelier.Source.Ics.Cisa/StellaOps.Concelier.Source.Ics.Cisa.csproj rename to src/StellaOps.Concelier.Connector.Ics.Cisa/StellaOps.Concelier.Connector.Ics.Cisa.csproj index c91eb5ee..efa0d56d 100644 --- a/src/StellaOps.Concelier.Source.Ics.Cisa/StellaOps.Concelier.Source.Ics.Cisa.csproj +++ b/src/StellaOps.Concelier.Connector.Ics.Cisa/StellaOps.Concelier.Connector.Ics.Cisa.csproj @@ -9,7 +9,7 @@ - + @@ -21,7 +21,7 @@ - <_Parameter1>StellaOps.Concelier.Source.Ics.Cisa.Tests + <_Parameter1>StellaOps.Concelier.Connector.Ics.Cisa.Tests diff --git a/src/StellaOps.Concelier.Source.Ics.Cisa/TASKS.md b/src/StellaOps.Concelier.Connector.Ics.Cisa/TASKS.md similarity index 96% rename from src/StellaOps.Concelier.Source.Ics.Cisa/TASKS.md rename to src/StellaOps.Concelier.Connector.Ics.Cisa/TASKS.md index bf38c96e..c26b4ab3 100644 --- a/src/StellaOps.Concelier.Source.Ics.Cisa/TASKS.md +++ b/src/StellaOps.Concelier.Connector.Ics.Cisa/TASKS.md @@ -5,7 +5,7 @@ |FEEDCONN-ICSCISA-02-002 Fetch pipeline & cursor storage|BE-Conn-ICS-CISA|Source.Common, Storage.Mongo|**DONE (2025-10-16)** – Confirmed proxy knobs + cursor state behave with the refreshed fixtures; ops runbook now captures proxy usage/validation so the fetch stage is production-ready.| |FEEDCONN-ICSCISA-02-003 DTO/parser implementation|BE-Conn-ICS-CISA|Source.Common|**DONE (2025-10-16)** – Feed parser fixtures updated to retain vendor PDFs as attachments while maintaining reference coverage; console diagnostics removed.| |FEEDCONN-ICSCISA-02-004 Canonical mapping & range primitives|BE-Conn-ICS-CISA|Models|**DONE (2025-10-16)** – `TryCreateSemVerPrimitive` flow + Mongo deserialiser now persist `exactValue` (`4.2` → `4.2.0`), unblocking canonical snapshots.| -|FEEDCONN-ICSCISA-02-005 Deterministic fixtures/tests|QA|Testing|**DONE (2025-10-16)** – `dotnet test src/StellaOps.Concelier.Source.Ics.Cisa.Tests/...` passes; fixtures assert attachment handling + SemVer semantics.| +|FEEDCONN-ICSCISA-02-005 Deterministic fixtures/tests|QA|Testing|**DONE (2025-10-16)** – `dotnet test src/StellaOps.Concelier.Connector.Ics.Cisa.Tests/...` passes; fixtures assert attachment handling + SemVer semantics.| |FEEDCONN-ICSCISA-02-006 Telemetry & documentation|DevEx|Docs|**DONE (2025-10-16)** – Ops guide documents attachment checks, SemVer exact values, and proxy guidance; diagnostics remain unchanged.| |FEEDCONN-ICSCISA-02-007 Detail document inventory|BE-Conn-ICS-CISA|Research|**DONE (2025-10-16)** – Validated canned detail pages vs feed output so attachment inventories stay aligned; archived expectations noted in `HANDOVER.md`.| |FEEDCONN-ICSCISA-02-008 Distribution fallback strategy|BE-Conn-ICS-CISA|Research|**DONE (2025-10-11)** – Outlined GovDelivery token request, HTML scrape + email digest fallback, and dependency on Ops for credential workflow; awaiting decision before fetch implementation.| diff --git a/src/StellaOps.Concelier.Source.Ics.Kaspersky.Tests/Kaspersky/Fixtures/detail-acme-controller-2024.html b/src/StellaOps.Concelier.Connector.Ics.Kaspersky.Tests/Kaspersky/Fixtures/detail-acme-controller-2024.html similarity index 100% rename from src/StellaOps.Concelier.Source.Ics.Kaspersky.Tests/Kaspersky/Fixtures/detail-acme-controller-2024.html rename to src/StellaOps.Concelier.Connector.Ics.Kaspersky.Tests/Kaspersky/Fixtures/detail-acme-controller-2024.html diff --git a/src/StellaOps.Concelier.Source.Ics.Kaspersky.Tests/Kaspersky/Fixtures/expected-advisory.json b/src/StellaOps.Concelier.Connector.Ics.Kaspersky.Tests/Kaspersky/Fixtures/expected-advisory.json similarity index 100% rename from src/StellaOps.Concelier.Source.Ics.Kaspersky.Tests/Kaspersky/Fixtures/expected-advisory.json rename to src/StellaOps.Concelier.Connector.Ics.Kaspersky.Tests/Kaspersky/Fixtures/expected-advisory.json diff --git a/src/StellaOps.Concelier.Source.Ics.Kaspersky.Tests/Kaspersky/Fixtures/feed-page1.xml b/src/StellaOps.Concelier.Connector.Ics.Kaspersky.Tests/Kaspersky/Fixtures/feed-page1.xml similarity index 100% rename from src/StellaOps.Concelier.Source.Ics.Kaspersky.Tests/Kaspersky/Fixtures/feed-page1.xml rename to src/StellaOps.Concelier.Connector.Ics.Kaspersky.Tests/Kaspersky/Fixtures/feed-page1.xml diff --git a/src/StellaOps.Concelier.Source.Ics.Kaspersky.Tests/Kaspersky/KasperskyConnectorTests.cs b/src/StellaOps.Concelier.Connector.Ics.Kaspersky.Tests/Kaspersky/KasperskyConnectorTests.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Ics.Kaspersky.Tests/Kaspersky/KasperskyConnectorTests.cs rename to src/StellaOps.Concelier.Connector.Ics.Kaspersky.Tests/Kaspersky/KasperskyConnectorTests.cs index 80afafa0..3c846ff2 100644 --- a/src/StellaOps.Concelier.Source.Ics.Kaspersky.Tests/Kaspersky/KasperskyConnectorTests.cs +++ b/src/StellaOps.Concelier.Connector.Ics.Kaspersky.Tests/Kaspersky/KasperskyConnectorTests.cs @@ -13,19 +13,19 @@ using Microsoft.Extensions.Options; using Microsoft.Extensions.Time.Testing; using MongoDB.Bson; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Common.Testing; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Ics.Kaspersky; -using StellaOps.Concelier.Source.Ics.Kaspersky.Configuration; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Common.Testing; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Ics.Kaspersky; +using StellaOps.Concelier.Connector.Ics.Kaspersky.Configuration; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Concelier.Testing; -namespace StellaOps.Concelier.Source.Ics.Kaspersky.Tests; +namespace StellaOps.Concelier.Connector.Ics.Kaspersky.Tests; [Collection("mongo-fixture")] public sealed class KasperskyConnectorTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.Ics.Kaspersky.Tests/StellaOps.Concelier.Source.Ics.Kaspersky.Tests.csproj b/src/StellaOps.Concelier.Connector.Ics.Kaspersky.Tests/StellaOps.Concelier.Connector.Ics.Kaspersky.Tests.csproj similarity index 67% rename from src/StellaOps.Concelier.Source.Ics.Kaspersky.Tests/StellaOps.Concelier.Source.Ics.Kaspersky.Tests.csproj rename to src/StellaOps.Concelier.Connector.Ics.Kaspersky.Tests/StellaOps.Concelier.Connector.Ics.Kaspersky.Tests.csproj index 9638d8df..fcb1a72c 100644 --- a/src/StellaOps.Concelier.Source.Ics.Kaspersky.Tests/StellaOps.Concelier.Source.Ics.Kaspersky.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.Ics.Kaspersky.Tests/StellaOps.Concelier.Connector.Ics.Kaspersky.Tests.csproj @@ -6,8 +6,8 @@ - - + + diff --git a/src/StellaOps.Concelier.Source.Ics.Kaspersky/AGENTS.md b/src/StellaOps.Concelier.Connector.Ics.Kaspersky/AGENTS.md similarity index 94% rename from src/StellaOps.Concelier.Source.Ics.Kaspersky/AGENTS.md rename to src/StellaOps.Concelier.Connector.Ics.Kaspersky/AGENTS.md index 076ae99d..ed709759 100644 --- a/src/StellaOps.Concelier.Source.Ics.Kaspersky/AGENTS.md +++ b/src/StellaOps.Concelier.Connector.Ics.Kaspersky/AGENTS.md @@ -23,6 +23,6 @@ Out: firmware downloads; reverse-engineering artifacts. - 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.Source.Ics.Kaspersky.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. diff --git a/src/StellaOps.Concelier.Source.Ics.Kaspersky/Configuration/KasperskyOptions.cs b/src/StellaOps.Concelier.Connector.Ics.Kaspersky/Configuration/KasperskyOptions.cs similarity index 92% rename from src/StellaOps.Concelier.Source.Ics.Kaspersky/Configuration/KasperskyOptions.cs rename to src/StellaOps.Concelier.Connector.Ics.Kaspersky/Configuration/KasperskyOptions.cs index e103f386..0caae5b4 100644 --- a/src/StellaOps.Concelier.Source.Ics.Kaspersky/Configuration/KasperskyOptions.cs +++ b/src/StellaOps.Concelier.Connector.Ics.Kaspersky/Configuration/KasperskyOptions.cs @@ -1,7 +1,7 @@ using System; using System.Diagnostics.CodeAnalysis; -namespace StellaOps.Concelier.Source.Ics.Kaspersky.Configuration; +namespace StellaOps.Concelier.Connector.Ics.Kaspersky.Configuration; public sealed class KasperskyOptions { diff --git a/src/StellaOps.Concelier.Source.Ics.Kaspersky/Internal/KasperskyAdvisoryDto.cs b/src/StellaOps.Concelier.Connector.Ics.Kaspersky/Internal/KasperskyAdvisoryDto.cs similarity index 79% rename from src/StellaOps.Concelier.Source.Ics.Kaspersky/Internal/KasperskyAdvisoryDto.cs rename to src/StellaOps.Concelier.Connector.Ics.Kaspersky/Internal/KasperskyAdvisoryDto.cs index b3fed2d7..6adf3294 100644 --- a/src/StellaOps.Concelier.Source.Ics.Kaspersky/Internal/KasperskyAdvisoryDto.cs +++ b/src/StellaOps.Concelier.Connector.Ics.Kaspersky/Internal/KasperskyAdvisoryDto.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Immutable; -namespace StellaOps.Concelier.Source.Ics.Kaspersky.Internal; +namespace StellaOps.Concelier.Connector.Ics.Kaspersky.Internal; internal sealed record KasperskyAdvisoryDto( string AdvisoryKey, diff --git a/src/StellaOps.Concelier.Source.Ics.Kaspersky/Internal/KasperskyAdvisoryParser.cs b/src/StellaOps.Concelier.Connector.Ics.Kaspersky/Internal/KasperskyAdvisoryParser.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Ics.Kaspersky/Internal/KasperskyAdvisoryParser.cs rename to src/StellaOps.Concelier.Connector.Ics.Kaspersky/Internal/KasperskyAdvisoryParser.cs index 34568b90..41003023 100644 --- a/src/StellaOps.Concelier.Source.Ics.Kaspersky/Internal/KasperskyAdvisoryParser.cs +++ b/src/StellaOps.Concelier.Connector.Ics.Kaspersky/Internal/KasperskyAdvisoryParser.cs @@ -6,7 +6,7 @@ using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; -namespace StellaOps.Concelier.Source.Ics.Kaspersky.Internal; +namespace StellaOps.Concelier.Connector.Ics.Kaspersky.Internal; internal static class KasperskyAdvisoryParser { diff --git a/src/StellaOps.Concelier.Source.Ics.Kaspersky/Internal/KasperskyCursor.cs b/src/StellaOps.Concelier.Connector.Ics.Kaspersky/Internal/KasperskyCursor.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Ics.Kaspersky/Internal/KasperskyCursor.cs rename to src/StellaOps.Concelier.Connector.Ics.Kaspersky/Internal/KasperskyCursor.cs index 50557e86..ebbffe59 100644 --- a/src/StellaOps.Concelier.Source.Ics.Kaspersky/Internal/KasperskyCursor.cs +++ b/src/StellaOps.Concelier.Connector.Ics.Kaspersky/Internal/KasperskyCursor.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using MongoDB.Bson; -namespace StellaOps.Concelier.Source.Ics.Kaspersky.Internal; +namespace StellaOps.Concelier.Connector.Ics.Kaspersky.Internal; internal sealed record KasperskyCursor( DateTimeOffset? LastPublished, diff --git a/src/StellaOps.Concelier.Source.Ics.Kaspersky/Internal/KasperskyFeedClient.cs b/src/StellaOps.Concelier.Connector.Ics.Kaspersky/Internal/KasperskyFeedClient.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Ics.Kaspersky/Internal/KasperskyFeedClient.cs rename to src/StellaOps.Concelier.Connector.Ics.Kaspersky/Internal/KasperskyFeedClient.cs index 55e0c35a..703ce358 100644 --- a/src/StellaOps.Concelier.Source.Ics.Kaspersky/Internal/KasperskyFeedClient.cs +++ b/src/StellaOps.Concelier.Connector.Ics.Kaspersky/Internal/KasperskyFeedClient.cs @@ -10,9 +10,9 @@ using System.Threading.Tasks; using System.Xml.Linq; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Ics.Kaspersky.Configuration; +using StellaOps.Concelier.Connector.Ics.Kaspersky.Configuration; -namespace StellaOps.Concelier.Source.Ics.Kaspersky.Internal; +namespace StellaOps.Concelier.Connector.Ics.Kaspersky.Internal; public sealed class KasperskyFeedClient { diff --git a/src/StellaOps.Concelier.Source.Ics.Kaspersky/Internal/KasperskyFeedItem.cs b/src/StellaOps.Concelier.Connector.Ics.Kaspersky/Internal/KasperskyFeedItem.cs similarity index 65% rename from src/StellaOps.Concelier.Source.Ics.Kaspersky/Internal/KasperskyFeedItem.cs rename to src/StellaOps.Concelier.Connector.Ics.Kaspersky/Internal/KasperskyFeedItem.cs index 1033465f..724afa42 100644 --- a/src/StellaOps.Concelier.Source.Ics.Kaspersky/Internal/KasperskyFeedItem.cs +++ b/src/StellaOps.Concelier.Connector.Ics.Kaspersky/Internal/KasperskyFeedItem.cs @@ -1,6 +1,6 @@ using System; -namespace StellaOps.Concelier.Source.Ics.Kaspersky.Internal; +namespace StellaOps.Concelier.Connector.Ics.Kaspersky.Internal; public sealed record KasperskyFeedItem( string Title, diff --git a/src/StellaOps.Concelier.Source.Ics.Kaspersky/Jobs.cs b/src/StellaOps.Concelier.Connector.Ics.Kaspersky/Jobs.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Ics.Kaspersky/Jobs.cs rename to src/StellaOps.Concelier.Connector.Ics.Kaspersky/Jobs.cs index e8750edb..07e9b7f8 100644 --- a/src/StellaOps.Concelier.Source.Ics.Kaspersky/Jobs.cs +++ b/src/StellaOps.Concelier.Connector.Ics.Kaspersky/Jobs.cs @@ -3,7 +3,7 @@ using System.Threading; using System.Threading.Tasks; using StellaOps.Concelier.Core.Jobs; -namespace StellaOps.Concelier.Source.Ics.Kaspersky; +namespace StellaOps.Concelier.Connector.Ics.Kaspersky; internal static class KasperskyJobKinds { diff --git a/src/StellaOps.Concelier.Source.Ics.Kaspersky/KasperskyConnector.cs b/src/StellaOps.Concelier.Connector.Ics.Kaspersky/KasperskyConnector.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Ics.Kaspersky/KasperskyConnector.cs rename to src/StellaOps.Concelier.Connector.Ics.Kaspersky/KasperskyConnector.cs index 7e82bd54..8c47b7bc 100644 --- a/src/StellaOps.Concelier.Source.Ics.Kaspersky/KasperskyConnector.cs +++ b/src/StellaOps.Concelier.Connector.Ics.Kaspersky/KasperskyConnector.cs @@ -8,17 +8,17 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using MongoDB.Bson; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Ics.Kaspersky.Configuration; -using StellaOps.Concelier.Source.Ics.Kaspersky.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Ics.Kaspersky.Configuration; +using StellaOps.Concelier.Connector.Ics.Kaspersky.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Ics.Kaspersky; +namespace StellaOps.Concelier.Connector.Ics.Kaspersky; public sealed class KasperskyConnector : IFeedConnector { diff --git a/src/StellaOps.Concelier.Source.Ics.Kaspersky/KasperskyConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.Ics.Kaspersky/KasperskyConnectorPlugin.cs similarity index 87% rename from src/StellaOps.Concelier.Source.Ics.Kaspersky/KasperskyConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.Ics.Kaspersky/KasperskyConnectorPlugin.cs index 98dd6db0..4c0a74ab 100644 --- a/src/StellaOps.Concelier.Source.Ics.Kaspersky/KasperskyConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.Ics.Kaspersky/KasperskyConnectorPlugin.cs @@ -1,7 +1,7 @@ using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Ics.Kaspersky; +namespace StellaOps.Concelier.Connector.Ics.Kaspersky; public sealed class KasperskyConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.Ics.Kaspersky/KasperskyDependencyInjectionRoutine.cs b/src/StellaOps.Concelier.Connector.Ics.Kaspersky/KasperskyDependencyInjectionRoutine.cs similarity index 90% rename from src/StellaOps.Concelier.Source.Ics.Kaspersky/KasperskyDependencyInjectionRoutine.cs rename to src/StellaOps.Concelier.Connector.Ics.Kaspersky/KasperskyDependencyInjectionRoutine.cs index 96cf5e94..d6983adc 100644 --- a/src/StellaOps.Concelier.Source.Ics.Kaspersky/KasperskyDependencyInjectionRoutine.cs +++ b/src/StellaOps.Concelier.Connector.Ics.Kaspersky/KasperskyDependencyInjectionRoutine.cs @@ -3,9 +3,9 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using StellaOps.DependencyInjection; using StellaOps.Concelier.Core.Jobs; -using StellaOps.Concelier.Source.Ics.Kaspersky.Configuration; +using StellaOps.Concelier.Connector.Ics.Kaspersky.Configuration; -namespace StellaOps.Concelier.Source.Ics.Kaspersky; +namespace StellaOps.Concelier.Connector.Ics.Kaspersky; public sealed class KasperskyDependencyInjectionRoutine : IDependencyInjectionRoutine { diff --git a/src/StellaOps.Concelier.Source.Ics.Kaspersky/KasperskyServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.Ics.Kaspersky/KasperskyServiceCollectionExtensions.cs similarity index 82% rename from src/StellaOps.Concelier.Source.Ics.Kaspersky/KasperskyServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.Ics.Kaspersky/KasperskyServiceCollectionExtensions.cs index aecbc0c3..0b22c576 100644 --- a/src/StellaOps.Concelier.Source.Ics.Kaspersky/KasperskyServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.Ics.Kaspersky/KasperskyServiceCollectionExtensions.cs @@ -1,11 +1,11 @@ using System; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Ics.Kaspersky.Configuration; -using StellaOps.Concelier.Source.Ics.Kaspersky.Internal; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Ics.Kaspersky.Configuration; +using StellaOps.Concelier.Connector.Ics.Kaspersky.Internal; -namespace StellaOps.Concelier.Source.Ics.Kaspersky; +namespace StellaOps.Concelier.Connector.Ics.Kaspersky; public static class KasperskyServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Source.CertIn/StellaOps.Concelier.Source.CertIn.csproj b/src/StellaOps.Concelier.Connector.Ics.Kaspersky/StellaOps.Concelier.Connector.Ics.Kaspersky.csproj similarity index 79% rename from src/StellaOps.Concelier.Source.CertIn/StellaOps.Concelier.Source.CertIn.csproj rename to src/StellaOps.Concelier.Connector.Ics.Kaspersky/StellaOps.Concelier.Connector.Ics.Kaspersky.csproj index 832b35b4..44c74bcc 100644 --- a/src/StellaOps.Concelier.Source.CertIn/StellaOps.Concelier.Source.CertIn.csproj +++ b/src/StellaOps.Concelier.Connector.Ics.Kaspersky/StellaOps.Concelier.Connector.Ics.Kaspersky.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/StellaOps.Concelier.Source.Ics.Kaspersky/TASKS.md b/src/StellaOps.Concelier.Connector.Ics.Kaspersky/TASKS.md similarity index 100% rename from src/StellaOps.Concelier.Source.Ics.Kaspersky/TASKS.md rename to src/StellaOps.Concelier.Connector.Ics.Kaspersky/TASKS.md diff --git a/src/StellaOps.Concelier.Source.Jvn.Tests/Jvn/Fixtures/expected-advisory.json b/src/StellaOps.Concelier.Connector.Jvn.Tests/Jvn/Fixtures/expected-advisory.json similarity index 100% rename from src/StellaOps.Concelier.Source.Jvn.Tests/Jvn/Fixtures/expected-advisory.json rename to src/StellaOps.Concelier.Connector.Jvn.Tests/Jvn/Fixtures/expected-advisory.json diff --git a/src/StellaOps.Concelier.Source.Jvn.Tests/Jvn/Fixtures/jvnrss-window1.xml b/src/StellaOps.Concelier.Connector.Jvn.Tests/Jvn/Fixtures/jvnrss-window1.xml similarity index 100% rename from src/StellaOps.Concelier.Source.Jvn.Tests/Jvn/Fixtures/jvnrss-window1.xml rename to src/StellaOps.Concelier.Connector.Jvn.Tests/Jvn/Fixtures/jvnrss-window1.xml diff --git a/src/StellaOps.Concelier.Source.Jvn.Tests/Jvn/Fixtures/vuldef-JVNDB-2024-123456.xml b/src/StellaOps.Concelier.Connector.Jvn.Tests/Jvn/Fixtures/vuldef-JVNDB-2024-123456.xml similarity index 100% rename from src/StellaOps.Concelier.Source.Jvn.Tests/Jvn/Fixtures/vuldef-JVNDB-2024-123456.xml rename to src/StellaOps.Concelier.Connector.Jvn.Tests/Jvn/Fixtures/vuldef-JVNDB-2024-123456.xml diff --git a/src/StellaOps.Concelier.Source.Jvn.Tests/Jvn/JvnConnectorTests.cs b/src/StellaOps.Concelier.Connector.Jvn.Tests/Jvn/JvnConnectorTests.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Jvn.Tests/Jvn/JvnConnectorTests.cs rename to src/StellaOps.Concelier.Connector.Jvn.Tests/Jvn/JvnConnectorTests.cs index fab0c427..682675dc 100644 --- a/src/StellaOps.Concelier.Source.Jvn.Tests/Jvn/JvnConnectorTests.cs +++ b/src/StellaOps.Concelier.Connector.Jvn.Tests/Jvn/JvnConnectorTests.cs @@ -13,12 +13,12 @@ using Microsoft.Extensions.Time.Testing; using MongoDB.Bson; using MongoDB.Driver; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Common.Testing; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Jvn; -using StellaOps.Concelier.Source.Jvn.Configuration; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Common.Testing; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Jvn; +using StellaOps.Concelier.Connector.Jvn.Configuration; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; @@ -27,7 +27,7 @@ using StellaOps.Concelier.Storage.Mongo.JpFlags; using Xunit.Abstractions; using StellaOps.Concelier.Testing; -namespace StellaOps.Concelier.Source.Jvn.Tests; +namespace StellaOps.Concelier.Connector.Jvn.Tests; [Collection("mongo-fixture")] public sealed class JvnConnectorTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.Jvn.Tests/StellaOps.Concelier.Source.Jvn.Tests.csproj b/src/StellaOps.Concelier.Connector.Jvn.Tests/StellaOps.Concelier.Connector.Jvn.Tests.csproj similarity index 68% rename from src/StellaOps.Concelier.Source.Jvn.Tests/StellaOps.Concelier.Source.Jvn.Tests.csproj rename to src/StellaOps.Concelier.Connector.Jvn.Tests/StellaOps.Concelier.Connector.Jvn.Tests.csproj index 876f04e7..69a9f212 100644 --- a/src/StellaOps.Concelier.Source.Jvn.Tests/StellaOps.Concelier.Source.Jvn.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.Jvn.Tests/StellaOps.Concelier.Connector.Jvn.Tests.csproj @@ -6,8 +6,8 @@ - - + + diff --git a/src/StellaOps.Concelier.Source.Jvn/AGENTS.md b/src/StellaOps.Concelier.Connector.Jvn/AGENTS.md similarity index 95% rename from src/StellaOps.Concelier.Source.Jvn/AGENTS.md rename to src/StellaOps.Concelier.Connector.Jvn/AGENTS.md index da22e652..38e3f736 100644 --- a/src/StellaOps.Concelier.Source.Jvn/AGENTS.md +++ b/src/StellaOps.Concelier.Connector.Jvn/AGENTS.md @@ -24,6 +24,6 @@ Out: overriding distro or PSIRT ranges without concrete evidence; scraping unoff - Metrics: SourceDiagnostics emits `concelier.source.http.*` counters/histograms tagged `concelier.source=jvn`, enabling dashboards to track fetch requests, item counts, parse failures, and enrichment/map activity (including jp_flags) via tag filters. - Logs: window bounds, jvndb ids processed, vendor_status distribution; redact API keys. ## Tests -- Author and review coverage in `../StellaOps.Concelier.Source.Jvn.Tests`. +- Author and review coverage in `../StellaOps.Concelier.Connector.Jvn.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. diff --git a/src/StellaOps.Concelier.Source.Jvn/Configuration/JvnOptions.cs b/src/StellaOps.Concelier.Connector.Jvn/Configuration/JvnOptions.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Jvn/Configuration/JvnOptions.cs rename to src/StellaOps.Concelier.Connector.Jvn/Configuration/JvnOptions.cs index 74245769..a2c5bb7c 100644 --- a/src/StellaOps.Concelier.Source.Jvn/Configuration/JvnOptions.cs +++ b/src/StellaOps.Concelier.Connector.Jvn/Configuration/JvnOptions.cs @@ -1,6 +1,6 @@ using System.Diagnostics.CodeAnalysis; -namespace StellaOps.Concelier.Source.Jvn.Configuration; +namespace StellaOps.Concelier.Connector.Jvn.Configuration; /// /// Options controlling the JVN connector fetch cadence and HTTP client configuration. diff --git a/src/StellaOps.Concelier.Source.Jvn/Internal/JvnAdvisoryMapper.cs b/src/StellaOps.Concelier.Connector.Jvn/Internal/JvnAdvisoryMapper.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Jvn/Internal/JvnAdvisoryMapper.cs rename to src/StellaOps.Concelier.Connector.Jvn/Internal/JvnAdvisoryMapper.cs index 4c08f4fc..535d42c6 100644 --- a/src/StellaOps.Concelier.Source.Jvn/Internal/JvnAdvisoryMapper.cs +++ b/src/StellaOps.Concelier.Connector.Jvn/Internal/JvnAdvisoryMapper.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Linq; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; +using StellaOps.Concelier.Connector.Common; using StellaOps.Concelier.Normalization.Cvss; using StellaOps.Concelier.Normalization.Identifiers; using StellaOps.Concelier.Normalization.Text; @@ -10,7 +10,7 @@ using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Concelier.Storage.Mongo.JpFlags; -namespace StellaOps.Concelier.Source.Jvn.Internal; +namespace StellaOps.Concelier.Connector.Jvn.Internal; internal static class JvnAdvisoryMapper { diff --git a/src/StellaOps.Concelier.Source.Jvn/Internal/JvnConstants.cs b/src/StellaOps.Concelier.Connector.Jvn/Internal/JvnConstants.cs similarity index 83% rename from src/StellaOps.Concelier.Source.Jvn/Internal/JvnConstants.cs rename to src/StellaOps.Concelier.Connector.Jvn/Internal/JvnConstants.cs index 117beb39..edc3849d 100644 --- a/src/StellaOps.Concelier.Source.Jvn/Internal/JvnConstants.cs +++ b/src/StellaOps.Concelier.Connector.Jvn/Internal/JvnConstants.cs @@ -1,4 +1,4 @@ -namespace StellaOps.Concelier.Source.Jvn.Internal; +namespace StellaOps.Concelier.Connector.Jvn.Internal; internal static class JvnConstants { diff --git a/src/StellaOps.Concelier.Source.Jvn/Internal/JvnCursor.cs b/src/StellaOps.Concelier.Connector.Jvn/Internal/JvnCursor.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Jvn/Internal/JvnCursor.cs rename to src/StellaOps.Concelier.Connector.Jvn/Internal/JvnCursor.cs index 499ef75c..585799b8 100644 --- a/src/StellaOps.Concelier.Source.Jvn/Internal/JvnCursor.cs +++ b/src/StellaOps.Concelier.Connector.Jvn/Internal/JvnCursor.cs @@ -1,7 +1,7 @@ using System.Linq; using MongoDB.Bson; -namespace StellaOps.Concelier.Source.Jvn.Internal; +namespace StellaOps.Concelier.Connector.Jvn.Internal; internal sealed record JvnCursor( DateTimeOffset? WindowStart, diff --git a/src/StellaOps.Concelier.Source.Jvn/Internal/JvnDetailDto.cs b/src/StellaOps.Concelier.Connector.Jvn/Internal/JvnDetailDto.cs similarity index 93% rename from src/StellaOps.Concelier.Source.Jvn/Internal/JvnDetailDto.cs rename to src/StellaOps.Concelier.Connector.Jvn/Internal/JvnDetailDto.cs index 745928c6..b8c2e05c 100644 --- a/src/StellaOps.Concelier.Source.Jvn/Internal/JvnDetailDto.cs +++ b/src/StellaOps.Concelier.Connector.Jvn/Internal/JvnDetailDto.cs @@ -1,6 +1,6 @@ using System.Collections.Immutable; -namespace StellaOps.Concelier.Source.Jvn.Internal; +namespace StellaOps.Concelier.Connector.Jvn.Internal; internal sealed record JvnDetailDto( string VulnerabilityId, diff --git a/src/StellaOps.Concelier.Source.Jvn/Internal/JvnDetailParser.cs b/src/StellaOps.Concelier.Connector.Jvn/Internal/JvnDetailParser.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Jvn/Internal/JvnDetailParser.cs rename to src/StellaOps.Concelier.Connector.Jvn/Internal/JvnDetailParser.cs index 58d7c416..4ad414e4 100644 --- a/src/StellaOps.Concelier.Source.Jvn/Internal/JvnDetailParser.cs +++ b/src/StellaOps.Concelier.Connector.Jvn/Internal/JvnDetailParser.cs @@ -8,7 +8,7 @@ using System.Xml; using System.Xml.Linq; using System.Xml.Schema; -namespace StellaOps.Concelier.Source.Jvn.Internal; +namespace StellaOps.Concelier.Connector.Jvn.Internal; internal static class JvnDetailParser { diff --git a/src/StellaOps.Concelier.Source.Jvn/Internal/JvnOverviewItem.cs b/src/StellaOps.Concelier.Connector.Jvn/Internal/JvnOverviewItem.cs similarity index 74% rename from src/StellaOps.Concelier.Source.Jvn/Internal/JvnOverviewItem.cs rename to src/StellaOps.Concelier.Connector.Jvn/Internal/JvnOverviewItem.cs index b47ef5c6..a80468cc 100644 --- a/src/StellaOps.Concelier.Source.Jvn/Internal/JvnOverviewItem.cs +++ b/src/StellaOps.Concelier.Connector.Jvn/Internal/JvnOverviewItem.cs @@ -1,4 +1,4 @@ -namespace StellaOps.Concelier.Source.Jvn.Internal; +namespace StellaOps.Concelier.Connector.Jvn.Internal; internal sealed record JvnOverviewItem( string VulnerabilityId, diff --git a/src/StellaOps.Concelier.Source.Jvn/Internal/JvnOverviewPage.cs b/src/StellaOps.Concelier.Connector.Jvn/Internal/JvnOverviewPage.cs similarity index 71% rename from src/StellaOps.Concelier.Source.Jvn/Internal/JvnOverviewPage.cs rename to src/StellaOps.Concelier.Connector.Jvn/Internal/JvnOverviewPage.cs index fac48e66..7a73846b 100644 --- a/src/StellaOps.Concelier.Source.Jvn/Internal/JvnOverviewPage.cs +++ b/src/StellaOps.Concelier.Connector.Jvn/Internal/JvnOverviewPage.cs @@ -1,4 +1,4 @@ -namespace StellaOps.Concelier.Source.Jvn.Internal; +namespace StellaOps.Concelier.Connector.Jvn.Internal; internal sealed record JvnOverviewPage( IReadOnlyList Items, diff --git a/src/StellaOps.Concelier.Source.Jvn/Internal/JvnSchemaProvider.cs b/src/StellaOps.Concelier.Connector.Jvn/Internal/JvnSchemaProvider.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Jvn/Internal/JvnSchemaProvider.cs rename to src/StellaOps.Concelier.Connector.Jvn/Internal/JvnSchemaProvider.cs index f77380e0..7d85f559 100644 --- a/src/StellaOps.Concelier.Source.Jvn/Internal/JvnSchemaProvider.cs +++ b/src/StellaOps.Concelier.Connector.Jvn/Internal/JvnSchemaProvider.cs @@ -7,7 +7,7 @@ using System.Threading; using System.Xml; using System.Xml.Schema; -namespace StellaOps.Concelier.Source.Jvn.Internal; +namespace StellaOps.Concelier.Connector.Jvn.Internal; internal static class JvnSchemaProvider { @@ -47,7 +47,7 @@ internal static class JvnSchemaProvider private static Dictionary CreateResourceMap() { - var baseNamespace = typeof(JvnSchemaProvider).Namespace ?? "StellaOps.Concelier.Source.Jvn.Internal"; + var baseNamespace = typeof(JvnSchemaProvider).Namespace ?? "StellaOps.Concelier.Connector.Jvn.Internal"; var prefix = baseNamespace.Replace(".Internal", string.Empty, StringComparison.Ordinal); return new Dictionary(StringComparer.OrdinalIgnoreCase) diff --git a/src/StellaOps.Concelier.Source.Jvn/Internal/JvnSchemaValidationException.cs b/src/StellaOps.Concelier.Connector.Jvn/Internal/JvnSchemaValidationException.cs similarity index 81% rename from src/StellaOps.Concelier.Source.Jvn/Internal/JvnSchemaValidationException.cs rename to src/StellaOps.Concelier.Connector.Jvn/Internal/JvnSchemaValidationException.cs index 480e270b..0bebf0bd 100644 --- a/src/StellaOps.Concelier.Source.Jvn/Internal/JvnSchemaValidationException.cs +++ b/src/StellaOps.Concelier.Connector.Jvn/Internal/JvnSchemaValidationException.cs @@ -1,6 +1,6 @@ using System; -namespace StellaOps.Concelier.Source.Jvn.Internal; +namespace StellaOps.Concelier.Connector.Jvn.Internal; internal sealed class JvnSchemaValidationException : Exception { diff --git a/src/StellaOps.Concelier.Source.Jvn/Internal/MyJvnClient.cs b/src/StellaOps.Concelier.Connector.Jvn/Internal/MyJvnClient.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Jvn/Internal/MyJvnClient.cs rename to src/StellaOps.Concelier.Connector.Jvn/Internal/MyJvnClient.cs index 4efd5016..09edf103 100644 --- a/src/StellaOps.Concelier.Source.Jvn/Internal/MyJvnClient.cs +++ b/src/StellaOps.Concelier.Connector.Jvn/Internal/MyJvnClient.cs @@ -9,9 +9,9 @@ using System.Xml; using System.Xml.Linq; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Jvn.Configuration; +using StellaOps.Concelier.Connector.Jvn.Configuration; -namespace StellaOps.Concelier.Source.Jvn.Internal; +namespace StellaOps.Concelier.Connector.Jvn.Internal; public sealed class MyJvnClient { diff --git a/src/StellaOps.Concelier.Source.Jvn/Jobs.cs b/src/StellaOps.Concelier.Connector.Jvn/Jobs.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Jvn/Jobs.cs rename to src/StellaOps.Concelier.Connector.Jvn/Jobs.cs index b0a59088..b1d6123f 100644 --- a/src/StellaOps.Concelier.Source.Jvn/Jobs.cs +++ b/src/StellaOps.Concelier.Connector.Jvn/Jobs.cs @@ -3,7 +3,7 @@ using System.Threading; using System.Threading.Tasks; using StellaOps.Concelier.Core.Jobs; -namespace StellaOps.Concelier.Source.Jvn; +namespace StellaOps.Concelier.Connector.Jvn; internal static class JvnJobKinds { diff --git a/src/StellaOps.Concelier.Source.Jvn/JvnConnector.cs b/src/StellaOps.Concelier.Connector.Jvn/JvnConnector.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Jvn/JvnConnector.cs rename to src/StellaOps.Concelier.Connector.Jvn/JvnConnector.cs index ec5d313f..14493215 100644 --- a/src/StellaOps.Concelier.Source.Jvn/JvnConnector.cs +++ b/src/StellaOps.Concelier.Connector.Jvn/JvnConnector.cs @@ -5,10 +5,10 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using MongoDB.Bson; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Jvn.Configuration; -using StellaOps.Concelier.Source.Jvn.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Jvn.Configuration; +using StellaOps.Concelier.Connector.Jvn.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; @@ -16,7 +16,7 @@ using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Concelier.Storage.Mongo.JpFlags; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Jvn; +namespace StellaOps.Concelier.Connector.Jvn; public sealed class JvnConnector : IFeedConnector { diff --git a/src/StellaOps.Concelier.Source.Jvn/JvnConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.Jvn/JvnConnectorPlugin.cs similarity index 88% rename from src/StellaOps.Concelier.Source.Jvn/JvnConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.Jvn/JvnConnectorPlugin.cs index 70050a66..8c253f02 100644 --- a/src/StellaOps.Concelier.Source.Jvn/JvnConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.Jvn/JvnConnectorPlugin.cs @@ -1,7 +1,7 @@ using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Jvn; +namespace StellaOps.Concelier.Connector.Jvn; public sealed class JvnConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.Jvn/JvnDependencyInjectionRoutine.cs b/src/StellaOps.Concelier.Connector.Jvn/JvnDependencyInjectionRoutine.cs similarity index 91% rename from src/StellaOps.Concelier.Source.Jvn/JvnDependencyInjectionRoutine.cs rename to src/StellaOps.Concelier.Connector.Jvn/JvnDependencyInjectionRoutine.cs index 26224047..d98393f8 100644 --- a/src/StellaOps.Concelier.Source.Jvn/JvnDependencyInjectionRoutine.cs +++ b/src/StellaOps.Concelier.Connector.Jvn/JvnDependencyInjectionRoutine.cs @@ -3,9 +3,9 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using StellaOps.DependencyInjection; using StellaOps.Concelier.Core.Jobs; -using StellaOps.Concelier.Source.Jvn.Configuration; +using StellaOps.Concelier.Connector.Jvn.Configuration; -namespace StellaOps.Concelier.Source.Jvn; +namespace StellaOps.Concelier.Connector.Jvn; public sealed class JvnDependencyInjectionRoutine : IDependencyInjectionRoutine { diff --git a/src/StellaOps.Concelier.Source.Jvn/JvnServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.Jvn/JvnServiceCollectionExtensions.cs similarity index 83% rename from src/StellaOps.Concelier.Source.Jvn/JvnServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.Jvn/JvnServiceCollectionExtensions.cs index 20e034ee..d7ddb5d9 100644 --- a/src/StellaOps.Concelier.Source.Jvn/JvnServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.Jvn/JvnServiceCollectionExtensions.cs @@ -1,11 +1,11 @@ using System; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Jvn.Configuration; -using StellaOps.Concelier.Source.Jvn.Internal; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Jvn.Configuration; +using StellaOps.Concelier.Connector.Jvn.Internal; -namespace StellaOps.Concelier.Source.Jvn; +namespace StellaOps.Concelier.Connector.Jvn; public static class JvnServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Source.Jvn/Schemas/data_marking.xsd b/src/StellaOps.Concelier.Connector.Jvn/Schemas/data_marking.xsd similarity index 100% rename from src/StellaOps.Concelier.Source.Jvn/Schemas/data_marking.xsd rename to src/StellaOps.Concelier.Connector.Jvn/Schemas/data_marking.xsd diff --git a/src/StellaOps.Concelier.Source.Jvn/Schemas/jvnrss_3.2.xsd b/src/StellaOps.Concelier.Connector.Jvn/Schemas/jvnrss_3.2.xsd similarity index 100% rename from src/StellaOps.Concelier.Source.Jvn/Schemas/jvnrss_3.2.xsd rename to src/StellaOps.Concelier.Connector.Jvn/Schemas/jvnrss_3.2.xsd diff --git a/src/StellaOps.Concelier.Source.Jvn/Schemas/mod_sec_3.0.xsd b/src/StellaOps.Concelier.Connector.Jvn/Schemas/mod_sec_3.0.xsd similarity index 100% rename from src/StellaOps.Concelier.Source.Jvn/Schemas/mod_sec_3.0.xsd rename to src/StellaOps.Concelier.Connector.Jvn/Schemas/mod_sec_3.0.xsd diff --git a/src/StellaOps.Concelier.Source.Jvn/Schemas/status_3.3.xsd b/src/StellaOps.Concelier.Connector.Jvn/Schemas/status_3.3.xsd similarity index 100% rename from src/StellaOps.Concelier.Source.Jvn/Schemas/status_3.3.xsd rename to src/StellaOps.Concelier.Connector.Jvn/Schemas/status_3.3.xsd diff --git a/src/StellaOps.Concelier.Source.Jvn/Schemas/tlp_marking.xsd b/src/StellaOps.Concelier.Connector.Jvn/Schemas/tlp_marking.xsd similarity index 100% rename from src/StellaOps.Concelier.Source.Jvn/Schemas/tlp_marking.xsd rename to src/StellaOps.Concelier.Connector.Jvn/Schemas/tlp_marking.xsd diff --git a/src/StellaOps.Concelier.Source.Jvn/Schemas/vuldef_3.2.xsd b/src/StellaOps.Concelier.Connector.Jvn/Schemas/vuldef_3.2.xsd similarity index 100% rename from src/StellaOps.Concelier.Source.Jvn/Schemas/vuldef_3.2.xsd rename to src/StellaOps.Concelier.Connector.Jvn/Schemas/vuldef_3.2.xsd diff --git a/src/StellaOps.Concelier.Source.Jvn/Schemas/xml.xsd b/src/StellaOps.Concelier.Connector.Jvn/Schemas/xml.xsd similarity index 100% rename from src/StellaOps.Concelier.Source.Jvn/Schemas/xml.xsd rename to src/StellaOps.Concelier.Connector.Jvn/Schemas/xml.xsd diff --git a/src/StellaOps.Concelier.Source.Jvn/StellaOps.Concelier.Source.Jvn.csproj b/src/StellaOps.Concelier.Connector.Jvn/StellaOps.Concelier.Connector.Jvn.csproj similarity index 83% rename from src/StellaOps.Concelier.Source.Jvn/StellaOps.Concelier.Source.Jvn.csproj rename to src/StellaOps.Concelier.Connector.Jvn/StellaOps.Concelier.Connector.Jvn.csproj index b7b573e7..6662142d 100644 --- a/src/StellaOps.Concelier.Source.Jvn/StellaOps.Concelier.Source.Jvn.csproj +++ b/src/StellaOps.Concelier.Connector.Jvn/StellaOps.Concelier.Connector.Jvn.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/StellaOps.Concelier.Source.Jvn/TASKS.md b/src/StellaOps.Concelier.Connector.Jvn/TASKS.md similarity index 100% rename from src/StellaOps.Concelier.Source.Jvn/TASKS.md rename to src/StellaOps.Concelier.Connector.Jvn/TASKS.md diff --git a/src/StellaOps.Concelier.Source.Kev.Tests/Kev/Fixtures/kev-advisories.snapshot.json b/src/StellaOps.Concelier.Connector.Kev.Tests/Kev/Fixtures/kev-advisories.snapshot.json similarity index 100% rename from src/StellaOps.Concelier.Source.Kev.Tests/Kev/Fixtures/kev-advisories.snapshot.json rename to src/StellaOps.Concelier.Connector.Kev.Tests/Kev/Fixtures/kev-advisories.snapshot.json diff --git a/src/StellaOps.Concelier.Source.Kev.Tests/Kev/Fixtures/kev-catalog.json b/src/StellaOps.Concelier.Connector.Kev.Tests/Kev/Fixtures/kev-catalog.json similarity index 100% rename from src/StellaOps.Concelier.Source.Kev.Tests/Kev/Fixtures/kev-catalog.json rename to src/StellaOps.Concelier.Connector.Kev.Tests/Kev/Fixtures/kev-catalog.json diff --git a/src/StellaOps.Concelier.Source.Kev.Tests/Kev/KevConnectorTests.cs b/src/StellaOps.Concelier.Connector.Kev.Tests/Kev/KevConnectorTests.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Kev.Tests/Kev/KevConnectorTests.cs rename to src/StellaOps.Concelier.Connector.Kev.Tests/Kev/KevConnectorTests.cs index 91ac564c..d0d79978 100644 --- a/src/StellaOps.Concelier.Source.Kev.Tests/Kev/KevConnectorTests.cs +++ b/src/StellaOps.Concelier.Connector.Kev.Tests/Kev/KevConnectorTests.cs @@ -9,18 +9,18 @@ using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Time.Testing; using MongoDB.Bson; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Common.Testing; -using StellaOps.Concelier.Source.Kev; -using StellaOps.Concelier.Source.Kev.Configuration; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Common.Testing; +using StellaOps.Concelier.Connector.Kev; +using StellaOps.Concelier.Connector.Kev.Configuration; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Testing; using Xunit; -namespace StellaOps.Concelier.Source.Kev.Tests; +namespace StellaOps.Concelier.Connector.Kev.Tests; [Collection("mongo-fixture")] public sealed class KevConnectorTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.Kev.Tests/Kev/KevMapperTests.cs b/src/StellaOps.Concelier.Connector.Kev.Tests/Kev/KevMapperTests.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Kev.Tests/Kev/KevMapperTests.cs rename to src/StellaOps.Concelier.Connector.Kev.Tests/Kev/KevMapperTests.cs index 50e8ea3f..7ffad742 100644 --- a/src/StellaOps.Concelier.Source.Kev.Tests/Kev/KevMapperTests.cs +++ b/src/StellaOps.Concelier.Connector.Kev.Tests/Kev/KevMapperTests.cs @@ -1,11 +1,11 @@ using System; using System.Linq; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Kev; -using StellaOps.Concelier.Source.Kev.Internal; +using StellaOps.Concelier.Connector.Kev; +using StellaOps.Concelier.Connector.Kev.Internal; using Xunit; -namespace StellaOps.Concelier.Source.Kev.Tests; +namespace StellaOps.Concelier.Connector.Kev.Tests; public sealed class KevMapperTests { diff --git a/src/StellaOps.Concelier.Source.Kev.Tests/StellaOps.Concelier.Source.Kev.Tests.csproj b/src/StellaOps.Concelier.Connector.Kev.Tests/StellaOps.Concelier.Connector.Kev.Tests.csproj similarity index 73% rename from src/StellaOps.Concelier.Source.Kev.Tests/StellaOps.Concelier.Source.Kev.Tests.csproj rename to src/StellaOps.Concelier.Connector.Kev.Tests/StellaOps.Concelier.Connector.Kev.Tests.csproj index 801b3ca4..c2415af4 100644 --- a/src/StellaOps.Concelier.Source.Kev.Tests/StellaOps.Concelier.Source.Kev.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.Kev.Tests/StellaOps.Concelier.Connector.Kev.Tests.csproj @@ -7,10 +7,10 @@ - + - + diff --git a/src/StellaOps.Concelier.Source.Kev/AGENTS.md b/src/StellaOps.Concelier.Connector.Kev/AGENTS.md similarity index 95% rename from src/StellaOps.Concelier.Source.Kev/AGENTS.md rename to src/StellaOps.Concelier.Connector.Kev/AGENTS.md index eafda2b1..d46387d3 100644 --- a/src/StellaOps.Concelier.Source.Kev/AGENTS.md +++ b/src/StellaOps.Concelier.Connector.Kev/AGENTS.md @@ -39,6 +39,6 @@ Out of scope: - CISA publishes KEV updates daily (catalogVersion follows `yyyy.MM.dd`). Expect releases near 16:30–17:00 UTC and retain overlap when scheduling fetches. ## Tests -- Add `StellaOps.Concelier.Source.Kev.Tests` covering fetch/parse/map with KEV JSON fixtures. +- Add `StellaOps.Concelier.Connector.Kev.Tests` covering fetch/parse/map with KEV JSON fixtures. - Snapshot canonical output; allow fixture regeneration via env flag. - Ensure deterministic ordering/time normalisation. diff --git a/src/StellaOps.Concelier.Source.Kev/Configuration/KevOptions.cs b/src/StellaOps.Concelier.Connector.Kev/Configuration/KevOptions.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Kev/Configuration/KevOptions.cs rename to src/StellaOps.Concelier.Connector.Kev/Configuration/KevOptions.cs index f461d3e9..dcbc2fe9 100644 --- a/src/StellaOps.Concelier.Source.Kev/Configuration/KevOptions.cs +++ b/src/StellaOps.Concelier.Connector.Kev/Configuration/KevOptions.cs @@ -1,7 +1,7 @@ using System; using System.Diagnostics.CodeAnalysis; -namespace StellaOps.Concelier.Source.Kev.Configuration; +namespace StellaOps.Concelier.Connector.Kev.Configuration; public sealed class KevOptions { diff --git a/src/StellaOps.Concelier.Source.Kev/Internal/KevCatalogDto.cs b/src/StellaOps.Concelier.Connector.Kev/Internal/KevCatalogDto.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Kev/Internal/KevCatalogDto.cs rename to src/StellaOps.Concelier.Connector.Kev/Internal/KevCatalogDto.cs index 1c5bfa76..52248550 100644 --- a/src/StellaOps.Concelier.Source.Kev/Internal/KevCatalogDto.cs +++ b/src/StellaOps.Concelier.Connector.Kev/Internal/KevCatalogDto.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json.Serialization; -namespace StellaOps.Concelier.Source.Kev.Internal; +namespace StellaOps.Concelier.Connector.Kev.Internal; internal sealed record KevCatalogDto { diff --git a/src/StellaOps.Concelier.Source.Kev/Internal/KevCursor.cs b/src/StellaOps.Concelier.Connector.Kev/Internal/KevCursor.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Kev/Internal/KevCursor.cs rename to src/StellaOps.Concelier.Connector.Kev/Internal/KevCursor.cs index cef1c445..213d529a 100644 --- a/src/StellaOps.Concelier.Source.Kev/Internal/KevCursor.cs +++ b/src/StellaOps.Concelier.Connector.Kev/Internal/KevCursor.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using MongoDB.Bson; -namespace StellaOps.Concelier.Source.Kev.Internal; +namespace StellaOps.Concelier.Connector.Kev.Internal; internal sealed record KevCursor( string? CatalogVersion, diff --git a/src/StellaOps.Concelier.Source.Kev/Internal/KevDiagnostics.cs b/src/StellaOps.Concelier.Connector.Kev/Internal/KevDiagnostics.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Kev/Internal/KevDiagnostics.cs rename to src/StellaOps.Concelier.Connector.Kev/Internal/KevDiagnostics.cs index 508f43a8..f044fcc5 100644 --- a/src/StellaOps.Concelier.Source.Kev/Internal/KevDiagnostics.cs +++ b/src/StellaOps.Concelier.Connector.Kev/Internal/KevDiagnostics.cs @@ -1,11 +1,11 @@ using System.Collections.Generic; using System.Diagnostics.Metrics; -namespace StellaOps.Concelier.Source.Kev.Internal; +namespace StellaOps.Concelier.Connector.Kev.Internal; public sealed class KevDiagnostics : IDisposable { - public const string MeterName = "StellaOps.Concelier.Source.Kev"; + public const string MeterName = "StellaOps.Concelier.Connector.Kev"; private const string MeterVersion = "1.0.0"; private readonly Meter _meter; diff --git a/src/StellaOps.Concelier.Source.Kev/Internal/KevMapper.cs b/src/StellaOps.Concelier.Connector.Kev/Internal/KevMapper.cs similarity index 99% rename from src/StellaOps.Concelier.Source.Kev/Internal/KevMapper.cs rename to src/StellaOps.Concelier.Connector.Kev/Internal/KevMapper.cs index e7d5a07b..345d59c1 100644 --- a/src/StellaOps.Concelier.Source.Kev/Internal/KevMapper.cs +++ b/src/StellaOps.Concelier.Connector.Kev/Internal/KevMapper.cs @@ -5,7 +5,7 @@ using System.Linq; using System.Text; using StellaOps.Concelier.Models; -namespace StellaOps.Concelier.Source.Kev.Internal; +namespace StellaOps.Concelier.Connector.Kev.Internal; internal static class KevMapper { diff --git a/src/StellaOps.Concelier.Source.Kev/Internal/KevSchemaProvider.cs b/src/StellaOps.Concelier.Connector.Kev/Internal/KevSchemaProvider.cs similarity index 82% rename from src/StellaOps.Concelier.Source.Kev/Internal/KevSchemaProvider.cs rename to src/StellaOps.Concelier.Connector.Kev/Internal/KevSchemaProvider.cs index 7635c623..72c39b32 100644 --- a/src/StellaOps.Concelier.Source.Kev/Internal/KevSchemaProvider.cs +++ b/src/StellaOps.Concelier.Connector.Kev/Internal/KevSchemaProvider.cs @@ -3,11 +3,11 @@ using System.Reflection; using System.Threading; using Json.Schema; -namespace StellaOps.Concelier.Source.Kev.Internal; +namespace StellaOps.Concelier.Connector.Kev.Internal; internal static class KevSchemaProvider { - private const string ResourceName = "StellaOps.Concelier.Source.Kev.Schemas.kev-catalog.schema.json"; + private const string ResourceName = "StellaOps.Concelier.Connector.Kev.Schemas.kev-catalog.schema.json"; private static readonly Lazy CachedSchema = new(LoadSchema, LazyThreadSafetyMode.ExecutionAndPublication); diff --git a/src/StellaOps.Concelier.Source.Kev/Jobs.cs b/src/StellaOps.Concelier.Connector.Kev/Jobs.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Kev/Jobs.cs rename to src/StellaOps.Concelier.Connector.Kev/Jobs.cs index 0b2ae6b0..1f635be1 100644 --- a/src/StellaOps.Concelier.Source.Kev/Jobs.cs +++ b/src/StellaOps.Concelier.Connector.Kev/Jobs.cs @@ -3,7 +3,7 @@ using System.Threading; using System.Threading.Tasks; using StellaOps.Concelier.Core.Jobs; -namespace StellaOps.Concelier.Source.Kev; +namespace StellaOps.Concelier.Connector.Kev; internal static class KevJobKinds { diff --git a/src/StellaOps.Concelier.Source.Kev/KevConnector.cs b/src/StellaOps.Concelier.Connector.Kev/KevConnector.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Kev/KevConnector.cs rename to src/StellaOps.Concelier.Connector.Kev/KevConnector.cs index c7aaadfa..7e6fede6 100644 --- a/src/StellaOps.Concelier.Source.Kev/KevConnector.cs +++ b/src/StellaOps.Concelier.Connector.Kev/KevConnector.cs @@ -9,18 +9,18 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using MongoDB.Bson; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Common.Json; -using StellaOps.Concelier.Source.Kev.Configuration; -using StellaOps.Concelier.Source.Kev.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Common.Json; +using StellaOps.Concelier.Connector.Kev.Configuration; +using StellaOps.Concelier.Connector.Kev.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Kev; +namespace StellaOps.Concelier.Connector.Kev; public sealed class KevConnector : IFeedConnector { diff --git a/src/StellaOps.Concelier.Source.Kev/KevConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.Kev/KevConnectorPlugin.cs similarity index 91% rename from src/StellaOps.Concelier.Source.Kev/KevConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.Kev/KevConnectorPlugin.cs index 16f20679..fe83429c 100644 --- a/src/StellaOps.Concelier.Source.Kev/KevConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.Kev/KevConnectorPlugin.cs @@ -1,7 +1,7 @@ using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Kev; +namespace StellaOps.Concelier.Connector.Kev; public sealed class KevConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.Kev/KevDependencyInjectionRoutine.cs b/src/StellaOps.Concelier.Connector.Kev/KevDependencyInjectionRoutine.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Kev/KevDependencyInjectionRoutine.cs rename to src/StellaOps.Concelier.Connector.Kev/KevDependencyInjectionRoutine.cs index 1f0fb063..4ecb04cb 100644 --- a/src/StellaOps.Concelier.Source.Kev/KevDependencyInjectionRoutine.cs +++ b/src/StellaOps.Concelier.Connector.Kev/KevDependencyInjectionRoutine.cs @@ -3,9 +3,9 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using StellaOps.DependencyInjection; using StellaOps.Concelier.Core.Jobs; -using StellaOps.Concelier.Source.Kev.Configuration; +using StellaOps.Concelier.Connector.Kev.Configuration; -namespace StellaOps.Concelier.Source.Kev; +namespace StellaOps.Concelier.Connector.Kev; public sealed class KevDependencyInjectionRoutine : IDependencyInjectionRoutine { diff --git a/src/StellaOps.Concelier.Source.Kev/KevServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.Kev/KevServiceCollectionExtensions.cs similarity index 86% rename from src/StellaOps.Concelier.Source.Kev/KevServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.Kev/KevServiceCollectionExtensions.cs index 35e900d9..d660da69 100644 --- a/src/StellaOps.Concelier.Source.Kev/KevServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.Kev/KevServiceCollectionExtensions.cs @@ -2,11 +2,11 @@ using System; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Kev.Configuration; -using StellaOps.Concelier.Source.Kev.Internal; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Kev.Configuration; +using StellaOps.Concelier.Connector.Kev.Internal; -namespace StellaOps.Concelier.Source.Kev; +namespace StellaOps.Concelier.Connector.Kev; public static class KevServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Source.Kev/Schemas/kev-catalog.schema.json b/src/StellaOps.Concelier.Connector.Kev/Schemas/kev-catalog.schema.json similarity index 100% rename from src/StellaOps.Concelier.Source.Kev/Schemas/kev-catalog.schema.json rename to src/StellaOps.Concelier.Connector.Kev/Schemas/kev-catalog.schema.json diff --git a/src/StellaOps.Concelier.Source.Kev/StellaOps.Concelier.Source.Kev.csproj b/src/StellaOps.Concelier.Connector.Kev/StellaOps.Concelier.Connector.Kev.csproj similarity index 79% rename from src/StellaOps.Concelier.Source.Kev/StellaOps.Concelier.Source.Kev.csproj rename to src/StellaOps.Concelier.Connector.Kev/StellaOps.Concelier.Connector.Kev.csproj index 2eca0f05..c5f1ae2c 100644 --- a/src/StellaOps.Concelier.Source.Kev/StellaOps.Concelier.Source.Kev.csproj +++ b/src/StellaOps.Concelier.Connector.Kev/StellaOps.Concelier.Connector.Kev.csproj @@ -9,14 +9,14 @@ - + - <_Parameter1>StellaOps.Concelier.Source.Kev.Tests + <_Parameter1>StellaOps.Concelier.Connector.Kev.Tests diff --git a/src/StellaOps.Concelier.Source.Kev/TASKS.md b/src/StellaOps.Concelier.Connector.Kev/TASKS.md similarity index 95% rename from src/StellaOps.Concelier.Source.Kev/TASKS.md rename to src/StellaOps.Concelier.Connector.Kev/TASKS.md index 4901f74c..2efbb2b4 100644 --- a/src/StellaOps.Concelier.Source.Kev/TASKS.md +++ b/src/StellaOps.Concelier.Connector.Kev/TASKS.md @@ -7,6 +7,6 @@ |Canonical mapping & range primitives|BE-Conn-KEV|Models|**DONE** – Mapper produces vendor RangePrimitives (due dates, CWE list, ransomware flag, catalog metadata) and deduplicated references.| |Deterministic fixtures/tests|QA|Testing|**DONE** – End-to-end fetch→parse→map test with canned catalog + snapshot (`UPDATE_KEV_FIXTURES=1`) guards determinism.| |Telemetry & docs|DevEx|Docs|**DONE** – Connector emits structured logs + meters for catalog entries/advisories and AGENTS docs cover cadence/allowlist guidance.| -|Schema validation & anomaly surfacing|BE-Conn-KEV, QA|Source.Common|**DONE (2025-10-12)** – Wired `IJsonSchemaValidator` + embedded schema, added failure reasons (`schema`, `download`, `invalidJson`, etc.), anomaly counters (`missingCveId`, `countMismatch`, `nullEntry`), and kept `dotnet test src/StellaOps.Concelier.Source.Kev.Tests` passing.| +|Schema validation & anomaly surfacing|BE-Conn-KEV, QA|Source.Common|**DONE (2025-10-12)** – Wired `IJsonSchemaValidator` + embedded schema, added failure reasons (`schema`, `download`, `invalidJson`, etc.), anomaly counters (`missingCveId`, `countMismatch`, `nullEntry`), and kept `dotnet test src/StellaOps.Concelier.Connector.Kev.Tests` passing.| |Metrics export wiring|DevOps, DevEx|Observability|**DONE (2025-10-12)** – Added `kev.fetch.*` counters, parse failure/anomaly tags, refreshed ops runbook + Grafana dashboard (`docs/ops/concelier-cve-kev-grafana-dashboard.json`) with PromQL guidance.| -|FEEDCONN-KEV-02-003 Normalized versions propagation|BE-Conn-KEV|Models `FEEDMODELS-SCHEMA-01-003`, Normalization playbook|**DONE (2025-10-12)** – Validated catalog/date/due normalized rules emission + ordering; fixtures assert rule set and `dotnet test src/StellaOps.Concelier.Source.Kev.Tests` remains green.| +|FEEDCONN-KEV-02-003 Normalized versions propagation|BE-Conn-KEV|Models `FEEDMODELS-SCHEMA-01-003`, Normalization playbook|**DONE (2025-10-12)** – Validated catalog/date/due normalized rules emission + ordering; fixtures assert rule set and `dotnet test src/StellaOps.Concelier.Connector.Kev.Tests` remains green.| diff --git a/src/StellaOps.Concelier.Source.Kisa.Tests/Fixtures/kisa-detail.json b/src/StellaOps.Concelier.Connector.Kisa.Tests/Fixtures/kisa-detail.json similarity index 100% rename from src/StellaOps.Concelier.Source.Kisa.Tests/Fixtures/kisa-detail.json rename to src/StellaOps.Concelier.Connector.Kisa.Tests/Fixtures/kisa-detail.json diff --git a/src/StellaOps.Concelier.Source.Kisa.Tests/Fixtures/kisa-feed.xml b/src/StellaOps.Concelier.Connector.Kisa.Tests/Fixtures/kisa-feed.xml similarity index 100% rename from src/StellaOps.Concelier.Source.Kisa.Tests/Fixtures/kisa-feed.xml rename to src/StellaOps.Concelier.Connector.Kisa.Tests/Fixtures/kisa-feed.xml diff --git a/src/StellaOps.Concelier.Source.Kisa.Tests/KisaConnectorTests.cs b/src/StellaOps.Concelier.Connector.Kisa.Tests/KisaConnectorTests.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Kisa.Tests/KisaConnectorTests.cs rename to src/StellaOps.Concelier.Connector.Kisa.Tests/KisaConnectorTests.cs index 741955d1..78ab2eb2 100644 --- a/src/StellaOps.Concelier.Source.Kisa.Tests/KisaConnectorTests.cs +++ b/src/StellaOps.Concelier.Connector.Kisa.Tests/KisaConnectorTests.cs @@ -13,11 +13,11 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Options; using MongoDB.Bson; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Common.Testing; -using StellaOps.Concelier.Source.Kisa.Configuration; -using StellaOps.Concelier.Source.Kisa.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Common.Testing; +using StellaOps.Concelier.Connector.Kisa.Configuration; +using StellaOps.Concelier.Connector.Kisa.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; @@ -26,7 +26,7 @@ using StellaOps.Concelier.Testing; using Xunit; using System.Linq; -namespace StellaOps.Concelier.Source.Kisa.Tests; +namespace StellaOps.Concelier.Connector.Kisa.Tests; [Collection("mongo-fixture")] public sealed class KisaConnectorTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.Kisa.Tests/StellaOps.Concelier.Source.Kisa.Tests.csproj b/src/StellaOps.Concelier.Connector.Kisa.Tests/StellaOps.Concelier.Connector.Kisa.Tests.csproj similarity index 65% rename from src/StellaOps.Concelier.Source.Kisa.Tests/StellaOps.Concelier.Source.Kisa.Tests.csproj rename to src/StellaOps.Concelier.Connector.Kisa.Tests/StellaOps.Concelier.Connector.Kisa.Tests.csproj index c72f2e04..7ac9ac81 100644 --- a/src/StellaOps.Concelier.Source.Kisa.Tests/StellaOps.Concelier.Source.Kisa.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.Kisa.Tests/StellaOps.Concelier.Connector.Kisa.Tests.csproj @@ -5,9 +5,9 @@ enable - - - + + + diff --git a/src/StellaOps.Concelier.Source.Kisa/AGENTS.md b/src/StellaOps.Concelier.Connector.Kisa/AGENTS.md similarity index 94% rename from src/StellaOps.Concelier.Source.Kisa/AGENTS.md rename to src/StellaOps.Concelier.Connector.Kisa/AGENTS.md index 3f67f9f3..a79f08bd 100644 --- a/src/StellaOps.Concelier.Source.Kisa/AGENTS.md +++ b/src/StellaOps.Concelier.Connector.Kisa/AGENTS.md @@ -33,6 +33,6 @@ Out of scope: - Handle character encoding (UTF-8/Korean) correctly. ## Tests -- Add `StellaOps.Concelier.Source.Kisa.Tests` covering fetch/parse/map with Korean-language fixtures. +- Add `StellaOps.Concelier.Connector.Kisa.Tests` covering fetch/parse/map with Korean-language fixtures. - Snapshot canonical advisories; support fixture regeneration via env flag. - Ensure deterministic ordering/time normalisation. diff --git a/src/StellaOps.Concelier.Source.Kisa/Configuration/KisaOptions.cs b/src/StellaOps.Concelier.Connector.Kisa/Configuration/KisaOptions.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Kisa/Configuration/KisaOptions.cs rename to src/StellaOps.Concelier.Connector.Kisa/Configuration/KisaOptions.cs index 66765437..d2fe13a1 100644 --- a/src/StellaOps.Concelier.Source.Kisa/Configuration/KisaOptions.cs +++ b/src/StellaOps.Concelier.Connector.Kisa/Configuration/KisaOptions.cs @@ -1,6 +1,6 @@ using System; -namespace StellaOps.Concelier.Source.Kisa.Configuration; +namespace StellaOps.Concelier.Connector.Kisa.Configuration; public sealed class KisaOptions { diff --git a/src/StellaOps.Concelier.Source.Kisa/Internal/KisaCursor.cs b/src/StellaOps.Concelier.Connector.Kisa/Internal/KisaCursor.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Kisa/Internal/KisaCursor.cs rename to src/StellaOps.Concelier.Connector.Kisa/Internal/KisaCursor.cs index ecaabd51..952bad3b 100644 --- a/src/StellaOps.Concelier.Source.Kisa/Internal/KisaCursor.cs +++ b/src/StellaOps.Concelier.Connector.Kisa/Internal/KisaCursor.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using MongoDB.Bson; -namespace StellaOps.Concelier.Source.Kisa.Internal; +namespace StellaOps.Concelier.Connector.Kisa.Internal; internal sealed record KisaCursor( IReadOnlyCollection PendingDocuments, diff --git a/src/StellaOps.Concelier.Source.Kisa/Internal/KisaDetailParser.cs b/src/StellaOps.Concelier.Connector.Kisa/Internal/KisaDetailParser.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Kisa/Internal/KisaDetailParser.cs rename to src/StellaOps.Concelier.Connector.Kisa/Internal/KisaDetailParser.cs index 79264b3b..0d28a571 100644 --- a/src/StellaOps.Concelier.Source.Kisa/Internal/KisaDetailParser.cs +++ b/src/StellaOps.Concelier.Connector.Kisa/Internal/KisaDetailParser.cs @@ -4,9 +4,9 @@ using System.Linq; using System.Text; using System.Text.Json; using System.Text.Json.Serialization; -using StellaOps.Concelier.Source.Common.Html; +using StellaOps.Concelier.Connector.Common.Html; -namespace StellaOps.Concelier.Source.Kisa.Internal; +namespace StellaOps.Concelier.Connector.Kisa.Internal; public sealed class KisaDetailParser { diff --git a/src/StellaOps.Concelier.Source.Kisa/Internal/KisaDetailResponse.cs b/src/StellaOps.Concelier.Connector.Kisa/Internal/KisaDetailResponse.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Kisa/Internal/KisaDetailResponse.cs rename to src/StellaOps.Concelier.Connector.Kisa/Internal/KisaDetailResponse.cs index d7890c65..75c59d82 100644 --- a/src/StellaOps.Concelier.Source.Kisa/Internal/KisaDetailResponse.cs +++ b/src/StellaOps.Concelier.Connector.Kisa/Internal/KisaDetailResponse.cs @@ -1,7 +1,7 @@ using System; using System.Text.Json.Serialization; -namespace StellaOps.Concelier.Source.Kisa.Internal; +namespace StellaOps.Concelier.Connector.Kisa.Internal; internal sealed class KisaDetailResponse { diff --git a/src/StellaOps.Concelier.Source.Kisa/Internal/KisaDiagnostics.cs b/src/StellaOps.Concelier.Connector.Kisa/Internal/KisaDiagnostics.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Kisa/Internal/KisaDiagnostics.cs rename to src/StellaOps.Concelier.Connector.Kisa/Internal/KisaDiagnostics.cs index 69e9f254..abaf00c0 100644 --- a/src/StellaOps.Concelier.Source.Kisa/Internal/KisaDiagnostics.cs +++ b/src/StellaOps.Concelier.Connector.Kisa/Internal/KisaDiagnostics.cs @@ -1,10 +1,10 @@ using System.Diagnostics.Metrics; -namespace StellaOps.Concelier.Source.Kisa.Internal; +namespace StellaOps.Concelier.Connector.Kisa.Internal; public sealed class KisaDiagnostics : IDisposable { - public const string MeterName = "StellaOps.Concelier.Source.Kisa"; + public const string MeterName = "StellaOps.Concelier.Connector.Kisa"; private const string MeterVersion = "1.0.0"; private readonly Meter _meter; diff --git a/src/StellaOps.Concelier.Source.Kisa/Internal/KisaDocumentMetadata.cs b/src/StellaOps.Concelier.Connector.Kisa/Internal/KisaDocumentMetadata.cs similarity index 93% rename from src/StellaOps.Concelier.Source.Kisa/Internal/KisaDocumentMetadata.cs rename to src/StellaOps.Concelier.Connector.Kisa/Internal/KisaDocumentMetadata.cs index c6ccfe75..b8f4776c 100644 --- a/src/StellaOps.Concelier.Source.Kisa/Internal/KisaDocumentMetadata.cs +++ b/src/StellaOps.Concelier.Connector.Kisa/Internal/KisaDocumentMetadata.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -namespace StellaOps.Concelier.Source.Kisa.Internal; +namespace StellaOps.Concelier.Connector.Kisa.Internal; internal static class KisaDocumentMetadata { diff --git a/src/StellaOps.Concelier.Source.Kisa/Internal/KisaFeedClient.cs b/src/StellaOps.Concelier.Connector.Kisa/Internal/KisaFeedClient.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Kisa/Internal/KisaFeedClient.cs rename to src/StellaOps.Concelier.Connector.Kisa/Internal/KisaFeedClient.cs index cfb14611..f28d1401 100644 --- a/src/StellaOps.Concelier.Source.Kisa/Internal/KisaFeedClient.cs +++ b/src/StellaOps.Concelier.Connector.Kisa/Internal/KisaFeedClient.cs @@ -8,9 +8,9 @@ using System.Threading.Tasks; using System.Xml.Linq; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Kisa.Configuration; +using StellaOps.Concelier.Connector.Kisa.Configuration; -namespace StellaOps.Concelier.Source.Kisa.Internal; +namespace StellaOps.Concelier.Connector.Kisa.Internal; public sealed class KisaFeedClient { diff --git a/src/StellaOps.Concelier.Source.Kisa/Internal/KisaFeedItem.cs b/src/StellaOps.Concelier.Connector.Kisa/Internal/KisaFeedItem.cs similarity index 77% rename from src/StellaOps.Concelier.Source.Kisa/Internal/KisaFeedItem.cs rename to src/StellaOps.Concelier.Connector.Kisa/Internal/KisaFeedItem.cs index 3fc433b5..afe8b00b 100644 --- a/src/StellaOps.Concelier.Source.Kisa/Internal/KisaFeedItem.cs +++ b/src/StellaOps.Concelier.Connector.Kisa/Internal/KisaFeedItem.cs @@ -1,6 +1,6 @@ using System; -namespace StellaOps.Concelier.Source.Kisa.Internal; +namespace StellaOps.Concelier.Connector.Kisa.Internal; public sealed record KisaFeedItem( string AdvisoryId, diff --git a/src/StellaOps.Concelier.Source.Kisa/Internal/KisaMapper.cs b/src/StellaOps.Concelier.Connector.Kisa/Internal/KisaMapper.cs similarity index 99% rename from src/StellaOps.Concelier.Source.Kisa/Internal/KisaMapper.cs rename to src/StellaOps.Concelier.Connector.Kisa/Internal/KisaMapper.cs index b50bf7f6..55ef3398 100644 --- a/src/StellaOps.Concelier.Source.Kisa/Internal/KisaMapper.cs +++ b/src/StellaOps.Concelier.Connector.Kisa/Internal/KisaMapper.cs @@ -4,7 +4,7 @@ using System.Linq; using StellaOps.Concelier.Models; using StellaOps.Concelier.Storage.Mongo.Documents; -namespace StellaOps.Concelier.Source.Kisa.Internal; +namespace StellaOps.Concelier.Connector.Kisa.Internal; internal static class KisaMapper { diff --git a/src/StellaOps.Concelier.Source.Kisa/Jobs.cs b/src/StellaOps.Concelier.Connector.Kisa/Jobs.cs similarity index 92% rename from src/StellaOps.Concelier.Source.Kisa/Jobs.cs rename to src/StellaOps.Concelier.Connector.Kisa/Jobs.cs index e43326ff..d1eba891 100644 --- a/src/StellaOps.Concelier.Source.Kisa/Jobs.cs +++ b/src/StellaOps.Concelier.Connector.Kisa/Jobs.cs @@ -3,7 +3,7 @@ using System.Threading; using System.Threading.Tasks; using StellaOps.Concelier.Core.Jobs; -namespace StellaOps.Concelier.Source.Kisa; +namespace StellaOps.Concelier.Connector.Kisa; internal static class KisaJobKinds { diff --git a/src/StellaOps.Concelier.Source.Kisa/KisaConnector.cs b/src/StellaOps.Concelier.Connector.Kisa/KisaConnector.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Kisa/KisaConnector.cs rename to src/StellaOps.Concelier.Connector.Kisa/KisaConnector.cs index 16eda06d..0d4de9b9 100644 --- a/src/StellaOps.Concelier.Source.Kisa/KisaConnector.cs +++ b/src/StellaOps.Concelier.Connector.Kisa/KisaConnector.cs @@ -7,17 +7,17 @@ using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using MongoDB.Bson; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Kisa.Configuration; -using StellaOps.Concelier.Source.Kisa.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Kisa.Configuration; +using StellaOps.Concelier.Connector.Kisa.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Kisa; +namespace StellaOps.Concelier.Connector.Kisa; public sealed class KisaConnector : IFeedConnector { diff --git a/src/StellaOps.Concelier.Source.Kisa/KisaConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.Kisa/KisaConnectorPlugin.cs similarity index 92% rename from src/StellaOps.Concelier.Source.Kisa/KisaConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.Kisa/KisaConnectorPlugin.cs index 75de1e58..83a5cb1d 100644 --- a/src/StellaOps.Concelier.Source.Kisa/KisaConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.Kisa/KisaConnectorPlugin.cs @@ -2,7 +2,7 @@ using System; using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Kisa; +namespace StellaOps.Concelier.Connector.Kisa; public sealed class KisaConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.Kisa/KisaDependencyInjectionRoutine.cs b/src/StellaOps.Concelier.Connector.Kisa/KisaDependencyInjectionRoutine.cs similarity index 93% rename from src/StellaOps.Concelier.Source.Kisa/KisaDependencyInjectionRoutine.cs rename to src/StellaOps.Concelier.Connector.Kisa/KisaDependencyInjectionRoutine.cs index ba947539..da71115f 100644 --- a/src/StellaOps.Concelier.Source.Kisa/KisaDependencyInjectionRoutine.cs +++ b/src/StellaOps.Concelier.Connector.Kisa/KisaDependencyInjectionRoutine.cs @@ -3,9 +3,9 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using StellaOps.DependencyInjection; using StellaOps.Concelier.Core.Jobs; -using StellaOps.Concelier.Source.Kisa.Configuration; +using StellaOps.Concelier.Connector.Kisa.Configuration; -namespace StellaOps.Concelier.Source.Kisa; +namespace StellaOps.Concelier.Connector.Kisa; public sealed class KisaDependencyInjectionRoutine : IDependencyInjectionRoutine { diff --git a/src/StellaOps.Concelier.Source.Kisa/KisaServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.Kisa/KisaServiceCollectionExtensions.cs similarity index 87% rename from src/StellaOps.Concelier.Source.Kisa/KisaServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.Kisa/KisaServiceCollectionExtensions.cs index 317c213a..c82e4f7f 100644 --- a/src/StellaOps.Concelier.Source.Kisa/KisaServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.Kisa/KisaServiceCollectionExtensions.cs @@ -3,12 +3,12 @@ using System.Net; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Common.Html; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Kisa.Configuration; -using StellaOps.Concelier.Source.Kisa.Internal; +using StellaOps.Concelier.Connector.Common.Html; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Kisa.Configuration; +using StellaOps.Concelier.Connector.Kisa.Internal; -namespace StellaOps.Concelier.Source.Kisa; +namespace StellaOps.Concelier.Connector.Kisa; public static class KisaServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Source.Vndr.Oracle/StellaOps.Concelier.Source.Vndr.Oracle.csproj b/src/StellaOps.Concelier.Connector.Kisa/StellaOps.Concelier.Connector.Kisa.csproj similarity index 80% rename from src/StellaOps.Concelier.Source.Vndr.Oracle/StellaOps.Concelier.Source.Vndr.Oracle.csproj rename to src/StellaOps.Concelier.Connector.Kisa/StellaOps.Concelier.Connector.Kisa.csproj index aabd0211..48e91447 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Oracle/StellaOps.Concelier.Source.Vndr.Oracle.csproj +++ b/src/StellaOps.Concelier.Connector.Kisa/StellaOps.Concelier.Connector.Kisa.csproj @@ -9,9 +9,9 @@ - - - - - + + + + + diff --git a/src/StellaOps.Concelier.Source.Kisa/TASKS.md b/src/StellaOps.Concelier.Connector.Kisa/TASKS.md similarity index 91% rename from src/StellaOps.Concelier.Source.Kisa/TASKS.md rename to src/StellaOps.Concelier.Connector.Kisa/TASKS.md index d3f8f809..8b3c3e35 100644 --- a/src/StellaOps.Concelier.Source.Kisa/TASKS.md +++ b/src/StellaOps.Concelier.Connector.Kisa/TASKS.md @@ -5,6 +5,6 @@ |FEEDCONN-KISA-02-002 Fetch pipeline & source state|BE-Conn-KISA|Source.Common, Storage.Mongo|**DONE (2025-10-14)** – `KisaConnector.FetchAsync` pulls RSS, sets `Accept-Language: ko-KR`, persists detail JSON with IDX metadata, throttles requests, and tracks cursor state (pending docs/mappings, known IDs, published timestamp).| |FEEDCONN-KISA-02-003 Parser & DTO implementation|BE-Conn-KISA|Source.Common|**DONE (2025-10-14)** – Detail API parsed via `KisaDetailParser` (Hangul NFC normalisation, sanitised HTML, CVE extraction, references/products captured into DTO `kisa.detail.v1`).| |FEEDCONN-KISA-02-004 Canonical mapping & range primitives|BE-Conn-KISA|Models|**DONE (2025-10-14)** – `KisaMapper` emits vendor packages with range strings, aliases (IDX/CVEs), references, and provenance; advisories default to `ko` language and normalised severity.| -|FEEDCONN-KISA-02-005 Deterministic fixtures & tests|QA|Testing|**DONE (2025-10-14)** – Added `StellaOps.Concelier.Source.Kisa.Tests` with Korean fixtures and fetch→parse→map regression; fixtures regenerate via `UPDATE_KISA_FIXTURES=1`.| +|FEEDCONN-KISA-02-005 Deterministic fixtures & tests|QA|Testing|**DONE (2025-10-14)** – Added `StellaOps.Concelier.Connector.Kisa.Tests` with Korean fixtures and fetch→parse→map regression; fixtures regenerate via `UPDATE_KISA_FIXTURES=1`.| |FEEDCONN-KISA-02-006 Telemetry & documentation|DevEx|Docs|**DONE (2025-10-14)** – Added diagnostics-backed telemetry, structured logs, regression coverage, and published localisation notes in `docs/dev/kisa_connector_notes.md` + fixture guidance for Docs/QA.| |FEEDCONN-KISA-02-007 RSS contract & localisation brief|BE-Conn-KISA|Research|**DONE (2025-10-11)** – Documented RSS URLs, confirmed UTF-8 payload (no additional cookies required), and drafted localisation plan (Hangul glossary + optional MT plugin). Remaining open item: capture SPA detail API contract for full-text translations.| diff --git a/src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/Fixtures/conflict-nvd.canonical.json b/src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/Fixtures/conflict-nvd.canonical.json similarity index 100% rename from src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/Fixtures/conflict-nvd.canonical.json rename to src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/Fixtures/conflict-nvd.canonical.json diff --git a/src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/Fixtures/credit-parity.ghsa.json b/src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/Fixtures/credit-parity.ghsa.json similarity index 100% rename from src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/Fixtures/credit-parity.ghsa.json rename to src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/Fixtures/credit-parity.ghsa.json diff --git a/src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/Fixtures/credit-parity.nvd.json b/src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/Fixtures/credit-parity.nvd.json similarity index 100% rename from src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/Fixtures/credit-parity.nvd.json rename to src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/Fixtures/credit-parity.nvd.json diff --git a/src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/Fixtures/credit-parity.osv.json b/src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/Fixtures/credit-parity.osv.json similarity index 100% rename from src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/Fixtures/credit-parity.osv.json rename to src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/Fixtures/credit-parity.osv.json diff --git a/src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/Fixtures/nvd-invalid-schema.json b/src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/Fixtures/nvd-invalid-schema.json similarity index 100% rename from src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/Fixtures/nvd-invalid-schema.json rename to src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/Fixtures/nvd-invalid-schema.json diff --git a/src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/Fixtures/nvd-multipage-1.json b/src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/Fixtures/nvd-multipage-1.json similarity index 100% rename from src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/Fixtures/nvd-multipage-1.json rename to src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/Fixtures/nvd-multipage-1.json diff --git a/src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/Fixtures/nvd-multipage-2.json b/src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/Fixtures/nvd-multipage-2.json similarity index 100% rename from src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/Fixtures/nvd-multipage-2.json rename to src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/Fixtures/nvd-multipage-2.json diff --git a/src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/Fixtures/nvd-multipage-3.json b/src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/Fixtures/nvd-multipage-3.json similarity index 100% rename from src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/Fixtures/nvd-multipage-3.json rename to src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/Fixtures/nvd-multipage-3.json diff --git a/src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/Fixtures/nvd-window-1.json b/src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/Fixtures/nvd-window-1.json similarity index 100% rename from src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/Fixtures/nvd-window-1.json rename to src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/Fixtures/nvd-window-1.json diff --git a/src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/Fixtures/nvd-window-2.json b/src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/Fixtures/nvd-window-2.json similarity index 100% rename from src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/Fixtures/nvd-window-2.json rename to src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/Fixtures/nvd-window-2.json diff --git a/src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/Fixtures/nvd-window-update.json b/src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/Fixtures/nvd-window-update.json similarity index 100% rename from src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/Fixtures/nvd-window-update.json rename to src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/Fixtures/nvd-window-update.json diff --git a/src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/NvdConflictFixtureTests.cs b/src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/NvdConflictFixtureTests.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/NvdConflictFixtureTests.cs rename to src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/NvdConflictFixtureTests.cs index 0df565cc..64812d50 100644 --- a/src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/NvdConflictFixtureTests.cs +++ b/src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/NvdConflictFixtureTests.cs @@ -1,9 +1,9 @@ using System.Text.Json; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Nvd.Internal; +using StellaOps.Concelier.Connector.Nvd.Internal; using StellaOps.Concelier.Storage.Mongo.Documents; -namespace StellaOps.Concelier.Source.Nvd.Tests; +namespace StellaOps.Concelier.Connector.Nvd.Tests; public sealed class NvdConflictFixtureTests { diff --git a/src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/NvdConnectorHarnessTests.cs b/src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/NvdConnectorHarnessTests.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/NvdConnectorHarnessTests.cs rename to src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/NvdConnectorHarnessTests.cs index a83d325a..03cd4754 100644 --- a/src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/NvdConnectorHarnessTests.cs +++ b/src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/NvdConnectorHarnessTests.cs @@ -5,9 +5,9 @@ using System.IO; using System.Linq; using Microsoft.Extensions.DependencyInjection; using MongoDB.Bson; -using StellaOps.Concelier.Source.Common.Testing; -using StellaOps.Concelier.Source.Nvd; -using StellaOps.Concelier.Source.Nvd.Configuration; +using StellaOps.Concelier.Connector.Common.Testing; +using StellaOps.Concelier.Connector.Nvd; +using StellaOps.Concelier.Connector.Nvd.Configuration; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; @@ -15,7 +15,7 @@ using StellaOps.Concelier.Testing; using StellaOps.Concelier.Testing; using System.Net; -namespace StellaOps.Concelier.Source.Nvd.Tests; +namespace StellaOps.Concelier.Connector.Nvd.Tests; [Collection("mongo-fixture")] public sealed class NvdConnectorHarnessTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/NvdConnectorTests.cs b/src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/NvdConnectorTests.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/NvdConnectorTests.cs rename to src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/NvdConnectorTests.cs index 59a938ea..c2f1e276 100644 --- a/src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/NvdConnectorTests.cs +++ b/src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/NvdConnectorTests.cs @@ -13,13 +13,13 @@ using Microsoft.Extensions.Options; using Microsoft.Extensions.Time.Testing; using MongoDB.Bson; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Common.Testing; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Nvd; -using StellaOps.Concelier.Source.Nvd.Configuration; -using StellaOps.Concelier.Source.Nvd.Internal; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Common.Testing; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Nvd; +using StellaOps.Concelier.Connector.Nvd.Configuration; +using StellaOps.Concelier.Connector.Nvd.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; @@ -27,7 +27,7 @@ using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Concelier.Storage.Mongo.ChangeHistory; using StellaOps.Concelier.Testing; -namespace StellaOps.Concelier.Source.Nvd.Tests; +namespace StellaOps.Concelier.Connector.Nvd.Tests; [Collection("mongo-fixture")] public sealed class NvdConnectorTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/NvdMergeExportParityTests.cs b/src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/NvdMergeExportParityTests.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/NvdMergeExportParityTests.cs rename to src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/NvdMergeExportParityTests.cs index 3ff56d4e..23936fca 100644 --- a/src/StellaOps.Concelier.Source.Nvd.Tests/Nvd/NvdMergeExportParityTests.cs +++ b/src/StellaOps.Concelier.Connector.Nvd.Tests/Nvd/NvdMergeExportParityTests.cs @@ -8,7 +8,7 @@ using StellaOps.Concelier.Exporter.Json; using StellaOps.Concelier.Models; using Xunit; -namespace StellaOps.Concelier.Source.Nvd.Tests.Nvd; +namespace StellaOps.Concelier.Connector.Nvd.Tests.Nvd; public sealed class NvdMergeExportParityTests { diff --git a/src/StellaOps.Concelier.Source.Nvd.Tests/StellaOps.Concelier.Source.Nvd.Tests.csproj b/src/StellaOps.Concelier.Connector.Nvd.Tests/StellaOps.Concelier.Connector.Nvd.Tests.csproj similarity index 75% rename from src/StellaOps.Concelier.Source.Nvd.Tests/StellaOps.Concelier.Source.Nvd.Tests.csproj rename to src/StellaOps.Concelier.Connector.Nvd.Tests/StellaOps.Concelier.Connector.Nvd.Tests.csproj index bbad6650..960ed780 100644 --- a/src/StellaOps.Concelier.Source.Nvd.Tests/StellaOps.Concelier.Source.Nvd.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.Nvd.Tests/StellaOps.Concelier.Connector.Nvd.Tests.csproj @@ -8,8 +8,8 @@ - - + + diff --git a/src/StellaOps.Concelier.Source.Nvd/AGENTS.md b/src/StellaOps.Concelier.Connector.Nvd/AGENTS.md similarity index 94% rename from src/StellaOps.Concelier.Source.Nvd/AGENTS.md rename to src/StellaOps.Concelier.Connector.Nvd/AGENTS.md index 8fe49404..16f53c22 100644 --- a/src/StellaOps.Concelier.Source.Nvd/AGENTS.md +++ b/src/StellaOps.Concelier.Connector.Nvd/AGENTS.md @@ -21,6 +21,6 @@ Out: authoritative distro package ranges; vendor patch states. ## Observability & security expectations - Metrics: SourceDiagnostics publishes `concelier.source.http.*` counters/histograms tagged `concelier.source=nvd`; dashboards slice on the tag to track page counts, schema failures, map throughput, and window advancement. Structured logs include window bounds and etag hits. ## Tests -- Author and review coverage in `../StellaOps.Concelier.Source.Nvd.Tests`. +- Author and review coverage in `../StellaOps.Concelier.Connector.Nvd.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. diff --git a/src/StellaOps.Concelier.Source.Nvd/Configuration/NvdOptions.cs b/src/StellaOps.Concelier.Connector.Nvd/Configuration/NvdOptions.cs similarity index 93% rename from src/StellaOps.Concelier.Source.Nvd/Configuration/NvdOptions.cs rename to src/StellaOps.Concelier.Connector.Nvd/Configuration/NvdOptions.cs index 50af58ea..cb88d3d1 100644 --- a/src/StellaOps.Concelier.Source.Nvd/Configuration/NvdOptions.cs +++ b/src/StellaOps.Concelier.Connector.Nvd/Configuration/NvdOptions.cs @@ -1,4 +1,4 @@ -namespace StellaOps.Concelier.Source.Nvd.Configuration; +namespace StellaOps.Concelier.Connector.Nvd.Configuration; public sealed class NvdOptions { diff --git a/src/StellaOps.Concelier.Source.Nvd/Internal/NvdCursor.cs b/src/StellaOps.Concelier.Connector.Nvd/Internal/NvdCursor.cs similarity index 92% rename from src/StellaOps.Concelier.Source.Nvd/Internal/NvdCursor.cs rename to src/StellaOps.Concelier.Connector.Nvd/Internal/NvdCursor.cs index 77daa857..235985e2 100644 --- a/src/StellaOps.Concelier.Source.Nvd/Internal/NvdCursor.cs +++ b/src/StellaOps.Concelier.Connector.Nvd/Internal/NvdCursor.cs @@ -1,8 +1,8 @@ using System.Linq; using MongoDB.Bson; -using StellaOps.Concelier.Source.Common.Cursors; +using StellaOps.Concelier.Connector.Common.Cursors; -namespace StellaOps.Concelier.Source.Nvd.Internal; +namespace StellaOps.Concelier.Connector.Nvd.Internal; internal sealed record NvdCursor( TimeWindowCursorState Window, diff --git a/src/StellaOps.Concelier.Source.Nvd/Internal/NvdDiagnostics.cs b/src/StellaOps.Concelier.Connector.Nvd/Internal/NvdDiagnostics.cs similarity index 93% rename from src/StellaOps.Concelier.Source.Nvd/Internal/NvdDiagnostics.cs rename to src/StellaOps.Concelier.Connector.Nvd/Internal/NvdDiagnostics.cs index 06d76a2c..503d9ce4 100644 --- a/src/StellaOps.Concelier.Source.Nvd/Internal/NvdDiagnostics.cs +++ b/src/StellaOps.Concelier.Connector.Nvd/Internal/NvdDiagnostics.cs @@ -1,10 +1,10 @@ using System.Diagnostics.Metrics; -namespace StellaOps.Concelier.Source.Nvd.Internal; +namespace StellaOps.Concelier.Connector.Nvd.Internal; public sealed class NvdDiagnostics : IDisposable { - public const string MeterName = "StellaOps.Concelier.Source.Nvd"; + public const string MeterName = "StellaOps.Concelier.Connector.Nvd"; public const string MeterVersion = "1.0.0"; private readonly Meter _meter; diff --git a/src/StellaOps.Concelier.Source.Nvd/Internal/NvdMapper.cs b/src/StellaOps.Concelier.Connector.Nvd/Internal/NvdMapper.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Nvd/Internal/NvdMapper.cs rename to src/StellaOps.Concelier.Connector.Nvd/Internal/NvdMapper.cs index c8c1d4b2..57127ed4 100644 --- a/src/StellaOps.Concelier.Source.Nvd/Internal/NvdMapper.cs +++ b/src/StellaOps.Concelier.Connector.Nvd/Internal/NvdMapper.cs @@ -10,7 +10,7 @@ using StellaOps.Concelier.Normalization.Cvss; using StellaOps.Concelier.Normalization.Text; using StellaOps.Concelier.Storage.Mongo.Documents; -namespace StellaOps.Concelier.Source.Nvd.Internal; +namespace StellaOps.Concelier.Connector.Nvd.Internal; internal static class NvdMapper { diff --git a/src/StellaOps.Concelier.Source.Nvd/Internal/NvdSchemaProvider.cs b/src/StellaOps.Concelier.Connector.Nvd/Internal/NvdSchemaProvider.cs similarity index 79% rename from src/StellaOps.Concelier.Source.Nvd/Internal/NvdSchemaProvider.cs rename to src/StellaOps.Concelier.Connector.Nvd/Internal/NvdSchemaProvider.cs index b209c786..e5079306 100644 --- a/src/StellaOps.Concelier.Source.Nvd/Internal/NvdSchemaProvider.cs +++ b/src/StellaOps.Concelier.Connector.Nvd/Internal/NvdSchemaProvider.cs @@ -3,7 +3,7 @@ using System.Reflection; using System.Threading; using Json.Schema; -namespace StellaOps.Concelier.Source.Nvd.Internal; +namespace StellaOps.Concelier.Connector.Nvd.Internal; internal static class NvdSchemaProvider { @@ -14,7 +14,7 @@ internal static class NvdSchemaProvider private static JsonSchema LoadSchema() { var assembly = typeof(NvdSchemaProvider).GetTypeInfo().Assembly; - const string resourceName = "StellaOps.Concelier.Source.Nvd.Schemas.nvd-vulnerability.schema.json"; + const string resourceName = "StellaOps.Concelier.Connector.Nvd.Schemas.nvd-vulnerability.schema.json"; using var stream = assembly.GetManifestResourceStream(resourceName) ?? throw new InvalidOperationException($"Embedded schema '{resourceName}' not found."); diff --git a/src/StellaOps.Concelier.Source.Nvd/NvdConnector.cs b/src/StellaOps.Concelier.Connector.Nvd/NvdConnector.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Nvd/NvdConnector.cs rename to src/StellaOps.Concelier.Connector.Nvd/NvdConnector.cs index ebfa9ed9..04bf0f68 100644 --- a/src/StellaOps.Concelier.Source.Nvd/NvdConnector.cs +++ b/src/StellaOps.Concelier.Connector.Nvd/NvdConnector.cs @@ -6,12 +6,12 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using MongoDB.Bson; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Common.Json; -using StellaOps.Concelier.Source.Common.Cursors; -using StellaOps.Concelier.Source.Nvd.Configuration; -using StellaOps.Concelier.Source.Nvd.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Common.Json; +using StellaOps.Concelier.Connector.Common.Cursors; +using StellaOps.Concelier.Connector.Nvd.Configuration; +using StellaOps.Concelier.Connector.Nvd.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; @@ -20,7 +20,7 @@ using StellaOps.Concelier.Storage.Mongo.ChangeHistory; using StellaOps.Plugin; using Json.Schema; -namespace StellaOps.Concelier.Source.Nvd; +namespace StellaOps.Concelier.Connector.Nvd; public sealed class NvdConnector : IFeedConnector { diff --git a/src/StellaOps.Concelier.Source.Nvd/NvdConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.Nvd/NvdConnectorPlugin.cs similarity index 88% rename from src/StellaOps.Concelier.Source.Nvd/NvdConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.Nvd/NvdConnectorPlugin.cs index 65e169de..7726a1aa 100644 --- a/src/StellaOps.Concelier.Source.Nvd/NvdConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.Nvd/NvdConnectorPlugin.cs @@ -1,7 +1,7 @@ using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Nvd; +namespace StellaOps.Concelier.Connector.Nvd; public sealed class NvdConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.Nvd/NvdServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.Nvd/NvdServiceCollectionExtensions.cs similarity index 83% rename from src/StellaOps.Concelier.Source.Nvd/NvdServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.Nvd/NvdServiceCollectionExtensions.cs index a1197651..828fa6d6 100644 --- a/src/StellaOps.Concelier.Source.Nvd/NvdServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.Nvd/NvdServiceCollectionExtensions.cs @@ -1,10 +1,10 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Nvd.Configuration; -using StellaOps.Concelier.Source.Nvd.Internal; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Nvd.Configuration; +using StellaOps.Concelier.Connector.Nvd.Internal; -namespace StellaOps.Concelier.Source.Nvd; +namespace StellaOps.Concelier.Connector.Nvd; public static class NvdServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Source.Ghsa/Properties/AssemblyInfo.cs b/src/StellaOps.Concelier.Connector.Nvd/Properties/AssemblyInfo.cs similarity index 54% rename from src/StellaOps.Concelier.Source.Ghsa/Properties/AssemblyInfo.cs rename to src/StellaOps.Concelier.Connector.Nvd/Properties/AssemblyInfo.cs index 337530ff..ffe1bc6d 100644 --- a/src/StellaOps.Concelier.Source.Ghsa/Properties/AssemblyInfo.cs +++ b/src/StellaOps.Concelier.Connector.Nvd/Properties/AssemblyInfo.cs @@ -1,4 +1,4 @@ using System.Runtime.CompilerServices; +[assembly: InternalsVisibleTo("StellaOps.Concelier.Connector.Nvd.Tests")] [assembly: InternalsVisibleTo("FixtureUpdater")] -[assembly: InternalsVisibleTo("StellaOps.Concelier.Source.Ghsa.Tests")] diff --git a/src/StellaOps.Concelier.Source.Nvd/Schemas/nvd-vulnerability.schema.json b/src/StellaOps.Concelier.Connector.Nvd/Schemas/nvd-vulnerability.schema.json similarity index 100% rename from src/StellaOps.Concelier.Source.Nvd/Schemas/nvd-vulnerability.schema.json rename to src/StellaOps.Concelier.Connector.Nvd/Schemas/nvd-vulnerability.schema.json diff --git a/src/StellaOps.Concelier.Source.Nvd/StellaOps.Concelier.Source.Nvd.csproj b/src/StellaOps.Concelier.Connector.Nvd/StellaOps.Concelier.Connector.Nvd.csproj similarity index 84% rename from src/StellaOps.Concelier.Source.Nvd/StellaOps.Concelier.Source.Nvd.csproj rename to src/StellaOps.Concelier.Connector.Nvd/StellaOps.Concelier.Connector.Nvd.csproj index 8bb863d2..797a67a3 100644 --- a/src/StellaOps.Concelier.Source.Nvd/StellaOps.Concelier.Source.Nvd.csproj +++ b/src/StellaOps.Concelier.Connector.Nvd/StellaOps.Concelier.Connector.Nvd.csproj @@ -10,7 +10,7 @@ - + diff --git a/src/StellaOps.Concelier.Source.Nvd/TASKS.md b/src/StellaOps.Concelier.Connector.Nvd/TASKS.md similarity index 94% rename from src/StellaOps.Concelier.Source.Nvd/TASKS.md rename to src/StellaOps.Concelier.Connector.Nvd/TASKS.md index 8cdbb365..bad8737c 100644 --- a/src/StellaOps.Concelier.Source.Nvd/TASKS.md +++ b/src/StellaOps.Concelier.Connector.Nvd/TASKS.md @@ -11,7 +11,7 @@ |Change history snapshotting|BE-Conn-Nvd|Storage.Mongo|DONE – connector now records per-CVE snapshots with top-level diff metadata whenever canonical advisories change.| |Pagination for windows over page limit|BE-Conn-Nvd|Source.Common|**DONE** – additional page fetcher honors `startIndex`; covered by multipage tests.| |Schema validation quarantine path|BE-Conn-Nvd|Storage.Mongo|**DONE** – schema failures mark documents failed and metrics assert quarantine.| -|FEEDCONN-NVD-04-002 Conflict regression fixtures|BE-Conn-Nvd, QA|Merge `FEEDMERGE-ENGINE-04-001`|**DONE (2025-10-12)** – Published `conflict-nvd.canonical.json` + mapper test; includes CVSS 3.1 + CWE reference and normalized CPE range feeding the conflict triple. Validation: `dotnet test src/StellaOps.Concelier.Source.Nvd.Tests/StellaOps.Concelier.Source.Nvd.Tests.csproj --filter NvdConflictFixtureTests`.| +|FEEDCONN-NVD-04-002 Conflict regression fixtures|BE-Conn-Nvd, QA|Merge `FEEDMERGE-ENGINE-04-001`|**DONE (2025-10-12)** – Published `conflict-nvd.canonical.json` + mapper test; includes CVSS 3.1 + CWE reference and normalized CPE range feeding the conflict triple. Validation: `dotnet test src/StellaOps.Concelier.Connector.Nvd.Tests/StellaOps.Concelier.Connector.Nvd.Tests.csproj --filter NvdConflictFixtureTests`.| |FEEDCONN-NVD-02-004 NVD CVSS & CWE precedence payloads|BE-Conn-Nvd|Models `FEEDMODELS-SCHEMA-01-002`|**DONE (2025-10-11)** – CVSS metrics now carry provenance masks, CWE weaknesses emit normalized references, and fixtures cover the additional precedence data.| |FEEDCONN-NVD-02-005 NVD merge/export parity regression|BE-Conn-Nvd, BE-Merge|Merge `FEEDMERGE-ENGINE-04-003`|**DONE (2025-10-12)** – Canonical merge parity fixtures captured, regression test validates credit/reference union, and exporter snapshot check guarantees parity through JSON exports.| |FEEDCONN-NVD-02-002 Normalized versions rollout|BE-Conn-Nvd|Models `FEEDMODELS-SCHEMA-01-003`, Normalization playbook|**DONE (2025-10-11)** – SemVer primitives + normalized rules emitting for parseable ranges, fixtures/tests refreshed, coordination pinged via FEEDMERGE-COORD-02-900.| diff --git a/src/StellaOps.Concelier.Source.Osv.Tests/Fixtures/conflict-osv.canonical.json b/src/StellaOps.Concelier.Connector.Osv.Tests/Fixtures/conflict-osv.canonical.json similarity index 100% rename from src/StellaOps.Concelier.Source.Osv.Tests/Fixtures/conflict-osv.canonical.json rename to src/StellaOps.Concelier.Connector.Osv.Tests/Fixtures/conflict-osv.canonical.json diff --git a/src/StellaOps.Concelier.Source.Osv.Tests/Fixtures/osv-ghsa.ghsa.json b/src/StellaOps.Concelier.Connector.Osv.Tests/Fixtures/osv-ghsa.ghsa.json similarity index 100% rename from src/StellaOps.Concelier.Source.Osv.Tests/Fixtures/osv-ghsa.ghsa.json rename to src/StellaOps.Concelier.Connector.Osv.Tests/Fixtures/osv-ghsa.ghsa.json diff --git a/src/StellaOps.Concelier.Source.Osv.Tests/Fixtures/osv-ghsa.osv.json b/src/StellaOps.Concelier.Connector.Osv.Tests/Fixtures/osv-ghsa.osv.json similarity index 100% rename from src/StellaOps.Concelier.Source.Osv.Tests/Fixtures/osv-ghsa.osv.json rename to src/StellaOps.Concelier.Connector.Osv.Tests/Fixtures/osv-ghsa.osv.json diff --git a/src/StellaOps.Concelier.Source.Osv.Tests/Fixtures/osv-ghsa.raw-ghsa.json b/src/StellaOps.Concelier.Connector.Osv.Tests/Fixtures/osv-ghsa.raw-ghsa.json similarity index 100% rename from src/StellaOps.Concelier.Source.Osv.Tests/Fixtures/osv-ghsa.raw-ghsa.json rename to src/StellaOps.Concelier.Connector.Osv.Tests/Fixtures/osv-ghsa.raw-ghsa.json diff --git a/src/StellaOps.Concelier.Source.Osv.Tests/Fixtures/osv-ghsa.raw-osv.json b/src/StellaOps.Concelier.Connector.Osv.Tests/Fixtures/osv-ghsa.raw-osv.json similarity index 100% rename from src/StellaOps.Concelier.Source.Osv.Tests/Fixtures/osv-ghsa.raw-osv.json rename to src/StellaOps.Concelier.Connector.Osv.Tests/Fixtures/osv-ghsa.raw-osv.json diff --git a/src/StellaOps.Concelier.Source.Osv.Tests/Fixtures/osv-npm.snapshot.json b/src/StellaOps.Concelier.Connector.Osv.Tests/Fixtures/osv-npm.snapshot.json similarity index 100% rename from src/StellaOps.Concelier.Source.Osv.Tests/Fixtures/osv-npm.snapshot.json rename to src/StellaOps.Concelier.Connector.Osv.Tests/Fixtures/osv-npm.snapshot.json diff --git a/src/StellaOps.Concelier.Source.Osv.Tests/Fixtures/osv-pypi.snapshot.json b/src/StellaOps.Concelier.Connector.Osv.Tests/Fixtures/osv-pypi.snapshot.json similarity index 100% rename from src/StellaOps.Concelier.Source.Osv.Tests/Fixtures/osv-pypi.snapshot.json rename to src/StellaOps.Concelier.Connector.Osv.Tests/Fixtures/osv-pypi.snapshot.json diff --git a/src/StellaOps.Concelier.Source.Osv.Tests/Osv/OsvConflictFixtureTests.cs b/src/StellaOps.Concelier.Connector.Osv.Tests/Osv/OsvConflictFixtureTests.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Osv.Tests/Osv/OsvConflictFixtureTests.cs rename to src/StellaOps.Concelier.Connector.Osv.Tests/Osv/OsvConflictFixtureTests.cs index 42dacccb..70f4432e 100644 --- a/src/StellaOps.Concelier.Source.Osv.Tests/Osv/OsvConflictFixtureTests.cs +++ b/src/StellaOps.Concelier.Connector.Osv.Tests/Osv/OsvConflictFixtureTests.cs @@ -1,11 +1,11 @@ using System.Text.Json; using MongoDB.Bson; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Osv.Internal; +using StellaOps.Concelier.Connector.Osv.Internal; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; -namespace StellaOps.Concelier.Source.Osv.Tests; +namespace StellaOps.Concelier.Connector.Osv.Tests; public sealed class OsvConflictFixtureTests { diff --git a/src/StellaOps.Concelier.Source.Osv.Tests/Osv/OsvGhsaParityRegressionTests.cs b/src/StellaOps.Concelier.Connector.Osv.Tests/Osv/OsvGhsaParityRegressionTests.cs similarity index 99% rename from src/StellaOps.Concelier.Source.Osv.Tests/Osv/OsvGhsaParityRegressionTests.cs rename to src/StellaOps.Concelier.Connector.Osv.Tests/Osv/OsvGhsaParityRegressionTests.cs index 025acd8a..a3154906 100644 --- a/src/StellaOps.Concelier.Source.Osv.Tests/Osv/OsvGhsaParityRegressionTests.cs +++ b/src/StellaOps.Concelier.Connector.Osv.Tests/Osv/OsvGhsaParityRegressionTests.cs @@ -11,14 +11,14 @@ using System.Text.Json; using System.Text.RegularExpressions; using MongoDB.Bson; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Osv; -using StellaOps.Concelier.Source.Osv.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Osv; +using StellaOps.Concelier.Connector.Osv.Internal; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using Xunit; -namespace StellaOps.Concelier.Source.Osv.Tests; +namespace StellaOps.Concelier.Connector.Osv.Tests; public sealed class OsvGhsaParityRegressionTests { diff --git a/src/StellaOps.Concelier.Source.Osv.Tests/Osv/OsvMapperTests.cs b/src/StellaOps.Concelier.Connector.Osv.Tests/Osv/OsvMapperTests.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Osv.Tests/Osv/OsvMapperTests.cs rename to src/StellaOps.Concelier.Connector.Osv.Tests/Osv/OsvMapperTests.cs index 0c44cb3b..682a1109 100644 --- a/src/StellaOps.Concelier.Source.Osv.Tests/Osv/OsvMapperTests.cs +++ b/src/StellaOps.Concelier.Connector.Osv.Tests/Osv/OsvMapperTests.cs @@ -5,15 +5,15 @@ using System.Text.Json.Serialization; using System.Reflection; using MongoDB.Bson; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Osv; -using StellaOps.Concelier.Source.Osv.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Osv; +using StellaOps.Concelier.Connector.Osv.Internal; using StellaOps.Concelier.Normalization.Identifiers; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using Xunit; -namespace StellaOps.Concelier.Source.Osv.Tests; +namespace StellaOps.Concelier.Connector.Osv.Tests; public sealed class OsvMapperTests { diff --git a/src/StellaOps.Concelier.Source.Osv.Tests/Osv/OsvSnapshotTests.cs b/src/StellaOps.Concelier.Connector.Osv.Tests/Osv/OsvSnapshotTests.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Osv.Tests/Osv/OsvSnapshotTests.cs rename to src/StellaOps.Concelier.Connector.Osv.Tests/Osv/OsvSnapshotTests.cs index 076eb9e7..9a5d7936 100644 --- a/src/StellaOps.Concelier.Source.Osv.Tests/Osv/OsvSnapshotTests.cs +++ b/src/StellaOps.Concelier.Connector.Osv.Tests/Osv/OsvSnapshotTests.cs @@ -4,15 +4,15 @@ using System.IO; using System.Text.Json; using MongoDB.Bson; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Osv; -using StellaOps.Concelier.Source.Osv.Internal; +using StellaOps.Concelier.Connector.Osv; +using StellaOps.Concelier.Connector.Osv.Internal; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; -using StellaOps.Concelier.Source.Common; +using StellaOps.Concelier.Connector.Common; using Xunit; using Xunit.Abstractions; -namespace StellaOps.Concelier.Source.Osv.Tests; +namespace StellaOps.Concelier.Connector.Osv.Tests; public sealed class OsvSnapshotTests { diff --git a/src/StellaOps.Concelier.Source.Osv.Tests/StellaOps.Concelier.Source.Osv.Tests.csproj b/src/StellaOps.Concelier.Connector.Osv.Tests/StellaOps.Concelier.Connector.Osv.Tests.csproj similarity index 70% rename from src/StellaOps.Concelier.Source.Osv.Tests/StellaOps.Concelier.Source.Osv.Tests.csproj rename to src/StellaOps.Concelier.Connector.Osv.Tests/StellaOps.Concelier.Connector.Osv.Tests.csproj index e59484a6..6d8232bd 100644 --- a/src/StellaOps.Concelier.Source.Osv.Tests/StellaOps.Concelier.Source.Osv.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.Osv.Tests/StellaOps.Concelier.Connector.Osv.Tests.csproj @@ -6,8 +6,8 @@ - - + + diff --git a/src/StellaOps.Concelier.Source.Osv/AGENTS.md b/src/StellaOps.Concelier.Connector.Osv/AGENTS.md similarity index 94% rename from src/StellaOps.Concelier.Source.Osv/AGENTS.md rename to src/StellaOps.Concelier.Connector.Osv/AGENTS.md index 48a4df2b..14834498 100644 --- a/src/StellaOps.Concelier.Source.Osv/AGENTS.md +++ b/src/StellaOps.Concelier.Connector.Osv/AGENTS.md @@ -21,6 +21,6 @@ Out: vendor PSIRT and distro OVAL specifics. ## Observability & security expectations - Metrics: SourceDiagnostics exposes the shared `concelier.source.http.*` counters/histograms tagged `concelier.source=osv`; observability dashboards slice on the tag to monitor item volume, schema failures, range counts, and ecosystem coverage. Logs include ecosystem and cursor values. ## Tests -- Author and review coverage in `../StellaOps.Concelier.Source.Osv.Tests`. +- Author and review coverage in `../StellaOps.Concelier.Connector.Osv.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. diff --git a/src/StellaOps.Concelier.Source.Osv/Configuration/OsvOptions.cs b/src/StellaOps.Concelier.Connector.Osv/Configuration/OsvOptions.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Osv/Configuration/OsvOptions.cs rename to src/StellaOps.Concelier.Connector.Osv/Configuration/OsvOptions.cs index 1cceffb5..eb6d4216 100644 --- a/src/StellaOps.Concelier.Source.Osv/Configuration/OsvOptions.cs +++ b/src/StellaOps.Concelier.Connector.Osv/Configuration/OsvOptions.cs @@ -1,6 +1,6 @@ using System.Diagnostics.CodeAnalysis; -namespace StellaOps.Concelier.Source.Osv.Configuration; +namespace StellaOps.Concelier.Connector.Osv.Configuration; public sealed class OsvOptions { diff --git a/src/StellaOps.Concelier.Source.Osv/Internal/OsvCursor.cs b/src/StellaOps.Concelier.Connector.Osv/Internal/OsvCursor.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Osv/Internal/OsvCursor.cs rename to src/StellaOps.Concelier.Connector.Osv/Internal/OsvCursor.cs index f7a39662..b9420f71 100644 --- a/src/StellaOps.Concelier.Source.Osv/Internal/OsvCursor.cs +++ b/src/StellaOps.Concelier.Connector.Osv/Internal/OsvCursor.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using MongoDB.Bson; -namespace StellaOps.Concelier.Source.Osv.Internal; +namespace StellaOps.Concelier.Connector.Osv.Internal; internal sealed record OsvCursor( IReadOnlyDictionary LastModifiedByEcosystem, diff --git a/src/StellaOps.Concelier.Source.Osv/Internal/OsvDiagnostics.cs b/src/StellaOps.Concelier.Connector.Osv/Internal/OsvDiagnostics.cs similarity index 90% rename from src/StellaOps.Concelier.Source.Osv/Internal/OsvDiagnostics.cs rename to src/StellaOps.Concelier.Connector.Osv/Internal/OsvDiagnostics.cs index 5a5122ff..5d1052f4 100644 --- a/src/StellaOps.Concelier.Source.Osv/Internal/OsvDiagnostics.cs +++ b/src/StellaOps.Concelier.Connector.Osv/Internal/OsvDiagnostics.cs @@ -2,14 +2,14 @@ using System; using System.Collections.Generic; using System.Diagnostics.Metrics; -namespace StellaOps.Concelier.Source.Osv.Internal; +namespace StellaOps.Concelier.Connector.Osv.Internal; /// /// Connector-specific diagnostics for OSV mapping. /// public sealed class OsvDiagnostics : IDisposable { - private const string MeterName = "StellaOps.Concelier.Source.Osv"; + private const string MeterName = "StellaOps.Concelier.Connector.Osv"; private const string MeterVersion = "1.0.0"; private readonly Meter _meter; diff --git a/src/StellaOps.Concelier.Source.Osv/Internal/OsvMapper.cs b/src/StellaOps.Concelier.Connector.Osv/Internal/OsvMapper.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Osv/Internal/OsvMapper.cs rename to src/StellaOps.Concelier.Connector.Osv/Internal/OsvMapper.cs index 3c22d123..8d216eec 100644 --- a/src/StellaOps.Concelier.Source.Osv/Internal/OsvMapper.cs +++ b/src/StellaOps.Concelier.Connector.Osv/Internal/OsvMapper.cs @@ -8,11 +8,11 @@ using StellaOps.Concelier.Models; using StellaOps.Concelier.Normalization.Cvss; using StellaOps.Concelier.Normalization.Identifiers; using StellaOps.Concelier.Normalization.Text; -using StellaOps.Concelier.Source.Common; +using StellaOps.Concelier.Connector.Common; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; -namespace StellaOps.Concelier.Source.Osv.Internal; +namespace StellaOps.Concelier.Connector.Osv.Internal; internal static class OsvMapper { diff --git a/src/StellaOps.Concelier.Source.Osv/Internal/OsvVulnerabilityDto.cs b/src/StellaOps.Concelier.Connector.Osv/Internal/OsvVulnerabilityDto.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Osv/Internal/OsvVulnerabilityDto.cs rename to src/StellaOps.Concelier.Connector.Osv/Internal/OsvVulnerabilityDto.cs index b591166a..32d260b7 100644 --- a/src/StellaOps.Concelier.Source.Osv/Internal/OsvVulnerabilityDto.cs +++ b/src/StellaOps.Concelier.Connector.Osv/Internal/OsvVulnerabilityDto.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Text.Json; using System.Text.Json.Serialization; -namespace StellaOps.Concelier.Source.Osv.Internal; +namespace StellaOps.Concelier.Connector.Osv.Internal; internal sealed record OsvVulnerabilityDto { diff --git a/src/StellaOps.Concelier.Source.Osv/Jobs.cs b/src/StellaOps.Concelier.Connector.Osv/Jobs.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Osv/Jobs.cs rename to src/StellaOps.Concelier.Connector.Osv/Jobs.cs index ebd8348c..1b4b606f 100644 --- a/src/StellaOps.Concelier.Source.Osv/Jobs.cs +++ b/src/StellaOps.Concelier.Connector.Osv/Jobs.cs @@ -3,7 +3,7 @@ using System.Threading; using System.Threading.Tasks; using StellaOps.Concelier.Core.Jobs; -namespace StellaOps.Concelier.Source.Osv; +namespace StellaOps.Concelier.Connector.Osv; internal static class OsvJobKinds { diff --git a/src/StellaOps.Concelier.Source.Osv/OsvConnector.cs b/src/StellaOps.Concelier.Connector.Osv/OsvConnector.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Osv/OsvConnector.cs rename to src/StellaOps.Concelier.Connector.Osv/OsvConnector.cs index 0bff947e..cdaefce2 100644 --- a/src/StellaOps.Concelier.Source.Osv/OsvConnector.cs +++ b/src/StellaOps.Concelier.Connector.Osv/OsvConnector.cs @@ -15,17 +15,17 @@ using Microsoft.Extensions.Options; using MongoDB.Bson; using MongoDB.Bson.IO; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Osv.Configuration; -using StellaOps.Concelier.Source.Osv.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Osv.Configuration; +using StellaOps.Concelier.Connector.Osv.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Osv; +namespace StellaOps.Concelier.Connector.Osv; public sealed class OsvConnector : IFeedConnector { diff --git a/src/StellaOps.Concelier.Source.Osv/OsvConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.Osv/OsvConnectorPlugin.cs similarity index 88% rename from src/StellaOps.Concelier.Source.Osv/OsvConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.Osv/OsvConnectorPlugin.cs index 8a1603e5..624d5586 100644 --- a/src/StellaOps.Concelier.Source.Osv/OsvConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.Osv/OsvConnectorPlugin.cs @@ -2,7 +2,7 @@ using System; using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Osv; +namespace StellaOps.Concelier.Connector.Osv; public sealed class OsvConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.Osv/OsvDependencyInjectionRoutine.cs b/src/StellaOps.Concelier.Connector.Osv/OsvDependencyInjectionRoutine.cs similarity index 92% rename from src/StellaOps.Concelier.Source.Osv/OsvDependencyInjectionRoutine.cs rename to src/StellaOps.Concelier.Connector.Osv/OsvDependencyInjectionRoutine.cs index 5c18fc2c..d99798d4 100644 --- a/src/StellaOps.Concelier.Source.Osv/OsvDependencyInjectionRoutine.cs +++ b/src/StellaOps.Concelier.Connector.Osv/OsvDependencyInjectionRoutine.cs @@ -3,9 +3,9 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using StellaOps.DependencyInjection; using StellaOps.Concelier.Core.Jobs; -using StellaOps.Concelier.Source.Osv.Configuration; +using StellaOps.Concelier.Connector.Osv.Configuration; -namespace StellaOps.Concelier.Source.Osv; +namespace StellaOps.Concelier.Connector.Osv; public sealed class OsvDependencyInjectionRoutine : IDependencyInjectionRoutine { diff --git a/src/StellaOps.Concelier.Source.Osv/OsvServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.Osv/OsvServiceCollectionExtensions.cs similarity index 85% rename from src/StellaOps.Concelier.Source.Osv/OsvServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.Osv/OsvServiceCollectionExtensions.cs index 90490375..15bbbcd1 100644 --- a/src/StellaOps.Concelier.Source.Osv/OsvServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.Osv/OsvServiceCollectionExtensions.cs @@ -1,11 +1,11 @@ using System; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Osv.Configuration; -using StellaOps.Concelier.Source.Osv.Internal; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Osv.Configuration; +using StellaOps.Concelier.Connector.Osv.Internal; -namespace StellaOps.Concelier.Source.Osv; +namespace StellaOps.Concelier.Connector.Osv; public static class OsvServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Source.Osv/Properties/AssemblyInfo.cs b/src/StellaOps.Concelier.Connector.Osv/Properties/AssemblyInfo.cs similarity index 100% rename from src/StellaOps.Concelier.Source.Osv/Properties/AssemblyInfo.cs rename to src/StellaOps.Concelier.Connector.Osv/Properties/AssemblyInfo.cs diff --git a/src/StellaOps.Concelier.Source.Osv/StellaOps.Concelier.Source.Osv.csproj b/src/StellaOps.Concelier.Connector.Osv/StellaOps.Concelier.Connector.Osv.csproj similarity index 82% rename from src/StellaOps.Concelier.Source.Osv/StellaOps.Concelier.Source.Osv.csproj rename to src/StellaOps.Concelier.Connector.Osv/StellaOps.Concelier.Connector.Osv.csproj index d0d8ec80..dec35b89 100644 --- a/src/StellaOps.Concelier.Source.Osv/StellaOps.Concelier.Source.Osv.csproj +++ b/src/StellaOps.Concelier.Connector.Osv/StellaOps.Concelier.Connector.Osv.csproj @@ -6,7 +6,7 @@ - + @@ -17,7 +17,7 @@ <_Parameter1>StellaOps.Concelier.Tests - <_Parameter1>StellaOps.Concelier.Source.Osv.Tests + <_Parameter1>StellaOps.Concelier.Connector.Osv.Tests diff --git a/src/StellaOps.Concelier.Source.Osv/TASKS.md b/src/StellaOps.Concelier.Connector.Osv/TASKS.md similarity index 93% rename from src/StellaOps.Concelier.Source.Osv/TASKS.md rename to src/StellaOps.Concelier.Connector.Osv/TASKS.md index 05b67d91..b17f04cb 100644 --- a/src/StellaOps.Concelier.Source.Osv/TASKS.md +++ b/src/StellaOps.Concelier.Connector.Osv/TASKS.md @@ -14,7 +14,7 @@ |FEEDCONN-OSV-02-004 OSV references & credits alignment|BE-Conn-OSV|Models `FEEDMODELS-SCHEMA-01-002`|**DONE (2025-10-11)** – Mapper normalizes references with provenance masks, emits advisory credits, and regression fixtures/assertions cover the new fields.| |FEEDCONN-OSV-02-005 Fixture updater workflow|BE-Conn-OSV, QA|Docs|**DONE (2025-10-12)** – Canonical PURL derivation now covers Go + scoped npm advisories without upstream `purl`; legacy invalid npm names still fall back to `ecosystem:name`. OSV/GHSA/NVD suites and normalization/storage tests rerun clean.| |FEEDCONN-OSV-02-003 Normalized versions rollout|BE-Conn-OSV|Models `FEEDMODELS-SCHEMA-01-003`, Normalization playbook|**DONE (2025-10-11)** – `OsvMapper` now emits SemVer primitives + normalized rules with `osv:{ecosystem}:{advisoryId}:{identifier}` notes; npm/PyPI/Parity fixtures refreshed; merge coordination pinged (OSV handoff).| -|FEEDCONN-OSV-04-003 Parity fixture refresh|QA, BE-Conn-OSV|Normalized versions rollout, GHSA parity tests|**DONE (2025-10-12)** – Parity fixtures include normalizedVersions notes (`osv:::`); regression math rerun via `dotnet test src/StellaOps.Concelier.Source.Osv.Tests` and docs flagged for workflow sync.| -|FEEDCONN-OSV-04-002 Conflict regression fixtures|BE-Conn-OSV, QA|Merge `FEEDMERGE-ENGINE-04-001`|**DONE (2025-10-12)** – Added `conflict-osv.canonical.json` + regression asserting SemVer range + CVSS medium severity; dataset matches GHSA/NVD fixtures for merge tests. Validation: `dotnet test src/StellaOps.Concelier.Source.Osv.Tests/StellaOps.Concelier.Source.Osv.Tests.csproj --filter OsvConflictFixtureTests`.| +|FEEDCONN-OSV-04-003 Parity fixture refresh|QA, BE-Conn-OSV|Normalized versions rollout, GHSA parity tests|**DONE (2025-10-12)** – Parity fixtures include normalizedVersions notes (`osv:::`); regression math rerun via `dotnet test src/StellaOps.Concelier.Connector.Osv.Tests` and docs flagged for workflow sync.| +|FEEDCONN-OSV-04-002 Conflict regression fixtures|BE-Conn-OSV, QA|Merge `FEEDMERGE-ENGINE-04-001`|**DONE (2025-10-12)** – Added `conflict-osv.canonical.json` + regression asserting SemVer range + CVSS medium severity; dataset matches GHSA/NVD fixtures for merge tests. Validation: `dotnet test src/StellaOps.Concelier.Connector.Osv.Tests/StellaOps.Concelier.Connector.Osv.Tests.csproj --filter OsvConflictFixtureTests`.| |FEEDCONN-OSV-04-004 Description/CWE/metric parity rollout|BE-Conn-OSV|Models, Core|**DONE (2025-10-15)** – OSV mapper writes advisory descriptions, `database_specific.cwe_ids` weaknesses, and canonical CVSS metric id. Parity fixtures (`osv-ghsa.*`, `osv-npm.snapshot.json`, `osv-pypi.snapshot.json`) refreshed and status communicated to Merge coordination.| -|FEEDCONN-OSV-04-005 Canonical metric fallbacks & CWE notes|BE-Conn-OSV|Models, Merge|**DONE (2025-10-16)** – Add fallback logic and metrics for advisories lacking CVSS vectors, enrich CWE provenance notes, and document merge/export expectations; refresh parity fixtures accordingly.
2025-10-16: Mapper now emits `osv:severity/` canonical ids for severity-only advisories, weakness provenance carries `database_specific.cwe_ids`, diagnostics expose `osv.map.canonical_metric_fallbacks`, parity fixtures regenerated, and ops notes added in `docs/ops/concelier-osv-operations.md`. Tests: `dotnet test src/StellaOps.Concelier.Source.Osv.Tests/StellaOps.Concelier.Source.Osv.Tests.csproj`.| +|FEEDCONN-OSV-04-005 Canonical metric fallbacks & CWE notes|BE-Conn-OSV|Models, Merge|**DONE (2025-10-16)** – Add fallback logic and metrics for advisories lacking CVSS vectors, enrich CWE provenance notes, and document merge/export expectations; refresh parity fixtures accordingly.
2025-10-16: Mapper now emits `osv:severity/` canonical ids for severity-only advisories, weakness provenance carries `database_specific.cwe_ids`, diagnostics expose `osv.map.canonical_metric_fallbacks`, parity fixtures regenerated, and ops notes added in `docs/ops/concelier-osv-operations.md`. Tests: `dotnet test src/StellaOps.Concelier.Connector.Osv.Tests/StellaOps.Concelier.Connector.Osv.Tests.csproj`.| diff --git a/src/StellaOps.Concelier.Source.Ru.Bdu.Tests/Fixtures/export-sample.xml b/src/StellaOps.Concelier.Connector.Ru.Bdu.Tests/Fixtures/export-sample.xml similarity index 100% rename from src/StellaOps.Concelier.Source.Ru.Bdu.Tests/Fixtures/export-sample.xml rename to src/StellaOps.Concelier.Connector.Ru.Bdu.Tests/Fixtures/export-sample.xml diff --git a/src/StellaOps.Concelier.Source.Ru.Bdu.Tests/Fixtures/ru-bdu-advisories.snapshot.json b/src/StellaOps.Concelier.Connector.Ru.Bdu.Tests/Fixtures/ru-bdu-advisories.snapshot.json similarity index 100% rename from src/StellaOps.Concelier.Source.Ru.Bdu.Tests/Fixtures/ru-bdu-advisories.snapshot.json rename to src/StellaOps.Concelier.Connector.Ru.Bdu.Tests/Fixtures/ru-bdu-advisories.snapshot.json diff --git a/src/StellaOps.Concelier.Source.Ru.Bdu.Tests/Fixtures/ru-bdu-documents.snapshot.json b/src/StellaOps.Concelier.Connector.Ru.Bdu.Tests/Fixtures/ru-bdu-documents.snapshot.json similarity index 100% rename from src/StellaOps.Concelier.Source.Ru.Bdu.Tests/Fixtures/ru-bdu-documents.snapshot.json rename to src/StellaOps.Concelier.Connector.Ru.Bdu.Tests/Fixtures/ru-bdu-documents.snapshot.json diff --git a/src/StellaOps.Concelier.Source.Ru.Bdu.Tests/Fixtures/ru-bdu-dtos.snapshot.json b/src/StellaOps.Concelier.Connector.Ru.Bdu.Tests/Fixtures/ru-bdu-dtos.snapshot.json similarity index 100% rename from src/StellaOps.Concelier.Source.Ru.Bdu.Tests/Fixtures/ru-bdu-dtos.snapshot.json rename to src/StellaOps.Concelier.Connector.Ru.Bdu.Tests/Fixtures/ru-bdu-dtos.snapshot.json diff --git a/src/StellaOps.Concelier.Source.Ru.Bdu.Tests/Fixtures/ru-bdu-requests.snapshot.json b/src/StellaOps.Concelier.Connector.Ru.Bdu.Tests/Fixtures/ru-bdu-requests.snapshot.json similarity index 100% rename from src/StellaOps.Concelier.Source.Ru.Bdu.Tests/Fixtures/ru-bdu-requests.snapshot.json rename to src/StellaOps.Concelier.Connector.Ru.Bdu.Tests/Fixtures/ru-bdu-requests.snapshot.json diff --git a/src/StellaOps.Concelier.Source.Ru.Bdu.Tests/Fixtures/ru-bdu-state.snapshot.json b/src/StellaOps.Concelier.Connector.Ru.Bdu.Tests/Fixtures/ru-bdu-state.snapshot.json similarity index 100% rename from src/StellaOps.Concelier.Source.Ru.Bdu.Tests/Fixtures/ru-bdu-state.snapshot.json rename to src/StellaOps.Concelier.Connector.Ru.Bdu.Tests/Fixtures/ru-bdu-state.snapshot.json diff --git a/src/StellaOps.Concelier.Source.Ru.Bdu.Tests/RuBduConnectorSnapshotTests.cs b/src/StellaOps.Concelier.Connector.Ru.Bdu.Tests/RuBduConnectorSnapshotTests.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Ru.Bdu.Tests/RuBduConnectorSnapshotTests.cs rename to src/StellaOps.Concelier.Connector.Ru.Bdu.Tests/RuBduConnectorSnapshotTests.cs index b3fc0753..5c58da2b 100644 --- a/src/StellaOps.Concelier.Source.Ru.Bdu.Tests/RuBduConnectorSnapshotTests.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Bdu.Tests/RuBduConnectorSnapshotTests.cs @@ -17,10 +17,10 @@ using MongoDB.Bson; using MongoDB.Bson.Serialization; using MongoDB.Driver; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common.Testing; -using StellaOps.Concelier.Source.Ru.Bdu; -using StellaOps.Concelier.Source.Ru.Bdu.Configuration; -using StellaOps.Concelier.Source.Ru.Bdu.Internal; +using StellaOps.Concelier.Connector.Common.Testing; +using StellaOps.Concelier.Connector.Ru.Bdu; +using StellaOps.Concelier.Connector.Ru.Bdu.Configuration; +using StellaOps.Concelier.Connector.Ru.Bdu.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; @@ -29,7 +29,7 @@ using StellaOps.Concelier.Testing; using Xunit; using Xunit.Sdk; -namespace StellaOps.Concelier.Source.Ru.Bdu.Tests; +namespace StellaOps.Concelier.Connector.Ru.Bdu.Tests; [Collection("mongo-fixture")] public sealed class RuBduConnectorSnapshotTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.Ru.Bdu.Tests/RuBduMapperTests.cs b/src/StellaOps.Concelier.Connector.Ru.Bdu.Tests/RuBduMapperTests.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Ru.Bdu.Tests/RuBduMapperTests.cs rename to src/StellaOps.Concelier.Connector.Ru.Bdu.Tests/RuBduMapperTests.cs index 9343bdb1..c0f44655 100644 --- a/src/StellaOps.Concelier.Source.Ru.Bdu.Tests/RuBduMapperTests.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Bdu.Tests/RuBduMapperTests.cs @@ -1,12 +1,12 @@ using System.Collections.Immutable; using MongoDB.Bson; -using StellaOps.Concelier.Source.Common; +using StellaOps.Concelier.Connector.Common; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Ru.Bdu.Internal; +using StellaOps.Concelier.Connector.Ru.Bdu.Internal; using StellaOps.Concelier.Storage.Mongo.Documents; using Xunit; -namespace StellaOps.Concelier.Source.Ru.Bdu.Tests; +namespace StellaOps.Concelier.Connector.Ru.Bdu.Tests; public sealed class RuBduMapperTests { diff --git a/src/StellaOps.Concelier.Source.Ru.Bdu.Tests/RuBduXmlParserTests.cs b/src/StellaOps.Concelier.Connector.Ru.Bdu.Tests/RuBduXmlParserTests.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Ru.Bdu.Tests/RuBduXmlParserTests.cs rename to src/StellaOps.Concelier.Connector.Ru.Bdu.Tests/RuBduXmlParserTests.cs index d02dad95..83d252d8 100644 --- a/src/StellaOps.Concelier.Source.Ru.Bdu.Tests/RuBduXmlParserTests.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Bdu.Tests/RuBduXmlParserTests.cs @@ -1,9 +1,9 @@ using System.IO; using System.Xml.Linq; -using StellaOps.Concelier.Source.Ru.Bdu.Internal; +using StellaOps.Concelier.Connector.Ru.Bdu.Internal; using Xunit; -namespace StellaOps.Concelier.Source.Ru.Bdu.Tests; +namespace StellaOps.Concelier.Connector.Ru.Bdu.Tests; public sealed class RuBduXmlParserTests { diff --git a/src/StellaOps.Concelier.Source.Ru.Nkcki.Tests/StellaOps.Concelier.Source.Ru.Nkcki.Tests.csproj b/src/StellaOps.Concelier.Connector.Ru.Bdu.Tests/StellaOps.Concelier.Connector.Ru.Bdu.Tests.csproj similarity index 78% rename from src/StellaOps.Concelier.Source.Ru.Nkcki.Tests/StellaOps.Concelier.Source.Ru.Nkcki.Tests.csproj rename to src/StellaOps.Concelier.Connector.Ru.Bdu.Tests/StellaOps.Concelier.Connector.Ru.Bdu.Tests.csproj index b9c786ac..1735bceb 100644 --- a/src/StellaOps.Concelier.Source.Ru.Nkcki.Tests/StellaOps.Concelier.Source.Ru.Nkcki.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.Ru.Bdu.Tests/StellaOps.Concelier.Connector.Ru.Bdu.Tests.csproj @@ -8,6 +8,6 @@ - + diff --git a/src/StellaOps.Concelier.Source.Ru.Bdu/AGENTS.md b/src/StellaOps.Concelier.Connector.Ru.Bdu/AGENTS.md similarity index 94% rename from src/StellaOps.Concelier.Source.Ru.Bdu/AGENTS.md rename to src/StellaOps.Concelier.Connector.Ru.Bdu/AGENTS.md index 6a68d795..c80fddc7 100644 --- a/src/StellaOps.Concelier.Source.Ru.Bdu/AGENTS.md +++ b/src/StellaOps.Concelier.Connector.Ru.Bdu/AGENTS.md @@ -33,6 +33,6 @@ Out of scope: - Respect upstream rate limits and mark failures with backoff. ## Tests -- Add `StellaOps.Concelier.Source.Ru.Bdu.Tests` covering fetch/parse/map with canned fixtures. +- Add `StellaOps.Concelier.Connector.Ru.Bdu.Tests` covering fetch/parse/map with canned fixtures. - Snapshot canonical advisories; support fixture regeneration via env flag. - Ensure deterministic ordering/time normalisation. diff --git a/src/StellaOps.Concelier.Source.Ru.Bdu/Configuration/RuBduOptions.cs b/src/StellaOps.Concelier.Connector.Ru.Bdu/Configuration/RuBduOptions.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Ru.Bdu/Configuration/RuBduOptions.cs rename to src/StellaOps.Concelier.Connector.Ru.Bdu/Configuration/RuBduOptions.cs index 2a278527..788c82dc 100644 --- a/src/StellaOps.Concelier.Source.Ru.Bdu/Configuration/RuBduOptions.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Bdu/Configuration/RuBduOptions.cs @@ -1,6 +1,6 @@ using System.Net; -namespace StellaOps.Concelier.Source.Ru.Bdu.Configuration; +namespace StellaOps.Concelier.Connector.Ru.Bdu.Configuration; /// /// Connector options for the Russian BDU archive ingestion pipeline. diff --git a/src/StellaOps.Concelier.Source.Ru.Bdu/Internal/RuBduCursor.cs b/src/StellaOps.Concelier.Connector.Ru.Bdu/Internal/RuBduCursor.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Ru.Bdu/Internal/RuBduCursor.cs rename to src/StellaOps.Concelier.Connector.Ru.Bdu/Internal/RuBduCursor.cs index 8dfb6df5..50f0d595 100644 --- a/src/StellaOps.Concelier.Source.Ru.Bdu/Internal/RuBduCursor.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Bdu/Internal/RuBduCursor.cs @@ -1,6 +1,6 @@ using MongoDB.Bson; -namespace StellaOps.Concelier.Source.Ru.Bdu.Internal; +namespace StellaOps.Concelier.Connector.Ru.Bdu.Internal; internal sealed record RuBduCursor( IReadOnlyCollection PendingDocuments, diff --git a/src/StellaOps.Concelier.Source.Ru.Bdu/Internal/RuBduDiagnostics.cs b/src/StellaOps.Concelier.Connector.Ru.Bdu/Internal/RuBduDiagnostics.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Ru.Bdu/Internal/RuBduDiagnostics.cs rename to src/StellaOps.Concelier.Connector.Ru.Bdu/Internal/RuBduDiagnostics.cs index 67fb0320..181a6c45 100644 --- a/src/StellaOps.Concelier.Source.Ru.Bdu/Internal/RuBduDiagnostics.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Bdu/Internal/RuBduDiagnostics.cs @@ -2,14 +2,14 @@ using System; using System.Diagnostics.Metrics; using StellaOps.Concelier.Models; -namespace StellaOps.Concelier.Source.Ru.Bdu.Internal; +namespace StellaOps.Concelier.Connector.Ru.Bdu.Internal; /// /// Emits RU-BDU specific OpenTelemetry metrics for fetch/parse/map stages. /// public sealed class RuBduDiagnostics : IDisposable { - private const string MeterName = "StellaOps.Concelier.Source.Ru.Bdu"; + private const string MeterName = "StellaOps.Concelier.Connector.Ru.Bdu"; private const string MeterVersion = "1.0.0"; private readonly Meter _meter; diff --git a/src/StellaOps.Concelier.Source.Ru.Bdu/Internal/RuBduMapper.cs b/src/StellaOps.Concelier.Connector.Ru.Bdu/Internal/RuBduMapper.cs similarity index 99% rename from src/StellaOps.Concelier.Source.Ru.Bdu/Internal/RuBduMapper.cs rename to src/StellaOps.Concelier.Connector.Ru.Bdu/Internal/RuBduMapper.cs index b2f0780e..9538d1b9 100644 --- a/src/StellaOps.Concelier.Source.Ru.Bdu/Internal/RuBduMapper.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Bdu/Internal/RuBduMapper.cs @@ -8,7 +8,7 @@ using StellaOps.Concelier.Models; using StellaOps.Concelier.Normalization.Cvss; using StellaOps.Concelier.Storage.Mongo.Documents; -namespace StellaOps.Concelier.Source.Ru.Bdu.Internal; +namespace StellaOps.Concelier.Connector.Ru.Bdu.Internal; internal static class RuBduMapper { diff --git a/src/StellaOps.Concelier.Source.Ru.Bdu/Internal/RuBduVulnerabilityDto.cs b/src/StellaOps.Concelier.Connector.Ru.Bdu/Internal/RuBduVulnerabilityDto.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Ru.Bdu/Internal/RuBduVulnerabilityDto.cs rename to src/StellaOps.Concelier.Connector.Ru.Bdu/Internal/RuBduVulnerabilityDto.cs index 59a76820..0916fadd 100644 --- a/src/StellaOps.Concelier.Source.Ru.Bdu/Internal/RuBduVulnerabilityDto.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Bdu/Internal/RuBduVulnerabilityDto.cs @@ -1,7 +1,7 @@ using System.Collections.Immutable; using System.Text.Json.Serialization; -namespace StellaOps.Concelier.Source.Ru.Bdu.Internal; +namespace StellaOps.Concelier.Connector.Ru.Bdu.Internal; internal sealed record RuBduVulnerabilityDto( string Identifier, diff --git a/src/StellaOps.Concelier.Source.Ru.Bdu/Internal/RuBduXmlParser.cs b/src/StellaOps.Concelier.Connector.Ru.Bdu/Internal/RuBduXmlParser.cs similarity index 99% rename from src/StellaOps.Concelier.Source.Ru.Bdu/Internal/RuBduXmlParser.cs rename to src/StellaOps.Concelier.Connector.Ru.Bdu/Internal/RuBduXmlParser.cs index 7d53368a..6b37d9ec 100644 --- a/src/StellaOps.Concelier.Source.Ru.Bdu/Internal/RuBduXmlParser.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Bdu/Internal/RuBduXmlParser.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Globalization; using System.Xml.Linq; -namespace StellaOps.Concelier.Source.Ru.Bdu.Internal; +namespace StellaOps.Concelier.Connector.Ru.Bdu.Internal; internal static class RuBduXmlParser { diff --git a/src/StellaOps.Concelier.Source.Ru.Bdu/Jobs.cs b/src/StellaOps.Concelier.Connector.Ru.Bdu/Jobs.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Ru.Bdu/Jobs.cs rename to src/StellaOps.Concelier.Connector.Ru.Bdu/Jobs.cs index c6ad2556..1e8452c2 100644 --- a/src/StellaOps.Concelier.Source.Ru.Bdu/Jobs.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Bdu/Jobs.cs @@ -1,6 +1,6 @@ using StellaOps.Concelier.Core.Jobs; -namespace StellaOps.Concelier.Source.Ru.Bdu; +namespace StellaOps.Concelier.Connector.Ru.Bdu; internal static class RuBduJobKinds { diff --git a/src/StellaOps.Concelier.Connector.Ru.Bdu/Properties/AssemblyInfo.cs b/src/StellaOps.Concelier.Connector.Ru.Bdu/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..c8c9bb98 --- /dev/null +++ b/src/StellaOps.Concelier.Connector.Ru.Bdu/Properties/AssemblyInfo.cs @@ -0,0 +1,3 @@ +using System.Runtime.CompilerServices; + +[assembly: InternalsVisibleTo("StellaOps.Concelier.Connector.Ru.Bdu.Tests")] diff --git a/src/StellaOps.Concelier.Source.Ru.Bdu/README.md b/src/StellaOps.Concelier.Connector.Ru.Bdu/README.md similarity index 91% rename from src/StellaOps.Concelier.Source.Ru.Bdu/README.md rename to src/StellaOps.Concelier.Connector.Ru.Bdu/README.md index 29c53fa1..aa378f50 100644 --- a/src/StellaOps.Concelier.Source.Ru.Bdu/README.md +++ b/src/StellaOps.Concelier.Connector.Ru.Bdu/README.md @@ -21,7 +21,7 @@ The connector keeps a local cache (`cache/ru-bdu/vulxml.zip`) so transient fetch ## Telemetry -The connector publishes an OpenTelemetry meter named `StellaOps.Concelier.Source.Ru.Bdu`. Instruments include: +The connector publishes an OpenTelemetry meter named `StellaOps.Concelier.Connector.Ru.Bdu`. Instruments include: - `ru.bdu.fetch.*` – `attempts`, `success`, `failures`, `not_modified`, `cache_fallbacks`, and histogram `ru.bdu.fetch.documents`. - `ru.bdu.parse.*` – counters for success/failures plus histograms tracking vulnerable software, external identifiers, and source reference counts per DTO. @@ -31,10 +31,10 @@ Use these metrics to alert on repeated cache fallbacks, sustained parse failures ## Regression fixtures -Deterministic fixtures live under `src/StellaOps.Concelier.Source.Ru.Bdu.Tests/Fixtures`. Run +Deterministic fixtures live under `src/StellaOps.Concelier.Connector.Ru.Bdu.Tests/Fixtures`. Run ```bash -dotnet test src/StellaOps.Concelier.Source.Ru.Bdu.Tests +dotnet test src/StellaOps.Concelier.Connector.Ru.Bdu.Tests ``` to execute the RU BDU snapshot suite, and set `UPDATE_BDU_FIXTURES=1` to refresh stored snapshots when ingest logic changes. The harness records the fetch requests, documents, DTOs, advisories, and state cursor to guarantee reproducible pipelines across machines. diff --git a/src/StellaOps.Concelier.Source.Ru.Bdu/RuBduConnector.cs b/src/StellaOps.Concelier.Connector.Ru.Bdu/RuBduConnector.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Ru.Bdu/RuBduConnector.cs rename to src/StellaOps.Concelier.Connector.Ru.Bdu/RuBduConnector.cs index 4bbc2166..e3608cf6 100644 --- a/src/StellaOps.Concelier.Source.Ru.Bdu/RuBduConnector.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Bdu/RuBduConnector.cs @@ -12,17 +12,17 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using MongoDB.Bson; using StellaOps.Concelier.Normalization.Cvss; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Ru.Bdu.Configuration; -using StellaOps.Concelier.Source.Ru.Bdu.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Ru.Bdu.Configuration; +using StellaOps.Concelier.Connector.Ru.Bdu.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Ru.Bdu; +namespace StellaOps.Concelier.Connector.Ru.Bdu; public sealed class RuBduConnector : IFeedConnector { diff --git a/src/StellaOps.Concelier.Source.Ru.Bdu/RuBduConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.Ru.Bdu/RuBduConnectorPlugin.cs similarity index 91% rename from src/StellaOps.Concelier.Source.Ru.Bdu/RuBduConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.Ru.Bdu/RuBduConnectorPlugin.cs index 346facce..e8188aae 100644 --- a/src/StellaOps.Concelier.Source.Ru.Bdu/RuBduConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Bdu/RuBduConnectorPlugin.cs @@ -1,7 +1,7 @@ using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Ru.Bdu; +namespace StellaOps.Concelier.Connector.Ru.Bdu; public sealed class RuBduConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.Ru.Bdu/RuBduDependencyInjectionRoutine.cs b/src/StellaOps.Concelier.Connector.Ru.Bdu/RuBduDependencyInjectionRoutine.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Ru.Bdu/RuBduDependencyInjectionRoutine.cs rename to src/StellaOps.Concelier.Connector.Ru.Bdu/RuBduDependencyInjectionRoutine.cs index e8d85c78..d675db6a 100644 --- a/src/StellaOps.Concelier.Source.Ru.Bdu/RuBduDependencyInjectionRoutine.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Bdu/RuBduDependencyInjectionRoutine.cs @@ -2,9 +2,9 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using StellaOps.DependencyInjection; using StellaOps.Concelier.Core.Jobs; -using StellaOps.Concelier.Source.Ru.Bdu.Configuration; +using StellaOps.Concelier.Connector.Ru.Bdu.Configuration; -namespace StellaOps.Concelier.Source.Ru.Bdu; +namespace StellaOps.Concelier.Connector.Ru.Bdu; public sealed class RuBduDependencyInjectionRoutine : IDependencyInjectionRoutine { diff --git a/src/StellaOps.Concelier.Source.Ru.Bdu/RuBduServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.Ru.Bdu/RuBduServiceCollectionExtensions.cs similarity index 88% rename from src/StellaOps.Concelier.Source.Ru.Bdu/RuBduServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.Ru.Bdu/RuBduServiceCollectionExtensions.cs index 2afafa3e..ac416a3c 100644 --- a/src/StellaOps.Concelier.Source.Ru.Bdu/RuBduServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Bdu/RuBduServiceCollectionExtensions.cs @@ -1,11 +1,11 @@ using System.Net; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Ru.Bdu.Configuration; -using StellaOps.Concelier.Source.Ru.Bdu.Internal; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Ru.Bdu.Configuration; +using StellaOps.Concelier.Connector.Ru.Bdu.Internal; -namespace StellaOps.Concelier.Source.Ru.Bdu; +namespace StellaOps.Concelier.Connector.Ru.Bdu; public static class RuBduServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Source.Ru.Bdu/StellaOps.Concelier.Source.Ru.Bdu.csproj b/src/StellaOps.Concelier.Connector.Ru.Bdu/StellaOps.Concelier.Connector.Ru.Bdu.csproj similarity index 86% rename from src/StellaOps.Concelier.Source.Ru.Bdu/StellaOps.Concelier.Source.Ru.Bdu.csproj rename to src/StellaOps.Concelier.Connector.Ru.Bdu/StellaOps.Concelier.Connector.Ru.Bdu.csproj index f89c8e1c..79cae94c 100644 --- a/src/StellaOps.Concelier.Source.Ru.Bdu/StellaOps.Concelier.Source.Ru.Bdu.csproj +++ b/src/StellaOps.Concelier.Connector.Ru.Bdu/StellaOps.Concelier.Connector.Ru.Bdu.csproj @@ -10,7 +10,7 @@ - + diff --git a/src/StellaOps.Concelier.Source.Ru.Bdu/TASKS.md b/src/StellaOps.Concelier.Connector.Ru.Bdu/TASKS.md similarity index 95% rename from src/StellaOps.Concelier.Source.Ru.Bdu/TASKS.md rename to src/StellaOps.Concelier.Connector.Ru.Bdu/TASKS.md index 84c664eb..d686b5ad 100644 --- a/src/StellaOps.Concelier.Source.Ru.Bdu/TASKS.md +++ b/src/StellaOps.Concelier.Connector.Ru.Bdu/TASKS.md @@ -7,5 +7,5 @@ |FEEDCONN-RUBDU-02-004 Canonical mapping & range primitives|BE-Conn-BDU|Models|**DONE (2025-10-14)** – `RuBduMapper` emits vendor/ICS packages with normalized `ru-bdu.raw` rules, dual status provenance, alias/reference hydration (CVE, external, source), and CVSS severity normalisation.| |FEEDCONN-RUBDU-02-005 Deterministic fixtures & regression tests|QA|Testing|**DONE (2025-10-14)** – Added connector harness snapshot suite with canned archive, state/documents/dtos/advisories snapshots under `Fixtures/`, gated by `UPDATE_BDU_FIXTURES`.| |FEEDCONN-RUBDU-02-006 Telemetry & documentation|DevEx|Docs|**DONE (2025-10-14)** – Introduced `RuBduDiagnostics` meter (fetch/parse/map counters & histograms) and authored connector README covering configuration, trusted roots, telemetry, and offline behaviour.| -|FEEDCONN-RUBDU-02-007 Access & export options assessment|BE-Conn-BDU|Research|**DONE (2025-10-14)** – Documented archive access constraints, offline mirroring expectations, and export packaging in `src/StellaOps.Concelier.Source.Ru.Bdu/README.md` + flagged Offline Kit bundling requirements.| +|FEEDCONN-RUBDU-02-007 Access & export options assessment|BE-Conn-BDU|Research|**DONE (2025-10-14)** – Documented archive access constraints, offline mirroring expectations, and export packaging in `src/StellaOps.Concelier.Connector.Ru.Bdu/README.md` + flagged Offline Kit bundling requirements.| |FEEDCONN-RUBDU-02-008 Trusted root onboarding plan|BE-Conn-BDU|Source.Common|**DONE (2025-10-14)** – Validated Russian Trusted Root/Sub CA bundle wiring (`certificates/russian_trusted_bundle.pem`), updated Offline Kit guidance, and surfaced `concelier:httpClients:source.bdu:trustedRootPaths` sample configuration.| diff --git a/src/StellaOps.Concelier.Source.Ru.Nkcki.Tests/Fixtures/bulletin-legacy.json.zip b/src/StellaOps.Concelier.Connector.Ru.Nkcki.Tests/Fixtures/bulletin-legacy.json.zip similarity index 100% rename from src/StellaOps.Concelier.Source.Ru.Nkcki.Tests/Fixtures/bulletin-legacy.json.zip rename to src/StellaOps.Concelier.Connector.Ru.Nkcki.Tests/Fixtures/bulletin-legacy.json.zip diff --git a/src/StellaOps.Concelier.Source.Ru.Nkcki.Tests/Fixtures/bulletin-sample.json.zip b/src/StellaOps.Concelier.Connector.Ru.Nkcki.Tests/Fixtures/bulletin-sample.json.zip similarity index 100% rename from src/StellaOps.Concelier.Source.Ru.Nkcki.Tests/Fixtures/bulletin-sample.json.zip rename to src/StellaOps.Concelier.Connector.Ru.Nkcki.Tests/Fixtures/bulletin-sample.json.zip diff --git a/src/StellaOps.Concelier.Source.Ru.Nkcki.Tests/Fixtures/listing-page2.html b/src/StellaOps.Concelier.Connector.Ru.Nkcki.Tests/Fixtures/listing-page2.html similarity index 100% rename from src/StellaOps.Concelier.Source.Ru.Nkcki.Tests/Fixtures/listing-page2.html rename to src/StellaOps.Concelier.Connector.Ru.Nkcki.Tests/Fixtures/listing-page2.html diff --git a/src/StellaOps.Concelier.Source.Ru.Nkcki.Tests/Fixtures/listing.html b/src/StellaOps.Concelier.Connector.Ru.Nkcki.Tests/Fixtures/listing.html similarity index 100% rename from src/StellaOps.Concelier.Source.Ru.Nkcki.Tests/Fixtures/listing.html rename to src/StellaOps.Concelier.Connector.Ru.Nkcki.Tests/Fixtures/listing.html diff --git a/src/StellaOps.Concelier.Source.Ru.Nkcki.Tests/Fixtures/nkcki-advisories.snapshot.json b/src/StellaOps.Concelier.Connector.Ru.Nkcki.Tests/Fixtures/nkcki-advisories.snapshot.json similarity index 100% rename from src/StellaOps.Concelier.Source.Ru.Nkcki.Tests/Fixtures/nkcki-advisories.snapshot.json rename to src/StellaOps.Concelier.Connector.Ru.Nkcki.Tests/Fixtures/nkcki-advisories.snapshot.json diff --git a/src/StellaOps.Concelier.Source.Ru.Nkcki.Tests/RuNkckiConnectorTests.cs b/src/StellaOps.Concelier.Connector.Ru.Nkcki.Tests/RuNkckiConnectorTests.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Ru.Nkcki.Tests/RuNkckiConnectorTests.cs rename to src/StellaOps.Concelier.Connector.Ru.Nkcki.Tests/RuNkckiConnectorTests.cs index 3ddee660..de6b1c88 100644 --- a/src/StellaOps.Concelier.Source.Ru.Nkcki.Tests/RuNkckiConnectorTests.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Nkcki.Tests/RuNkckiConnectorTests.cs @@ -14,11 +14,11 @@ using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Options; using Microsoft.Extensions.Time.Testing; using MongoDB.Bson; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Common.Testing; -using StellaOps.Concelier.Source.Ru.Nkcki; -using StellaOps.Concelier.Source.Ru.Nkcki.Configuration; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Common.Testing; +using StellaOps.Concelier.Connector.Ru.Nkcki; +using StellaOps.Concelier.Connector.Ru.Nkcki.Configuration; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; @@ -27,7 +27,7 @@ using StellaOps.Concelier.Models; using MongoDB.Driver; using Xunit; -namespace StellaOps.Concelier.Source.Ru.Nkcki.Tests; +namespace StellaOps.Concelier.Connector.Ru.Nkcki.Tests; [Collection("mongo-fixture")] public sealed class RuNkckiConnectorTests : IAsyncLifetime @@ -272,7 +272,7 @@ public sealed class RuNkckiConnectorTests : IAsyncLifetime var current = AppContext.BaseDirectory; while (!string.IsNullOrEmpty(current)) { - var candidate = Path.Combine(current, "StellaOps.Concelier.Source.Ru.Nkcki.Tests.csproj"); + var candidate = Path.Combine(current, "StellaOps.Concelier.Connector.Ru.Nkcki.Tests.csproj"); if (File.Exists(candidate)) { return current; diff --git a/src/StellaOps.Concelier.Source.Ru.Nkcki.Tests/RuNkckiJsonParserTests.cs b/src/StellaOps.Concelier.Connector.Ru.Nkcki.Tests/RuNkckiJsonParserTests.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Ru.Nkcki.Tests/RuNkckiJsonParserTests.cs rename to src/StellaOps.Concelier.Connector.Ru.Nkcki.Tests/RuNkckiJsonParserTests.cs index d81f6c5c..6d323413 100644 --- a/src/StellaOps.Concelier.Source.Ru.Nkcki.Tests/RuNkckiJsonParserTests.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Nkcki.Tests/RuNkckiJsonParserTests.cs @@ -1,8 +1,8 @@ using System.Text.Json; -using StellaOps.Concelier.Source.Ru.Nkcki.Internal; +using StellaOps.Concelier.Connector.Ru.Nkcki.Internal; using Xunit; -namespace StellaOps.Concelier.Source.Ru.Nkcki.Tests; +namespace StellaOps.Concelier.Connector.Ru.Nkcki.Tests; public sealed class RuNkckiJsonParserTests { diff --git a/src/StellaOps.Concelier.Source.Ru.Nkcki.Tests/RuNkckiMapperTests.cs b/src/StellaOps.Concelier.Connector.Ru.Nkcki.Tests/RuNkckiMapperTests.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Ru.Nkcki.Tests/RuNkckiMapperTests.cs rename to src/StellaOps.Concelier.Connector.Ru.Nkcki.Tests/RuNkckiMapperTests.cs index 389e3080..de8e1fa2 100644 --- a/src/StellaOps.Concelier.Source.Ru.Nkcki.Tests/RuNkckiMapperTests.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Nkcki.Tests/RuNkckiMapperTests.cs @@ -1,13 +1,13 @@ using System.Collections.Immutable; using MongoDB.Bson; -using StellaOps.Concelier.Source.Common; +using StellaOps.Concelier.Connector.Common; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Ru.Nkcki.Internal; +using StellaOps.Concelier.Connector.Ru.Nkcki.Internal; using StellaOps.Concelier.Storage.Mongo.Documents; using Xunit; using System.Reflection; -namespace StellaOps.Concelier.Source.Ru.Nkcki.Tests; +namespace StellaOps.Concelier.Connector.Ru.Nkcki.Tests; public sealed class RuNkckiMapperTests { diff --git a/src/StellaOps.Concelier.Source.Ru.Bdu.Tests/StellaOps.Concelier.Source.Ru.Bdu.Tests.csproj b/src/StellaOps.Concelier.Connector.Ru.Nkcki.Tests/StellaOps.Concelier.Connector.Ru.Nkcki.Tests.csproj similarity index 78% rename from src/StellaOps.Concelier.Source.Ru.Bdu.Tests/StellaOps.Concelier.Source.Ru.Bdu.Tests.csproj rename to src/StellaOps.Concelier.Connector.Ru.Nkcki.Tests/StellaOps.Concelier.Connector.Ru.Nkcki.Tests.csproj index ff2d01bd..c810efb5 100644 --- a/src/StellaOps.Concelier.Source.Ru.Bdu.Tests/StellaOps.Concelier.Source.Ru.Bdu.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.Ru.Nkcki.Tests/StellaOps.Concelier.Connector.Ru.Nkcki.Tests.csproj @@ -8,6 +8,6 @@ - + diff --git a/src/StellaOps.Concelier.Source.Ru.Nkcki/AGENTS.md b/src/StellaOps.Concelier.Connector.Ru.Nkcki/AGENTS.md similarity index 94% rename from src/StellaOps.Concelier.Source.Ru.Nkcki/AGENTS.md rename to src/StellaOps.Concelier.Connector.Ru.Nkcki/AGENTS.md index a6d6ad40..e2476e89 100644 --- a/src/StellaOps.Concelier.Source.Ru.Nkcki/AGENTS.md +++ b/src/StellaOps.Concelier.Connector.Ru.Nkcki/AGENTS.md @@ -33,6 +33,6 @@ Out of scope: - Respect upstream rate limiting/politeness. ## Tests -- Add `StellaOps.Concelier.Source.Ru.Nkcki.Tests` for fetch/parse/map with canned fixtures. +- Add `StellaOps.Concelier.Connector.Ru.Nkcki.Tests` for fetch/parse/map with canned fixtures. - Snapshot canonical advisories; support fixture regeneration via env flag. - Ensure deterministic ordering/time normalisation. diff --git a/src/StellaOps.Concelier.Source.Ru.Nkcki/Configuration/RuNkckiOptions.cs b/src/StellaOps.Concelier.Connector.Ru.Nkcki/Configuration/RuNkckiOptions.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Ru.Nkcki/Configuration/RuNkckiOptions.cs rename to src/StellaOps.Concelier.Connector.Ru.Nkcki/Configuration/RuNkckiOptions.cs index 0a1adde8..f65989a2 100644 --- a/src/StellaOps.Concelier.Source.Ru.Nkcki/Configuration/RuNkckiOptions.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Nkcki/Configuration/RuNkckiOptions.cs @@ -1,6 +1,6 @@ using System.Net; -namespace StellaOps.Concelier.Source.Ru.Nkcki.Configuration; +namespace StellaOps.Concelier.Connector.Ru.Nkcki.Configuration; /// /// Connector options for the Russian NKTsKI bulletin ingestion pipeline. diff --git a/src/StellaOps.Concelier.Source.Ru.Nkcki/Internal/RuNkckiCursor.cs b/src/StellaOps.Concelier.Connector.Ru.Nkcki/Internal/RuNkckiCursor.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Ru.Nkcki/Internal/RuNkckiCursor.cs rename to src/StellaOps.Concelier.Connector.Ru.Nkcki/Internal/RuNkckiCursor.cs index 1cffddcf..a49d0b80 100644 --- a/src/StellaOps.Concelier.Source.Ru.Nkcki/Internal/RuNkckiCursor.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Nkcki/Internal/RuNkckiCursor.cs @@ -1,6 +1,6 @@ using MongoDB.Bson; -namespace StellaOps.Concelier.Source.Ru.Nkcki.Internal; +namespace StellaOps.Concelier.Connector.Ru.Nkcki.Internal; internal sealed record RuNkckiCursor( IReadOnlyCollection PendingDocuments, diff --git a/src/StellaOps.Concelier.Source.Ru.Nkcki/Internal/RuNkckiDiagnostics.cs b/src/StellaOps.Concelier.Connector.Ru.Nkcki/Internal/RuNkckiDiagnostics.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Ru.Nkcki/Internal/RuNkckiDiagnostics.cs rename to src/StellaOps.Concelier.Connector.Ru.Nkcki/Internal/RuNkckiDiagnostics.cs index 95c83efb..c2af7c87 100644 --- a/src/StellaOps.Concelier.Source.Ru.Nkcki/Internal/RuNkckiDiagnostics.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Nkcki/Internal/RuNkckiDiagnostics.cs @@ -2,14 +2,14 @@ using System; using System.Collections.Generic; using System.Diagnostics.Metrics; -namespace StellaOps.Concelier.Source.Ru.Nkcki.Internal; +namespace StellaOps.Concelier.Connector.Ru.Nkcki.Internal; /// /// Emits telemetry counters for the NKCKI connector lifecycle. /// public sealed class RuNkckiDiagnostics : IDisposable { - private const string MeterName = "StellaOps.Concelier.Source.Ru.Nkcki"; + private const string MeterName = "StellaOps.Concelier.Connector.Ru.Nkcki"; private const string MeterVersion = "1.0.0"; private readonly Meter _meter; diff --git a/src/StellaOps.Concelier.Source.Ru.Nkcki/Internal/RuNkckiJsonParser.cs b/src/StellaOps.Concelier.Connector.Ru.Nkcki/Internal/RuNkckiJsonParser.cs similarity index 99% rename from src/StellaOps.Concelier.Source.Ru.Nkcki/Internal/RuNkckiJsonParser.cs rename to src/StellaOps.Concelier.Connector.Ru.Nkcki/Internal/RuNkckiJsonParser.cs index fe1eec36..0dbac667 100644 --- a/src/StellaOps.Concelier.Source.Ru.Nkcki/Internal/RuNkckiJsonParser.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Nkcki/Internal/RuNkckiJsonParser.cs @@ -6,7 +6,7 @@ using System.Linq; using System.Text.Json; using System.Text.RegularExpressions; -namespace StellaOps.Concelier.Source.Ru.Nkcki.Internal; +namespace StellaOps.Concelier.Connector.Ru.Nkcki.Internal; internal static class RuNkckiJsonParser { diff --git a/src/StellaOps.Concelier.Source.Ru.Nkcki/Internal/RuNkckiMapper.cs b/src/StellaOps.Concelier.Connector.Ru.Nkcki/Internal/RuNkckiMapper.cs similarity index 99% rename from src/StellaOps.Concelier.Source.Ru.Nkcki/Internal/RuNkckiMapper.cs rename to src/StellaOps.Concelier.Connector.Ru.Nkcki/Internal/RuNkckiMapper.cs index a15527e5..a320ac79 100644 --- a/src/StellaOps.Concelier.Source.Ru.Nkcki/Internal/RuNkckiMapper.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Nkcki/Internal/RuNkckiMapper.cs @@ -7,7 +7,7 @@ using StellaOps.Concelier.Normalization.Cvss; using StellaOps.Concelier.Normalization.SemVer; using StellaOps.Concelier.Storage.Mongo.Documents; -namespace StellaOps.Concelier.Source.Ru.Nkcki.Internal; +namespace StellaOps.Concelier.Connector.Ru.Nkcki.Internal; internal static class RuNkckiMapper { diff --git a/src/StellaOps.Concelier.Source.Ru.Nkcki/Internal/RuNkckiVulnerabilityDto.cs b/src/StellaOps.Concelier.Connector.Ru.Nkcki/Internal/RuNkckiVulnerabilityDto.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Ru.Nkcki/Internal/RuNkckiVulnerabilityDto.cs rename to src/StellaOps.Concelier.Connector.Ru.Nkcki/Internal/RuNkckiVulnerabilityDto.cs index a8499164..463dcc19 100644 --- a/src/StellaOps.Concelier.Source.Ru.Nkcki/Internal/RuNkckiVulnerabilityDto.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Nkcki/Internal/RuNkckiVulnerabilityDto.cs @@ -1,7 +1,7 @@ using System.Collections.Immutable; using System.Text.Json.Serialization; -namespace StellaOps.Concelier.Source.Ru.Nkcki.Internal; +namespace StellaOps.Concelier.Connector.Ru.Nkcki.Internal; internal sealed record RuNkckiVulnerabilityDto( string? FstecId, diff --git a/src/StellaOps.Concelier.Source.Ru.Nkcki/Jobs.cs b/src/StellaOps.Concelier.Connector.Ru.Nkcki/Jobs.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Ru.Nkcki/Jobs.cs rename to src/StellaOps.Concelier.Connector.Ru.Nkcki/Jobs.cs index 56eeb7b8..fcf537d4 100644 --- a/src/StellaOps.Concelier.Source.Ru.Nkcki/Jobs.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Nkcki/Jobs.cs @@ -1,6 +1,6 @@ using StellaOps.Concelier.Core.Jobs; -namespace StellaOps.Concelier.Source.Ru.Nkcki; +namespace StellaOps.Concelier.Connector.Ru.Nkcki; internal static class RuNkckiJobKinds { diff --git a/src/StellaOps.Concelier.Connector.Ru.Nkcki/Properties/AssemblyInfo.cs b/src/StellaOps.Concelier.Connector.Ru.Nkcki/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..bf494fb8 --- /dev/null +++ b/src/StellaOps.Concelier.Connector.Ru.Nkcki/Properties/AssemblyInfo.cs @@ -0,0 +1,3 @@ +using System.Runtime.CompilerServices; + +[assembly: InternalsVisibleTo("StellaOps.Concelier.Connector.Ru.Nkcki.Tests")] diff --git a/src/StellaOps.Concelier.Source.Ru.Nkcki/RuNkckiConnector.cs b/src/StellaOps.Concelier.Connector.Ru.Nkcki/RuNkckiConnector.cs similarity index 99% rename from src/StellaOps.Concelier.Source.Ru.Nkcki/RuNkckiConnector.cs rename to src/StellaOps.Concelier.Connector.Ru.Nkcki/RuNkckiConnector.cs index 30660a34..d477166d 100644 --- a/src/StellaOps.Concelier.Source.Ru.Nkcki/RuNkckiConnector.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Nkcki/RuNkckiConnector.cs @@ -12,17 +12,17 @@ using AngleSharp.Html.Parser; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using MongoDB.Bson; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Ru.Nkcki.Configuration; -using StellaOps.Concelier.Source.Ru.Nkcki.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Ru.Nkcki.Configuration; +using StellaOps.Concelier.Connector.Ru.Nkcki.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Ru.Nkcki; +namespace StellaOps.Concelier.Connector.Ru.Nkcki; public sealed class RuNkckiConnector : IFeedConnector { diff --git a/src/StellaOps.Concelier.Source.Ru.Nkcki/RuNkckiConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.Ru.Nkcki/RuNkckiConnectorPlugin.cs similarity index 91% rename from src/StellaOps.Concelier.Source.Ru.Nkcki/RuNkckiConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.Ru.Nkcki/RuNkckiConnectorPlugin.cs index f7a3a7fb..bf28074c 100644 --- a/src/StellaOps.Concelier.Source.Ru.Nkcki/RuNkckiConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Nkcki/RuNkckiConnectorPlugin.cs @@ -1,7 +1,7 @@ using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Ru.Nkcki; +namespace StellaOps.Concelier.Connector.Ru.Nkcki; public sealed class RuNkckiConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.Ru.Nkcki/RuNkckiDependencyInjectionRoutine.cs b/src/StellaOps.Concelier.Connector.Ru.Nkcki/RuNkckiDependencyInjectionRoutine.cs similarity index 93% rename from src/StellaOps.Concelier.Source.Ru.Nkcki/RuNkckiDependencyInjectionRoutine.cs rename to src/StellaOps.Concelier.Connector.Ru.Nkcki/RuNkckiDependencyInjectionRoutine.cs index f3f641ab..5ca81b03 100644 --- a/src/StellaOps.Concelier.Source.Ru.Nkcki/RuNkckiDependencyInjectionRoutine.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Nkcki/RuNkckiDependencyInjectionRoutine.cs @@ -2,9 +2,9 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using StellaOps.DependencyInjection; using StellaOps.Concelier.Core.Jobs; -using StellaOps.Concelier.Source.Ru.Nkcki.Configuration; +using StellaOps.Concelier.Connector.Ru.Nkcki.Configuration; -namespace StellaOps.Concelier.Source.Ru.Nkcki; +namespace StellaOps.Concelier.Connector.Ru.Nkcki; public sealed class RuNkckiDependencyInjectionRoutine : IDependencyInjectionRoutine { diff --git a/src/StellaOps.Concelier.Source.Ru.Nkcki/RuNkckiServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.Ru.Nkcki/RuNkckiServiceCollectionExtensions.cs similarity index 89% rename from src/StellaOps.Concelier.Source.Ru.Nkcki/RuNkckiServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.Ru.Nkcki/RuNkckiServiceCollectionExtensions.cs index f45530c9..9c11d66a 100644 --- a/src/StellaOps.Concelier.Source.Ru.Nkcki/RuNkckiServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.Ru.Nkcki/RuNkckiServiceCollectionExtensions.cs @@ -2,11 +2,11 @@ using System.Net; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Ru.Nkcki.Configuration; -using StellaOps.Concelier.Source.Ru.Nkcki.Internal; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Ru.Nkcki.Configuration; +using StellaOps.Concelier.Connector.Ru.Nkcki.Internal; -namespace StellaOps.Concelier.Source.Ru.Nkcki; +namespace StellaOps.Concelier.Connector.Ru.Nkcki; public static class RuNkckiServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Source.Ru.Nkcki/StellaOps.Concelier.Source.Ru.Nkcki.csproj b/src/StellaOps.Concelier.Connector.Ru.Nkcki/StellaOps.Concelier.Connector.Ru.Nkcki.csproj similarity index 87% rename from src/StellaOps.Concelier.Source.Ru.Nkcki/StellaOps.Concelier.Source.Ru.Nkcki.csproj rename to src/StellaOps.Concelier.Connector.Ru.Nkcki/StellaOps.Concelier.Connector.Ru.Nkcki.csproj index fafc198f..def3d417 100644 --- a/src/StellaOps.Concelier.Source.Ru.Nkcki/StellaOps.Concelier.Source.Ru.Nkcki.csproj +++ b/src/StellaOps.Concelier.Connector.Ru.Nkcki/StellaOps.Concelier.Connector.Ru.Nkcki.csproj @@ -14,7 +14,7 @@ - + diff --git a/src/StellaOps.Concelier.Source.Ru.Nkcki/TASKS.md b/src/StellaOps.Concelier.Connector.Ru.Nkcki/TASKS.md similarity index 100% rename from src/StellaOps.Concelier.Source.Ru.Nkcki/TASKS.md rename to src/StellaOps.Concelier.Connector.Ru.Nkcki/TASKS.md diff --git a/src/StellaOps.Concelier.Source.Vndr.Adobe.Tests/Adobe/AdobeConnectorFetchTests.cs b/src/StellaOps.Concelier.Connector.Vndr.Adobe.Tests/Adobe/AdobeConnectorFetchTests.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Vndr.Adobe.Tests/Adobe/AdobeConnectorFetchTests.cs rename to src/StellaOps.Concelier.Connector.Vndr.Adobe.Tests/Adobe/AdobeConnectorFetchTests.cs index 249ce9e2..3c7b58a2 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Adobe.Tests/Adobe/AdobeConnectorFetchTests.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Adobe.Tests/Adobe/AdobeConnectorFetchTests.cs @@ -17,11 +17,11 @@ using Microsoft.Extensions.Time.Testing; using MongoDB.Bson; using MongoDB.Driver; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Common.Testing; -using StellaOps.Concelier.Source.Vndr.Adobe; -using StellaOps.Concelier.Source.Vndr.Adobe.Configuration; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Common.Testing; +using StellaOps.Concelier.Connector.Vndr.Adobe; +using StellaOps.Concelier.Connector.Vndr.Adobe.Configuration; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; @@ -29,7 +29,7 @@ using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Concelier.Storage.Mongo.PsirtFlags; using StellaOps.Concelier.Testing; -namespace StellaOps.Concelier.Source.Vndr.Adobe.Tests; +namespace StellaOps.Concelier.Connector.Vndr.Adobe.Tests; [Collection("mongo-fixture")] public sealed class AdobeConnectorFetchTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.Vndr.Adobe.Tests/Adobe/Fixtures/adobe-advisories.snapshot.json b/src/StellaOps.Concelier.Connector.Vndr.Adobe.Tests/Adobe/Fixtures/adobe-advisories.snapshot.json similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Adobe.Tests/Adobe/Fixtures/adobe-advisories.snapshot.json rename to src/StellaOps.Concelier.Connector.Vndr.Adobe.Tests/Adobe/Fixtures/adobe-advisories.snapshot.json diff --git a/src/StellaOps.Concelier.Source.Vndr.Adobe.Tests/Adobe/Fixtures/adobe-detail-apsb25-85.html b/src/StellaOps.Concelier.Connector.Vndr.Adobe.Tests/Adobe/Fixtures/adobe-detail-apsb25-85.html similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Adobe.Tests/Adobe/Fixtures/adobe-detail-apsb25-85.html rename to src/StellaOps.Concelier.Connector.Vndr.Adobe.Tests/Adobe/Fixtures/adobe-detail-apsb25-85.html diff --git a/src/StellaOps.Concelier.Source.Vndr.Adobe.Tests/Adobe/Fixtures/adobe-detail-apsb25-87.html b/src/StellaOps.Concelier.Connector.Vndr.Adobe.Tests/Adobe/Fixtures/adobe-detail-apsb25-87.html similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Adobe.Tests/Adobe/Fixtures/adobe-detail-apsb25-87.html rename to src/StellaOps.Concelier.Connector.Vndr.Adobe.Tests/Adobe/Fixtures/adobe-detail-apsb25-87.html diff --git a/src/StellaOps.Concelier.Source.Vndr.Adobe.Tests/Adobe/Fixtures/adobe-index.html b/src/StellaOps.Concelier.Connector.Vndr.Adobe.Tests/Adobe/Fixtures/adobe-index.html similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Adobe.Tests/Adobe/Fixtures/adobe-index.html rename to src/StellaOps.Concelier.Connector.Vndr.Adobe.Tests/Adobe/Fixtures/adobe-index.html diff --git a/src/StellaOps.Concelier.Source.Vndr.Adobe.Tests/StellaOps.Concelier.Source.Vndr.Adobe.Tests.csproj b/src/StellaOps.Concelier.Connector.Vndr.Adobe.Tests/StellaOps.Concelier.Connector.Vndr.Adobe.Tests.csproj similarity index 74% rename from src/StellaOps.Concelier.Source.Vndr.Adobe.Tests/StellaOps.Concelier.Source.Vndr.Adobe.Tests.csproj rename to src/StellaOps.Concelier.Connector.Vndr.Adobe.Tests/StellaOps.Concelier.Connector.Vndr.Adobe.Tests.csproj index 21bbb168..801f1a05 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Adobe.Tests/StellaOps.Concelier.Source.Vndr.Adobe.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.Vndr.Adobe.Tests/StellaOps.Concelier.Connector.Vndr.Adobe.Tests.csproj @@ -6,8 +6,8 @@ - - + + diff --git a/src/StellaOps.Concelier.Source.Vndr.Adobe/AGENTS.md b/src/StellaOps.Concelier.Connector.Vndr.Adobe/AGENTS.md similarity index 95% rename from src/StellaOps.Concelier.Source.Vndr.Adobe/AGENTS.md rename to src/StellaOps.Concelier.Connector.Vndr.Adobe/AGENTS.md index 4025641c..0e8afc6a 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Adobe/AGENTS.md +++ b/src/StellaOps.Concelier.Connector.Vndr.Adobe/AGENTS.md @@ -23,6 +23,6 @@ Out: signing, package artifact downloads, non-Adobe product truth. - Metrics: SourceDiagnostics produces `concelier.source.http.*` counters/histograms tagged `concelier.source=adobe`; operators filter on that tag to monitor fetch counts, parse failures, map affected counts, and cursor movement without bespoke metric names. - Logs: advisory ids, product counts, extraction timings; hosts allowlisted; no secret logging. ## Tests -- Author and review coverage in `../StellaOps.Concelier.Source.Vndr.Adobe.Tests`. +- Author and review coverage in `../StellaOps.Concelier.Connector.Vndr.Adobe.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. diff --git a/src/StellaOps.Concelier.Source.Vndr.Adobe/AdobeConnector.cs b/src/StellaOps.Concelier.Connector.Vndr.Adobe/AdobeConnector.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Vndr.Adobe/AdobeConnector.cs rename to src/StellaOps.Concelier.Connector.Vndr.Adobe/AdobeConnector.cs index 4e4cc9f5..566952bc 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Adobe/AdobeConnector.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Adobe/AdobeConnector.cs @@ -9,12 +9,12 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Json.Schema; using MongoDB.Bson; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Common.Json; -using StellaOps.Concelier.Source.Common.Packages; -using StellaOps.Concelier.Source.Vndr.Adobe.Configuration; -using StellaOps.Concelier.Source.Vndr.Adobe.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Common.Json; +using StellaOps.Concelier.Connector.Common.Packages; +using StellaOps.Concelier.Connector.Vndr.Adobe.Configuration; +using StellaOps.Concelier.Connector.Vndr.Adobe.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; @@ -23,7 +23,7 @@ using StellaOps.Concelier.Storage.Mongo.PsirtFlags; using StellaOps.Concelier.Models; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Vndr.Adobe; +namespace StellaOps.Concelier.Connector.Vndr.Adobe; public sealed class AdobeConnector : IFeedConnector { diff --git a/src/StellaOps.Concelier.Source.Vndr.Adobe/AdobeConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.Vndr.Adobe/AdobeConnectorPlugin.cs similarity index 88% rename from src/StellaOps.Concelier.Source.Vndr.Adobe/AdobeConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.Vndr.Adobe/AdobeConnectorPlugin.cs index b10b8872..e6f13dcb 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Adobe/AdobeConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Adobe/AdobeConnectorPlugin.cs @@ -2,7 +2,7 @@ using System; using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Vndr.Adobe; +namespace StellaOps.Concelier.Connector.Vndr.Adobe; public sealed class VndrAdobeConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.Vndr.Adobe/AdobeDiagnostics.cs b/src/StellaOps.Concelier.Connector.Vndr.Adobe/AdobeDiagnostics.cs similarity index 89% rename from src/StellaOps.Concelier.Source.Vndr.Adobe/AdobeDiagnostics.cs rename to src/StellaOps.Concelier.Connector.Vndr.Adobe/AdobeDiagnostics.cs index 7403f0d0..ba57ac44 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Adobe/AdobeDiagnostics.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Adobe/AdobeDiagnostics.cs @@ -1,11 +1,11 @@ using System; using System.Diagnostics.Metrics; -namespace StellaOps.Concelier.Source.Vndr.Adobe; +namespace StellaOps.Concelier.Connector.Vndr.Adobe; public sealed class AdobeDiagnostics : IDisposable { - public const string MeterName = "StellaOps.Concelier.Source.Vndr.Adobe"; + public const string MeterName = "StellaOps.Concelier.Connector.Vndr.Adobe"; private static readonly string MeterVersion = "1.0.0"; private readonly Meter _meter; diff --git a/src/StellaOps.Concelier.Source.Vndr.Adobe/AdobeServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.Vndr.Adobe/AdobeServiceCollectionExtensions.cs similarity index 87% rename from src/StellaOps.Concelier.Source.Vndr.Adobe/AdobeServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.Vndr.Adobe/AdobeServiceCollectionExtensions.cs index 54ef4ffe..8398ccd1 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Adobe/AdobeServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Adobe/AdobeServiceCollectionExtensions.cs @@ -1,10 +1,10 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Vndr.Adobe.Configuration; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Vndr.Adobe.Configuration; -namespace StellaOps.Concelier.Source.Vndr.Adobe; +namespace StellaOps.Concelier.Connector.Vndr.Adobe; public static class AdobeServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Source.Vndr.Adobe/Configuration/AdobeOptions.cs b/src/StellaOps.Concelier.Connector.Vndr.Adobe/Configuration/AdobeOptions.cs similarity index 92% rename from src/StellaOps.Concelier.Source.Vndr.Adobe/Configuration/AdobeOptions.cs rename to src/StellaOps.Concelier.Connector.Vndr.Adobe/Configuration/AdobeOptions.cs index b9448ed8..627a1c77 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Adobe/Configuration/AdobeOptions.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Adobe/Configuration/AdobeOptions.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -namespace StellaOps.Concelier.Source.Vndr.Adobe.Configuration; +namespace StellaOps.Concelier.Connector.Vndr.Adobe.Configuration; public sealed class AdobeOptions { diff --git a/src/StellaOps.Concelier.Source.Vndr.Adobe/Internal/AdobeBulletinDto.cs b/src/StellaOps.Concelier.Connector.Vndr.Adobe/Internal/AdobeBulletinDto.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Vndr.Adobe/Internal/AdobeBulletinDto.cs rename to src/StellaOps.Concelier.Connector.Vndr.Adobe/Internal/AdobeBulletinDto.cs index f7024aed..95e581dc 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Adobe/Internal/AdobeBulletinDto.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Adobe/Internal/AdobeBulletinDto.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Linq; -namespace StellaOps.Concelier.Source.Vndr.Adobe.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Adobe.Internal; internal sealed record AdobeBulletinDto( string AdvisoryId, diff --git a/src/StellaOps.Concelier.Source.Vndr.Adobe/Internal/AdobeCursor.cs b/src/StellaOps.Concelier.Connector.Vndr.Adobe/Internal/AdobeCursor.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Vndr.Adobe/Internal/AdobeCursor.cs rename to src/StellaOps.Concelier.Connector.Vndr.Adobe/Internal/AdobeCursor.cs index 16406144..508aa83e 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Adobe/Internal/AdobeCursor.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Adobe/Internal/AdobeCursor.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using MongoDB.Bson; -namespace StellaOps.Concelier.Source.Vndr.Adobe.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Adobe.Internal; internal sealed record AdobeCursor( DateTimeOffset? LastPublished, diff --git a/src/StellaOps.Concelier.Source.Vndr.Adobe/Internal/AdobeDetailParser.cs b/src/StellaOps.Concelier.Connector.Vndr.Adobe/Internal/AdobeDetailParser.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Vndr.Adobe/Internal/AdobeDetailParser.cs rename to src/StellaOps.Concelier.Connector.Vndr.Adobe/Internal/AdobeDetailParser.cs index 423ecec6..a2694c9b 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Adobe/Internal/AdobeDetailParser.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Adobe/Internal/AdobeDetailParser.cs @@ -7,7 +7,7 @@ using AngleSharp.Dom; using AngleSharp.Html.Dom; using AngleSharp.Html.Parser; -namespace StellaOps.Concelier.Source.Vndr.Adobe.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Adobe.Internal; internal static class AdobeDetailParser { diff --git a/src/StellaOps.Concelier.Source.Vndr.Adobe/Internal/AdobeDocumentMetadata.cs b/src/StellaOps.Concelier.Connector.Vndr.Adobe/Internal/AdobeDocumentMetadata.cs similarity index 93% rename from src/StellaOps.Concelier.Source.Vndr.Adobe/Internal/AdobeDocumentMetadata.cs rename to src/StellaOps.Concelier.Connector.Vndr.Adobe/Internal/AdobeDocumentMetadata.cs index 38d8af9c..e5981ed9 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Adobe/Internal/AdobeDocumentMetadata.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Adobe/Internal/AdobeDocumentMetadata.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using StellaOps.Concelier.Storage.Mongo.Documents; -namespace StellaOps.Concelier.Source.Vndr.Adobe.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Adobe.Internal; internal sealed record AdobeDocumentMetadata( string AdvisoryId, diff --git a/src/StellaOps.Concelier.Source.Vndr.Adobe/Internal/AdobeIndexEntry.cs b/src/StellaOps.Concelier.Connector.Vndr.Adobe/Internal/AdobeIndexEntry.cs similarity index 67% rename from src/StellaOps.Concelier.Source.Vndr.Adobe/Internal/AdobeIndexEntry.cs rename to src/StellaOps.Concelier.Connector.Vndr.Adobe/Internal/AdobeIndexEntry.cs index 9b20da71..ddcaa615 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Adobe/Internal/AdobeIndexEntry.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Adobe/Internal/AdobeIndexEntry.cs @@ -1,5 +1,5 @@ using System; -namespace StellaOps.Concelier.Source.Vndr.Adobe.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Adobe.Internal; internal sealed record AdobeIndexEntry(string AdvisoryId, Uri DetailUri, DateTimeOffset PublishedUtc, string? Title); diff --git a/src/StellaOps.Concelier.Source.Vndr.Adobe/Internal/AdobeIndexParser.cs b/src/StellaOps.Concelier.Connector.Vndr.Adobe/Internal/AdobeIndexParser.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Vndr.Adobe/Internal/AdobeIndexParser.cs rename to src/StellaOps.Concelier.Connector.Vndr.Adobe/Internal/AdobeIndexParser.cs index be7c37c9..6802dcfa 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Adobe/Internal/AdobeIndexParser.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Adobe/Internal/AdobeIndexParser.cs @@ -6,7 +6,7 @@ using System.Text.RegularExpressions; using AngleSharp.Dom; using AngleSharp.Html.Parser; -namespace StellaOps.Concelier.Source.Vndr.Adobe.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Adobe.Internal; internal static class AdobeIndexParser { diff --git a/src/StellaOps.Concelier.Source.Vndr.Adobe/Internal/AdobeSchemaProvider.cs b/src/StellaOps.Concelier.Connector.Vndr.Adobe/Internal/AdobeSchemaProvider.cs similarity index 78% rename from src/StellaOps.Concelier.Source.Vndr.Adobe/Internal/AdobeSchemaProvider.cs rename to src/StellaOps.Concelier.Connector.Vndr.Adobe/Internal/AdobeSchemaProvider.cs index 0ef76d3e..a33e2d89 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Adobe/Internal/AdobeSchemaProvider.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Adobe/Internal/AdobeSchemaProvider.cs @@ -3,7 +3,7 @@ using System.Reflection; using System.Threading; using Json.Schema; -namespace StellaOps.Concelier.Source.Vndr.Adobe.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Adobe.Internal; internal static class AdobeSchemaProvider { @@ -14,7 +14,7 @@ internal static class AdobeSchemaProvider private static JsonSchema Load() { var assembly = typeof(AdobeSchemaProvider).GetTypeInfo().Assembly; - const string resourceName = "StellaOps.Concelier.Source.Vndr.Adobe.Schemas.adobe-bulletin.schema.json"; + const string resourceName = "StellaOps.Concelier.Connector.Vndr.Adobe.Schemas.adobe-bulletin.schema.json"; using var stream = assembly.GetManifestResourceStream(resourceName) ?? throw new InvalidOperationException($"Embedded schema '{resourceName}' not found."); diff --git a/src/StellaOps.Concelier.Source.Vndr.Adobe/Schemas/adobe-bulletin.schema.json b/src/StellaOps.Concelier.Connector.Vndr.Adobe/Schemas/adobe-bulletin.schema.json similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Adobe/Schemas/adobe-bulletin.schema.json rename to src/StellaOps.Concelier.Connector.Vndr.Adobe/Schemas/adobe-bulletin.schema.json diff --git a/src/StellaOps.Concelier.Source.Vndr.Adobe/StellaOps.Concelier.Source.Vndr.Adobe.csproj b/src/StellaOps.Concelier.Connector.Vndr.Adobe/StellaOps.Concelier.Connector.Vndr.Adobe.csproj similarity index 83% rename from src/StellaOps.Concelier.Source.Vndr.Adobe/StellaOps.Concelier.Source.Vndr.Adobe.csproj rename to src/StellaOps.Concelier.Connector.Vndr.Adobe/StellaOps.Concelier.Connector.Vndr.Adobe.csproj index 2661a201..bf9c782a 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Adobe/StellaOps.Concelier.Source.Vndr.Adobe.csproj +++ b/src/StellaOps.Concelier.Connector.Vndr.Adobe/StellaOps.Concelier.Connector.Vndr.Adobe.csproj @@ -17,7 +17,7 @@ - + diff --git a/src/StellaOps.Concelier.Source.Vndr.Adobe/TASKS.md b/src/StellaOps.Concelier.Connector.Vndr.Adobe/TASKS.md similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Adobe/TASKS.md rename to src/StellaOps.Concelier.Connector.Vndr.Adobe/TASKS.md diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/AppleConnectorTests.cs b/src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/AppleConnectorTests.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/AppleConnectorTests.cs rename to src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/AppleConnectorTests.cs index c8abac16..42102176 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/AppleConnectorTests.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/AppleConnectorTests.cs @@ -9,19 +9,19 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Time.Testing; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Common.Testing; -using StellaOps.Concelier.Source.Common.Packages; -using StellaOps.Concelier.Source.Vndr.Apple; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Common.Testing; +using StellaOps.Concelier.Connector.Common.Packages; +using StellaOps.Concelier.Connector.Vndr.Apple; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.PsirtFlags; using StellaOps.Concelier.Testing; using Xunit; -namespace StellaOps.Concelier.Source.Vndr.Apple.Tests; +namespace StellaOps.Concelier.Connector.Vndr.Apple.Tests; [Collection("mongo-fixture")] public sealed class AppleConnectorTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/AppleFixtureManager.cs b/src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/AppleFixtureManager.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/AppleFixtureManager.cs rename to src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/AppleFixtureManager.cs index 44994947..35c0647c 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/AppleFixtureManager.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/AppleFixtureManager.cs @@ -11,9 +11,9 @@ using System.Text.Json; using System.Text.Json.Serialization; using System.Threading; using System.Threading.Tasks; -using StellaOps.Concelier.Source.Vndr.Apple.Internal; +using StellaOps.Concelier.Connector.Vndr.Apple.Internal; -namespace StellaOps.Concelier.Source.Vndr.Apple.Tests.Apple; +namespace StellaOps.Concelier.Connector.Vndr.Apple.Tests.Apple; internal static class AppleFixtureManager { @@ -315,7 +315,7 @@ internal static class AppleFixtureManager var baseDir = AppContext.BaseDirectory; // bin/Debug/net10.0/ -> project -> src -> repo root var root = Path.GetFullPath(Path.Combine(baseDir, "..", "..", "..", "..", "..")); - return Path.Combine(root, "src", "StellaOps.Concelier.Source.Vndr.Apple.Tests", "Apple", "Fixtures"); + return Path.Combine(root, "src", "StellaOps.Concelier.Connector.Vndr.Apple.Tests", "Apple", "Fixtures"); } private static string NormalizeLineEndings(string value) diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/AppleLiveRegressionTests.cs b/src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/AppleLiveRegressionTests.cs similarity index 92% rename from src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/AppleLiveRegressionTests.cs rename to src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/AppleLiveRegressionTests.cs index e82de7d7..ab9020e9 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/AppleLiveRegressionTests.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/AppleLiveRegressionTests.cs @@ -4,11 +4,11 @@ using System.Text.Encodings.Web; using System.Text.Json; using System.Text.Json.Serialization; using System.Threading.Tasks; -using StellaOps.Concelier.Source.Vndr.Apple.Internal; -using StellaOps.Concelier.Source.Vndr.Apple.Tests.Apple; +using StellaOps.Concelier.Connector.Vndr.Apple.Internal; +using StellaOps.Concelier.Connector.Vndr.Apple.Tests.Apple; using Xunit; -namespace StellaOps.Concelier.Source.Vndr.Apple.Tests; +namespace StellaOps.Concelier.Connector.Vndr.Apple.Tests; public sealed class AppleLiveRegressionTests { diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/Fixtures/106355.expected.json b/src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/Fixtures/106355.expected.json similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/Fixtures/106355.expected.json rename to src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/Fixtures/106355.expected.json diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/Fixtures/106355.html b/src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/Fixtures/106355.html similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/Fixtures/106355.html rename to src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/Fixtures/106355.html diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/Fixtures/125326.expected.json b/src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/Fixtures/125326.expected.json similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/Fixtures/125326.expected.json rename to src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/Fixtures/125326.expected.json diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/Fixtures/125326.html b/src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/Fixtures/125326.html similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/Fixtures/125326.html rename to src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/Fixtures/125326.html diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/Fixtures/125328.expected.json b/src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/Fixtures/125328.expected.json similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/Fixtures/125328.expected.json rename to src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/Fixtures/125328.expected.json diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/Fixtures/125328.html b/src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/Fixtures/125328.html similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/Fixtures/125328.html rename to src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/Fixtures/125328.html diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/Fixtures/HT214108.expected.json b/src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/Fixtures/HT214108.expected.json similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/Fixtures/HT214108.expected.json rename to src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/Fixtures/HT214108.expected.json diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/Fixtures/HT215500.expected.json b/src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/Fixtures/HT215500.expected.json similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/Fixtures/HT215500.expected.json rename to src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/Fixtures/HT215500.expected.json diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/Fixtures/ht214108.html b/src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/Fixtures/ht214108.html similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/Fixtures/ht214108.html rename to src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/Fixtures/ht214108.html diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/Fixtures/ht215500.html b/src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/Fixtures/ht215500.html similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/Fixtures/ht215500.html rename to src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/Fixtures/ht215500.html diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/Fixtures/index.json b/src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/Fixtures/index.json similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/Fixtures/index.json rename to src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/Fixtures/index.json diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple.Tests/StellaOps.Concelier.Source.Vndr.Apple.Tests.csproj b/src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/StellaOps.Concelier.Connector.Vndr.Apple.Tests.csproj similarity index 77% rename from src/StellaOps.Concelier.Source.Vndr.Apple.Tests/StellaOps.Concelier.Source.Vndr.Apple.Tests.csproj rename to src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/StellaOps.Concelier.Connector.Vndr.Apple.Tests.csproj index 5d103134..82b79a15 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Apple.Tests/StellaOps.Concelier.Source.Vndr.Apple.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/StellaOps.Concelier.Connector.Vndr.Apple.Tests.csproj @@ -6,8 +6,8 @@ - - + + diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple/AGENTS.md b/src/StellaOps.Concelier.Connector.Vndr.Apple/AGENTS.md similarity index 94% rename from src/StellaOps.Concelier.Source.Vndr.Apple/AGENTS.md rename to src/StellaOps.Concelier.Connector.Vndr.Apple/AGENTS.md index 285e2ced..b7afa538 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Apple/AGENTS.md +++ b/src/StellaOps.Concelier.Connector.Vndr.Apple/AGENTS.md @@ -34,6 +34,6 @@ Out of scope: - Respect upstream rate limits; record failures with backoff. ## Tests -- Add `StellaOps.Concelier.Source.Vndr.Apple.Tests` covering fetch/parse/map with fixtures. +- Add `StellaOps.Concelier.Connector.Vndr.Apple.Tests` covering fetch/parse/map with fixtures. - Snapshot canonical advisories; support fixture regeneration via env flag. - Ensure deterministic ordering/time normalisation. diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple/AppleConnector.cs b/src/StellaOps.Concelier.Connector.Vndr.Apple/AppleConnector.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Vndr.Apple/AppleConnector.cs rename to src/StellaOps.Concelier.Connector.Vndr.Apple/AppleConnector.cs index f92b86c2..d79aaed2 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Apple/AppleConnector.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Apple/AppleConnector.cs @@ -9,9 +9,9 @@ using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using MongoDB.Bson; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Vndr.Apple.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Vndr.Apple.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; @@ -19,7 +19,7 @@ using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Concelier.Storage.Mongo.PsirtFlags; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Vndr.Apple; +namespace StellaOps.Concelier.Connector.Vndr.Apple; public sealed class AppleConnector : IFeedConnector { diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple/AppleDependencyInjectionRoutine.cs b/src/StellaOps.Concelier.Connector.Vndr.Apple/AppleDependencyInjectionRoutine.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Vndr.Apple/AppleDependencyInjectionRoutine.cs rename to src/StellaOps.Concelier.Connector.Vndr.Apple/AppleDependencyInjectionRoutine.cs index ec6440d4..1acc369e 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Apple/AppleDependencyInjectionRoutine.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Apple/AppleDependencyInjectionRoutine.cs @@ -4,7 +4,7 @@ using Microsoft.Extensions.DependencyInjection; using StellaOps.DependencyInjection; using StellaOps.Concelier.Core.Jobs; -namespace StellaOps.Concelier.Source.Vndr.Apple; +namespace StellaOps.Concelier.Connector.Vndr.Apple; public sealed class AppleDependencyInjectionRoutine : IDependencyInjectionRoutine { diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple/AppleOptions.cs b/src/StellaOps.Concelier.Connector.Vndr.Apple/AppleOptions.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Vndr.Apple/AppleOptions.cs rename to src/StellaOps.Concelier.Connector.Vndr.Apple/AppleOptions.cs index 9c6fba0b..7adc1b08 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Apple/AppleOptions.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Apple/AppleOptions.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; -namespace StellaOps.Concelier.Source.Vndr.Apple; +namespace StellaOps.Concelier.Connector.Vndr.Apple; public sealed class AppleOptions : IValidatableObject { diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple/AppleServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.Vndr.Apple/AppleServiceCollectionExtensions.cs similarity index 90% rename from src/StellaOps.Concelier.Source.Vndr.Apple/AppleServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.Vndr.Apple/AppleServiceCollectionExtensions.cs index bbab2a83..7cf64bd9 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Apple/AppleServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Apple/AppleServiceCollectionExtensions.cs @@ -2,10 +2,10 @@ using System; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Vndr.Apple.Internal; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Vndr.Apple.Internal; -namespace StellaOps.Concelier.Source.Vndr.Apple; +namespace StellaOps.Concelier.Connector.Vndr.Apple; public static class AppleServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple/Internal/AppleCursor.cs b/src/StellaOps.Concelier.Connector.Vndr.Apple/Internal/AppleCursor.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Vndr.Apple/Internal/AppleCursor.cs rename to src/StellaOps.Concelier.Connector.Vndr.Apple/Internal/AppleCursor.cs index e55a8e9c..f2126f0d 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Apple/Internal/AppleCursor.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Apple/Internal/AppleCursor.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using MongoDB.Bson; -namespace StellaOps.Concelier.Source.Vndr.Apple.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Apple.Internal; internal sealed record AppleCursor( DateTimeOffset? LastPosted, diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple/Internal/AppleDetailDto.cs b/src/StellaOps.Concelier.Connector.Vndr.Apple/Internal/AppleDetailDto.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Vndr.Apple/Internal/AppleDetailDto.cs rename to src/StellaOps.Concelier.Connector.Vndr.Apple/Internal/AppleDetailDto.cs index 028a8dc0..f0491a0d 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Apple/Internal/AppleDetailDto.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Apple/Internal/AppleDetailDto.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Linq; -namespace StellaOps.Concelier.Source.Vndr.Apple.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Apple.Internal; internal sealed record AppleDetailDto( string AdvisoryId, diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple/Internal/AppleDetailParser.cs b/src/StellaOps.Concelier.Connector.Vndr.Apple/Internal/AppleDetailParser.cs similarity index 99% rename from src/StellaOps.Concelier.Source.Vndr.Apple/Internal/AppleDetailParser.cs rename to src/StellaOps.Concelier.Connector.Vndr.Apple/Internal/AppleDetailParser.cs index e44ab06c..75ddda0e 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Apple/Internal/AppleDetailParser.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Apple/Internal/AppleDetailParser.cs @@ -6,7 +6,7 @@ using AngleSharp.Dom; using AngleSharp.Html.Dom; using AngleSharp.Html.Parser; -namespace StellaOps.Concelier.Source.Vndr.Apple.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Apple.Internal; internal static class AppleDetailParser { diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple/Internal/AppleDiagnostics.cs b/src/StellaOps.Concelier.Connector.Vndr.Apple/Internal/AppleDiagnostics.cs similarity index 93% rename from src/StellaOps.Concelier.Source.Vndr.Apple/Internal/AppleDiagnostics.cs rename to src/StellaOps.Concelier.Connector.Vndr.Apple/Internal/AppleDiagnostics.cs index ec24412b..ccfb6b05 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Apple/Internal/AppleDiagnostics.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Apple/Internal/AppleDiagnostics.cs @@ -1,11 +1,11 @@ using System; using System.Diagnostics.Metrics; -namespace StellaOps.Concelier.Source.Vndr.Apple.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Apple.Internal; public sealed class AppleDiagnostics : IDisposable { - public const string MeterName = "StellaOps.Concelier.Source.Vndr.Apple"; + public const string MeterName = "StellaOps.Concelier.Connector.Vndr.Apple"; private const string MeterVersion = "1.0.0"; private readonly Meter _meter; diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple/Internal/AppleIndexEntry.cs b/src/StellaOps.Concelier.Connector.Vndr.Apple/Internal/AppleIndexEntry.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Vndr.Apple/Internal/AppleIndexEntry.cs rename to src/StellaOps.Concelier.Connector.Vndr.Apple/Internal/AppleIndexEntry.cs index c005cf19..5a659553 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Apple/Internal/AppleIndexEntry.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Apple/Internal/AppleIndexEntry.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text.Json; using System.Text.Json.Serialization; -namespace StellaOps.Concelier.Source.Vndr.Apple.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Apple.Internal; internal sealed record AppleIndexEntry( string UpdateId, diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple/Internal/AppleMapper.cs b/src/StellaOps.Concelier.Connector.Vndr.Apple/Internal/AppleMapper.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Vndr.Apple/Internal/AppleMapper.cs rename to src/StellaOps.Concelier.Connector.Vndr.Apple/Internal/AppleMapper.cs index 9455d3e4..edb07d8c 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Apple/Internal/AppleMapper.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Apple/Internal/AppleMapper.cs @@ -2,13 +2,13 @@ using System; using System.Collections.Generic; using System.Linq; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Packages; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Packages; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Concelier.Storage.Mongo.PsirtFlags; -namespace StellaOps.Concelier.Source.Vndr.Apple.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Apple.Internal; internal static class AppleMapper { diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple/Jobs.cs b/src/StellaOps.Concelier.Connector.Vndr.Apple/Jobs.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Vndr.Apple/Jobs.cs rename to src/StellaOps.Concelier.Connector.Vndr.Apple/Jobs.cs index 311218fa..9a51a698 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Apple/Jobs.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Apple/Jobs.cs @@ -3,7 +3,7 @@ using System.Threading; using System.Threading.Tasks; using StellaOps.Concelier.Core.Jobs; -namespace StellaOps.Concelier.Source.Vndr.Apple; +namespace StellaOps.Concelier.Connector.Vndr.Apple; internal static class AppleJobKinds { diff --git a/src/StellaOps.Concelier.Connector.Vndr.Apple/Properties/AssemblyInfo.cs b/src/StellaOps.Concelier.Connector.Vndr.Apple/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..cb31be3a --- /dev/null +++ b/src/StellaOps.Concelier.Connector.Vndr.Apple/Properties/AssemblyInfo.cs @@ -0,0 +1,3 @@ +using System.Runtime.CompilerServices; + +[assembly: InternalsVisibleTo("StellaOps.Concelier.Connector.Vndr.Apple.Tests")] diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple/README.md b/src/StellaOps.Concelier.Connector.Vndr.Apple/README.md similarity index 91% rename from src/StellaOps.Concelier.Source.Vndr.Apple/README.md rename to src/StellaOps.Concelier.Connector.Vndr.Apple/README.md index c14f1016..ca0a5a7b 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Apple/README.md +++ b/src/StellaOps.Concelier.Connector.Vndr.Apple/README.md @@ -40,10 +40,10 @@ Unofficial Apple documentation warns that the Software Lookup Service rate-limit ## Fixture maintenance -Deterministic regression coverage lives in `src/StellaOps.Concelier.Source.Vndr.Apple.Tests/Apple/Fixtures`. When Apple publishes new advisories the fixtures must be refreshed using the provided helper scripts: +Deterministic regression coverage lives in `src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/Apple/Fixtures`. When Apple publishes new advisories the fixtures must be refreshed using the provided helper scripts: - Bash: `./scripts/update-apple-fixtures.sh` - PowerShell: `./scripts/update-apple-fixtures.ps1` -Both scripts set `UPDATE_APPLE_FIXTURES=1`, touch a `.update-apple-fixtures` sentinel so test runs inside WSL propagate the flag, fetch the live HT articles referenced in `AppleFixtureManager`, sanitise the HTML, and rewrite the paired `.expected.json` DTO snapshots. Always inspect the resulting diff and re-run `dotnet test src/StellaOps.Concelier.Source.Vndr.Apple.Tests/StellaOps.Concelier.Source.Vndr.Apple.Tests.csproj` without the environment variable to ensure deterministic output before committing. +Both scripts set `UPDATE_APPLE_FIXTURES=1`, touch a `.update-apple-fixtures` sentinel so test runs inside WSL propagate the flag, fetch the live HT articles referenced in `AppleFixtureManager`, sanitise the HTML, and rewrite the paired `.expected.json` DTO snapshots. Always inspect the resulting diff and re-run `dotnet test src/StellaOps.Concelier.Connector.Vndr.Apple.Tests/StellaOps.Concelier.Connector.Vndr.Apple.Tests.csproj` without the environment variable to ensure deterministic output before committing. diff --git a/src/StellaOps.Concelier.Source.Vndr.Cisco/StellaOps.Concelier.Source.Vndr.Cisco.csproj b/src/StellaOps.Concelier.Connector.Vndr.Apple/StellaOps.Concelier.Connector.Vndr.Apple.csproj similarity index 82% rename from src/StellaOps.Concelier.Source.Vndr.Cisco/StellaOps.Concelier.Source.Vndr.Cisco.csproj rename to src/StellaOps.Concelier.Connector.Vndr.Apple/StellaOps.Concelier.Connector.Vndr.Apple.csproj index 47812b59..6f59477f 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Cisco/StellaOps.Concelier.Source.Vndr.Cisco.csproj +++ b/src/StellaOps.Concelier.Connector.Vndr.Apple/StellaOps.Concelier.Connector.Vndr.Apple.csproj @@ -6,11 +6,13 @@ enable - - + + + - + + diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple/TASKS.md b/src/StellaOps.Concelier.Connector.Vndr.Apple/TASKS.md similarity index 92% rename from src/StellaOps.Concelier.Source.Vndr.Apple/TASKS.md rename to src/StellaOps.Concelier.Connector.Vndr.Apple/TASKS.md index a424a4f2..1661ee17 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Apple/TASKS.md +++ b/src/StellaOps.Concelier.Connector.Vndr.Apple/TASKS.md @@ -6,6 +6,6 @@ |Parser & DTO implementation|BE-Conn-Apple|Source.Common|**DONE** – AngleSharp detail parser produces canonical DTO payloads (CVE list, timestamps, affected tables) persisted via DTO store.| |Canonical mapping & range primitives|BE-Conn-Apple|Models|**DONE** – Mapper now emits SemVer-derived normalizedVersions with `apple::` notes; fixtures updated to assert canonical rules while we continue tracking multi-device coverage in follow-up tasks.
2025-10-11 research trail: confirmed payload aligns with `[{"scheme":"semver","type":"range","min":"","minInclusive":true,"max":"","maxInclusive":false,"notes":"apple:ios:17.1"}]`; continue using `notes` to surface build identifiers for storage provenance.| |Deterministic fixtures/tests|QA|Testing|**DONE (2025-10-12)** – Parser now scopes references to article content, sorts affected rows deterministically, and regenerated fixtures (125326/125328/106355/HT214108/HT215500) produce stable JSON + sanitizer HTML in English.| -|Telemetry & documentation|DevEx|Docs|**DONE (2025-10-12)** – OpenTelemetry pipeline exports `StellaOps.Concelier.Source.Vndr.Apple`; runbook `docs/ops/concelier-apple-operations.md` added with metrics + monitoring guidance.| +|Telemetry & documentation|DevEx|Docs|**DONE (2025-10-12)** – OpenTelemetry pipeline exports `StellaOps.Concelier.Connector.Vndr.Apple`; runbook `docs/ops/concelier-apple-operations.md` added with metrics + monitoring guidance.| |Live HTML regression sweep|QA|Source.Common|**DONE (2025-10-12)** – Captured latest support.apple.com articles for 125326/125328/106355/HT214108/HT215500, trimmed nav noise, and committed sanitized HTML + expected DTOs with invariant timestamps.| |Fixture regeneration tooling|DevEx|Testing|**DONE (2025-10-12)** – `scripts/update-apple-fixtures.(sh|ps1)` set the env flag + sentinel, forward through WSLENV, and clean up after regeneration; README references updated usage.| diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple/VndrAppleConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.Vndr.Apple/VndrAppleConnectorPlugin.cs similarity index 92% rename from src/StellaOps.Concelier.Source.Vndr.Apple/VndrAppleConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.Vndr.Apple/VndrAppleConnectorPlugin.cs index 3710d477..b2cb8295 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Apple/VndrAppleConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Apple/VndrAppleConnectorPlugin.cs @@ -2,7 +2,7 @@ using System; using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Vndr.Apple; +namespace StellaOps.Concelier.Connector.Vndr.Apple; public sealed class VndrAppleConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.Vndr.Chromium.Tests/Chromium/ChromiumConnectorTests.cs b/src/StellaOps.Concelier.Connector.Vndr.Chromium.Tests/Chromium/ChromiumConnectorTests.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Vndr.Chromium.Tests/Chromium/ChromiumConnectorTests.cs rename to src/StellaOps.Concelier.Connector.Vndr.Chromium.Tests/Chromium/ChromiumConnectorTests.cs index 1a31f8f4..cde86889 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Chromium.Tests/Chromium/ChromiumConnectorTests.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Chromium.Tests/Chromium/ChromiumConnectorTests.cs @@ -11,19 +11,19 @@ using Microsoft.Extensions.Time.Testing; using MongoDB.Bson; using MongoDB.Driver; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Common.Json; -using StellaOps.Concelier.Source.Common.Testing; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Vndr.Chromium; -using StellaOps.Concelier.Source.Vndr.Chromium.Configuration; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Common.Json; +using StellaOps.Concelier.Connector.Common.Testing; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Vndr.Chromium; +using StellaOps.Concelier.Connector.Vndr.Chromium.Configuration; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.PsirtFlags; using StellaOps.Concelier.Testing; -namespace StellaOps.Concelier.Source.Vndr.Chromium.Tests; +namespace StellaOps.Concelier.Connector.Vndr.Chromium.Tests; [Collection("mongo-fixture")] public sealed class ChromiumConnectorTests : IAsyncLifetime @@ -56,7 +56,7 @@ public sealed class ChromiumConnectorTests : IAsyncLifetime { await connector.ParseAsync(provider, CancellationToken.None); } - catch (StellaOps.Concelier.Source.Common.Json.JsonSchemaValidationException) + catch (StellaOps.Concelier.Connector.Common.Json.JsonSchemaValidationException) { // Parsing should flag document as failed even when schema validation rejects payloads. } diff --git a/src/StellaOps.Concelier.Source.Vndr.Chromium.Tests/Chromium/ChromiumMapperTests.cs b/src/StellaOps.Concelier.Connector.Vndr.Chromium.Tests/Chromium/ChromiumMapperTests.cs similarity index 87% rename from src/StellaOps.Concelier.Source.Vndr.Chromium.Tests/Chromium/ChromiumMapperTests.cs rename to src/StellaOps.Concelier.Connector.Vndr.Chromium.Tests/Chromium/ChromiumMapperTests.cs index 55bd031a..3f6398a1 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Chromium.Tests/Chromium/ChromiumMapperTests.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Chromium.Tests/Chromium/ChromiumMapperTests.cs @@ -1,10 +1,10 @@ using System; using System.Linq; -using StellaOps.Concelier.Source.Vndr.Chromium; -using StellaOps.Concelier.Source.Vndr.Chromium.Internal; +using StellaOps.Concelier.Connector.Vndr.Chromium; +using StellaOps.Concelier.Connector.Vndr.Chromium.Internal; using Xunit; -namespace StellaOps.Concelier.Source.Vndr.Chromium.Tests; +namespace StellaOps.Concelier.Connector.Vndr.Chromium.Tests; public sealed class ChromiumMapperTests { diff --git a/src/StellaOps.Concelier.Source.Vndr.Chromium.Tests/Chromium/Fixtures/chromium-advisory.snapshot.json b/src/StellaOps.Concelier.Connector.Vndr.Chromium.Tests/Chromium/Fixtures/chromium-advisory.snapshot.json similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Chromium.Tests/Chromium/Fixtures/chromium-advisory.snapshot.json rename to src/StellaOps.Concelier.Connector.Vndr.Chromium.Tests/Chromium/Fixtures/chromium-advisory.snapshot.json diff --git a/src/StellaOps.Concelier.Source.Vndr.Chromium.Tests/Chromium/Fixtures/chromium-detail.html b/src/StellaOps.Concelier.Connector.Vndr.Chromium.Tests/Chromium/Fixtures/chromium-detail.html similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Chromium.Tests/Chromium/Fixtures/chromium-detail.html rename to src/StellaOps.Concelier.Connector.Vndr.Chromium.Tests/Chromium/Fixtures/chromium-detail.html diff --git a/src/StellaOps.Concelier.Source.Vndr.Chromium.Tests/Chromium/Fixtures/chromium-feed.xml b/src/StellaOps.Concelier.Connector.Vndr.Chromium.Tests/Chromium/Fixtures/chromium-feed.xml similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Chromium.Tests/Chromium/Fixtures/chromium-feed.xml rename to src/StellaOps.Concelier.Connector.Vndr.Chromium.Tests/Chromium/Fixtures/chromium-feed.xml diff --git a/src/StellaOps.Concelier.Source.Vndr.Chromium.Tests/StellaOps.Concelier.Source.Vndr.Chromium.Tests.csproj b/src/StellaOps.Concelier.Connector.Vndr.Chromium.Tests/StellaOps.Concelier.Connector.Vndr.Chromium.Tests.csproj similarity index 72% rename from src/StellaOps.Concelier.Source.Vndr.Chromium.Tests/StellaOps.Concelier.Source.Vndr.Chromium.Tests.csproj rename to src/StellaOps.Concelier.Connector.Vndr.Chromium.Tests/StellaOps.Concelier.Connector.Vndr.Chromium.Tests.csproj index b5ae6a51..2a091c7a 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Chromium.Tests/StellaOps.Concelier.Source.Vndr.Chromium.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.Vndr.Chromium.Tests/StellaOps.Concelier.Connector.Vndr.Chromium.Tests.csproj @@ -6,8 +6,8 @@ - - + + diff --git a/src/StellaOps.Concelier.Source.Vndr.Chromium/AGENTS.md b/src/StellaOps.Concelier.Connector.Vndr.Chromium/AGENTS.md similarity index 94% rename from src/StellaOps.Concelier.Source.Vndr.Chromium/AGENTS.md rename to src/StellaOps.Concelier.Connector.Vndr.Chromium/AGENTS.md index 9215ed81..bf628ae5 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Chromium/AGENTS.md +++ b/src/StellaOps.Concelier.Connector.Vndr.Chromium/AGENTS.md @@ -23,6 +23,6 @@ Out: OS distro packaging semantics; bug bounty details beyond references. - Metrics: SourceDiagnostics exports the shared `concelier.source.http.*` counters/histograms tagged `concelier.source=chromium`, enabling dashboards to observe fetch volumes, parse failures, and map affected counts via tag filters. - Logs: post slugs, version extracted, platform coverage, timing; allowlist blog host. ## Tests -- Author and review coverage in `../StellaOps.Concelier.Source.Vndr.Chromium.Tests`. +- Author and review coverage in `../StellaOps.Concelier.Connector.Vndr.Chromium.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. diff --git a/src/StellaOps.Concelier.Source.Vndr.Chromium/ChromiumConnector.cs b/src/StellaOps.Concelier.Connector.Vndr.Chromium/ChromiumConnector.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Vndr.Chromium/ChromiumConnector.cs rename to src/StellaOps.Concelier.Connector.Vndr.Chromium/ChromiumConnector.cs index 14c27cc6..8a4bed41 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Chromium/ChromiumConnector.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Chromium/ChromiumConnector.cs @@ -7,11 +7,11 @@ using Microsoft.Extensions.Options; using MongoDB.Bson; using MongoDB.Bson.IO; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Common.Json; -using StellaOps.Concelier.Source.Vndr.Chromium.Configuration; -using StellaOps.Concelier.Source.Vndr.Chromium.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Common.Json; +using StellaOps.Concelier.Connector.Vndr.Chromium.Configuration; +using StellaOps.Concelier.Connector.Vndr.Chromium.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; @@ -20,7 +20,7 @@ using StellaOps.Concelier.Storage.Mongo.PsirtFlags; using StellaOps.Plugin; using Json.Schema; -namespace StellaOps.Concelier.Source.Vndr.Chromium; +namespace StellaOps.Concelier.Connector.Vndr.Chromium; public sealed class ChromiumConnector : IFeedConnector { @@ -247,7 +247,7 @@ public sealed class ChromiumConnector : IFeedConnector { _schemaValidator.Validate(jsonDocument, Schema, dto.PostId); } - catch (StellaOps.Concelier.Source.Common.Json.JsonSchemaValidationException ex) + catch (StellaOps.Concelier.Connector.Common.Json.JsonSchemaValidationException ex) { _logger.LogError(ex, "Chromium schema validation failed for {DocumentId}", document.Id); await _documentStore.UpdateStatusAsync(document.Id, DocumentStatuses.Failed, cancellationToken).ConfigureAwait(false); diff --git a/src/StellaOps.Concelier.Source.Vndr.Chromium/ChromiumConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.Vndr.Chromium/ChromiumConnectorPlugin.cs similarity index 88% rename from src/StellaOps.Concelier.Source.Vndr.Chromium/ChromiumConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.Vndr.Chromium/ChromiumConnectorPlugin.cs index 44b6945b..f2eee705 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Chromium/ChromiumConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Chromium/ChromiumConnectorPlugin.cs @@ -2,7 +2,7 @@ using System; using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Vndr.Chromium; +namespace StellaOps.Concelier.Connector.Vndr.Chromium; public sealed class VndrChromiumConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.Vndr.Chromium/ChromiumDiagnostics.cs b/src/StellaOps.Concelier.Connector.Vndr.Chromium/ChromiumDiagnostics.cs similarity index 92% rename from src/StellaOps.Concelier.Source.Vndr.Chromium/ChromiumDiagnostics.cs rename to src/StellaOps.Concelier.Connector.Vndr.Chromium/ChromiumDiagnostics.cs index 62606272..9f07a5f6 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Chromium/ChromiumDiagnostics.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Chromium/ChromiumDiagnostics.cs @@ -1,10 +1,10 @@ using System.Diagnostics.Metrics; -namespace StellaOps.Concelier.Source.Vndr.Chromium; +namespace StellaOps.Concelier.Connector.Vndr.Chromium; public sealed class ChromiumDiagnostics : IDisposable { - public const string MeterName = "StellaOps.Concelier.Source.Vndr.Chromium"; + public const string MeterName = "StellaOps.Concelier.Connector.Vndr.Chromium"; public const string MeterVersion = "1.0.0"; private readonly Meter _meter; diff --git a/src/StellaOps.Concelier.Source.Vndr.Chromium/ChromiumServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.Vndr.Chromium/ChromiumServiceCollectionExtensions.cs similarity index 83% rename from src/StellaOps.Concelier.Source.Vndr.Chromium/ChromiumServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.Vndr.Chromium/ChromiumServiceCollectionExtensions.cs index 714d32fb..7c990017 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Chromium/ChromiumServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Chromium/ChromiumServiceCollectionExtensions.cs @@ -1,10 +1,10 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Vndr.Chromium.Configuration; -using StellaOps.Concelier.Source.Vndr.Chromium.Internal; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Vndr.Chromium.Configuration; +using StellaOps.Concelier.Connector.Vndr.Chromium.Internal; -namespace StellaOps.Concelier.Source.Vndr.Chromium; +namespace StellaOps.Concelier.Connector.Vndr.Chromium; public static class ChromiumServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Source.Vndr.Chromium/Configuration/ChromiumOptions.cs b/src/StellaOps.Concelier.Connector.Vndr.Chromium/Configuration/ChromiumOptions.cs similarity index 92% rename from src/StellaOps.Concelier.Source.Vndr.Chromium/Configuration/ChromiumOptions.cs rename to src/StellaOps.Concelier.Connector.Vndr.Chromium/Configuration/ChromiumOptions.cs index 26646982..70cd14d5 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Chromium/Configuration/ChromiumOptions.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Chromium/Configuration/ChromiumOptions.cs @@ -1,4 +1,4 @@ -namespace StellaOps.Concelier.Source.Vndr.Chromium.Configuration; +namespace StellaOps.Concelier.Connector.Vndr.Chromium.Configuration; public sealed class ChromiumOptions { diff --git a/src/StellaOps.Concelier.Source.Vndr.Chromium/Internal/ChromiumCursor.cs b/src/StellaOps.Concelier.Connector.Vndr.Chromium/Internal/ChromiumCursor.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Vndr.Chromium/Internal/ChromiumCursor.cs rename to src/StellaOps.Concelier.Connector.Vndr.Chromium/Internal/ChromiumCursor.cs index 4364e7f4..a4f1ea3c 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Chromium/Internal/ChromiumCursor.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Chromium/Internal/ChromiumCursor.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Linq; using MongoDB.Bson; -namespace StellaOps.Concelier.Source.Vndr.Chromium.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Chromium.Internal; internal sealed record ChromiumCursor( DateTimeOffset? LastPublished, diff --git a/src/StellaOps.Concelier.Source.Vndr.Chromium/Internal/ChromiumDocumentMetadata.cs b/src/StellaOps.Concelier.Connector.Vndr.Chromium/Internal/ChromiumDocumentMetadata.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Vndr.Chromium/Internal/ChromiumDocumentMetadata.cs rename to src/StellaOps.Concelier.Connector.Vndr.Chromium/Internal/ChromiumDocumentMetadata.cs index b24a48e2..0a3d65a6 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Chromium/Internal/ChromiumDocumentMetadata.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Chromium/Internal/ChromiumDocumentMetadata.cs @@ -1,6 +1,6 @@ using StellaOps.Concelier.Storage.Mongo.Documents; -namespace StellaOps.Concelier.Source.Vndr.Chromium.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Chromium.Internal; internal sealed record ChromiumDocumentMetadata( string PostId, diff --git a/src/StellaOps.Concelier.Source.Vndr.Chromium/Internal/ChromiumDto.cs b/src/StellaOps.Concelier.Connector.Vndr.Chromium/Internal/ChromiumDto.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Vndr.Chromium/Internal/ChromiumDto.cs rename to src/StellaOps.Concelier.Connector.Vndr.Chromium/Internal/ChromiumDto.cs index c5533ecb..8863a656 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Chromium/Internal/ChromiumDto.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Chromium/Internal/ChromiumDto.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace StellaOps.Concelier.Source.Vndr.Chromium.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Chromium.Internal; internal sealed record ChromiumDto( [property: JsonPropertyName("postId")] string PostId, diff --git a/src/StellaOps.Concelier.Source.Vndr.Chromium/Internal/ChromiumFeedEntry.cs b/src/StellaOps.Concelier.Connector.Vndr.Chromium/Internal/ChromiumFeedEntry.cs similarity index 89% rename from src/StellaOps.Concelier.Source.Vndr.Chromium/Internal/ChromiumFeedEntry.cs rename to src/StellaOps.Concelier.Connector.Vndr.Chromium/Internal/ChromiumFeedEntry.cs index fb9c379e..f28c6f94 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Chromium/Internal/ChromiumFeedEntry.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Chromium/Internal/ChromiumFeedEntry.cs @@ -1,4 +1,4 @@ -namespace StellaOps.Concelier.Source.Vndr.Chromium.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Chromium.Internal; public sealed record ChromiumFeedEntry( string EntryId, diff --git a/src/StellaOps.Concelier.Source.Vndr.Chromium/Internal/ChromiumFeedLoader.cs b/src/StellaOps.Concelier.Connector.Vndr.Chromium/Internal/ChromiumFeedLoader.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Vndr.Chromium/Internal/ChromiumFeedLoader.cs rename to src/StellaOps.Concelier.Connector.Vndr.Chromium/Internal/ChromiumFeedLoader.cs index 407d5e3c..7da157d5 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Chromium/Internal/ChromiumFeedLoader.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Chromium/Internal/ChromiumFeedLoader.cs @@ -2,9 +2,9 @@ using System.ServiceModel.Syndication; using System.Xml; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Vndr.Chromium.Configuration; +using StellaOps.Concelier.Connector.Vndr.Chromium.Configuration; -namespace StellaOps.Concelier.Source.Vndr.Chromium.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Chromium.Internal; public sealed class ChromiumFeedLoader { diff --git a/src/StellaOps.Concelier.Source.Vndr.Chromium/Internal/ChromiumMapper.cs b/src/StellaOps.Concelier.Connector.Vndr.Chromium/Internal/ChromiumMapper.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Vndr.Chromium/Internal/ChromiumMapper.cs rename to src/StellaOps.Concelier.Connector.Vndr.Chromium/Internal/ChromiumMapper.cs index 9d736b66..333dfeb5 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Chromium/Internal/ChromiumMapper.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Chromium/Internal/ChromiumMapper.cs @@ -5,7 +5,7 @@ using System.Globalization; using StellaOps.Concelier.Models; using StellaOps.Concelier.Storage.Mongo.PsirtFlags; -namespace StellaOps.Concelier.Source.Vndr.Chromium.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Chromium.Internal; internal static class ChromiumMapper { diff --git a/src/StellaOps.Concelier.Source.Vndr.Chromium/Internal/ChromiumParser.cs b/src/StellaOps.Concelier.Connector.Vndr.Chromium/Internal/ChromiumParser.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Vndr.Chromium/Internal/ChromiumParser.cs rename to src/StellaOps.Concelier.Connector.Vndr.Chromium/Internal/ChromiumParser.cs index eea74743..523621b6 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Chromium/Internal/ChromiumParser.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Chromium/Internal/ChromiumParser.cs @@ -2,7 +2,7 @@ using System.Text.RegularExpressions; using AngleSharp.Dom; using AngleSharp.Html.Parser; -namespace StellaOps.Concelier.Source.Vndr.Chromium.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Chromium.Internal; internal static class ChromiumParser { diff --git a/src/StellaOps.Concelier.Source.Vndr.Chromium/Internal/ChromiumSchemaProvider.cs b/src/StellaOps.Concelier.Connector.Vndr.Chromium/Internal/ChromiumSchemaProvider.cs similarity index 78% rename from src/StellaOps.Concelier.Source.Vndr.Chromium/Internal/ChromiumSchemaProvider.cs rename to src/StellaOps.Concelier.Connector.Vndr.Chromium/Internal/ChromiumSchemaProvider.cs index 9060d632..77ef6d03 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Chromium/Internal/ChromiumSchemaProvider.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Chromium/Internal/ChromiumSchemaProvider.cs @@ -3,7 +3,7 @@ using System.Reflection; using System.Threading; using Json.Schema; -namespace StellaOps.Concelier.Source.Vndr.Chromium.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Chromium.Internal; internal static class ChromiumSchemaProvider { @@ -14,7 +14,7 @@ internal static class ChromiumSchemaProvider private static JsonSchema Load() { var assembly = typeof(ChromiumSchemaProvider).GetTypeInfo().Assembly; - const string resourceName = "StellaOps.Concelier.Source.Vndr.Chromium.Schemas.chromium-post.schema.json"; + const string resourceName = "StellaOps.Concelier.Connector.Vndr.Chromium.Schemas.chromium-post.schema.json"; using var stream = assembly.GetManifestResourceStream(resourceName) ?? throw new InvalidOperationException($"Embedded schema '{resourceName}' not found."); diff --git a/src/StellaOps.Concelier.Connector.Vndr.Chromium/Properties/AssemblyInfo.cs b/src/StellaOps.Concelier.Connector.Vndr.Chromium/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..9bfffcf6 --- /dev/null +++ b/src/StellaOps.Concelier.Connector.Vndr.Chromium/Properties/AssemblyInfo.cs @@ -0,0 +1,3 @@ +using System.Runtime.CompilerServices; + +[assembly: InternalsVisibleTo("StellaOps.Concelier.Connector.Vndr.Chromium.Tests")] diff --git a/src/StellaOps.Concelier.Source.Vndr.Chromium/Schemas/chromium-post.schema.json b/src/StellaOps.Concelier.Connector.Vndr.Chromium/Schemas/chromium-post.schema.json similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Chromium/Schemas/chromium-post.schema.json rename to src/StellaOps.Concelier.Connector.Vndr.Chromium/Schemas/chromium-post.schema.json diff --git a/src/StellaOps.Concelier.Source.Vndr.Chromium/StellaOps.Concelier.Source.Vndr.Chromium.csproj b/src/StellaOps.Concelier.Connector.Vndr.Chromium/StellaOps.Concelier.Connector.Vndr.Chromium.csproj similarity index 80% rename from src/StellaOps.Concelier.Source.Vndr.Chromium/StellaOps.Concelier.Source.Vndr.Chromium.csproj rename to src/StellaOps.Concelier.Connector.Vndr.Chromium/StellaOps.Concelier.Connector.Vndr.Chromium.csproj index afc3e727..e1f0543a 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Chromium/StellaOps.Concelier.Source.Vndr.Chromium.csproj +++ b/src/StellaOps.Concelier.Connector.Vndr.Chromium/StellaOps.Concelier.Connector.Vndr.Chromium.csproj @@ -18,14 +18,14 @@ - + - <_Parameter1>StellaOps.Concelier.Source.Vndr.Chromium.Tests + <_Parameter1>StellaOps.Concelier.Connector.Vndr.Chromium.Tests diff --git a/src/StellaOps.Concelier.Source.Vndr.Chromium/TASKS.md b/src/StellaOps.Concelier.Connector.Vndr.Chromium/TASKS.md similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Chromium/TASKS.md rename to src/StellaOps.Concelier.Connector.Vndr.Chromium/TASKS.md diff --git a/src/StellaOps.Concelier.Source.Vndr.Cisco.Tests/CiscoDtoFactoryTests.cs b/src/StellaOps.Concelier.Connector.Vndr.Cisco.Tests/CiscoDtoFactoryTests.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Vndr.Cisco.Tests/CiscoDtoFactoryTests.cs rename to src/StellaOps.Concelier.Connector.Vndr.Cisco.Tests/CiscoDtoFactoryTests.cs index 2d43b4b3..f6b176e9 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Cisco.Tests/CiscoDtoFactoryTests.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Cisco.Tests/CiscoDtoFactoryTests.cs @@ -3,10 +3,10 @@ using System.Threading; using System.Threading.Tasks; using FluentAssertions; using Microsoft.Extensions.Logging.Abstractions; -using StellaOps.Concelier.Source.Vndr.Cisco.Internal; +using StellaOps.Concelier.Connector.Vndr.Cisco.Internal; using Xunit; -namespace StellaOps.Concelier.Source.Vndr.Cisco.Tests; +namespace StellaOps.Concelier.Connector.Vndr.Cisco.Tests; public sealed class CiscoDtoFactoryTests { diff --git a/src/StellaOps.Concelier.Source.Vndr.Cisco.Tests/CiscoMapperTests.cs b/src/StellaOps.Concelier.Connector.Vndr.Cisco.Tests/CiscoMapperTests.cs similarity index 93% rename from src/StellaOps.Concelier.Source.Vndr.Cisco.Tests/CiscoMapperTests.cs rename to src/StellaOps.Concelier.Connector.Vndr.Cisco.Tests/CiscoMapperTests.cs index 79ce66ea..5f4b5b27 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Cisco.Tests/CiscoMapperTests.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Cisco.Tests/CiscoMapperTests.cs @@ -3,14 +3,14 @@ using System.Collections.Generic; using FluentAssertions; using MongoDB.Bson; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Vndr.Cisco; -using StellaOps.Concelier.Source.Vndr.Cisco.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Vndr.Cisco; +using StellaOps.Concelier.Connector.Vndr.Cisco.Internal; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using Xunit; -namespace StellaOps.Concelier.Source.Vndr.Cisco.Tests; +namespace StellaOps.Concelier.Connector.Vndr.Cisco.Tests; public sealed class CiscoMapperTests { diff --git a/src/StellaOps.Concelier.Source.Vndr.Cisco.Tests/StellaOps.Concelier.Source.Vndr.Cisco.Tests.csproj b/src/StellaOps.Concelier.Connector.Vndr.Cisco.Tests/StellaOps.Concelier.Connector.Vndr.Cisco.Tests.csproj similarity index 63% rename from src/StellaOps.Concelier.Source.Vndr.Cisco.Tests/StellaOps.Concelier.Source.Vndr.Cisco.Tests.csproj rename to src/StellaOps.Concelier.Connector.Vndr.Cisco.Tests/StellaOps.Concelier.Connector.Vndr.Cisco.Tests.csproj index 1a9cc947..bace2536 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Cisco.Tests/StellaOps.Concelier.Source.Vndr.Cisco.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.Vndr.Cisco.Tests/StellaOps.Concelier.Connector.Vndr.Cisco.Tests.csproj @@ -7,8 +7,8 @@ - - + + diff --git a/src/StellaOps.Concelier.Source.Vndr.Cisco/AGENTS.md b/src/StellaOps.Concelier.Connector.Vndr.Cisco/AGENTS.md similarity index 92% rename from src/StellaOps.Concelier.Source.Vndr.Cisco/AGENTS.md rename to src/StellaOps.Concelier.Connector.Vndr.Cisco/AGENTS.md index 930126a3..52a2f25d 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Cisco/AGENTS.md +++ b/src/StellaOps.Concelier.Connector.Vndr.Cisco/AGENTS.md @@ -26,5 +26,5 @@ Out of scope: Non-security Cisco release notes. - Handle authentication tokens if API requires them. ## Tests -- Add `StellaOps.Concelier.Source.Vndr.Cisco.Tests` with canned fixtures for fetch/parse/map. +- Add `StellaOps.Concelier.Connector.Vndr.Cisco.Tests` with canned fixtures for fetch/parse/map. - Snapshot canonical advisories and support fixture regeneration. diff --git a/src/StellaOps.Concelier.Source.Vndr.Cisco/CiscoConnector.cs b/src/StellaOps.Concelier.Connector.Vndr.Cisco/CiscoConnector.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Vndr.Cisco/CiscoConnector.cs rename to src/StellaOps.Concelier.Connector.Vndr.Cisco/CiscoConnector.cs index 0c25b73b..2ef7b35c 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Cisco/CiscoConnector.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Cisco/CiscoConnector.cs @@ -7,17 +7,17 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using MongoDB.Bson; using MongoDB.Driver; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Vndr.Cisco.Configuration; -using StellaOps.Concelier.Source.Vndr.Cisco.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Vndr.Cisco.Configuration; +using StellaOps.Concelier.Connector.Vndr.Cisco.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Vndr.Cisco; +namespace StellaOps.Concelier.Connector.Vndr.Cisco; public sealed class CiscoConnector : IFeedConnector { diff --git a/src/StellaOps.Concelier.Source.Vndr.Cisco/CiscoDependencyInjectionRoutine.cs b/src/StellaOps.Concelier.Connector.Vndr.Cisco/CiscoDependencyInjectionRoutine.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Vndr.Cisco/CiscoDependencyInjectionRoutine.cs rename to src/StellaOps.Concelier.Connector.Vndr.Cisco/CiscoDependencyInjectionRoutine.cs index b395d4d7..59cbb383 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Cisco/CiscoDependencyInjectionRoutine.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Cisco/CiscoDependencyInjectionRoutine.cs @@ -4,7 +4,7 @@ using Microsoft.Extensions.DependencyInjection; using StellaOps.DependencyInjection; using StellaOps.Concelier.Core.Jobs; -namespace StellaOps.Concelier.Source.Vndr.Cisco; +namespace StellaOps.Concelier.Connector.Vndr.Cisco; public sealed class CiscoDependencyInjectionRoutine : IDependencyInjectionRoutine { diff --git a/src/StellaOps.Concelier.Source.Vndr.Cisco/CiscoServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.Vndr.Cisco/CiscoServiceCollectionExtensions.cs similarity index 91% rename from src/StellaOps.Concelier.Source.Vndr.Cisco/CiscoServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.Vndr.Cisco/CiscoServiceCollectionExtensions.cs index 18259f3b..8d6b1905 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Cisco/CiscoServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Cisco/CiscoServiceCollectionExtensions.cs @@ -2,12 +2,12 @@ using System; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Vndr.Cisco.Configuration; -using StellaOps.Concelier.Source.Vndr.Cisco.Internal; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Vndr.Cisco.Configuration; +using StellaOps.Concelier.Connector.Vndr.Cisco.Internal; -namespace StellaOps.Concelier.Source.Vndr.Cisco; +namespace StellaOps.Concelier.Connector.Vndr.Cisco; public static class CiscoServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Source.Vndr.Cisco/Configuration/CiscoOptions.cs b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Configuration/CiscoOptions.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Vndr.Cisco/Configuration/CiscoOptions.cs rename to src/StellaOps.Concelier.Connector.Vndr.Cisco/Configuration/CiscoOptions.cs index 0a744f88..fd1768e3 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Cisco/Configuration/CiscoOptions.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Configuration/CiscoOptions.cs @@ -1,6 +1,6 @@ using System.Globalization; -namespace StellaOps.Concelier.Source.Vndr.Cisco.Configuration; +namespace StellaOps.Concelier.Connector.Vndr.Cisco.Configuration; public sealed class CiscoOptions { diff --git a/src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoAccessTokenProvider.cs b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoAccessTokenProvider.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoAccessTokenProvider.cs rename to src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoAccessTokenProvider.cs index 2b5ae721..86cecf49 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoAccessTokenProvider.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoAccessTokenProvider.cs @@ -3,9 +3,9 @@ using System.Text.Json; using System.Text.Json.Serialization; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Vndr.Cisco.Configuration; +using StellaOps.Concelier.Connector.Vndr.Cisco.Configuration; -namespace StellaOps.Concelier.Source.Vndr.Cisco.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Cisco.Internal; internal sealed class CiscoAccessTokenProvider : IDisposable { diff --git a/src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoAdvisoryDto.cs b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoAdvisoryDto.cs similarity index 90% rename from src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoAdvisoryDto.cs rename to src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoAdvisoryDto.cs index f4be646b..c5f14419 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoAdvisoryDto.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoAdvisoryDto.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -namespace StellaOps.Concelier.Source.Vndr.Cisco.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Cisco.Internal; public sealed record CiscoAdvisoryDto( string AdvisoryId, diff --git a/src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoCsafClient.cs b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoCsafClient.cs similarity index 92% rename from src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoCsafClient.cs rename to src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoCsafClient.cs index 2d6719e6..9f8d2870 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoCsafClient.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoCsafClient.cs @@ -3,10 +3,10 @@ using System.IO; using System.Net.Http; using System.Text; using Microsoft.Extensions.Logging; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Vndr.Cisco.Configuration; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Vndr.Cisco.Configuration; -namespace StellaOps.Concelier.Source.Vndr.Cisco.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Cisco.Internal; public interface ICiscoCsafClient { diff --git a/src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoCsafData.cs b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoCsafData.cs similarity index 82% rename from src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoCsafData.cs rename to src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoCsafData.cs index 27c4f60d..cc1e87d9 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoCsafData.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoCsafData.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; -namespace StellaOps.Concelier.Source.Vndr.Cisco.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Cisco.Internal; internal sealed record CiscoCsafData( IReadOnlyDictionary Products, diff --git a/src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoCsafParser.cs b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoCsafParser.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoCsafParser.cs rename to src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoCsafParser.cs index b036a1a4..be956e3e 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoCsafParser.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoCsafParser.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Text.Json; -namespace StellaOps.Concelier.Source.Vndr.Cisco.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Cisco.Internal; internal static class CiscoCsafParser { diff --git a/src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoCursor.cs b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoCursor.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoCursor.cs rename to src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoCursor.cs index b8acb650..528cc28e 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoCursor.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoCursor.cs @@ -1,6 +1,6 @@ using MongoDB.Bson; -namespace StellaOps.Concelier.Source.Vndr.Cisco.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Cisco.Internal; internal sealed record CiscoCursor( DateTimeOffset? LastModified, diff --git a/src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoDiagnostics.cs b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoDiagnostics.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoDiagnostics.cs rename to src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoDiagnostics.cs index c83708b2..8c421a98 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoDiagnostics.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoDiagnostics.cs @@ -1,10 +1,10 @@ using System.Diagnostics.Metrics; -namespace StellaOps.Concelier.Source.Vndr.Cisco.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Cisco.Internal; public sealed class CiscoDiagnostics : IDisposable { - public const string MeterName = "StellaOps.Concelier.Source.Vndr.Cisco"; + public const string MeterName = "StellaOps.Concelier.Connector.Vndr.Cisco"; private const string MeterVersion = "1.0.0"; private readonly Meter _meter; diff --git a/src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoDtoFactory.cs b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoDtoFactory.cs similarity index 99% rename from src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoDtoFactory.cs rename to src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoDtoFactory.cs index e7e2c6f7..e2d879b8 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoDtoFactory.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoDtoFactory.cs @@ -5,7 +5,7 @@ using System.Text.Json; using Microsoft.Extensions.Logging; using StellaOps.Concelier.Models; -namespace StellaOps.Concelier.Source.Vndr.Cisco.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Cisco.Internal; public class CiscoDtoFactory { diff --git a/src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoMapper.cs b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoMapper.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoMapper.cs rename to src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoMapper.cs index 4d66fef0..5477b59b 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoMapper.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoMapper.cs @@ -2,11 +2,11 @@ using System; using System.Collections.Generic; using System.Linq; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common.Packages; +using StellaOps.Concelier.Connector.Common.Packages; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; -namespace StellaOps.Concelier.Source.Vndr.Cisco.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Cisco.Internal; public static class CiscoMapper { diff --git a/src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoOAuthMessageHandler.cs b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoOAuthMessageHandler.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoOAuthMessageHandler.cs rename to src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoOAuthMessageHandler.cs index 67d5152f..7fdecae1 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoOAuthMessageHandler.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoOAuthMessageHandler.cs @@ -3,7 +3,7 @@ using System.Net; using System.Net.Http.Headers; using Microsoft.Extensions.Logging; -namespace StellaOps.Concelier.Source.Vndr.Cisco.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Cisco.Internal; internal sealed class CiscoOAuthMessageHandler : DelegatingHandler { diff --git a/src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoOpenVulnClient.cs b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoOpenVulnClient.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoOpenVulnClient.cs rename to src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoOpenVulnClient.cs index 2556fae6..38bdb5ac 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoOpenVulnClient.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoOpenVulnClient.cs @@ -4,10 +4,10 @@ using System.Text.Json; using System.Text.Json.Serialization; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Vndr.Cisco.Configuration; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Vndr.Cisco.Configuration; -namespace StellaOps.Concelier.Source.Vndr.Cisco.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Cisco.Internal; public sealed class CiscoOpenVulnClient { diff --git a/src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoRawAdvisory.cs b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoRawAdvisory.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoRawAdvisory.cs rename to src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoRawAdvisory.cs index adc9ebca..4c0dffc5 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Cisco/Internal/CiscoRawAdvisory.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Internal/CiscoRawAdvisory.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.Text.Json.Serialization; -namespace StellaOps.Concelier.Source.Vndr.Cisco.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Cisco.Internal; public class CiscoRawAdvisory { diff --git a/src/StellaOps.Concelier.Source.Vndr.Cisco/Jobs.cs b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Jobs.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Vndr.Cisco/Jobs.cs rename to src/StellaOps.Concelier.Connector.Vndr.Cisco/Jobs.cs index 62b857dd..f77721d7 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Cisco/Jobs.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Cisco/Jobs.cs @@ -3,7 +3,7 @@ using System.Threading; using System.Threading.Tasks; using StellaOps.Concelier.Core.Jobs; -namespace StellaOps.Concelier.Source.Vndr.Cisco; +namespace StellaOps.Concelier.Connector.Vndr.Cisco; internal static class CiscoJobKinds { diff --git a/src/StellaOps.Concelier.Source.Acsc/StellaOps.Concelier.Source.Acsc.csproj b/src/StellaOps.Concelier.Connector.Vndr.Cisco/StellaOps.Concelier.Connector.Vndr.Cisco.csproj similarity index 83% rename from src/StellaOps.Concelier.Source.Acsc/StellaOps.Concelier.Source.Acsc.csproj rename to src/StellaOps.Concelier.Connector.Vndr.Cisco/StellaOps.Concelier.Connector.Vndr.Cisco.csproj index 68054408..4eea5e86 100644 --- a/src/StellaOps.Concelier.Source.Acsc/StellaOps.Concelier.Source.Acsc.csproj +++ b/src/StellaOps.Concelier.Connector.Vndr.Cisco/StellaOps.Concelier.Connector.Vndr.Cisco.csproj @@ -6,13 +6,11 @@ enable - + - - + + - - diff --git a/src/StellaOps.Concelier.Source.Vndr.Cisco/TASKS.md b/src/StellaOps.Concelier.Connector.Vndr.Cisco/TASKS.md similarity index 96% rename from src/StellaOps.Concelier.Source.Vndr.Cisco/TASKS.md rename to src/StellaOps.Concelier.Connector.Vndr.Cisco/TASKS.md index f314f4d1..8f113ef5 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Cisco/TASKS.md +++ b/src/StellaOps.Concelier.Connector.Vndr.Cisco/TASKS.md @@ -5,7 +5,7 @@ |FEEDCONN-CISCO-02-002 Fetch pipeline & state persistence|BE-Conn-Cisco|Source.Common, Storage.Mongo|**DONE (2025-10-14)** – Fetch job now streams openVuln pages with OAuth bearer handler, honours 429 `Retry-After`, persists per-advisory JSON + metadata into GridFS, and updates cursor (`lastModified`, advisory ID, pending docs).| |FEEDCONN-CISCO-02-003 Parser & DTO implementation|BE-Conn-Cisco|Source.Common|**DONE (2025-10-14)** – DTO factory normalizes SIR, folds CSAF product statuses, and persists `cisco.dto.v1` payloads (see `CiscoDtoFactory`).| |FEEDCONN-CISCO-02-004 Canonical mapping & range primitives|BE-Conn-Cisco|Models|**DONE (2025-10-14)** – `CiscoMapper` emits canonical advisories with vendor + SemVer primitives, provenance, and status tags.| -|FEEDCONN-CISCO-02-005 Deterministic fixtures & tests|QA|Testing|**DONE (2025-10-14)** – Added unit tests (`StellaOps.Concelier.Source.Vndr.Cisco.Tests`) exercising DTO/mapper pipelines; `dotnet test` validated.| +|FEEDCONN-CISCO-02-005 Deterministic fixtures & tests|QA|Testing|**DONE (2025-10-14)** – Added unit tests (`StellaOps.Concelier.Connector.Vndr.Cisco.Tests`) exercising DTO/mapper pipelines; `dotnet test` validated.| |FEEDCONN-CISCO-02-006 Telemetry & documentation|DevEx|Docs|**DONE (2025-10-14)** – Cisco diagnostics counters exposed and ops runbook updated with telemetry guidance (`docs/ops/concelier-cisco-operations.md`).| |FEEDCONN-CISCO-02-007 API selection decision memo|BE-Conn-Cisco|Research|**DONE (2025-10-11)** – Drafted decision matrix: openVuln (structured/delta filters, OAuth throttle) vs RSS (delayed/minimal metadata). Pending OAuth onboarding (`FEEDCONN-CISCO-02-008`) before final recommendation circulated.| |FEEDCONN-CISCO-02-008 OAuth client provisioning|Ops, BE-Conn-Cisco|Ops|**DONE (2025-10-14)** – `docs/ops/concelier-cisco-operations.md` documents OAuth provisioning/rotation, quotas, and Offline Kit distribution guidance.| diff --git a/src/StellaOps.Concelier.Source.Vndr.Cisco/VndrCiscoConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.Vndr.Cisco/VndrCiscoConnectorPlugin.cs similarity index 91% rename from src/StellaOps.Concelier.Source.Vndr.Cisco/VndrCiscoConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.Vndr.Cisco/VndrCiscoConnectorPlugin.cs index 7c80366a..a9c3561b 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Cisco/VndrCiscoConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Cisco/VndrCiscoConnectorPlugin.cs @@ -2,7 +2,7 @@ using System; using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Vndr.Cisco; +namespace StellaOps.Concelier.Connector.Vndr.Cisco; public sealed class VndrCiscoConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.Vndr.Msrc.Tests/Fixtures/msrc-detail.json b/src/StellaOps.Concelier.Connector.Vndr.Msrc.Tests/Fixtures/msrc-detail.json similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Msrc.Tests/Fixtures/msrc-detail.json rename to src/StellaOps.Concelier.Connector.Vndr.Msrc.Tests/Fixtures/msrc-detail.json diff --git a/src/StellaOps.Concelier.Source.Vndr.Msrc.Tests/Fixtures/msrc-summary.json b/src/StellaOps.Concelier.Connector.Vndr.Msrc.Tests/Fixtures/msrc-summary.json similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Msrc.Tests/Fixtures/msrc-summary.json rename to src/StellaOps.Concelier.Connector.Vndr.Msrc.Tests/Fixtures/msrc-summary.json diff --git a/src/StellaOps.Concelier.Source.Vndr.Msrc.Tests/MsrcConnectorTests.cs b/src/StellaOps.Concelier.Connector.Vndr.Msrc.Tests/MsrcConnectorTests.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Vndr.Msrc.Tests/MsrcConnectorTests.cs rename to src/StellaOps.Concelier.Connector.Vndr.Msrc.Tests/MsrcConnectorTests.cs index f1056393..9e072968 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Msrc.Tests/MsrcConnectorTests.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Msrc.Tests/MsrcConnectorTests.cs @@ -11,20 +11,20 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Options; using MongoDB.Bson; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Testing; -using StellaOps.Concelier.Source.Vndr.Msrc.Configuration; -using StellaOps.Concelier.Source.Vndr.Msrc.Internal; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Testing; +using StellaOps.Concelier.Connector.Vndr.Msrc.Configuration; +using StellaOps.Concelier.Connector.Vndr.Msrc.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Concelier.Testing; using Xunit; -using StellaOps.Concelier.Source.Common.Http; +using StellaOps.Concelier.Connector.Common.Http; -namespace StellaOps.Concelier.Source.Vndr.Msrc.Tests; +namespace StellaOps.Concelier.Connector.Vndr.Msrc.Tests; [Collection("mongo-fixture")] public sealed class MsrcConnectorTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.Vndr.Msrc.Tests/StellaOps.Concelier.Source.Vndr.Msrc.Tests.csproj b/src/StellaOps.Concelier.Connector.Vndr.Msrc.Tests/StellaOps.Concelier.Connector.Vndr.Msrc.Tests.csproj similarity index 73% rename from src/StellaOps.Concelier.Source.Vndr.Msrc.Tests/StellaOps.Concelier.Source.Vndr.Msrc.Tests.csproj rename to src/StellaOps.Concelier.Connector.Vndr.Msrc.Tests/StellaOps.Concelier.Connector.Vndr.Msrc.Tests.csproj index 5f07c518..36eea42c 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Msrc.Tests/StellaOps.Concelier.Source.Vndr.Msrc.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.Vndr.Msrc.Tests/StellaOps.Concelier.Connector.Vndr.Msrc.Tests.csproj @@ -6,8 +6,8 @@ - - + + diff --git a/src/StellaOps.Concelier.Source.Vndr.Msrc/AGENTS.md b/src/StellaOps.Concelier.Connector.Vndr.Msrc/AGENTS.md similarity index 93% rename from src/StellaOps.Concelier.Source.Vndr.Msrc/AGENTS.md rename to src/StellaOps.Concelier.Connector.Vndr.Msrc/AGENTS.md index 673c8b9a..2cfc911b 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Msrc/AGENTS.md +++ b/src/StellaOps.Concelier.Connector.Vndr.Msrc/AGENTS.md @@ -26,5 +26,5 @@ Out of scope: Non-security Microsoft release notes. - Sanitize payloads; validate JSON/CVRF before persistence. ## Tests -- Add `StellaOps.Concelier.Source.Vndr.Msrc.Tests` with fixtures covering fetch/parse/map. +- Add `StellaOps.Concelier.Connector.Vndr.Msrc.Tests` with fixtures covering fetch/parse/map. - Snapshot canonical advisories; support fixture regeneration. diff --git a/src/StellaOps.Concelier.Source.Vndr.Msrc/Configuration/MsrcOptions.cs b/src/StellaOps.Concelier.Connector.Vndr.Msrc/Configuration/MsrcOptions.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Vndr.Msrc/Configuration/MsrcOptions.cs rename to src/StellaOps.Concelier.Connector.Vndr.Msrc/Configuration/MsrcOptions.cs index 0d3cef30..2bd43c38 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Msrc/Configuration/MsrcOptions.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Msrc/Configuration/MsrcOptions.cs @@ -1,6 +1,6 @@ using System.Globalization; -namespace StellaOps.Concelier.Source.Vndr.Msrc.Configuration; +namespace StellaOps.Concelier.Connector.Vndr.Msrc.Configuration; public sealed class MsrcOptions { diff --git a/src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcAdvisoryDto.cs b/src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcAdvisoryDto.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcAdvisoryDto.cs rename to src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcAdvisoryDto.cs index 7759e3bf..34315b47 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcAdvisoryDto.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcAdvisoryDto.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -namespace StellaOps.Concelier.Source.Vndr.Msrc.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Msrc.Internal; public sealed record MsrcAdvisoryDto { diff --git a/src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcApiClient.cs b/src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcApiClient.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcApiClient.cs rename to src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcApiClient.cs index befeb7f2..de1bc678 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcApiClient.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcApiClient.cs @@ -8,9 +8,9 @@ using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Vndr.Msrc.Configuration; +using StellaOps.Concelier.Connector.Vndr.Msrc.Configuration; -namespace StellaOps.Concelier.Source.Vndr.Msrc.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Msrc.Internal; public sealed class MsrcApiClient { diff --git a/src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcCursor.cs b/src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcCursor.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcCursor.cs rename to src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcCursor.cs index 7a3391b8..7166dd40 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcCursor.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcCursor.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using MongoDB.Bson; -namespace StellaOps.Concelier.Source.Vndr.Msrc.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Msrc.Internal; internal sealed record MsrcCursor( IReadOnlyCollection PendingDocuments, diff --git a/src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcDetailDto.cs b/src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcDetailDto.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcDetailDto.cs rename to src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcDetailDto.cs index 397242e8..8e108b8d 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcDetailDto.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcDetailDto.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json.Serialization; -namespace StellaOps.Concelier.Source.Vndr.Msrc.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Msrc.Internal; public sealed record MsrcVulnerabilityDetailDto { diff --git a/src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcDetailParser.cs b/src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcDetailParser.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcDetailParser.cs rename to src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcDetailParser.cs index e64f6be9..b9c57ea7 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcDetailParser.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcDetailParser.cs @@ -1,7 +1,7 @@ using System; using System.Linq; -namespace StellaOps.Concelier.Source.Vndr.Msrc.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Msrc.Internal; public sealed class MsrcDetailParser { diff --git a/src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcDiagnostics.cs b/src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcDiagnostics.cs similarity index 97% rename from src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcDiagnostics.cs rename to src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcDiagnostics.cs index 0525adcd..663548ef 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcDiagnostics.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcDiagnostics.cs @@ -2,11 +2,11 @@ using System; using System.Collections.Generic; using System.Diagnostics.Metrics; -namespace StellaOps.Concelier.Source.Vndr.Msrc.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Msrc.Internal; public sealed class MsrcDiagnostics : IDisposable { - private const string MeterName = "StellaOps.Concelier.Source.Vndr.Msrc"; + private const string MeterName = "StellaOps.Concelier.Connector.Vndr.Msrc"; private const string MeterVersion = "1.0.0"; private readonly Meter _meter; diff --git a/src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcDocumentMetadata.cs b/src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcDocumentMetadata.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcDocumentMetadata.cs rename to src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcDocumentMetadata.cs index 8afe465e..87627e61 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcDocumentMetadata.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcDocumentMetadata.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -namespace StellaOps.Concelier.Source.Vndr.Msrc.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Msrc.Internal; internal static class MsrcDocumentMetadata { diff --git a/src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcMapper.cs b/src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcMapper.cs similarity index 99% rename from src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcMapper.cs rename to src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcMapper.cs index bd684223..265b8ed5 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcMapper.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcMapper.cs @@ -4,7 +4,7 @@ using System.Linq; using StellaOps.Concelier.Models; using StellaOps.Concelier.Storage.Mongo.Documents; -namespace StellaOps.Concelier.Source.Vndr.Msrc.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Msrc.Internal; internal static class MsrcMapper { diff --git a/src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcSummaryResponse.cs b/src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcSummaryResponse.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcSummaryResponse.cs rename to src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcSummaryResponse.cs index 636999a0..31fef565 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcSummaryResponse.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcSummaryResponse.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json.Serialization; -namespace StellaOps.Concelier.Source.Vndr.Msrc.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Msrc.Internal; public sealed record MsrcSummaryResponse { diff --git a/src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcTokenProvider.cs b/src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcTokenProvider.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcTokenProvider.cs rename to src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcTokenProvider.cs index c68ceb99..69291148 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Msrc/Internal/MsrcTokenProvider.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Msrc/Internal/MsrcTokenProvider.cs @@ -7,9 +7,9 @@ using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Vndr.Msrc.Configuration; +using StellaOps.Concelier.Connector.Vndr.Msrc.Configuration; -namespace StellaOps.Concelier.Source.Vndr.Msrc.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Msrc.Internal; public interface IMsrcTokenProvider { diff --git a/src/StellaOps.Concelier.Source.Vndr.Msrc/Jobs.cs b/src/StellaOps.Concelier.Connector.Vndr.Msrc/Jobs.cs similarity index 92% rename from src/StellaOps.Concelier.Source.Vndr.Msrc/Jobs.cs rename to src/StellaOps.Concelier.Connector.Vndr.Msrc/Jobs.cs index 8666a524..3101773a 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Msrc/Jobs.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Msrc/Jobs.cs @@ -3,7 +3,7 @@ using System.Threading; using System.Threading.Tasks; using StellaOps.Concelier.Core.Jobs; -namespace StellaOps.Concelier.Source.Vndr.Msrc; +namespace StellaOps.Concelier.Connector.Vndr.Msrc; internal static class MsrcJobKinds { diff --git a/src/StellaOps.Concelier.Source.Vndr.Msrc/MsrcConnector.cs b/src/StellaOps.Concelier.Connector.Vndr.Msrc/MsrcConnector.cs similarity index 98% rename from src/StellaOps.Concelier.Source.Vndr.Msrc/MsrcConnector.cs rename to src/StellaOps.Concelier.Connector.Vndr.Msrc/MsrcConnector.cs index 1420cc09..c4fd943d 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Msrc/MsrcConnector.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Msrc/MsrcConnector.cs @@ -10,17 +10,17 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using MongoDB.Bson; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Vndr.Msrc.Configuration; -using StellaOps.Concelier.Source.Vndr.Msrc.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Vndr.Msrc.Configuration; +using StellaOps.Concelier.Connector.Vndr.Msrc.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Vndr.Msrc; +namespace StellaOps.Concelier.Connector.Vndr.Msrc; public sealed class MsrcConnector : IFeedConnector { diff --git a/src/StellaOps.Concelier.Source.Vndr.Msrc/MsrcConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.Vndr.Msrc/MsrcConnectorPlugin.cs similarity index 91% rename from src/StellaOps.Concelier.Source.Vndr.Msrc/MsrcConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.Vndr.Msrc/MsrcConnectorPlugin.cs index 9996db02..654011b4 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Msrc/MsrcConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Msrc/MsrcConnectorPlugin.cs @@ -2,7 +2,7 @@ using System; using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Vndr.Msrc; +namespace StellaOps.Concelier.Connector.Vndr.Msrc; public sealed class MsrcConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.Vndr.Msrc/MsrcDependencyInjectionRoutine.cs b/src/StellaOps.Concelier.Connector.Vndr.Msrc/MsrcDependencyInjectionRoutine.cs similarity index 92% rename from src/StellaOps.Concelier.Source.Vndr.Msrc/MsrcDependencyInjectionRoutine.cs rename to src/StellaOps.Concelier.Connector.Vndr.Msrc/MsrcDependencyInjectionRoutine.cs index 2cbf4343..033ad3e4 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Msrc/MsrcDependencyInjectionRoutine.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Msrc/MsrcDependencyInjectionRoutine.cs @@ -3,9 +3,9 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using StellaOps.DependencyInjection; using StellaOps.Concelier.Core.Jobs; -using StellaOps.Concelier.Source.Vndr.Msrc.Configuration; +using StellaOps.Concelier.Connector.Vndr.Msrc.Configuration; -namespace StellaOps.Concelier.Source.Vndr.Msrc; +namespace StellaOps.Concelier.Connector.Vndr.Msrc; public sealed class MsrcDependencyInjectionRoutine : IDependencyInjectionRoutine { diff --git a/src/StellaOps.Concelier.Source.Vndr.Msrc/MsrcServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.Vndr.Msrc/MsrcServiceCollectionExtensions.cs similarity index 90% rename from src/StellaOps.Concelier.Source.Vndr.Msrc/MsrcServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.Vndr.Msrc/MsrcServiceCollectionExtensions.cs index e23d425a..f5aed6e3 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Msrc/MsrcServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Msrc/MsrcServiceCollectionExtensions.cs @@ -3,11 +3,11 @@ using System.Net; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Vndr.Msrc.Configuration; -using StellaOps.Concelier.Source.Vndr.Msrc.Internal; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Vndr.Msrc.Configuration; +using StellaOps.Concelier.Connector.Vndr.Msrc.Internal; -namespace StellaOps.Concelier.Source.Vndr.Msrc; +namespace StellaOps.Concelier.Connector.Vndr.Msrc; public static class MsrcServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Source.Vndr.Msrc/README.md b/src/StellaOps.Concelier.Connector.Vndr.Msrc/README.md similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Msrc/README.md rename to src/StellaOps.Concelier.Connector.Vndr.Msrc/README.md diff --git a/src/StellaOps.Concelier.Source.Vndr.Msrc/StellaOps.Concelier.Source.Vndr.Msrc.csproj b/src/StellaOps.Concelier.Connector.Vndr.Msrc/StellaOps.Concelier.Connector.Vndr.Msrc.csproj similarity index 75% rename from src/StellaOps.Concelier.Source.Vndr.Msrc/StellaOps.Concelier.Source.Vndr.Msrc.csproj rename to src/StellaOps.Concelier.Connector.Vndr.Msrc/StellaOps.Concelier.Connector.Vndr.Msrc.csproj index 7066145d..d97e92d3 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Msrc/StellaOps.Concelier.Source.Vndr.Msrc.csproj +++ b/src/StellaOps.Concelier.Connector.Vndr.Msrc/StellaOps.Concelier.Connector.Vndr.Msrc.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/StellaOps.Concelier.Source.Vndr.Msrc/TASKS.md b/src/StellaOps.Concelier.Connector.Vndr.Msrc/TASKS.md similarity index 92% rename from src/StellaOps.Concelier.Source.Vndr.Msrc/TASKS.md rename to src/StellaOps.Concelier.Connector.Vndr.Msrc/TASKS.md index b8b1e29f..3d07693c 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Msrc/TASKS.md +++ b/src/StellaOps.Concelier.Connector.Vndr.Msrc/TASKS.md @@ -5,7 +5,7 @@ |FEEDCONN-MSRC-02-002 Fetch pipeline & source state|BE-Conn-MSRC|Source.Common, Storage.Mongo|**DONE (2025-10-15)** – Added `MsrcApiClient` + token provider, cursor overlap handling, and detail persistence via GridFS (metadata carries CVRF URL + timestamps). State tracks `lastModifiedCursor` with configurable overlap/backoff. **Next:** coordinate with Tools on shared state-seeding helper once CVRF download flag stabilises.| |FEEDCONN-MSRC-02-003 Parser & DTO implementation|BE-Conn-MSRC|Source.Common|**DONE (2025-10-15)** – Implemented `MsrcDetailParser`/DTOs capturing threats, remediations, KB IDs, CVEs, CVSS, and affected products (build/platform metadata preserved).| |FEEDCONN-MSRC-02-004 Canonical mapping & range primitives|BE-Conn-MSRC|Models|**DONE (2025-10-15)** – `MsrcMapper` emits aliases (MSRC ID/CVE/KB), references (release notes + CVRF), vendor packages with `msrc.build` normalized rules, and CVSS provenance.| -|FEEDCONN-MSRC-02-005 Deterministic fixtures/tests|QA|Testing|**DONE (2025-10-15)** – Added `StellaOps.Concelier.Source.Vndr.Msrc.Tests` with canned token/summary/detail responses and snapshot assertions via Mongo2Go. Fixtures regenerate via `UPDATE_MSRC_FIXTURES`.| +|FEEDCONN-MSRC-02-005 Deterministic fixtures/tests|QA|Testing|**DONE (2025-10-15)** – Added `StellaOps.Concelier.Connector.Vndr.Msrc.Tests` with canned token/summary/detail responses and snapshot assertions via Mongo2Go. Fixtures regenerate via `UPDATE_MSRC_FIXTURES`.| |FEEDCONN-MSRC-02-006 Telemetry & documentation|DevEx|Docs|**DONE (2025-10-15)** – Introduced `MsrcDiagnostics` meter (summary/detail/parse/map metrics), structured fetch logs, README updates, and Ops brief `docs/ops/concelier-msrc-operations.md` covering AAD onboarding + CVRF handling.| |FEEDCONN-MSRC-02-007 API contract comparison memo|BE-Conn-MSRC|Research|**DONE (2025-10-11)** – Completed memo outline recommending dual-path (REST for incremental, CVRF for offline); implementation hinges on `FEEDCONN-MSRC-02-008` AAD onboarding for token acquisition.| |FEEDCONN-MSRC-02-008 Azure AD application onboarding|Ops, BE-Conn-MSRC|Ops|**DONE (2025-10-15)** – Coordinated Ops handoff; drafted AAD onboarding brief (`docs/ops/concelier-msrc-operations.md`) with app registration requirements, secret rotation policy, sample configuration, and CVRF mirroring guidance for Offline Kit.| diff --git a/src/StellaOps.Concelier.Source.Vndr.Oracle.Tests/Oracle/Fixtures/oracle-advisories.snapshot.json b/src/StellaOps.Concelier.Connector.Vndr.Oracle.Tests/Oracle/Fixtures/oracle-advisories.snapshot.json similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Oracle.Tests/Oracle/Fixtures/oracle-advisories.snapshot.json rename to src/StellaOps.Concelier.Connector.Vndr.Oracle.Tests/Oracle/Fixtures/oracle-advisories.snapshot.json diff --git a/src/StellaOps.Concelier.Source.Vndr.Oracle.Tests/Oracle/Fixtures/oracle-calendar-cpuapr2024-single.html b/src/StellaOps.Concelier.Connector.Vndr.Oracle.Tests/Oracle/Fixtures/oracle-calendar-cpuapr2024-single.html similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Oracle.Tests/Oracle/Fixtures/oracle-calendar-cpuapr2024-single.html rename to src/StellaOps.Concelier.Connector.Vndr.Oracle.Tests/Oracle/Fixtures/oracle-calendar-cpuapr2024-single.html diff --git a/src/StellaOps.Concelier.Source.Vndr.Oracle.Tests/Oracle/Fixtures/oracle-calendar-cpuapr2024.html b/src/StellaOps.Concelier.Connector.Vndr.Oracle.Tests/Oracle/Fixtures/oracle-calendar-cpuapr2024.html similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Oracle.Tests/Oracle/Fixtures/oracle-calendar-cpuapr2024.html rename to src/StellaOps.Concelier.Connector.Vndr.Oracle.Tests/Oracle/Fixtures/oracle-calendar-cpuapr2024.html diff --git a/src/StellaOps.Concelier.Source.Vndr.Oracle.Tests/Oracle/Fixtures/oracle-detail-cpuapr2024-01.html b/src/StellaOps.Concelier.Connector.Vndr.Oracle.Tests/Oracle/Fixtures/oracle-detail-cpuapr2024-01.html similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Oracle.Tests/Oracle/Fixtures/oracle-detail-cpuapr2024-01.html rename to src/StellaOps.Concelier.Connector.Vndr.Oracle.Tests/Oracle/Fixtures/oracle-detail-cpuapr2024-01.html diff --git a/src/StellaOps.Concelier.Source.Vndr.Oracle.Tests/Oracle/Fixtures/oracle-detail-cpuapr2024-02.html b/src/StellaOps.Concelier.Connector.Vndr.Oracle.Tests/Oracle/Fixtures/oracle-detail-cpuapr2024-02.html similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Oracle.Tests/Oracle/Fixtures/oracle-detail-cpuapr2024-02.html rename to src/StellaOps.Concelier.Connector.Vndr.Oracle.Tests/Oracle/Fixtures/oracle-detail-cpuapr2024-02.html diff --git a/src/StellaOps.Concelier.Source.Vndr.Oracle.Tests/Oracle/Fixtures/oracle-detail-invalid.html b/src/StellaOps.Concelier.Connector.Vndr.Oracle.Tests/Oracle/Fixtures/oracle-detail-invalid.html similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Oracle.Tests/Oracle/Fixtures/oracle-detail-invalid.html rename to src/StellaOps.Concelier.Connector.Vndr.Oracle.Tests/Oracle/Fixtures/oracle-detail-invalid.html diff --git a/src/StellaOps.Concelier.Source.Vndr.Oracle.Tests/Oracle/OracleConnectorTests.cs b/src/StellaOps.Concelier.Connector.Vndr.Oracle.Tests/Oracle/OracleConnectorTests.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Vndr.Oracle.Tests/Oracle/OracleConnectorTests.cs rename to src/StellaOps.Concelier.Connector.Vndr.Oracle.Tests/Oracle/OracleConnectorTests.cs index e6f0bffa..fac8670a 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Oracle.Tests/Oracle/OracleConnectorTests.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Oracle.Tests/Oracle/OracleConnectorTests.cs @@ -19,12 +19,12 @@ using MongoDB.Bson.Serialization; using MongoDB.Bson.Serialization.Serializers; using MongoDB.Driver; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Common.Testing; -using StellaOps.Concelier.Source.Vndr.Oracle; -using StellaOps.Concelier.Source.Vndr.Oracle.Configuration; -using StellaOps.Concelier.Source.Vndr.Oracle.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Common.Testing; +using StellaOps.Concelier.Connector.Vndr.Oracle; +using StellaOps.Concelier.Connector.Vndr.Oracle.Configuration; +using StellaOps.Concelier.Connector.Vndr.Oracle.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; @@ -32,7 +32,7 @@ using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Concelier.Testing; using Xunit.Abstractions; -namespace StellaOps.Concelier.Source.Vndr.Oracle.Tests; +namespace StellaOps.Concelier.Connector.Vndr.Oracle.Tests; [Collection("mongo-fixture")] public sealed class OracleConnectorTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.Vndr.Oracle.Tests/StellaOps.Concelier.Source.Vndr.Oracle.Tests.csproj b/src/StellaOps.Concelier.Connector.Vndr.Oracle.Tests/StellaOps.Concelier.Connector.Vndr.Oracle.Tests.csproj similarity index 70% rename from src/StellaOps.Concelier.Source.Vndr.Oracle.Tests/StellaOps.Concelier.Source.Vndr.Oracle.Tests.csproj rename to src/StellaOps.Concelier.Connector.Vndr.Oracle.Tests/StellaOps.Concelier.Connector.Vndr.Oracle.Tests.csproj index bf989385..0487a6c6 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Oracle.Tests/StellaOps.Concelier.Source.Vndr.Oracle.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.Vndr.Oracle.Tests/StellaOps.Concelier.Connector.Vndr.Oracle.Tests.csproj @@ -6,8 +6,8 @@ - - + + diff --git a/src/StellaOps.Concelier.Source.Vndr.Oracle/AGENTS.md b/src/StellaOps.Concelier.Connector.Vndr.Oracle/AGENTS.md similarity index 94% rename from src/StellaOps.Concelier.Source.Vndr.Oracle/AGENTS.md rename to src/StellaOps.Concelier.Connector.Vndr.Oracle/AGENTS.md index 64b766e1..f17567a5 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Oracle/AGENTS.md +++ b/src/StellaOps.Concelier.Connector.Vndr.Oracle/AGENTS.md @@ -22,6 +22,6 @@ Out: signing or patch artifact downloads. - Metrics: SourceDiagnostics emits `concelier.source.http.*` counters/histograms tagged `concelier.source=oracle`, so observability dashboards slice on that tag to monitor fetch pages, CPU cycle coverage, parse failures, and map affected counts. - Logs: cycle tags, advisory ids, extraction timings; redact nothing sensitive. ## Tests -- Author and review coverage in `../StellaOps.Concelier.Source.Vndr.Oracle.Tests`. +- Author and review coverage in `../StellaOps.Concelier.Connector.Vndr.Oracle.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. diff --git a/src/StellaOps.Concelier.Source.Vndr.Oracle/Configuration/OracleOptions.cs b/src/StellaOps.Concelier.Connector.Vndr.Oracle/Configuration/OracleOptions.cs similarity index 91% rename from src/StellaOps.Concelier.Source.Vndr.Oracle/Configuration/OracleOptions.cs rename to src/StellaOps.Concelier.Connector.Vndr.Oracle/Configuration/OracleOptions.cs index 51371336..edfb95d9 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Oracle/Configuration/OracleOptions.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Oracle/Configuration/OracleOptions.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Linq; -namespace StellaOps.Concelier.Source.Vndr.Oracle.Configuration; +namespace StellaOps.Concelier.Connector.Vndr.Oracle.Configuration; public sealed class OracleOptions { diff --git a/src/StellaOps.Concelier.Source.Vndr.Oracle/Internal/OracleAffectedEntry.cs b/src/StellaOps.Concelier.Connector.Vndr.Oracle/Internal/OracleAffectedEntry.cs similarity index 85% rename from src/StellaOps.Concelier.Source.Vndr.Oracle/Internal/OracleAffectedEntry.cs rename to src/StellaOps.Concelier.Connector.Vndr.Oracle/Internal/OracleAffectedEntry.cs index 83a5f6d2..44bc48ef 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Oracle/Internal/OracleAffectedEntry.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Oracle/Internal/OracleAffectedEntry.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace StellaOps.Concelier.Source.Vndr.Oracle.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Oracle.Internal; internal sealed record OracleAffectedEntry( [property: JsonPropertyName("product")] string Product, diff --git a/src/StellaOps.Concelier.Source.Vndr.Oracle/Internal/OracleCalendarFetcher.cs b/src/StellaOps.Concelier.Connector.Vndr.Oracle/Internal/OracleCalendarFetcher.cs similarity index 93% rename from src/StellaOps.Concelier.Source.Vndr.Oracle/Internal/OracleCalendarFetcher.cs rename to src/StellaOps.Concelier.Connector.Vndr.Oracle/Internal/OracleCalendarFetcher.cs index ae53d027..e5b91633 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Oracle/Internal/OracleCalendarFetcher.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Oracle/Internal/OracleCalendarFetcher.cs @@ -7,9 +7,9 @@ using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Vndr.Oracle.Configuration; +using StellaOps.Concelier.Connector.Vndr.Oracle.Configuration; -namespace StellaOps.Concelier.Source.Vndr.Oracle.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Oracle.Internal; public sealed class OracleCalendarFetcher { diff --git a/src/StellaOps.Concelier.Source.Vndr.Oracle/Internal/OracleCursor.cs b/src/StellaOps.Concelier.Connector.Vndr.Oracle/Internal/OracleCursor.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Vndr.Oracle/Internal/OracleCursor.cs rename to src/StellaOps.Concelier.Connector.Vndr.Oracle/Internal/OracleCursor.cs index 17b6834c..4c462f91 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Oracle/Internal/OracleCursor.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Oracle/Internal/OracleCursor.cs @@ -4,7 +4,7 @@ using System.Linq; using MongoDB.Bson; using StellaOps.Concelier.Storage.Mongo.Documents; -namespace StellaOps.Concelier.Source.Vndr.Oracle.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Oracle.Internal; internal sealed record OracleCursor( DateTimeOffset? LastProcessed, diff --git a/src/StellaOps.Concelier.Source.Vndr.Oracle/Internal/OracleDocumentMetadata.cs b/src/StellaOps.Concelier.Connector.Vndr.Oracle/Internal/OracleDocumentMetadata.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Vndr.Oracle/Internal/OracleDocumentMetadata.cs rename to src/StellaOps.Concelier.Connector.Vndr.Oracle/Internal/OracleDocumentMetadata.cs index a00f686d..dccac7b5 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Oracle/Internal/OracleDocumentMetadata.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Oracle/Internal/OracleDocumentMetadata.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using StellaOps.Concelier.Storage.Mongo.Documents; -namespace StellaOps.Concelier.Source.Vndr.Oracle.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Oracle.Internal; internal sealed record OracleDocumentMetadata( string AdvisoryId, diff --git a/src/StellaOps.Concelier.Source.Vndr.Oracle/Internal/OracleDto.cs b/src/StellaOps.Concelier.Connector.Vndr.Oracle/Internal/OracleDto.cs similarity index 90% rename from src/StellaOps.Concelier.Source.Vndr.Oracle/Internal/OracleDto.cs rename to src/StellaOps.Concelier.Connector.Vndr.Oracle/Internal/OracleDto.cs index cd698fff..8ec923d6 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Oracle/Internal/OracleDto.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Oracle/Internal/OracleDto.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json.Serialization; -namespace StellaOps.Concelier.Source.Vndr.Oracle.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Oracle.Internal; internal sealed record OracleDto( [property: JsonPropertyName("advisoryId")] string AdvisoryId, diff --git a/src/StellaOps.Concelier.Source.Vndr.Oracle/Internal/OracleDtoValidator.cs b/src/StellaOps.Concelier.Connector.Vndr.Oracle/Internal/OracleDtoValidator.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Vndr.Oracle/Internal/OracleDtoValidator.cs rename to src/StellaOps.Concelier.Connector.Vndr.Oracle/Internal/OracleDtoValidator.cs index 559063a8..4ca15bf3 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Oracle/Internal/OracleDtoValidator.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Oracle/Internal/OracleDtoValidator.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; -namespace StellaOps.Concelier.Source.Vndr.Oracle.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Oracle.Internal; internal static class OracleDtoValidator { diff --git a/src/StellaOps.Concelier.Source.Vndr.Oracle/Internal/OracleMapper.cs b/src/StellaOps.Concelier.Connector.Vndr.Oracle/Internal/OracleMapper.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Vndr.Oracle/Internal/OracleMapper.cs rename to src/StellaOps.Concelier.Connector.Vndr.Oracle/Internal/OracleMapper.cs index 2f09e92f..418a31fa 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Oracle/Internal/OracleMapper.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Oracle/Internal/OracleMapper.cs @@ -3,12 +3,12 @@ using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common.Packages; +using StellaOps.Concelier.Connector.Common.Packages; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Concelier.Storage.Mongo.PsirtFlags; -namespace StellaOps.Concelier.Source.Vndr.Oracle.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Oracle.Internal; internal static class OracleMapper { diff --git a/src/StellaOps.Concelier.Source.Vndr.Oracle/Internal/OracleParser.cs b/src/StellaOps.Concelier.Connector.Vndr.Oracle/Internal/OracleParser.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Vndr.Oracle/Internal/OracleParser.cs rename to src/StellaOps.Concelier.Connector.Vndr.Oracle/Internal/OracleParser.cs index 881df815..5ea69512 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Oracle/Internal/OracleParser.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Oracle/Internal/OracleParser.cs @@ -6,7 +6,7 @@ using System.Text.RegularExpressions; using AngleSharp.Html.Dom; using AngleSharp.Html.Parser; -namespace StellaOps.Concelier.Source.Vndr.Oracle.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Oracle.Internal; internal static class OracleParser { diff --git a/src/StellaOps.Concelier.Source.Vndr.Oracle/Internal/OraclePatchDocument.cs b/src/StellaOps.Concelier.Connector.Vndr.Oracle/Internal/OraclePatchDocument.cs similarity index 78% rename from src/StellaOps.Concelier.Source.Vndr.Oracle/Internal/OraclePatchDocument.cs rename to src/StellaOps.Concelier.Connector.Vndr.Oracle/Internal/OraclePatchDocument.cs index 5810e883..18638e13 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Oracle/Internal/OraclePatchDocument.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Oracle/Internal/OraclePatchDocument.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace StellaOps.Concelier.Source.Vndr.Oracle.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Oracle.Internal; internal sealed record OraclePatchDocument( [property: JsonPropertyName("product")] string Product, diff --git a/src/StellaOps.Concelier.Source.Vndr.Oracle/Jobs.cs b/src/StellaOps.Concelier.Connector.Vndr.Oracle/Jobs.cs similarity index 93% rename from src/StellaOps.Concelier.Source.Vndr.Oracle/Jobs.cs rename to src/StellaOps.Concelier.Connector.Vndr.Oracle/Jobs.cs index c94e1bf4..2bcdc478 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Oracle/Jobs.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Oracle/Jobs.cs @@ -3,7 +3,7 @@ using System.Threading; using System.Threading.Tasks; using StellaOps.Concelier.Core.Jobs; -namespace StellaOps.Concelier.Source.Vndr.Oracle; +namespace StellaOps.Concelier.Connector.Vndr.Oracle; internal static class OracleJobKinds { diff --git a/src/StellaOps.Concelier.Source.Vndr.Oracle/OracleConnector.cs b/src/StellaOps.Concelier.Connector.Vndr.Oracle/OracleConnector.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Vndr.Oracle/OracleConnector.cs rename to src/StellaOps.Concelier.Connector.Vndr.Oracle/OracleConnector.cs index b8206f18..912a6707 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Oracle/OracleConnector.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Oracle/OracleConnector.cs @@ -7,10 +7,10 @@ using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using MongoDB.Bson; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Vndr.Oracle.Configuration; -using StellaOps.Concelier.Source.Vndr.Oracle.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Vndr.Oracle.Configuration; +using StellaOps.Concelier.Connector.Vndr.Oracle.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; @@ -18,7 +18,7 @@ using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Concelier.Storage.Mongo.PsirtFlags; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Vndr.Oracle; +namespace StellaOps.Concelier.Connector.Vndr.Oracle; public sealed class OracleConnector : IFeedConnector { diff --git a/src/StellaOps.Concelier.Source.Vndr.Oracle/OracleDependencyInjectionRoutine.cs b/src/StellaOps.Concelier.Connector.Vndr.Oracle/OracleDependencyInjectionRoutine.cs similarity index 90% rename from src/StellaOps.Concelier.Source.Vndr.Oracle/OracleDependencyInjectionRoutine.cs rename to src/StellaOps.Concelier.Connector.Vndr.Oracle/OracleDependencyInjectionRoutine.cs index 0c651426..41539b95 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Oracle/OracleDependencyInjectionRoutine.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Oracle/OracleDependencyInjectionRoutine.cs @@ -3,9 +3,9 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using StellaOps.DependencyInjection; using StellaOps.Concelier.Core.Jobs; -using StellaOps.Concelier.Source.Vndr.Oracle.Configuration; +using StellaOps.Concelier.Connector.Vndr.Oracle.Configuration; -namespace StellaOps.Concelier.Source.Vndr.Oracle; +namespace StellaOps.Concelier.Connector.Vndr.Oracle; public sealed class OracleDependencyInjectionRoutine : IDependencyInjectionRoutine { diff --git a/src/StellaOps.Concelier.Source.Vndr.Oracle/OracleServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.Vndr.Oracle/OracleServiceCollectionExtensions.cs similarity index 84% rename from src/StellaOps.Concelier.Source.Vndr.Oracle/OracleServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.Vndr.Oracle/OracleServiceCollectionExtensions.cs index d28bbdb9..a6911e55 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Oracle/OracleServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Oracle/OracleServiceCollectionExtensions.cs @@ -2,11 +2,11 @@ using System; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Vndr.Oracle.Configuration; -using StellaOps.Concelier.Source.Vndr.Oracle.Internal; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Vndr.Oracle.Configuration; +using StellaOps.Concelier.Connector.Vndr.Oracle.Internal; -namespace StellaOps.Concelier.Source.Vndr.Oracle; +namespace StellaOps.Concelier.Connector.Vndr.Oracle; public static class OracleServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Connector.Vndr.Oracle/Properties/AssemblyInfo.cs b/src/StellaOps.Concelier.Connector.Vndr.Oracle/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..d040d4b0 --- /dev/null +++ b/src/StellaOps.Concelier.Connector.Vndr.Oracle/Properties/AssemblyInfo.cs @@ -0,0 +1,3 @@ +using System.Runtime.CompilerServices; + +[assembly: InternalsVisibleTo("StellaOps.Concelier.Connector.Vndr.Oracle.Tests")] diff --git a/src/StellaOps.Concelier.Source.Cccs/StellaOps.Concelier.Source.Cccs.csproj b/src/StellaOps.Concelier.Connector.Vndr.Oracle/StellaOps.Concelier.Connector.Vndr.Oracle.csproj similarity index 79% rename from src/StellaOps.Concelier.Source.Cccs/StellaOps.Concelier.Source.Cccs.csproj rename to src/StellaOps.Concelier.Connector.Vndr.Oracle/StellaOps.Concelier.Connector.Vndr.Oracle.csproj index e9413385..092f2073 100644 --- a/src/StellaOps.Concelier.Source.Cccs/StellaOps.Concelier.Source.Cccs.csproj +++ b/src/StellaOps.Concelier.Connector.Vndr.Oracle/StellaOps.Concelier.Connector.Vndr.Oracle.csproj @@ -6,11 +6,12 @@ enable - - - - - - - - + + + + + + + + + diff --git a/src/StellaOps.Concelier.Source.Vndr.Oracle/TASKS.md b/src/StellaOps.Concelier.Connector.Vndr.Oracle/TASKS.md similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Oracle/TASKS.md rename to src/StellaOps.Concelier.Connector.Vndr.Oracle/TASKS.md diff --git a/src/StellaOps.Concelier.Source.Vndr.Oracle/VndrOracleConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.Vndr.Oracle/VndrOracleConnectorPlugin.cs similarity index 88% rename from src/StellaOps.Concelier.Source.Vndr.Oracle/VndrOracleConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.Vndr.Oracle/VndrOracleConnectorPlugin.cs index 1f99bc2e..2430edcf 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Oracle/VndrOracleConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Oracle/VndrOracleConnectorPlugin.cs @@ -2,7 +2,7 @@ using System; using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Vndr.Oracle; +namespace StellaOps.Concelier.Connector.Vndr.Oracle; public sealed class VndrOracleConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.Vndr.Vmware.Tests/StellaOps.Concelier.Source.Vndr.Vmware.Tests.csproj b/src/StellaOps.Concelier.Connector.Vndr.Vmware.Tests/StellaOps.Concelier.Connector.Vndr.Vmware.Tests.csproj similarity index 69% rename from src/StellaOps.Concelier.Source.Vndr.Vmware.Tests/StellaOps.Concelier.Source.Vndr.Vmware.Tests.csproj rename to src/StellaOps.Concelier.Connector.Vndr.Vmware.Tests/StellaOps.Concelier.Connector.Vndr.Vmware.Tests.csproj index 24cbbc72..da4707d3 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Vmware.Tests/StellaOps.Concelier.Source.Vndr.Vmware.Tests.csproj +++ b/src/StellaOps.Concelier.Connector.Vndr.Vmware.Tests/StellaOps.Concelier.Connector.Vndr.Vmware.Tests.csproj @@ -6,8 +6,8 @@ - - + + diff --git a/src/StellaOps.Concelier.Source.Vndr.Vmware.Tests/Vmware/Fixtures/vmware-advisories.snapshot.json b/src/StellaOps.Concelier.Connector.Vndr.Vmware.Tests/Vmware/Fixtures/vmware-advisories.snapshot.json similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Vmware.Tests/Vmware/Fixtures/vmware-advisories.snapshot.json rename to src/StellaOps.Concelier.Connector.Vndr.Vmware.Tests/Vmware/Fixtures/vmware-advisories.snapshot.json diff --git a/src/StellaOps.Concelier.Source.Vndr.Vmware.Tests/Vmware/Fixtures/vmware-detail-vmsa-2024-0001.json b/src/StellaOps.Concelier.Connector.Vndr.Vmware.Tests/Vmware/Fixtures/vmware-detail-vmsa-2024-0001.json similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Vmware.Tests/Vmware/Fixtures/vmware-detail-vmsa-2024-0001.json rename to src/StellaOps.Concelier.Connector.Vndr.Vmware.Tests/Vmware/Fixtures/vmware-detail-vmsa-2024-0001.json diff --git a/src/StellaOps.Concelier.Source.Vndr.Vmware.Tests/Vmware/Fixtures/vmware-detail-vmsa-2024-0002.json b/src/StellaOps.Concelier.Connector.Vndr.Vmware.Tests/Vmware/Fixtures/vmware-detail-vmsa-2024-0002.json similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Vmware.Tests/Vmware/Fixtures/vmware-detail-vmsa-2024-0002.json rename to src/StellaOps.Concelier.Connector.Vndr.Vmware.Tests/Vmware/Fixtures/vmware-detail-vmsa-2024-0002.json diff --git a/src/StellaOps.Concelier.Source.Vndr.Vmware.Tests/Vmware/Fixtures/vmware-detail-vmsa-2024-0003.json b/src/StellaOps.Concelier.Connector.Vndr.Vmware.Tests/Vmware/Fixtures/vmware-detail-vmsa-2024-0003.json similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Vmware.Tests/Vmware/Fixtures/vmware-detail-vmsa-2024-0003.json rename to src/StellaOps.Concelier.Connector.Vndr.Vmware.Tests/Vmware/Fixtures/vmware-detail-vmsa-2024-0003.json diff --git a/src/StellaOps.Concelier.Source.Vndr.Vmware.Tests/Vmware/Fixtures/vmware-index-initial.json b/src/StellaOps.Concelier.Connector.Vndr.Vmware.Tests/Vmware/Fixtures/vmware-index-initial.json similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Vmware.Tests/Vmware/Fixtures/vmware-index-initial.json rename to src/StellaOps.Concelier.Connector.Vndr.Vmware.Tests/Vmware/Fixtures/vmware-index-initial.json diff --git a/src/StellaOps.Concelier.Source.Vndr.Vmware.Tests/Vmware/Fixtures/vmware-index-second.json b/src/StellaOps.Concelier.Connector.Vndr.Vmware.Tests/Vmware/Fixtures/vmware-index-second.json similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Vmware.Tests/Vmware/Fixtures/vmware-index-second.json rename to src/StellaOps.Concelier.Connector.Vndr.Vmware.Tests/Vmware/Fixtures/vmware-index-second.json diff --git a/src/StellaOps.Concelier.Source.Vndr.Vmware.Tests/Vmware/VmwareConnectorTests.cs b/src/StellaOps.Concelier.Connector.Vndr.Vmware.Tests/Vmware/VmwareConnectorTests.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Vndr.Vmware.Tests/Vmware/VmwareConnectorTests.cs rename to src/StellaOps.Concelier.Connector.Vndr.Vmware.Tests/Vmware/VmwareConnectorTests.cs index f5f7e9f5..c37cdd42 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Vmware.Tests/Vmware/VmwareConnectorTests.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Vmware.Tests/Vmware/VmwareConnectorTests.cs @@ -16,12 +16,12 @@ using Microsoft.Extensions.Time.Testing; using MongoDB.Bson; using MongoDB.Driver; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Common.Testing; -using StellaOps.Concelier.Source.Vndr.Vmware; -using StellaOps.Concelier.Source.Vndr.Vmware.Configuration; -using StellaOps.Concelier.Source.Vndr.Vmware.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Common.Testing; +using StellaOps.Concelier.Connector.Vndr.Vmware; +using StellaOps.Concelier.Connector.Vndr.Vmware.Configuration; +using StellaOps.Concelier.Connector.Vndr.Vmware.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; @@ -29,7 +29,7 @@ using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Concelier.Testing; using Xunit.Abstractions; -namespace StellaOps.Concelier.Source.Vndr.Vmware.Tests.Vmware; +namespace StellaOps.Concelier.Connector.Vndr.Vmware.Tests.Vmware; [Collection("mongo-fixture")] public sealed class VmwareConnectorTests : IAsyncLifetime diff --git a/src/StellaOps.Concelier.Source.Vndr.Vmware.Tests/Vmware/VmwareMapperTests.cs b/src/StellaOps.Concelier.Connector.Vndr.Vmware.Tests/Vmware/VmwareMapperTests.cs similarity index 91% rename from src/StellaOps.Concelier.Source.Vndr.Vmware.Tests/Vmware/VmwareMapperTests.cs rename to src/StellaOps.Concelier.Connector.Vndr.Vmware.Tests/Vmware/VmwareMapperTests.cs index 99b37ee3..a2fd486d 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Vmware.Tests/Vmware/VmwareMapperTests.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Vmware.Tests/Vmware/VmwareMapperTests.cs @@ -3,14 +3,14 @@ using System.Collections.Generic; using System.Text.Json; using MongoDB.Bson; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Vndr.Vmware; -using StellaOps.Concelier.Source.Vndr.Vmware.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Vndr.Vmware; +using StellaOps.Concelier.Connector.Vndr.Vmware.Internal; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using Xunit; -namespace StellaOps.Concelier.Source.Vndr.Vmware.Tests; +namespace StellaOps.Concelier.Connector.Vndr.Vmware.Tests; public sealed class VmwareMapperTests { diff --git a/src/StellaOps.Concelier.Source.Vndr.Vmware/AGENTS.md b/src/StellaOps.Concelier.Connector.Vndr.Vmware/AGENTS.md similarity index 94% rename from src/StellaOps.Concelier.Source.Vndr.Vmware/AGENTS.md rename to src/StellaOps.Concelier.Connector.Vndr.Vmware/AGENTS.md index c1de3217..e1cec064 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Vmware/AGENTS.md +++ b/src/StellaOps.Concelier.Connector.Vndr.Vmware/AGENTS.md @@ -23,6 +23,6 @@ Out: customer portal authentication flows beyond public advisories; downloading - Metrics: SourceDiagnostics emits shared `concelier.source.http.*` counters/histograms tagged `concelier.source=vmware`, allowing dashboards to measure fetch volume, parse failures, and map affected counts without bespoke metric names. - Logs: vmsa ids, product counts, extraction timings; handle portal rate limits politely. ## Tests -- Author and review coverage in `../StellaOps.Concelier.Source.Vndr.Vmware.Tests`. +- Author and review coverage in `../StellaOps.Concelier.Connector.Vndr.Vmware.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. diff --git a/src/StellaOps.Concelier.Source.Vndr.Vmware/Configuration/VmwareOptions.cs b/src/StellaOps.Concelier.Connector.Vndr.Vmware/Configuration/VmwareOptions.cs similarity index 93% rename from src/StellaOps.Concelier.Source.Vndr.Vmware/Configuration/VmwareOptions.cs rename to src/StellaOps.Concelier.Connector.Vndr.Vmware/Configuration/VmwareOptions.cs index 36c5c14e..9ed8f9b9 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Vmware/Configuration/VmwareOptions.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Vmware/Configuration/VmwareOptions.cs @@ -1,6 +1,6 @@ using System.Diagnostics.CodeAnalysis; -namespace StellaOps.Concelier.Source.Vndr.Vmware.Configuration; +namespace StellaOps.Concelier.Connector.Vndr.Vmware.Configuration; public sealed class VmwareOptions { diff --git a/src/StellaOps.Concelier.Source.Vndr.Vmware/Internal/VmwareCursor.cs b/src/StellaOps.Concelier.Connector.Vndr.Vmware/Internal/VmwareCursor.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Vndr.Vmware/Internal/VmwareCursor.cs rename to src/StellaOps.Concelier.Connector.Vndr.Vmware/Internal/VmwareCursor.cs index 327fd4e5..52e83ca4 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Vmware/Internal/VmwareCursor.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Vmware/Internal/VmwareCursor.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using MongoDB.Bson; -namespace StellaOps.Concelier.Source.Vndr.Vmware.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Vmware.Internal; internal sealed record VmwareCursor( DateTimeOffset? LastModified, diff --git a/src/StellaOps.Concelier.Source.Vndr.Vmware/Internal/VmwareDetailDto.cs b/src/StellaOps.Concelier.Connector.Vndr.Vmware/Internal/VmwareDetailDto.cs similarity index 92% rename from src/StellaOps.Concelier.Source.Vndr.Vmware/Internal/VmwareDetailDto.cs rename to src/StellaOps.Concelier.Connector.Vndr.Vmware/Internal/VmwareDetailDto.cs index 0846148c..f05d7964 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Vmware/Internal/VmwareDetailDto.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Vmware/Internal/VmwareDetailDto.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text.Json.Serialization; -namespace StellaOps.Concelier.Source.Vndr.Vmware.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Vmware.Internal; internal sealed record VmwareDetailDto { diff --git a/src/StellaOps.Concelier.Source.Vndr.Vmware/Internal/VmwareFetchCacheEntry.cs b/src/StellaOps.Concelier.Connector.Vndr.Vmware/Internal/VmwareFetchCacheEntry.cs similarity index 94% rename from src/StellaOps.Concelier.Source.Vndr.Vmware/Internal/VmwareFetchCacheEntry.cs rename to src/StellaOps.Concelier.Connector.Vndr.Vmware/Internal/VmwareFetchCacheEntry.cs index 55368d1b..2e2091fa 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Vmware/Internal/VmwareFetchCacheEntry.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Vmware/Internal/VmwareFetchCacheEntry.cs @@ -2,7 +2,7 @@ using System; using MongoDB.Bson; using StellaOps.Concelier.Storage.Mongo.Documents; -namespace StellaOps.Concelier.Source.Vndr.Vmware.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Vmware.Internal; internal sealed record VmwareFetchCacheEntry(string? Sha256, string? ETag, DateTimeOffset? LastModified) { diff --git a/src/StellaOps.Concelier.Source.Vndr.Vmware/Internal/VmwareIndexItem.cs b/src/StellaOps.Concelier.Connector.Vndr.Vmware/Internal/VmwareIndexItem.cs similarity index 81% rename from src/StellaOps.Concelier.Source.Vndr.Vmware/Internal/VmwareIndexItem.cs rename to src/StellaOps.Concelier.Connector.Vndr.Vmware/Internal/VmwareIndexItem.cs index cf134cd3..2b065fe5 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Vmware/Internal/VmwareIndexItem.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Vmware/Internal/VmwareIndexItem.cs @@ -1,7 +1,7 @@ using System; using System.Text.Json.Serialization; -namespace StellaOps.Concelier.Source.Vndr.Vmware.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Vmware.Internal; internal sealed record VmwareIndexItem { diff --git a/src/StellaOps.Concelier.Source.Vndr.Vmware/Internal/VmwareMapper.cs b/src/StellaOps.Concelier.Connector.Vndr.Vmware/Internal/VmwareMapper.cs similarity index 95% rename from src/StellaOps.Concelier.Source.Vndr.Vmware/Internal/VmwareMapper.cs rename to src/StellaOps.Concelier.Connector.Vndr.Vmware/Internal/VmwareMapper.cs index be6a7b99..9e7db5e7 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Vmware/Internal/VmwareMapper.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Vmware/Internal/VmwareMapper.cs @@ -2,13 +2,13 @@ using System; using System.Collections.Generic; using System.Linq; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Packages; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Packages; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Concelier.Storage.Mongo.PsirtFlags; -namespace StellaOps.Concelier.Source.Vndr.Vmware.Internal; +namespace StellaOps.Concelier.Connector.Vndr.Vmware.Internal; internal static class VmwareMapper { diff --git a/src/StellaOps.Concelier.Source.Vndr.Vmware/Jobs.cs b/src/StellaOps.Concelier.Connector.Vndr.Vmware/Jobs.cs similarity index 93% rename from src/StellaOps.Concelier.Source.Vndr.Vmware/Jobs.cs rename to src/StellaOps.Concelier.Connector.Vndr.Vmware/Jobs.cs index 8a4489dd..9dc64a05 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Vmware/Jobs.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Vmware/Jobs.cs @@ -3,7 +3,7 @@ using System.Threading; using System.Threading.Tasks; using StellaOps.Concelier.Core.Jobs; -namespace StellaOps.Concelier.Source.Vndr.Vmware; +namespace StellaOps.Concelier.Connector.Vndr.Vmware; internal static class VmwareJobKinds { diff --git a/src/StellaOps.Concelier.Connector.Vndr.Vmware/Properties/AssemblyInfo.cs b/src/StellaOps.Concelier.Connector.Vndr.Vmware/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..5d57512d --- /dev/null +++ b/src/StellaOps.Concelier.Connector.Vndr.Vmware/Properties/AssemblyInfo.cs @@ -0,0 +1,3 @@ +using System.Runtime.CompilerServices; + +[assembly: InternalsVisibleTo("StellaOps.Concelier.Connector.Vndr.Vmware.Tests")] diff --git a/src/StellaOps.Concelier.Source.Vndr.Vmware/StellaOps.Concelier.Source.Vndr.Vmware.csproj b/src/StellaOps.Concelier.Connector.Vndr.Vmware/StellaOps.Concelier.Connector.Vndr.Vmware.csproj similarity index 86% rename from src/StellaOps.Concelier.Source.Vndr.Vmware/StellaOps.Concelier.Source.Vndr.Vmware.csproj rename to src/StellaOps.Concelier.Connector.Vndr.Vmware/StellaOps.Concelier.Connector.Vndr.Vmware.csproj index 5b2da6c4..b2bd7ee1 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Vmware/StellaOps.Concelier.Source.Vndr.Vmware.csproj +++ b/src/StellaOps.Concelier.Connector.Vndr.Vmware/StellaOps.Concelier.Connector.Vndr.Vmware.csproj @@ -8,7 +8,7 @@ - + diff --git a/src/StellaOps.Concelier.Source.Vndr.Vmware/TASKS.md b/src/StellaOps.Concelier.Connector.Vndr.Vmware/TASKS.md similarity index 100% rename from src/StellaOps.Concelier.Source.Vndr.Vmware/TASKS.md rename to src/StellaOps.Concelier.Connector.Vndr.Vmware/TASKS.md diff --git a/src/StellaOps.Concelier.Source.Vndr.Vmware/VmwareConnector.cs b/src/StellaOps.Concelier.Connector.Vndr.Vmware/VmwareConnector.cs similarity index 96% rename from src/StellaOps.Concelier.Source.Vndr.Vmware/VmwareConnector.cs rename to src/StellaOps.Concelier.Connector.Vndr.Vmware/VmwareConnector.cs index 1c67b51c..1c2095d8 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Vmware/VmwareConnector.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Vmware/VmwareConnector.cs @@ -10,10 +10,10 @@ using Microsoft.Extensions.Options; using MongoDB.Bson; using MongoDB.Bson.IO; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; -using StellaOps.Concelier.Source.Vndr.Vmware.Configuration; -using StellaOps.Concelier.Source.Vndr.Vmware.Internal; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; +using StellaOps.Concelier.Connector.Vndr.Vmware.Configuration; +using StellaOps.Concelier.Connector.Vndr.Vmware.Internal; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Advisories; using StellaOps.Concelier.Storage.Mongo.Documents; @@ -21,7 +21,7 @@ using StellaOps.Concelier.Storage.Mongo.Dtos; using StellaOps.Concelier.Storage.Mongo.PsirtFlags; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Vndr.Vmware; +namespace StellaOps.Concelier.Connector.Vndr.Vmware; public sealed class VmwareConnector : IFeedConnector { diff --git a/src/StellaOps.Concelier.Source.Vndr.Vmware/VmwareConnectorPlugin.cs b/src/StellaOps.Concelier.Connector.Vndr.Vmware/VmwareConnectorPlugin.cs similarity index 87% rename from src/StellaOps.Concelier.Source.Vndr.Vmware/VmwareConnectorPlugin.cs rename to src/StellaOps.Concelier.Connector.Vndr.Vmware/VmwareConnectorPlugin.cs index 27f46e8c..60c5f21d 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Vmware/VmwareConnectorPlugin.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Vmware/VmwareConnectorPlugin.cs @@ -2,7 +2,7 @@ using System; using Microsoft.Extensions.DependencyInjection; using StellaOps.Plugin; -namespace StellaOps.Concelier.Source.Vndr.Vmware; +namespace StellaOps.Concelier.Connector.Vndr.Vmware; public sealed class VmwareConnectorPlugin : IConnectorPlugin { diff --git a/src/StellaOps.Concelier.Source.Vndr.Vmware/VmwareDependencyInjectionRoutine.cs b/src/StellaOps.Concelier.Connector.Vndr.Vmware/VmwareDependencyInjectionRoutine.cs similarity index 91% rename from src/StellaOps.Concelier.Source.Vndr.Vmware/VmwareDependencyInjectionRoutine.cs rename to src/StellaOps.Concelier.Connector.Vndr.Vmware/VmwareDependencyInjectionRoutine.cs index 7cc5da71..c845660d 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Vmware/VmwareDependencyInjectionRoutine.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Vmware/VmwareDependencyInjectionRoutine.cs @@ -3,9 +3,9 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using StellaOps.DependencyInjection; using StellaOps.Concelier.Core.Jobs; -using StellaOps.Concelier.Source.Vndr.Vmware.Configuration; +using StellaOps.Concelier.Connector.Vndr.Vmware.Configuration; -namespace StellaOps.Concelier.Source.Vndr.Vmware; +namespace StellaOps.Concelier.Connector.Vndr.Vmware; public sealed class VmwareDependencyInjectionRoutine : IDependencyInjectionRoutine { diff --git a/src/StellaOps.Concelier.Source.Vndr.Vmware/VmwareDiagnostics.cs b/src/StellaOps.Concelier.Connector.Vndr.Vmware/VmwareDiagnostics.cs similarity index 91% rename from src/StellaOps.Concelier.Source.Vndr.Vmware/VmwareDiagnostics.cs rename to src/StellaOps.Concelier.Connector.Vndr.Vmware/VmwareDiagnostics.cs index 72e516eb..950a5920 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Vmware/VmwareDiagnostics.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Vmware/VmwareDiagnostics.cs @@ -1,14 +1,14 @@ using System; using System.Diagnostics.Metrics; -namespace StellaOps.Concelier.Source.Vndr.Vmware; +namespace StellaOps.Concelier.Connector.Vndr.Vmware; /// /// VMware connector metrics (fetch, parse, map). /// public sealed class VmwareDiagnostics : IDisposable { - public const string MeterName = "StellaOps.Concelier.Source.Vndr.Vmware"; + public const string MeterName = "StellaOps.Concelier.Connector.Vndr.Vmware"; private const string MeterVersion = "1.0.0"; private readonly Meter _meter; diff --git a/src/StellaOps.Concelier.Source.Vndr.Vmware/VmwareServiceCollectionExtensions.cs b/src/StellaOps.Concelier.Connector.Vndr.Vmware/VmwareServiceCollectionExtensions.cs similarity index 87% rename from src/StellaOps.Concelier.Source.Vndr.Vmware/VmwareServiceCollectionExtensions.cs rename to src/StellaOps.Concelier.Connector.Vndr.Vmware/VmwareServiceCollectionExtensions.cs index b36f6880..17d12617 100644 --- a/src/StellaOps.Concelier.Source.Vndr.Vmware/VmwareServiceCollectionExtensions.cs +++ b/src/StellaOps.Concelier.Connector.Vndr.Vmware/VmwareServiceCollectionExtensions.cs @@ -2,10 +2,10 @@ using System; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Options; -using StellaOps.Concelier.Source.Common.Http; -using StellaOps.Concelier.Source.Vndr.Vmware.Configuration; +using StellaOps.Concelier.Connector.Common.Http; +using StellaOps.Concelier.Connector.Vndr.Vmware.Configuration; -namespace StellaOps.Concelier.Source.Vndr.Vmware; +namespace StellaOps.Concelier.Connector.Vndr.Vmware; public static class VmwareServiceCollectionExtensions { diff --git a/src/StellaOps.Concelier.Merge/RANGE_PRIMITIVES_COORDINATION.md b/src/StellaOps.Concelier.Merge/RANGE_PRIMITIVES_COORDINATION.md index 7fde6d62..86612721 100644 --- a/src/StellaOps.Concelier.Merge/RANGE_PRIMITIVES_COORDINATION.md +++ b/src/StellaOps.Concelier.Merge/RANGE_PRIMITIVES_COORDINATION.md @@ -32,7 +32,7 @@ Until these blocks land, connectors should stage changes behind a feature flag o | Ru.Bdu | BE-Conn-BDU | All tasks TODO | Map product releases into normalized rules; add provenance notes referencing BDU advisory identifiers. | Verify we have UTF-8 safe handling in builder; share sample sanitized inputs. | | Ru.Nkcki | BE-Conn-Nkcki | All tasks TODO | Similar to BDU; capture vendor firmware/build numbers and map into normalized rules. | Coordinate with Localization WG for Cyrillic transliteration strategy. | | Vndr.Apple | BE-Conn-Apple | Mapper/tests/telemetry marked DOING | Continue extending vendor range primitives (`apple.version`, `apple.build`) and adopt normalized rule arrays for OS build spans. | Request builder integration review on 2025-10-16; ensure fixtures cover multi-range tables and include provenance notes. | -| Vndr.Cisco | BE-Conn-Cisco | ✅ Emits SemVer primitives with vendor notes | Parser maps versions into SemVer primitives with `cisco.productId` vendor extensions; sample fixtures landing in `StellaOps.Concelier.Source.Vndr.Cisco.Tests`. | No custom comparer required; SemVer + vendor metadata suffices. | +| Vndr.Cisco | BE-Conn-Cisco | ✅ Emits SemVer primitives with vendor notes | Parser maps versions into SemVer primitives with `cisco.productId` vendor extensions; sample fixtures landing in `StellaOps.Concelier.Connector.Vndr.Cisco.Tests`. | No custom comparer required; SemVer + vendor metadata suffices. | | Vndr.Msrc | BE-Conn-MSRC | All tasks TODO | Canonical mapper must output product/build coverage as normalized rules (likely `msrc.patch` scheme) with provenance referencing KB IDs. | Sync with Models on adding scheme identifiers for MSRC packages; plan fixture coverage for monthly rollups. | ## Storage alignment quick reference (2025-10-11) diff --git a/src/StellaOps.Concelier.Source.Cccs/Properties/AssemblyInfo.cs b/src/StellaOps.Concelier.Source.Cccs/Properties/AssemblyInfo.cs deleted file mode 100644 index 78e32705..00000000 --- a/src/StellaOps.Concelier.Source.Cccs/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,3 +0,0 @@ -using System.Runtime.CompilerServices; - -[assembly: InternalsVisibleTo("StellaOps.Concelier.Source.Cccs.Tests")] diff --git a/src/StellaOps.Concelier.Source.CertCc/FEEDCONN-CERTCC-02-012_HANDOFF.md b/src/StellaOps.Concelier.Source.CertCc/FEEDCONN-CERTCC-02-012_HANDOFF.md deleted file mode 100644 index c8ec45bc..00000000 --- a/src/StellaOps.Concelier.Source.CertCc/FEEDCONN-CERTCC-02-012_HANDOFF.md +++ /dev/null @@ -1,20 +0,0 @@ -# FEEDCONN-CERTCC-02-012 – Schema Sync & Snapshot Regeneration - -## Summary -- Re-ran `StellaOps.Concelier.Source.CertCc.Tests` with `UPDATE_CERTCC_FIXTURES=1`; fixtures now capture SemVer-style normalized versions (`scheme=certcc.vendor`) and `provenance.decisionReason` values emitted by the mapper. -- Recorded HTTP request ordering is persisted in `certcc-requests.snapshot.json` to keep Merge aware of the deterministic fetch plan. -- Advisories snapshot (`certcc-advisories.snapshot.json`) reflects the dual-write storage changes (normalized versions + provenance) introduced by FEEDMODELS-SCHEMA-* and FEEDSTORAGE-DATA-*. - -## Artifacts -- `src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/certcc-advisories.snapshot.json` -- `src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/certcc-documents.snapshot.json` -- `src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/certcc-requests.snapshot.json` -- `src/StellaOps.Concelier.Source.CertCc.Tests/Fixtures/certcc-state.snapshot.json` - -## Validation steps -```bash -dotnet test src/StellaOps.Concelier.Source.CertCc.Tests -UPDATE_CERTCC_FIXTURES=1 dotnet test src/StellaOps.Concelier.Source.CertCc.Tests -``` - -The first command verifies deterministic behavior; the second regenerates fixtures if a future schema change occurs. Share the four snapshot files above with Merge for their backfill diff. diff --git a/src/StellaOps.Concelier.Source.CertCc/Properties/AssemblyInfo.cs b/src/StellaOps.Concelier.Source.CertCc/Properties/AssemblyInfo.cs deleted file mode 100644 index 3f9192ea..00000000 --- a/src/StellaOps.Concelier.Source.CertCc/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,3 +0,0 @@ -using System.Runtime.CompilerServices; - -[assembly: InternalsVisibleTo("StellaOps.Concelier.Source.CertCc.Tests")] diff --git a/src/StellaOps.Concelier.Source.Common/Properties/AssemblyInfo.cs b/src/StellaOps.Concelier.Source.Common/Properties/AssemblyInfo.cs deleted file mode 100644 index b138a0e9..00000000 --- a/src/StellaOps.Concelier.Source.Common/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,3 +0,0 @@ -using System.Runtime.CompilerServices; - -[assembly: InternalsVisibleTo("StellaOps.Concelier.Source.Common.Tests")] diff --git a/src/StellaOps.Concelier.Source.Distro.Debian/AssemblyInfo.cs b/src/StellaOps.Concelier.Source.Distro.Debian/AssemblyInfo.cs deleted file mode 100644 index ea9029c1..00000000 --- a/src/StellaOps.Concelier.Source.Distro.Debian/AssemblyInfo.cs +++ /dev/null @@ -1,3 +0,0 @@ -using System.Runtime.CompilerServices; - -[assembly: InternalsVisibleTo("StellaOps.Concelier.Source.Distro.Debian.Tests")] diff --git a/src/StellaOps.Concelier.Source.Distro.RedHat/Properties/AssemblyInfo.cs b/src/StellaOps.Concelier.Source.Distro.RedHat/Properties/AssemblyInfo.cs deleted file mode 100644 index c81748a0..00000000 --- a/src/StellaOps.Concelier.Source.Distro.RedHat/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,3 +0,0 @@ -using System.Runtime.CompilerServices; - -[assembly: InternalsVisibleTo("StellaOps.Concelier.Source.Distro.RedHat.Tests")] diff --git a/src/StellaOps.Concelier.Source.Distro.Suse/AssemblyInfo.cs b/src/StellaOps.Concelier.Source.Distro.Suse/AssemblyInfo.cs deleted file mode 100644 index f08b2de7..00000000 --- a/src/StellaOps.Concelier.Source.Distro.Suse/AssemblyInfo.cs +++ /dev/null @@ -1,3 +0,0 @@ -using System.Runtime.CompilerServices; - -[assembly: InternalsVisibleTo("StellaOps.Concelier.Source.Distro.Suse.Tests")] diff --git a/src/StellaOps.Concelier.Source.Ru.Bdu/Properties/AssemblyInfo.cs b/src/StellaOps.Concelier.Source.Ru.Bdu/Properties/AssemblyInfo.cs deleted file mode 100644 index 051f6563..00000000 --- a/src/StellaOps.Concelier.Source.Ru.Bdu/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,3 +0,0 @@ -using System.Runtime.CompilerServices; - -[assembly: InternalsVisibleTo("StellaOps.Concelier.Source.Ru.Bdu.Tests")] diff --git a/src/StellaOps.Concelier.Source.Ru.Nkcki/Properties/AssemblyInfo.cs b/src/StellaOps.Concelier.Source.Ru.Nkcki/Properties/AssemblyInfo.cs deleted file mode 100644 index c95a01fe..00000000 --- a/src/StellaOps.Concelier.Source.Ru.Nkcki/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,3 +0,0 @@ -using System.Runtime.CompilerServices; - -[assembly: InternalsVisibleTo("StellaOps.Concelier.Source.Ru.Nkcki.Tests")] diff --git a/src/StellaOps.Concelier.Source.Vndr.Apple/Properties/AssemblyInfo.cs b/src/StellaOps.Concelier.Source.Vndr.Apple/Properties/AssemblyInfo.cs deleted file mode 100644 index ac52715e..00000000 --- a/src/StellaOps.Concelier.Source.Vndr.Apple/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,3 +0,0 @@ -using System.Runtime.CompilerServices; - -[assembly: InternalsVisibleTo("StellaOps.Concelier.Source.Vndr.Apple.Tests")] diff --git a/src/StellaOps.Concelier.Source.Vndr.Chromium/Properties/AssemblyInfo.cs b/src/StellaOps.Concelier.Source.Vndr.Chromium/Properties/AssemblyInfo.cs deleted file mode 100644 index 8967eba8..00000000 --- a/src/StellaOps.Concelier.Source.Vndr.Chromium/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,3 +0,0 @@ -using System.Runtime.CompilerServices; - -[assembly: InternalsVisibleTo("StellaOps.Concelier.Source.Vndr.Chromium.Tests")] diff --git a/src/StellaOps.Concelier.Source.Vndr.Oracle/Properties/AssemblyInfo.cs b/src/StellaOps.Concelier.Source.Vndr.Oracle/Properties/AssemblyInfo.cs deleted file mode 100644 index d60216cd..00000000 --- a/src/StellaOps.Concelier.Source.Vndr.Oracle/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,3 +0,0 @@ -using System.Runtime.CompilerServices; - -[assembly: InternalsVisibleTo("StellaOps.Concelier.Source.Vndr.Oracle.Tests")] diff --git a/src/StellaOps.Concelier.Source.Vndr.Vmware/Properties/AssemblyInfo.cs b/src/StellaOps.Concelier.Source.Vndr.Vmware/Properties/AssemblyInfo.cs deleted file mode 100644 index f995cad1..00000000 --- a/src/StellaOps.Concelier.Source.Vndr.Vmware/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,3 +0,0 @@ -using System.Runtime.CompilerServices; - -[assembly: InternalsVisibleTo("StellaOps.Concelier.Source.Vndr.Vmware.Tests")] diff --git a/src/StellaOps.Concelier.Testing/ConnectorTestHarness.cs b/src/StellaOps.Concelier.Testing/ConnectorTestHarness.cs index 6bc20e6a..47146758 100644 --- a/src/StellaOps.Concelier.Testing/ConnectorTestHarness.cs +++ b/src/StellaOps.Concelier.Testing/ConnectorTestHarness.cs @@ -6,10 +6,10 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Http; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; -using StellaOps.Concelier.Source.Common.Http; +using StellaOps.Concelier.Connector.Common.Http; using Microsoft.Extensions.Time.Testing; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Testing; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Testing; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Testing; diff --git a/src/StellaOps.Concelier.Testing/StellaOps.Concelier.Testing.csproj b/src/StellaOps.Concelier.Testing/StellaOps.Concelier.Testing.csproj index 0c1f5178..64eb15ce 100644 --- a/src/StellaOps.Concelier.Testing/StellaOps.Concelier.Testing.csproj +++ b/src/StellaOps.Concelier.Testing/StellaOps.Concelier.Testing.csproj @@ -14,7 +14,7 @@ - + diff --git a/src/StellaOps.Concelier.WebService/Extensions/JobRegistrationExtensions.cs b/src/StellaOps.Concelier.WebService/Extensions/JobRegistrationExtensions.cs index 0e37680d..91b574ed 100644 --- a/src/StellaOps.Concelier.WebService/Extensions/JobRegistrationExtensions.cs +++ b/src/StellaOps.Concelier.WebService/Extensions/JobRegistrationExtensions.cs @@ -20,37 +20,37 @@ internal static class JobRegistrationExtensions private static readonly IReadOnlyList BuiltInJobs = new List { - new("source:redhat:fetch", "StellaOps.Concelier.Source.Distro.RedHat.RedHatFetchJob", "StellaOps.Concelier.Source.Distro.RedHat", TimeSpan.FromMinutes(12), TimeSpan.FromMinutes(6), "0,15,30,45 * * * *"), - new("source:redhat:parse", "StellaOps.Concelier.Source.Distro.RedHat.RedHatParseJob", "StellaOps.Concelier.Source.Distro.RedHat", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(6), "5,20,35,50 * * * *"), - new("source:redhat:map", "StellaOps.Concelier.Source.Distro.RedHat.RedHatMapJob", "StellaOps.Concelier.Source.Distro.RedHat", TimeSpan.FromMinutes(20), TimeSpan.FromMinutes(6), "10,25,40,55 * * * *"), + new("source:redhat:fetch", "StellaOps.Concelier.Connector.Distro.RedHat.RedHatFetchJob", "StellaOps.Concelier.Connector.Distro.RedHat", TimeSpan.FromMinutes(12), TimeSpan.FromMinutes(6), "0,15,30,45 * * * *"), + new("source:redhat:parse", "StellaOps.Concelier.Connector.Distro.RedHat.RedHatParseJob", "StellaOps.Concelier.Connector.Distro.RedHat", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(6), "5,20,35,50 * * * *"), + new("source:redhat:map", "StellaOps.Concelier.Connector.Distro.RedHat.RedHatMapJob", "StellaOps.Concelier.Connector.Distro.RedHat", TimeSpan.FromMinutes(20), TimeSpan.FromMinutes(6), "10,25,40,55 * * * *"), - new("source:cert-in:fetch", "StellaOps.Concelier.Source.CertIn.CertInFetchJob", "StellaOps.Concelier.Source.CertIn", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), - new("source:cert-in:parse", "StellaOps.Concelier.Source.CertIn.CertInParseJob", "StellaOps.Concelier.Source.CertIn", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), - new("source:cert-in:map", "StellaOps.Concelier.Source.CertIn.CertInMapJob", "StellaOps.Concelier.Source.CertIn", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), + new("source:cert-in:fetch", "StellaOps.Concelier.Connector.CertIn.CertInFetchJob", "StellaOps.Concelier.Connector.CertIn", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), + new("source:cert-in:parse", "StellaOps.Concelier.Connector.CertIn.CertInParseJob", "StellaOps.Concelier.Connector.CertIn", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), + new("source:cert-in:map", "StellaOps.Concelier.Connector.CertIn.CertInMapJob", "StellaOps.Concelier.Connector.CertIn", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), - new("source:cert-fr:fetch", "StellaOps.Concelier.Source.CertFr.CertFrFetchJob", "StellaOps.Concelier.Source.CertFr", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), - new("source:cert-fr:parse", "StellaOps.Concelier.Source.CertFr.CertFrParseJob", "StellaOps.Concelier.Source.CertFr", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), - new("source:cert-fr:map", "StellaOps.Concelier.Source.CertFr.CertFrMapJob", "StellaOps.Concelier.Source.CertFr", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), + new("source:cert-fr:fetch", "StellaOps.Concelier.Connector.CertFr.CertFrFetchJob", "StellaOps.Concelier.Connector.CertFr", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), + new("source:cert-fr:parse", "StellaOps.Concelier.Connector.CertFr.CertFrParseJob", "StellaOps.Concelier.Connector.CertFr", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), + new("source:cert-fr:map", "StellaOps.Concelier.Connector.CertFr.CertFrMapJob", "StellaOps.Concelier.Connector.CertFr", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), - new("source:jvn:fetch", "StellaOps.Concelier.Source.Jvn.JvnFetchJob", "StellaOps.Concelier.Source.Jvn", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), - new("source:jvn:parse", "StellaOps.Concelier.Source.Jvn.JvnParseJob", "StellaOps.Concelier.Source.Jvn", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), - new("source:jvn:map", "StellaOps.Concelier.Source.Jvn.JvnMapJob", "StellaOps.Concelier.Source.Jvn", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), + new("source:jvn:fetch", "StellaOps.Concelier.Connector.Jvn.JvnFetchJob", "StellaOps.Concelier.Connector.Jvn", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), + new("source:jvn:parse", "StellaOps.Concelier.Connector.Jvn.JvnParseJob", "StellaOps.Concelier.Connector.Jvn", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), + new("source:jvn:map", "StellaOps.Concelier.Connector.Jvn.JvnMapJob", "StellaOps.Concelier.Connector.Jvn", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), - new("source:ics-kaspersky:fetch", "StellaOps.Concelier.Source.Ics.Kaspersky.KasperskyFetchJob", "StellaOps.Concelier.Source.Ics.Kaspersky", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), - new("source:ics-kaspersky:parse", "StellaOps.Concelier.Source.Ics.Kaspersky.KasperskyParseJob", "StellaOps.Concelier.Source.Ics.Kaspersky", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), - new("source:ics-kaspersky:map", "StellaOps.Concelier.Source.Ics.Kaspersky.KasperskyMapJob", "StellaOps.Concelier.Source.Ics.Kaspersky", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), + new("source:ics-kaspersky:fetch", "StellaOps.Concelier.Connector.Ics.Kaspersky.KasperskyFetchJob", "StellaOps.Concelier.Connector.Ics.Kaspersky", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), + new("source:ics-kaspersky:parse", "StellaOps.Concelier.Connector.Ics.Kaspersky.KasperskyParseJob", "StellaOps.Concelier.Connector.Ics.Kaspersky", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), + new("source:ics-kaspersky:map", "StellaOps.Concelier.Connector.Ics.Kaspersky.KasperskyMapJob", "StellaOps.Concelier.Connector.Ics.Kaspersky", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), - new("source:osv:fetch", "StellaOps.Concelier.Source.Osv.OsvFetchJob", "StellaOps.Concelier.Source.Osv", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), - new("source:osv:parse", "StellaOps.Concelier.Source.Osv.OsvParseJob", "StellaOps.Concelier.Source.Osv", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), - new("source:osv:map", "StellaOps.Concelier.Source.Osv.OsvMapJob", "StellaOps.Concelier.Source.Osv", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), + new("source:osv:fetch", "StellaOps.Concelier.Connector.Osv.OsvFetchJob", "StellaOps.Concelier.Connector.Osv", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), + new("source:osv:parse", "StellaOps.Concelier.Connector.Osv.OsvParseJob", "StellaOps.Concelier.Connector.Osv", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), + new("source:osv:map", "StellaOps.Concelier.Connector.Osv.OsvMapJob", "StellaOps.Concelier.Connector.Osv", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), - new("source:vmware:fetch", "StellaOps.Concelier.Source.Vndr.Vmware.VmwareFetchJob", "StellaOps.Concelier.Source.Vndr.Vmware", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), - new("source:vmware:parse", "StellaOps.Concelier.Source.Vndr.Vmware.VmwareParseJob", "StellaOps.Concelier.Source.Vndr.Vmware", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), - new("source:vmware:map", "StellaOps.Concelier.Source.Vndr.Vmware.VmwareMapJob", "StellaOps.Concelier.Source.Vndr.Vmware", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), + new("source:vmware:fetch", "StellaOps.Concelier.Connector.Vndr.Vmware.VmwareFetchJob", "StellaOps.Concelier.Connector.Vndr.Vmware", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), + new("source:vmware:parse", "StellaOps.Concelier.Connector.Vndr.Vmware.VmwareParseJob", "StellaOps.Concelier.Connector.Vndr.Vmware", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), + new("source:vmware:map", "StellaOps.Concelier.Connector.Vndr.Vmware.VmwareMapJob", "StellaOps.Concelier.Connector.Vndr.Vmware", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), - new("source:vndr-oracle:fetch", "StellaOps.Concelier.Source.Vndr.Oracle.OracleFetchJob", "StellaOps.Concelier.Source.Vndr.Oracle", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), - new("source:vndr-oracle:parse", "StellaOps.Concelier.Source.Vndr.Oracle.OracleParseJob", "StellaOps.Concelier.Source.Vndr.Oracle", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), - new("source:vndr-oracle:map", "StellaOps.Concelier.Source.Vndr.Oracle.OracleMapJob", "StellaOps.Concelier.Source.Vndr.Oracle", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), + new("source:vndr-oracle:fetch", "StellaOps.Concelier.Connector.Vndr.Oracle.OracleFetchJob", "StellaOps.Concelier.Connector.Vndr.Oracle", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), + new("source:vndr-oracle:parse", "StellaOps.Concelier.Connector.Vndr.Oracle.OracleParseJob", "StellaOps.Concelier.Connector.Vndr.Oracle", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), + new("source:vndr-oracle:map", "StellaOps.Concelier.Connector.Vndr.Oracle.OracleMapJob", "StellaOps.Concelier.Connector.Vndr.Oracle", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)), new("export:json", "StellaOps.Concelier.Exporter.Json.JsonExportJob", "StellaOps.Concelier.Exporter.Json", TimeSpan.FromMinutes(10), TimeSpan.FromMinutes(5)), new("export:trivy-db", "StellaOps.Concelier.Exporter.TrivyDb.TrivyDbExportJob", "StellaOps.Concelier.Exporter.TrivyDb", TimeSpan.FromMinutes(20), TimeSpan.FromMinutes(10)), diff --git a/src/StellaOps.Concelier.WebService/Extensions/TelemetryExtensions.cs b/src/StellaOps.Concelier.WebService/Extensions/TelemetryExtensions.cs index 46d3189b..bc67e255 100644 --- a/src/StellaOps.Concelier.WebService/Extensions/TelemetryExtensions.cs +++ b/src/StellaOps.Concelier.WebService/Extensions/TelemetryExtensions.cs @@ -11,7 +11,7 @@ using Serilog; using Serilog.Core; using Serilog.Events; using StellaOps.Concelier.Core.Jobs; -using StellaOps.Concelier.Source.Common.Telemetry; +using StellaOps.Concelier.Connector.Common.Telemetry; using StellaOps.Concelier.WebService.Diagnostics; using StellaOps.Concelier.WebService.Options; @@ -84,11 +84,11 @@ public static class TelemetryExtensions metrics .AddMeter(JobDiagnostics.MeterName) .AddMeter(SourceDiagnostics.MeterName) - .AddMeter("StellaOps.Concelier.Source.CertBund") - .AddMeter("StellaOps.Concelier.Source.Nvd") - .AddMeter("StellaOps.Concelier.Source.Vndr.Chromium") - .AddMeter("StellaOps.Concelier.Source.Vndr.Apple") - .AddMeter("StellaOps.Concelier.Source.Vndr.Adobe") + .AddMeter("StellaOps.Concelier.Connector.CertBund") + .AddMeter("StellaOps.Concelier.Connector.Nvd") + .AddMeter("StellaOps.Concelier.Connector.Vndr.Chromium") + .AddMeter("StellaOps.Concelier.Connector.Vndr.Apple") + .AddMeter("StellaOps.Concelier.Connector.Vndr.Adobe") .AddMeter(JobMetrics.MeterName) .AddAspNetCoreInstrumentation() .AddHttpClientInstrumentation() diff --git a/src/StellaOps.Concelier.WebService/StellaOps.Concelier.WebService.csproj b/src/StellaOps.Concelier.WebService/StellaOps.Concelier.WebService.csproj index 004232a0..7fedfa8b 100644 --- a/src/StellaOps.Concelier.WebService/StellaOps.Concelier.WebService.csproj +++ b/src/StellaOps.Concelier.WebService/StellaOps.Concelier.WebService.csproj @@ -24,7 +24,7 @@ - + diff --git a/src/StellaOps.Concelier.sln b/src/StellaOps.Concelier.sln index eea77512..41d02aa1 100644 --- a/src/StellaOps.Concelier.sln +++ b/src/StellaOps.Concelier.sln @@ -3,13 +3,13 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.0.31903.59 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Acsc", "StellaOps.Concelier.Source.Acsc\StellaOps.Concelier.Source.Acsc.csproj", "{CFD7B267-46B7-4C73-A33A-3E82AD2CFABC}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Acsc", "StellaOps.Concelier.Connector.Acsc\StellaOps.Concelier.Connector.Acsc.csproj", "{CFD7B267-46B7-4C73-A33A-3E82AD2CFABC}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Common", "StellaOps.Concelier.Source.Common\StellaOps.Concelier.Source.Common.csproj", "{E9DE840D-0760-4324-98E2-7F2CBE06DC1A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Common", "StellaOps.Concelier.Connector.Common\StellaOps.Concelier.Connector.Common.csproj", "{E9DE840D-0760-4324-98E2-7F2CBE06DC1A}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Models", "StellaOps.Concelier.Models\StellaOps.Concelier.Models.csproj", "{061B0042-9A6C-4CFD-9E48-4D3F3B924442}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Ics.Cisa", "StellaOps.Concelier.Source.Ics.Cisa\StellaOps.Concelier.Source.Ics.Cisa.csproj", "{6A301F32-2EEE-491B-9DB9-3BF26D032F07}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Ics.Cisa", "StellaOps.Concelier.Connector.Ics.Cisa\StellaOps.Concelier.Connector.Ics.Cisa.csproj", "{6A301F32-2EEE-491B-9DB9-3BF26D032F07}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Core", "StellaOps.Concelier.Core\StellaOps.Concelier.Core.csproj", "{AFCCC916-58E8-4676-AABB-54B04CEA3392}" EndProject @@ -27,57 +27,57 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Plugin", "StellaO EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.WebService", "StellaOps.Concelier.WebService\StellaOps.Concelier.WebService.csproj", "{2C970A0F-FE3D-425B-B1B3-A008B194F5C2}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Cccs", "StellaOps.Concelier.Source.Cccs\StellaOps.Concelier.Source.Cccs.csproj", "{A7035381-6D20-4A07-817B-A324ED735EB3}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Cccs", "StellaOps.Concelier.Connector.Cccs\StellaOps.Concelier.Connector.Cccs.csproj", "{A7035381-6D20-4A07-817B-A324ED735EB3}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Distro.Debian", "StellaOps.Concelier.Source.Distro.Debian\StellaOps.Concelier.Source.Distro.Debian.csproj", "{404F5F6E-37E4-4EF9-B09D-6634366B5D44}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Distro.Debian", "StellaOps.Concelier.Connector.Distro.Debian\StellaOps.Concelier.Connector.Distro.Debian.csproj", "{404F5F6E-37E4-4EF9-B09D-6634366B5D44}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Distro.Ubuntu", "StellaOps.Concelier.Source.Distro.Ubuntu\StellaOps.Concelier.Source.Distro.Ubuntu.csproj", "{1BEF4D9D-9EA4-4BE9-9664-F16DC1CA8EEB}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Distro.Ubuntu", "StellaOps.Concelier.Connector.Distro.Ubuntu\StellaOps.Concelier.Connector.Distro.Ubuntu.csproj", "{1BEF4D9D-9EA4-4BE9-9664-F16DC1CA8EEB}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Kisa", "StellaOps.Concelier.Source.Kisa\StellaOps.Concelier.Source.Kisa.csproj", "{23055A20-7079-4336-AD30-EFAA2FA11665}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Kisa", "StellaOps.Concelier.Connector.Kisa\StellaOps.Concelier.Connector.Kisa.csproj", "{23055A20-7079-4336-AD30-EFAA2FA11665}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.CertCc", "StellaOps.Concelier.Source.CertCc\StellaOps.Concelier.Source.CertCc.csproj", "{C2304954-9B15-4776-8DB6-22E293D311E4}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.CertCc", "StellaOps.Concelier.Connector.CertCc\StellaOps.Concelier.Connector.CertCc.csproj", "{C2304954-9B15-4776-8DB6-22E293D311E4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.CertFr", "StellaOps.Concelier.Source.CertFr\StellaOps.Concelier.Source.CertFr.csproj", "{E6895821-ED23-46D2-A5DC-06D61F90EC27}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.CertFr", "StellaOps.Concelier.Connector.CertFr\StellaOps.Concelier.Connector.CertFr.csproj", "{E6895821-ED23-46D2-A5DC-06D61F90EC27}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Nvd", "StellaOps.Concelier.Source.Nvd\StellaOps.Concelier.Source.Nvd.csproj", "{378CB675-D70B-4A95-B324-62B67D79AAB7}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Nvd", "StellaOps.Concelier.Connector.Nvd\StellaOps.Concelier.Connector.Nvd.csproj", "{378CB675-D70B-4A95-B324-62B67D79AAB7}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Vndr.Oracle", "StellaOps.Concelier.Source.Vndr.Oracle\StellaOps.Concelier.Source.Vndr.Oracle.csproj", "{53AD2E55-B0F5-46AD-BFE5-82F486371872}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Vndr.Oracle", "StellaOps.Concelier.Connector.Vndr.Oracle\StellaOps.Concelier.Connector.Vndr.Oracle.csproj", "{53AD2E55-B0F5-46AD-BFE5-82F486371872}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Ru.Nkcki", "StellaOps.Concelier.Source.Ru.Nkcki\StellaOps.Concelier.Source.Ru.Nkcki.csproj", "{B880C99C-C0BD-4953-95AD-2C76BC43F760}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Ru.Nkcki", "StellaOps.Concelier.Connector.Ru.Nkcki\StellaOps.Concelier.Connector.Ru.Nkcki.csproj", "{B880C99C-C0BD-4953-95AD-2C76BC43F760}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Distro.Suse", "StellaOps.Concelier.Source.Distro.Suse\StellaOps.Concelier.Source.Distro.Suse.csproj", "{23422F67-C1FB-4FF4-899C-706BCD63D9FD}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Distro.Suse", "StellaOps.Concelier.Connector.Distro.Suse\StellaOps.Concelier.Connector.Distro.Suse.csproj", "{23422F67-C1FB-4FF4-899C-706BCD63D9FD}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Ru.Bdu", "StellaOps.Concelier.Source.Ru.Bdu\StellaOps.Concelier.Source.Ru.Bdu.csproj", "{16AD4AB9-2A80-4CFD-91A7-36CC1FEF439F}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Ru.Bdu", "StellaOps.Concelier.Connector.Ru.Bdu\StellaOps.Concelier.Connector.Ru.Bdu.csproj", "{16AD4AB9-2A80-4CFD-91A7-36CC1FEF439F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Kev", "StellaOps.Concelier.Source.Kev\StellaOps.Concelier.Source.Kev.csproj", "{20DB9837-715B-4515-98C6-14B50060B765}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Kev", "StellaOps.Concelier.Connector.Kev\StellaOps.Concelier.Connector.Kev.csproj", "{20DB9837-715B-4515-98C6-14B50060B765}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Ics.Kaspersky", "StellaOps.Concelier.Source.Ics.Kaspersky\StellaOps.Concelier.Source.Ics.Kaspersky.csproj", "{10849EE2-9F34-4C23-BBB4-916A59CDB7F4}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Ics.Kaspersky", "StellaOps.Concelier.Connector.Ics.Kaspersky\StellaOps.Concelier.Connector.Ics.Kaspersky.csproj", "{10849EE2-9F34-4C23-BBB4-916A59CDB7F4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Osv", "StellaOps.Concelier.Source.Osv\StellaOps.Concelier.Source.Osv.csproj", "{EFB16EDB-78D4-4601-852E-F4B37655FA13}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Osv", "StellaOps.Concelier.Connector.Osv\StellaOps.Concelier.Connector.Osv.csproj", "{EFB16EDB-78D4-4601-852E-F4B37655FA13}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Jvn", "StellaOps.Concelier.Source.Jvn\StellaOps.Concelier.Source.Jvn.csproj", "{02289F61-0173-42CC-B8F2-25CC53F8E066}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Jvn", "StellaOps.Concelier.Connector.Jvn\StellaOps.Concelier.Connector.Jvn.csproj", "{02289F61-0173-42CC-B8F2-25CC53F8E066}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.CertBund", "StellaOps.Concelier.Source.CertBund\StellaOps.Concelier.Source.CertBund.csproj", "{4CE0B67B-2B6D-4D48-9D38-2F1165FD6BF4}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.CertBund", "StellaOps.Concelier.Connector.CertBund\StellaOps.Concelier.Connector.CertBund.csproj", "{4CE0B67B-2B6D-4D48-9D38-2F1165FD6BF4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Cve", "StellaOps.Concelier.Source.Cve\StellaOps.Concelier.Source.Cve.csproj", "{EB037D9A-EF9C-439D-8A79-4B7D12F9C9D0}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Cve", "StellaOps.Concelier.Connector.Cve\StellaOps.Concelier.Connector.Cve.csproj", "{EB037D9A-EF9C-439D-8A79-4B7D12F9C9D0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Vndr.Cisco", "StellaOps.Concelier.Source.Vndr.Cisco\StellaOps.Concelier.Source.Vndr.Cisco.csproj", "{19957518-A422-4622-9FD1-621DF3E31869}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Vndr.Cisco", "StellaOps.Concelier.Connector.Vndr.Cisco\StellaOps.Concelier.Connector.Vndr.Cisco.csproj", "{19957518-A422-4622-9FD1-621DF3E31869}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Vndr.Msrc", "StellaOps.Concelier.Source.Vndr.Msrc\StellaOps.Concelier.Source.Vndr.Msrc.csproj", "{69C4C061-F5A0-4EAA-A4CD-9A513523952A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Vndr.Msrc", "StellaOps.Concelier.Connector.Vndr.Msrc\StellaOps.Concelier.Connector.Vndr.Msrc.csproj", "{69C4C061-F5A0-4EAA-A4CD-9A513523952A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Vndr.Chromium", "StellaOps.Concelier.Source.Vndr.Chromium\StellaOps.Concelier.Source.Vndr.Chromium.csproj", "{C7F7DE6F-A369-4F43-9864-286DCEC615F8}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Vndr.Chromium", "StellaOps.Concelier.Connector.Vndr.Chromium\StellaOps.Concelier.Connector.Vndr.Chromium.csproj", "{C7F7DE6F-A369-4F43-9864-286DCEC615F8}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Vndr.Apple", "StellaOps.Concelier.Source.Vndr.Apple\StellaOps.Concelier.Source.Vndr.Apple.csproj", "{1C1593FE-73A4-47E8-A45B-5FC3B0BA7698}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Vndr.Apple", "StellaOps.Concelier.Connector.Vndr.Apple\StellaOps.Concelier.Connector.Vndr.Apple.csproj", "{1C1593FE-73A4-47E8-A45B-5FC3B0BA7698}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Vndr.Vmware", "StellaOps.Concelier.Source.Vndr.Vmware\StellaOps.Concelier.Source.Vndr.Vmware.csproj", "{7255C38D-5A16-4A4D-98CE-CF0FD516B68E}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Vndr.Vmware", "StellaOps.Concelier.Connector.Vndr.Vmware\StellaOps.Concelier.Connector.Vndr.Vmware.csproj", "{7255C38D-5A16-4A4D-98CE-CF0FD516B68E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Vndr.Adobe", "StellaOps.Concelier.Source.Vndr.Adobe\StellaOps.Concelier.Source.Vndr.Adobe.csproj", "{C3A42AA3-800D-4398-A077-5560EE6451EF}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Vndr.Adobe", "StellaOps.Concelier.Connector.Vndr.Adobe\StellaOps.Concelier.Connector.Vndr.Adobe.csproj", "{C3A42AA3-800D-4398-A077-5560EE6451EF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.CertIn", "StellaOps.Concelier.Source.CertIn\StellaOps.Concelier.Source.CertIn.csproj", "{5016963A-6FC9-4063-AB83-2D1F9A2BC627}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.CertIn", "StellaOps.Concelier.Connector.CertIn\StellaOps.Concelier.Connector.CertIn.csproj", "{5016963A-6FC9-4063-AB83-2D1F9A2BC627}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Ghsa", "StellaOps.Concelier.Source.Ghsa\StellaOps.Concelier.Source.Ghsa.csproj", "{72F43F43-F852-487F-8334-91D438CE2F7C}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Ghsa", "StellaOps.Concelier.Connector.Ghsa\StellaOps.Concelier.Connector.Ghsa.csproj", "{72F43F43-F852-487F-8334-91D438CE2F7C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Distro.RedHat", "StellaOps.Concelier.Source.Distro.RedHat\StellaOps.Concelier.Source.Distro.RedHat.csproj", "{A4DBF88F-34D0-4A05-ACCE-DE080F912FDB}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Distro.RedHat", "StellaOps.Concelier.Connector.Distro.RedHat\StellaOps.Concelier.Connector.Distro.RedHat.csproj", "{A4DBF88F-34D0-4A05-ACCE-DE080F912FDB}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.DependencyInjection", "StellaOps.DependencyInjection\StellaOps.DependencyInjection.csproj", "{F622D38D-DA49-473E-B724-E706F8113CF2}" EndProject @@ -97,33 +97,33 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Exporte EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.WebService.Tests", "StellaOps.Concelier.WebService.Tests\StellaOps.Concelier.WebService.Tests.csproj", "{84A5DE81-4444-499A-93BF-6DC4CA72F8D4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Common.Tests", "StellaOps.Concelier.Source.Common.Tests\StellaOps.Concelier.Source.Common.Tests.csproj", "{42E21E1D-C3DE-4765-93E9-39391BB5C802}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Common.Tests", "StellaOps.Concelier.Connector.Common.Tests\StellaOps.Concelier.Connector.Common.Tests.csproj", "{42E21E1D-C3DE-4765-93E9-39391BB5C802}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Nvd.Tests", "StellaOps.Concelier.Source.Nvd.Tests\StellaOps.Concelier.Source.Nvd.Tests.csproj", "{B6E2EE26-B297-4AB9-A47E-A227F5EAE108}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Nvd.Tests", "StellaOps.Concelier.Connector.Nvd.Tests\StellaOps.Concelier.Connector.Nvd.Tests.csproj", "{B6E2EE26-B297-4AB9-A47E-A227F5EAE108}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Distro.RedHat.Tests", "StellaOps.Concelier.Source.Distro.RedHat.Tests\StellaOps.Concelier.Source.Distro.RedHat.Tests.csproj", "{CDB2D636-C82F-43F1-BB30-FFC6258FBAB4}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Distro.RedHat.Tests", "StellaOps.Concelier.Connector.Distro.RedHat.Tests\StellaOps.Concelier.Connector.Distro.RedHat.Tests.csproj", "{CDB2D636-C82F-43F1-BB30-FFC6258FBAB4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Vndr.Chromium.Tests", "StellaOps.Concelier.Source.Vndr.Chromium.Tests\StellaOps.Concelier.Source.Vndr.Chromium.Tests.csproj", "{2891FCDE-BB89-46F0-A40C-368EF804DB44}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Vndr.Chromium.Tests", "StellaOps.Concelier.Connector.Vndr.Chromium.Tests\StellaOps.Concelier.Connector.Vndr.Chromium.Tests.csproj", "{2891FCDE-BB89-46F0-A40C-368EF804DB44}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Vndr.Adobe.Tests", "StellaOps.Concelier.Source.Vndr.Adobe.Tests\StellaOps.Concelier.Source.Vndr.Adobe.Tests.csproj", "{B91C60FB-926F-47C3-BFD0-6DD145308344}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Vndr.Adobe.Tests", "StellaOps.Concelier.Connector.Vndr.Adobe.Tests\StellaOps.Concelier.Connector.Vndr.Adobe.Tests.csproj", "{B91C60FB-926F-47C3-BFD0-6DD145308344}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Vndr.Oracle.Tests", "StellaOps.Concelier.Source.Vndr.Oracle.Tests\StellaOps.Concelier.Source.Vndr.Oracle.Tests.csproj", "{30DF89D1-D66D-4078-8A3B-951637A42265}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Vndr.Oracle.Tests", "StellaOps.Concelier.Connector.Vndr.Oracle.Tests\StellaOps.Concelier.Connector.Vndr.Oracle.Tests.csproj", "{30DF89D1-D66D-4078-8A3B-951637A42265}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Vndr.Vmware.Tests", "StellaOps.Concelier.Source.Vndr.Vmware.Tests\StellaOps.Concelier.Source.Vndr.Vmware.Tests.csproj", "{6E98C770-72FF-41FA-8C42-30AABAAF5B4E}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Vndr.Vmware.Tests", "StellaOps.Concelier.Connector.Vndr.Vmware.Tests\StellaOps.Concelier.Connector.Vndr.Vmware.Tests.csproj", "{6E98C770-72FF-41FA-8C42-30AABAAF5B4E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.CertIn.Tests", "StellaOps.Concelier.Source.CertIn.Tests\StellaOps.Concelier.Source.CertIn.Tests.csproj", "{79B36C92-BA93-4406-AB75-6F2282DDFF01}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.CertIn.Tests", "StellaOps.Concelier.Connector.CertIn.Tests\StellaOps.Concelier.Connector.CertIn.Tests.csproj", "{79B36C92-BA93-4406-AB75-6F2282DDFF01}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.CertFr.Tests", "StellaOps.Concelier.Source.CertFr.Tests\StellaOps.Concelier.Source.CertFr.Tests.csproj", "{4B60FA53-81F6-4AB6-BE9F-DE0992E11977}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.CertFr.Tests", "StellaOps.Concelier.Connector.CertFr.Tests\StellaOps.Concelier.Connector.CertFr.Tests.csproj", "{4B60FA53-81F6-4AB6-BE9F-DE0992E11977}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Ics.Kaspersky.Tests", "StellaOps.Concelier.Source.Ics.Kaspersky.Tests\StellaOps.Concelier.Source.Ics.Kaspersky.Tests.csproj", "{6BBA820B-8443-4832-91C3-3AB002006494}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Ics.Kaspersky.Tests", "StellaOps.Concelier.Connector.Ics.Kaspersky.Tests\StellaOps.Concelier.Connector.Ics.Kaspersky.Tests.csproj", "{6BBA820B-8443-4832-91C3-3AB002006494}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Jvn.Tests", "StellaOps.Concelier.Source.Jvn.Tests\StellaOps.Concelier.Source.Jvn.Tests.csproj", "{7845AE1C-FBD7-4177-A06F-D7AAE8315DB2}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Jvn.Tests", "StellaOps.Concelier.Connector.Jvn.Tests\StellaOps.Concelier.Connector.Jvn.Tests.csproj", "{7845AE1C-FBD7-4177-A06F-D7AAE8315DB2}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Osv.Tests", "StellaOps.Concelier.Source.Osv.Tests\StellaOps.Concelier.Source.Osv.Tests.csproj", "{F892BFFD-9101-4D59-B6FD-C532EB04D51F}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Osv.Tests", "StellaOps.Concelier.Connector.Osv.Tests\StellaOps.Concelier.Connector.Osv.Tests.csproj", "{F892BFFD-9101-4D59-B6FD-C532EB04D51F}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Testing", "StellaOps.Concelier.Testing\StellaOps.Concelier.Testing.csproj", "{EAE910FC-188C-41C3-822A-623964CABE48}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Distro.Debian.Tests", "StellaOps.Concelier.Source.Distro.Debian.Tests\StellaOps.Concelier.Source.Distro.Debian.Tests.csproj", "{BBA5C780-6348-427D-9600-726EAA8963B3}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Distro.Debian.Tests", "StellaOps.Concelier.Connector.Distro.Debian.Tests\StellaOps.Concelier.Connector.Distro.Debian.Tests.csproj", "{BBA5C780-6348-427D-9600-726EAA8963B3}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Configuration", "StellaOps.Configuration\StellaOps.Configuration.csproj", "{5F44A429-816A-4560-A5AA-61CD23FD8A19}" EndProject @@ -131,9 +131,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Cli", "StellaOps. EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Cli.Tests", "StellaOps.Cli.Tests\StellaOps.Cli.Tests.csproj", "{544DBB82-4639-4856-A5F2-76828F7A8396}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Ru.Bdu.Tests", "StellaOps.Concelier.Source.Ru.Bdu.Tests\StellaOps.Concelier.Source.Ru.Bdu.Tests.csproj", "{C4B189FA-4268-4B3C-A6B0-C2BB5B96D11A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Ru.Bdu.Tests", "StellaOps.Concelier.Connector.Ru.Bdu.Tests\StellaOps.Concelier.Connector.Ru.Bdu.Tests.csproj", "{C4B189FA-4268-4B3C-A6B0-C2BB5B96D11A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Ru.Nkcki.Tests", "StellaOps.Concelier.Source.Ru.Nkcki.Tests\StellaOps.Concelier.Source.Ru.Nkcki.Tests.csproj", "{461D4A58-3816-4737-B209-2D1F08B1F4DF}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Ru.Nkcki.Tests", "StellaOps.Concelier.Connector.Ru.Nkcki.Tests\StellaOps.Concelier.Connector.Ru.Nkcki.Tests.csproj", "{461D4A58-3816-4737-B209-2D1F08B1F4DF}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/src/StellaOps.sln b/src/StellaOps.sln index fa22036a..abc2bb3c 100644 --- a/src/StellaOps.sln +++ b/src/StellaOps.sln @@ -31,7 +31,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Cli.Tests", "Stel EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Testing", "StellaOps.Concelier.Testing\StellaOps.Concelier.Testing.csproj", "{6D52EC2B-0A1A-4693-A8EE-5AB32A4A3ED9}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Common", "StellaOps.Concelier.Source.Common\StellaOps.Concelier.Source.Common.csproj", "{37F203A3-624E-4794-9C99-16CAC22C17DF}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Common", "StellaOps.Concelier.Connector.Common\StellaOps.Concelier.Connector.Common.csproj", "{37F203A3-624E-4794-9C99-16CAC22C17DF}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Storage.Mongo", "StellaOps.Concelier.Storage.Mongo\StellaOps.Concelier.Storage.Mongo.csproj", "{3FF93987-A30A-4D50-8815-7CF3BB7CAE05}" EndProject @@ -59,93 +59,93 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Models. EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Normalization.Tests", "StellaOps.Concelier.Normalization.Tests\StellaOps.Concelier.Normalization.Tests.csproj", "{063DE5E1-C8FE-47D0-A12A-22A25CDF2C22}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Acsc", "StellaOps.Concelier.Source.Acsc\StellaOps.Concelier.Source.Acsc.csproj", "{35350FAB-FC51-4FE8-81FB-011003134C37}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Acsc", "StellaOps.Concelier.Connector.Acsc\StellaOps.Concelier.Connector.Acsc.csproj", "{35350FAB-FC51-4FE8-81FB-011003134C37}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Cccs", "StellaOps.Concelier.Source.Cccs\StellaOps.Concelier.Source.Cccs.csproj", "{1BFC95B4-4C8A-44B2-903A-11FBCAAB9519}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Cccs", "StellaOps.Concelier.Connector.Cccs\StellaOps.Concelier.Connector.Cccs.csproj", "{1BFC95B4-4C8A-44B2-903A-11FBCAAB9519}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.CertBund", "StellaOps.Concelier.Source.CertBund\StellaOps.Concelier.Source.CertBund.csproj", "{C4A65377-22F7-4D15-92A3-4F05847D167E}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.CertBund", "StellaOps.Concelier.Connector.CertBund\StellaOps.Concelier.Connector.CertBund.csproj", "{C4A65377-22F7-4D15-92A3-4F05847D167E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.CertCc", "StellaOps.Concelier.Source.CertCc\StellaOps.Concelier.Source.CertCc.csproj", "{BDDE59E1-C643-4C87-8608-0F9A7A54DE09}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.CertCc", "StellaOps.Concelier.Connector.CertCc\StellaOps.Concelier.Connector.CertCc.csproj", "{BDDE59E1-C643-4C87-8608-0F9A7A54DE09}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.CertFr", "StellaOps.Concelier.Source.CertFr\StellaOps.Concelier.Source.CertFr.csproj", "{0CC116C8-A7E5-4B94-9688-32920177FF97}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.CertFr", "StellaOps.Concelier.Connector.CertFr\StellaOps.Concelier.Connector.CertFr.csproj", "{0CC116C8-A7E5-4B94-9688-32920177FF97}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.CertFr.Tests", "StellaOps.Concelier.Source.CertFr.Tests\StellaOps.Concelier.Source.CertFr.Tests.csproj", "{E8862F6E-85C1-4FDB-AA92-0BB489B7EA1E}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.CertFr.Tests", "StellaOps.Concelier.Connector.CertFr.Tests\StellaOps.Concelier.Connector.CertFr.Tests.csproj", "{E8862F6E-85C1-4FDB-AA92-0BB489B7EA1E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.CertIn", "StellaOps.Concelier.Source.CertIn\StellaOps.Concelier.Source.CertIn.csproj", "{84DEDF05-A5BD-4644-86B9-6B7918FE3F31}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.CertIn", "StellaOps.Concelier.Connector.CertIn\StellaOps.Concelier.Connector.CertIn.csproj", "{84DEDF05-A5BD-4644-86B9-6B7918FE3F31}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.CertIn.Tests", "StellaOps.Concelier.Source.CertIn.Tests\StellaOps.Concelier.Source.CertIn.Tests.csproj", "{9DEB1F54-94B5-40C4-AC44-220E680B016D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.CertIn.Tests", "StellaOps.Concelier.Connector.CertIn.Tests\StellaOps.Concelier.Connector.CertIn.Tests.csproj", "{9DEB1F54-94B5-40C4-AC44-220E680B016D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Common.Tests", "StellaOps.Concelier.Source.Common.Tests\StellaOps.Concelier.Source.Common.Tests.csproj", "{7C3E87F2-93D8-4968-95E3-52C46947D46C}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Common.Tests", "StellaOps.Concelier.Connector.Common.Tests\StellaOps.Concelier.Connector.Common.Tests.csproj", "{7C3E87F2-93D8-4968-95E3-52C46947D46C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Cve", "StellaOps.Concelier.Source.Cve\StellaOps.Concelier.Source.Cve.csproj", "{C0504D97-9BCD-4AE4-B0DC-B31C17B150F2}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Cve", "StellaOps.Concelier.Connector.Cve\StellaOps.Concelier.Connector.Cve.csproj", "{C0504D97-9BCD-4AE4-B0DC-B31C17B150F2}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Distro.Debian", "StellaOps.Concelier.Source.Distro.Debian\StellaOps.Concelier.Source.Distro.Debian.csproj", "{31B05493-104F-437F-9FA7-CA5286CE697C}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Distro.Debian", "StellaOps.Concelier.Connector.Distro.Debian\StellaOps.Concelier.Connector.Distro.Debian.csproj", "{31B05493-104F-437F-9FA7-CA5286CE697C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Distro.Debian.Tests", "StellaOps.Concelier.Source.Distro.Debian.Tests\StellaOps.Concelier.Source.Distro.Debian.Tests.csproj", "{937AF12E-D770-4534-8FF8-C59042609C2A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Distro.Debian.Tests", "StellaOps.Concelier.Connector.Distro.Debian.Tests\StellaOps.Concelier.Connector.Distro.Debian.Tests.csproj", "{937AF12E-D770-4534-8FF8-C59042609C2A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Distro.RedHat", "StellaOps.Concelier.Source.Distro.RedHat\StellaOps.Concelier.Source.Distro.RedHat.csproj", "{5A028B04-9D76-470B-B5B3-766CE4CE860C}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Distro.RedHat", "StellaOps.Concelier.Connector.Distro.RedHat\StellaOps.Concelier.Connector.Distro.RedHat.csproj", "{5A028B04-9D76-470B-B5B3-766CE4CE860C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Distro.RedHat.Tests", "StellaOps.Concelier.Source.Distro.RedHat.Tests\StellaOps.Concelier.Source.Distro.RedHat.Tests.csproj", "{749DE4C8-F733-43F8-B2A8-6649E71C7570}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Distro.RedHat.Tests", "StellaOps.Concelier.Connector.Distro.RedHat.Tests\StellaOps.Concelier.Connector.Distro.RedHat.Tests.csproj", "{749DE4C8-F733-43F8-B2A8-6649E71C7570}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Distro.Suse", "StellaOps.Concelier.Source.Distro.Suse\StellaOps.Concelier.Source.Distro.Suse.csproj", "{56D2C79E-2737-4FF9-9D19-150065F568D5}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Distro.Suse", "StellaOps.Concelier.Connector.Distro.Suse\StellaOps.Concelier.Connector.Distro.Suse.csproj", "{56D2C79E-2737-4FF9-9D19-150065F568D5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Distro.Suse.Tests", "StellaOps.Concelier.Source.Distro.Suse.Tests\StellaOps.Concelier.Source.Distro.Suse.Tests.csproj", "{E41F6DC4-68B5-4EE3-97AE-801D725A2C13}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Distro.Suse.Tests", "StellaOps.Concelier.Connector.Distro.Suse.Tests\StellaOps.Concelier.Connector.Distro.Suse.Tests.csproj", "{E41F6DC4-68B5-4EE3-97AE-801D725A2C13}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Distro.Ubuntu", "StellaOps.Concelier.Source.Distro.Ubuntu\StellaOps.Concelier.Source.Distro.Ubuntu.csproj", "{285F1D0F-501F-4E2E-8FA0-F2CF28AE3798}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Distro.Ubuntu", "StellaOps.Concelier.Connector.Distro.Ubuntu\StellaOps.Concelier.Connector.Distro.Ubuntu.csproj", "{285F1D0F-501F-4E2E-8FA0-F2CF28AE3798}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Distro.Ubuntu.Tests", "StellaOps.Concelier.Source.Distro.Ubuntu.Tests\StellaOps.Concelier.Source.Distro.Ubuntu.Tests.csproj", "{26055403-C7F5-4709-8813-0F7387102791}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Distro.Ubuntu.Tests", "StellaOps.Concelier.Connector.Distro.Ubuntu.Tests\StellaOps.Concelier.Connector.Distro.Ubuntu.Tests.csproj", "{26055403-C7F5-4709-8813-0F7387102791}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Ghsa", "StellaOps.Concelier.Source.Ghsa\StellaOps.Concelier.Source.Ghsa.csproj", "{0C00D0DA-C4C3-4B23-941F-A3DB2DBF33AF}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Ghsa", "StellaOps.Concelier.Connector.Ghsa\StellaOps.Concelier.Connector.Ghsa.csproj", "{0C00D0DA-C4C3-4B23-941F-A3DB2DBF33AF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Ics.Cisa", "StellaOps.Concelier.Source.Ics.Cisa\StellaOps.Concelier.Source.Ics.Cisa.csproj", "{258327E9-431E-475C-933B-50893676E452}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Ics.Cisa", "StellaOps.Concelier.Connector.Ics.Cisa\StellaOps.Concelier.Connector.Ics.Cisa.csproj", "{258327E9-431E-475C-933B-50893676E452}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Ics.Kaspersky", "StellaOps.Concelier.Source.Ics.Kaspersky\StellaOps.Concelier.Source.Ics.Kaspersky.csproj", "{42AF60C8-A5E1-40E0-86F8-98256364AF6F}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Ics.Kaspersky", "StellaOps.Concelier.Connector.Ics.Kaspersky\StellaOps.Concelier.Connector.Ics.Kaspersky.csproj", "{42AF60C8-A5E1-40E0-86F8-98256364AF6F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Ics.Kaspersky.Tests", "StellaOps.Concelier.Source.Ics.Kaspersky.Tests\StellaOps.Concelier.Source.Ics.Kaspersky.Tests.csproj", "{88C6A9C3-B433-4C36-8767-429C8C2396F8}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Ics.Kaspersky.Tests", "StellaOps.Concelier.Connector.Ics.Kaspersky.Tests\StellaOps.Concelier.Connector.Ics.Kaspersky.Tests.csproj", "{88C6A9C3-B433-4C36-8767-429C8C2396F8}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Jvn", "StellaOps.Concelier.Source.Jvn\StellaOps.Concelier.Source.Jvn.csproj", "{6B7099AB-01BF-4EC4-87D0-5C9C032266DE}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Jvn", "StellaOps.Concelier.Connector.Jvn\StellaOps.Concelier.Connector.Jvn.csproj", "{6B7099AB-01BF-4EC4-87D0-5C9C032266DE}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Jvn.Tests", "StellaOps.Concelier.Source.Jvn.Tests\StellaOps.Concelier.Source.Jvn.Tests.csproj", "{14C918EA-693E-41FE-ACAE-2E82DF077BEA}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Jvn.Tests", "StellaOps.Concelier.Connector.Jvn.Tests\StellaOps.Concelier.Connector.Jvn.Tests.csproj", "{14C918EA-693E-41FE-ACAE-2E82DF077BEA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Kev", "StellaOps.Concelier.Source.Kev\StellaOps.Concelier.Source.Kev.csproj", "{81111B26-74F6-4912-9084-7115FD119945}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Kev", "StellaOps.Concelier.Connector.Kev\StellaOps.Concelier.Connector.Kev.csproj", "{81111B26-74F6-4912-9084-7115FD119945}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Kisa", "StellaOps.Concelier.Source.Kisa\StellaOps.Concelier.Source.Kisa.csproj", "{80E2D661-FF3E-4A10-A2DF-AFD4F3D433FE}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Kisa", "StellaOps.Concelier.Connector.Kisa\StellaOps.Concelier.Connector.Kisa.csproj", "{80E2D661-FF3E-4A10-A2DF-AFD4F3D433FE}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Nvd", "StellaOps.Concelier.Source.Nvd\StellaOps.Concelier.Source.Nvd.csproj", "{8D0F501D-01B1-4E24-958B-FAF35B267705}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Nvd", "StellaOps.Concelier.Connector.Nvd\StellaOps.Concelier.Connector.Nvd.csproj", "{8D0F501D-01B1-4E24-958B-FAF35B267705}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Nvd.Tests", "StellaOps.Concelier.Source.Nvd.Tests\StellaOps.Concelier.Source.Nvd.Tests.csproj", "{5BA91095-7F10-4717-B296-49DFBFC1C9C2}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Nvd.Tests", "StellaOps.Concelier.Connector.Nvd.Tests\StellaOps.Concelier.Connector.Nvd.Tests.csproj", "{5BA91095-7F10-4717-B296-49DFBFC1C9C2}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Osv", "StellaOps.Concelier.Source.Osv\StellaOps.Concelier.Source.Osv.csproj", "{99616566-4EF1-4DC7-B655-825FE43D203D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Osv", "StellaOps.Concelier.Connector.Osv\StellaOps.Concelier.Connector.Osv.csproj", "{99616566-4EF1-4DC7-B655-825FE43D203D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Osv.Tests", "StellaOps.Concelier.Source.Osv.Tests\StellaOps.Concelier.Source.Osv.Tests.csproj", "{EE3C03AD-E604-4C57-9B78-CF7F49FBFCB0}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Osv.Tests", "StellaOps.Concelier.Connector.Osv.Tests\StellaOps.Concelier.Connector.Osv.Tests.csproj", "{EE3C03AD-E604-4C57-9B78-CF7F49FBFCB0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Ru.Bdu", "StellaOps.Concelier.Source.Ru.Bdu\StellaOps.Concelier.Source.Ru.Bdu.csproj", "{A3B19095-2D95-4B09-B07E-2C082C72394B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Ru.Bdu", "StellaOps.Concelier.Connector.Ru.Bdu\StellaOps.Concelier.Connector.Ru.Bdu.csproj", "{A3B19095-2D95-4B09-B07E-2C082C72394B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Ru.Nkcki", "StellaOps.Concelier.Source.Ru.Nkcki\StellaOps.Concelier.Source.Ru.Nkcki.csproj", "{807837AF-B392-4589-ADF1-3FDB34D6C5BF}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Ru.Nkcki", "StellaOps.Concelier.Connector.Ru.Nkcki\StellaOps.Concelier.Connector.Ru.Nkcki.csproj", "{807837AF-B392-4589-ADF1-3FDB34D6C5BF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Vndr.Adobe", "StellaOps.Concelier.Source.Vndr.Adobe\StellaOps.Concelier.Source.Vndr.Adobe.csproj", "{64EAFDCF-8283-4D5C-AC78-7969D5FE926A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Vndr.Adobe", "StellaOps.Concelier.Connector.Vndr.Adobe\StellaOps.Concelier.Connector.Vndr.Adobe.csproj", "{64EAFDCF-8283-4D5C-AC78-7969D5FE926A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Vndr.Adobe.Tests", "StellaOps.Concelier.Source.Vndr.Adobe.Tests\StellaOps.Concelier.Source.Vndr.Adobe.Tests.csproj", "{68F4D8A1-E32F-487A-B460-325F36989BE3}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Vndr.Adobe.Tests", "StellaOps.Concelier.Connector.Vndr.Adobe.Tests\StellaOps.Concelier.Connector.Vndr.Adobe.Tests.csproj", "{68F4D8A1-E32F-487A-B460-325F36989BE3}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Vndr.Apple", "StellaOps.Concelier.Source.Vndr.Apple\StellaOps.Concelier.Source.Vndr.Apple.csproj", "{4A3DA4AE-7B88-4674-A7E2-F5D42B8256F2}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Vndr.Apple", "StellaOps.Concelier.Connector.Vndr.Apple\StellaOps.Concelier.Connector.Vndr.Apple.csproj", "{4A3DA4AE-7B88-4674-A7E2-F5D42B8256F2}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Vndr.Chromium", "StellaOps.Concelier.Source.Vndr.Chromium\StellaOps.Concelier.Source.Vndr.Chromium.csproj", "{606C751B-7CF1-47CF-A25C-9248A55C814F}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Vndr.Chromium", "StellaOps.Concelier.Connector.Vndr.Chromium\StellaOps.Concelier.Connector.Vndr.Chromium.csproj", "{606C751B-7CF1-47CF-A25C-9248A55C814F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Vndr.Chromium.Tests", "StellaOps.Concelier.Source.Vndr.Chromium.Tests\StellaOps.Concelier.Source.Vndr.Chromium.Tests.csproj", "{0BE44D0A-CC4B-4E84-8AF3-D8D99551C431}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Vndr.Chromium.Tests", "StellaOps.Concelier.Connector.Vndr.Chromium.Tests\StellaOps.Concelier.Connector.Vndr.Chromium.Tests.csproj", "{0BE44D0A-CC4B-4E84-8AF3-D8D99551C431}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Vndr.Cisco", "StellaOps.Concelier.Source.Vndr.Cisco\StellaOps.Concelier.Source.Vndr.Cisco.csproj", "{CC4CCE5F-55BC-4745-A204-4FA92BC1BADC}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Vndr.Cisco", "StellaOps.Concelier.Connector.Vndr.Cisco\StellaOps.Concelier.Connector.Vndr.Cisco.csproj", "{CC4CCE5F-55BC-4745-A204-4FA92BC1BADC}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Vndr.Cisco.Tests", "StellaOps.Concelier.Source.Vndr.Cisco.Tests\StellaOps.Concelier.Source.Vndr.Cisco.Tests.csproj", "{99BAE717-9A2E-41F5-9ECC-5FB97E4A6066}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Vndr.Cisco.Tests", "StellaOps.Concelier.Connector.Vndr.Cisco.Tests\StellaOps.Concelier.Connector.Vndr.Cisco.Tests.csproj", "{99BAE717-9A2E-41F5-9ECC-5FB97E4A6066}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Vndr.Msrc", "StellaOps.Concelier.Source.Vndr.Msrc\StellaOps.Concelier.Source.Vndr.Msrc.csproj", "{5CCE0DB7-C115-4B21-A7AE-C8488C22A853}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Vndr.Msrc", "StellaOps.Concelier.Connector.Vndr.Msrc\StellaOps.Concelier.Connector.Vndr.Msrc.csproj", "{5CCE0DB7-C115-4B21-A7AE-C8488C22A853}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Vndr.Oracle", "StellaOps.Concelier.Source.Vndr.Oracle\StellaOps.Concelier.Source.Vndr.Oracle.csproj", "{A09C9E66-5496-47EC-8B23-9EEB7CBDC75E}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Vndr.Oracle", "StellaOps.Concelier.Connector.Vndr.Oracle\StellaOps.Concelier.Connector.Vndr.Oracle.csproj", "{A09C9E66-5496-47EC-8B23-9EEB7CBDC75E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Vndr.Oracle.Tests", "StellaOps.Concelier.Source.Vndr.Oracle.Tests\StellaOps.Concelier.Source.Vndr.Oracle.Tests.csproj", "{06DC817F-A936-4F83-8929-E00622B32245}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Vndr.Oracle.Tests", "StellaOps.Concelier.Connector.Vndr.Oracle.Tests\StellaOps.Concelier.Connector.Vndr.Oracle.Tests.csproj", "{06DC817F-A936-4F83-8929-E00622B32245}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Vndr.Vmware", "StellaOps.Concelier.Source.Vndr.Vmware\StellaOps.Concelier.Source.Vndr.Vmware.csproj", "{2C999476-0291-4161-B3E9-1AA99A3B1139}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Vndr.Vmware", "StellaOps.Concelier.Connector.Vndr.Vmware\StellaOps.Concelier.Connector.Vndr.Vmware.csproj", "{2C999476-0291-4161-B3E9-1AA99A3B1139}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Vndr.Vmware.Tests", "StellaOps.Concelier.Source.Vndr.Vmware.Tests\StellaOps.Concelier.Source.Vndr.Vmware.Tests.csproj", "{476EAADA-1B39-4049-ABE4-CCAC21FFE9E2}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Vndr.Vmware.Tests", "StellaOps.Concelier.Connector.Vndr.Vmware.Tests\StellaOps.Concelier.Connector.Vndr.Vmware.Tests.csproj", "{476EAADA-1B39-4049-ABE4-CCAC21FFE9E2}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Storage.Mongo.Tests", "StellaOps.Concelier.Storage.Mongo.Tests\StellaOps.Concelier.Storage.Mongo.Tests.csproj", "{0EF56124-E6E8-4E89-95DD-5A5D5FF05A98}" EndProject @@ -169,11 +169,11 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Auth.ServerIntegr EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Auth.Client.Tests", "StellaOps.Authority\StellaOps.Auth.Client.Tests\StellaOps.Auth.Client.Tests.csproj", "{7DBE31A6-D2FD-499E-B675-4092723175AD}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Kev.Tests", "StellaOps.Concelier.Source.Kev.Tests\StellaOps.Concelier.Source.Kev.Tests.csproj", "{D99E6EAE-D278-4480-AA67-85F025383E47}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Kev.Tests", "StellaOps.Concelier.Connector.Kev.Tests\StellaOps.Concelier.Connector.Kev.Tests.csproj", "{D99E6EAE-D278-4480-AA67-85F025383E47}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Cve.Tests", "StellaOps.Concelier.Source.Cve.Tests\StellaOps.Concelier.Source.Cve.Tests.csproj", "{D3825714-3DDA-44B7-A99C-5F3E65716691}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Cve.Tests", "StellaOps.Concelier.Connector.Cve.Tests\StellaOps.Concelier.Connector.Cve.Tests.csproj", "{D3825714-3DDA-44B7-A99C-5F3E65716691}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Source.Ghsa.Tests", "StellaOps.Concelier.Source.Ghsa.Tests\StellaOps.Concelier.Source.Ghsa.Tests.csproj", "{FAB78D21-7372-48FE-B2C3-DE1807F1157D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Concelier.Connector.Ghsa.Tests", "StellaOps.Concelier.Connector.Ghsa.Tests\StellaOps.Concelier.Connector.Ghsa.Tests.csproj", "{FAB78D21-7372-48FE-B2C3-DE1807F1157D}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StellaOps.Cryptography", "StellaOps.Cryptography\StellaOps.Cryptography.csproj", "{EADFA337-B0FA-4712-A24A-7C08235BDF98}" EndProject diff --git a/tools/FixtureUpdater/FixtureUpdater.csproj b/tools/FixtureUpdater/FixtureUpdater.csproj index f9c6eb3b..9043d6cb 100644 --- a/tools/FixtureUpdater/FixtureUpdater.csproj +++ b/tools/FixtureUpdater/FixtureUpdater.csproj @@ -8,10 +8,10 @@ - - - - + + + + diff --git a/tools/FixtureUpdater/Program.cs b/tools/FixtureUpdater/Program.cs index 3f80a2cd..27fb7cdf 100644 --- a/tools/FixtureUpdater/Program.cs +++ b/tools/FixtureUpdater/Program.cs @@ -4,12 +4,12 @@ using System.Text.Json; using System.Text.Json.Serialization; using MongoDB.Bson; using StellaOps.Concelier.Models; -using StellaOps.Concelier.Source.Ghsa; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Ghsa.Internal; -using StellaOps.Concelier.Source.Osv.Internal; -using StellaOps.Concelier.Source.Osv; -using StellaOps.Concelier.Source.Nvd; +using StellaOps.Concelier.Connector.Ghsa; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Ghsa.Internal; +using StellaOps.Concelier.Connector.Osv.Internal; +using StellaOps.Concelier.Connector.Osv; +using StellaOps.Concelier.Connector.Nvd; using StellaOps.Concelier.Storage.Mongo.Documents; using StellaOps.Concelier.Storage.Mongo.Dtos; @@ -20,9 +20,9 @@ var serializerOptions = new JsonSerializerOptions(JsonSerializerDefaults.Web) var projectRoot = Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, "..", "..", "..", "..", "..")); -var osvFixturesPath = Path.Combine(projectRoot, "src", "StellaOps.Concelier.Source.Osv.Tests", "Fixtures"); -var ghsaFixturesPath = Path.Combine(projectRoot, "src", "StellaOps.Concelier.Source.Ghsa.Tests", "Fixtures"); -var nvdFixturesPath = Path.Combine(projectRoot, "src", "StellaOps.Concelier.Source.Nvd.Tests", "Nvd", "Fixtures"); +var osvFixturesPath = Path.Combine(projectRoot, "src", "StellaOps.Concelier.Connector.Osv.Tests", "Fixtures"); +var ghsaFixturesPath = Path.Combine(projectRoot, "src", "StellaOps.Concelier.Connector.Ghsa.Tests", "Fixtures"); +var nvdFixturesPath = Path.Combine(projectRoot, "src", "StellaOps.Concelier.Connector.Nvd.Tests", "Nvd", "Fixtures"); RewriteOsvFixtures(osvFixturesPath); RewriteSnapshotFixtures(osvFixturesPath); diff --git a/tools/SourceStateSeeder/Program.cs b/tools/SourceStateSeeder/Program.cs index 6802a780..6607f13c 100644 --- a/tools/SourceStateSeeder/Program.cs +++ b/tools/SourceStateSeeder/Program.cs @@ -5,8 +5,8 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using MongoDB.Bson; using MongoDB.Driver; -using StellaOps.Concelier.Source.Common; -using StellaOps.Concelier.Source.Common.Fetch; +using StellaOps.Concelier.Connector.Common; +using StellaOps.Concelier.Connector.Common.Fetch; using StellaOps.Concelier.Storage.Mongo; using StellaOps.Concelier.Storage.Mongo.Documents; diff --git a/tools/SourceStateSeeder/SourceStateSeeder.csproj b/tools/SourceStateSeeder/SourceStateSeeder.csproj index 06bbefbd..d80cd1a0 100644 --- a/tools/SourceStateSeeder/SourceStateSeeder.csproj +++ b/tools/SourceStateSeeder/SourceStateSeeder.csproj @@ -6,7 +6,7 @@ enable - +