# Офлайн-обновления

::: page-constructor
blocks:
  - type: content-layout-block
    textContent:
      buttons:
        - text: Классический VCE
          theme: action
          width: 'auto'
        - text: Документация
          theme: outlined
          url: https://docs.ideco.ru/v22/ru/ngfw/settings/server-management/server-update
          width: 'auto'
    resetPaddings: false
    textWidth: l
    size: m
    centered: false
:::


{% cut "Загрузить ISO-файл с офлайн-обновлением системы" %}

```
PUT /sysupdate/iso-upload
```

**Тело запроса:** ISO-файл с обновлением, который можно скачать в [MY.IDECO](https://my.ideco.ru/).

**Ответ на успешный запрос:** 200 ОК

{% endcut %}

{% cut "Получить версию загруженного офлайн-обновления системы" %}

```
GET /sysupdate/iso-upload
```

**Ответ на успешный запрос:**

```json5
{
    "uploaded_iso_version": "SystemVersion" | null
}
```
* `null` - если ISO-файл не был загружен;
* `SystemVersion` - объект с описанием версии для загруженного ISO-файла:

```json5
{
    "major": "integer",
    "minor": "integer",
    "build": "integer",
    "timestamp": "integer",
    "vendor": "string",
    "product": "UTM" | "CC",
    "kind": "FSTEK" | "VPP" | "STANDARD" | "BPF",
    "release_type": "release" | "beta" | "devel"
}
```

* `major` - мажорный номер версии (например, 18);
* `minor` - минорный номер версии (например, 1);
* `build` - номер сборки (например, 42);
* `timestamp` - время сборки версии в формате UNIX timestamp;
* `vendor` - вендор продукта, значения могут быть произвольными;
* `product` - название продукта;
* `kind` - вид продукта;
* `release_type` - тип редакции.

{% endcut %}

{% cut "Запустить обновление из загруженного ISO-файла для офлайн-обновления системы" %}

```
POST /sysupdate/iso-install
```

**Ответ на успешный запрос:** 200 ОК

{% endcut %}

{% cut "Офлайн-обновление баз GeoIP, Iplist, Suricata" %}

```
PUT /api/offline-update
```

**Тело запроса:** архивный файл с обновлением, который можно скачать в [MY.IDECO](https://my.ideco.ru/). Более подробная информация представлена в [статье](https://docs.ideco.ru/v22/ru/ngfw/settings/server-management/server-update). Архивный файл содержит:

* `ideco-header.json` - json-файл, словарь, содержащий ключи:
  * `hwid` - должно совпадать с HWID NGFW, на который загружается обновление;
  * `pack-type` - значение должно быть равно `suricata-iplist-geoip` для архива с обновлением базы данных GeoIP, Iplist, Suricata;
  * `geoip-timestamp` - timestamp создания базы GeoIP;
  * `iplist-timestamp` - timestamp создания базы Iplist;
  * `version` - значения атрибутов версии.
* `license.jwt` - файл с лицензией для этого NGFW, содержит подписанную лицензию в формате jwt;
* `ideco-geoip.mmdb` - файл обновления базы GeoIP;
* `iplist.tar.gz` - файл обновления списка IP-адресов;
* `suricata-rules.tar.gz` - файл обновления правил Suricata.

Файлы должны быть представлены именно в такой последовательности, других файлов в архиве быть не должно.

**Ответ на успешный запрос:** 200 ОК

{% endcut %}

{% cut "Офлайн-обновление Контент-фильтра" %}

```
PUT /content-filter/update_archive_upload
```

**Тело запроса:** архивный файл с офлайн-обновлением для **Контент-фильтра**, который можно скачать в [MY.IDECO](https://my.ideco.ru/). Более подробная информация представлена в [статье](https://docs.ideco.ru/v22/ru/ngfw/settings/server-management/server-update).

**Ответ на успешный запрос:** 200 ОК

{% endcut %}
