Searching records with special character not discoverable
- A bug has been found out in OSDU API convertTrajectory where it does not work if the projected CRS is using a unit with record id containing special characters (encoded or not), such as ft[US] or ft[Se].
- This bug has impacted Shell in particular project in Malaysia in OSDU, scheduled to be onboarded in 1Q25 and is a showstopper.
- It was raised when data was migrated from legacy system to OSDU for CRS 29872 used in Malaysia, which uses the Sears Foot (ftSe) as unit.
-
The issue impacts also any CRS in US, using the “ft[US]” type record id (the foot used in the USA, which is slightly different than the international definition of one foot used in UK).
-
The CRS definition CRS_CT.json has a property "HorizontalAxisUnitID": "osdu:reference-data--UnitOfMeasure:ft%5BSe%5D:", but this record id cannot be retrieved with storage API. This is a fundamental bug in the storage records API that is called in convertTrajectory.
-
Note: ”%5B” is url encoding for an opening square bracket “[“ and “%5D” for a closing square bracket “]”, i.e., the id is “ft[Se]” per Energistics as OSDU standard that cannot be overwritten because it is under “OPEN” governance, meaning an operator is not allowed to change its definition, though is allowed to add Operator custom units).
-
The root cause is that the code is using the storage API record query to retrieve the record id, and although the record id is mandated to be "id": "{{NAMESPACE}}:reference-data--UnitOfMeasure:ft%5BSe%5D", this does not work.