Manifest Ingestion - Schema validation error when persistable reference not provided
Introduction:
In manifest ingestion, a validation step is performed to validate the schema according to the schema in https://community.opengroup.org/osdu/data/data-definitions/-/blob/master/Generated/abstract/AbstractMetaItem.1.0.0.json?ref_type=heads#L148 , the required field is "kind"
and "persistableReference"
.
This MR has been introduced with ADR 188 where the UnitofMeasureID can be provided instead of persistable reference.
This results in a schema validation error when persistable reference is not provided. Example payload, in the meta block where the persistableReference is not provided.
{
"executionContext": {
"acl": {
"owners": ["data.default.owners@osdu.example.com"],
"viewers": ["data.default.viewers@osdu.example.com"]
},
"legal": { "legaltags": ["osdu-public-usa-dataset"], "otherRelevantDataCountries": ["US"] },
"Payload": { "AppKey": "test-app", "data-partition-id": "osdu" },
"manifest": {
"kind": "osdu:wks:Manifest:1.0.0",
"MasterData": [
{
"id": "osdu:master-data--Well:Well_CL_883_0",
"data": {
"Source": "TNO",
"NameAliases": [
{
"AliasNameTypeID": "osdu:reference-data--AliasNameType:WELL_NAME:",
"AliasName": "ACA-0"
},
{ "AliasNameTypeID": "osdu:reference-data--AliasNameType:UWI:", "AliasName": "0" }
],
"GeoContexts": [
{
"GeoPoliticalEntityID": "osdu:master-data--GeoPoliticalEntity:Netherlands_Country:",
"GeoTypeID": "osdu:reference-data--GeoPoliticalEntityType:Country:"
},
{
"GeoPoliticalEntityID": "osdu:master-data--GeoPoliticalEntity:Limburg_Province:",
"GeoTypeID": "osdu:reference-data--GeoPoliticalEntityType:State%2FProvinceID:"
},
{
"GeoPoliticalEntityID": "osdu:master-data--GeoPoliticalEntity:L_Quadrant:",
"GeoTypeID": "osdu:reference-data--GeoPoliticalEntityType:Quadrant:"
}
],
"SpatialLocation": {
"Wgs84Coordinates": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": { "type": "Point", "coordinates": [5.98136045, 51.43503877] },
"properties": {}
}
]
}
},
"FacilityTypeID": "osdu:reference-data--FacilityType:Well:",
"FacilityOperators": [
{ "FacilityOperatorOrganisationID": "osdu:master-data--Organisation:ROVD:" }
],
"VerticalMeasurements": [
{
"VerticalCRSID": "osdu:reference-data--CoordinateReferenceSystem:MSL:",
"VerticalMeasurement": 100,
"VerticalMeasurementID": "Rotary Table",
"VerticalMeasurementPathID": "osdu:reference-data--VerticalMeasurementPath:Elevation:",
"VerticalMeasurementUnitOfMeasureID": "osdu:reference-data--UnitOfMeasure:M:"
}
],
"FacilityID": "ACA-0"
},
"legal": { "legaltags": ["osdu-public-usa-dataset"], "otherRelevantDataCountries": ["US"] },
"kind": "osdu:wks:master-data--Well:1.0.0",
"acl": {
"owners": ["data.default.owners@osdu.example.com"],
"viewers": ["data.default.viewers@osdu.example.com"]
},
"meta": [
{
"kind": "Unit",
"name": "ft",
"unitOfMeasureID": "osdu:reference-data--UnitOfMeasure:ft:",
"propertyNames": ["VerticalMeasurements[].VerticalMeasurement"]
}
]
}
]
}
}
}
Error:
Manifest kind: osdu:wks:master-data--Well:1.0.0
[2024-01-15, 20:17:26 UTC] {validate_schema.py:321} ERROR - Error: {'name': 'ft', 'unitOfMeasureID': 'opendes:reference-data--UnitOfMeasure:ft:', 'kind': 'Unit', 'propertyNames': ['VerticalMeasurements[].VerticalMeasurement']} is not valid under any of the given schemas
Failed validating 'oneOf' in schema['properties']['meta']['items']:
...