Compact joins, public UUIDs
Daptin keeps integer keys inside the database and exposes indexed UUIDv7 references to clients. Relationships stay compact without making sequential row IDs part of your public API.
Daptin
Run Daptin →
Engineering
Daptin is shaped by twelve years of backend engineering experience. Your application starts with working decisions for identity, data integrity, access, concurrency, resource control, and operations—not a pile of endpoints to harden later.
01
Daptin keeps integer keys inside the database and exposes indexed UUIDv7 references to clients. Relationships stay compact without making sequential row IDs part of your public API.
A related record must exist, and the caller must be allowed to refer to it. Invalid or unauthorized links are rejected before they become stored data.
Core record changes share a transaction, so related rows, permissions, and database-side history normally commit together or roll back together.
Daptin generates database structures for indexed fields, unique values, composite keys, timestamps, and join-table uniqueness. Verify the physical DDL after import because the latest release can log and continue after some schema errors.
02
Daptin parameterizes ordinary query values and validates supported sorting and aggregation inputs, keeping request data separate from SQL structure.
Guest, user, owner, group, action, and relationship permissions are evaluated centrally. Permission-changing writes also invalidate the relevant authorization caches.
URL rate limits and active-request limits run before application handlers. Cluster members share rate counters through Olric and retain a local fallback.
Open and idle connections are capped, reused, and aged. One traffic burst does not create an unlimited number of database connections.
03
Passwords are hashed with bcrypt. Changing a password advances the account's authentication version and invalidates earlier session caches, so old tokens do not simply remain valid after a credential change.
OAuth provider flows validate registered redirects and scopes, make authorization codes single-use, support PKCE, and rotate refresh tokens. Connected credentials remain associated with the user and provider that owns them.
Read the authentication model →04
ETags avoid retransmitting unchanged assets. Compression uses representation-specific cache identities, while large files can stream instead of filling process memory.
Daptin stores outgoing mail before a worker sends it. Failed attempts time out and return to the queue with backoff. A message may be sent more than once, but it is not lost when the process restarts.
FTP paths are normalized and checked against their configured root, including resolved symlinks, before the server trusts them.
Process liveness, web activity, database-pool state, host resources, and application statistics are available to the people operating the server.