[Storage Service] Can't retrieve a record with encoded space symbol in ID

There is a core issue with record IDs that contain encrypted space symbols (%20):

Create record RQ:

curl --location --request PUT 'https://os-storage-attcrcktoa-uc.a.run.app/api/storage/v2/records' \
--header 'Data-Partition-ID: osdu' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '[{
  "id": "osdu:work-product-component--WellboreMarkerSet:Some%20Text",
  ...
}]'

Get record RQ:

curl --location --request GET 'https://os-storage-attcrcktoa-uc.a.run.app/api/storage/v2/records/osdu:work-product-component--WellboreMarkerSet:Some%20Text' \
--header 'Data-Partition-ID: osdu' \
--header 'Authorization: Bearer <token>'

Get record RS:

{
    "code": 400,
    "reason": "Validation error.",
    "message": "getLatestRecordVersion.id: Not a valid record id. Found: osdu:work-product-component--WellboreMarkerSet:Some Text"
}

Expected Result:

  • I should be able to retrieve it by ID that was used during record creation

Actual Result:

  • Its not possible to retrieve the record
Edited Feb 19, 2021 by Dmitriy Rudko
Assignee Loading
Time tracking Loading