tools/rest-scripts/check-record.http (165 lines of code) (raw):
# ------- HTTP REST CLIENT -------
# https://marketplace.visualstudio.com/items?itemName=humao.rest-client
#
# Purpose: Scenario Validation - Storage Record
# -----------------------
# OAUTH (Variables)
# -----------------------
###
@login_base = login.microsoftonline.com/{{TENANT_ID}}
@oauth_token_host = {{login_base}}/oauth2/v2.0/token
@scopes = {{CLIENT_ID}}/.default openid profile offline_access
# -----------------------
# OAUTH refresh_token
# -----------------------
###
# @name refresh
POST https://{{oauth_token_host}} HTTP/1.1
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token
&client_id={{CLIENT_ID}}
&client_secret={{CLIENT_SECRET}}
&refresh_token={{REFRESH_TOKEN}}
&scope={{scopes}}
# -----------------------
# API (Variables)
# -----------------------
###
@access_token = {{refresh.response.body.access_token}}
@ENTITLEMENTS_HOST = {{HOST}}/api/entitlements/v2
@LEGAL_HOST = {{HOST}}/api/legal/v1
@SCHEMA_HOST = {{HOST}}/api/schema-service/v1
@STORAGE_HOST = {{HOST}}/api/storage/v2
@SEARCH_HOST = {{HOST}}/api/search/v2
@tag = public-usa-check-1
@kind = osdu:wks:reference-data--ProcessingParameterType:1.0.0
@index = osdu-wks-reference-data--processingparametertype-1.0.0
# -----------------------
# API: legal
# -----------------------
###
# @name createTag
POST {{LEGAL_HOST}}/legaltags
Authorization: Bearer {{access_token}}
Content-Type: application/json
data-partition-id: {{DATA_PARTITION}}
{
"name": "{{tag}}",
"description": "This tag is used by Check Scripts",
"properties": {
"countryOfOrigin": [
"US"
],
"contractId": "A1234",
"expirationDate": "2026-12-31",
"originator": "MyCompany",
"dataType": "Transferred Data",
"securityClassification": "Public",
"personalData": "No Personal Data",
"exportClassification": "EAR99"
}
}
###
# @name getTag
GET {{LEGAL_HOST}}/legaltags/{{DATA_PARTITION}}-{{tag}}
Authorization: Bearer {{access_token}}
Accept: application/json
data-partition-id: {{DATA_PARTITION}}
# -----------------------
# API: schema
# -----------------------
###
# @name getSchema
GET {{SCHEMA_HOST}}/schema/{{kind}}
Authorization: Bearer {{access_token}}
Accept: application/json
data-partition-id: {{DATA_PARTITION}}
# -----------------------
# API STORAGE
# -----------------------
###
# @name createRecord
PUT {{STORAGE_HOST}}/records
Authorization: Bearer {{access_token}}
Content-Type: application/json
data-partition-id: {{DATA_PARTITION}}
[
{
"kind": "{{kind}}",
"acl": {
"viewers": [
"data.default.viewers@{{DATA_PARTITION}}.dataservices.energy"
],
"owners": [
"data.default.owners@{{DATA_PARTITION}}.dataservices.energy"
]
},
"legal": {
"legaltags": [
"{{DATA_PARTITION}}-{{tag}}"
],
"otherRelevantDataCountries": [
"US"
],
"status": "compliant"
},
"data": {
"Name": "QA Test Case",
"ID": "qatest",
"Code": "QA Test Case",
"Source": "osdu-tno-load-js"
}
}
]
@id = {{createRecord.response.body.recordIds[0]}}
@version = {{createRecord.response.body.recordIdVersions[0]}}
###
# @name GetRecord
GET {{STORAGE_HOST}}/records/{{id}}
Authorization: Bearer {{access_token}}
Accept: application/json
data-partition-id: {{DATA_PARTITION}}
###
# @name ListRecordVersions
GET {{STORAGE_HOST}}/records/versions/{{id}}
Authorization: Bearer {{access_token}}
Accept: application/json
data-partition-id: {{DATA_PARTITION}}
###
# @name GetRecordVersion
GET {{STORAGE_HOST}}/records/{{id}}/{{ListRecordVersions.response.body.versions[0]}}
Authorization: Bearer {{access_token}}
Accept: application/json
data-partition-id: {{DATA_PARTITION}}
# -----------------------
# API search
# -----------------------
###
# @name searchRecord
POST {{SEARCH_HOST}}/query
Authorization: Bearer {{access_token}}
Content-Type: application/json
data-partition-id: {{DATA_PARTITION}}
{
"kind": "{{kind}}",
"query": "data.ID:(\"{{GetRecordVersion.response.body.data.ID}}\")",
"offset": 0,
"limit": 1
}
@all_totalCount = {{searchRecord.response.body.totalCount}}
@record_id = {{searchRecord.response.body.results[0].id}}
# -----------------------
# CLEANUP
# -----------------------
###
# @name deleteRecord
DELETE {{STORAGE_HOST}}/records/{{id}}
Authorization: Bearer {{access_token}}
Accept: application/json
data-partition-id: {{DATA_PARTITION}}
###
# @name deleteTag
DELETE {{LEGAL_HOST}}/legaltags/{{DATA_PARTITION}}-{{tag}}
Authorization: Bearer {{access_token}}
Accept: application/json
data-partition-id: {{DATA_PARTITION}}