consolidation of some of the modules, localization fixes, product advisories work, qa work
This commit is contained in:
@@ -1772,6 +1772,49 @@ inside `AddNormalizationPipelines()` in `ServiceCollectionExtensions.cs`.
|
||||
|
||||
---
|
||||
|
||||
*Document Version: 1.5.0*
|
||||
*Last Updated: 2026-02-12*
|
||||
## Symbols (Debug Symbol Resolution)
|
||||
|
||||
> Absorbed from `src/Symbols/` into `src/BinaryIndex/` per Sprint 202 (2026-03-04).
|
||||
> Project names and namespaces remain `StellaOps.Symbols.*` to avoid serialized type name breakage.
|
||||
|
||||
### Overview
|
||||
|
||||
The Symbols subsystem provides debug symbol storage, resolution, and marketplace functionality. It is the primary data source for BinaryIndex.DeltaSig when resolving function-level identifiers in stripped binaries.
|
||||
|
||||
### Project Structure
|
||||
|
||||
| Project | Location | Role |
|
||||
|---------|----------|------|
|
||||
| `StellaOps.Symbols.Core` | `__Libraries/StellaOps.Symbols.Core/` | Leaf library: models, abstractions (`ISymbolRepository`, `ISymbolResolver`), hashing |
|
||||
| `StellaOps.Symbols.Client` | `__Libraries/StellaOps.Symbols.Client/` | HTTP client for Symbols.Server API (depends on Core) |
|
||||
| `StellaOps.Symbols.Infrastructure` | `__Libraries/StellaOps.Symbols.Infrastructure/` | In-memory and persistent storage, Blake3 hashing (depends on Core) |
|
||||
| `StellaOps.Symbols.Marketplace` | `__Libraries/StellaOps.Symbols.Marketplace/` | Marketplace scoring and catalog (leaf) |
|
||||
| `StellaOps.Symbols.Bundle` | `__Libraries/StellaOps.Symbols.Bundle/` | Deterministic symbol bundles for air-gapped installs with DSSE manifests (depends on Core) |
|
||||
| `StellaOps.Symbols.Server` | `StellaOps.Symbols.Server/` | Deployable ASP.NET Core WebService (depends on Core, Infrastructure, Marketplace) |
|
||||
| `StellaOps.Symbols.Tests` | `__Tests/StellaOps.Symbols.Tests/` | Test project covering all Symbols libraries |
|
||||
|
||||
### Symbols.Server API Surface
|
||||
|
||||
The server exposes REST endpoints on port 8080 (mapped to `127.1.0.38:80` in compose):
|
||||
|
||||
| Method | Path | Auth | Description |
|
||||
|--------|------|------|-------------|
|
||||
| GET | `/health` | Anonymous | Health check |
|
||||
| POST | `/v1/symbols/manifests` | `symbols:write` | Upload symbol manifest |
|
||||
| GET | `/v1/symbols/manifests/{manifestId}` | `symbols:read` | Get manifest by ID |
|
||||
| GET | `/v1/symbols/manifests` | `symbols:read` | Query manifests (filter by debugId, codeId, binaryName, platform) |
|
||||
| POST | `/v1/symbols/resolve` | `symbols:read` | Batch-resolve symbol addresses |
|
||||
| GET | `/v1/symbols/by-debug-id/{debugId}` | `symbols:read` | Get manifests by debug ID |
|
||||
|
||||
Additional marketplace endpoints are mapped via `app.MapSymbolSourceEndpoints()`.
|
||||
|
||||
### Consumers
|
||||
|
||||
- **BinaryIndex.DeltaSig** (`__Libraries/StellaOps.BinaryIndex.DeltaSig/`): References `Symbols.Core` for symbol resolution during delta signature generation.
|
||||
- **Cli.Plugins.Symbols** (`src/Cli/__Libraries/StellaOps.Cli.Plugins.Symbols/`): References `Symbols.Core` and `Symbols.Client` for CLI symbol ingestion commands.
|
||||
|
||||
---
|
||||
|
||||
*Document Version: 1.6.0*
|
||||
*Last Updated: 2026-03-04*
|
||||
|
||||
|
||||
Reference in New Issue
Block a user