docyrus-cli-app

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Docyrus CLI

Docyrus CLI

Guide for using the
docyrus
CLI to interact with the Docyrus platform from the terminal.
通过终端使用
docyrus
CLI 与 Docyrus 平台交互的指南。

Command Overview

命令概览

CommandDescription
docyrus auth login
Authenticate via OAuth2 device flow
docyrus auth who
Show current user
docyrus auth tenants list
List available tenants
docyrus auth tenants use
Switch active tenant
docyrus env list
/
env use
Manage environments
docyrus apps list
List tenant apps
docyrus ds get
Get data source metadata
docyrus ds list
Query records with filters, sorting, pagination
docyrus ds create
Create a record
docyrus ds update
Update a record
docyrus ds delete
Delete a record
docyrus studio ...
CRUD for dev app data sources, fields, and enums
docyrus curl
Send arbitrary API requests
docyrus discover api
Download tenant OpenAPI spec
docyrus discover namespaces
List API namespaces from OpenAPI spec
docyrus discover path
List endpoints matching a path prefix
docyrus discover endpoint
Return full endpoint object by path/method
docyrus discover entity
Return full entity schema by name
docyrus discover search
Search endpoint paths and entity names
See references/cli-manifest.md for complete command reference with all flags and arguments.
CommandDescription
docyrus auth login
通过 OAuth2 设备流进行身份认证
docyrus auth who
显示当前用户
docyrus auth tenants list
列出可用租户
docyrus auth tenants use
切换活跃租户
docyrus env list
/
env use
管理环境
docyrus apps list
列出租户下的应用
docyrus ds get
获取数据源元数据
docyrus ds list
支持过滤、排序、分页查询记录
docyrus ds create
创建记录
docyrus ds update
更新记录
docyrus ds delete
删除记录
docyrus studio ...
对开发应用数据源、字段和枚举执行 CRUD 操作
docyrus curl
发送任意 API 请求
docyrus discover api
下载租户 OpenAPI 规范
docyrus discover namespaces
从 OpenAPI 规范中列出 API 命名空间
docyrus discover path
列出匹配路径前缀的端点
docyrus discover endpoint
根据路径/方法返回完整端点对象
docyrus discover entity
根据名称返回完整实体 schema
docyrus discover search
搜索端点路径和实体名称
完整命令参考(包含所有标志和参数)请查看 references/cli-manifest.md

Common Workflows

常用工作流

First-Time Setup

首次设置

  1. Authenticate:
    docyrus auth login
  2. Select tenant:
    docyrus auth tenants use --tenantId <id>
  3. Verify:
    docyrus auth who
  1. 认证:
    docyrus auth login
  2. 选择租户:
    docyrus auth tenants use --tenantId <id>
  3. 验证:
    docyrus auth who

Discover API & Entities

发现API与实体

Download the tenant OpenAPI spec and explore available endpoints and entities:
bash
undefined
下载租户 OpenAPI 规范,探索可用的端点和实体:
bash
undefined

Download/refresh tenant OpenAPI spec

下载/刷新租户 OpenAPI 规范

docyrus discover api --json
docyrus discover api --json

List all API namespaces (e.g. /v1/users, /v1/teams)

列出所有 API 命名空间(例如 /v1/users、/v1/teams)

docyrus discover namespaces --json
docyrus discover namespaces --json

List endpoints under a path prefix (with or without /v1)

列出路径前缀下的端点(可带或不带 /v1)

docyrus discover path /v1/users --json docyrus discover path /teams --json
docyrus discover path /v1/users --json docyrus discover path /teams --json

Get full endpoint details (defaults to GET; use [METHOD] prefix for others)

获取完整端点详情(默认 GET 方法;其他方法可加 [METHOD] 前缀)

docyrus discover endpoint /v1/users/me --json docyrus discover endpoint [PUT]/v1/users/me/photo --json
docyrus discover endpoint /v1/users/me --json docyrus discover endpoint [PUT]/v1/users/me/photo --json

Get full entity/schema definition

获取完整实体/schema 定义

docyrus discover entity UserEntity --json
docyrus discover entity UserEntity --json

Search endpoints and entities by comma-separated terms

按逗号分隔的关键词搜索端点和实体

docyrus discover search users,UserEntity --json
undefined
docyrus discover search users,UserEntity --json
undefined

Discover Data Sources

发现数据源

  1. List apps:
    docyrus apps list
  2. Get metadata:
    docyrus ds get <appSlug> <dataSourceSlug>
  1. 列出应用:
    docyrus apps list
  2. 获取元数据:
    docyrus ds get <appSlug> <dataSourceSlug>

Query Records (
ds list
)

查询记录(
ds list

Basic listing:
bash
docyrus ds list crm contacts --columns "name, email, phone" --limit 20
With filters (JSON object):
bash
docyrus ds list crm contacts \
  --columns "name, email" \
  --filters '{"rules":[{"field":"status","operator":"=","value":"active"}]}'
With relation expansion:
bash
docyrus ds list crm contacts \
  --columns "name, ...related_account(account_name, account_phone)"
Date shortcut filter:
bash
docyrus ds list crm tasks --filters '{"rules":[{"field":"created_on","operator":"this_month"}]}'
See references/list-query-examples.md for comprehensive filter, sort, pagination, and combined query examples.
基础列表查询:
bash
docyrus ds list crm contacts --columns "name, email, phone" --limit 20
带过滤器(JSON 对象):
bash
docyrus ds list crm contacts \
  --columns "name, email" \
  --filters '{"rules":[{"field":"status","operator":"=","value":"active"}]}'
关联扩展:
bash
docyrus ds list crm contacts \
  --columns "name, ...related_account(account_name, account_phone)"
日期快捷过滤器:
bash
docyrus ds list crm tasks --filters '{"rules":[{"field":"created_on","operator":"this_month"}]}'
完整的过滤、排序、分页和组合查询示例请查看 references/list-query-examples.md

CRUD Operations

CRUD 操作

Create:
bash
docyrus ds create crm contacts --data '{"name":"Jane Doe","email":"jane@example.com"}'
Update:
bash
docyrus ds update crm contacts <recordId> --data '{"phone":"+1234567890"}'
Delete:
bash
docyrus ds delete crm contacts <recordId>
创建:
bash
docyrus ds create crm contacts --data '{"name":"Jane Doe","email":"jane@example.com"}'
更新:
bash
docyrus ds update crm contacts <recordId> --data '{"phone":"+1234567890"}'
删除:
bash
docyrus ds delete crm contacts <recordId>

Studio Schema CRUD (
studio
)

Studio Schema CRUD(
studio

Use
studio
for developer-facing data source schema operations under
/v1/dev/apps/:app_id/data-sources
(data sources, fields, enums).
Examples:
bash
undefined
使用
studio
/v1/dev/apps/:app_id/data-sources
下面向开发者的数据源 schema 执行操作(数据源、字段、枚举)。
示例:
bash
undefined

Data sources

数据源操作

docyrus studio list-data-sources --appSlug crm --expand fields --json docyrus studio get-data-source --appSlug crm --dataSourceSlug contacts --json docyrus studio create-data-source --appSlug crm --title "Contacts" --name "contacts" --slug "contacts" --json docyrus studio update-data-source --appId <appId> --dataSourceId <dataSourceId> --data '{"title":"Contacts v2"}' --json docyrus studio delete-data-source --appId <appId> --dataSourceSlug contacts --json docyrus studio bulk-create-data-sources --appId <appId> --from-file ./data-sources.json --json
docyrus studio list-data-sources --appSlug crm --expand fields --json docyrus studio get-data-source --appSlug crm --dataSourceSlug contacts --json docyrus studio create-data-source --appSlug crm --title "Contacts" --name "contacts" --slug "contacts" --json docyrus studio update-data-source --appId <appId> --dataSourceId <dataSourceId> --data '{"title":"Contacts v2"}' --json docyrus studio delete-data-source --appId <appId> --dataSourceSlug contacts --json docyrus studio bulk-create-data-sources --appId <appId> --from-file ./data-sources.json --json

Fields

字段操作

docyrus studio list-fields --appSlug crm --dataSourceSlug contacts --json docyrus studio get-field --appSlug crm --dataSourceSlug contacts --fieldSlug email --json docyrus studio create-field --appId <appId> --dataSourceId <dataSourceId> --name "Email" --slug "email" --type "text" --json docyrus studio update-field --appId <appId> --dataSourceId <dataSourceId> --fieldId <fieldId> --data '{"name":"Primary Email"}' --json docyrus studio delete-field --appId <appId> --dataSourceId <dataSourceId> --fieldSlug email --json docyrus studio create-fields-batch --appId <appId> --dataSourceId <dataSourceId> --data '[{"name":"Status","slug":"status","type":"text"}]' --json docyrus studio update-fields-batch --appId <appId> --dataSourceId <dataSourceId> --from-file ./fields-update.json --json docyrus studio delete-fields-batch --appId <appId> --dataSourceId <dataSourceId> --data '["field-1","field-2"]' --json
docyrus studio list-fields --appSlug crm --dataSourceSlug contacts --json docyrus studio get-field --appSlug crm --dataSourceSlug contacts --fieldSlug email --json docyrus studio create-field --appId <appId> --dataSourceId <dataSourceId> --name "Email" --slug "email" --type "text" --json docyrus studio update-field --appId <appId> --dataSourceId <dataSourceId> --fieldId <fieldId> --data '{"name":"Primary Email"}' --json docyrus studio delete-field --appId <appId> --dataSourceId <dataSourceId> --fieldSlug email --json docyrus studio create-fields-batch --appId <appId> --dataSourceId <dataSourceId> --data '[{"name":"Status","slug":"status","type":"text"}]' --json docyrus studio update-fields-batch --appId <appId> --dataSourceId <dataSourceId> --from-file ./fields-update.json --json docyrus studio delete-fields-batch --appId <appId> --dataSourceId <dataSourceId> --data '["field-1","field-2"]' --json

Enums

枚举操作

docyrus studio list-enums --appId <appId> --dataSourceId <dataSourceId> --fieldId <fieldId> --json docyrus studio create-enums --appId <appId> --dataSourceId <dataSourceId> --fieldId <fieldId> --data '[{"name":"Open","sortOrder":1}]' --json docyrus studio update-enums --appId <appId> --dataSourceId <dataSourceId> --fieldId <fieldId> --from-file ./enums-update.json --json docyrus studio delete-enums --appId <appId> --dataSourceId <dataSourceId> --fieldId <fieldId> --data '["enum-1","enum-2"]' --json
undefined
docyrus studio list-enums --appId <appId> --dataSourceId <dataSourceId> --fieldId <fieldId> --json docyrus studio create-enums --appId <appId> --dataSourceId <dataSourceId> --fieldId <fieldId> --data '[{"name":"Open","sortOrder":1}]' --json docyrus studio update-enums --appId <appId> --dataSourceId <dataSourceId> --fieldId <fieldId> --from-file ./enums-update.json --json docyrus studio delete-enums --appId <appId> --dataSourceId <dataSourceId> --fieldId <fieldId> --data '["enum-1","enum-2"]' --json
undefined

Batch & File Input (
ds create
/
ds update
)

批量与文件输入(
ds create
/
ds update

Both commands support
--from-file
with
.json
or
.csv
files.
  • Object payload -> single item endpoints (
    /items
    or
    /items/:recordId
    )
  • Array payload -> bulk endpoints (
    /items/bulk
    )
  • Batch size limit: 50 items
  • Batch update requires
    id
    in every item and must not include positional
    recordId
Examples:
bash
undefined
两个命令都支持
--from-file
参数,可传入
.json
.csv
文件。
  • 对象 payload -> 单条目端点(
    /items
    /items/:recordId
  • 数组 payload -> 批量端点(
    /items/bulk
  • 批量大小限制:50条
  • 批量更新要求每个条目都包含
    id
    ,且不能传入位置参数
    recordId
示例:
bash
undefined

Bulk create from inline JSON array

基于内联 JSON 数组批量创建

docyrus ds create crm contacts --data '[{"name":"A"},{"name":"B"}]' --json
docyrus ds create crm contacts --data '[{"name":"A"},{"name":"B"}]' --json

Bulk update from inline JSON array (id required in each item)

基于内联 JSON 数组批量更新(每个条目必须包含 id)

docyrus ds update crm contacts --data '[{"id":"1","phone":"+111"},{"id":"2","phone":"+222"}]' --json
docyrus ds update crm contacts --data '[{"id":"1","phone":"+111"},{"id":"2","phone":"+222"}]' --json

Bulk create from CSV file

基于 CSV 文件批量创建

docyrus ds create crm contacts --from-file ./contacts-create.csv --json
docyrus ds create crm contacts --from-file ./contacts-create.csv --json

Single update from JSON file

基于 JSON 文件更新单条记录

docyrus ds update crm contacts <recordId> --from-file ./contact-update.json --json
undefined
docyrus ds update crm contacts <recordId> --from-file ./contact-update.json --json
undefined

Arbitrary API Calls

任意API调用

bash
docyrus curl /v1/users/me
docyrus curl /v1/dev/apps -X GET --format json
docyrus curl /v1/some/endpoint -X POST -d '{"key":"value"}'
bash
docyrus curl /v1/users/me
docyrus curl /v1/dev/apps -X GET --format json
docyrus curl /v1/some/endpoint -X POST -d '{"key":"value"}'

Key Rules

核心规则

  • Arguments use
    appSlug
    and
    dataSourceSlug
    (not IDs) — run
    docyrus apps list
    and
    docyrus ds get
    to discover slugs
  • ds create
    /
    ds update
    accept
    --data
    (JSON) or
    --from-file
    (
    .json
    /
    .csv
    ), but not both at once
  • If payload is an array, CLI uses bulk endpoints with max 50 items
  • For bulk update, each item must include
    id
    and no positional
    <recordId>
    should be provided
  • --filters
    accepts a JSON string following the filter group structure:
    {"combinator":"and","rules":[...]}
  • Filter operators include:
    =
    ,
    !=
    ,
    >
    ,
    >=
    ,
    <
    ,
    <=
    ,
    like
    ,
    not like
    ,
    in
    ,
    not in
    ,
    empty
    ,
    not empty
    ,
    between
    ,
    today
    ,
    this_month
    ,
    this_quarter
    ,
    last_30_days
    ,
    active_user
  • Filter on related fields using
    rel_<relation_slug>/<field_slug>
    syntax
  • --columns
    uses comma-separated field slugs with support for relation expansion
    ()
    , spread
    ...
    , aliasing
    :
    , and functions
    @
  • --format
    controls output:
    toon
    (default table),
    json
    ,
    yaml
    ,
    md
    ,
    jsonl
  • --verbose
    wraps response in full envelope with metadata
  • Studio selectors are exclusive pairs: provide exactly one of
    --appId|--appSlug
    ,
    --dataSourceId|--dataSourceSlug
    , and
    --fieldId|--fieldSlug
    (as required by command)
  • Studio write commands accept
    --data
    (JSON string) or
    --from-file
    (JSON only), and merge with flags where flags override overlapping keys
  • Studio batch commands auto-wrap root arrays to required DTO keys:
    dataSources
    ,
    fields
    ,
    fieldIds
    ,
    enums
    ,
    enumIds
  • 参数使用
    appSlug
    dataSourceSlug
    (而非ID)—— 运行
    docyrus apps list
    docyrus ds get
    来查找对应 slug
  • ds create
    /
    ds update
    可传入
    --data
    (JSON)或
    --from-file
    .json
    /
    .csv
    ),但不能同时使用两者
  • 如果 payload 是数组,CLI 会使用批量端点,最多支持50条记录
  • 执行批量更新时,每个条目必须包含
    id
    ,且不能提供位置参数
    <recordId>
  • --filters
    接受遵循过滤器组结构的 JSON 字符串:
    {"combinator":"and","rules":[...]}
  • 过滤器运算符包括:
    =
    ,
    !=
    ,
    >
    ,
    >=
    ,
    <
    ,
    <=
    ,
    like
    ,
    not like
    ,
    in
    ,
    not in
    ,
    empty
    ,
    not empty
    ,
    between
    ,
    today
    ,
    this_month
    ,
    this_quarter
    ,
    last_30_days
    ,
    active_user
  • 使用
    rel_<relation_slug>/<field_slug>
    语法过滤关联字段
  • --columns
    使用逗号分隔的字段 slug,支持关联扩展
    ()
    、展开符
    ...
    、别名
    :
    和函数
    @
  • --format
    控制输出格式:
    toon
    (默认表格)、
    json
    yaml
    md
    jsonl
  • --verbose
    会将响应包裹在包含元数据的完整信封中
  • Studio 选择器是互斥对:需根据命令要求恰好提供其中一个:
    --appId|--appSlug
    --dataSourceId|--dataSourceSlug
    --fieldId|--fieldSlug
  • Studio 写入命令可接受
    --data
    (JSON 字符串)或
    --from-file
    (仅支持 JSON),会与参数标志合并,标志优先级高于重叠的键
  • Studio 批量命令会自动将根数组包装到所需的 DTO 键中:
    dataSources
    fields
    fieldIds
    enums
    enumIds

References

参考

  • CLI Manifest — Complete command reference with all flags, arguments, and options.
  • List Query Examples — Practical
    ds list
    examples covering columns, filters, sorting, pagination, and combined queries.
  • CLI 清单 —— 完整命令参考,包含所有标志、参数和选项。
  • 列表查询示例 —— 实用的
    ds list
    示例,涵盖列选择、过滤、排序、分页和组合查询。