BlocktionBlocktion Docs

Documentation

DataStores

Manage data storage and retrieval with flexible datastore configurations

What is a DataStore?

A DataStore is a managed document store for your workspace. It supports creating named stores, CRUD over documents, and querying with filters, pagination, and sorting. Access policies and public visibility can be configured per datastore.

DataStore Features

Data Storage

Store and retrieve data efficiently

Query Interface

Query data using various methods

Schema Management

Define and manage data schemas

Data Migration

Move data between different systems

Backup & Restore

Protect your data with backups

Performance Monitoring

Monitor datastore performance

DataStore Configuration

Understanding how to configure different types of datastores

Collection DataStores

  • • Define collection schemas
  • • Configure access permissions
  • • Set up document validation
  • • Optimize for read/write patterns
  • • Configure indexing strategies
  • • Set up data retention policies

Overview

DataStores provide flexible data storage and retrieval capabilities with MongoDB-style queries.

DataStore Features

  • • MongoDB-style document storage
  • • Flexible schema design
  • • Advanced query capabilities
  • • Document versioning

Key Operations

  • • Create and manage data stores
  • • Store and retrieve documents
  • • Query with filters and pagination
  • • Update and delete documents

Endpoints

POST/api/datastores

Create DataStore

Create a new data store

Request Body

{
  "name": "string (required)",
  "type": "string (required)",
  "description": "string (optional)",
  "tags": "string[] (optional)",
  "schema": "object (optional)",
  "access_settings": "object (optional)",
  "is_public": "boolean (optional)"
}

Response

{
  "data": {
    "id": "datastore_123456",
    "name": "User Database",
    "description": "Main user data storage",
    "type": "collection",
    "owner_id": "user_123",
    "collection_name": "ds_user_database",
    "schema": {},
    "tags": [],
    "is_public": false,
    "access_settings": {},
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-01-15T10:30:00Z",
    "last_accessed_at": null
  }
}

cURL Example

curl -X POST "https://api.blocktion.io/api/datastores" \
+  -H "Content-Type: application/json" \
+  -H "Authorization: Bearer <your_access_token>" \
+  -d '{
  "name": "string (required)",
  "type": "string (required)",
  "description": "string (optional)",
  "tags": "string[] (optional)",
  "schema": "object (optional)",
  "access_settings": "object (optional)",
  "is_public": "boolean (optional)"
}'
GET/api/datastores

List DataStores

List user's data stores

Query Parameters

search(string)Search in name and description
skip(number)Items to skip (default 0)
limit(number)Items per page (1-1000, default 100)

Response

{
  "data": [
    {
      "id": "datastore_123456",
      "name": "User Database",
      "description": "Main user data storage",
      "type": "collection",
      "owner_id": "user_123",
      "collection_name": "ds_user_database",
      "schema": {},
      "tags": [],
      "is_public": false,
      "access_settings": {},
      "created_at": "2024-01-15T10:30:00Z",
      "updated_at": "2024-01-20T14:22:00Z",
      "last_accessed_at": null
    }
  ],
  "total": 1,
  "page": 0,
  "limit": 100
}

cURL Example

curl -X GET "https://api.blocktion.io/api/datastores" \
+  -H "Authorization: Bearer <your_access_token>"
GET/api/datastores/{datastore_id}

Get DataStore

Get data store by ID

Response

{
  "data": {
    "id": "datastore_123456",
    "name": "User Database",
    "description": "Main user data storage",
    "type": "collection",
    "owner_id": "user_123",
    "collection_name": "ds_user_database",
    "schema": {},
    "tags": [],
    "is_public": false,
    "access_settings": {},
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-01-20T14:22:00Z",
    "last_accessed_at": null
  }
}

cURL Example

curl -X GET "https://api.blocktion.io/api/datastores/{datastore_id}" \
+  -H "Authorization: Bearer <your_access_token>"
PATCH/api/datastores/{datastore_id}

Update DataStore

Update a data store's metadata

Request Body

{
  "name": "string (optional)",
  "description": "string (optional)",
  "tags": "string[] (optional)",
  "schema": "object (optional)",
  "access_settings": "object (optional)",
  "is_public": "boolean (optional)"
}

Response

{
  "data": {
    "id": "datastore_123456",
    "name": "User Database",
    "description": "Updated description"
  }
}

cURL Example

curl -X PATCH "https://api.blocktion.io/api/datastores/{datastore_id}" \
+  -H "Content-Type: application/json" \
+  -H "Authorization: Bearer <your_access_token>" \
+  -d '{
  "name": "string (optional)",
  "description": "string (optional)",
  "tags": "string[] (optional)",
  "schema": "object (optional)",
  "access_settings": "object (optional)",
  "is_public": "boolean (optional)"
}'
DELETE/api/datastores/{datastore_id}

Delete DataStore

Delete a data store

Response

null

cURL Example

curl -X DELETE "https://api.blocktion.io/api/datastores/{datastore_id}" \
+  -H "Content-Type: application/json" \
+  -H "Authorization: Bearer <your_access_token>"
POST/api/datastores/{datastore_id}/docs/find

Find Documents

Find documents using a filter

Request Body

{
  "filter": "object (optional)",
  "skip": "number (optional)",
  "limit": "number (optional)",
  "sort": "object (optional)"
}

Response

{
  "data": [
    {
      "id": "doc_1"
    }
  ],
  "total": 1,
  "page": 0,
  "limit": 50
}

cURL Example

curl -X POST "https://api.blocktion.io/api/datastores/{datastore_id}/docs/find" \
+  -H "Content-Type: application/json" \
+  -H "Authorization: Bearer <your_access_token>" \
+  -d '{
  "filter": "object (optional)",
  "skip": "number (optional)",
  "limit": "number (optional)",
  "sort": "object (optional)"
}'
POST/api/datastores/{datastore_id}/docs

Create Document

Create a new document

Request Body

{
  "any": "object (required)"
}

Response

{
  "data": {
    "id": "doc_1"
  }
}

cURL Example

curl -X POST "https://api.blocktion.io/api/datastores/{datastore_id}/docs" \
+  -H "Content-Type: application/json" \
+  -H "Authorization: Bearer <your_access_token>" \
+  -d '{
  "any": "object (required)"
}'
GET/api/datastores/{datastore_id}/docs/{document_id}

Get Document

Get a document by ID

Response

{
  "data": {
    "id": "doc_1"
  }
}

cURL Example

curl -X GET "https://api.blocktion.io/api/datastores/{datastore_id}/docs/{document_id}" \
+  -H "Authorization: Bearer <your_access_token>"
PATCH/api/datastores/{datastore_id}/docs/{document_id}

Update Document

Update a document's fields

Request Body

{
  "update_data": "object (required)"
}

Response

null

cURL Example

curl -X PATCH "https://api.blocktion.io/api/datastores/{datastore_id}/docs/{document_id}" \
+  -H "Content-Type: application/json" \
+  -H "Authorization: Bearer <your_access_token>" \
+  -d '{
  "update_data": "object (required)"
}'
DELETE/api/datastores/{datastore_id}/docs/{document_id}

Delete Document

Delete a document

Response

null

cURL Example

curl -X DELETE "https://api.blocktion.io/api/datastores/{datastore_id}/docs/{document_id}" \
+  -H "Content-Type: application/json" \
+  -H "Authorization: Bearer <your_access_token>"

Best Practices

Guidelines for managing datastores effectively

Data Management

  • • Design schemas for scalability
  • • Implement proper indexing strategies
  • • Use connection pooling for performance
  • • Monitor query performance regularly
  • • Implement data validation and constraints

Security & Backup

  • • Encrypt sensitive data at rest and in transit
  • • Implement proper access controls
  • • Regular automated backups
  • • Test backup and restore procedures
  • • Monitor for security vulnerabilities