docs: sync package layout and REST with current API
Host examples and README still described the pre-split packages and omitted optional REST. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Ordo
|
||||
|
||||
轻量审批流程引擎。宿主通过 `OrdoEngine` 注册流程定义、发起实例、审批/驳回/转派/撤回/取消,并查询任务、实例与审计历史。引擎不绑定业务表单、用户体系或设计器 UI,当前也不自带 REST;业务数据放在 `ProcessContext` 里。
|
||||
轻量审批流程引擎。宿主通过 `OrdoEngine` 注册流程定义、发起实例、审批/驳回/转派/撤回/取消,并查询任务、实例与审计历史。引擎不绑定业务表单、用户体系或设计器 UI。可选 REST(`ordo.rest.enabled`)。业务数据放在 `ProcessContext` 里。
|
||||
|
||||
要求 **Java 17+**。当前版本 `0.0.1-SNAPSHOT`。
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
- 审计时间线:`ProcessEvent` + `queryHistory`
|
||||
- 扩展点:`AssigneeResolver`、`RoutingCondition`、`ActionHandler`、`NamedCondition`、`NamedAction`、`OrdoEventListener`
|
||||
|
||||
开发计划:可选 REST + 目录 SPI。设计器为独立产品(不进本仓库),待 REST 与目录之后。多租户 **暂不在计划中**。见 [docs/roadmap.md](docs/roadmap.md)。
|
||||
开发计划:独立设计器(不进本仓库)。多租户 **暂不在计划中**。见 [docs/roadmap.md](docs/roadmap.md)。
|
||||
|
||||
详细用法(定义 JSON、扩展点、异常、查询、ACTION/审计语义)见 **[docs/usage.md](docs/usage.md)**。对外行为变更时同步更新该文档。
|
||||
|
||||
@@ -45,6 +45,12 @@
|
||||
```
|
||||
|
||||
```java
|
||||
import com.jetlumen.ordo.api.OrdoEngine;
|
||||
import com.jetlumen.ordo.api.definition.ApprovalStep;
|
||||
import com.jetlumen.ordo.api.definition.ProcessDefinition;
|
||||
import com.jetlumen.ordo.api.runtime.ProcessContext;
|
||||
import com.jetlumen.ordo.core.InMemoryOrdoEngine;
|
||||
|
||||
OrdoEngine ordo = new InMemoryOrdoEngine();
|
||||
ordo.publish(ProcessDefinition.linear("leave-request", "Leave request", List.of(
|
||||
ApprovalStep.single("manager", "Manager approval", "maria"),
|
||||
@@ -83,8 +89,7 @@ ordo.approve(manager.id(), "maria", "ok");
|
||||
|
||||
- `kind` 默认 `APPROVAL`;ACTION 用 `"action"` 作为 handler 查找键;`PARALLEL` 用 `branches`(结构化并行块,见 [docs/usage.md](docs/usage.md))。
|
||||
- 带 `when` 的边先按 `priority` 匹配,都未命中再走无条件边;`to: null` 表示结束。
|
||||
- 代码侧可用 `ProcessDefinitionParser.fromJson(...)`。
|
||||
- `replace` 会整体替换同 id 定义;存在 `RUNNING` 实例时拒绝替换。
|
||||
- 代码侧可用 `ProcessDefinitionParser.fromJson(...)`(`com.jetlumen.ordo.api.definition`)。
|
||||
|
||||
## Spring Boot
|
||||
|
||||
@@ -96,7 +101,7 @@ ordo.approve(manager.id(), "maria", "ok");
|
||||
</dependency>
|
||||
```
|
||||
|
||||
需要 `DataSource`。存在 `DataSource` 且 `ordo.enabled` 不为 `false` 时装配 JDBC 引擎。
|
||||
需要 `DataSource`。存在 `DataSource` 且 `ordo.enabled` 不为 `false` 时装配 JDBC 引擎。REST 另需宿主的 Web starter,且 `ordo.rest.enabled=true`。
|
||||
|
||||
```yaml
|
||||
ordo:
|
||||
@@ -105,6 +110,11 @@ ordo:
|
||||
dialect: # 可选 postgresql / mysql;空则按 DataSource 探测
|
||||
definitions:
|
||||
location: classpath*:ordo/*.json # 默认值;启动时 publish 加载
|
||||
due:
|
||||
poll-ms: 0 # >0 时轮询 processDue
|
||||
rest:
|
||||
enabled: false
|
||||
base-path: /ordo
|
||||
```
|
||||
|
||||
宿主提供 Bean 即可覆盖默认值:
|
||||
@@ -115,6 +125,7 @@ ordo:
|
||||
| `NamedCondition` / `NamedAction` | 可多个;无对应门面时按 key 分发 |
|
||||
| `RoutingCondition` | 无具名 condition 时始终匹配;有则未知 `ref` 为 false |
|
||||
| `ActionHandler` | 无具名 action 时空操作;有则未知 key 抛错 |
|
||||
| `OrdoCatalog` | REST 打开时从 Named* 投影;`assignees` 空 |
|
||||
| `OrdoEventListener` | 可注册多个,提交后按顺序调用 |
|
||||
|
||||
## 运行时约定
|
||||
|
||||
Reference in New Issue
Block a user