{"id":21835911,"url":"https://github.com/daptin/daptin-cli","last_synced_at":"2026-05-16T06:29:40.701Z","repository":{"id":89673070,"uuid":"289553355","full_name":"daptin/daptin-cli","owner":"daptin","description":"Daptin CLI for managing daptin servers","archived":false,"fork":false,"pushed_at":"2026-05-12T04:04:49.000Z","size":1852,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-05-12T06:13:47.508Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/daptin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-08-22T19:27:45.000Z","updated_at":"2026-05-12T04:04:41.000Z","dependencies_parsed_at":"2024-06-04T16:43:45.957Z","dependency_job_id":null,"html_url":"https://github.com/daptin/daptin-cli","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/daptin/daptin-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daptin%2Fdaptin-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daptin%2Fdaptin-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daptin%2Fdaptin-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daptin%2Fdaptin-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/daptin","download_url":"https://codeload.github.com/daptin/daptin-cli/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daptin%2Fdaptin-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33092597,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-27T20:26:07.684Z","updated_at":"2026-05-16T06:29:40.696Z","avatar_url":"https://github.com/daptin.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Daptin CLI\n\nCLI client for [Daptin](https://github.com/daptin/daptin) — the headless CMS and API server.\n\nAll 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.\n\n## Discovery\n\nThe CLI is self-describing. Start with:\n\n```bash\ndaptin-cli --help\ndaptin-cli list --help\ndaptin-cli execute --help\ndaptin-cli describe action --help\ndaptin-cli oauth --help\ndaptin-cli integration --help\ndaptin-cli storage --help\ndaptin-cli asset --help\n```\n\nFor any Daptin action, use `describe action` before `execute` to see whether the action needs an instance reference id and which input fields it accepts:\n\n```bash\ndaptin-cli describe action integration install_integration\ndaptin-cli execute integration install_integration --reference-id \u003cintegration_reference_id\u003e\n```\n\n## Install\n\n### Homebrew (macOS / Linux)\n\n```bash\nbrew install daptin/tap/daptin-cli\n```\n\n### Scoop (Windows)\n\n```powershell\nscoop bucket add daptin https://github.com/daptin/scoop-bucket\nscoop install daptin-cli\n```\n\n### Debian / Ubuntu\n\nDownload the `.deb` from the [latest release](https://github.com/daptin/daptin-cli/releases/latest):\n\n```bash\nsudo dpkg -i daptin-cli_*.deb\n```\n\n### RPM (Fedora / RHEL)\n\n```bash\nsudo rpm -i daptin-cli_*.rpm\n```\n\n### Go\n\n```bash\ngo install github.com/daptin/daptin-cli@latest\n```\n\n### Binary download\n\nGrab a binary from the [releases page](https://github.com/daptin/daptin-cli/releases/latest) for linux, macOS, or Windows (amd64 / arm64).\n\n## Quick Start\n\n```bash\n# Point to your Daptin server\ndaptin-cli context add myserver http://localhost:6336\ndaptin-cli context set myserver\n\n# Sign in (signin is an action like any other)\ndaptin-cli execute user_account signin email=admin@example.com password=secret\n\n# List tables\ndaptin-cli list --columns table_name,is_top_level world\n\n# List rows\ndaptin-cli list --columns name,email --page-size 20 user_account\n\n# Discover action requirements\ndaptin-cli describe action integration install_integration\n```\n\n## Context Management\n\nContexts store server endpoints and auth tokens in `~/.daptin/config.yaml`.\n\n```bash\ndaptin-cli context add prod https://api.example.com\ndaptin-cli context add local http://localhost:6336\ndaptin-cli context set prod\ndaptin-cli context list\n```\n\nOverride per-command with `--endpoint`:\n\n```bash\ndaptin-cli --endpoint http://localhost:6336 list world\n```\n\n## CRUD\n\n### List rows\n\n```bash\ndaptin-cli list \u003centity\u003e [flags]\n```\n\nFlags: `--columns`, `--page-size`, `--page`, `--sort`, `--filter`, `--include`\n\n```bash\n# List with column selection and pagination\ndaptin-cli list --columns table_name,reference_id --page-size 50 world\n\n# Sort descending by created_at\ndaptin-cli list --sort -created_at --page-size 10 document\n\n# Filter\ndaptin-cli list --filter name=administrators usergroup\ndaptin-cli list --filter \"status is active\" task\ndaptin-cli list --filter \"table_name like %doc%\" world\ndaptin-cli list --filter \"name is admin;email contains example\" user_account\n\n# Include relations\ndaptin-cli list --include user_account_id document\n```\n\n### Get a single row\n\n```bash\ndaptin-cli get \u003centity\u003e \u003creference_id\u003e [--columns col1,col2]\n```\n\n```bash\ndaptin-cli get world 019228bb-a7cd-773b-a465-c92d7c54d956\ndaptin-cli get --columns table_name,is_top_level world 019228bb-a7cd-773b-a465-c92d7c54d956\n```\n\n### Create, Update, Delete\n\n```bash\n# Create with key=value pairs\ndaptin-cli create document document_name=report.pdf document_extension=pdf\n\n# Create with JSON\ndaptin-cli create document '{\"document_name\":\"report.pdf\",\"document_extension\":\"pdf\"}'\n\n# Update\ndaptin-cli update document \u003creference_id\u003e document_name=updated.pdf\n\n# Delete\ndaptin-cli delete document \u003creference_id\u003e\n```\n\n### Traverse relationships\n\n```bash\ndaptin-cli related \u003centity\u003e \u003creference_id\u003e \u003crelation_column\u003e\ndaptin-cli related document \u003cref_id\u003e user_account_id\n```\n\n## Actions\n\nAll Daptin actions — built-in or custom — can be executed with `execute`.\n\n```bash\ndaptin-cli execute \u003centity\u003e \u003caction_name\u003e [key=val ...]\n```\n\n### Authentication\n\n```bash\n# Sign in\ndaptin-cli execute user_account signin email=admin@example.com password=secret\n\n# Sign up\ndaptin-cli execute user_account signup name=Alice email=alice@example.com password=secret passwordConfirm=secret\n\n# Sign in with 2FA\ndaptin-cli execute user_account verify_otp email=admin@example.com mobile_number=+1234567890 otp=123456\n```\n\nOn successful signin, the token is automatically saved to the active context.\n\n### Other actions\n\n```bash\n# Generate random data\ndaptin-cli execute world generate_random_data table_name=products count=100\n\n# Export data\ndaptin-cli execute world export_data table_name=document format=json\n\n# Upload file to cloud store\ndaptin-cli execute cloud_store upload_file --reference-id \u003cstore_id\u003e path=/uploads\n\n# Download system schema\ndaptin-cli execute world download_system_schema\n```\n\n### Interactive mode\n\nPrompt for fields based on the action's InFields schema:\n\n```bash\ndaptin-cli execute user_account signin --interactive\n# \u003e Email: admin@example.com\n# \u003e Password: ****\n```\n\nPassword fields are automatically masked.\n\n### Instance actions\n\nFor actions that require an entity instance, pass `--reference-id`:\n\n```bash\ndaptin-cli execute cloud_store upload_file --reference-id \u003ccloud_store_id\u003e path=/docs\n```\n\nUse `describe action` when you are unsure:\n\n```bash\ndaptin-cli describe action cloud_store upload_file\n```\n\n## Describe\n\n### Table schema\n\n```bash\ndaptin-cli describe table document\n```\n\nShows columns (name + type) and available actions.\n\n### Action schema\n\n```bash\ndaptin-cli describe action document createDocument\n```\n\nShows whether the action is instance-bound, whether `--reference-id` is required, the action's InFields, and an example `execute` command.\n\n## Table Defaults\n\nUse `table defaults` to inspect and update schema-level defaults before creating\nrows in setup scripts:\n\n```bash\ndaptin-cli table defaults get oauth_connect\ndaptin-cli table defaults set oauth_connect --permission 1618275\ndaptin-cli table defaults group add oauth_connect users --permission 1618275\ndaptin-cli table defaults ensure oauth_connect --permission 1618275 --group users:1618275\n```\n\nThese commands update the table's `world_schema_json`; restart Daptin or run the\nsupported reload flow before relying on changed defaults in a long-running\nserver process.\n\n## OAuth And Integrations\n\nOAuth 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.\n\n```bash\n# Create an OAuth connection without putting the client secret in shell history\nexport ASANA_CLIENT_SECRET=...\ndaptin-cli oauth connect create asana.com \\\n  --client-id \"$ASANA_CLIENT_ID\" \\\n  --client-secret-env ASANA_CLIENT_SECRET \\\n  --auth-url https://app.asana.com/-/oauth_authorize \\\n  --token-url https://app.asana.com/-/oauth_token \\\n  --profile-url https://app.asana.com/api/1.0/users/me \\\n  --scope default\n\n# Start the browser OAuth flow and list token references after callback\ndaptin-cli oauth login-url asana.com\ndaptin-cli oauth tokens list --provider asana.com\n```\n\nImport large OpenAPI specs from files, URLs, or stdin:\n\n```bash\ndaptin-cli integration validate-spec --spec-file ./provider.yaml\n\ndaptin-cli integration import \\\n  --provider asana.com \\\n  --spec-file ./asana_oas.yaml \\\n  --auth oauth2 \\\n  --oauth-connect asana.com \\\n  --update\n\ndaptin-cli integration install asana.com\n```\n\nTransport extensions can be patched during import for generated facade specs:\n\n```bash\ndaptin-cli integration import \\\n  --provider linear.app \\\n  --spec-file ./linear-openapi.yaml \\\n  --auth custom_credentials \\\n  --auth-spec-file ./linear-auth.json \\\n  --set-operation-transport listIssues=graphql \\\n  --set-operation-upstream-path listIssues=/graphql \\\n  --set-graphql-document-file listIssues=./list_issues.graphql \\\n  --set-graphql-operation-name listIssues=ListIssues \\\n  --validate\n```\n\nFor gRPC services without reflection, embed a descriptor set during import:\n\n```bash\ndaptin-cli integration import \\\n  --provider grpc.example \\\n  --spec-file ./grpc-facade.yaml \\\n  --auth custom_credentials \\\n  --auth-spec-file ./grpc-auth.json \\\n  --set-operation-transport Search=grpc \\\n  --set-grpc-service Search=grpc.testing.SearchService \\\n  --set-grpc-method Search=Search \\\n  --grpc-descriptor-set Search=./search.protoset \\\n  --validate\n```\n\nThe CLI can also invoke `protoc` with `--grpc-proto Search=./proto/search.proto`\nand optional `--grpc-proto-path Search=./proto`; descriptor blobs are embedded\nin the imported spec but hidden from normal discovery output.\n\nDiscover installed operations through Daptin's scoped integration discovery endpoints:\n\n```bash\ndaptin-cli integration list\ndaptin-cli integration operations asana.com\ndaptin-cli integration operations asana.com --columns operation_id,method,path,transport\ndaptin-cli integration describe asana.com getWorkspaces\n```\n\nExecute provider-scoped operations:\n\n```bash\ndaptin-cli integration execute asana.com getWorkspaces \\\n  --oauth-token-id \u003coauth_token_reference_id\u003e \\\n  --input-json '{\"opt_fields\":[\"name\"]}'\n\ndaptin-cli integration execute example.com listUsers \\\n  --credential-id \u003ccredential_reference_id\u003e \\\n  limit=10\n\ndaptin-cli integration execute linear.app listIssues \\\n  --credential-id \u003ccredential_reference_id\u003e \\\n  --input-json '{\"first\":2,\"after\":\"cursor\"}'\n\ndaptin-cli integration execute realtime.example wsSearch \\\n  --credential-id \u003ccredential_reference_id\u003e \\\n  query=tickets\n\ndaptin-cli integration execute grpc.example Search \\\n  --credential-id \u003ccredential_reference_id\u003e \\\n  query=daptin\n```\n\n`integration operations` and `integration describe` require Daptin versions with scoped discovery endpoints: `GET /integration/:provider/operations` and `GET /integration/:provider/operations/:operation`.\n\n## Storage\n\nCloud storage setup and common file operations are available through `storage`.\n\n```bash\n# Create a local store\ndaptin-cli storage add local-files \\\n  --type local \\\n  --store-provider local \\\n  --root-path /tmp/daptin-files\n\n# Create an S3/MinIO-style store and linked credential\ndaptin-cli storage add minio \\\n  --type s3 \\\n  --provider Minio \\\n  --endpoint http://localhost:9000 \\\n  --access-key minioadmin \\\n  --secret-key minioadmin123 \\\n  --bucket daptin-test \\\n  --restart\n\n# List and remove stores\ndaptin-cli storage list\ndaptin-cli storage remove minio\n```\n\nFile operations use `store-name:/path` addressing:\n\n```bash\ndaptin-cli storage mkdir local-files:/photos\ndaptin-cli storage upload local-files:/photos ./image.jpg\ndaptin-cli storage upload local-files:/site ./public --recursive\ndaptin-cli storage mv local-files:/photos/image.jpg local-files:/archive/image.jpg\ndaptin-cli storage rm local-files:/archive/image.jpg\n```\n\nDirect `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.\n\n## Asset Columns\n\nUse `asset` for `file.*` columns on normal entity rows. These commands use Daptin's `/asset/...` routes.\n\n```bash\ndaptin-cli asset upload product \u003cproduct_reference_id\u003e photo ./image.jpg\ndaptin-cli asset list product \u003cproduct_reference_id\u003e photo\n```\n\n## Output\n\nTable (default) or JSON:\n\n```bash\ndaptin-cli --output table list world\ndaptin-cli --output json list world\n```\n\n## Filter Syntax\n\nFilters can use `key=value` shorthand or semicolon-separated `\u003ccolumn\u003e \u003coperator\u003e \u003cvalue\u003e` expressions:\n\n```bash\n--filter \"name=alice\"\n--filter \"name is alice\"\n--filter \"status is active;role is admin\"\n--filter \"name like %ali%\"\n--filter \"count more than 5\"\n--filter \"active is true\"\n--filter \"notes is empty\"\n```\n\nOperators: `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`\n\nUse `%` wildcards with `like` for partial matching. Raw JSON is also accepted:\n\n```bash\n--filter '[{\"column\":\"name\",\"operator\":\"like\",\"value\":\"%ali%\"}]'\n```\n\n## Global Flags\n\n```\n--config FILE, -c    Config file (default: ~/.daptin/config.yaml)\n--output, -o         Output format: table or json (default: table)\n--endpoint           Server endpoint (default: http://localhost:6336)\n--debug              Enable debug output\n```\n\n## WebSocket\n\nReal-time pub/sub via Daptin's `/live` endpoint.\n\n```bash\n# Stream all events\ndaptin-cli ws listen\n\n# Subscribe to topics\ndaptin-cli ws subscribe user_account\ndaptin-cli ws subscribe user_account document order\n\n# Publish a message\ndaptin-cli ws publish chat-room-1 '{\"text\":\"hello\"}'\n\n# Ping\ndaptin-cli ws ping\n\n# Topic management\ndaptin-cli ws topic create chat-room-1\ndaptin-cli ws topic delete chat-room-1\ndaptin-cli ws topic permission chat-room-1\ndaptin-cli ws topic permission chat-room-1 --set 2097151\n\n# Cross-node verification\ndaptin-cli ws verify --endpoints http://node1:6336,http://node2:6336\n```\n\n## Environment Variables\n\n```\nDAPTIN_CLI_CONFIG    Config file path\nDAPTIN_ENDPOINT      Server endpoint\nDAPTIN_CLI_OUTPUT    Output format\n```\n\n## E2E Tests\n\nThe regular Go test suite stays lightweight:\n\n```bash\ngo test ./...\n```\n\nTo run the real integration transport E2E, provide either `DAPTIN_BINARY` or a\nlocal Daptin source checkout via `DAPTIN_SOURCE_DIR` (defaults to `../daptin`):\n\n```bash\nDAPTIN_SOURCE_DIR=../daptin ./scripts/integration-transport-e2e.sh\n```\n\nThis starts a fresh Daptin process, local REST/GraphQL/WebSocket/gRPC upstreams,\nand exercises the integration lifecycle using only `daptin-cli` commands.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaptin%2Fdaptin-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaptin%2Fdaptin-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaptin%2Fdaptin-cli/lists"}