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
-
+