Files
git.stella-ops.org/docs/modules/unknowns/architecture.md

71 lines
1.9 KiB
Markdown

# component_architecture_unknowns.md - **Stella Ops Unknowns** (2025Q4)
> Unknown component and symbol tracking registry.
> **Scope.** Library architecture for **Unknowns**: tracking unresolved components, symbols, and mappings that Scanner and other analyzers cannot definitively identify.
---
## 0) Mission & boundaries
**Mission.** Provide a **structured registry** for tracking unknown components, unresolved symbols, and incomplete mappings. Enable visibility into coverage gaps and guide future enhancement priorities.
**Boundaries.**
* Unknowns is a **library layer** consumed by Scanner and Signals.
* Unknowns **does not** guess identities. It records what cannot be determined.
* All unknowns are **categorized** for actionability.
---
## 1) Solution & project layout
```
src/Unknowns/
├─ __Libraries/
│ ├─ StellaOps.Unknowns.Core/ # Unknown models, categorization
│ ├─ StellaOps.Unknowns.Persistence/ # Storage abstractions
│ └─ StellaOps.Unknowns.Persistence.EfCore/
└─ __Tests/
├─ StellaOps.Unknowns.Core.Tests/
└─ StellaOps.Unknowns.Persistence.Tests/
```
---
## 2) Contracts & data model
### 2.1 Unknown Record
```json
{
"unknownId": "unk-2025-01-15-abc123",
"category": "symbol_unmapped",
"context": {
"scanId": "scan-xyz",
"binaryPath": "/usr/lib/libfoo.so",
"symbolName": "_ZN3foo3barEv"
},
"reason": "No PURL mapping available",
"firstSeen": "2025-01-15T10:30:00Z",
"occurrences": 42
}
```
### 2.2 Categories
| Category | Description |
|----------|-------------|
| `component_unidentified` | Binary without package mapping |
| `symbol_unmapped` | Symbol without PURL resolution |
| `version_ambiguous` | Multiple version candidates |
| `purl_invalid` | Malformed package URL |
---
## Related Documentation
* Scanner: `../scanner/architecture.md`
* Signals: `../signals/architecture.md`