-
v0.1.0 Stable
released this
2026-02-16 21:50:35 +00:00 | 2 commits to main since this releaseVSKI v0.1.0
Features
-
Webhook Triggers: Configure automatic HTTP callbacks on record operations (create, update, delete)
- Define webhooks per collection via collection options
- Support for multiple webhooks per action
- Custom HTTP methods (GET, POST, PUT, DELETE, PATCH)
- Custom headers for authentication and metadata
-
Webhook Execution & Logging:
- Asynchronous webhook execution to avoid blocking operations
- Comprehensive logging of all webhook attempts
- Automatic retry mechanism (max 3 attempts with 5-second delay)
- Detailed status tracking (pending, success, retrying, failed)
-
Webhook Logs API:
- Query webhook logs by collection and status
- View full request/response details
- Track retry attempts and error messages
- Pagination support for large log sets
-
Webhook Payload Structure:
- Includes complete record data in webhook payload
- Metadata: database name, collection name, record ID, action type, timestamp
- JSON-formatted for easy parsing
Installation
Binary
Download binary for your platform:
# Linux (standalone with embedded UI) wget https://git.vski.sh/x/platform/releases/download/v0.1.0/vski-standalone chmod +x vski-standalone ./vski-standalone # Linux (API-only) wget https://git.vski.sh/x/platform/releases/download/v0.1.0/vski chmod +x vski ./vskiDocker
Pull and run official Docker image:
# Pull latest version docker pull git.vski.sh/x/vski:latest # Pull specific version docker pull git.vski.sh/x/vski:v0.1.0 # Run with default configuration docker run -p 3000:3000 -v $(pwd)/data:/app/data git.vski.sh/x/vski:latest # Run with custom environment variables docker run -p 3000:3000 \ -v $(pwd)/data:/app/data \ -e SERVER_PORT=3000 \ -e DATA_DIR=/app/data \ git.vski.sh/x/vski:latestConfiguration
Create a
.envfile:DATA_DIR=./data SERVER_PORT=3000 JWT_SECRET=your-secret-keyUsage
Configuring Webhooks
Webhooks are configured via collection options:
await client.settings.collections.update(collectionId, { options: JSON.stringify({ triggers: [ { action: "create", url: "https://your-endpoint.com/webhook", method: "POST", headers: { "Authorization": "Bearer your-token", "Content-Type": "application/json" } }, { action: "update", url: "https://your-endpoint.com/webhook", method: "PATCH" }, { action: "delete", url: "https://your-endpoint.com/webhook", method: "DELETE" } ] }) });Webhook Payload Example
When a webhook is triggered, you'll receive a JSON payload:
{ "database": "default", "collection": "posts", "id": "123e4567-e89b-12d3-a456-426614174000", "action": "create", "timestamp": "2024-01-15T10:30:00Z", "record": { "id": "123e4567-e89b-12d3-a456-426614174000", "title": "Hello World", "content": "My first post", "created": "2024-01-15T10:30:00Z", "updated": "2024-01-15T10:30:00Z" } }Viewing Webhook Logs
Query webhook logs via API:
const logs = await fetch('/api/webhooks/logs?collection=posts&status=success'); console.log(logs);API Endpoints
GET /api/webhooks/logs
Query webhook logs with optional filters:
Query Parameters:
collection- Filter by collection namestatus- Filter by status (pending, success, retrying, failed)page- Page number (default: 1)perPage- Items per page (default: 30, max: 100)
Response:
[ { "id": "webhook-log-id", "url": "https://your-endpoint.com/webhook", "payload": { ... }, "status": "success", "http_status": 200, "response_body": "...", "error_msg": null, "tries": 1, "created": "2024-01-15T10:30:00Z", "updated": "2024-01-15T10:30:05Z" } ]Migration Notes
No database migration required. The
_webhook_logstable is automatically created on first use.Documentation
Full documentation available at: https://git.vski.sh/x/platform
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
vski
2 downloads ·
2026-02-16 21:50:39 +00:00 · 6 MiB -
vski-standalone
7 downloads ·
2026-02-16 21:50:40 +00:00 · 6.2 MiB
-