@@ -1,18 +1,18 @@
# Vexe r Connector Packaging Guide
# Excitito r Connector Packaging Guide
> **Audience:** teams implementing new Vexe r provider plug‑ ins (CSAF feeds,
> **Audience:** teams implementing new Excitito r provider plug‑ ins (CSAF feeds,
> OpenVEX attestations, etc.)
> **Prerequisites:** read `docs/ARCHITECTURE_V EXE R.md` and the module
> `AGENTS.md` in `src/StellaOps.Vexe r.Connectors.Abstractions/` .
> **Prerequisites:** read `docs/ARCHITECTURE_EXCITITO R.md` and the module
> `AGENTS.md` in `src/StellaOps.Excitito r.Connectors.Abstractions/` .
The Vexe r connector SDK gives you:
The Excitito r connector SDK gives you:
- `VexConnectorBase` – deterministic logging, SHA‑ 256 helpers, time provider.
- `VexConnectorOptionsBinder` – strongly typed YAML/JSON configuration binding.
- `IVexConnectorOptionsValidator<T>` – custom validation hooks (offline defaults, auth invariants).
- `VexConnectorDescriptor` & metadata helpers for consistent telemetry.
This guide explains how to package a connector so the Vexe r Worker/WebService
This guide explains how to package a connector so the Excitito r Worker/WebService
can load it via the plugin host.
---
@@ -20,12 +20,12 @@ can load it via the plugin host.
## 1. Project layout
Start from the template under
`docs/dev/templates/v exe r-connector/` . It contains:
`docs/dev/templates/excitito r-connector/` . It contains:
```
Vexe r.MyConnector/
Excitito r.MyConnector/
├── src/
│ ├── Vexe r.MyConnector.csproj
│ ├── Excitito r.MyConnector.csproj
│ ├── MyConnectorOptions.cs
│ ├── MyConnector.cs
│ └── MyConnectorPlugin.cs
@@ -36,8 +36,8 @@ Vexer.MyConnector/
Key points:
- Target `net10.0` , enable `TreatWarningsAsErrors` , reference the
`StellaOps.Vexe r.Connectors.Abstractions` project (or NuGet once published).
- Keep project ID prefix `StellaOps.Vexe r.Connectors.<Provider>` so the
`StellaOps.Excitito r.Connectors.Abstractions` project (or NuGet once published).
- Keep project ID prefix `StellaOps.Excitito r.Connectors.<Provider>` so the
plugin loader can discover it with the default search pattern.
### 1.1 csproj snippet
@@ -51,7 +51,7 @@ Key points:
< TreatWarningsAsErrors > true< / TreatWarningsAsErrors >
< / PropertyGroup >
< ItemGroup >
< ProjectReference Include = ".. \.. \.. \src \StellaOps.Vexe r.Connectors.Abstractions \StellaOps.Vexe r.Connectors.Abstractions.csproj" />
< ProjectReference Include = ".. \.. \.. \src \StellaOps.Excitito r.Connectors.Abstractions \StellaOps.Excitito r.Connectors.Abstractions.csproj" />
< / ItemGroup >
< / Project >
```
@@ -135,7 +135,7 @@ this contract today.
public sealed class MyConnectorPlugin : IConnectorPlugin
{
private static readonly VexConnectorDescriptor Descriptor =
new("v exe r:my-provider", VexProviderKind.Vendor, "My Provider VEX");
new("excitito r:my-provider", VexProviderKind.Vendor, "My Provider VEX");
public string Name => Descriptor.DisplayName;
@@ -150,8 +150,8 @@ public sealed class MyConnectorPlugin : IConnectorPlugin
}
```
> **Note:** the Vexe r Worker currently instantiates connectors through the
> shared `IConnectorPlugin` contract. Once a dedicated Vexe r plugin interface
> **Note:** the Excitito r Worker currently instantiates connectors through the
> shared `IConnectorPlugin` contract. Once a dedicated Excitito r plugin interface
> lands you simply swap the base interface; the descriptor/connector code
> remains unchanged.
@@ -159,18 +159,18 @@ Provide a manifest describing the assembly for operational tooling:
```yaml
# manifest/connector.manifest.yaml
id: v exe r-my-provider
assembly: StellaOps.Vexe r.Connectors.MyProvider.dll
entryPoint: StellaOps.Vexe r.Connectors.MyProvider.MyConnectorPlugin
id: excitito r-my-provider
assembly: StellaOps.Excitito r.Connectors.MyProvider.dll
entryPoint: StellaOps.Excitito r.Connectors.MyProvider.MyConnectorPlugin
description: >
Official VEX feed for ExampleCorp products (CSAF JSON, daily updates).
tags:
- v exe r
- excitito r
- csaf
- vendor
```
Store manifests under `/opt/stella/v exe r/plugins/<connector>/manifest/` in
Store manifests under `/opt/stella/excitito r/plugins/<connector>/manifest/` in
production so the deployment tooling can inventory and verify plug‑ ins.
---
@@ -178,9 +178,9 @@ production so the deployment tooling can inventory and verify plug‑ ins.
## 4. Packaging workflow
1. `dotnet publish -c Release` → copy the published DLLs to
`/opt/stella/v exe r/plugins/<Provider>/` .
`/opt/stella/excitito r/plugins/<Provider>/` .
2. Place `connector.manifest.yaml` next to the binaries.
3. Restart the Vexe r Worker or WebService (hot reload not supported yet).
3. Restart the Excitito r Worker or WebService (hot reload not supported yet).
4. Verify logs: `VEX-ConnectorLoader` should list the connector descriptor.
### 4.1 Offline kits
@@ -195,7 +195,7 @@ production so the deployment tooling can inventory and verify plug‑ ins.
## 5. Testing checklist
- Unit tests around options binding & validators.
- Integration tests (future `StellaOps.Vexe r.Connectors.Abstractions.Tests` )
- Integration tests (future `StellaOps.Excitito r.Connectors.Abstractions.Tests` )
verifying deterministic logging scopes:
`logger.BeginScope` should produce `vex.connector.id` , `vex.connector.kind` ,
and `vex.connector.operation` .
@@ -206,7 +206,7 @@ production so the deployment tooling can inventory and verify plug‑ ins.
## 6. Reference template
See `docs/dev/templates/v exe r-connector/` for the full quick‑ start including:
See `docs/dev/templates/excitito r-connector/` for the full quick‑ start including:
- Sample options class + validator.
- Connector implementation inheriting from `VexConnectorBase` .