up
This commit is contained in:
		@@ -50,7 +50,7 @@
 | 
			
		||||
| `content.format` | string | Source format (`CSAF`, `OSV`, etc.). |
 | 
			
		||||
| `content.spec_version` | string | Upstream spec version when known. |
 | 
			
		||||
| `content.raw` | object | Full upstream payload, untouched except for transport normalisation. |
 | 
			
		||||
| `identifiers` | object | Normalised identifiers (`cve`, `ghsa`, `aliases`, etc.) derived losslessly from raw content. |
 | 
			
		||||
| `identifiers` | object | Upstream identifiers (`cve`, `ghsa`, `aliases`, etc.) captured as provided (trimmed, order preserved, duplicates allowed). |
 | 
			
		||||
| `linkset` | object | Join hints (see section 4.3). |
 | 
			
		||||
| `supersedes` | string or null | Points to previous revision of same upstream doc when content hash changes. |
 | 
			
		||||
 | 
			
		||||
@@ -77,8 +77,9 @@
 | 
			
		||||
- `reconciled_from`: Provenance of linkset entries (JSON Pointer or field origin) to make automated checks auditable.
 | 
			
		||||
 | 
			
		||||
Canonicalisation rules:
 | 
			
		||||
- Package URLs are rendered in canonical form without qualifiers/subpaths (`pkg:type/namespace/name@version`).
 | 
			
		||||
- CPE values are normalised to the 2.3 binding (`cpe:2.3:part:vendor:product:version:*:*:*:*:*:*:*`).
 | 
			
		||||
- Package URLs are rendered in canonical form without qualifiers/subpaths (`pkg:type/namespace/name@version`).
 | 
			
		||||
- CPE values are normalised to the 2.3 binding (`cpe:2.3:part:vendor:product:version:*:*:*:*:*:*:*`).
 | 
			
		||||
- Connector mapping stages are responsible for the canonical form; ingestion trims whitespace but otherwise preserves the original order and duplicate entries so downstream policy can reason about upstream intent.
 | 
			
		||||
 | 
			
		||||
### 4.4 `advisory_observations`
 | 
			
		||||
 | 
			
		||||
@@ -99,10 +100,10 @@ Canonicalisation rules:
 | 
			
		||||
| `content.format` / `content.specVersion` | string | Raw payload format metadata (CSAF, OSV, JSON, etc.). |
 | 
			
		||||
| `content.raw` | object | Full upstream document stored losslessly (Relaxed Extended JSON). |
 | 
			
		||||
| `content.metadata` | object | Optional connector-specific metadata (batch ids, hints). |
 | 
			
		||||
| `linkset.aliases` | array | Normalized aliases (lower-case, sorted). |
 | 
			
		||||
| `linkset.purls` | array | Normalized PURLs extracted from the document. |
 | 
			
		||||
| `linkset.cpes` | array | Normalized CPE URIs. |
 | 
			
		||||
| `linkset.references` | array | `{ type, url }` pairs (type lower-case). |
 | 
			
		||||
| `linkset.aliases` | array | Connector-supplied aliases (trimmed, order preserved, duplicates allowed). |
 | 
			
		||||
| `linkset.purls` | array | Connector-supplied PURLs (ingestion preserves order and duplicates). |
 | 
			
		||||
| `linkset.cpes` | array | Connector-supplied CPE URIs (trimmed, order preserved). |
 | 
			
		||||
| `linkset.references` | array | `{ type, url }` pairs (trimmed; ingestion preserves order). |
 | 
			
		||||
| `createdAt` | datetime | Timestamp when Concelier persisted the observation. |
 | 
			
		||||
| `attributes` | object | Optional provenance attributes keyed by connector. |
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user