Onedata API Reference

REST API references for Onezone, Oneprovider, and Onepanel.

Query view

GET /spaces/{sid}/views/{view_name}/query

This method returns the list of result objects for files which match the query on a predefined view. Those objects contains following fields:

  • id - for use as startkey_docid or endkey_docid in following queries
  • key - the first element of list returned by user defined mapping/spatial function
  • value - the second element of list returned by user defined mapping/spatial function
  • geometry - describes geometry of data (only available in case of spatial views)

Currently, views are defined per space, i.e. the result will be limited to files and directories in a space for which the view was defined.

This operation supports also custom view query attributes as provided by Couchbase.

Additionaly, Couchbase spatial queries are possible using bbox query parameter. These queries are possible on views which emit values conforming to the GeoJSON format.

This operation requires space_query_views privilege.

Example cURL requests

Get 4 files from view skipping first 10

With example map function used:

function (id, type, meta, ctx) {
    if(type == 'custom_metadata' && meta['onexattr']) {
        return [meta['onexattr'], id];
    }
    return null;
}
curl -H "X-Auth-Token: $TOKEN" \
-X GET https://$PROVIDER_HOST/api/v3/oneprovider/spaces/$SPACE_ID/views/VIEW_NAME/query?skip=10&limit=4

[
    {
        "id": "fd18b793d446099ae84f8bd5c054ad34",
        "key": 1,
        "value": "00000000002C45416775696423633062636533343133336336636633393238336134323333396430656461393323737061636531"
    },
    {
        "id": "2785dbd91120e341265f9ee2370ccf08",
        "key": 2,
        "value": "00000000002CF7DB6775696423396261373964653764643866336432393436323262313133393738643338383323737061636531"
    },
    {
        "id": "60a9e6da61e12deeb3e6c688fe861c01",
        "key": 3,
        "value": "00000000002C47916775696423336330336538623730333439353233383631313966346139343731316631656323737061636531"
    },
    {
        "id": "651d696a8446e92ab55de163f9b8594d",
        "key": 4,
        "value": "00000000002CA8906775696423633835366438613139666565336337666165623538303736356465383039356223737061636531"
    },
    ...
]

Get list of files associated with geospatial coordinates

With example spatial function used:

function (id, type, meta, ctx) {
    if(type == 'custom_metadata' && meta['onexattr']) {
        return [meta['onexattr'], id];
    }
    return null;
}
curl -H "X-Auth-Token: $TOKEN" \
-X GET https://$PROVIDER_HOST/api/v3/oneprovider/spaces/$SPACE_ID/views/$VIEW_NAME/query?spatial=true&stale=false

[
    {
        "geometry": {
            "type": "Point",
            "coordinates": [0, 0]
        },
        "id": "36cfb018c312653e65b346c421d7a678",
        "key": [[0, 0], [0, 0]],
        "value": "00000000002C5DA36775696423663535633934306564393632656530666133663330633137393362333765356223737061636531"
    },
    {
        "geometry": {
            "type": "Point",
            "coordinates": [5.1, 10.22]
        },
        "id": "972eb78ff8e262c4bebdc11799c20f51",
        "key": [[5.1, 5.1], [10.22, 10.22]],
        "value": "00000000002C678A6775696423363030666461383130623030386333616664363637396666653334366137656623737061636531"
    }
]

Get file popularity for a specific space

curl -H "X-Auth-Token: $TOKEN" \
-X GET "https://$PROVIDER_HOST/api/v3/oneprovider/spaces/$SPACE_ID/views/file-popularity/query?start_range=\[1,0,0,0,0,0\]&end_range=\[null,null,null,null,null,null\]"

Path parameters

Parameter Type & Description
sid required
string

Space Id in which view exist.

view_name required
string

Name of the view.

Query parameters

Parameter Type & Description
descending
boolean

Return the documents in descending order (by key).

key
string

Return only documents that match the specified key. Key must be specified as a JSON value.

keys
string

Return only documents that match any of the keys specified within the given array. Keys must be specified as a JSON array, escaped properly. Sorting is not applied when using this option.

limit
integer

Limit the number of the returned documents to the specified number.

skip
integer

Skip this number of records before starting to return the results.

startkey
string

Return records with a value equal to or greater than the specified key. Key must be specified as a JSON value.

startkey_docid
string

Return records starting with the specified document Id.

endkey
string

Stop returning records when the specified key is reached. Key must be specified as a JSON value.

endkey_docid
string

Stop returning records when the specified document Id is reached.

inclusive_end
boolean

Specifies whether the specified end key is included in the result. Note: Do not use inclusive_end with key or keys.

stale
string

Allow records from a stale view to be used. Allowed values are ok, update_after or false.

bbox
string

Specify the bounding box for a spatial query (e.g. ?bbox=-180,-90,0,0)

spatial
boolean

Enable spatial type of query. When querying the file-popularity view, the start_range and end_range constraints should be specified as 6-dimensional arrays, with the following fields: [SizeLowerLimit, LastOpenHoursEpochLowerLimit, TotalOpenLowerLimit, HoursOpenAvgLowerLimit, DayOpenAvgLowerLimit, MonthOpenAvgLowerLimit].

start_range
string

Array specifying the range in spatial queries (e.g. start_range=[1,0,0,0,0,0]).

end_range
string

Array specifying the range in spatial queries (e.g. end_range=[null,null,null,null,null,null]).

Request Examples

Shell
oneprovider-rest-cli querySpaceView sid=$SPACE_ID view_name=$VIEW_NAME key=value1

Responses

application/json
200

Query results.

No schema provided.

400

Invalid request.

PropertyType & Description
error
object (ErrorJson)

Object describing an error.

id required
string

String identifying the error type. Does not change between error instances.

description required
string

Human readable error description. May contain information specific to given error instance.

details
object

Details about the error instance. The object schema is specific to each error type.

ctx required
object (ErrorJsonCtx)

Technical information about error.

timestamp required
integer

Timestamp in milliseconds.

serviceReleaseVersion required
string

Release version of a product, for example "25.0".

serviceId required
string

Identifier of a service instance — either Oneprovider Id or "onezone".

serviceDomain required
string

Domain of the service.

serviceBuildVersion required
string

Build version of the service.

service required
string

Short name of service.

Enum:
ozwopwozpopp
onedataErrorsRevision required
string

Revision of onedata-errors repo, where the error is defined.

module required
string

Module where the error occurred.

line required
integer

Line number in the module where the error occurred.

Example

application/json
{
  "error": {
    "id": "example",
    "description": "This is an example error.",
    "ctx": {
      "timestamp": 1750762637248,
      "serviceReleaseVersion": "25.0",
      "serviceId": "a7ee2722915b8bf7fb064eb65087cc61ch9357",
      "serviceDomain": "dev-oneprovider-krakow.default.svc.cluster.local",
      "serviceBuildVersion": "231-g8d26f953c3",
      "service": "opw",
      "onedataErrorsRevision": "ca3af8cb",
      "module": "metadata_req",
      "line": 45
    }
  }
}
403

Forbidden request.

PropertyType & Description
error
object (ErrorJson)

Object describing an error.

id required
string

String identifying the error type. Does not change between error instances.

description required
string

Human readable error description. May contain information specific to given error instance.

details
object

Details about the error instance. The object schema is specific to each error type.

ctx required
object (ErrorJsonCtx)

Technical information about error.

timestamp required
integer

Timestamp in milliseconds.

serviceReleaseVersion required
string

Release version of a product, for example "25.0".

serviceId required
string

Identifier of a service instance — either Oneprovider Id or "onezone".

serviceDomain required
string

Domain of the service.

serviceBuildVersion required
string

Build version of the service.

service required
string

Short name of service.

Enum:
ozwopwozpopp
onedataErrorsRevision required
string

Revision of onedata-errors repo, where the error is defined.

module required
string

Module where the error occurred.

line required
integer

Line number in the module where the error occurred.

Example

application/json
{
  "error": {
    "id": "example",
    "description": "This is an example error.",
    "ctx": {
      "timestamp": 1750762637248,
      "serviceReleaseVersion": "25.0",
      "serviceId": "a7ee2722915b8bf7fb064eb65087cc61ch9357",
      "serviceDomain": "dev-oneprovider-krakow.default.svc.cluster.local",
      "serviceBuildVersion": "231-g8d26f953c3",
      "service": "opw",
      "onedataErrorsRevision": "ca3af8cb",
      "module": "metadata_req",
      "line": 45
    }
  }
}
404

File not found.

PropertyType & Description
error
object (ErrorJson)

Object describing an error.

id required
string

String identifying the error type. Does not change between error instances.

description required
string

Human readable error description. May contain information specific to given error instance.

details
object

Details about the error instance. The object schema is specific to each error type.

ctx required
object (ErrorJsonCtx)

Technical information about error.

timestamp required
integer

Timestamp in milliseconds.

serviceReleaseVersion required
string

Release version of a product, for example "25.0".

serviceId required
string

Identifier of a service instance — either Oneprovider Id or "onezone".

serviceDomain required
string

Domain of the service.

serviceBuildVersion required
string

Build version of the service.

service required
string

Short name of service.

Enum:
ozwopwozpopp
onedataErrorsRevision required
string

Revision of onedata-errors repo, where the error is defined.

module required
string

Module where the error occurred.

line required
integer

Line number in the module where the error occurred.

Example

application/json
{
  "error": {
    "id": "example",
    "description": "This is an example error.",
    "ctx": {
      "timestamp": 1750762637248,
      "serviceReleaseVersion": "25.0",
      "serviceId": "a7ee2722915b8bf7fb064eb65087cc61ch9357",
      "serviceDomain": "dev-oneprovider-krakow.default.svc.cluster.local",
      "serviceBuildVersion": "231-g8d26f953c3",
      "service": "opw",
      "onedataErrorsRevision": "ca3af8cb",
      "module": "metadata_req",
      "line": 45
    }
  }
}
500

Internal server error.

PropertyType & Description
error
object (ErrorJson)

Object describing an error.

id required
string

String identifying the error type. Does not change between error instances.

description required
string

Human readable error description. May contain information specific to given error instance.

details
object

Details about the error instance. The object schema is specific to each error type.

ctx required
object (ErrorJsonCtx)

Technical information about error.

timestamp required
integer

Timestamp in milliseconds.

serviceReleaseVersion required
string

Release version of a product, for example "25.0".

serviceId required
string

Identifier of a service instance — either Oneprovider Id or "onezone".

serviceDomain required
string

Domain of the service.

serviceBuildVersion required
string

Build version of the service.

service required
string

Short name of service.

Enum:
ozwopwozpopp
onedataErrorsRevision required
string

Revision of onedata-errors repo, where the error is defined.

module required
string

Module where the error occurred.

line required
integer

Line number in the module where the error occurred.

Example

application/json
{
  "error": {
    "id": "example",
    "description": "This is an example error.",
    "ctx": {
      "timestamp": 1750762637248,
      "serviceReleaseVersion": "25.0",
      "serviceId": "a7ee2722915b8bf7fb064eb65087cc61ch9357",
      "serviceDomain": "dev-oneprovider-krakow.default.svc.cluster.local",
      "serviceBuildVersion": "231-g8d26f953c3",
      "service": "opw",
      "onedataErrorsRevision": "ca3af8cb",
      "module": "metadata_req",
      "line": 45
    }
  }
}