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
/api/datastoresCreate 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)"
}'/api/datastoresList DataStores
List user's data stores
Query Parameters
search(string)Search in name and descriptionskip(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>"
/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>"/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)"
}'/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>"/api/datastores/{datastore_id}/docs/findFind 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)"
}'/api/datastores/{datastore_id}/docsCreate 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)"
}'/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>"/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)"
}'/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