Database structure
Daptin creates tables, base identifiers, timestamps, declared columns, indexes, and relationship tables in SQLite, MySQL, or PostgreSQL.
Database support →
Daptin
Run Daptin →
Product
Define tables and relationships in YAML, JSON, or dashboard3. Daptin uses that model to create the database, APIs, permissions, file handling, actions, integrations, and live events.
Create your first table →Generated from the model
Daptin creates tables, base identifiers, timestamps, declared columns, indexes, and relationship tables in SQLite, MySQL, or PostgreSQL.
Database support →Each application table receives JSON:API collection, record, relationship, filter, sort, pagination, and aggregation requests.
CRUD requests →OpenAPI describes routes and action inputs. GraphQL exposes generated query access for clients that use it.
API overview →dashboard3 reads the live model and gives administrators screens for records, permissions, actions, users, storage, and system configuration.
Data and APIs
Define fields and relationships for a product, customer, order, or ticket. Daptin creates database tables and JSON:API routes for create, list, filter, update, delete, and related-record requests.
The running server also exposes OpenAPI and GraphQL descriptions. Use dashboard3 to browse records while a frontend is still being built.
Define a schema →GET /api/product?page[size]=20
GET /api/product/{reference_id}
POST /api/product
PATCH /api/product/{reference_id}
Accounts and access
Daptin signs users in and evaluates guest, user, owner, and group permissions for each table. A customer portal can give every person private records and grant a team access through one workspace group.
Those checks also apply when someone follows a relationship, downloads a file, runs an action, or subscribes to record changes.
Configure permissions →Files and content
Add an asset column to store a product image with its product, an invoice with its order, or a support attachment with its ticket. The record's access rules determine who can retrieve the file.
Use local storage for a small installation or configure an rclone-backed store for S3-compatible services and other supported providers. Daptin also serves stored files through site and subsite routes.
Configure file storage →Send multipart files or use Daptin's asset routes from the frontend.
Use the owning record and its groups to decide who can retrieve each file.
Keep assets locally or sync them to a configured cloud store.
Attach files to records or expose a managed site directory.
Actions and scheduled work
Define an approve order action that validates the request, changes the order status, creates an audit record, and sends a notification. The frontend calls the named action instead of coordinating those steps in the browser.
Run actions from HTTP requests, state transitions, data exchanges, or schedules. Each action declares its input and output fields.
Build an action →External services
Install an OpenAPI description and expose selected operations as Daptin actions. Store one shared provider credential on the server or keep a separate OAuth token for each signed-in user.
The integration-auth demo proves that one user cannot borrow another user's connected-account credential. The OAuth provider demo shows another application signing in through Daptin.
Run the integration demos →A support agent connects their own provider account. Daptin selects that user's encrypted token when the action runs.
A billing action uses one server-held credential. The frontend sends order data, not the provider secret.
// subscribe after loading the dashboard
const socket = new WebSocket("wss://api.example/live")
// refresh only when an allowed order changes
socket.onmessage = ({ data }) => {
const event = JSON.parse(data)
if (event.type === "order.update") refreshOrders()
}
Live updates
Daptin publishes record events through its live WebSocket endpoint. Subscribe a dashboard to order changes, a customer portal to ticket updates, or a monitoring screen to new usage records.
Read permissions determine which topics and records a connection may receive.
Subscribe to record events →Protocol servers and optional services