> **前置条件** — 执行以下任何命令前，请先确认已完成认证。如未认证，参见 [`../../shb-shared/SKILL.md`](../../shb-shared/SKILL.md)。

# PaaS 删除(删)

所有删除操作的唯一权威文档。**删除都是 destructive 操作,不可恢复**:必须用户明确要求删除、且逐条确认后才执行;删除前先读取目标并向用户复述"将要删除的是什么",核对 `shb-cli config` 的租户和用户。

## 删除颗粒度速查(先确认删的是哪一层)

| 要删什么 | 命令 | 影响范围 |
|---------|------|---------|
| 一条数据记录 | `form delete` | 只删这条记录 |
| 整个表单(表单结构) | `template delete` | 整个业务模块的结构,影响面最大 |
| 表单里的某个字段 | 无独立删除命令 | 见「删字段」说明 |
| 一个流程版本 | `flow version delete` | 该表单的某个流程版本 |
| 记录上的附件 | `form save` 的 `deletefiles` | 属于编辑操作,见 [`shb-paas-update.md`](shb-paas-update.md) |
| 子表里的一行 | 无独立删除命令 | 见「删子表行」说明 |

## 删除一条数据记录

```bash
shb-cli paas form delete --id <content-biz-id> --yes
```

- `--content-biz-id` 来自 `paas form search` 结果;删除前先 `form get` 确认这条记录的内容并向用户复述。
- 后端是批量删除接口(`deleteBatch`),CLI 的 `--id` 传单条;`--yes` 才会真实删除。

## 删除整个表单

```bash
shb-cli paas template delete --template-biz-id <template-biz-id> --yes
```

- **影响面最大的删除**:删的是整个业务模块的表单结构。执行前必须先 `template check-state --template-biz-id <id>` 确认没有在途流程引用,并明确告知用户影响范围。

## 删除流程版本

```bash
shb-cli paas flow version delete --data '<json>' --yes
```

- 只能删非当前启用的版本;先 `flow version list --form-template-id <id>` 看清各版本状态(当前启用版本是 `status: 2` 那条,不要看 `enable` 字段——它所有版本都是 true)。

## 删字段 / 删子表行(注意:没有直接删除命令)

- **删表单字段**:没有单字段删除命令。`template save-fields` 是全量替换——payload 中**遗漏**的既有字段会被逻辑删除,这既是风险也是唯一的"删字段"途径:先 `template fields` 取全量,去掉要删的字段后整体提交,必须带 `--yes --replace-all-fields`。极高风险,漏一个字段就多删一个,执行前逐字段向用户确认。命令与 payload 口径见 [`shb-paas-fields.md`](shb-paas-fields.md)「字段定义写操作」。
- **删子表行**:编辑口径没有行删除标志位,不要臆造字段。确需删行时先与用户确认预期,再评估是否走整条记录的编辑/重建。

## 注意

- 删除类操作统一用 `--yes` 确认(区别于普通写操作的 `--confirm-write`);没有 `--dry-run` 预演时,把"将删除的对象"复述给用户当作人工预演。
- 分不清用户要删的是"一条数据"还是"整个表单(业务模块)"时,**必须先问清**——两者影响天差地别。
