diff --git a/.github/RELEASE_CHECKLIST.md b/.github/RELEASE_CHECKLIST.md
index 3ecb9984f679..5a74f7112b90 100644
--- a/.github/RELEASE_CHECKLIST.md
+++ b/.github/RELEASE_CHECKLIST.md
@@ -6,18 +6,18 @@
2. Check issues and pull requests, update milestones and labels.
3. Check if there are breaking changes or anything that should be reflected in the changelog and/or user documentation.
4. Create draft release on GitHub with autogenerated release notes.
-5. Tweak generated release notes:
+5. Copy release notes to `CHANGELOG.md` and tweak them:
- Ensure that "This section should be empty" section does not exist.
- Add "All closed issues and pull requests" and "All commits", remove "Full Changelog".
- Tweak spacing, headers levels.
+ - Add "What's Changed" section if needed.
- Sort items within sections according to importance and/or alphabetically.
-6. Update CHANGELOG.md with the same release notes:
- - Check spacing, header levels.
-7. Run `task docs-version VERSION=X.Y`.
+6. Run `task docs-version VERSION=X.Y`.
Update `versions` in `docusaurus.config.js`.
Remove the oldest version from `versioned_docs`, `versioned_sidebars`, `versions.json`.
-8. Run `task docs-fmt`.
-9. Commit and push changes, check `git status`.
+7. Run `task docs-fmt`.
+8. Commit and push changes to the PR.
+9. Merge PR, pull and check `git status`.
## Git tag
@@ -30,7 +30,7 @@
## Release
-1. Trim draft release notes.
+1. Copy release notes from `CHANGELOG.md` and trim them.
2. Wait for the [packages CI build](https://github.com/FerretDB/FerretDB/actions/workflows/packages.yml?query=event%3Apush)
to finish.
3. Upload binaries and packages to the draft release.
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5714d6f63b37..31e8338cadce 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,108 @@
+## [v1.23.0](https://github.com/FerretDB/FerretDB/releases/tag/v1.23.0) (2024-07-25)
+
+### What's Changed
+
+#### Embeddable package
+
+This release switches from the [`zap` logging package](https://github.com/uber-go/zap) to the standard [`slog`](https://pkg.go.dev/log/slog).
+If the logger was configured by Go programs that import [`github.com/FerretDB/FerretDB/ferretdb` package](https://pkg.go.dev/github.com/FerretDB/FerretDB/ferretdb), they should configure the `SLogger` field instead.
+Setting the old `Logger` field will make the program panic and make the issue immediately noticeable.
+
+The next release will completely remove `zap` and rename `SLogger` to just `Logger`.
+
+#### Initial OpenTelemetry tracing support
+
+This release adds initial support for sending OpenTelemetry traces to the OTLP endpoint.
+The set of spans and their attributes is not stable yet and will change over time.
+
+All improvements in observability in this release (OpenTelemetry traces, Kubernetes probes, debug archive)
+are documented [there](https://docs.ferretdb.io/configuration/observability/).
+
+#### Experimental Systemd configuration in `.deb` and `.rpm` packages
+
+This release adds initial unit files for `systemd` that auto-start FerretDB.
+They are likely to change in the future in incompatible ways; for example, we may switch to using a non-root user.
+
+### New Features đ
+
+- Add Kubernetes liveness probe by @noisersup in https://github.com/FerretDB/FerretDB/pull/4378
+- Add Kubernetes readiness probe by @noisersup in https://github.com/FerretDB/FerretDB/pull/4426
+- Implement Docker healthcheck by @noisersup in https://github.com/FerretDB/FerretDB/pull/4364
+- Add OpenTelemetry traces and spans by @AlekSi in https://github.com/FerretDB/FerretDB/pull/4477
+- Send OpenTelemetry traces and spans to OTLP endpoint by @AlekSi in https://github.com/FerretDB/FerretDB/pull/4484
+- Implement `/debug/archive` handler by @sachinpuranik in https://github.com/FerretDB/FerretDB/pull/3895
+- Provide systemd unit file in `.deb` and `.rpm` packages by @noisersup in https://github.com/FerretDB/FerretDB/pull/4478
+
+### Enhancements đ
+
+- Improve support for named loggers by @AlekSi in https://github.com/FerretDB/FerretDB/pull/4432
+
+### Documentation đ
+
+- Document Kubernetes probes by @AlekSi in https://github.com/FerretDB/FerretDB/pull/4424
+- Refactor and document `/debug/archive` handler by @AlekSi in https://github.com/FerretDB/FerretDB/pull/4485
+- Document logging by @AlekSi in https://github.com/FerretDB/FerretDB/pull/4436
+- Add release blog post for FerretDB v.1.22.0 by @Fashander in https://github.com/FerretDB/FerretDB/pull/4401
+- Add blog post on running FerretDB and CloudNativePG on Kubernetes by @Fashander in https://github.com/FerretDB/FerretDB/pull/4377
+- Add blogpost on "monitoring FerretDB performance using Coroot" by @Fashander in https://github.com/FerretDB/FerretDB/pull/4279
+- Crush `.png` images by @AlekSi in https://github.com/FerretDB/FerretDB/pull/4441
+- Remove broken links by @AlekSi in https://github.com/FerretDB/FerretDB/pull/4433
+
+### Other Changes đ¤
+
+- Replace deprecated syntax in Dockerfiles by @AlekSi in https://github.com/FerretDB/FerretDB/pull/4397
+- Update comments about interfaces by @AlekSi in https://github.com/FerretDB/FerretDB/pull/4405
+- Check database name for authentication by @chilagrow in https://github.com/FerretDB/FerretDB/pull/4402
+- Refactor runnables by @AlekSi in https://github.com/FerretDB/FerretDB/pull/4404
+- Add tests for `ctxutil.Sigterm` by @AlekSi in https://github.com/FerretDB/FerretDB/pull/4406
+- Setup OpenTelemetry exporter for FerretDB by @rumyantseva in https://github.com/FerretDB/FerretDB/pull/4380
+- Extract `types` and `zap` code into separate files by @AlekSi in https://github.com/FerretDB/FerretDB/pull/4408
+- Bump Go and deps by @AlekSi in https://github.com/FerretDB/FerretDB/pull/4416
+- Implement Kubernetes startup probe by @noisersup in https://github.com/FerretDB/FerretDB/pull/4399
+- Disable OTEL in tests where collection name might have non-UTF-8 symbols by @rumyantseva in https://github.com/FerretDB/FerretDB/pull/4423
+- Stop Otel exporter gracefully in `envtool` by @AlekSi in https://github.com/FerretDB/FerretDB/pull/4425
+- Include `OpReply` error handling by @chilagrow in https://github.com/FerretDB/FerretDB/pull/4420
+- Test `authSource` by @chilagrow in https://github.com/FerretDB/FerretDB/pull/4407
+- Return `connectionStatus` command `db` field by @chilagrow in https://github.com/FerretDB/FerretDB/pull/4419
+- Implement checkswitch to handle regular switches by @PaveenV in https://github.com/FerretDB/FerretDB/pull/4381
+- Cleanup `checkswitch` handling by @chilagrow in https://github.com/FerretDB/FerretDB/pull/4434
+- Bump deps by @AlekSi in https://github.com/FerretDB/FerretDB/pull/4446
+- Ignore `$readPreferences` for `insert` by @AlekSi in https://github.com/FerretDB/FerretDB/pull/4440
+- Readiness probe cleanup by @noisersup in https://github.com/FerretDB/FerretDB/pull/4447
+- Update linters configuration by @AlekSi in https://github.com/FerretDB/FerretDB/pull/4451
+- Add support for named `slog` loggers by @chilagrow in https://github.com/FerretDB/FerretDB/pull/4435
+- Increase setup timeout in tests by @AlekSi in https://github.com/FerretDB/FerretDB/pull/4454
+- Port pgx logger by @AlekSi in https://github.com/FerretDB/FerretDB/pull/4450
+- Handle `authSource` in low level driver by @chilagrow in https://github.com/FerretDB/FerretDB/pull/4449
+- Use single definition of order for `checkswitch` by @chilagrow in https://github.com/FerretDB/FerretDB/pull/4452
+- Clarify the meaning of the passed context by @AlekSi in https://github.com/FerretDB/FerretDB/pull/4455
+- Remove `FuncCall` by @AlekSi in https://github.com/FerretDB/FerretDB/pull/4476
+- Use `slog` in `clientconn` package by @chilagrow in https://github.com/FerretDB/FerretDB/pull/4457
+- Use `slog` in `postgresql` backend by @chilagrow in https://github.com/FerretDB/FerretDB/pull/4466
+- Use `slog` in `sqlite` backend by @chilagrow in https://github.com/FerretDB/FerretDB/pull/4467
+- Use `slog` in `mysql` and `hana` backends by @chilagrow in https://github.com/FerretDB/FerretDB/pull/4463
+- Use `slog` in `oplog` and `cursor` packages by @chilagrow in https://github.com/FerretDB/FerretDB/pull/4471
+- Use `slog` in `otel` by @chilagrow in https://github.com/FerretDB/FerretDB/pull/4474
+- Use `slog` in `debug` package by @chilagrow in https://github.com/FerretDB/FerretDB/pull/4473
+- Use `slog` in integration tests by @chilagrow in https://github.com/FerretDB/FerretDB/pull/4481
+- Use `slog` in `main.go` and embedded `ferretdb` package by @chilagrow in https://github.com/FerretDB/FerretDB/pull/4462
+- Use `slog` in `fsql` by @chilagrow in https://github.com/FerretDB/FerretDB/pull/4464
+- Use `slog` in handler by @chilagrow in https://github.com/FerretDB/FerretDB/pull/4470
+- Use `slog` in envtool by @chilagrow in https://github.com/FerretDB/FerretDB/pull/4480
+- Implement `slog.LogValuer` interface for `types` package by @chilagrow in https://github.com/FerretDB/FerretDB/pull/4479
+- Drop old dependency by @AlekSi in https://github.com/FerretDB/FerretDB/pull/4486
+- Cleanup logging by @chilagrow in https://github.com/FerretDB/FerretDB/pull/4489
+
+### New Contributors
+
+- @PaveenV made their first contribution in https://github.com/FerretDB/FerretDB/pull/4381
+
+[All closed issues and pull requests](https://github.com/FerretDB/FerretDB/milestone/65?closed=1).
+[All commits](https://github.com/FerretDB/FerretDB/compare/v1.22.0...v1.23.0).
+
## [v1.22.0](https://github.com/FerretDB/FerretDB/releases/tag/v1.22.0) (2024-06-26)
### What's Changed
diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js
index 22f4cf8b1bae..6287c45682e6 100644
--- a/website/docusaurus.config.js
+++ b/website/docusaurus.config.js
@@ -49,7 +49,7 @@ const config = {
versions: {
// the latest minus one minor
- 'v1.21': {
+ 'v1.22': {
banner: 'none',
},
},
diff --git a/website/versioned_docs/version-v1.20/configuration/observability.md b/website/versioned_docs/version-v1.20/configuration/observability.md
deleted file mode 100644
index bbcaea393508..000000000000
--- a/website/versioned_docs/version-v1.20/configuration/observability.md
+++ /dev/null
@@ -1,45 +0,0 @@
----
-sidebar_position: 3
-description: Observability
----
-
-# Observability
-
-## Logging
-
-The log level and format can be adjusted by [configuration flags](flags.md#miscellaneous).
-
-Please note that the structured log format is not stable yet; field names and formatting of values might change in minor releases.
-
-### Docker logs
-
-If Docker was launched with [our quick local setup with Docker Compose](../quickstart-guide/docker.md#postgresql-setup-with-docker-compose),
-the following command can be used to fetch the logs.
-
-```sh
-docker compose logs ferretdb
-```
-
-Otherwise, you can check a list of running Docker containers with `docker ps`
-and get logs with `docker logs`:
-
-```sh
-$ docker ps
-CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
-13db4c8800d3 postgres "docker-entrypoint.sâŚ" About a minute ago Up 59 seconds 5432/tcp my-postgres
-44fe6f4c3527 ghcr.io/ferretdb/ferretdb "/ferretdb" About a minute ago Up 59 seconds 8080/tcp, 27018/tcp, 0.0.0.0:27017->27017/tcp my-ferretdb
-
-$ docker logs my-ferretdb
-```
-
-### Binary executable logs
-
-FerretDB writes logs to the standard error (`stderr`) stream.
-
-## Metrics
-
-FerretDB exposes metrics in Prometheus format on the debug handler on `http://127.0.0.1:8088/debug/metrics` by default.
-There is no need to use an external exporter.
-The host and port can be changed with [`--debug-addr` flag](flags.md#interfaces).
-
-Please note that the set of metrics is not stable yet; metric and label names and formatting of values might change in minor releases.
diff --git a/website/versioned_docs/version-v1.20/aggregation-operations/_category_.yml b/website/versioned_docs/version-v1.23/aggregation-operations/_category_.yml
similarity index 100%
rename from website/versioned_docs/version-v1.20/aggregation-operations/_category_.yml
rename to website/versioned_docs/version-v1.23/aggregation-operations/_category_.yml
diff --git a/website/versioned_docs/version-v1.20/aggregation-operations/aggregation-pipeline-and-commands.md b/website/versioned_docs/version-v1.23/aggregation-operations/aggregation-pipeline-and-commands.md
similarity index 100%
rename from website/versioned_docs/version-v1.20/aggregation-operations/aggregation-pipeline-and-commands.md
rename to website/versioned_docs/version-v1.23/aggregation-operations/aggregation-pipeline-and-commands.md
diff --git a/website/versioned_docs/version-v1.20/aggregation-operations/aggregation-stages.md b/website/versioned_docs/version-v1.23/aggregation-operations/aggregation-stages.md
similarity index 100%
rename from website/versioned_docs/version-v1.20/aggregation-operations/aggregation-stages.md
rename to website/versioned_docs/version-v1.23/aggregation-operations/aggregation-stages.md
diff --git a/website/versioned_docs/version-v1.20/basic-operations/_category_.yml b/website/versioned_docs/version-v1.23/basic-operations/_category_.yml
similarity index 100%
rename from website/versioned_docs/version-v1.20/basic-operations/_category_.yml
rename to website/versioned_docs/version-v1.23/basic-operations/_category_.yml
diff --git a/website/versioned_docs/version-v1.20/basic-operations/create.md b/website/versioned_docs/version-v1.23/basic-operations/create.md
similarity index 100%
rename from website/versioned_docs/version-v1.20/basic-operations/create.md
rename to website/versioned_docs/version-v1.23/basic-operations/create.md
diff --git a/website/versioned_docs/version-v1.20/basic-operations/delete.md b/website/versioned_docs/version-v1.23/basic-operations/delete.md
similarity index 100%
rename from website/versioned_docs/version-v1.20/basic-operations/delete.md
rename to website/versioned_docs/version-v1.23/basic-operations/delete.md
diff --git a/website/versioned_docs/version-v1.20/basic-operations/performing.md b/website/versioned_docs/version-v1.23/basic-operations/performing.md
similarity index 100%
rename from website/versioned_docs/version-v1.20/basic-operations/performing.md
rename to website/versioned_docs/version-v1.23/basic-operations/performing.md
diff --git a/website/versioned_docs/version-v1.20/basic-operations/read.md b/website/versioned_docs/version-v1.23/basic-operations/read.md
similarity index 97%
rename from website/versioned_docs/version-v1.20/basic-operations/read.md
rename to website/versioned_docs/version-v1.23/basic-operations/read.md
index bc43096aaa90..3f5fc2869464 100644
--- a/website/versioned_docs/version-v1.20/basic-operations/read.md
+++ b/website/versioned_docs/version-v1.23/basic-operations/read.md
@@ -61,10 +61,10 @@ Run `db.scientists.find()` to see the complete list of documents in the collecti
### Retrieve documents based on a specific query
Using the `find()` command, you can also filter a collection for only the documents that match the provided query.
-For example, find the document with the field `born` set as 1857.
+For example, find the document with the field `born` set as 1847.
```js
-db.scientists.find({ born: 1857 })
+db.scientists.find({ born: 1847 })
```
### Retrieve documents using operator queries
diff --git a/website/versioned_docs/version-v1.20/basic-operations/update.md b/website/versioned_docs/version-v1.23/basic-operations/update.md
similarity index 100%
rename from website/versioned_docs/version-v1.20/basic-operations/update.md
rename to website/versioned_docs/version-v1.23/basic-operations/update.md
diff --git a/website/versioned_docs/version-v1.20/configuration/_category_.yml b/website/versioned_docs/version-v1.23/configuration/_category_.yml
similarity index 100%
rename from website/versioned_docs/version-v1.20/configuration/_category_.yml
rename to website/versioned_docs/version-v1.23/configuration/_category_.yml
diff --git a/website/versioned_docs/version-v1.20/configuration/flags.md b/website/versioned_docs/version-v1.23/configuration/flags.md
similarity index 69%
rename from website/versioned_docs/version-v1.20/configuration/flags.md
rename to website/versioned_docs/version-v1.23/configuration/flags.md
index b9991c2f4768..7a240cfcd84c 100644
--- a/website/versioned_docs/version-v1.20/configuration/flags.md
+++ b/website/versioned_docs/version-v1.23/configuration/flags.md
@@ -32,19 +32,19 @@ Some default values are overridden in [our Docker image](../quickstart-guide/doc
## Interfaces
-| Flag | Description | Environment Variable | Default Value |
-| ------------------------ | ------------------------------------------------------------------------------------- | ------------------------------- | -------------------------------------------- |
-| `--listen-addr` | Listen TCP address | `FERRETDB_LISTEN_ADDR` | `127.0.0.1:27017`
(`:27017` for Docker) |
-| `--listen-unix` | Listen Unix domain socket path | `FERRETDB_LISTEN_UNIX` | |
-| `--listen-tls` | Listen TLS address (see [here](../security/tls-connections.md)) | `FERRETDB_LISTEN_TLS` | |
-| `--listen-tls-cert-file` | TLS cert file path | `FERRETDB_LISTEN_TLS_CERT_FILE` | |
-| `--listen-tls-key-file` | TLS key file path | `FERRETDB_LISTEN_TLS_KEY_FILE` | |
-| `--listen-tls-ca-file` | TLS CA file path | `FERRETDB_LISTEN_TLS_CA_FILE` | |
-| `--proxy-addr` | Proxy address | `FERRETDB_PROXY_ADDR` | |
-| `--proxy-tls-cert-file` | Proxy TLS cert file path | `FERRETDB_PROXY_TLS_CERT_FILE` | |
-| `--proxy-tls-key-file` | Proxy TLS key file path | `FERRETDB_PROXY_TLS_KEY_FILE` | |
-| `--proxy-tls-ca-file` | Proxy TLS CA file path | `FERRETDB_PROXY_TLS_CA_FILE` | |
-| `--debug-addr` | Listen address for HTTP handlers for metrics, pprof, etc
(set to `-` to disable) | `FERRETDB_DEBUG_ADDR` | `127.0.0.1:8088`
(`:8088` for Docker) |
+| Flag | Description | Environment Variable | Default Value |
+| ------------------------ | ----------------------------------------------------------------------------------------- | ------------------------------- | -------------------------------------------- |
+| `--listen-addr` | Listen TCP address | `FERRETDB_LISTEN_ADDR` | `127.0.0.1:27017`
(`:27017` for Docker) |
+| `--listen-unix` | Listen Unix domain socket path | `FERRETDB_LISTEN_UNIX` | |
+| `--listen-tls` | Listen TLS address (see [here](../security/tls-connections.md)) | `FERRETDB_LISTEN_TLS` | |
+| `--listen-tls-cert-file` | TLS cert file path | `FERRETDB_LISTEN_TLS_CERT_FILE` | |
+| `--listen-tls-key-file` | TLS key file path | `FERRETDB_LISTEN_TLS_KEY_FILE` | |
+| `--listen-tls-ca-file` | TLS CA file path | `FERRETDB_LISTEN_TLS_CA_FILE` | |
+| `--proxy-addr` | Proxy address | `FERRETDB_PROXY_ADDR` | |
+| `--proxy-tls-cert-file` | Proxy TLS cert file path | `FERRETDB_PROXY_TLS_CERT_FILE` | |
+| `--proxy-tls-key-file` | Proxy TLS key file path | `FERRETDB_PROXY_TLS_KEY_FILE` | |
+| `--proxy-tls-ca-file` | Proxy TLS CA file path | `FERRETDB_PROXY_TLS_CA_FILE` | |
+| `--debug-addr` | Listen address for HTTP handlers for metrics, profiling, etc
(set to `-` to disable) | `FERRETDB_DEBUG_ADDR` | `127.0.0.1:8088`
(`:8088` for Docker) |
## Backend handlers
@@ -103,12 +103,13 @@ For example: `file:./?mode=memory`.
## Miscellaneous
-| Flag | Description | Environment Variable | Default Value |
-| --------------------- | ------------------------------------------------- | ----------------------- | ------------- |
-| `--log-level` | Log level: 'debug', 'info', 'warn', 'error' | `FERRETDB_LOG_LEVEL` | `info` |
-| `--[no-]log-uuid` | Add instance UUID to all log messages | `FERRETDB_LOG_UUID` | |
-| `--[no-]metrics-uuid` | Add instance UUID to all metrics | `FERRETDB_METRICS_UUID` | |
-| `--telemetry` | Enable or disable [basic telemetry](telemetry.md) | `FERRETDB_TELEMETRY` | `undecided` |
+| Flag | Description | Environment Variable | Default Value |
+| --------------------- | ------------------------------------------------------------------------------- | -------------------------- | ---------------- |
+| `--log-level` | Log level: 'debug', 'info', 'warn', 'error' | `FERRETDB_LOG_LEVEL` | `info` |
+| `--[no-]log-uuid` | Add instance UUID to all log messages | `FERRETDB_LOG_UUID` | |
+| `--[no-]metrics-uuid` | Add instance UUID to all metrics | `FERRETDB_METRICS_UUID` | |
+| `--otel-traces-url` | OpenTelemetry OTLP/HTTP traces endpoint URL (e.g. `http://host:4318/v1/traces`) | `FERRETDB_OTEL_TRACES_URL` | empty (disabled) |
+| `--telemetry` | Enable or disable [basic telemetry](telemetry.md) | `FERRETDB_TELEMETRY` | `undecided` |
diff --git a/website/versioned_docs/version-v1.23/configuration/observability.md b/website/versioned_docs/version-v1.23/configuration/observability.md
new file mode 100644
index 000000000000..4e0035ae7466
--- /dev/null
+++ b/website/versioned_docs/version-v1.23/configuration/observability.md
@@ -0,0 +1,134 @@
+---
+sidebar_position: 3
+description: Observability
+---
+
+# Observability
+
+## Logging
+
+FerretDB writes structured logs to the standard error (`stderr`) stream.
+The most recent entries are also available via `getLog` command.
+
+:::note
+
+
+
+Structured log format is not stable yet; field names and formatting of values might change in minor releases.
+:::
+
+FerretDB provides the following log formats:
+
+
+
+- `console` is a human-readable format with optional colors;
+- `text` is machine-readable [logfmt](https://brandur.org/logfmt)-like format
+ (powered by [Go's `slog.TextHandler`](https://pkg.go.dev/log/slog#TextHandler));
+- `json` if machine-readable JSON format
+ (powered by [Go's `slog.JSONHandler`](https://pkg.go.dev/log/slog#JSONHandler)).
+
+There are four logging levels:
+
+
+
+- `error` is used for errors that can't be handled gracefully
+ and typically result in client connection being closed;
+- `warn` is used for errors that can be handled gracefully
+ and typically result in an error being returned to the client (without closing the connection);
+- `info` is used for various information messages;
+- `debug` should only be used for debugging.
+
+The default level is `info`, except for [debug builds](https://pkg.go.dev/github.com/FerretDB/FerretDB/build/version#hdr-Debug_builds) that default to `debug`.
+
+:::caution
+`debug`-level messages include complete query and response bodies, full error messages, authentication credentials,
+and other sensitive information.
+
+Since logs are often retained by the infrastructure
+(and FerretDB itself makes recent entries available via the `getLog` command),
+that poses a security risk.
+Additionally, writing out a significantly larger number of log messages affects FerretDB performance.
+For those reasons, the `debug` level should not be enabled in production environments.
+:::
+
+The format and level can be adjusted by [configuration flags](flags.md#miscellaneous).
+
+### Docker logs
+
+If Docker was launched with [our quick local setup with Docker Compose](../quickstart-guide/docker.md#postgresql-setup-with-docker-compose),
+the following command can be used to fetch the logs.
+
+```sh
+docker compose logs ferretdb
+```
+
+Otherwise, you can check a list of running Docker containers with `docker ps`
+and get logs with `docker logs`:
+
+```sh
+$ docker ps
+CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
+13db4c8800d3 postgres "docker-entrypoint.sâŚ" About a minute ago Up 59 seconds 5432/tcp my-postgres
+44fe6f4c3527 ghcr.io/ferretdb/ferretdb "/ferretdb" About a minute ago Up 59 seconds 8088/tcp, 27018/tcp, 0.0.0.0:27017->27017/tcp my-ferretdb
+
+$ docker logs my-ferretdb
+```
+
+## OpenTelemetry traces
+
+FerretDB can be configured to send OpenTelemetry traces to the specified HTTP/OTLP URL (e.g. `http://host:4318/v1/traces`).
+It can be changed with [`--otel-traces-url` flag](flags.md#miscellaneous).
+
+:::note
+
+
+
+Trace format is not stable yet; attribute names and values might change in minor releases.
+:::
+
+## Debug handler
+
+FerretDB exposes various HTTP endpoints with the debug handler on `http://127.0.0.1:8088/debug/` by default.
+The host and port can be changed with [`--debug-addr` flag](flags.md#interfaces).
+
+### Archive
+
+FerretDB serves a zip archive with debugging information on the `/debug/archive` endpoint.
+Information in the archive helps us debug performance and compatibility problems.
+
+:::caution
+Please do not publish the whole archive in our [public community places](/#community), as it contains sensitive information.
+:::
+
+### Metrics
+
+FerretDB exposes metrics in Prometheus format on the `/debug/metrics` endpoint.
+There is no need to use an external exporter.
+
+:::note
+
+
+
+The set of metrics is not stable yet; metric and label names and value formatting might change in minor releases.
+:::
+
+### Probes
+
+FerretDB exposes the following probes that can be used for
+[Kubernetes health checks](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/)
+and similar use cases.
+They return HTTP code 2xx if a probe is successful and 5xx otherwise.
+The response body is always empty, but additional information may be present in logs.
+
+- `/debug/livez` is a liveness probe.
+ It succeeds if FerretDB is ready to accept new connections from MongoDB protocol clients.
+ It does not check if the connection with the backend can be established or authenticated.
+ An error response or timeout indicates (after a small initial startup delay) a serious problem.
+ Generally, FerretDB should be restarted in that case.
+ Additionally, the error is returned during the FerretDB shutdown while it waits for established connections to be closed.
+- `/debug/readyz` is a readiness probe.
+ It succeeds if the liveness probe succeeds.
+ Additionally, if [new authentication](../security/authentication.md) is enabled and setup credentials are provided,
+ it checks that connection with the backend can be established and authenticated
+ by sending MongoDB `ping` command to FerretDB.
+ An error response or timeout indicates a problem with the backend or configuration.
diff --git a/website/versioned_docs/version-v1.20/configuration/operation-modes.md b/website/versioned_docs/version-v1.23/configuration/operation-modes.md
similarity index 83%
rename from website/versioned_docs/version-v1.20/configuration/operation-modes.md
rename to website/versioned_docs/version-v1.23/configuration/operation-modes.md
index 7d3e5c587044..493d8cbf8f55 100644
--- a/website/versioned_docs/version-v1.20/configuration/operation-modes.md
+++ b/website/versioned_docs/version-v1.23/configuration/operation-modes.md
@@ -35,15 +35,16 @@ Header diff:
--- res header
+++ proxy header
@@ -1 +1 @@
--length: 63, id: 14, response_to: 24, opcode: OP_MSG
-+length: 64, id: 229, response_to: 24, opcode: OP_MSG
+-length: 63, id: 4, response_to: 13, opcode: OP_MSG
++length: 191, id: 53, response_to: 13, opcode: OP_MSG
Body diff:
--- res body
+++ proxy body
-@@ -10,3 +10,3 @@
- ],
-- "you": "127.0.0.1:57079",
-+ "you": "172.19.0.1:59824",
- "ok": {
+@@ -7,4 +7,12 @@
+ "Document": {
+- "you": "127.0.0.1:64795",
++ "you": "192.168.65.1:21365",
+ "ok": 1.0,
+ },
```
diff --git a/website/versioned_docs/version-v1.20/configuration/oplog-support.md b/website/versioned_docs/version-v1.23/configuration/oplog-support.md
similarity index 100%
rename from website/versioned_docs/version-v1.20/configuration/oplog-support.md
rename to website/versioned_docs/version-v1.23/configuration/oplog-support.md
diff --git a/website/versioned_docs/version-v1.20/contributing/_category_.yml b/website/versioned_docs/version-v1.23/contributing/_category_.yml
similarity index 100%
rename from website/versioned_docs/version-v1.20/contributing/_category_.yml
rename to website/versioned_docs/version-v1.23/contributing/_category_.yml
diff --git a/website/versioned_docs/version-v1.20/contributing/how-to-contribute.md b/website/versioned_docs/version-v1.23/contributing/how-to-contribute.md
similarity index 100%
rename from website/versioned_docs/version-v1.20/contributing/how-to-contribute.md
rename to website/versioned_docs/version-v1.23/contributing/how-to-contribute.md
diff --git a/website/versioned_docs/version-v1.20/contributing/writing-guide.md b/website/versioned_docs/version-v1.23/contributing/writing-guide.md
similarity index 100%
rename from website/versioned_docs/version-v1.20/contributing/writing-guide.md
rename to website/versioned_docs/version-v1.23/contributing/writing-guide.md
diff --git a/website/versioned_docs/version-v1.20/diff.md b/website/versioned_docs/version-v1.23/diff.md
similarity index 100%
rename from website/versioned_docs/version-v1.20/diff.md
rename to website/versioned_docs/version-v1.23/diff.md
diff --git a/website/versioned_docs/version-v1.20/indexes.md b/website/versioned_docs/version-v1.23/indexes.md
similarity index 100%
rename from website/versioned_docs/version-v1.20/indexes.md
rename to website/versioned_docs/version-v1.23/indexes.md
diff --git a/website/versioned_docs/version-v1.20/main.md b/website/versioned_docs/version-v1.23/main.md
similarity index 86%
rename from website/versioned_docs/version-v1.20/main.md
rename to website/versioned_docs/version-v1.23/main.md
index c94611dc92ad..561dd7568105 100644
--- a/website/versioned_docs/version-v1.20/main.md
+++ b/website/versioned_docs/version-v1.23/main.md
@@ -37,7 +37,7 @@ and [contributing guidelines](https://github.com/FerretDB/FerretDB/blob/main/CON
- [Slack chat](https://join.slack.com/t/ferretdb/shared_invite/zt-zqe9hj8g-ZcMG3~5Cs5u9uuOPnZB8~A) for quick questions.
- [GitHub Discussions](https://github.com/FerretDB/FerretDB/discussions) for longer topics.
- [GitHub Issues](https://github.com/FerretDB/FerretDB/issues) for bugs and missing features.
-- [Open Office Hours meeting](https://calendar.google.com/event?action=TEMPLATE&tmeid=NjNkdTkyN3VoNW5zdHRiaHZybXFtb2l1OWtfMjAyMTEyMTNUMTgwMDAwWiBjX24zN3RxdW9yZWlsOWIwMm0wNzQwMDA3MjQ0QGc&tmsrc=c_n37tquoreil9b02m0740007244%40group.calendar.google.com&scp=ALL)
- every Monday at 18:00 UTC at [Google Meet](https://meet.google.com/mcb-arhw-qbq).
+- [Open Office Hours meeting](https://calendar.google.com/calendar/event?action=TEMPLATE&tmeid=NGhrZTA5dXZ0MzQzN2gyaGVtZmx2aWxmN2pfMjAyNDA0MDhUMTcwMDAwWiBjX24zN3RxdW9yZWlsOWIwMm0wNzQwMDA3MjQ0QGc&tmsrc=c_n37tquoreil9b02m0740007244%40group.calendar.google.com&scp=ALL)
+ every Monday at 17:00 UTC at [Google Meet](https://meet.google.com/mcb-arhw-qbq).
If you want to contact FerretDB Inc., please use [this form](https://www.ferretdb.com/contact/).
diff --git a/website/versioned_docs/version-v1.20/migration/_category_.yml b/website/versioned_docs/version-v1.23/migration/_category_.yml
similarity index 100%
rename from website/versioned_docs/version-v1.20/migration/_category_.yml
rename to website/versioned_docs/version-v1.23/migration/_category_.yml
diff --git a/website/versioned_docs/version-v1.20/migration/migrating-from-mongodb.md b/website/versioned_docs/version-v1.23/migration/migrating-from-mongodb.md
similarity index 100%
rename from website/versioned_docs/version-v1.20/migration/migrating-from-mongodb.md
rename to website/versioned_docs/version-v1.23/migration/migrating-from-mongodb.md
diff --git a/website/versioned_docs/version-v1.20/migration/premigration-testing.md b/website/versioned_docs/version-v1.23/migration/premigration-testing.md
similarity index 88%
rename from website/versioned_docs/version-v1.20/migration/premigration-testing.md
rename to website/versioned_docs/version-v1.23/migration/premigration-testing.md
index fce33ba77e90..1cacce64e0a2 100644
--- a/website/versioned_docs/version-v1.20/migration/premigration-testing.md
+++ b/website/versioned_docs/version-v1.23/migration/premigration-testing.md
@@ -121,66 +121,37 @@ Continuing with the same example above, we can further examine the diff output w
In the diff output below, however, we have discovered that the query cannot be serviced by our application because the `$first` accumulator operator is not implemented in FerretDB.
```diff
-2023-08-29T13:25:09.048+0200 WARN // 127.0.0.1:33522 -> 127.0.0.1:27017 clientconn/conn.go:360 Header diff:
+Header diff:
--- res header
+++ proxy header
@@ -1 +1 @@
--length: 140, id: 2, response_to: 156, opcode: OP_MSG
-+length: 181, id: 360, response_to: 156, opcode: OP_MSG
+-length: 140, id: 8, response_to: 19, opcode: OP_MSG
++length: 306, id: 128, response_to: 19, opcode: OP_MSG
Body diff:
--- res body
+++ proxy body
-@@ -7,13 +7,41 @@
- "$k": [
-- "ok",
-- "errmsg",
-- "code",
-- "codeName"
-+ "cursor",
-+ "ok"
- ],
+@@ -7,6 +7,25 @@
+ "Document": {
+- "ok": 0.0,
+- "errmsg": "$group accumulator \"$first\" is not implemented yet",
+- "code": 238,
+- "codeName": "NotImplemented",
+ "cursor": {
-+ "$k": [
-+ "firstBatch",
-+ "id",
-+ "ns"
-+ ],
+ "firstBatch": [
+ {
-+ "$k": [
-+ "_id",
-+ "firstPost"
-+ ],
-+ "_id": "Alice",
-+ "firstPost": {
-+ "$d": 1692527603134
-+ }
++ "_id": "Bob",
++ "firstPost": 2023-08-28T10:33:23.134Z,
+ },
+ {
-+ "$k": [
-+ "_id",
-+ "firstPost"
-+ ],
-+ "_id": "Bob",
-+ "firstPost": {
-+ "$d": 1693218803134
-+ }
-+ }
++ "_id": "Alice",
++ "firstPost": 2023-08-20T10:33:23.134Z,
++ },
+ ],
-+ "id": {
-+ "$l": "0"
-+ },
-+ "ns": "test.posts"
++ "id": int64(0),
++ "ns": "test.posts",
+ },
- "ok": {
-- "$f": 0
-- },
-- "errmsg": "$group accumulator \"$first\" is not implemented yet",
-- "code": 238,
-- "codeName": "NotImplemented"
-+ "$f": 1
-+ }
++ "ok": 1.0,
},
```
diff --git a/website/versioned_docs/version-v1.20/operators/_category_.yml b/website/versioned_docs/version-v1.23/operators/_category_.yml
similarity index 100%
rename from website/versioned_docs/version-v1.20/operators/_category_.yml
rename to website/versioned_docs/version-v1.23/operators/_category_.yml
diff --git a/website/versioned_docs/version-v1.20/operators/query/_category_.yml b/website/versioned_docs/version-v1.23/operators/query/_category_.yml
similarity index 100%
rename from website/versioned_docs/version-v1.20/operators/query/_category_.yml
rename to website/versioned_docs/version-v1.23/operators/query/_category_.yml
diff --git a/website/versioned_docs/version-v1.20/operators/query/array-operators.md b/website/versioned_docs/version-v1.23/operators/query/array-operators.md
similarity index 100%
rename from website/versioned_docs/version-v1.20/operators/query/array-operators.md
rename to website/versioned_docs/version-v1.23/operators/query/array-operators.md
diff --git a/website/versioned_docs/version-v1.20/operators/query/bitwise-operators.md b/website/versioned_docs/version-v1.23/operators/query/bitwise-operators.md
similarity index 100%
rename from website/versioned_docs/version-v1.20/operators/query/bitwise-operators.md
rename to website/versioned_docs/version-v1.23/operators/query/bitwise-operators.md
diff --git a/website/versioned_docs/version-v1.20/operators/query/comparison-operators.md b/website/versioned_docs/version-v1.23/operators/query/comparison-operators.md
similarity index 100%
rename from website/versioned_docs/version-v1.20/operators/query/comparison-operators.md
rename to website/versioned_docs/version-v1.23/operators/query/comparison-operators.md
diff --git a/website/versioned_docs/version-v1.20/operators/query/element-operators.md b/website/versioned_docs/version-v1.23/operators/query/element-operators.md
similarity index 100%
rename from website/versioned_docs/version-v1.20/operators/query/element-operators.md
rename to website/versioned_docs/version-v1.23/operators/query/element-operators.md
diff --git a/website/versioned_docs/version-v1.20/operators/query/evaluation-operators.md b/website/versioned_docs/version-v1.23/operators/query/evaluation-operators.md
similarity index 100%
rename from website/versioned_docs/version-v1.20/operators/query/evaluation-operators.md
rename to website/versioned_docs/version-v1.23/operators/query/evaluation-operators.md
diff --git a/website/versioned_docs/version-v1.20/operators/query/logical-operators.md b/website/versioned_docs/version-v1.23/operators/query/logical-operators.md
similarity index 100%
rename from website/versioned_docs/version-v1.20/operators/query/logical-operators.md
rename to website/versioned_docs/version-v1.23/operators/query/logical-operators.md
diff --git a/website/versioned_docs/version-v1.20/operators/update/_category_.yml b/website/versioned_docs/version-v1.23/operators/update/_category_.yml
similarity index 100%
rename from website/versioned_docs/version-v1.20/operators/update/_category_.yml
rename to website/versioned_docs/version-v1.23/operators/update/_category_.yml
diff --git a/website/versioned_docs/version-v1.20/operators/update/array-update-operators.md b/website/versioned_docs/version-v1.23/operators/update/array-update-operators.md
similarity index 100%
rename from website/versioned_docs/version-v1.20/operators/update/array-update-operators.md
rename to website/versioned_docs/version-v1.23/operators/update/array-update-operators.md
diff --git a/website/versioned_docs/version-v1.20/operators/update/field-update-operators.md b/website/versioned_docs/version-v1.23/operators/update/field-update-operators.md
similarity index 100%
rename from website/versioned_docs/version-v1.20/operators/update/field-update-operators.md
rename to website/versioned_docs/version-v1.23/operators/update/field-update-operators.md
diff --git a/website/versioned_docs/version-v1.20/pushdown.md b/website/versioned_docs/version-v1.23/pushdown.md
similarity index 100%
rename from website/versioned_docs/version-v1.20/pushdown.md
rename to website/versioned_docs/version-v1.23/pushdown.md
diff --git a/website/versioned_docs/version-v1.20/quickstart-guide/_category_.yml b/website/versioned_docs/version-v1.23/quickstart-guide/_category_.yml
similarity index 100%
rename from website/versioned_docs/version-v1.20/quickstart-guide/_category_.yml
rename to website/versioned_docs/version-v1.23/quickstart-guide/_category_.yml
diff --git a/website/versioned_docs/version-v1.20/quickstart-guide/deb.md b/website/versioned_docs/version-v1.23/quickstart-guide/deb.md
similarity index 78%
rename from website/versioned_docs/version-v1.20/quickstart-guide/deb.md
rename to website/versioned_docs/version-v1.23/quickstart-guide/deb.md
index d3c9e4f4c0ba..bc13ee3d23e3 100644
--- a/website/versioned_docs/version-v1.20/quickstart-guide/deb.md
+++ b/website/versioned_docs/version-v1.23/quickstart-guide/deb.md
@@ -29,8 +29,8 @@ sudo apt update
sudo apt install -y postgresql
```
-Currently, our `.deb` package does not provide a SystemD unit for starting FerretDB automatically.
-You have to do it manually by running `ferretdb` binary with the [correct flags](../configuration/flags.md).
+The `.deb` package ships with the systemd unit for starting FerretDB automatically.
+For more information about its configuration, please take a look at [systemd configuration guide](./systemd.md).
Find out more about:
diff --git a/website/versioned_docs/version-v1.20/quickstart-guide/docker.md b/website/versioned_docs/version-v1.23/quickstart-guide/docker.md
similarity index 95%
rename from website/versioned_docs/version-v1.20/quickstart-guide/docker.md
rename to website/versioned_docs/version-v1.23/quickstart-guide/docker.md
index 82e05488e548..7a8866b339dc 100644
--- a/website/versioned_docs/version-v1.20/quickstart-guide/docker.md
+++ b/website/versioned_docs/version-v1.23/quickstart-guide/docker.md
@@ -15,6 +15,9 @@ All-in-one image is documented in the
[README.md file in the repository](https://github.com/FerretDB/FerretDB#quickstart).
The rest are covered below.
+All Docker images include a [`HEALTHCHECK` instruction](https://docs.docker.com/reference/dockerfile/#healthcheck)
+that behaves like a [readiness probe](../configuration/observability.md#probes).
+
## Production image
Our [production image](https://ghcr.io/ferretdb/ferretdb) `ghcr.io/ferretdb/ferretdb`
diff --git a/website/versioned_docs/version-v1.20/quickstart-guide/go.md b/website/versioned_docs/version-v1.23/quickstart-guide/go.md
similarity index 92%
rename from website/versioned_docs/version-v1.20/quickstart-guide/go.md
rename to website/versioned_docs/version-v1.23/quickstart-guide/go.md
index c3a5c313aa29..80086ae816f8 100644
--- a/website/versioned_docs/version-v1.20/quickstart-guide/go.md
+++ b/website/versioned_docs/version-v1.23/quickstart-guide/go.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 6
+sidebar_position: 7
---
# Go
diff --git a/website/versioned_docs/version-v1.20/quickstart-guide/macos.md b/website/versioned_docs/version-v1.23/quickstart-guide/macos.md
similarity index 89%
rename from website/versioned_docs/version-v1.20/quickstart-guide/macos.md
rename to website/versioned_docs/version-v1.23/quickstart-guide/macos.md
index 8cd14d51dbc4..dbbcfdbf8414 100644
--- a/website/versioned_docs/version-v1.20/quickstart-guide/macos.md
+++ b/website/versioned_docs/version-v1.23/quickstart-guide/macos.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 4
+sidebar_position: 5
---
# macOS
diff --git a/website/versioned_docs/version-v1.20/quickstart-guide/rpm.md b/website/versioned_docs/version-v1.23/quickstart-guide/rpm.md
similarity index 78%
rename from website/versioned_docs/version-v1.20/quickstart-guide/rpm.md
rename to website/versioned_docs/version-v1.23/quickstart-guide/rpm.md
index 8b7c2918771b..ef7ae915b77c 100644
--- a/website/versioned_docs/version-v1.20/quickstart-guide/rpm.md
+++ b/website/versioned_docs/version-v1.23/quickstart-guide/rpm.md
@@ -28,8 +28,8 @@ To install PostgreSQL, run the following commands:
sudo yum install -y postgresql
```
-Currently, our `.rpm` package does not provide a SystemD unit for starting FerretDB automatically.
-You have to do it manually by running `ferretdb` binary with the [correct flags](../configuration/flags.md).
+The `.rpm` package ships with the systemd unit for starting FerretDB automatically.
+For more information about its configuration, please take a look at [systemd configuration guide](./systemd.md).
Find out more about:
diff --git a/website/versioned_docs/version-v1.23/quickstart-guide/systemd.md b/website/versioned_docs/version-v1.23/quickstart-guide/systemd.md
new file mode 100644
index 000000000000..4331d0acf457
--- /dev/null
+++ b/website/versioned_docs/version-v1.23/quickstart-guide/systemd.md
@@ -0,0 +1,43 @@
+---
+sidebar_position: 4
+---
+
+# Systemd Unit
+
+:::note
+This feature is still experimental.
+If you encounter any problem, please [join our community](/#community) to report it.
+:::
+
+With both DEB and RPM package we ship the systemd unit, to start FerretDB automatically.
+If FerretDB is not installed yet, please refer to the [`.deb`](https://docs.ferretdb.io/quickstart-guide/deb/) or [`.rpm`](https://docs.ferretdb.io/quickstart-guide/rpm/) installation pages.
+
+The unit file provides some basic environment variables as an example.
+They should be overwritten with the proper [configuration](../configuration/flags.md).
+
+```systemd
+[Service]
+ExecStart=/usr/bin/ferretdb
+Restart=on-failure
+
+# Configure the FerretDB service with `systemctl edit ferretdb`.
+# For more configuration options check https://docs.ferretdb.io/configuration/flags/
+
+Environment="FERRETDB_POSTGRESQL_URL=postgres://127.0.0.1:5432/ferretdb"
+```
+
+You can modify them by using `systemctl edit ferretdb` command.
+This'll open a text editor that'll allow you to override the systemd options of choice.
+For example, if we want to use SQLite backend instead of PostgreSQL, we could write something like:
+
+```systemd
+### Editing /etc/systemd/system/ferretdb.service.d/override.conf
+### Anything between here and the comment below will become the new contents of the file
+
+[Service]
+Environment="FERRETDB_SQLITE_URL=file:/var/lib/ferretdb/data/"
+Environment="FERRETDB_HANDLER=sqlite"
+
+### Lines below this comment will be discarded
+...
+```
diff --git a/website/versioned_docs/version-v1.20/quickstart-guide/windows.md b/website/versioned_docs/version-v1.23/quickstart-guide/windows.md
similarity index 89%
rename from website/versioned_docs/version-v1.20/quickstart-guide/windows.md
rename to website/versioned_docs/version-v1.23/quickstart-guide/windows.md
index 7f6b7cb8ac49..ce1ac9538d13 100644
--- a/website/versioned_docs/version-v1.20/quickstart-guide/windows.md
+++ b/website/versioned_docs/version-v1.23/quickstart-guide/windows.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 5
+sidebar_position: 6
---
# Windows
diff --git a/website/versioned_docs/version-v1.20/reference/_category_.yml b/website/versioned_docs/version-v1.23/reference/_category_.yml
similarity index 100%
rename from website/versioned_docs/version-v1.20/reference/_category_.yml
rename to website/versioned_docs/version-v1.23/reference/_category_.yml
diff --git a/website/versioned_docs/version-v1.20/reference/glossary.md b/website/versioned_docs/version-v1.23/reference/glossary.md
similarity index 100%
rename from website/versioned_docs/version-v1.20/reference/glossary.md
rename to website/versioned_docs/version-v1.23/reference/glossary.md
diff --git a/website/versioned_docs/version-v1.20/reference/supported-commands.md b/website/versioned_docs/version-v1.23/reference/supported-commands.md
similarity index 98%
rename from website/versioned_docs/version-v1.20/reference/supported-commands.md
rename to website/versioned_docs/version-v1.23/reference/supported-commands.md
index 40d659de3e81..bf6fc9ccfcb6 100644
--- a/website/versioned_docs/version-v1.20/reference/supported-commands.md
+++ b/website/versioned_docs/version-v1.23/reference/supported-commands.md
@@ -109,7 +109,7 @@ The following operators and modifiers are available in the `update` and `findAnd
| `$[]` | | â ď¸ | [Issue](https://github.com/FerretDB/FerretDB/issues/824) |
| `$addToSet` | | â
ď¸ | |
| `$pop` | | â
| |
-| `$pull` | | â ď¸ | [Issue](https://github.com/FerretDB/FerretDB/issues/826) |
+| `$pull` | | â
| |
| `$push` | | â
ď¸ | |
| `$pullAll` | | â
ď¸ | |
| | `$each` | â
ď¸ | |
@@ -131,8 +131,6 @@ The following operators are available in the `find` command `projection` argumen
## Query Plan Cache Commands
-Related [issue](https://github.com/FerretDB/FerretDB/issues/78).
-
| Command | Argument | Status | Comments |
| ----------------------- | ------------ | ------ | --------------------------------------------------------- |
| `planCacheClear` | | â | [Issue](https://github.com/FerretDB/FerretDB/issues/1502) |
@@ -194,22 +192,22 @@ Related [issue](https://github.com/FerretDB/FerretDB/issues/78).
| | `roles` | â ď¸ | |
| | `writeConcern` | â ď¸ | |
| | `comment` | â ď¸ | |
-| `updateUser` | | â | [Issue](https://github.com/FerretDB/FerretDB/issues/1496) |
-| | `pwd` | â ď¸ | |
-| | `customData` | â ď¸ | |
-| | `roles` | â ď¸ | |
-| | `digestPassword` | â ď¸ | |
-| | `writeConcern` | â ď¸ | |
-| | `authenticationRestrictions` | â ď¸ | |
-| | `mechanisms` | â ď¸ | |
-| | `digestPassword` | â ď¸ | |
-| | `comment` | â ď¸ | |
+| `updateUser` | | â
| |
+| | `pwd` | | |
+| | `customData` | | |
+| | `roles` | | |
+| | `digestPassword` | | |
+| | `writeConcern` | | |
+| | `authenticationRestrictions` | | |
+| | `mechanisms` | | |
+| | `digestPassword` | | |
+| | `comment` | | |
| `usersInfo` | | â
| |
-| | `showCredentials` | â ď¸ | |
+| | `showCredentials` | â
| |
| | `showCustomData` | â ď¸ | |
| | `showPrivileges` | â ď¸ | |
| | `showAuthenticationRestrictions` | â ď¸ | |
-| | `filter` | â ď¸ | |
+| | `filter` | â ď¸ | [Issue](https://github.com/FerretDB/FerretDB/issues/4141) |
| | `comment` | â ď¸ | |
### Authentication Commands
@@ -499,7 +497,7 @@ Related [issue](https://github.com/FerretDB/FerretDB/issues/1917).
| `$subtract` (arithmetic) | â | [Issue](https://github.com/FerretDB/FerretDB/issues/1453) |
| `$subtract` (date) | â | [Issue](https://github.com/FerretDB/FerretDB/issues/1460) |
| `$sum` (accumulator) | â
ď¸ | |
-| `$sum` (operator) | â | [Issue](https://github.com/FerretDB/FerretDB/issues/2680) |
+| `$sum` (operator) | â
ď¸ | |
| `$switch` | â | [Issue](https://github.com/FerretDB/FerretDB/issues/1457) |
| `$tan` | â | [Issue](https://github.com/FerretDB/FerretDB/issues/1465) |
| `$tanh` | â | [Issue](https://github.com/FerretDB/FerretDB/issues/1465) |
@@ -642,7 +640,7 @@ Related [issue](https://github.com/FerretDB/FerretDB/issues/1917).
| | `comment` | | â ď¸ | |
| `listCollections` | | | â
| |
| | `filter` | | â
| |
-| | `nameOnly` | | â ď¸ | [Issue](https://github.com/FerretDB/FerretDB/issues/3624) |
+| | `nameOnly` | | â
| |
| | `authorizedCollections` | | â ď¸ | [Issue](https://github.com/FerretDB/FerretDB/issues/3770) |
| | `comment` | | â ď¸ | |
| `listDatabases` | | | â
| |
diff --git a/website/versioned_docs/version-v1.20/security/_category_.yml b/website/versioned_docs/version-v1.23/security/_category_.yml
similarity index 100%
rename from website/versioned_docs/version-v1.20/security/_category_.yml
rename to website/versioned_docs/version-v1.23/security/_category_.yml
diff --git a/website/versioned_docs/version-v1.20/security/authentication.md b/website/versioned_docs/version-v1.23/security/authentication.md
similarity index 100%
rename from website/versioned_docs/version-v1.20/security/authentication.md
rename to website/versioned_docs/version-v1.23/security/authentication.md
diff --git a/website/versioned_docs/version-v1.20/security/tls-connections.md b/website/versioned_docs/version-v1.23/security/tls-connections.md
similarity index 100%
rename from website/versioned_docs/version-v1.20/security/tls-connections.md
rename to website/versioned_docs/version-v1.23/security/tls-connections.md
diff --git a/website/versioned_docs/version-v1.20/telemetry.md b/website/versioned_docs/version-v1.23/telemetry.md
similarity index 100%
rename from website/versioned_docs/version-v1.20/telemetry.md
rename to website/versioned_docs/version-v1.23/telemetry.md
diff --git a/website/versioned_docs/version-v1.20/understanding-ferretdb.md b/website/versioned_docs/version-v1.23/understanding-ferretdb.md
similarity index 100%
rename from website/versioned_docs/version-v1.20/understanding-ferretdb.md
rename to website/versioned_docs/version-v1.23/understanding-ferretdb.md
diff --git a/website/versioned_sidebars/version-v1.20-sidebars.json b/website/versioned_sidebars/version-v1.23-sidebars.json
similarity index 100%
rename from website/versioned_sidebars/version-v1.20-sidebars.json
rename to website/versioned_sidebars/version-v1.23-sidebars.json
diff --git a/website/versions.json b/website/versions.json
index 472bc00567d0..a68c49a79bd1 100644
--- a/website/versions.json
+++ b/website/versions.json
@@ -1,5 +1,5 @@
[
+ "v1.23",
"v1.22",
- "v1.21",
- "v1.20"
+ "v1.21"
]