Collection routes: export, query
The Collection Verbs export, query as api.sb routes, with inputs, result, refusals and an example.
Reference for Collection, one group of Collection routes.
Collection.export
Export writes a Collection’s records to a file or the Startup’s warehouse, once or on a schedule. Verb page.
POST /{namespace}/ collections/ {collection}/ exportPath: collection. Body, as JSON: the other inputs. Emits Collection.exported.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
collection | Collection | required | The Collection to export. |
to | string | required | A file format, or the warehouse Integration that receives it. |
cadence | string | How often it repeats; omitted, it runs once. |
Returns
| Output | Type | Required | Description |
|---|---|---|---|
file | File | The exported File, for a one-time export. | |
collection | Collection | required | The Collection exported. |
Refuses when
| Check | Error | Fix | Then call |
|---|---|---|---|
| The key is valid, but its scopes do not allow this operation. | forbidden | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |
Example
curl -X POST https: //api.sb/ leaseline.app/ collections/ collection_txTK8QorKn/ export \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/ json" \
-d '{"to": "Example to"}'{
"api": "https: //api.sb/ leaseline.app",
"file": {
"$id": "https: //api.sb/ leaseline.app/ files/ file_V1AuhyCTsH",
"$type": "File",
"contentType": "Example content type",
"size": 1
},
"collection": {
"$id": "https: //api.sb/ leaseline.app/ collections/ collection_txTK8QorKn",
"$type": "Collection",
"id": "Example id",
"type": [
"noun_v0akLUrXCN"
]
},
"action": {
"$id": "https: //api.sb/ leaseline.app/ actions/ act_br07HsG8MG",
"operation": "Collection.export",
"status": "done"
},
"links": {
"self": "https: //api.sb/ leaseline.app/ actions/ act_br07HsG8MG"
}
}Collection.query
Query reads any Nouns the caller’s Permissions allow, by SQL or a Relationship path, across every System in one call. Verb page.
POST /{namespace}/ collections/ queryBody, as JSON: the inputs. Emits Collection.queried.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
query | text | required | SQL, or a Relationship path such as customer.subscriptions.invoices. |
save | boolean | True saves it as a Collection defined by the query. |
Returns
| Output | Type | Required | Description |
|---|---|---|---|
rows | json | required | The matching records. |
collection | Collection | required | The Collection the query read. |
Refuses when
| Check | Error | Fix | Then call |
|---|---|---|---|
| The key is valid, but its scopes do not allow this operation. | forbidden | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |
Example
curl -X POST https: //api.sb/ leaseline.app/ collections/ query \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/ json" \
-d '{"query": "Example query"}'{
"api": "https: //api.sb/ leaseline.app",
"rows": {},
"collection": {
"$id": "https: //api.sb/ leaseline.app/ collections/ collection_txTK8QorKn",
"$type": "Collection",
"id": "Example id",
"type": [
"noun_v0akLUrXCN"
]
},
"action": {
"$id": "https: //api.sb/ leaseline.app/ actions/ act_br07HsG8MG",
"operation": "Collection.query",
"status": "done"
},
"links": {
"self": "https: //api.sb/ leaseline.app/ actions/ act_br07HsG8MG"
}
}