feat: добавить версионирование source image

- добавлен endpoint создания новой версии asset
- реализовано переключение currentVersion через image_asset_versions
- обновлена документация business API и dev smoke flow
This commit is contained in:
2026-05-05 13:31:45 +03:00
parent 1c0e8277a3
commit 3ec1e51bea
6 changed files with 183 additions and 2 deletions

View File

@@ -110,12 +110,13 @@ DELETE /allowed-hosts/:id
POST /assets
GET /assets
GET /assets/:publicId
POST /assets/:publicId/versions
GET /assets/:publicId/variants
POST /assets/:publicId/variants
DELETE /assets/:id
```
Сейчас реализованы `POST /assets`, `GET /assets`, `GET /assets/:publicId`, `GET /assets/:publicId/variants`, `POST /assets/:publicId/variants`.
Сейчас реализованы `POST /assets`, `GET /assets`, `GET /assets/:publicId`, `POST /assets/:publicId/versions`, `GET /assets/:publicId/variants`, `POST /assets/:publicId/variants`.
`POST /assets` request:
@@ -167,6 +168,32 @@ Responsibilities:
`GET /assets/:publicId/variants` возвращает rows из `image_variants` с public Gateway URL, S3 key и status.
`POST /assets/:publicId/versions` request:
```json
{
"sourceUrl": "https://storage.yandexcloud.net/shared1318/img/1.jpg"
}
```
Response:
```json
{
"assetId": "59fcf4f6-9891-4df4-8bb7-a4dbe570bb66",
"versionId": "3b5da974-bb7f-4d73-b172-d6ad9c244528",
"publicId": "asset_demo",
"previousVersion": 1,
"version": 2,
"sourceUrl": "https://storage.yandexcloud.net/shared1318/img/1.jpg",
"sourceHost": "storage.yandexcloud.net",
"imageBasePath": "/images/asset_demo/v2/card",
"createdAt": "2026-05-05T12:00:00.000Z"
}
```
Новая версия становится `currentVersion` asset. Старые Gateway URLs с `/v1/` остаются immutable и не требуют purge.
## Variants
```text

View File

@@ -93,6 +93,14 @@ curl -sS http://localhost:3001/api/assets/asset_demo
curl -sS http://localhost:3001/api/assets/asset_demo/variants
```
Создать новую source version для asset:
```bash
curl -sS -X POST http://localhost:3001/api/assets/asset_demo/versions \
-H 'content-type: application/json' \
-d '{"sourceUrl":"https://storage.yandexcloud.net/shared1318/img/1.jpg"}'
```
Явно поставить jobs на генерацию family variants без Gateway lazy request:
```bash