Data
Define, query, and control your data with ease.
Data is the lifeblood of any application, and bknd provides the tools to handle it effortlessly. From defining entities to executing complex queries, bknd offers a developer-friendly, intuitive, and powerful data management experience.
Define Your Data
Model entities with fields and relationships, automatically synced to your database.
- Supported field types:
primary
,text
,number
,date
,boolean
,enum
,json
, andjsonschema
. - Relationship types:
many-to-one
,one-to-one
,many-to-many
, andpolymorphic
. - Add indices to enhance database performance: single, compound, and unique indices.
Entity Management
Use the EntityManager to simplify handling your entities. Access data efficiently with the Repository:
- Select specific properties to return.
- Define sort directions, limits, and offsets.
- Include or join relational data seamlessly within a single query using
with
and joins. - Apply robust filtering with an extensive
where
object:$eq
,$ne
,$isnull
,$notnull
,$in
,$notin
,$gt
,$gte
,$lt
,$lte
,$between
.
Seamless Data Manipulation with Mutators
Create, update, and delete entity data with confidence.
- Validates data against the entity schema.
- (coming soon) Supports relational data with flexible syntax:
$create
,$set
,$attach
,$detach
.
Powerful Event System
Hook into critical lifecycle events for fine-grained control:
- Repository events:
find-one-before
,find-one-after
,find-many-before
,find-many-after
. - Mutator events:
insert-before
,insert-after
,update-before
,update-after
,delete-before
,delete-after
.
Enhanced Database Communication
The Connection class communicates with the database. It’s based on kysely, so that it generally supports multiple database dialects (but currently only SQLite/LibSQL is supported).
Whether you’re modeling simple data structures or managing complex relationships, bknd’s data tools empower you to build applications with confidence and scalability.