OSDU + Cognite CDF — what plugs in where.
Hullproof emits CoatingPassport. CoatingPassport renders into OSDU InspectionRecord + ConditionObservation records, and into Cognite CDF Asset + Event records. This is the integration- engineer reference: what maps directly, what needs a small mapping, what your stack handles.
1. Cognite CDF — what falls out of the box
CDF organizes the world around Assets, Events, Files, and Time Series. CoatingPassport maps cleanly:
- Asset.
passport.asset→ CDF Asset record.asset_idmaps toexternalId.asset_type+materialmap to CDF metadata. Hierarchy parent references viaparentExternalIdif the operator has an asset tree already. - Event.
passport.findings[]→ CDF Event records, one per finding. Severity → CDF event type; finding category → CDF event subtype. Confidence + frame count + AI model version live in event metadata for traceability. - File.
source_frames[]→ CDF File records, one per supporting frame. Cross- referenced to the parent Event via metadata. - Time Series. Per-finding severity over time becomes a CDF Time Series, populated automatically when multiple passports exist for the same asset.
Live CDF JSON demo shows the full mapping for a demo offshore jacket.
2. OSDU — what falls out of the box
OSDU organizes the world around kind-typed records under a tenant. The InspectionRecord + ConditionObservation kinds are the natural home for CoatingPassport data:
- InspectionRecord.
passport.inspection→ InspectionRecord.kind: hullproof:inspection:1.0.0. ACL + legal tags filled per the OSDU tenant policy. - ConditionObservation.
passport.findings[]→ ConditionObservation records, one per finding. Severity, confidence, source- frame references all carry through. - Master-data references. Asset is referenced by OSDU master-data ID where it already exists in the OSDU instance; created with
hullproof:prefix where it does not.
Live OSDU JSON demo shows the full mapping for the same jacket.
3. What needs a small mapping
Most CoatingPassport fields map directly to CDF + OSDU. Three areas where every operator needs to make a small decision:
- Asset hierarchy parent. Where does this asset sit in your asset tree? Hullproof has a flat asset_id by default; if you want hierarchical placement, tell us the parent externalId convention.
- ACL + legal tags. OSDU requires ACL and legal tags per record. We use sensible defaults per tenant; if your OSDU instance has a specific policy (e.g., scoped to a country, project, contract), we set the policy at integration time.
- Event type taxonomy. CDF lets operators define event-type taxonomies. We default to
hullproof.finding.<category>; if you have an existing taxonomy (e.g.,integrity.observation.<type>), we map at integration time.
4. What your stack handles, not us
- CDF authentication + project setup. We hand off the JSON; your CDF API key + project tag drop it into the right place.
- OSDU instance + ACL configuration. Same — we hand off the record; your OSDU instance handles ingest.
- Master-data alignment. If you have an internal asset registry, we line up to the externalId convention you hand us.
5. Other channels in the same family
Same passport, more renderers: RDF/Turtle for knowledge graphs, DNV Veracity for classification-society data exchange, BIMCO biofouling for shipping standards, EU ETS bundle for verifier walk-through. Full integrations index.
Pilot the CDF or OSDU integration
One asset. One inspection cycle. We emit passport, you ingest into CDF or OSDU, your team validates the mapping before any commercial commitment.