Add Vault, Consul, eBPF connector plugins and thorough integration e2e tests

Backend:
- Add SecretsManager=9 type, Vault=550 and Consul=551 providers to IntegrationEnums
- Create VaultConnectorPlugin (GET /v1/sys/health), ConsulConnectorPlugin
  (GET /v1/status/leader), EbpfAgentConnectorPlugin (GET /api/v1/health)
- Register all 3 plugins in Program.cs and WebService.csproj
- Extend Concelier JobRegistrationExtensions with 20 additional advisory
  source connectors (ghsa, kev, epss, debian, ubuntu, alpine, suse, etc.)
- Add connector project references to Concelier WebService.csproj so
  Type.GetType() can resolve job classes at runtime
- Fix job kind names to match SourceDefinitions IDs (jpcert not jvn,
  oracle not vndr-oracle, etc.)

Infrastructure:
- Add Consul service to docker-compose.integrations.yml (127.1.2.8:8500)
- Add runtime-host nginx fixture to docker-compose.integration-fixtures.yml
  (127.1.1.9:80)

Frontend:
- Mirror SecretsManager/Vault/Consul enum additions in integration.models.ts
- Fix Secrets tab route type from RepoSource to SecretsManager
- Add SecretsManager to parseType() and TYPE_DISPLAY_NAMES

E2E tests (117/117 passing):
- vault-consul-secrets.e2e.spec.ts: compose health, probes, CRUD, UI
- runtime-hosts.e2e.spec.ts: fixture probe, CRUD, hosts tab
- advisory-sync.e2e.spec.ts: 21 sources sync accepted, catalog, management
- ui-onboarding-wizard.e2e.spec.ts: wizard steps for registry/scm/ci
- ui-integration-detail.e2e.spec.ts: detail tabs, health data
- ui-crud-operations.e2e.spec.ts: search, sort, delete
- helpers.ts: shared configs, API helpers, screenshot util
- Updated playwright.integrations.config.ts with reporter and CI retries

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
master
2026-03-31 14:39:08 +03:00
parent 4a570b2842
commit 2fef38b093
25 changed files with 2091 additions and 140 deletions

View File

@@ -32,13 +32,13 @@ internal static class JobRegistrationExtensions
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.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:jpcert:fetch", "StellaOps.Concelier.Connector.Jvn.JvnFetchJob", "StellaOps.Concelier.Connector.Jvn", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:jpcert:parse", "StellaOps.Concelier.Connector.Jvn.JvnParseJob", "StellaOps.Concelier.Connector.Jvn", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:jpcert:map", "StellaOps.Concelier.Connector.Jvn.JvnMapJob", "StellaOps.Concelier.Connector.Jvn", 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:kaspersky-ics:fetch", "StellaOps.Concelier.Connector.Ics.Kaspersky.KasperskyFetchJob", "StellaOps.Concelier.Connector.Ics.Kaspersky", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:kaspersky-ics:parse", "StellaOps.Concelier.Connector.Ics.Kaspersky.KasperskyParseJob", "StellaOps.Concelier.Connector.Ics.Kaspersky", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:kaspersky-ics:map", "StellaOps.Concelier.Connector.Ics.Kaspersky.KasperskyMapJob", "StellaOps.Concelier.Connector.Ics.Kaspersky", 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)),
@@ -48,9 +48,94 @@ internal static class JobRegistrationExtensions
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.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("source:oracle:fetch", "StellaOps.Concelier.Connector.Vndr.Oracle.OracleFetchJob", "StellaOps.Concelier.Connector.Vndr.Oracle", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:oracle:parse", "StellaOps.Concelier.Connector.Vndr.Oracle.OracleParseJob", "StellaOps.Concelier.Connector.Vndr.Oracle", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:oracle:map", "StellaOps.Concelier.Connector.Vndr.Oracle.OracleMapJob", "StellaOps.Concelier.Connector.Vndr.Oracle", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
// ── GHSA ──
new("source:ghsa:fetch", "StellaOps.Concelier.Connector.Ghsa.GhsaFetchJob", "StellaOps.Concelier.Connector.Ghsa", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:ghsa:parse", "StellaOps.Concelier.Connector.Ghsa.GhsaParseJob", "StellaOps.Concelier.Connector.Ghsa", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:ghsa:map", "StellaOps.Concelier.Connector.Ghsa.GhsaMapJob", "StellaOps.Concelier.Connector.Ghsa", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
// ── KEV (CISA Known Exploited Vulnerabilities) ──
new("source:kev:fetch", "StellaOps.Concelier.Connector.Kev.KevFetchJob", "StellaOps.Concelier.Connector.Kev", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:kev:parse", "StellaOps.Concelier.Connector.Kev.KevParseJob", "StellaOps.Concelier.Connector.Kev", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:kev:map", "StellaOps.Concelier.Connector.Kev.KevMapJob", "StellaOps.Concelier.Connector.Kev", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
// ── EPSS ──
new("source:epss:fetch", "StellaOps.Concelier.Connector.Epss.EpssFetchJob", "StellaOps.Concelier.Connector.Epss", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:epss:parse", "StellaOps.Concelier.Connector.Epss.EpssParseJob", "StellaOps.Concelier.Connector.Epss", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:epss:map", "StellaOps.Concelier.Connector.Epss.EpssMapJob", "StellaOps.Concelier.Connector.Epss", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
// ── Distro: Debian ──
new("source:debian:fetch", "StellaOps.Concelier.Connector.Distro.Debian.DebianFetchJob", "StellaOps.Concelier.Connector.Distro.Debian", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:debian:parse", "StellaOps.Concelier.Connector.Distro.Debian.DebianParseJob", "StellaOps.Concelier.Connector.Distro.Debian", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:debian:map", "StellaOps.Concelier.Connector.Distro.Debian.DebianMapJob", "StellaOps.Concelier.Connector.Distro.Debian", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
// ── Distro: Ubuntu ──
new("source:ubuntu:fetch", "StellaOps.Concelier.Connector.Distro.Ubuntu.UbuntuFetchJob", "StellaOps.Concelier.Connector.Distro.Ubuntu", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:ubuntu:parse", "StellaOps.Concelier.Connector.Distro.Ubuntu.UbuntuParseJob", "StellaOps.Concelier.Connector.Distro.Ubuntu", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:ubuntu:map", "StellaOps.Concelier.Connector.Distro.Ubuntu.UbuntuMapJob", "StellaOps.Concelier.Connector.Distro.Ubuntu", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
// ── Distro: Alpine ──
new("source:alpine:fetch", "StellaOps.Concelier.Connector.Distro.Alpine.AlpineFetchJob", "StellaOps.Concelier.Connector.Distro.Alpine", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:alpine:parse", "StellaOps.Concelier.Connector.Distro.Alpine.AlpineParseJob", "StellaOps.Concelier.Connector.Distro.Alpine", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:alpine:map", "StellaOps.Concelier.Connector.Distro.Alpine.AlpineMapJob", "StellaOps.Concelier.Connector.Distro.Alpine", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
// ── Distro: SUSE ──
new("source:suse:fetch", "StellaOps.Concelier.Connector.Distro.Suse.SuseFetchJob", "StellaOps.Concelier.Connector.Distro.Suse", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:suse:parse", "StellaOps.Concelier.Connector.Distro.Suse.SuseParseJob", "StellaOps.Concelier.Connector.Distro.Suse", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:suse:map", "StellaOps.Concelier.Connector.Distro.Suse.SuseMapJob", "StellaOps.Concelier.Connector.Distro.Suse", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
// ── CERT-BUND (fetch only) ──
new("source:cert-bund:fetch", "StellaOps.Concelier.Connector.CertBund.CertBundFetchJob", "StellaOps.Concelier.Connector.CertBund", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
// ── CERT-CC (fetch only) ──
new("source:cert-cc:fetch", "StellaOps.Concelier.Connector.CertCc.CertCcFetchJob", "StellaOps.Concelier.Connector.CertCc", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
// ── ACSC (Australian Cyber Security Centre) ──
new("source:auscert:fetch", "StellaOps.Concelier.Connector.Acsc.AcscFetchJob", "StellaOps.Concelier.Connector.Acsc", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:auscert:parse", "StellaOps.Concelier.Connector.Acsc.AcscParseJob", "StellaOps.Concelier.Connector.Acsc", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:auscert:map", "StellaOps.Concelier.Connector.Acsc.AcscMapJob", "StellaOps.Concelier.Connector.Acsc", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
// ── CCCS (Canadian Centre for Cyber Security, fetch only) ──
new("source:cccs:fetch", "StellaOps.Concelier.Connector.Cccs.CccsFetchJob", "StellaOps.Concelier.Connector.Cccs", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
// ── KISA (Korea, fetch only) ──
new("source:kisa:fetch", "StellaOps.Concelier.Connector.Kisa.KisaFetchJob", "StellaOps.Concelier.Connector.Kisa", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
// ── RU-BDU (Russian FSTEC) ──
new("source:fstec-bdu:fetch", "StellaOps.Concelier.Connector.Ru.Bdu.RuBduFetchJob", "StellaOps.Concelier.Connector.Ru.Bdu", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:fstec-bdu:parse", "StellaOps.Concelier.Connector.Ru.Bdu.RuBduParseJob", "StellaOps.Concelier.Connector.Ru.Bdu", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:fstec-bdu:map", "StellaOps.Concelier.Connector.Ru.Bdu.RuBduMapJob", "StellaOps.Concelier.Connector.Ru.Bdu", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
// ── RU-NKCKI (Russian NKCKI) ──
new("source:nkcki:fetch", "StellaOps.Concelier.Connector.Ru.Nkcki.RuNkckiFetchJob", "StellaOps.Concelier.Connector.Ru.Nkcki", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:nkcki:parse", "StellaOps.Concelier.Connector.Ru.Nkcki.RuNkckiParseJob", "StellaOps.Concelier.Connector.Ru.Nkcki", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:nkcki:map", "StellaOps.Concelier.Connector.Ru.Nkcki.RuNkckiMapJob", "StellaOps.Concelier.Connector.Ru.Nkcki", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
// ── Vendor: Apple ──
new("source:apple:fetch", "StellaOps.Concelier.Connector.Vndr.Apple.AppleFetchJob", "StellaOps.Concelier.Connector.Vndr.Apple", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:apple:parse", "StellaOps.Concelier.Connector.Vndr.Apple.AppleParseJob", "StellaOps.Concelier.Connector.Vndr.Apple", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:apple:map", "StellaOps.Concelier.Connector.Vndr.Apple.AppleMapJob", "StellaOps.Concelier.Connector.Vndr.Apple", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
// ── Vendor: Cisco ──
new("source:cisco:fetch", "StellaOps.Concelier.Connector.Vndr.Cisco.CiscoFetchJob", "StellaOps.Concelier.Connector.Vndr.Cisco", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:cisco:parse", "StellaOps.Concelier.Connector.Vndr.Cisco.CiscoParseJob", "StellaOps.Concelier.Connector.Vndr.Cisco", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:cisco:map", "StellaOps.Concelier.Connector.Vndr.Cisco.CiscoMapJob", "StellaOps.Concelier.Connector.Vndr.Cisco", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
// ── Vendor: Microsoft MSRC (fetch only) ──
new("source:microsoft:fetch", "StellaOps.Concelier.Connector.Vndr.Msrc.MsrcFetchJob", "StellaOps.Concelier.Connector.Vndr.Msrc", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
// ── ICS-CISA ──
new("source:us-cert:fetch", "StellaOps.Concelier.Connector.Ics.Cisa.IcsCisaFetchJob", "StellaOps.Concelier.Connector.Ics.Cisa", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:us-cert:parse", "StellaOps.Concelier.Connector.Ics.Cisa.IcsCisaParseJob", "StellaOps.Concelier.Connector.Ics.Cisa", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:us-cert:map", "StellaOps.Concelier.Connector.Ics.Cisa.IcsCisaMapJob", "StellaOps.Concelier.Connector.Ics.Cisa", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
// ── Stella Ops Mirror ──
new("source:stella-mirror:fetch", "StellaOps.Concelier.Connector.StellaOpsMirror.StellaOpsMirrorFetchJob", "StellaOps.Concelier.Connector.StellaOpsMirror", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:stella-mirror:parse", "StellaOps.Concelier.Connector.StellaOpsMirror.StellaOpsMirrorParseJob", "StellaOps.Concelier.Connector.StellaOpsMirror", TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(5)),
new("source:stella-mirror:map", "StellaOps.Concelier.Connector.StellaOpsMirror.StellaOpsMirrorMapJob", "StellaOps.Concelier.Connector.StellaOpsMirror", 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))

View File

@@ -30,6 +30,36 @@
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Federation/StellaOps.Concelier.Federation.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Models/StellaOps.Concelier.Models.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.Common/StellaOps.Concelier.Connector.Common.csproj" />
<!-- Connectors referenced by built-in job registrations -->
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.Distro.RedHat/StellaOps.Concelier.Connector.Distro.RedHat.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.CertIn/StellaOps.Concelier.Connector.CertIn.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.CertFr/StellaOps.Concelier.Connector.CertFr.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.Jvn/StellaOps.Concelier.Connector.Jvn.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.Ics.Kaspersky/StellaOps.Concelier.Connector.Ics.Kaspersky.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.Osv/StellaOps.Concelier.Connector.Osv.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.Vndr.Vmware/StellaOps.Concelier.Connector.Vndr.Vmware.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.Vndr.Oracle/StellaOps.Concelier.Connector.Vndr.Oracle.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.Ghsa/StellaOps.Concelier.Connector.Ghsa.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.Kev/StellaOps.Concelier.Connector.Kev.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.Epss/StellaOps.Concelier.Connector.Epss.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.Distro.Debian/StellaOps.Concelier.Connector.Distro.Debian.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.Distro.Ubuntu/StellaOps.Concelier.Connector.Distro.Ubuntu.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.Distro.Alpine/StellaOps.Concelier.Connector.Distro.Alpine.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.Distro.Suse/StellaOps.Concelier.Connector.Distro.Suse.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.CertBund/StellaOps.Concelier.Connector.CertBund.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.CertCc/StellaOps.Concelier.Connector.CertCc.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.Acsc/StellaOps.Concelier.Connector.Acsc.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.Cccs/StellaOps.Concelier.Connector.Cccs.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.Kisa/StellaOps.Concelier.Connector.Kisa.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.Ru.Bdu/StellaOps.Concelier.Connector.Ru.Bdu.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.Ru.Nkcki/StellaOps.Concelier.Connector.Ru.Nkcki.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.Vndr.Apple/StellaOps.Concelier.Connector.Vndr.Apple.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.Vndr.Cisco/StellaOps.Concelier.Connector.Vndr.Cisco.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.Vndr.Msrc/StellaOps.Concelier.Connector.Vndr.Msrc.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.Ics.Cisa/StellaOps.Concelier.Connector.Ics.Cisa.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Connector.StellaOpsMirror/StellaOps.Concelier.Connector.StellaOpsMirror.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Exporter.Json/StellaOps.Concelier.Exporter.Json.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Exporter.TrivyDb/StellaOps.Concelier.Exporter.TrivyDb.csproj" />
<ProjectReference Include="../__Libraries/StellaOps.Concelier.Merge/StellaOps.Concelier.Merge.csproj" />
<ProjectReference Include="../../__Libraries/StellaOps.Plugin/StellaOps.Plugin.csproj" />
<ProjectReference Include="../../Router/__Libraries/StellaOps.Messaging/StellaOps.Messaging.csproj" />