Skip to content

daptin/daptin-cli

Repository files navigation

Daptin CLI

CLI client for Daptin — the headless CMS and API server.

All Daptin entities are accessed uniformly via CRUD commands, and all Daptin actions can be executed uniformly via execute. Common workflows such as cloud storage and file asset uploads also have ergonomic wrapper commands.

Discovery

The CLI is self-describing. Start with:

daptin-cli --help
daptin-cli list --help
daptin-cli execute --help
daptin-cli describe action --help
daptin-cli oauth --help
daptin-cli integration --help
daptin-cli storage --help
daptin-cli asset --help

For any Daptin action, use describe action before execute to see whether the action needs an instance reference id and which input fields it accepts:

daptin-cli describe action integration install_integration
daptin-cli execute integration install_integration --reference-id <integration_reference_id>

Install

Homebrew (macOS / Linux)

brew install daptin/tap/daptin-cli

Scoop (Windows)

scoop bucket add daptin https://github.com/daptin/scoop-bucket
scoop install daptin-cli

Debian / Ubuntu

Download the .deb from the latest release:

sudo dpkg -i daptin-cli_*.deb

RPM (Fedora / RHEL)

sudo rpm -i daptin-cli_*.rpm

Go

go install github.com/daptin/daptin-cli@latest

Binary download

Grab a binary from the releases page for linux, macOS, or Windows (amd64 / arm64).

Quick Start

# Point to your Daptin server
daptin-cli context add myserver http://localhost:6336
daptin-cli context set myserver

# Sign in (signin is an action like any other)
daptin-cli execute user_account signin email=admin@example.com password=secret

# List tables
daptin-cli list --columns table_name,is_top_level world

# List rows
daptin-cli list --columns name,email --page-size 20 user_account

# Discover action requirements
daptin-cli describe action integration install_integration

Context Management

Contexts store server endpoints and auth tokens in ~/.daptin/config.yaml.

daptin-cli context add prod https://api.example.com
daptin-cli context add local http://localhost:6336
daptin-cli context set prod
daptin-cli context list

Override per-command with --endpoint:

daptin-cli --endpoint http://localhost:6336 list world

CRUD

List rows

daptin-cli list <entity> [flags]

Flags: --columns, --page-size, --page, --sort, --filter, --include

# List with column selection and pagination
daptin-cli list --columns table_name,reference_id --page-size 50 world

# Sort descending by created_at
daptin-cli list --sort -created_at --page-size 10 document

# Filter
daptin-cli list --filter name=administrators usergroup
daptin-cli list --filter "status is active" task
daptin-cli list --filter "table_name like %doc%" world
daptin-cli list --filter "name is admin;email contains example" user_account

# Include relations
daptin-cli list --include user_account_id document

Get a single row

daptin-cli get <entity> <reference_id> [--columns col1,col2]
daptin-cli get world 019228bb-a7cd-773b-a465-c92d7c54d956
daptin-cli get --columns table_name,is_top_level world 019228bb-a7cd-773b-a465-c92d7c54d956

Create, Update, Delete

# Create with key=value pairs
daptin-cli create document document_name=report.pdf document_extension=pdf

# Create with JSON
daptin-cli create document '{"document_name":"report.pdf","document_extension":"pdf"}'

# Update
daptin-cli update document <reference_id> document_name=updated.pdf

# Delete
daptin-cli delete document <reference_id>

Traverse relationships

daptin-cli related <entity> <reference_id> <relation_column>
daptin-cli related document <ref_id> user_account_id

Actions

All Daptin actions — built-in or custom — can be executed with execute.

daptin-cli execute <entity> <action_name> [key=val ...]

Authentication

# Sign in
daptin-cli execute user_account signin email=admin@example.com password=secret

# Sign up
daptin-cli execute user_account signup name=Alice email=alice@example.com password=secret passwordConfirm=secret

# Sign in with 2FA
daptin-cli execute user_account verify_otp email=admin@example.com mobile_number=+1234567890 otp=123456

On successful signin, the token is automatically saved to the active context.

Other actions

# Generate random data
daptin-cli execute world generate_random_data table_name=products count=100

# Export data
daptin-cli execute world export_data table_name=document format=json

# Upload file to cloud store
daptin-cli execute cloud_store upload_file --reference-id <store_id> path=/uploads

# Download system schema
daptin-cli execute world download_system_schema

Interactive mode

Prompt for fields based on the action's InFields schema:

daptin-cli execute user_account signin --interactive
# > Email: admin@example.com
# > Password: ****

Password fields are automatically masked.

Instance actions

For actions that require an entity instance, pass --reference-id:

daptin-cli execute cloud_store upload_file --reference-id <cloud_store_id> path=/docs

Use describe action when you are unsure:

daptin-cli describe action cloud_store upload_file

Describe

Table schema

daptin-cli describe table document

Shows columns (name + type) and available actions.

Action schema

daptin-cli describe action document createDocument

Shows whether the action is instance-bound, whether --reference-id is required, the action's InFields, and an example execute command.

OAuth And Integrations

OAuth provider setup and OpenAPI integration workflows have first-class wrappers. The generic create, list, describe action, and execute commands still work, but these commands keep the common lifecycle discoverable and avoid passing large specs as shell arguments.

# Create an OAuth connection without putting the client secret in shell history
export ASANA_CLIENT_SECRET=...
daptin-cli oauth connect create asana.com \
  --client-id "$ASANA_CLIENT_ID" \
  --client-secret-env ASANA_CLIENT_SECRET \
  --auth-url https://app.asana.com/-/oauth_authorize \
  --token-url https://app.asana.com/-/oauth_token \
  --profile-url https://app.asana.com/api/1.0/users/me \
  --scope default

# Start the browser OAuth flow and list token references after callback
daptin-cli oauth login-url asana.com
daptin-cli oauth tokens list --provider asana.com

Import large OpenAPI specs from files, URLs, or stdin:

daptin-cli integration import \
  --provider asana.com \
  --spec-file ./asana_oas.yaml \
  --auth oauth2 \
  --oauth-connect asana.com \
  --update

daptin-cli integration install asana.com

Discover installed operations through Daptin's scoped integration discovery endpoints:

daptin-cli integration list
daptin-cli integration operations asana.com
daptin-cli integration describe asana.com getWorkspaces

Execute provider-scoped operations:

daptin-cli integration execute asana.com getWorkspaces \
  --oauth-token-id <oauth_token_reference_id> \
  --input-json '{"opt_fields":["name"]}'

daptin-cli integration execute example.com listUsers \
  --credential-id <credential_reference_id> \
  limit=10

integration operations and integration describe require Daptin versions with scoped discovery endpoints: GET /integration/:provider/operations and GET /integration/:provider/operations/:operation.

Storage

Cloud storage setup and common file operations are available through storage.

# Create a local store
daptin-cli storage add local-files \
  --type local \
  --store-provider local \
  --root-path /tmp/daptin-files

# Create an S3/MinIO-style store and linked credential
daptin-cli storage add minio \
  --type s3 \
  --provider Minio \
  --endpoint http://localhost:9000 \
  --access-key minioadmin \
  --secret-key minioadmin123 \
  --bucket daptin-test \
  --restart

# List and remove stores
daptin-cli storage list
daptin-cli storage remove minio

File operations use store-name:/path addressing:

daptin-cli storage mkdir local-files:/photos
daptin-cli storage upload local-files:/photos ./image.jpg
daptin-cli storage upload local-files:/site ./public --recursive
daptin-cli storage mv local-files:/photos/image.jpg local-files:/archive/image.jpg
daptin-cli storage rm local-files:/archive/image.jpg

Direct storage ls and storage download for cloud_store paths are intentionally not implemented as direct cloud-store commands because Daptin exposes those flows through site file actions and asset routes, not direct cloud_store actions.

Asset Columns

Use asset for file.* columns on normal entity rows. These commands use Daptin's /asset/... routes.

daptin-cli asset upload product <product_reference_id> photo ./image.jpg
daptin-cli asset list product <product_reference_id> photo

Output

Table (default) or JSON:

daptin-cli --output table list world
daptin-cli --output json list world

Filter Syntax

Filters can use key=value shorthand or semicolon-separated <column> <operator> <value> expressions:

--filter "name=alice"
--filter "name is alice"
--filter "status is active;role is admin"
--filter "name like %ali%"
--filter "count more than 5"
--filter "active is true"
--filter "notes is empty"

Operators: is, like, ilike, contains, neq, gt, lt, more than, less than, begins with, ends with, in, is true, is false, is empty, is not, fuzzy

Use % wildcards with like for partial matching. Raw JSON is also accepted:

--filter '[{"column":"name","operator":"like","value":"%ali%"}]'

Global Flags

--config FILE, -c    Config file (default: ~/.daptin/config.yaml)
--output, -o         Output format: table or json (default: table)
--endpoint           Server endpoint (default: http://localhost:6336)
--debug              Enable debug output

WebSocket

Real-time pub/sub via Daptin's /live endpoint.

# Stream all events
daptin-cli ws listen

# Subscribe to topics
daptin-cli ws subscribe user_account
daptin-cli ws subscribe user_account document order

# Publish a message
daptin-cli ws publish chat-room-1 '{"text":"hello"}'

# Ping
daptin-cli ws ping

# Topic management
daptin-cli ws topic create chat-room-1
daptin-cli ws topic delete chat-room-1
daptin-cli ws topic permission chat-room-1
daptin-cli ws topic permission chat-room-1 --set 2097151

# Cross-node verification
daptin-cli ws verify --endpoints http://node1:6336,http://node2:6336

Environment Variables

DAPTIN_CLI_CONFIG    Config file path
DAPTIN_ENDPOINT      Server endpoint
DAPTIN_CLI_OUTPUT    Output format

About

Daptin CLI for managing daptin servers

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors