fix(1c-analyst): DELETE через /issue/items работает для любых записей Request
На пути /request/items/{id} DELETE действительно заблокирован
(возвращает Unable access entity), но тот же Id можно убрать
через DELETE /issue/items/{id} — он универсален и работает как
для U-записей (созданных через /issue/items), так и для I-записей
(созданных через /request/items). Эмпирически подтверждено чисткой
33 зомби-записей I-6122..I-6176 в test-api-claude за один проход.
Поправлены разделы:
- devprom-alm-api.md §4 «Удаление» — таблица расширена комментарием
про универсальность /issue/items DELETE
- devprom-alm-api.md §6 «Что НЕ работает» — DELETE request/items
отмечен как «не препятствие»
- SKILL.md §«Критически важно» — корректное правило про DELETE
- meeting-wishes-extraction.md антипаттерн №7 — UI больше не нужен
This commit is contained in:
+3
-2
@@ -219,8 +219,9 @@ description: >
|
||||
- `IssueAuthor` (автор) через API создать нельзя — если нужен новый
|
||||
автор (например, представитель заказчика), заводить через UI.
|
||||
До этого момента временно использовать автора-себя.
|
||||
- DELETE через API работает только для записей, созданных через
|
||||
`/issue/items`. Зомби с префиксом `I-` чистятся только в UI.
|
||||
- DELETE через API работает на эндпоинте `/issue/items/{id}` — и для
|
||||
пожеланий (U-), и для заявок (I-, созданных через `/request/items`).
|
||||
`DELETE /request/items/{id}` заблокирован, но в нём нет нужды.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -117,13 +117,14 @@ Egress-прокси периодически роняет запросы с HTTP
|
||||
|
||||
## 4. Удаление
|
||||
|
||||
| Эндпоинт | DELETE работает? | Поведение |
|
||||
|-----------------------|------------------|-----------|
|
||||
| `/issue/items/{id}` | **ДА** | HTTP 200, запись пропадает из листинга и GET возвращает пустые поля |
|
||||
| `/request/items/{id}` | **НЕТ** | HTTP 200 с `{"error":"Unable access entity"}`, запись остаётся в БД в битом виде (зомби) |
|
||||
| `/requirement/items/{id}` | Не проверялось | — |
|
||||
| Эндпоинт | DELETE работает? | Поведение |
|
||||
|------------------------------|------------------|-----------|
|
||||
| `DELETE /issue/items/{id}` | **ДА — универсальный** | HTTP 200, запись пропадает. Работает для ЛЮБОЙ записи — и для U- (созданных через `/issue/items`), и для I- (созданных через `/request/items`). Сущности `issue` и `request` указывают на один класс `pm_ChangeRequest` в БД, но DELETE разрешён только на пути `issue/items`. |
|
||||
| `DELETE /request/items/{id}` | **НЕТ** | HTTP 200 с `{"error":"Unable access entity"}`, запись не удаляется. Сервер возвращает эту ошибку даже для записей, созданных через `/request/items`. |
|
||||
| `DELETE /requirement/items/{id}` | _Не гарантировано_ | Возвращает HTTP 200 с `{"error":"Unable access entity"}`, но GET после этого иногда показывает запись пустой (UID='', Caption=''). Эффект — неявное удаление / повреждение записи. Использовать с осторожностью. |
|
||||
|
||||
**Практический вывод:** если пожелание создано через `/issue/items` — его можно удалить API. Если случайно создано через `/request/items` — чистить только через UI.
|
||||
**Практический вывод:** для удаления любой записи Request/Issue —
|
||||
всегда `DELETE /issue/items/{id}`, независимо от того, как она была создана.
|
||||
|
||||
## 5. Справочные эндпоинты (read-only для нашего ключа)
|
||||
|
||||
@@ -144,7 +145,7 @@ Egress-прокси периодически роняет запросы с HTTP
|
||||
|---------------------------------------|------------------------------------|-------|
|
||||
| POST `/issueauthor/items` | HTTP 200 + `{"error":"Lack of permissions to create object of IssueAuthor"}` | Только UI: `/pm/<project>/issueauthor` или inline-форма в карточке пожелания |
|
||||
| POST `/user/items` | То же | Только UI |
|
||||
| DELETE `/request/items/{id}` | `{"error":"Unable access entity"}` | Только UI |
|
||||
| DELETE `/request/items/{id}` | `{"error":"Unable access entity"}` | **Не препятствие:** удалять через `DELETE /issue/items/{id}` — он работает для любой записи Request (см. раздел 4). |
|
||||
|
||||
Пытаться обойти через write-only ключ проекта, `api/v1`, `api/v2`, инстанс-путь без `/pm/<project>/` — **бесполезно**, все варианты дают тот же отказ.
|
||||
|
||||
|
||||
@@ -208,7 +208,9 @@ for wish in WISHES:
|
||||
4. **Цитаты в пересказе** — обезличивают пожелание, делают его неотличимым от прочих. _Только прямые цитаты в blockquote._
|
||||
5. **Смешение в одном Пожелании двух разных требований** — потом невозможно оценить объём и трассировать. _Один атомарный запрос — одно Пожелание._
|
||||
6. **Создание IssueAuthor через API** — заблокировано на уровне прав. _Только через UI._
|
||||
7. **Попытка удалить DELETE-ом запись с префиксом I-** — сервер отвечает 200 + error, запись остаётся зомби. _Чистить через UI._
|
||||
7. **Попытка удалить запись через `DELETE /request/items/{id}`** — сервер
|
||||
отвечает 200 + `Unable access entity`. _Удалять через `DELETE /issue/items/{id}`
|
||||
— он работает для любой записи, в том числе для I- (созданных через `/request/items`)._
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user