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" ]