docyrus-cli-app
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseDocyrus CLI
Docyrus CLI
Guide for using the CLI to interact with the Docyrus platform from the terminal.
docyrus通过终端使用 CLI 与 Docyrus 平台交互的指南。
docyrusCommand Overview
命令概览
| Command | Description |
|---|---|
| Authenticate via OAuth2 device flow |
| Show current user |
| List available tenants |
| Switch active tenant |
| Manage environments |
| List tenant apps |
| Get data source metadata |
| Query records with filters, sorting, pagination |
| Create a record |
| Update a record |
| Delete a record |
| CRUD for dev app data sources, fields, and enums |
| Send arbitrary API requests |
| Download tenant OpenAPI spec |
| List API namespaces from OpenAPI spec |
| List endpoints matching a path prefix |
| Return full endpoint object by path/method |
| Return full entity schema by name |
| Search endpoint paths and entity names |
See references/cli-manifest.md for complete command reference with all flags and arguments.
| Command | Description |
|---|---|
| 通过 OAuth2 设备流进行身份认证 |
| 显示当前用户 |
| 列出可用租户 |
| 切换活跃租户 |
| 管理环境 |
| 列出租户下的应用 |
| 获取数据源元数据 |
| 支持过滤、排序、分页查询记录 |
| 创建记录 |
| 更新记录 |
| 删除记录 |
| 对开发应用数据源、字段和枚举执行 CRUD 操作 |
| 发送任意 API 请求 |
| 下载租户 OpenAPI 规范 |
| 从 OpenAPI 规范中列出 API 命名空间 |
| 列出匹配路径前缀的端点 |
| 根据路径/方法返回完整端点对象 |
| 根据名称返回完整实体 schema |
| 搜索端点路径和实体名称 |
完整命令参考(包含所有标志和参数)请查看 references/cli-manifest.md。
Common Workflows
常用工作流
First-Time Setup
首次设置
- Authenticate:
docyrus auth login - Select tenant:
docyrus auth tenants use --tenantId <id> - Verify:
docyrus auth who
- 认证:
docyrus auth login - 选择租户:
docyrus auth tenants use --tenantId <id> - 验证:
docyrus auth who
Discover API & Entities
发现API与实体
Download the tenant OpenAPI spec and explore available endpoints and entities:
bash
undefined下载租户 OpenAPI 规范,探索可用的端点和实体:
bash
undefinedDownload/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
undefineddocyrus discover search users,UserEntity --json
undefinedDiscover Data Sources
发现数据源
- List apps:
docyrus apps list - Get metadata:
docyrus ds get <appSlug> <dataSourceSlug>
- 列出应用:
docyrus apps list - 获取元数据:
docyrus ds get <appSlug> <dataSourceSlug>
Query Records (ds list
)
ds list查询记录(ds list
)
ds listBasic listing:
bash
docyrus ds list crm contacts --columns "name, email, phone" --limit 20With 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
)
studioStudio Schema CRUD(studio
)
studioUse for developer-facing data source schema operations under (data sources, fields, enums).
studio/v1/dev/apps/:app_id/data-sourcesExamples:
bash
undefined使用 对 下面向开发者的数据源 schema 执行操作(数据源、字段、枚举)。
studio/v1/dev/apps/:app_id/data-sources示例:
bash
undefinedData 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
undefineddocyrus 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
undefinedBatch & File Input (ds create
/ ds update
)
ds createds update批量与文件输入(ds create
/ ds update
)
ds createds updateBoth commands support with or files.
--from-file.json.csv- Object payload -> single item endpoints (or
/items)/items/:recordId - Array payload -> bulk endpoints ()
/items/bulk - Batch size limit: 50 items
- Batch update requires in every item and must not include positional
idrecordId
Examples:
bash
undefined两个命令都支持 参数,可传入 或 文件。
--from-file.json.csv- 对象 payload -> 单条目端点(或
/items)/items/:recordId - 数组 payload -> 批量端点()
/items/bulk - 批量大小限制:50条
- 批量更新要求每个条目都包含 ,且不能传入位置参数
idrecordId
示例:
bash
undefinedBulk 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
undefineddocyrus ds update crm contacts <recordId> --from-file ./contact-update.json --json
undefinedArbitrary 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 and
appSlug(not IDs) — rundataSourceSluganddocyrus apps listto discover slugsdocyrus ds get - /
ds createacceptds update(JSON) or--data(--from-file/.json), but not both at once.csv - If payload is an array, CLI uses bulk endpoints with max 50 items
- For bulk update, each item must include and no positional
idshould be provided<recordId> - accepts a JSON string following the filter group structure:
--filters{"combinator":"and","rules":[...]} - Filter operators include: ,
=,!=,>,>=,<,<=,like,not like,in,not in,empty,not empty,between,today,this_month,this_quarter,last_30_daysactive_user - Filter on related fields using syntax
rel_<relation_slug>/<field_slug> - uses comma-separated field slugs with support for relation expansion
--columns, spread(), aliasing..., and functions:@ - controls output:
--format(default table),toon,json,yaml,mdjsonl - wraps response in full envelope with metadata
--verbose - Studio selectors are exclusive pairs: provide exactly one of ,
--appId|--appSlug, and--dataSourceId|--dataSourceSlug(as required by command)--fieldId|--fieldSlug - Studio write commands accept (JSON string) or
--data(JSON only), and merge with flags where flags override overlapping keys--from-file - Studio batch commands auto-wrap root arrays to required DTO keys: ,
dataSources,fields,fieldIds,enumsenumIds
- 参数使用 和
appSlug(而非ID)—— 运行dataSourceSlug和docyrus apps list来查找对应 slugdocyrus ds get - /
ds create可传入ds update(JSON)或--data(--from-file/.json),但不能同时使用两者.csv - 如果 payload 是数组,CLI 会使用批量端点,最多支持50条记录
- 执行批量更新时,每个条目必须包含 ,且不能提供位置参数
id<recordId> - 接受遵循过滤器组结构的 JSON 字符串:
--filters{"combinator":"and","rules":[...]} - 过滤器运算符包括:,
=,!=,>,>=,<,<=,like,not like,in,not in,empty,not empty,between,today,this_month,this_quarter,last_30_daysactive_user - 使用 语法过滤关联字段
rel_<relation_slug>/<field_slug> - 使用逗号分隔的字段 slug,支持关联扩展
--columns、展开符()、别名...和函数:@ - 控制输出格式:
--format(默认表格)、toon、json、yaml、mdjsonl - 会将响应包裹在包含元数据的完整信封中
--verbose - Studio 选择器是互斥对:需根据命令要求恰好提供其中一个:、
--appId|--appSlug、--dataSourceId|--dataSourceSlug--fieldId|--fieldSlug - Studio 写入命令可接受 (JSON 字符串)或
--data(仅支持 JSON),会与参数标志合并,标志优先级高于重叠的键--from-file - Studio 批量命令会自动将根数组包装到所需的 DTO 键中:、
dataSources、fields、fieldIds、enumsenumIds
References
参考
- CLI Manifest — Complete command reference with all flags, arguments, and options.
- List Query Examples — Practical examples covering columns, filters, sorting, pagination, and combined queries.
ds list
- CLI 清单 —— 完整命令参考,包含所有标志、参数和选项。
- 列表查询示例 —— 实用的 示例,涵盖列选择、过滤、排序、分页和组合查询。
ds list