EntityDB provides powerful query capabilities for searching and filtering entities based on tags, content, and other criteria. All queries are performed via the entity list endpoint with various query parameters.
Filter entities by exact tag match:
# Find all issue entities
entitydb-cli entity list --tag="type:issue"
# Find entities with high priority
entitydb-cli entity list --tag="priority:high"
# API endpoint
GET /api/v1/entities/list?tag=type:issueUse wildcards to match tag patterns:
# Find all entities with any type
entitydb-cli entity list --wildcard="type:*"
# Find all RBAC permission entities
entitydb-cli entity list --wildcard="rbac:perm:*"
# Find all entities in the meta namespace
entitydb-cli entity list --wildcard="meta:*"
# API endpoint
GET /api/v1/entities/list?wildcard=rbac:perm:*Search for text within entity content:
# Search for "login" in any content
entitydb-cli entity list --search="login"
# Search for "authentication" in descriptions
entitydb-cli entity list --search="authentication" --content-type="description"
# API endpoint
GET /api/v1/entities/list?search=login
GET /api/v1/entities/list?search=authentication&contentType=descriptionFilter entities by tag namespace:
# Find all entities with tags in the "rbac" namespace
entitydb-cli entity list --namespace="rbac"
# Find all entities with tags in the "type" namespace
entitydb-cli entity list --namespace="type"
# API endpoint
GET /api/v1/entities/list?namespace=rbac| Parameter | Description | Example |
|---|---|---|
tag |
Exact tag match | type:issue |
wildcard |
Tag pattern with wildcards | rbac:perm:* |
search |
Search text in content | authentication |
contentType |
Content type for search | description |
namespace |
Tag namespace filter | rbac |
limit |
Number of results | 20 |
offset |
Pagination offset | 0 |
The queries use the custom binary format (EBF) with sharded indexing for efficient searching:
- Tag filtering: Sharded index lookups with O(1) performance within shards
- Content search: Direct binary format scanning with temporal tag support
- Namespace filtering: Efficient prefix pattern matching with bloom filters
Find all user entities with admin role:
entitydb-cli entity list --wildcard="type:user" --tag="rbac:role:admin"Search for issues containing "bug":
entitydb-cli entity list --wildcard="type:issue" --search="bug"Find all permissions in entity namespace:
entitydb-cli entity list --wildcard="rbac:perm:entity:*"# Using curl
curl -H "Authorization: Bearer $TOKEN" \
"http://localhost:8085/api/v1/entities/list?wildcard=type:*&search=login"
# Using the Python client
from entitydb_client import EntityDBClient
client = EntityDBClient("http://localhost:8085", token)
entities = client.list_entities(wildcard="type:*", search="login")- Binary format queries: All queries use the custom binary format with sharded indexing
- Index usage: Sharded tag indexes provide O(1) lookups within shards
- Wildcard patterns: Use specific patterns when possible (e.g.,
type:issueinstead of*:issue) - Content search: Direct binary scanning with bloom filter optimization
The QueryAdvanced method supports complex conditions:
conditions := map[string]interface{}{
"tags": []string{"type:issue", "status:active"},
"content": "authentication",
"contentType": "description",
}
entities, err := repo.QueryAdvanced(conditions)This is not yet exposed via the API but provides a foundation for future complex query capabilities.