Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion content/docs/api-service/operator-cli.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ service accepts the token, and which versions the service already has.
| `--region` | — | Region. |
| `--prefix` | — | Key prefix. |
| `--force-path-style` | false | Path-style addressing (MinIO, RustFS). |
| `--addr` | `localhost:23410` | Service gRPC address. |
| `--addr` | `localhost:23410` | Service gRPC address; `host:port` is resolved by the system resolver, `dns:///…` by grpc-go's. |
| `--token` | `$EASYP_TOKEN` | Write token. |
| `--tls-ca` | system store | CA that signed the server certificate. |
| `--tls-cert`, `--tls-key` | — | Client certificate and key, for mutual TLS. |
Expand Down
2 changes: 1 addition & 1 deletion content/docs/api-service/operator-cli.ru.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ Docker. Каждая версия из `plugin.yaml` собирается с `--
| `--region` | — | Регион. |
| `--prefix` | — | Префикс ключей. |
| `--force-path-style` | false | Path-style адресация (MinIO, RustFS). |
| `--addr` | `localhost:23410` | gRPC-адрес сервиса. |
| `--addr` | `localhost:23410` | gRPC-адрес сервиса; `host:port` разрешает системный резолвер, `dns:///…` — резолвер grpc-go. |
| `--token` | `$EASYP_TOKEN` | Токен записи. |
| `--tls-ca` | системное хранилище | CA, подписавший сертификат сервера. |
| `--tls-cert`, `--tls-key` | — | Клиентский сертификат и ключ для взаимного TLS. |
Expand Down
2 changes: 1 addition & 1 deletion content/docs/api-service/quickstart.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ services:
retries: 30

service:
image: ghcr.io/easyp-tech/service:v1.2.0
image: ghcr.io/easyp-tech/service:v1.2.1
command: ["service", "start"]
depends_on:
postgres:
Expand Down
2 changes: 1 addition & 1 deletion content/docs/api-service/quickstart.ru.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ services:
retries: 30

service:
image: ghcr.io/easyp-tech/service:v1.2.0
image: ghcr.io/easyp-tech/service:v1.2.1
command: ["service", "start"]
depends_on:
postgres:
Expand Down
40 changes: 39 additions & 1 deletion content/docs/api-service/upgrading.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,43 @@ A rename is handled without breaking anyone: the old configuration key keeps
working for one release while warning, naming both spellings and the line to
change, and only then stops.

## v1.2.0 → v1.2.1

### Unpacked copies without a checksum marker are fetched once

A version directory with no `.sha256` marker beside it — unpacked before
v1.2.0, or bind-mounted from a `plugins build` tree — used to count as current.
It is now fetched again the first time it is used, once per replica, and gets a
marker. Plan for the disk: each replica downloads every version it serves once
more, within `registry.cache_max_bytes`. Versions registered without a checksum
(`plugins publish --plugins-dir`) are unaffected.

### A relative `plugins_dir` is resolved at start

`plugins_dir: ./plugins` now resolves to an absolute path before commands are
derived. Versions registered with a relative command under v1.2.0 still fail
with `no such file or directory`; repair them with
`easyp-svc plugins publish --plugins-dir <dir> --force`.

### The plugin limit holds under concurrent registrations

The licence plugin limit is now counted and enforced in the same transaction as
the insert. Before, parallel `CreatePlugin` calls could pass the check together
and land more versions than the limit allows; such extra rows stay, but no new
version is accepted until the count is below the limit.

### Clients resolve plain addresses with the system resolver

The SDK, `easyp-svc` and `easyp generate` dial a plain `host:port` through
`passthrough:///`, so the operating system resolves the name when connecting. A
host without a port gets 443, as before. Prefix `dns:///` to use grpc-go's own
resolver.

### The rate limit says how long to wait

A refused request reads `rate limit exceeded for <ip>, retry after <n>s`. The
`x-ratelimit-reset` trailer still carries the unix time the bucket refills by.

## v1.1.x → v1.2.0

### `plugins publish` replaces `push`, `register` and `pack`
Expand Down Expand Up @@ -74,7 +111,8 @@ republish, not to retry. A client matching on reasons gains one; one matching on
`plugins publish --force` replaces a version's config with the new checksum, and
each replica refetches its unpacked copy on next use — it keeps a `.sha256`
marker beside it. Copies unpacked by an older service have no marker and count
as current; republish a version once to bring its copies in line.
as current; republish a version once to bring its copies in line. From v1.2.1 a
copy without a marker is fetched once on its own.

## v1.0.0 → v1.0.2

Expand Down
40 changes: 39 additions & 1 deletion content/docs/api-service/upgrading.ru.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,44 @@ description: "Заметки по обновлению API Service от рели
работать один релиз, предупреждая и называя оба написания и строку, которую надо
поправить, и только после этого перестаёт.

## v1.2.0 → v1.2.1

### Копии без маркера контрольной суммы перекачиваются один раз

Каталог версии без маркера `.sha256` — распакованный до v1.2.0 или
смонтированный из дерева `plugins build` — раньше считался актуальным. Теперь
при первом использовании он скачивается заново, по разу на реплику, и получает
маркер. Учтите диск: каждая реплика ещё раз скачает каждую версию, которую
обслуживает, в пределах `registry.cache_max_bytes`. Версии, зарегистрированные
без контрольной суммы (`plugins publish --plugins-dir`), это не затрагивает.

### Относительный `plugins_dir` разрешается при старте

`plugins_dir: ./plugins` теперь приводится к абсолютному пути до вывода команды.
Версии, зарегистрированные в v1.2.0 с относительной командой, по-прежнему падают
с `no such file or directory`; почините их через
`easyp-svc plugins publish --plugins-dir <dir> --force`.

### Лимит плагинов выдерживает параллельные регистрации

Лимит плагинов лицензии теперь считается и проверяется в одной транзакции со
вставкой. Раньше параллельные `CreatePlugin` могли пройти проверку вместе и
записать больше версий, чем позволяет лимит; такие лишние строки остаются, но
новые версии не принимаются, пока их число не опустится ниже лимита.

### Клиенты разрешают обычные адреса системным резолвером

SDK, `easyp-svc` и `easyp generate` подключаются к обычному `host:port` через
`passthrough:///`, и имя разрешает операционная система в момент соединения.
Хост без порта, как и раньше, получает 443. Чтобы использовать собственный
резолвер grpc-go, укажите префикс `dns:///`.

### Rate limit говорит, сколько ждать

Отклонённый запрос получает `rate limit exceeded for <ip>, retry after <n>s`.
Трейлер `x-ratelimit-reset` по-прежнему содержит unix-время, к которому корзина
наполнится.

## v1.1.x → v1.2.0

### `plugins publish` вместо `push`, `register` и `pack`
Expand Down Expand Up @@ -75,7 +113,7 @@ description: "Заметки по обновлению API Service от рели
и каждая реплика перекачивает свою распакованную копию при следующем
использовании — рядом с ней лежит маркер `.sha256`. Копии, распакованные старым
сервисом, маркера не имеют и считаются актуальными; перепубликуйте версию один
раз, чтобы выровнять их.
раз, чтобы выровнять их. С v1.2.1 копия без маркера перекачивается один раз сама.

## v1.0.0 → v1.0.2

Expand Down
Loading