From de82991752c8582e2c96e319fc819a7bdb1d9e4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Massot?= Date: Tue, 2 Jan 2024 00:12:55 +0100 Subject: [PATCH] Bump 0.7.0. --- config/quickwit.yaml | 2 +- .../index-config-for-clickhouse.yaml | 2 +- config/tutorials/gh-archive/index-config.yaml | 2 +- config/tutorials/gh-archive/kafka-source.yaml | 2 +- .../tutorials/gh-archive/kinesis-source.yaml | 2 +- config/tutorials/grafana/docker-compose.yml | 85 ++++++++ .../hdfs-logs/index-config-partitioned.yaml | 2 +- .../index-config-retention-policy.yaml | 2 +- config/tutorials/hdfs-logs/index-config.yaml | 2 +- config/tutorials/hdfs-logs/searcher-1.yaml | 2 +- config/tutorials/hdfs-logs/searcher-2.yaml | 2 +- config/tutorials/hdfs-logs/searcher-3.yaml | 2 +- config/tutorials/otel-logs/index-config.yaml | 2 +- .../tutorials/otel-traces/index-config.yaml | 2 +- .../tutorials/otel-traces/kafka-source.yaml | 2 +- .../tutorials/stackoverflow/index-config.yaml | 2 +- .../stackoverflow/pulsar-source.yaml | 2 +- config/tutorials/wikipedia/index-config.yaml | 2 +- .../wikipedia/multilang-index-config.yaml | 2 +- docs/configuration/index-config.md | 14 +- docs/configuration/node-config.md | 6 +- docs/configuration/source-config.md | 6 +- docs/distributed-tracing/otel-service.md | 2 +- docs/get-started/installation.md | 10 +- docs/get-started/quickstart.md | 2 +- ...ial-hdfs-logs-distributed-search-aws-s3.md | 10 +- .../tutorials/tutorial-hdfs-logs.md | 2 +- docs/get-started/tutorials/tutorial-jaeger.md | 4 +- .../add-full-text-search-to-your-olap-db.md | 2 +- docs/guides/schemaless.md | 10 +- docs/ingest-data/ingest-api.md | 2 +- docs/ingest-data/ingest-local-file.md | 2 +- docs/ingest-data/kafka.md | 4 +- docs/ingest-data/kinesis.md | 4 +- docs/ingest-data/pulsar.md | 4 +- docs/log-management/otel-service.md | 6 +- .../send-logs/send-docker-logs.md | 2 +- .../send-logs/using-fluentbit.md | 4 +- docs/log-management/send-logs/using-vector.md | 2 +- docs/overview/introduction.md | 2 +- docs/reference/rest-api.md | 6 +- docs/telemetry.md | 2 +- quickwit/Cargo.lock | 58 +++--- quickwit/Cargo.toml | 56 ++--- quickwit/quickwit-actors/Cargo.toml | 2 +- quickwit/quickwit-aws/Cargo.toml | 2 +- quickwit/quickwit-cli/Cargo.toml | 2 +- quickwit/quickwit-cli/src/cli_doc_ext.toml | 2 +- quickwit/quickwit-cli/tests/helpers.rs | 4 +- quickwit/quickwit-cluster/Cargo.toml | 2 +- quickwit/quickwit-codegen/Cargo.toml | 2 +- quickwit/quickwit-codegen/example/Cargo.toml | 2 +- quickwit/quickwit-common/Cargo.toml | 2 +- quickwit/quickwit-config/Cargo.toml | 2 +- .../resources/tests/config/quickwit.json | 2 +- .../resources/tests/config/quickwit.toml | 2 +- .../tests/config/quickwit.wrongkey.yaml | 2 +- .../resources/tests/config/quickwit.yaml | 2 +- .../index_config/hdfs-logs-create-config.yaml | 2 +- .../tests/index_config/hdfs-logs.json | 2 +- .../tests/index_config/hdfs-logs.toml | 2 +- .../tests/index_config/hdfs-logs.yaml | 2 +- .../tests/index_config/minimal-hdfs-logs.yaml | 2 +- .../tests/index_config/partial-hdfs-logs.yaml | 2 +- .../source_config/ingest-api-source.json | 2 +- .../source_config/invalid-void-source.json | 2 +- .../tests/source_config/kafka-source.json | 2 +- .../tests/source_config/kinesis-source.yaml | 2 +- .../quickwit-config/src/index_config/mod.rs | 6 +- .../src/index_config/serialize.rs | 23 ++- quickwit/quickwit-config/src/lib.rs | 8 +- .../src/node_config/serialize.rs | 43 ++-- .../quickwit-config/src/source_config/mod.rs | 14 +- .../src/source_config/serialize.rs | 19 +- quickwit/quickwit-control-plane/Cargo.toml | 2 +- quickwit/quickwit-datetime/Cargo.toml | 2 +- quickwit/quickwit-directories/Cargo.toml | 2 +- quickwit/quickwit-doc-mapper/Cargo.toml | 2 +- quickwit/quickwit-index-management/Cargo.toml | 2 +- quickwit/quickwit-indexing/Cargo.toml | 2 +- quickwit/quickwit-ingest/Cargo.toml | 2 +- .../quickwit-integration-tests/Cargo.toml | 2 +- .../src/tests/basic_tests.rs | 4 +- .../src/tests/index_tests.rs | 10 +- quickwit/quickwit-jaeger/Cargo.toml | 2 +- quickwit/quickwit-janitor/Cargo.toml | 2 +- quickwit/quickwit-macros/Cargo.toml | 2 +- quickwit/quickwit-macros/impl/Cargo.toml | 2 +- .../src/bin/README.md | 2 +- quickwit/quickwit-metastore/Cargo.toml | 2 +- .../src/backward_compatibility_tests/mod.rs | 2 +- quickwit/quickwit-metastore/src/lib.rs | 8 +- .../file_backed_index/serialize.rs | 17 +- .../src/metastore/index_metadata/serialize.rs | 17 +- .../src/split_metadata_version.rs | 19 +- .../file-backed-index/v0.4.expected.json | 10 +- .../file-backed-index/v0.5.expected.json | 10 +- .../file-backed-index/v0.6.expected.json | 10 +- .../file-backed-index/v0.7.expected.json | 195 ++++++++++++++++++ .../test-data/file-backed-index/v0.7.json | 195 ++++++++++++++++++ .../index-metadata/v0.4.expected.json | 6 +- .../index-metadata/v0.5.expected.json | 6 +- .../index-metadata/v0.6.expected.json | 6 +- .../index-metadata/v0.7.expected.json | 133 ++++++++++++ .../test-data/index-metadata/v0.7.json | 133 ++++++++++++ .../split-metadata/v0.4.expected.json | 2 +- .../split-metadata/v0.5.expected.json | 2 +- .../split-metadata/v0.6.expected.json | 2 +- .../split-metadata/v0.7.expected.json | 29 +++ .../test-data/split-metadata/v0.7.json | 29 +++ quickwit/quickwit-opentelemetry/Cargo.toml | 2 +- .../quickwit-opentelemetry/src/otlp/logs.rs | 2 +- .../quickwit-opentelemetry/src/otlp/traces.rs | 2 +- quickwit/quickwit-proto/Cargo.toml | 2 +- quickwit/quickwit-query/Cargo.toml | 2 +- quickwit/quickwit-rest-client/Cargo.toml | 2 +- quickwit/quickwit-search/Cargo.toml | 2 +- quickwit/quickwit-serve/Cargo.toml | 2 +- .../src/index_api/rest_handler.rs | 20 +- quickwit/quickwit-storage/Cargo.toml | 2 +- quickwit/quickwit-telemetry/Cargo.toml | 2 +- quickwit/quickwit-ui/package.json | 2 +- .../src/assets/img/quickwit-logo.svg | 2 +- .../aggregations/_setup.quickwit.yaml | 2 +- .../0002_invalid_default_fields.yaml | 6 +- .../_setup.quickwit.yaml | 2 +- .../es_compatibility/_setup.quickwit.yaml | 2 +- .../multi-indices/_setup.quickwit.yaml | 4 +- .../_setup.quickwit.yaml | 4 +- .../qw_search_api/_setup.quickwit.yaml | 2 +- .../scenarii/sort_orders/_setup.quickwit.yaml | 2 +- 131 files changed, 1126 insertions(+), 321 deletions(-) create mode 100644 config/tutorials/grafana/docker-compose.yml create mode 100644 quickwit/quickwit-metastore/test-data/file-backed-index/v0.7.expected.json create mode 100644 quickwit/quickwit-metastore/test-data/file-backed-index/v0.7.json create mode 100644 quickwit/quickwit-metastore/test-data/index-metadata/v0.7.expected.json create mode 100644 quickwit/quickwit-metastore/test-data/index-metadata/v0.7.json create mode 100644 quickwit/quickwit-metastore/test-data/split-metadata/v0.7.expected.json create mode 100644 quickwit/quickwit-metastore/test-data/split-metadata/v0.7.json diff --git a/config/quickwit.yaml b/config/quickwit.yaml index cb11358f1f7..b023068c035 100644 --- a/config/quickwit.yaml +++ b/config/quickwit.yaml @@ -9,7 +9,7 @@ # # Config file format version. # -version: 0.6 +version: 0.7 # # Node ID. Must be unique within a cluster. If not set, a random node ID is generated on each startup. # diff --git a/config/tutorials/gh-archive/index-config-for-clickhouse.yaml b/config/tutorials/gh-archive/index-config-for-clickhouse.yaml index 827a210168f..4c6a0555a97 100644 --- a/config/tutorials/gh-archive/index-config-for-clickhouse.yaml +++ b/config/tutorials/gh-archive/index-config-for-clickhouse.yaml @@ -1,7 +1,7 @@ # # Index config file for gh-archive dataset. # -version: 0.6 +version: 0.7 index_id: gh-archive diff --git a/config/tutorials/gh-archive/index-config.yaml b/config/tutorials/gh-archive/index-config.yaml index e0786b6f396..ff8ac649179 100644 --- a/config/tutorials/gh-archive/index-config.yaml +++ b/config/tutorials/gh-archive/index-config.yaml @@ -1,7 +1,7 @@ # # Index config file for gh-archive dataset. # -version: 0.6 +version: 0.7 index_id: gh-archive diff --git a/config/tutorials/gh-archive/kafka-source.yaml b/config/tutorials/gh-archive/kafka-source.yaml index 932d82721af..3b0bd54b1eb 100644 --- a/config/tutorials/gh-archive/kafka-source.yaml +++ b/config/tutorials/gh-archive/kafka-source.yaml @@ -1,4 +1,4 @@ -version: 0.6 +version: 0.7 source_id: kafka-source source_type: kafka max_num_pipelines_per_indexer: 1 diff --git a/config/tutorials/gh-archive/kinesis-source.yaml b/config/tutorials/gh-archive/kinesis-source.yaml index 96c097950ed..183df35589f 100644 --- a/config/tutorials/gh-archive/kinesis-source.yaml +++ b/config/tutorials/gh-archive/kinesis-source.yaml @@ -1,4 +1,4 @@ -version: 0.6 +version: 0.7 source_id: kinesis-source source_type: kinesis params: diff --git a/config/tutorials/grafana/docker-compose.yml b/config/tutorials/grafana/docker-compose.yml new file mode 100644 index 00000000000..871e305eab1 --- /dev/null +++ b/config/tutorials/grafana/docker-compose.yml @@ -0,0 +1,85 @@ +version: "3.9" + +networks: + default: + name: quickwit-grafana + # ipam: + # config: + # - subnet: 172.16.7.0/24 + # gateway: 172.16.7.1 + +services: + quickwit: + image: quickwit/quickwit:${QUICKWIT_VERSION:-0.7.0} + grafana: + image: grafana/grafana-oss:${GRAFANA_VERSION:-9.4.7} + container_name: grafana + ports: + - "${MAP_HOST_GRAFANA:-127.0.0.1}:3000:3000" + environment: + GF_AUTH_DISABLE_LOGIN_FORM: "true" + GF_AUTH_ANONYMOUS_ENABLED: "true" + GF_AUTH_ANONYMOUS_ORG_ROLE: Admin + volumes: + - ./monitoring/grafana/dashboards:/var/lib/grafana/dashboards + - ./monitoring/grafana/provisioning:/etc/grafana/provisioning + + jaeger: + image: jaegertracing/all-in-one:${JAEGER_VERSION:-1.48.0} + container_name: jaeger + ports: + - "${MAP_HOST_JAEGER:-127.0.0.1}:16686:16686" # Frontend + profiles: + - jaeger + - monitoring + + otel-collector: + image: otel/opentelemetry-collector:${OTEL_VERSION:-0.84.0} + container_name: otel-collector + ports: + - "${MAP_HOST_OTEL:-127.0.0.1}:1888:1888" # pprof extension + - "${MAP_HOST_OTEL:-127.0.0.1}:8888:8888" # Prometheus metrics exposed by the collector + - "${MAP_HOST_OTEL:-127.0.0.1}:8889:8889" # Prometheus exporter metrics + - "${MAP_HOST_OTEL:-127.0.0.1}:13133:13133" # health_check extension + - "${MAP_HOST_OTEL:-127.0.0.1}:4317:4317" # OTLP gRPC receiver + - "${MAP_HOST_OTEL:-127.0.0.1}:4318:4318" # OTLP http receiver + - "${MAP_HOST_OTEL:-127.0.0.1}:55679:55679" # zpages extension + profiles: + - otel + - monitoring + volumes: + - ./monitoring/otel-collector-config.yaml:/etc/otel-collector-config.yaml + command: ["--config=/etc/otel-collector-config.yaml"] + + prometheus: + image: prom/prometheus:${PROMETHEUS_VERSION:-v2.43.0} + container_name: prometheus + ports: + - "${MAP_HOST_PROMETHEUS:-127.0.0.1}:9090:9090" + profiles: + - prometheus + - monitoring + volumes: + - ./monitoring/prometheus.yaml:/etc/prometheus/prometheus.yml + extra_hosts: + - "host.docker.internal:host-gateway" + + gcp-pubsub-emulator: + # It is not an official docker image + # if we prefer we can build a docker from the official docker image (gcloud cli) + # and install the pubsub emulator https://cloud.google.com/pubsub/docs/emulator + image: thekevjames/gcloud-pubsub-emulator:${GCLOUD_EMULATOR:-455.0.0} + container_name: gcp-pubsub-emulator + ports: + - "${MAP_HOST_GCLOUD_EMULATOR:-127.0.0.1}:8681:8681" + environment: + # create a fake gcp project and a topic / subscription + - PUBSUB_PROJECT1=quickwit-emulator,emulator_topic:emulator_subscription + profiles: + - all + - gcp-pubsub + +volumes: + localstack_data: + postgres_data: + azurite_data: diff --git a/config/tutorials/hdfs-logs/index-config-partitioned.yaml b/config/tutorials/hdfs-logs/index-config-partitioned.yaml index 6a8ab13bdae..433e76a23c3 100644 --- a/config/tutorials/hdfs-logs/index-config-partitioned.yaml +++ b/config/tutorials/hdfs-logs/index-config-partitioned.yaml @@ -2,7 +2,7 @@ # Index config file for hdfs-logs dataset with partitioning configured. # -version: 0.6 +version: 0.7 index_id: hdfs-logs-partitioned diff --git a/config/tutorials/hdfs-logs/index-config-retention-policy.yaml b/config/tutorials/hdfs-logs/index-config-retention-policy.yaml index a6e2fb6438d..f9d83b98713 100644 --- a/config/tutorials/hdfs-logs/index-config-retention-policy.yaml +++ b/config/tutorials/hdfs-logs/index-config-retention-policy.yaml @@ -2,7 +2,7 @@ # Index config file for hdfs-logs dataset with a retention policy configured. # -version: 0.6 +version: 0.7 index_id: hdfs-logs-retention-policy diff --git a/config/tutorials/hdfs-logs/index-config.yaml b/config/tutorials/hdfs-logs/index-config.yaml index 36e597d258a..808a2a55491 100644 --- a/config/tutorials/hdfs-logs/index-config.yaml +++ b/config/tutorials/hdfs-logs/index-config.yaml @@ -2,7 +2,7 @@ # Index config file for hdfs-logs dataset. # -version: 0.6 +version: 0.7 index_id: hdfs-logs diff --git a/config/tutorials/hdfs-logs/searcher-1.yaml b/config/tutorials/hdfs-logs/searcher-1.yaml index 09886e5cab7..f7eab50b1a9 100644 --- a/config/tutorials/hdfs-logs/searcher-1.yaml +++ b/config/tutorials/hdfs-logs/searcher-1.yaml @@ -1,4 +1,4 @@ -version: 0.6 +version: 0.7 node_id: searcher-1 listen_address: 127.0.0.1 rest: diff --git a/config/tutorials/hdfs-logs/searcher-2.yaml b/config/tutorials/hdfs-logs/searcher-2.yaml index 53f5cf3c573..505bb52457a 100644 --- a/config/tutorials/hdfs-logs/searcher-2.yaml +++ b/config/tutorials/hdfs-logs/searcher-2.yaml @@ -1,4 +1,4 @@ -version: 0.6 +version: 0.7 node_id: searcher-2 listen_address: 127.0.0.1 rest: diff --git a/config/tutorials/hdfs-logs/searcher-3.yaml b/config/tutorials/hdfs-logs/searcher-3.yaml index 6a86e375d39..2329f867081 100644 --- a/config/tutorials/hdfs-logs/searcher-3.yaml +++ b/config/tutorials/hdfs-logs/searcher-3.yaml @@ -1,4 +1,4 @@ -version: 0.6 +version: 0.7 node_id: searcher-3 listen_address: 127.0.0.1 rest: diff --git a/config/tutorials/otel-logs/index-config.yaml b/config/tutorials/otel-logs/index-config.yaml index f0f5779d0d5..13b72fbeed9 100644 --- a/config/tutorials/otel-logs/index-config.yaml +++ b/config/tutorials/otel-logs/index-config.yaml @@ -3,7 +3,7 @@ # Link: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md # -version: 0.6 +version: 0.7 index_id: otel-log-v0 diff --git a/config/tutorials/otel-traces/index-config.yaml b/config/tutorials/otel-traces/index-config.yaml index e502affb05c..041a392884d 100644 --- a/config/tutorials/otel-traces/index-config.yaml +++ b/config/tutorials/otel-traces/index-config.yaml @@ -3,7 +3,7 @@ # Link: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md # -version: 0.6 +version: 0.7 index_id: otel-trace-v0 diff --git a/config/tutorials/otel-traces/kafka-source.yaml b/config/tutorials/otel-traces/kafka-source.yaml index 808f3d3b7c7..59f78dcf4fb 100644 --- a/config/tutorials/otel-traces/kafka-source.yaml +++ b/config/tutorials/otel-traces/kafka-source.yaml @@ -1,4 +1,4 @@ -version: 0.6 +version: 0.7 source_id: kafka-source source_type: kafka input_format: otlp_trace_proto diff --git a/config/tutorials/stackoverflow/index-config.yaml b/config/tutorials/stackoverflow/index-config.yaml index 268a07f73dd..d926afb0c5d 100644 --- a/config/tutorials/stackoverflow/index-config.yaml +++ b/config/tutorials/stackoverflow/index-config.yaml @@ -1,7 +1,7 @@ # # Index config file for stackoverflow dataset. # -version: 0.6 +version: 0.7 index_id: stackoverflow diff --git a/config/tutorials/stackoverflow/pulsar-source.yaml b/config/tutorials/stackoverflow/pulsar-source.yaml index 1f0d02781da..acd33992157 100644 --- a/config/tutorials/stackoverflow/pulsar-source.yaml +++ b/config/tutorials/stackoverflow/pulsar-source.yaml @@ -1,4 +1,4 @@ -version: 0.6 +version: 0.7 source_id: pulsar-source source_type: pulsar params: diff --git a/config/tutorials/wikipedia/index-config.yaml b/config/tutorials/wikipedia/index-config.yaml index abd731e8902..57f3b0adc34 100644 --- a/config/tutorials/wikipedia/index-config.yaml +++ b/config/tutorials/wikipedia/index-config.yaml @@ -2,7 +2,7 @@ # Index config file for wikipedia dataset. # -version: 0.6 +version: 0.7 index_id: wikipedia diff --git a/config/tutorials/wikipedia/multilang-index-config.yaml b/config/tutorials/wikipedia/multilang-index-config.yaml index 002a9cda9e6..0ec107dfd5e 100644 --- a/config/tutorials/wikipedia/multilang-index-config.yaml +++ b/config/tutorials/wikipedia/multilang-index-config.yaml @@ -2,7 +2,7 @@ # Index config file for multilang wikipedia datasets. # -version: 0.6 +version: 0.7 index_id: multilang-wikipedia diff --git a/docs/configuration/index-config.md b/docs/configuration/index-config.md index b822d992f85..6e792e8368f 100644 --- a/docs/configuration/index-config.md +++ b/docs/configuration/index-config.md @@ -21,7 +21,7 @@ The index configuration format is YAML. When a key is absent from the configurat Here is a complete example suited for the HDFS logs dataset: ```yaml -version: 0.6 # File format version. +version: 0.7 # File format version. index_id: "hdfs" @@ -426,7 +426,7 @@ The configuration of `dynamic` mode can be set via the `dynamic_mapping` paramet `dynamic_mapping` offers the same configuration options as when configuring a `json` field. It defaults to: ```yaml -version: 0.6 +version: 0.7 index_id: my-dynamic-index doc_mapping: mode: dynamic @@ -446,7 +446,7 @@ the root of the JSON object. For instance, in a entirely schemaless settings, a minimal index configuration could be: ```yaml -version: 0.6 +version: 0.7 index_id: my-dynamic-index doc_mapping: # If you have a timestamp field, it is important to tell quickwit about it. @@ -532,7 +532,7 @@ Quickwit's default merge policy is the `stable_log` merge policy with the following parameters: ```yaml -version: 0.6 +version: 0.7 index_id: "hdfs" # ... indexing_settings: @@ -561,7 +561,7 @@ of the number of merge operation a split should undergo. ```yaml -version: 0.6 +version: 0.7 index_id: "hdfs" # ... indexing_settings: @@ -590,7 +590,7 @@ This setting is not recommended. Merges are necessary to reduce the number of sp ::: ```yaml -version: 0.6 +version: 0.7 index_id: "hdfs" indexing_settings: merge_policy: @@ -618,7 +618,7 @@ explicitly in the schema, or may refer to a field captured by the dynamic mode. This section describes how Quickwit manages data retention. In Quickwit, the retention policy manager drops data on a split basis as opposed to individually dropping documents. Splits are evaluated based on their `time_range` which is derived from the index timestamp field specified in the (`indexing_settings.timestamp_field`) settings. Using this setting, the retention policy will delete a split when `now() - split.time_range.end >= retention_policy.period` ```yaml -version: 0.6 +version: 0.7 index_id: hdfs # ... retention: diff --git a/docs/configuration/node-config.md b/docs/configuration/node-config.md index 72153575f46..e8cb7590395 100644 --- a/docs/configuration/node-config.md +++ b/docs/configuration/node-config.md @@ -19,7 +19,7 @@ A commented example is available here: [quickwit.yaml](https://github.com/quickw | Property | Description | Env variable | Default value | | --- | --- | --- | --- | -| `version` | Config file version. `0.6` is the only available value with a retro compatibility on `0.5` and `0.4`. | | | +| `version` | Config file version. `0.7` is the only available value with a retro compatibility on `0.5` and `0.4`. | | | | `cluster_id` | Unique identifier of the cluster the node will be joining. Clusters sharing the same network should use distinct cluster IDs.| `QW_CLUSTER_ID` | `quickwit-default-cluster` | | `node_id` | Unique identifier of the node. It must be distinct from the node IDs of its cluster peers. Defaults to the instance's short hostname if not set. | `QW_NODE_ID` | short hostname | | `enabled_services` | Enabled services (control_plane, indexer, janitor, metastore, searcher) | `QW_ENABLED_SERVICES` | all services | @@ -233,7 +233,7 @@ export QW_LISTEN_ADDRESS=0.0.0.0 ```yaml # config.yaml -version: 0.6 +version: 0.7 cluster_id: quickwit-cluster node_id: my-unique-node-id listen_address: ${QW_LISTEN_ADDRESS} @@ -244,7 +244,7 @@ rest: Will be interpreted by Quickwit as: ```yaml -version: 0.6 +version: 0.7 cluster_id: quickwit-cluster node_id: my-unique-node-id listen_address: 0.0.0.0 diff --git a/docs/configuration/source-config.md b/docs/configuration/source-config.md index 48e517406c6..b882d328c8a 100644 --- a/docs/configuration/source-config.md +++ b/docs/configuration/source-config.md @@ -80,7 +80,7 @@ Short max poll interval durations may cause a source to crash when back pressure ```bash cat << EOF > source-config.yaml -version: 0.6 +version: 0.7 source_id: my-kafka-source source_type: kafka max_num_pipelines_per_indexer: 1 @@ -124,7 +124,7 @@ If no region is specified, Quickwit will attempt to find one in multiple other l ```bash cat << EOF > source-config.yaml -version: 0.6 +version: 0.7 source_id: my-kinesis-source source_type: kinesis params: @@ -153,7 +153,7 @@ The Pulsar source consumes `topics` using the client library [pulsar-rs](https:/ ```bash cat << EOF > source-config.yaml -version: 0.6 +version: 0.7 source_id: my-pulsar-source source_type: pulsar params: diff --git a/docs/distributed-tracing/otel-service.md b/docs/distributed-tracing/otel-service.md index 4a45a37ad65..49e9b0376b0 100644 --- a/docs/distributed-tracing/otel-service.md +++ b/docs/distributed-tracing/otel-service.md @@ -27,7 +27,7 @@ Below is the doc mapping of the `otel-trace-v0` index: ```yaml -version: 0.6 +version: 0.7 index_id: otel-trace-v0 diff --git a/docs/get-started/installation.md b/docs/get-started/installation.md index db93b164dd2..0e24f7f3223 100644 --- a/docs/get-started/installation.md +++ b/docs/get-started/installation.md @@ -43,13 +43,13 @@ Downloads `.tar.gz`: -version: 0.6.1 - [Release notes](https://github.com/quickwit-oss/quickwit/releases/tag/v0.6.1) - [Changelog](https://github.com/quickwit-oss/quickwit/blob/main/CHANGELOG.md) +version: 0.7.0 - [Release notes](https://github.com/quickwit-oss/quickwit/releases/tag/v0.7.0) - [Changelog](https://github.com/quickwit-oss/quickwit/blob/main/CHANGELOG.md) License: [AGPL V3](https://github.com/quickwit-oss/quickwit/blob/main/LICENSE.md) Downloads `.tar.gz`: -- [Linux ARM64](https://github.com/quickwit-oss/quickwit/releases/download/v0.6.1/quickwit-v0.6.1-aarch64-unknown-linux-gnu.tar.gz) -- [Linux x86_64](https://github.com/quickwit-oss/quickwit/releases/download/v0.6.1/quickwit-v0.6.1-x86_64-unknown-linux-gnu.tar.gz) -- [macOS aarch64](https://github.com/quickwit-oss/quickwit/releases/download/v0.6.1/quickwit-v0.6.1-aarch64-apple-darwin.tar.gz) -- [macOS x86_64](https://github.com/quickwit-oss/quickwit/releases/download/v0.6.1/quickwit-v0.6.1-x86_64-apple-darwin.tar.gz) +- [Linux ARM64](https://github.com/quickwit-oss/quickwit/releases/download/v0.7.0/quickwit-v0.7.0-aarch64-unknown-linux-gnu.tar.gz) +- [Linux x86_64](https://github.com/quickwit-oss/quickwit/releases/download/v0.7.0/quickwit-v0.7.0-x86_64-unknown-linux-gnu.tar.gz) +- [macOS aarch64](https://github.com/quickwit-oss/quickwit/releases/download/v0.7.0/quickwit-v0.7.0-aarch64-apple-darwin.tar.gz) +- [macOS x86_64](https://github.com/quickwit-oss/quickwit/releases/download/v0.7.0/quickwit-v0.7.0-x86_64-apple-darwin.tar.gz) diff --git a/docs/get-started/quickstart.md b/docs/get-started/quickstart.md index e9f84fffb36..5c72f327f78 100644 --- a/docs/get-started/quickstart.md +++ b/docs/get-started/quickstart.md @@ -87,7 +87,7 @@ And here is the complete config: # # Index config file for stackoverflow dataset. # -version: 0.6 +version: 0.7 index_id: stackoverflow diff --git a/docs/get-started/tutorials/tutorial-hdfs-logs-distributed-search-aws-s3.md b/docs/get-started/tutorials/tutorial-hdfs-logs-distributed-search-aws-s3.md index e3d585d0511..df4674f2055 100644 --- a/docs/get-started/tutorials/tutorial-hdfs-logs-distributed-search-aws-s3.md +++ b/docs/get-started/tutorials/tutorial-hdfs-logs-distributed-search-aws-s3.md @@ -57,7 +57,7 @@ Now we can create a Quickwit config file. ```bash # Create Quickwit config file. -echo "version: 0.6 +echo "version: 0.7 node_id: searcher-1 listen_address: 0.0.0.0 metastore_uri: ${S3_PATH} @@ -70,7 +70,7 @@ default_index_root_uri: ${S3_PATH} > # config.yaml > node_id: searcher-1 > listen_address: 0.0.0.0 -> version: 0.6 +> version: 0.7 > metastore_uri: ${S3_PATH} > default_index_root_uri: ${S3_PATH} >``` @@ -95,7 +95,7 @@ used by Quickwit for [splits pruning](../../overview/architecture) at query time Check out the [index config docs](../../configuration/index-config) for more details. ```yaml title="hdfs_logs_index_config.yaml" -version: 0.6 +version: 0.7 index_id: hdfs-logs @@ -223,7 +223,7 @@ export IP_NODE_1={first-ec2-instance-public-ip} ```bash # configuration for our second node -echo "version: 0.6 +echo "version: 0.7 node_id: searcher-2 metastore_uri: ${S3_PATH} default_index_root_uri: ${S3_PATH} @@ -238,7 +238,7 @@ peer_seeds: ```bash # configuration for our third node -echo "version: 0.6 +echo "version: 0.7 node_id: searcher-3 listen_address: 0.0.0.0 peer_seeds: diff --git a/docs/get-started/tutorials/tutorial-hdfs-logs.md b/docs/get-started/tutorials/tutorial-hdfs-logs.md index fd982472b30..dd544e1c652 100644 --- a/docs/get-started/tutorials/tutorial-hdfs-logs.md +++ b/docs/get-started/tutorials/tutorial-hdfs-logs.md @@ -84,7 +84,7 @@ The `timestamp_field` and `tag_fields` are used by Quickwit for [splits pruning] Check out the [index config docs](../../configuration/index-config) for more details. ```yaml title="hdfs-logs-index.yaml" -version: 0.6 +version: 0.7 index_id: hdfs-logs diff --git a/docs/get-started/tutorials/tutorial-jaeger.md b/docs/get-started/tutorials/tutorial-jaeger.md index 9399c199d95..15c93f4d764 100644 --- a/docs/get-started/tutorials/tutorial-jaeger.md +++ b/docs/get-started/tutorials/tutorial-jaeger.md @@ -16,7 +16,7 @@ version: "3" services: quickwit: - image: quickwit/quickwit:${QW_VERSION:-0.6.5} + image: quickwit/quickwit:${QW_VERSION:-0.7.0} volumes: - ./qwdata:/quickwit/qwdata ports: @@ -69,7 +69,7 @@ You can also use the Quickwit UI at [http://localhost:7280](http://localhost:728 Here are a couple of query examples: - `service_name:quickwit AND events.event_attributes.level:INFO` - `span_duration_millis:>100` -- `resource_attributes.service.version:v0.6.5` +- `resource_attributes.service.version:v0.7.0` - `service_name:quickwit` That's it! You can level up with the following tutorials to discover all Quickwit features. diff --git a/docs/guides/add-full-text-search-to-your-olap-db.md b/docs/guides/add-full-text-search-to-your-olap-db.md index 9ab123f77b6..999a831cda5 100644 --- a/docs/guides/add-full-text-search-to-your-olap-db.md +++ b/docs/guides/add-full-text-search-to-your-olap-db.md @@ -51,7 +51,7 @@ We don't need to index all fields described above as `title` and `body` are the The `id` will be helpful for making the JOINs in ClickHouse, `created_at` and `event_type` may also be beneficial for timestamp pruning and filtering. ```yaml title="gh-archive-index-config.yaml" -version: 0.6 +version: 0.7 index_id: gh-archive # By default, the index will be stored in your data directory, # but you can store it on s3 or on a custom path as follows: diff --git a/docs/guides/schemaless.md b/docs/guides/schemaless.md index 2c2c50b174a..6bb43ef77e3 100644 --- a/docs/guides/schemaless.md +++ b/docs/guides/schemaless.md @@ -25,7 +25,7 @@ As a user, you need to precisely define the list of fields to be ingested by Qui For instance, a reasonable mapping for an application log could be: ```yaml title=my_strict_index.yaml -version: 0.6 +version: 0.7 index_id: my_strict_index @@ -70,7 +70,7 @@ By default, this catch-all configuration indexes and stores all of these fields, A minimalist, yet perfectly valid and useful index configuration is then: ```yaml title=my_dynamic_index.yaml -version: 0.6 +version: 0.7 index_id: my_dynamic_index doc_mapping: mode: dynamic @@ -115,7 +115,7 @@ Each event type comes with its own set of attributes. Declaring our mapping as t Instead, we can cherry-pick the fields that are common to all of the logs, and rely on dynamic mode to handle the rest. ```yaml title=my_dynamic_index.yaml -version: 0.6 +version: 0.7 index_id: my_dynamic_index doc_mapping: mode: dynamic @@ -149,7 +149,7 @@ Execute the following commands to create the index, ingest a few documents and s ```bash cat << EOF > my_dynamic_index.yaml -version: 0.6 +version: 0.7 index_id: my_dynamic_index doc_mapping: mode: dynamic @@ -219,7 +219,7 @@ Quickwit 0.3 introduced a JSON field type to handle this use case. A good index configuration here could be: ```yaml title=otel_logs.yaml -version: 0.6 +version: 0.7 index_id: otel_logs doc_mapping: mode: dynamic diff --git a/docs/ingest-data/ingest-api.md b/docs/ingest-data/ingest-api.md index a014ce03080..131e0661877 100644 --- a/docs/ingest-data/ingest-api.md +++ b/docs/ingest-data/ingest-api.md @@ -22,7 +22,7 @@ First, let's create a schemaless index. ```bash # Create the index config file. cat << EOF > stackoverflow-schemaless-config.yaml -version: 0.6 +version: 0.7 index_id: stackoverflow-schemaless doc_mapping: mode: dynamic diff --git a/docs/ingest-data/ingest-local-file.md b/docs/ingest-data/ingest-local-file.md index 68bbec2ed5f..e817feb2f24 100644 --- a/docs/ingest-data/ingest-local-file.md +++ b/docs/ingest-data/ingest-local-file.md @@ -28,7 +28,7 @@ And create the index in a separate terminal. ```bash # Create the index config file. cat << EOF > stackoverflow-schemaless-config.yaml -version: 0.6 +version: 0.7 index_id: stackoverflow-schemaless doc_mapping: mode: dynamic diff --git a/docs/ingest-data/kafka.md b/docs/ingest-data/kafka.md index d59a1801647..a92a8968f1a 100644 --- a/docs/ingest-data/kafka.md +++ b/docs/ingest-data/kafka.md @@ -22,7 +22,7 @@ First, let's create a new index. Here is the index config and doc mapping corres # # Index config file for gh-archive dataset. # -version: 0.6 +version: 0.7 index_id: gh-archive @@ -101,7 +101,7 @@ This tutorial assumes that the Kafka cluster is available locally on the default # # Kafka source config file. # -version: 0.6 +version: 0.7 source_id: kafka-source source_type: kafka max_num_pipelines_per_indexer: 1 diff --git a/docs/ingest-data/kinesis.md b/docs/ingest-data/kinesis.md index 147c72ba0cb..df8d637d175 100644 --- a/docs/ingest-data/kinesis.md +++ b/docs/ingest-data/kinesis.md @@ -32,7 +32,7 @@ First, let's create a new index. Here is the index config and doc mapping corres # # Index config file for gh-archive dataset. # -version: 0.6 +version: 0.7 index_id: gh-archive @@ -116,7 +116,7 @@ aws kinesis put-records --cli-input-json file://records-{%}.json --cli-binary-fo # # Kinesis source config file. # -version: 0.6 +version: 0.7 source_id: kinesis-source source_type: kinesis params: diff --git a/docs/ingest-data/pulsar.md b/docs/ingest-data/pulsar.md index 805fde8ed69..4563beda98e 100644 --- a/docs/ingest-data/pulsar.md +++ b/docs/ingest-data/pulsar.md @@ -66,7 +66,7 @@ First, let's create a new index. Here is the index config and doc mapping corres # # Index config file for Stack Overflow dataset. # -version: 0.6 +version: 0.7 index_id: stackoverflow @@ -133,7 +133,7 @@ A Pulsar source just needs to define the list of topics and the instance address # # Pulsar source config file. # -version: 0.6 +version: 0.7 source_id: pulsar-source source_type: pulsar params: diff --git a/docs/log-management/otel-service.md b/docs/log-management/otel-service.md index 76f4625458b..6e55bd4b7cd 100644 --- a/docs/log-management/otel-service.md +++ b/docs/log-management/otel-service.md @@ -24,7 +24,7 @@ The doc mapping of this index described below is derived from the [OpenTelemetry ```yaml -version: 0.6 +version: 0.7 index_id: otel-logs-v0 @@ -107,8 +107,8 @@ You can also send traces to Quickwit that you can visualize in Jaeger UI, as exp ## Known limitations -There are a few limitations on the log management setup in Quickwit 0.6: -- Aggregations are not available on sparse fields and JSON field, this will be fixed in 0.6. This means that only the timestamp field can support aggregations. +There are a few limitations on the log management setup in Quickwit 0.7: +- Aggregations are not available on sparse fields and JSON field, this will be fixed in 0.7. This means that only the timestamp field can support aggregations. - The ingest API does not provide High-Availability and High-Durability, this will be fixed in Q2/Q3. - Grafana and Elasticsearch query API support are planned for Q2 2023. - OTLP gRPC service index documents only in the `otel-logs-v0` index. diff --git a/docs/log-management/send-logs/send-docker-logs.md b/docs/log-management/send-logs/send-docker-logs.md index c733fd3ad86..c7592251efd 100644 --- a/docs/log-management/send-logs/send-docker-logs.md +++ b/docs/log-management/send-logs/send-docker-logs.md @@ -86,7 +86,7 @@ x-default-logging: &logging services: quickwit: - image: quickwit/quickwit:${QW_VERSION:-0.6.5} + image: quickwit/quickwit:${QW_VERSION:-0.7.0} volumes: - ./qwdata:/quickwit/qwdata ports: diff --git a/docs/log-management/send-logs/using-fluentbit.md b/docs/log-management/send-logs/using-fluentbit.md index d8fb6dab781..65b338ac6a1 100644 --- a/docs/log-management/send-logs/using-fluentbit.md +++ b/docs/log-management/send-logs/using-fluentbit.md @@ -27,7 +27,7 @@ Let's create a schemaless index with only one field `timestamp`. The mode `dynam ```yaml title="index-config.yaml" -version: 0.6 +version: 0.7 index_id: fluentbit-logs @@ -111,4 +111,4 @@ Quickwit is now ingesting logs coming from Fluentbit and you can search them eit ## Further improvements -You will soon be able to do aggregations on dynamic fields (planned for 0.6). +You will soon be able to do aggregations on dynamic fields (planned for 0.7). diff --git a/docs/log-management/send-logs/using-vector.md b/docs/log-management/send-logs/using-vector.md index 549595e1cb7..3b151c54e5e 100644 --- a/docs/log-management/send-logs/using-vector.md +++ b/docs/log-management/send-logs/using-vector.md @@ -48,7 +48,7 @@ Let's embrace the OpenTelemetry standard and take advantage of Quickwit features Here is the OpenTelemetry index configuration for reference. ```yaml title="otel-logs_v0_6" -version: 0.6 +version: 0.7 index_id: otel-logs-v0_6 diff --git a/docs/overview/introduction.md b/docs/overview/introduction.md index 76ff35b0c3d..db84adfda6e 100644 --- a/docs/overview/introduction.md +++ b/docs/overview/introduction.md @@ -63,4 +63,4 @@ Use cases where you would likely *not* want to use Quickwit include: - [Quickstart](../get-started/quickstart.md) - [Concepts](architecture.md) -- [Last release blog post](https://quickwit.io/blog/quickwit-0.6) +- [Last release blog post](https://quickwit.io/blog/quickwit-0.7) diff --git a/docs/reference/rest-api.md b/docs/reference/rest-api.md index 05d71f9067f..0493f21f91f 100644 --- a/docs/reference/rest-api.md +++ b/docs/reference/rest-api.md @@ -244,7 +244,7 @@ curl -XPOST http://0.0.0.0:8080/api/v1/indexes --data @index_config.json -H "Con ```json title="index_config.json { - "version": "0.6", + "version": "0.7", "index_id": "hdfs-logs", "doc_mapping": { "field_mappings": [ @@ -401,7 +401,7 @@ GET /api/v1/indexes/stackoverflow/splits?offset=0&limit=10 "split_state": "Published", "update_timestamp": 1695642901, "publish_timestamp": 1695642901, - "version": "0.6", + "version": "0.7", "split_id": "01HB632HD8W6WHNM7CZFH3KG1X", "index_uid": "stackoverflow:01HB6321TDT3SP58D4EZP14KSX", "partition_id": 0, @@ -504,7 +504,7 @@ curl -XPOST http://0.0.0.0:8080/api/v1/indexes/my-index/sources --data @source_c ```json title="source_config.json { - "version": "0.6", + "version": "0.7", "source_id": "kafka-source", "source_type": "kafka", "params": { diff --git a/docs/telemetry.md b/docs/telemetry.md index 245c9e2f9bd..21ec1aef219 100644 --- a/docs/telemetry.md +++ b/docs/telemetry.md @@ -16,7 +16,7 @@ export QW_DISABLE_TELEMETRY=1 Look at `--help` command output to check whether telemetry is enabled or not: ```bash quickwit --help -Quickwit 0.6.1 +Quickwit 0.7 Sub-second search & analytics engine on cloud storage. Find more information at https://quickwit.io/docs diff --git a/quickwit/Cargo.lock b/quickwit/Cargo.lock index 86cdcaf870d..58befb0bde0 100644 --- a/quickwit/Cargo.lock +++ b/quickwit/Cargo.lock @@ -5139,7 +5139,7 @@ dependencies = [ [[package]] name = "quickwit-actors" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "anyhow", "async-trait", @@ -5159,7 +5159,7 @@ dependencies = [ [[package]] name = "quickwit-aws" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "async-trait", "aws-config", @@ -5181,7 +5181,7 @@ dependencies = [ [[package]] name = "quickwit-cli" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "anyhow", "async-trait", @@ -5239,7 +5239,7 @@ dependencies = [ [[package]] name = "quickwit-cluster" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "anyhow", "async-trait", @@ -5265,7 +5265,7 @@ dependencies = [ [[package]] name = "quickwit-codegen" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "anyhow", "futures", @@ -5282,7 +5282,7 @@ dependencies = [ [[package]] name = "quickwit-codegen-example" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "anyhow", "async-trait", @@ -5307,7 +5307,7 @@ dependencies = [ [[package]] name = "quickwit-common" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "anyhow", "async-speed-limit", @@ -5343,7 +5343,7 @@ dependencies = [ [[package]] name = "quickwit-config" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "anyhow", "bytes", @@ -5377,7 +5377,7 @@ dependencies = [ [[package]] name = "quickwit-control-plane" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "anyhow", "async-trait", @@ -5416,7 +5416,7 @@ dependencies = [ [[package]] name = "quickwit-datetime" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "anyhow", "itertools 0.12.0", @@ -5430,7 +5430,7 @@ dependencies = [ [[package]] name = "quickwit-directories" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "anyhow", "async-trait", @@ -5451,7 +5451,7 @@ dependencies = [ [[package]] name = "quickwit-doc-mapper" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "anyhow", "base64 0.21.5", @@ -5486,7 +5486,7 @@ dependencies = [ [[package]] name = "quickwit-index-management" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "anyhow", "async-trait", @@ -5518,7 +5518,7 @@ dependencies = [ [[package]] name = "quickwit-indexing" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "anyhow", "arc-swap", @@ -5582,7 +5582,7 @@ dependencies = [ [[package]] name = "quickwit-ingest" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "anyhow", "async-trait", @@ -5620,7 +5620,7 @@ dependencies = [ [[package]] name = "quickwit-integration-tests" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "anyhow", "bytes", @@ -5653,7 +5653,7 @@ dependencies = [ [[package]] name = "quickwit-jaeger" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "anyhow", "async-trait", @@ -5687,7 +5687,7 @@ dependencies = [ [[package]] name = "quickwit-janitor" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "anyhow", "async-trait", @@ -5724,7 +5724,7 @@ dependencies = [ [[package]] name = "quickwit-macros" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "proc-macro2", "quickwit-macros-impl", @@ -5734,7 +5734,7 @@ dependencies = [ [[package]] name = "quickwit-macros-impl" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "heck", "proc-macro2", @@ -5744,7 +5744,7 @@ dependencies = [ [[package]] name = "quickwit-metastore" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "anyhow", "async-trait", @@ -5785,7 +5785,7 @@ dependencies = [ [[package]] name = "quickwit-opentelemetry" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "anyhow", "async-trait", @@ -5809,7 +5809,7 @@ dependencies = [ [[package]] name = "quickwit-proto" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "anyhow", "async-trait", @@ -5845,7 +5845,7 @@ dependencies = [ [[package]] name = "quickwit-query" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "anyhow", "base64 0.21.5", @@ -5871,7 +5871,7 @@ dependencies = [ [[package]] name = "quickwit-rest-client" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "anyhow", "bytes", @@ -5895,7 +5895,7 @@ dependencies = [ [[package]] name = "quickwit-search" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "anyhow", "assert-json-diff 2.0.2", @@ -5946,7 +5946,7 @@ dependencies = [ [[package]] name = "quickwit-serve" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "anyhow", "assert-json-diff 2.0.2", @@ -6013,7 +6013,7 @@ dependencies = [ [[package]] name = "quickwit-storage" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "anyhow", "async-trait", @@ -6058,7 +6058,7 @@ dependencies = [ [[package]] name = "quickwit-telemetry" -version = "0.6.5-dev" +version = "0.7.0" dependencies = [ "async-trait", "encoding_rs", diff --git a/quickwit/Cargo.toml b/quickwit/Cargo.toml index a5b01cdabb3..6141b122f6c 100644 --- a/quickwit/Cargo.toml +++ b/quickwit/Cargo.toml @@ -247,34 +247,34 @@ azure_storage_blobs = { version = "0.13.0", default-features = false, features = "enable_reqwest_rustls", ] } -quickwit-actors = { version = "0.6.5-dev", path = "./quickwit-actors" } -quickwit-aws = { version = "0.6.5-dev", path = "./quickwit-aws" } -quickwit-cluster = { version = "0.6.5-dev", path = "./quickwit-cluster" } -quickwit-codegen = { version = "0.6.5-dev", path = "./quickwit-codegen" } -quickwit-codegen-example = { version = "0.6.5-dev", path = "./quickwit-codegen/example" } -quickwit-common = { version = "0.6.5-dev", path = "./quickwit-common" } -quickwit-config = { version = "0.6.5-dev", path = "./quickwit-config" } -quickwit-control-plane = { version = "0.6.5-dev", path = "./quickwit-control-plane" } -quickwit-index-management = { version = "0.6.5-dev", path = "./quickwit-index-management" } -quickwit-datetime = { version = "0.6.5-dev", path = "./quickwit-datetime" } -quickwit-directories = { version = "0.6.5-dev", path = "./quickwit-directories" } -quickwit-doc-mapper = { version = "0.6.5-dev", path = "./quickwit-doc-mapper" } -quickwit-indexing = { version = "0.6.5-dev", path = "./quickwit-indexing" } -quickwit-ingest = { version = "0.6.5-dev", path = "./quickwit-ingest" } -quickwit-integration-tests = { version = "0.6.5-dev", path = "./quickwit-integration-tests" } -quickwit-jaeger = { version = "0.6.5-dev", path = "./quickwit-jaeger" } -quickwit-janitor = { version = "0.6.5-dev", path = "./quickwit-janitor" } -quickwit-macros = { version = "0.6.5-dev", path = "./quickwit-macros" } -quickwit-macros-impl = { version = "0.6.5-dev", path = "./quickwit-macros/impl" } -quickwit-metastore = { version = "0.6.5-dev", path = "./quickwit-metastore" } -quickwit-opentelemetry = { version = "0.6.5-dev", path = "./quickwit-opentelemetry" } -quickwit-proto = { version = "0.6.5-dev", path = "./quickwit-proto" } -quickwit-query = { version = "0.6.5-dev", path = "./quickwit-query" } -quickwit-rest-client = { version = "0.6.5-dev", path = "./quickwit-rest-client" } -quickwit-search = { version = "0.6.5-dev", path = "./quickwit-search" } -quickwit-serve = { version = "0.6.5-dev", path = "./quickwit-serve" } -quickwit-storage = { version = "0.6.5-dev", path = "./quickwit-storage" } -quickwit-telemetry = { version = "0.6.5-dev", path = "./quickwit-telemetry" } +quickwit-actors = { version = "0.7.0", path = "./quickwit-actors" } +quickwit-aws = { version = "0.7.0", path = "./quickwit-aws" } +quickwit-cluster = { version = "0.7.0", path = "./quickwit-cluster" } +quickwit-codegen = { version = "0.7.0", path = "./quickwit-codegen" } +quickwit-codegen-example = { version = "0.7.0", path = "./quickwit-codegen/example" } +quickwit-common = { version = "0.7.0", path = "./quickwit-common" } +quickwit-config = { version = "0.7.0", path = "./quickwit-config" } +quickwit-control-plane = { version = "0.7.0", path = "./quickwit-control-plane" } +quickwit-index-management = { version = "0.7.0", path = "./quickwit-index-management" } +quickwit-datetime = { version = "0.7.0", path = "./quickwit-datetime" } +quickwit-directories = { version = "0.7.0", path = "./quickwit-directories" } +quickwit-doc-mapper = { version = "0.7.0", path = "./quickwit-doc-mapper" } +quickwit-indexing = { version = "0.7.0", path = "./quickwit-indexing" } +quickwit-ingest = { version = "0.7.0", path = "./quickwit-ingest" } +quickwit-integration-tests = { version = "0.7.0", path = "./quickwit-integration-tests" } +quickwit-jaeger = { version = "0.7.0", path = "./quickwit-jaeger" } +quickwit-janitor = { version = "0.7.0", path = "./quickwit-janitor" } +quickwit-macros = { version = "0.7.0", path = "./quickwit-macros" } +quickwit-macros-impl = { version = "0.7.0", path = "./quickwit-macros/impl" } +quickwit-metastore = { version = "0.7.0", path = "./quickwit-metastore" } +quickwit-opentelemetry = { version = "0.7.0", path = "./quickwit-opentelemetry" } +quickwit-proto = { version = "0.7.0", path = "./quickwit-proto" } +quickwit-query = { version = "0.7.0", path = "./quickwit-query" } +quickwit-rest-client = { version = "0.7.0", path = "./quickwit-rest-client" } +quickwit-search = { version = "0.7.0", path = "./quickwit-search" } +quickwit-serve = { version = "0.7.0", path = "./quickwit-serve" } +quickwit-storage = { version = "0.7.0", path = "./quickwit-storage" } +quickwit-telemetry = { version = "0.7.0", path = "./quickwit-telemetry" } tantivy = { git = "https://github.com/quickwit-oss/tantivy/", rev = "53f2fe1", default-features = false, features = [ "lz4-compression", diff --git a/quickwit/quickwit-actors/Cargo.toml b/quickwit/quickwit-actors/Cargo.toml index 5d264eb7b0f..c181847afe2 100644 --- a/quickwit/quickwit-actors/Cargo.toml +++ b/quickwit/quickwit-actors/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-actors" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "MIT" diff --git a/quickwit/quickwit-aws/Cargo.toml b/quickwit/quickwit-aws/Cargo.toml index 9140d83a47d..1c525cc2d4c 100644 --- a/quickwit/quickwit-aws/Cargo.toml +++ b/quickwit/quickwit-aws/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-aws" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "AGPL-3.0-or-later" # For a commercial, license, contact hello@quickwit.io diff --git a/quickwit/quickwit-cli/Cargo.toml b/quickwit/quickwit-cli/Cargo.toml index 37218535837..02365717757 100644 --- a/quickwit/quickwit-cli/Cargo.toml +++ b/quickwit/quickwit-cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-cli" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "AGPL-3.0-or-later" # For a commercial, license, contact hello@quickwit.io diff --git a/quickwit/quickwit-cli/src/cli_doc_ext.toml b/quickwit/quickwit-cli/src/cli_doc_ext.toml index 28dcfadd5c0..2f1c5b273f6 100644 --- a/quickwit/quickwit-cli/src/cli_doc_ext.toml +++ b/quickwit/quickwit-cli/src/cli_doc_ext.toml @@ -232,7 +232,7 @@ quickwit run --service metastore --config=./config/quickwit.yaml # Open a new terminal and run: cat << EOF > wikipedia-kafka-source.json { - "version": "0.6", + "version": "0.7", "source_id": "kafka-source", "source_type": "kafka", "params": { diff --git a/quickwit/quickwit-cli/tests/helpers.rs b/quickwit/quickwit-cli/tests/helpers.rs index 5493baee194..098a8736df0 100644 --- a/quickwit/quickwit-cli/tests/helpers.rs +++ b/quickwit/quickwit-cli/tests/helpers.rs @@ -41,7 +41,7 @@ use tracing::error; pub const PACKAGE_BIN_NAME: &str = "quickwit"; const DEFAULT_INDEX_CONFIG: &str = r#" - version: 0.6 + version: 0.7 index_id: #index_id index_uri: #index_uri @@ -81,7 +81,7 @@ const DEFAULT_INDEX_CONFIG: &str = r#" "#; const DEFAULT_QUICKWIT_CONFIG: &str = r#" - version: 0.6 + version: 0.7 metastore_uri: #metastore_uri data_dir: #data_dir rest: diff --git a/quickwit/quickwit-cluster/Cargo.toml b/quickwit/quickwit-cluster/Cargo.toml index c720695c249..d3bc1e8533b 100644 --- a/quickwit/quickwit-cluster/Cargo.toml +++ b/quickwit/quickwit-cluster/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-cluster" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "AGPL-3.0-or-later" # For a commercial, license, contact hello@quickwit.io diff --git a/quickwit/quickwit-codegen/Cargo.toml b/quickwit/quickwit-codegen/Cargo.toml index 9cd2f7aeb21..48784c4b06f 100644 --- a/quickwit/quickwit-codegen/Cargo.toml +++ b/quickwit/quickwit-codegen/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-codegen" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "AGPL-3.0-or-later" # For a commercial, license, contact hello@quickwit.io diff --git a/quickwit/quickwit-codegen/example/Cargo.toml b/quickwit/quickwit-codegen/example/Cargo.toml index 5c67b311e3e..7f7fe45f9ef 100644 --- a/quickwit/quickwit-codegen/example/Cargo.toml +++ b/quickwit/quickwit-codegen/example/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-codegen-example" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "AGPL-3.0-or-later" # For a commercial, license, contact hello@quickwit.io diff --git a/quickwit/quickwit-common/Cargo.toml b/quickwit/quickwit-common/Cargo.toml index bc86a752c64..97e14af5c7d 100644 --- a/quickwit/quickwit-common/Cargo.toml +++ b/quickwit/quickwit-common/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-common" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "AGPL-3.0-or-later" # For a commercial, license, contact hello@quickwit.io diff --git a/quickwit/quickwit-config/Cargo.toml b/quickwit/quickwit-config/Cargo.toml index 453a0669e61..8a00d20c13e 100644 --- a/quickwit/quickwit-config/Cargo.toml +++ b/quickwit/quickwit-config/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-config" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "AGPL-3.0-or-later" # For a commercial license, contact hello@quickwit.io diff --git a/quickwit/quickwit-config/resources/tests/config/quickwit.json b/quickwit/quickwit-config/resources/tests/config/quickwit.json index 8b3b8d6450f..1fb8ea7465a 100644 --- a/quickwit/quickwit-config/resources/tests/config/quickwit.json +++ b/quickwit/quickwit-config/resources/tests/config/quickwit.json @@ -1,6 +1,6 @@ # Comments are supported. { - "version": "0.6", + "version": "0.7", "cluster_id": "quickwit-cluster", "node_id": "my-unique-node-id", "enabled_services": [ diff --git a/quickwit/quickwit-config/resources/tests/config/quickwit.toml b/quickwit/quickwit-config/resources/tests/config/quickwit.toml index 04f384eda17..2d321665a7e 100644 --- a/quickwit/quickwit-config/resources/tests/config/quickwit.toml +++ b/quickwit/quickwit-config/resources/tests/config/quickwit.toml @@ -1,4 +1,4 @@ -version = "0.6" +version = "0.7" cluster_id = "quickwit-cluster" node_id = "my-unique-node-id" diff --git a/quickwit/quickwit-config/resources/tests/config/quickwit.wrongkey.yaml b/quickwit/quickwit-config/resources/tests/config/quickwit.wrongkey.yaml index 202fc97974d..53a4d19c306 100644 --- a/quickwit/quickwit-config/resources/tests/config/quickwit.wrongkey.yaml +++ b/quickwit/quickwit-config/resources/tests/config/quickwit.wrongkey.yaml @@ -1,4 +1,4 @@ -version: 0.6 +version: 0.7 searcher: fast_field_cache_capacity: 10G # Typo here. It is supposed to be searches. diff --git a/quickwit/quickwit-config/resources/tests/config/quickwit.yaml b/quickwit/quickwit-config/resources/tests/config/quickwit.yaml index 760afdcb60c..42eea2623a5 100644 --- a/quickwit/quickwit-config/resources/tests/config/quickwit.yaml +++ b/quickwit/quickwit-config/resources/tests/config/quickwit.yaml @@ -1,4 +1,4 @@ -version: 0.6 +version: 0.7 cluster_id: quickwit-cluster node_id: my-unique-node-id diff --git a/quickwit/quickwit-config/resources/tests/index_config/hdfs-logs-create-config.yaml b/quickwit/quickwit-config/resources/tests/index_config/hdfs-logs-create-config.yaml index 3cdb53d228a..f57cb3ef244 100644 --- a/quickwit/quickwit-config/resources/tests/index_config/hdfs-logs-create-config.yaml +++ b/quickwit/quickwit-config/resources/tests/index_config/hdfs-logs-create-config.yaml @@ -1,4 +1,4 @@ -version: 0.6 +version: 0.7 doc_mapping: field_mappings: diff --git a/quickwit/quickwit-config/resources/tests/index_config/hdfs-logs.json b/quickwit/quickwit-config/resources/tests/index_config/hdfs-logs.json index c4a61cf79a5..6c256c165bf 100644 --- a/quickwit/quickwit-config/resources/tests/index_config/hdfs-logs.json +++ b/quickwit/quickwit-config/resources/tests/index_config/hdfs-logs.json @@ -1,6 +1,6 @@ # Comments are supported. { - "version": "0.6", + "version": "0.7", "index_id": "hdfs-logs", "index_uri": "s3://quickwit-indexes/hdfs-logs", "doc_mapping": { diff --git a/quickwit/quickwit-config/resources/tests/index_config/hdfs-logs.toml b/quickwit/quickwit-config/resources/tests/index_config/hdfs-logs.toml index 4c177c3c513..3a9d37f1c28 100644 --- a/quickwit/quickwit-config/resources/tests/index_config/hdfs-logs.toml +++ b/quickwit/quickwit-config/resources/tests/index_config/hdfs-logs.toml @@ -1,4 +1,4 @@ -version = "0.6" +version = "0.7" index_id = "hdfs-logs" index_uri = "s3://quickwit-indexes/hdfs-logs" diff --git a/quickwit/quickwit-config/resources/tests/index_config/hdfs-logs.yaml b/quickwit/quickwit-config/resources/tests/index_config/hdfs-logs.yaml index caa390111d3..ad58811dc6d 100644 --- a/quickwit/quickwit-config/resources/tests/index_config/hdfs-logs.yaml +++ b/quickwit/quickwit-config/resources/tests/index_config/hdfs-logs.yaml @@ -1,4 +1,4 @@ -version: 0.6 +version: 0.7 index_id: hdfs-logs index_uri: s3://quickwit-indexes/hdfs-logs diff --git a/quickwit/quickwit-config/resources/tests/index_config/minimal-hdfs-logs.yaml b/quickwit/quickwit-config/resources/tests/index_config/minimal-hdfs-logs.yaml index 266553619bc..8fedebe29d0 100644 --- a/quickwit/quickwit-config/resources/tests/index_config/minimal-hdfs-logs.yaml +++ b/quickwit/quickwit-config/resources/tests/index_config/minimal-hdfs-logs.yaml @@ -1,4 +1,4 @@ -version: 0.6 +version: 0.7 index_id: hdfs-logs index_uri: s3://quickwit-indexes/hdfs-logs diff --git a/quickwit/quickwit-config/resources/tests/index_config/partial-hdfs-logs.yaml b/quickwit/quickwit-config/resources/tests/index_config/partial-hdfs-logs.yaml index 9e00e789f93..196242b959d 100644 --- a/quickwit/quickwit-config/resources/tests/index_config/partial-hdfs-logs.yaml +++ b/quickwit/quickwit-config/resources/tests/index_config/partial-hdfs-logs.yaml @@ -1,4 +1,4 @@ -version: 0.6 +version: 0.7 index_id: hdfs-logs index_uri: s3://quickwit-indexes/hdfs-logs diff --git a/quickwit/quickwit-config/resources/tests/source_config/ingest-api-source.json b/quickwit/quickwit-config/resources/tests/source_config/ingest-api-source.json index 00aae0e25f3..983172284a0 100644 --- a/quickwit/quickwit-config/resources/tests/source_config/ingest-api-source.json +++ b/quickwit/quickwit-config/resources/tests/source_config/ingest-api-source.json @@ -1,5 +1,5 @@ { - "version": "0.6", + "version": "0.7", "source_id": "_ingest-api-source", "enabled": true, "source_type": "ingest-api", diff --git a/quickwit/quickwit-config/resources/tests/source_config/invalid-void-source.json b/quickwit/quickwit-config/resources/tests/source_config/invalid-void-source.json index 238efe3f198..e16da6a0716 100644 --- a/quickwit/quickwit-config/resources/tests/source_config/invalid-void-source.json +++ b/quickwit/quickwit-config/resources/tests/source_config/invalid-void-source.json @@ -1,5 +1,5 @@ { - "version": "0.6", + "version": "0.7", "source_id": "hdfs-logs-void-source", "desired_num_pipelines": 0, "max_num_pipelines_per_indexer": 1, diff --git a/quickwit/quickwit-config/resources/tests/source_config/kafka-source.json b/quickwit/quickwit-config/resources/tests/source_config/kafka-source.json index aec4977ec1b..1b809299768 100644 --- a/quickwit/quickwit-config/resources/tests/source_config/kafka-source.json +++ b/quickwit/quickwit-config/resources/tests/source_config/kafka-source.json @@ -1,5 +1,5 @@ { - "version": "0.6", + "version": "0.7", "source_id": "hdfs-logs-kafka-source", "desired_num_pipelines": 2, "max_num_pipelines_per_indexer": 2, diff --git a/quickwit/quickwit-config/resources/tests/source_config/kinesis-source.yaml b/quickwit/quickwit-config/resources/tests/source_config/kinesis-source.yaml index b7d1942ae02..084df3de273 100644 --- a/quickwit/quickwit-config/resources/tests/source_config/kinesis-source.yaml +++ b/quickwit/quickwit-config/resources/tests/source_config/kinesis-source.yaml @@ -1,4 +1,4 @@ -version: 0.6 +version: 0.7 source_id: hdfs-logs-kinesis-source source_type: kinesis params: diff --git a/quickwit/quickwit-config/src/index_config/mod.rs b/quickwit/quickwit-config/src/index_config/mod.rs index 7f12b1b6a51..ea904757c1a 100644 --- a/quickwit/quickwit-config/src/index_config/mod.rs +++ b/quickwit/quickwit-config/src/index_config/mod.rs @@ -702,7 +702,7 @@ mod tests { #[should_panic(expected = "empty URI")] fn test_config_validates_uris() { let config_yaml = r#" - version: 0.6 + version: 0.7 index_id: hdfs-logs index_uri: '' doc_mapping: {} @@ -713,7 +713,7 @@ mod tests { #[test] fn test_minimal_index_config_default_dynamic() { let config_yaml = r#" - version: 0.6 + version: 0.7 index_id: hdfs-logs index_uri: "s3://my-index" doc_mapping: {} @@ -733,7 +733,7 @@ mod tests { #[test] fn test_index_config_with_malformed_maturation_duration() { let config_yaml = r#" - version: 0.6 + version: 0.7 index_id: hdfs-logs index_uri: "s3://my-index" doc_mapping: {} diff --git a/quickwit/quickwit-config/src/index_config/serialize.rs b/quickwit/quickwit-config/src/index_config/serialize.rs index 373afa632a9..68449a9dee3 100644 --- a/quickwit/quickwit-config/src/index_config/serialize.rs +++ b/quickwit/quickwit-config/src/index_config/serialize.rs @@ -28,22 +28,23 @@ use crate::{ }; /// Alias for the latest serialization format. -type IndexConfigForSerialization = IndexConfigV0_6; +type IndexConfigForSerialization = IndexConfigV0_7; #[derive(Clone, Debug, Serialize, Deserialize, utoipa::ToSchema)] #[serde(tag = "version")] pub(crate) enum VersionedIndexConfig { - #[serde(rename = "0.6")] + #[serde(rename = "0.7")] // Retro compatibility #[serde(alias = "0.4")] #[serde(alias = "0.5")] - V0_6(IndexConfigV0_6), + #[serde(alias = "0.6")] + V0_7(IndexConfigV0_7), } impl From for IndexConfigForSerialization { fn from(versioned_config: VersionedIndexConfig) -> IndexConfigForSerialization { match versioned_config { - VersionedIndexConfig::V0_6(v0_6) => v0_6, + VersionedIndexConfig::V0_7(v0_6) => v0_6, } } } @@ -118,7 +119,7 @@ impl IndexConfigForSerialization { impl From for VersionedIndexConfig { fn from(index_config: IndexConfig) -> Self { - VersionedIndexConfig::V0_6(index_config.into()) + VersionedIndexConfig::V0_7(index_config.into()) } } @@ -127,14 +128,14 @@ impl TryFrom for IndexConfig { fn try_from(versioned_index_config: VersionedIndexConfig) -> anyhow::Result { match versioned_index_config { - VersionedIndexConfig::V0_6(v0_6) => v0_6.validate_and_build(None), + VersionedIndexConfig::V0_7(v0_6) => v0_6.validate_and_build(None), } } } #[derive(Clone, Debug, Serialize, Deserialize, utoipa::ToSchema)] #[serde(deny_unknown_fields)] -pub struct IndexConfigV0_6 { +pub struct IndexConfigV0_7 { pub index_id: String, #[schema(value_type = String)] #[serde(default)] @@ -149,9 +150,9 @@ pub struct IndexConfigV0_6 { pub retention_policy: Option, } -impl From for IndexConfigV0_6 { +impl From for IndexConfigV0_7 { fn from(index_config: IndexConfig) -> Self { - IndexConfigV0_6 { + IndexConfigV0_7 { index_id: index_config.index_id, index_uri: Some(index_config.index_uri), doc_mapping: index_config.doc_mapping, @@ -228,7 +229,7 @@ mod test { #[test] fn test_minimal_index_config_missing_root_uri_no_default_uri() { let config_yaml = r#" - version: 0.6 + version: 0.7 index_id: hdfs-logs doc_mapping: {} "#; @@ -240,7 +241,7 @@ mod test { #[test] fn test_minimal_index_config_missing_root_uri_with_default_index_root_uri() { let config_yaml = r#" - version: 0.6 + version: 0.7 index_id: hdfs-logs doc_mapping: {} "#; diff --git a/quickwit/quickwit-config/src/lib.rs b/quickwit/quickwit-config/src/lib.rs index c98b088a89e..821a35ce3cc 100644 --- a/quickwit/quickwit-config/src/lib.rs +++ b/quickwit/quickwit-config/src/lib.rs @@ -41,7 +41,7 @@ mod templating; // We export that one for backward compatibility. // See #2048 -use index_config::serialize::{IndexConfigV0_6, VersionedIndexConfig}; +use index_config::serialize::{IndexConfigV0_7, VersionedIndexConfig}; pub use index_config::{ build_doc_mapper, load_index_config_from_user_config, DocMapping, IndexConfig, IndexingResources, IndexingSettings, RetentionPolicy, SearchSettings, @@ -67,7 +67,7 @@ pub use crate::node_config::{ IndexerConfig, IngestApiConfig, JaegerConfig, NodeConfig, SearcherConfig, SplitCacheLimits, DEFAULT_QW_CONFIG_PATH, }; -use crate::source_config::serialize::{SourceConfigV0_6, VersionedSourceConfig}; +use crate::source_config::serialize::{SourceConfigV0_7, VersionedSourceConfig}; pub use crate::storage_config::{ AzureStorageConfig, FileStorageConfig, RamStorageConfig, S3StorageConfig, StorageBackend, StorageBackendFlavor, StorageConfig, StorageConfigs, @@ -82,9 +82,9 @@ pub use crate::storage_config::{ MergePolicyConfig, DocMapping, VersionedSourceConfig, - SourceConfigV0_6, + SourceConfigV0_7, VersionedIndexConfig, - IndexConfigV0_6, + IndexConfigV0_7, SourceInputFormat, SourceParams, FileSourceParams, diff --git a/quickwit/quickwit-config/src/node_config/serialize.rs b/quickwit/quickwit-config/src/node_config/serialize.rs index 9162c067958..aebb067d0a2 100644 --- a/quickwit/quickwit-config/src/node_config/serialize.rs +++ b/quickwit/quickwit-config/src/node_config/serialize.rs @@ -142,17 +142,18 @@ pub async fn load_node_config_with_env( #[derive(Debug, Deserialize)] #[serde(tag = "version")] enum VersionedNodeConfig { - #[serde(rename = "0.6")] + #[serde(rename = "0.7")] // Retro compatibility. + #[serde(alias = "0.6")] #[serde(alias = "0.5")] #[serde(alias = "0.4")] - V0_6(NodeConfigBuilder), + V0_7(NodeConfigBuilder), } impl From for NodeConfigBuilder { fn from(versioned_node_config: VersionedNodeConfig) -> Self { match versioned_node_config { - VersionedNodeConfig::V0_6(node_config_builder) => node_config_builder, + VersionedNodeConfig::V0_7(node_config_builder) => node_config_builder, } } } @@ -617,7 +618,7 @@ mod tests { #[tokio::test] async fn test_node_config_default_values_minimal() { - let config_yaml = "version: 0.6"; + let config_yaml = "version: 0.7"; let config = load_node_config_with_env( ConfigFormat::Yaml, config_yaml.as_bytes(), @@ -666,7 +667,7 @@ mod tests { #[tokio::test] async fn test_node_config_env_var_override() { - let config_yaml = "version: 0.6"; + let config_yaml = "version: 0.7"; let mut env_vars = HashMap::new(); env_vars.insert("QW_CLUSTER_ID".to_string(), "test-cluster".to_string()); env_vars.insert("QW_NODE_ID".to_string(), "test-node".to_string()); @@ -748,7 +749,7 @@ mod tests { #[tokio::test] async fn test_quickwwit_config_default_values_storage() { let config_yaml = r#" - version: 0.6 + version: 0.7 node_id: "node-1" metastore_uri: postgres://username:password@host:port/db "#; @@ -770,7 +771,7 @@ mod tests { #[tokio::test] async fn test_node_config_config_default_values_default_indexer_searcher_config() { let config_yaml = r#" - version: 0.6 + version: 0.7 metastore_uri: postgres://username:password@host:port/db data_dir: /opt/quickwit/data "#; @@ -956,7 +957,7 @@ mod tests { async fn test_config_validates_uris() { { let config_yaml = r#" - version: 0.6 + version: 0.7 node_id: 1 metastore_uri: '' "#; @@ -970,7 +971,7 @@ mod tests { } { let config_yaml = r#" - version: 0.6 + version: 0.7 node_id: 1 metastore_uri: postgres://username:password@host:port/db default_index_root_uri: '' @@ -989,7 +990,7 @@ mod tests { async fn test_node_config_data_dir_accepts_both_file_uris_and_file_paths() { { let config_yaml = r#" - version: 0.6 + version: 0.7 data_dir: /opt/quickwit/data "#; let config = load_node_config_with_env( @@ -1003,7 +1004,7 @@ mod tests { } { let config_yaml = r#" - version: 0.6 + version: 0.7 data_dir: file:///opt/quickwit/data "#; let config = load_node_config_with_env( @@ -1017,7 +1018,7 @@ mod tests { } { let config_yaml = r#" - version: 0.6 + version: 0.7 data_dir: s3://indexes/foo "#; let error = load_node_config_with_env( @@ -1034,7 +1035,7 @@ mod tests { #[tokio::test] async fn test_config_invalid_when_both_listen_ports_params_are_configured() { let config_yaml = r#" - version: 0.6 + version: 0.7 rest_listen_port: 1789 rest: listen_port: 1789 @@ -1069,7 +1070,7 @@ mod tests { #[tokio::test] async fn test_rest_config_accepts_wildcard() { let rest_config_yaml = r#" - version: 0.6 + version: 0.7 rest: cors_allow_origins: '*' "#; @@ -1086,7 +1087,7 @@ mod tests { #[tokio::test] async fn test_rest_config_accepts_single_origin() { let rest_config_yaml = r#" - version: 0.6 + version: 0.7 rest: cors_allow_origins: - https://www.my-domain.com @@ -1104,7 +1105,7 @@ mod tests { ); let rest_config_yaml = r#" - version: 0.6 + version: 0.7 rest: cors_allow_origins: http://192.168.0.108:7280 "#; @@ -1124,7 +1125,7 @@ mod tests { #[tokio::test] async fn test_rest_config_accepts_multi_origin() { let rest_config_yaml = r#" - version: 0.6 + version: 0.7 rest: cors_allow_origins: - https://www.my-domain.com @@ -1142,7 +1143,7 @@ mod tests { ); let rest_config_yaml = r#" - version: 0.6 + version: 0.7 rest: cors_allow_origins: - https://www.my-domain.com @@ -1164,7 +1165,7 @@ mod tests { ); let rest_config_yaml = r#" - version: 0.6 + version: 0.7 rest: rest_cors_allow_origins: "#; @@ -1177,7 +1178,7 @@ mod tests { .expect_err("Config should not allow empty origins."); let rest_config_yaml = r#" - version: 0.6 + version: 0.7 rest: cors_allow_origins: - @@ -1208,7 +1209,7 @@ mod tests { assert!(error_message.contains("either 1 or 2, got `3`")); let node_config_yaml = r#" - version: 0.6 + version: 0.7 ingest_api: replication_factor: 0 "#; diff --git a/quickwit/quickwit-config/src/source_config/mod.rs b/quickwit/quickwit-config/src/source_config/mod.rs index bda2e987f8c..b5eba6486a8 100644 --- a/quickwit/quickwit-config/src/source_config/mod.rs +++ b/quickwit/quickwit-config/src/source_config/mod.rs @@ -691,7 +691,7 @@ mod tests { { let content = r#" { - "version": "0.6", + "version": "0.7", "source_id": "hdfs-logs-void-source", "desired_num_pipelines": 0, "max_num_pipelines_per_indexer": 1, @@ -708,7 +708,7 @@ mod tests { { let content = r#" { - "version": "0.6", + "version": "0.7", "source_id": "hdfs-logs-void-source", "desired_num_pipelines": 1, "max_num_pipelines_per_indexer": 0, @@ -725,7 +725,7 @@ mod tests { { let content = r#" { - "version": "0.6", + "version": "0.7", "source_id": "hdfs-logs-void-source", "desired_num_pipelines": 1, "max_num_pipelines_per_indexer": 2, @@ -740,7 +740,7 @@ mod tests { { let content = r#" { - "version": "0.6", + "version": "0.7", "source_id": "hdfs-logs-void-source", "desired_num_pipelines": 2, "max_num_pipelines_per_indexer": 1, @@ -759,7 +759,7 @@ mod tests { { let content = r#" { - "version": "0.6", + "version": "0.7", "source_id": "hdfs-logs-kafka-source", "desired_num_pipelines": 3, "max_num_pipelines_per_indexer": 3, @@ -778,7 +778,7 @@ mod tests { { let content = r#" { - "version": "0.6", + "version": "0.7", "source_id": "hdfs-logs-pulsar-source", "desired_num_pipelines": 3, "max_num_pipelines_per_indexer": 3, @@ -1191,7 +1191,7 @@ mod tests { #[tokio::test] async fn test_source_config_plain_text_input_format() { let file_content = r#"{ - "version": "0.6", + "version": "0.7", "source_id": "logs-file-source", "desired_num_pipelines": 1, "max_num_pipelines_per_indexer": 1, diff --git a/quickwit/quickwit-config/src/source_config/serialize.rs b/quickwit/quickwit-config/src/source_config/serialize.rs index ed68e53707a..361c777b086 100644 --- a/quickwit/quickwit-config/src/source_config/serialize.rs +++ b/quickwit/quickwit-config/src/source_config/serialize.rs @@ -25,23 +25,24 @@ use serde::{Deserialize, Serialize}; use super::{TransformConfig, RESERVED_SOURCE_IDS}; use crate::{validate_identifier, ConfigFormat, SourceConfig, SourceInputFormat, SourceParams}; -type SourceConfigForSerialization = SourceConfigV0_6; +type SourceConfigForSerialization = SourceConfigV0_7; #[derive(Serialize, Deserialize, utoipa::ToSchema)] #[serde(deny_unknown_fields)] #[serde(tag = "version")] pub enum VersionedSourceConfig { - #[serde(rename = "0.6")] + #[serde(rename = "0.7")] // Retro compatibility. + #[serde(alias = "0.6")] #[serde(alias = "0.5")] #[serde(alias = "0.4")] - V0_6(SourceConfigV0_6), + V0_7(SourceConfigV0_7), } impl From for SourceConfigForSerialization { fn from(versioned_source_config: VersionedSourceConfig) -> Self { match versioned_source_config { - VersionedSourceConfig::V0_6(v0_6) => v0_6, + VersionedSourceConfig::V0_7(v0_6) => v0_6, } } } @@ -129,9 +130,9 @@ impl SourceConfigForSerialization { } } -impl From for SourceConfigV0_6 { +impl From for SourceConfigV0_7 { fn from(source_config: SourceConfig) -> Self { - SourceConfigV0_6 { + SourceConfigV0_7 { source_id: source_config.source_id, max_num_pipelines_per_indexer: source_config.max_num_pipelines_per_indexer.get(), desired_num_pipelines: source_config.desired_num_pipelines.get(), @@ -145,7 +146,7 @@ impl From for SourceConfigV0_6 { impl From for VersionedSourceConfig { fn from(source_config: SourceConfig) -> Self { - VersionedSourceConfig::V0_6(source_config.into()) + VersionedSourceConfig::V0_7(source_config.into()) } } @@ -153,7 +154,7 @@ impl TryFrom for SourceConfig { type Error = anyhow::Error; fn try_from(versioned_source_config: VersionedSourceConfig) -> anyhow::Result { - let v1: SourceConfigV0_6 = versioned_source_config.into(); + let v1: SourceConfigV0_7 = versioned_source_config.into(); v1.validate_and_build() } } @@ -171,7 +172,7 @@ fn default_source_enabled() -> bool { } #[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize, utoipa::ToSchema)] -pub struct SourceConfigV0_6 { +pub struct SourceConfigV0_7 { pub source_id: String, #[serde( diff --git a/quickwit/quickwit-control-plane/Cargo.toml b/quickwit/quickwit-control-plane/Cargo.toml index c8e1f6ebe46..200bca40c27 100644 --- a/quickwit/quickwit-control-plane/Cargo.toml +++ b/quickwit/quickwit-control-plane/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-control-plane" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "AGPL-3.0-or-later" # For a commercial, license, contact hello@quickwit.io diff --git a/quickwit/quickwit-datetime/Cargo.toml b/quickwit/quickwit-datetime/Cargo.toml index fd54515009a..ded76f314b6 100644 --- a/quickwit/quickwit-datetime/Cargo.toml +++ b/quickwit/quickwit-datetime/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-datetime" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "AGPL-3.0-or-later" # For a commercial, license, contact hello@quickwit.io diff --git a/quickwit/quickwit-directories/Cargo.toml b/quickwit/quickwit-directories/Cargo.toml index 52439309b4b..cfacd005fa4 100644 --- a/quickwit/quickwit-directories/Cargo.toml +++ b/quickwit/quickwit-directories/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-directories" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "AGPL-3.0-or-later" # For a commercial, license, contact hello@quickwit.io diff --git a/quickwit/quickwit-doc-mapper/Cargo.toml b/quickwit/quickwit-doc-mapper/Cargo.toml index 51dbc0a2f26..25944c79f9b 100644 --- a/quickwit/quickwit-doc-mapper/Cargo.toml +++ b/quickwit/quickwit-doc-mapper/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-doc-mapper" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "AGPL-3.0-or-later" # For a commercial, license, contact hello@quickwit.io diff --git a/quickwit/quickwit-index-management/Cargo.toml b/quickwit/quickwit-index-management/Cargo.toml index 69c4434b347..71e526d7430 100644 --- a/quickwit/quickwit-index-management/Cargo.toml +++ b/quickwit/quickwit-index-management/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-index-management" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "AGPL-3.0-or-later" # For a commercial, license, contact hello@quickwit.io diff --git a/quickwit/quickwit-indexing/Cargo.toml b/quickwit/quickwit-indexing/Cargo.toml index 126ba2bc03e..65de559f8a0 100644 --- a/quickwit/quickwit-indexing/Cargo.toml +++ b/quickwit/quickwit-indexing/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-indexing" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "AGPL-3.0-or-later" # For a commercial, license, contact hello@quickwit.io diff --git a/quickwit/quickwit-ingest/Cargo.toml b/quickwit/quickwit-ingest/Cargo.toml index 90aaf4df335..06c46b43cd2 100644 --- a/quickwit/quickwit-ingest/Cargo.toml +++ b/quickwit/quickwit-ingest/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-ingest" -version = "0.6.5-dev" +version = "0.7.0" edition = "2021" license = "AGPL-3.0-or-later" # For a commercial, license, contact hello@quickwit.io description = "Quickwit is a cost-efficient search engine." diff --git a/quickwit/quickwit-integration-tests/Cargo.toml b/quickwit/quickwit-integration-tests/Cargo.toml index 76dfdec79d6..ab9fc36a169 100644 --- a/quickwit/quickwit-integration-tests/Cargo.toml +++ b/quickwit/quickwit-integration-tests/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-integration-tests" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "AGPL-3.0-or-later" # For a commercial, license, contact hello@quickwit.io diff --git a/quickwit/quickwit-integration-tests/src/tests/basic_tests.rs b/quickwit/quickwit-integration-tests/src/tests/basic_tests.rs index f0264c7368b..ad8e68d5138 100644 --- a/quickwit/quickwit-integration-tests/src/tests/basic_tests.rs +++ b/quickwit/quickwit-integration-tests/src/tests/basic_tests.rs @@ -100,7 +100,7 @@ async fn test_standalone_server() { .indexes() .create( r#" - version: 0.6 + version: 0.7 index_id: my-new-index doc_mapping: field_mappings: @@ -169,7 +169,7 @@ async fn test_multi_nodes_cluster() { .indexes() .create( r#" - version: 0.6 + version: 0.7 index_id: my-new-multi-node-index doc_mapping: field_mappings: diff --git a/quickwit/quickwit-integration-tests/src/tests/index_tests.rs b/quickwit/quickwit-integration-tests/src/tests/index_tests.rs index f9e75c5d615..f038b62d32a 100644 --- a/quickwit/quickwit-integration-tests/src/tests/index_tests.rs +++ b/quickwit/quickwit-integration-tests/src/tests/index_tests.rs @@ -43,7 +43,7 @@ async fn test_restarting_standalone_server() { let index_id = "test-index-with-restarting"; let index_config = format!( r#" - version: 0.6 + version: 0.7 index_id: {} doc_mapping: field_mappings: @@ -215,7 +215,7 @@ async fn test_restarting_standalone_server() { } const TEST_INDEX_CONFIG: &str = r#" - version: 0.6 + version: 0.7 index_id: test_index doc_mapping: field_mappings: @@ -469,7 +469,7 @@ async fn test_very_large_index_name() { .create( format!( r#" - version: 0.6 + version: 0.7 index_id: {index_id} doc_mapping: field_mappings: @@ -524,7 +524,7 @@ async fn test_very_large_index_name() { .create( format!( r#" - version: 0.6 + version: 0.7 index_id: {oversized_index_id} doc_mapping: field_mappings: @@ -559,7 +559,7 @@ async fn test_shutdown() { .indexes() .create( r#" - version: 0.6 + version: 0.7 index_id: test_commit_modes_index doc_mapping: field_mappings: diff --git a/quickwit/quickwit-jaeger/Cargo.toml b/quickwit/quickwit-jaeger/Cargo.toml index 20978570efe..83963373c03 100644 --- a/quickwit/quickwit-jaeger/Cargo.toml +++ b/quickwit/quickwit-jaeger/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-jaeger" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "AGPL-3.0-or-later" # For a commercial, license, contact hello@quickwit.io diff --git a/quickwit/quickwit-janitor/Cargo.toml b/quickwit/quickwit-janitor/Cargo.toml index ce6a8930cad..8b9f0e2c28f 100644 --- a/quickwit/quickwit-janitor/Cargo.toml +++ b/quickwit/quickwit-janitor/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-janitor" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "AGPL-3.0-or-later" # For a commercial, license, contact hello@quickwit.io diff --git a/quickwit/quickwit-macros/Cargo.toml b/quickwit/quickwit-macros/Cargo.toml index fb86f23e3f1..359f70833f8 100644 --- a/quickwit/quickwit-macros/Cargo.toml +++ b/quickwit/quickwit-macros/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-macros" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "AGPL-3.0-or-later" # For a commercial, license, contact hello@quickwit.io diff --git a/quickwit/quickwit-macros/impl/Cargo.toml b/quickwit/quickwit-macros/impl/Cargo.toml index ab4d79b70b3..0d3b18c088d 100644 --- a/quickwit/quickwit-macros/impl/Cargo.toml +++ b/quickwit/quickwit-macros/impl/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-macros-impl" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "AGPL-3.0-or-later" # For a commercial, license, contact hello@quickwit.io diff --git a/quickwit/quickwit-metastore-utils/src/bin/README.md b/quickwit/quickwit-metastore-utils/src/bin/README.md index e7dcaa68fcf..cadf3d0d7cd 100644 --- a/quickwit/quickwit-metastore-utils/src/bin/README.md +++ b/quickwit/quickwit-metastore-utils/src/bin/README.md @@ -17,7 +17,7 @@ To get that, simply run: A minimal `quickwit.yaml` to run against the postgres could be ```yaml -version: "0.6" +version: "0.7" metastore_uri: postgres://quickwit-dev:quickwit-dev@localhost/quickwit-metastore-dev ``` diff --git a/quickwit/quickwit-metastore/Cargo.toml b/quickwit/quickwit-metastore/Cargo.toml index b0410c2ef15..b9b595ad403 100644 --- a/quickwit/quickwit-metastore/Cargo.toml +++ b/quickwit/quickwit-metastore/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-metastore" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "AGPL-3.0-or-later" # For a commercial, license, contact hello@quickwit.io diff --git a/quickwit/quickwit-metastore/src/backward_compatibility_tests/mod.rs b/quickwit/quickwit-metastore/src/backward_compatibility_tests/mod.rs index 6cecc18a77c..db951bf88a9 100644 --- a/quickwit/quickwit-metastore/src/backward_compatibility_tests/mod.rs +++ b/quickwit/quickwit-metastore/src/backward_compatibility_tests/mod.rs @@ -45,7 +45,7 @@ use crate::{IndexMetadata, SplitMetadata}; /// #[serde(rename="0.2")] /// V0_2(MyResourceV1) //< there was no change in this version. /// } -const GLOBAL_QUICKWIT_RESOURCE_VERSION: &str = "0.6"; +const GLOBAL_QUICKWIT_RESOURCE_VERSION: &str = "0.7"; /// This test makes sure that the resource is using the current `GLOBAL_QUICKWIT_RESOURCE_VERSION`. fn test_global_version(serializable: &T) -> anyhow::Result<()> { diff --git a/quickwit/quickwit-metastore/src/lib.rs b/quickwit/quickwit-metastore/src/lib.rs index 017d2c6bead..e515961311b 100644 --- a/quickwit/quickwit-metastore/src/lib.rs +++ b/quickwit/quickwit-metastore/src/lib.rs @@ -44,7 +44,7 @@ use std::ops::Range; pub use error::MetastoreResolverError; pub use metastore::control_plane_metastore::ControlPlaneMetastore; pub use metastore::file_backed_metastore::FileBackedMetastore; -pub(crate) use metastore::index_metadata::serialize::{IndexMetadataV0_6, VersionedIndexMetadata}; +pub(crate) use metastore::index_metadata::serialize::{IndexMetadataV0_7, VersionedIndexMetadata}; #[cfg(feature = "postgres")] pub use metastore::postgresql_metastore::PostgresqlMetastore; pub use metastore::{ @@ -58,16 +58,16 @@ pub use metastore_resolver::MetastoreResolver; use quickwit_common::is_disjoint; use quickwit_doc_mapper::tag_pruning::TagFilterAst; pub use split_metadata::{Split, SplitInfo, SplitMaturity, SplitMetadata, SplitState}; -pub(crate) use split_metadata_version::{SplitMetadataV0_6, VersionedSplitMetadata}; +pub(crate) use split_metadata_version::{SplitMetadataV0_7, VersionedSplitMetadata}; #[derive(utoipa::OpenApi)] #[openapi(components(schemas( Split, SplitState, VersionedIndexMetadata, - IndexMetadataV0_6, + IndexMetadataV0_7, VersionedSplitMetadata, - SplitMetadataV0_6, + SplitMetadataV0_7, )))] /// Schema used for the OpenAPI generation which are apart of this crate. pub struct MetastoreApiSchemas; diff --git a/quickwit/quickwit-metastore/src/metastore/file_backed_metastore/file_backed_index/serialize.rs b/quickwit/quickwit-metastore/src/metastore/file_backed_metastore/file_backed_index/serialize.rs index 28f13fe081c..ed4a975d465 100644 --- a/quickwit/quickwit-metastore/src/metastore/file_backed_metastore/file_backed_index/serialize.rs +++ b/quickwit/quickwit-metastore/src/metastore/file_backed_metastore/file_backed_index/serialize.rs @@ -32,29 +32,30 @@ use crate::{IndexMetadata, Split}; #[derive(Clone, Debug, Serialize, Deserialize)] #[serde(tag = "version")] pub(crate) enum VersionedFileBackedIndex { - #[serde(rename = "0.6")] + #[serde(rename = "0.7")] // Retro compatibility. + #[serde(alias = "0.6")] #[serde(alias = "0.5")] #[serde(alias = "0.4")] - V0_6(FileBackedIndexV0_6), + V0_7(FileBackedIndexV0_7), } impl From for VersionedFileBackedIndex { fn from(index: FileBackedIndex) -> Self { - VersionedFileBackedIndex::V0_6(index.into()) + VersionedFileBackedIndex::V0_7(index.into()) } } impl From for FileBackedIndex { fn from(index: VersionedFileBackedIndex) -> Self { match index { - VersionedFileBackedIndex::V0_6(v0_6) => v0_6.into(), + VersionedFileBackedIndex::V0_7(v0_6) => v0_6.into(), } } } #[derive(Clone, Debug, Serialize, Deserialize)] -pub(crate) struct FileBackedIndexV0_6 { +pub(crate) struct FileBackedIndexV0_7 { #[serde(rename = "index")] metadata: IndexMetadata, splits: Vec, @@ -64,7 +65,7 @@ pub(crate) struct FileBackedIndexV0_6 { delete_tasks: Vec, } -impl From for FileBackedIndexV0_6 { +impl From for FileBackedIndexV0_7 { fn from(index: FileBackedIndex) -> Self { let splits = index .splits @@ -99,8 +100,8 @@ impl From for FileBackedIndexV0_6 { } } -impl From for FileBackedIndex { - fn from(mut index: FileBackedIndexV0_6) -> Self { +impl From for FileBackedIndex { + fn from(mut index: FileBackedIndexV0_7) -> Self { // if the index is otel-traces-v0_6, convert set bytes fields input and output format to hex // to be compatible with the v0_6 version. // TODO: remove after 0.8 release. diff --git a/quickwit/quickwit-metastore/src/metastore/index_metadata/serialize.rs b/quickwit/quickwit-metastore/src/metastore/index_metadata/serialize.rs index 00adaede029..b9a5e3692bf 100644 --- a/quickwit/quickwit-metastore/src/metastore/index_metadata/serialize.rs +++ b/quickwit/quickwit-metastore/src/metastore/index_metadata/serialize.rs @@ -30,16 +30,17 @@ use crate::IndexMetadata; #[derive(Clone, Debug, Serialize, Deserialize, utoipa::ToSchema)] #[serde(tag = "version")] pub(crate) enum VersionedIndexMetadata { - #[serde(rename = "0.6")] + #[serde(rename = "0.7")] // Retro compatibility. + #[serde(alias = "0.6")] #[serde(alias = "0.5")] #[serde(alias = "0.4")] - V0_6(IndexMetadataV0_6), + V0_7(IndexMetadataV0_7), } impl From for VersionedIndexMetadata { fn from(index_metadata: IndexMetadata) -> Self { - VersionedIndexMetadata::V0_6(index_metadata.into()) + VersionedIndexMetadata::V0_7(index_metadata.into()) } } @@ -50,12 +51,12 @@ impl TryFrom for IndexMetadata { match index_metadata { // When we have more than one version, you should chain version conversion. // ie. Implement conversion from V_k -> V_{k+1} - VersionedIndexMetadata::V0_6(v6) => v6.try_into(), + VersionedIndexMetadata::V0_7(v6) => v6.try_into(), } } } -impl From for IndexMetadataV0_6 { +impl From for IndexMetadataV0_7 { fn from(index_metadata: IndexMetadata) -> Self { let sources: Vec = index_metadata.sources.values().cloned().collect(); Self { @@ -69,7 +70,7 @@ impl From for IndexMetadataV0_6 { } #[derive(Clone, Debug, Serialize, Deserialize, utoipa::ToSchema)] -pub(crate) struct IndexMetadataV0_6 { +pub(crate) struct IndexMetadataV0_7 { #[schema(value_type = String)] // Defaults to nil for backward compatibility. #[serde(default, alias = "index_id")] @@ -84,10 +85,10 @@ pub(crate) struct IndexMetadataV0_6 { pub sources: Vec, } -impl TryFrom for IndexMetadata { +impl TryFrom for IndexMetadata { type Error = anyhow::Error; - fn try_from(v0_6: IndexMetadataV0_6) -> anyhow::Result { + fn try_from(v0_6: IndexMetadataV0_7) -> anyhow::Result { let mut sources: HashMap = Default::default(); for source in v0_6.sources { if sources.contains_key(&source.source_id) { diff --git a/quickwit/quickwit-metastore/src/split_metadata_version.rs b/quickwit/quickwit-metastore/src/split_metadata_version.rs index fa37fe33383..014c5c9b986 100644 --- a/quickwit/quickwit-metastore/src/split_metadata_version.rs +++ b/quickwit/quickwit-metastore/src/split_metadata_version.rs @@ -27,7 +27,7 @@ use crate::split_metadata::{utc_now_timestamp, SplitMaturity}; use crate::SplitMetadata; #[derive(Clone, Debug, Default, Eq, PartialEq, Serialize, Deserialize, utoipa::ToSchema)] -pub(crate) struct SplitMetadataV0_6 { +pub(crate) struct SplitMetadataV0_7 { /// Split ID. Joined with the index URI (/), this ID /// should be enough to uniquely identify a split. /// In reality, some information may be implicitly configured @@ -93,8 +93,8 @@ pub(crate) struct SplitMetadataV0_6 { num_merge_ops: usize, } -impl From for SplitMetadata { - fn from(v6: SplitMetadataV0_6) -> Self { +impl From for SplitMetadata { + fn from(v6: SplitMetadataV0_7) -> Self { let source_id = v6.source_id.unwrap_or_else(|| "unknown".to_string()); let node_id = if let Some(node_id) = v6.node_id { @@ -130,9 +130,9 @@ impl From for SplitMetadata { } } -impl From for SplitMetadataV0_6 { +impl From for SplitMetadataV0_7 { fn from(split: SplitMetadata) -> Self { - SplitMetadataV0_6 { + SplitMetadataV0_7 { split_id: split.split_id, index_uid: split.index_uid, partition_id: split.partition_id, @@ -154,23 +154,24 @@ impl From for SplitMetadataV0_6 { #[derive(Serialize, Deserialize, utoipa::ToSchema)] #[serde(tag = "version")] pub(crate) enum VersionedSplitMetadata { - #[serde(rename = "0.6")] + #[serde(rename = "0.7")] // Retro compatibility. + #[serde(alias = "0.6")] #[serde(alias = "0.5")] #[serde(alias = "0.4")] - V0_6(SplitMetadataV0_6), + V0_7(SplitMetadataV0_7), } impl From for SplitMetadata { fn from(versioned_helper: VersionedSplitMetadata) -> Self { match versioned_helper { - VersionedSplitMetadata::V0_6(v0_6) => v0_6.into(), + VersionedSplitMetadata::V0_7(v0_6) => v0_6.into(), } } } impl From for VersionedSplitMetadata { fn from(split_metadata: SplitMetadata) -> Self { - VersionedSplitMetadata::V0_6(split_metadata.into()) + VersionedSplitMetadata::V0_7(split_metadata.into()) } } diff --git a/quickwit/quickwit-metastore/test-data/file-backed-index/v0.4.expected.json b/quickwit/quickwit-metastore/test-data/file-backed-index/v0.4.expected.json index 91c552514d7..ef8879c5007 100644 --- a/quickwit/quickwit-metastore/test-data/file-backed-index/v0.4.expected.json +++ b/quickwit/quickwit-metastore/test-data/file-backed-index/v0.4.expected.json @@ -111,7 +111,7 @@ "message" ] }, - "version": "0.6" + "version": "0.7" }, "index_uid": "my-index:", "sources": [ @@ -126,10 +126,10 @@ }, "source_id": "kafka-source", "source_type": "kafka", - "version": "0.6" + "version": "0.7" } ], - "version": "0.6" + "version": "0.7" }, "splits": [ { @@ -161,8 +161,8 @@ }, "uncompressed_docs_size_in_bytes": 234234, "update_timestamp": 1789, - "version": "0.6" + "version": "0.7" } ], - "version": "0.6" + "version": "0.7" } diff --git a/quickwit/quickwit-metastore/test-data/file-backed-index/v0.5.expected.json b/quickwit/quickwit-metastore/test-data/file-backed-index/v0.5.expected.json index 239836b57ff..e4107f055b2 100644 --- a/quickwit/quickwit-metastore/test-data/file-backed-index/v0.5.expected.json +++ b/quickwit/quickwit-metastore/test-data/file-backed-index/v0.5.expected.json @@ -111,7 +111,7 @@ "message" ] }, - "version": "0.6" + "version": "0.7" }, "index_uid": "my-index:", "sources": [ @@ -130,10 +130,10 @@ "script": ".message = downcase(string!(.message))", "timezone": "UTC" }, - "version": "0.6" + "version": "0.7" } ], - "version": "0.6" + "version": "0.7" }, "splits": [ { @@ -165,8 +165,8 @@ }, "uncompressed_docs_size_in_bytes": 234234, "update_timestamp": 1789, - "version": "0.6" + "version": "0.7" } ], - "version": "0.6" + "version": "0.7" } diff --git a/quickwit/quickwit-metastore/test-data/file-backed-index/v0.6.expected.json b/quickwit/quickwit-metastore/test-data/file-backed-index/v0.6.expected.json index c8a478a3c3e..60c52413e18 100644 --- a/quickwit/quickwit-metastore/test-data/file-backed-index/v0.6.expected.json +++ b/quickwit/quickwit-metastore/test-data/file-backed-index/v0.6.expected.json @@ -118,7 +118,7 @@ "message" ] }, - "version": "0.6" + "version": "0.7" }, "index_uid": "my-index:00000000000000000000000000", "sources": [ @@ -137,10 +137,10 @@ "script": ".message = downcase(string!(.message))", "timezone": "UTC" }, - "version": "0.6" + "version": "0.7" } ], - "version": "0.6" + "version": "0.7" }, "shards": { "_ingest-source": { @@ -188,8 +188,8 @@ }, "uncompressed_docs_size_in_bytes": 234234, "update_timestamp": 1789, - "version": "0.6" + "version": "0.7" } ], - "version": "0.6" + "version": "0.7" } diff --git a/quickwit/quickwit-metastore/test-data/file-backed-index/v0.7.expected.json b/quickwit/quickwit-metastore/test-data/file-backed-index/v0.7.expected.json new file mode 100644 index 00000000000..60c52413e18 --- /dev/null +++ b/quickwit/quickwit-metastore/test-data/file-backed-index/v0.7.expected.json @@ -0,0 +1,195 @@ +{ + "delete_tasks": [ + { + "create_timestamp": 0, + "delete_query": { + "index_uid": "my-index:00000000000000000000000000", + "query_ast": "{\"type\":\"bool\",\"must\":[{\"type\":\"full_text\",\"field\":\"body\",\"text\":\"Harry\",\"params\":{\"mode\":{\"type\":\"phrase_fallback_to_intersection\"}}},{\"type\":\"full_text\",\"field\":\"body\",\"text\":\"Potter\",\"params\":{\"mode\":{\"type\":\"phrase_fallback_to_intersection\"}}}]}" + }, + "opstamp": 10 + } + ], + "index": { + "checkpoint": { + "kafka-source": { + "00000000000000000000": "00000000000000000042" + } + }, + "create_timestamp": 1789, + "index_config": { + "doc_mapping": { + "dynamic_mapping": { + "expand_dots": true, + "fast": { + "normalizer": "raw" + }, + "indexed": true, + "record": "basic", + "stored": true, + "tokenizer": "raw" + }, + "field_mappings": [ + { + "coerce": true, + "fast": true, + "indexed": true, + "name": "tenant_id", + "output_format": "number", + "stored": true, + "type": "u64" + }, + { + "fast": true, + "fast_precision": "seconds", + "indexed": true, + "input_formats": [ + "rfc3339", + "unix_timestamp" + ], + "name": "timestamp", + "output_format": "rfc3339", + "stored": true, + "type": "datetime" + }, + { + "fast": false, + "fieldnorms": false, + "indexed": true, + "name": "log_level", + "record": "basic", + "stored": true, + "tokenizer": "raw", + "type": "text" + }, + { + "fast": false, + "fieldnorms": false, + "indexed": true, + "name": "message", + "record": "position", + "stored": true, + "tokenizer": "default", + "type": "text" + } + ], + "index_field_presence": true, + "max_num_partitions": 100, + "mode": "dynamic", + "partition_key": "tenant_id", + "store_source": true, + "tag_fields": [ + "log_level", + "tenant_id" + ], + "timestamp_field": "timestamp", + "tokenizers": [ + { + "filters": [], + "name": "custom_tokenizer", + "pattern": "[^\\p{L}\\p{N}]+", + "type": "regex" + } + ] + }, + "index_id": "my-index", + "index_uri": "s3://quickwit-indexes/my-index", + "indexing_settings": { + "commit_timeout_secs": 301, + "docstore_blocksize": 1000000, + "docstore_compression_level": 8, + "merge_policy": { + "maturation_period": "2days", + "max_merge_factor": 11, + "merge_factor": 9, + "min_level_num_docs": 100000, + "type": "stable_log" + }, + "resources": { + "heap_size": "50.0 MB" + }, + "split_num_docs_target": 10000001 + }, + "retention": { + "period": "90 days", + "schedule": "daily" + }, + "search_settings": { + "default_search_fields": [ + "message" + ] + }, + "version": "0.7" + }, + "index_uid": "my-index:00000000000000000000000000", + "sources": [ + { + "desired_num_pipelines": 2, + "enabled": true, + "input_format": "json", + "max_num_pipelines_per_indexer": 2, + "params": { + "client_params": {}, + "topic": "kafka-topic" + }, + "source_id": "kafka-source", + "source_type": "kafka", + "transform": { + "script": ".message = downcase(string!(.message))", + "timezone": "UTC" + }, + "version": "0.7" + } + ], + "version": "0.7" + }, + "shards": { + "_ingest-source": { + "next_shard_id": 2, + "shards": [ + { + "follower_id": "follower-ingester", + "index_uid": "my-index:00000000000000000000000000", + "leader_id": "leader-ingester", + "shard_id": 1, + "shard_state": 0, + "source_id": "_ingest-source" + } + ] + } + }, + "splits": [ + { + "create_timestamp": 3, + "delete_opstamp": 10, + "footer_offsets": { + "end": 2000, + "start": 1000 + }, + "index_uid": "my-index:00000000000000000000000000", + "maturity": { + "maturation_period_millis": 4000, + "type": "immature" + }, + "node_id": "node", + "num_docs": 12303, + "num_merge_ops": 3, + "partition_id": 7, + "publish_timestamp": 1789, + "source_id": "source", + "split_id": "split", + "split_state": "Published", + "tags": [ + "234", + "aaa" + ], + "time_range": { + "end": 130198, + "start": 121000 + }, + "uncompressed_docs_size_in_bytes": 234234, + "update_timestamp": 1789, + "version": "0.7" + } + ], + "version": "0.7" +} diff --git a/quickwit/quickwit-metastore/test-data/file-backed-index/v0.7.json b/quickwit/quickwit-metastore/test-data/file-backed-index/v0.7.json new file mode 100644 index 00000000000..60c52413e18 --- /dev/null +++ b/quickwit/quickwit-metastore/test-data/file-backed-index/v0.7.json @@ -0,0 +1,195 @@ +{ + "delete_tasks": [ + { + "create_timestamp": 0, + "delete_query": { + "index_uid": "my-index:00000000000000000000000000", + "query_ast": "{\"type\":\"bool\",\"must\":[{\"type\":\"full_text\",\"field\":\"body\",\"text\":\"Harry\",\"params\":{\"mode\":{\"type\":\"phrase_fallback_to_intersection\"}}},{\"type\":\"full_text\",\"field\":\"body\",\"text\":\"Potter\",\"params\":{\"mode\":{\"type\":\"phrase_fallback_to_intersection\"}}}]}" + }, + "opstamp": 10 + } + ], + "index": { + "checkpoint": { + "kafka-source": { + "00000000000000000000": "00000000000000000042" + } + }, + "create_timestamp": 1789, + "index_config": { + "doc_mapping": { + "dynamic_mapping": { + "expand_dots": true, + "fast": { + "normalizer": "raw" + }, + "indexed": true, + "record": "basic", + "stored": true, + "tokenizer": "raw" + }, + "field_mappings": [ + { + "coerce": true, + "fast": true, + "indexed": true, + "name": "tenant_id", + "output_format": "number", + "stored": true, + "type": "u64" + }, + { + "fast": true, + "fast_precision": "seconds", + "indexed": true, + "input_formats": [ + "rfc3339", + "unix_timestamp" + ], + "name": "timestamp", + "output_format": "rfc3339", + "stored": true, + "type": "datetime" + }, + { + "fast": false, + "fieldnorms": false, + "indexed": true, + "name": "log_level", + "record": "basic", + "stored": true, + "tokenizer": "raw", + "type": "text" + }, + { + "fast": false, + "fieldnorms": false, + "indexed": true, + "name": "message", + "record": "position", + "stored": true, + "tokenizer": "default", + "type": "text" + } + ], + "index_field_presence": true, + "max_num_partitions": 100, + "mode": "dynamic", + "partition_key": "tenant_id", + "store_source": true, + "tag_fields": [ + "log_level", + "tenant_id" + ], + "timestamp_field": "timestamp", + "tokenizers": [ + { + "filters": [], + "name": "custom_tokenizer", + "pattern": "[^\\p{L}\\p{N}]+", + "type": "regex" + } + ] + }, + "index_id": "my-index", + "index_uri": "s3://quickwit-indexes/my-index", + "indexing_settings": { + "commit_timeout_secs": 301, + "docstore_blocksize": 1000000, + "docstore_compression_level": 8, + "merge_policy": { + "maturation_period": "2days", + "max_merge_factor": 11, + "merge_factor": 9, + "min_level_num_docs": 100000, + "type": "stable_log" + }, + "resources": { + "heap_size": "50.0 MB" + }, + "split_num_docs_target": 10000001 + }, + "retention": { + "period": "90 days", + "schedule": "daily" + }, + "search_settings": { + "default_search_fields": [ + "message" + ] + }, + "version": "0.7" + }, + "index_uid": "my-index:00000000000000000000000000", + "sources": [ + { + "desired_num_pipelines": 2, + "enabled": true, + "input_format": "json", + "max_num_pipelines_per_indexer": 2, + "params": { + "client_params": {}, + "topic": "kafka-topic" + }, + "source_id": "kafka-source", + "source_type": "kafka", + "transform": { + "script": ".message = downcase(string!(.message))", + "timezone": "UTC" + }, + "version": "0.7" + } + ], + "version": "0.7" + }, + "shards": { + "_ingest-source": { + "next_shard_id": 2, + "shards": [ + { + "follower_id": "follower-ingester", + "index_uid": "my-index:00000000000000000000000000", + "leader_id": "leader-ingester", + "shard_id": 1, + "shard_state": 0, + "source_id": "_ingest-source" + } + ] + } + }, + "splits": [ + { + "create_timestamp": 3, + "delete_opstamp": 10, + "footer_offsets": { + "end": 2000, + "start": 1000 + }, + "index_uid": "my-index:00000000000000000000000000", + "maturity": { + "maturation_period_millis": 4000, + "type": "immature" + }, + "node_id": "node", + "num_docs": 12303, + "num_merge_ops": 3, + "partition_id": 7, + "publish_timestamp": 1789, + "source_id": "source", + "split_id": "split", + "split_state": "Published", + "tags": [ + "234", + "aaa" + ], + "time_range": { + "end": 130198, + "start": 121000 + }, + "uncompressed_docs_size_in_bytes": 234234, + "update_timestamp": 1789, + "version": "0.7" + } + ], + "version": "0.7" +} diff --git a/quickwit/quickwit-metastore/test-data/index-metadata/v0.4.expected.json b/quickwit/quickwit-metastore/test-data/index-metadata/v0.4.expected.json index 1962205d42d..8be61900d1f 100644 --- a/quickwit/quickwit-metastore/test-data/index-metadata/v0.4.expected.json +++ b/quickwit/quickwit-metastore/test-data/index-metadata/v0.4.expected.json @@ -100,7 +100,7 @@ "message" ] }, - "version": "0.6" + "version": "0.7" }, "index_uid": "my-index:", "sources": [ @@ -119,8 +119,8 @@ "script": ".message = downcase(string!(.message))", "timezone": "UTC" }, - "version": "0.6" + "version": "0.7" } ], - "version": "0.6" + "version": "0.7" } diff --git a/quickwit/quickwit-metastore/test-data/index-metadata/v0.5.expected.json b/quickwit/quickwit-metastore/test-data/index-metadata/v0.5.expected.json index 1962205d42d..8be61900d1f 100644 --- a/quickwit/quickwit-metastore/test-data/index-metadata/v0.5.expected.json +++ b/quickwit/quickwit-metastore/test-data/index-metadata/v0.5.expected.json @@ -100,7 +100,7 @@ "message" ] }, - "version": "0.6" + "version": "0.7" }, "index_uid": "my-index:", "sources": [ @@ -119,8 +119,8 @@ "script": ".message = downcase(string!(.message))", "timezone": "UTC" }, - "version": "0.6" + "version": "0.7" } ], - "version": "0.6" + "version": "0.7" } diff --git a/quickwit/quickwit-metastore/test-data/index-metadata/v0.6.expected.json b/quickwit/quickwit-metastore/test-data/index-metadata/v0.6.expected.json index f6522a1ba38..0920f2d776f 100644 --- a/quickwit/quickwit-metastore/test-data/index-metadata/v0.6.expected.json +++ b/quickwit/quickwit-metastore/test-data/index-metadata/v0.6.expected.json @@ -107,7 +107,7 @@ "message" ] }, - "version": "0.6" + "version": "0.7" }, "index_uid": "my-index:00000000000000000000000000", "sources": [ @@ -126,8 +126,8 @@ "script": ".message = downcase(string!(.message))", "timezone": "UTC" }, - "version": "0.6" + "version": "0.7" } ], - "version": "0.6" + "version": "0.7" } diff --git a/quickwit/quickwit-metastore/test-data/index-metadata/v0.7.expected.json b/quickwit/quickwit-metastore/test-data/index-metadata/v0.7.expected.json new file mode 100644 index 00000000000..0920f2d776f --- /dev/null +++ b/quickwit/quickwit-metastore/test-data/index-metadata/v0.7.expected.json @@ -0,0 +1,133 @@ +{ + "checkpoint": { + "kafka-source": { + "00000000000000000000": "00000000000000000042" + } + }, + "create_timestamp": 1789, + "index_config": { + "doc_mapping": { + "dynamic_mapping": { + "expand_dots": true, + "fast": { + "normalizer": "raw" + }, + "indexed": true, + "record": "basic", + "stored": true, + "tokenizer": "raw" + }, + "field_mappings": [ + { + "coerce": true, + "fast": true, + "indexed": true, + "name": "tenant_id", + "output_format": "number", + "stored": true, + "type": "u64" + }, + { + "fast": true, + "fast_precision": "seconds", + "indexed": true, + "input_formats": [ + "rfc3339", + "unix_timestamp" + ], + "name": "timestamp", + "output_format": "rfc3339", + "stored": true, + "type": "datetime" + }, + { + "fast": false, + "fieldnorms": false, + "indexed": true, + "name": "log_level", + "record": "basic", + "stored": true, + "tokenizer": "raw", + "type": "text" + }, + { + "fast": false, + "fieldnorms": false, + "indexed": true, + "name": "message", + "record": "position", + "stored": true, + "tokenizer": "default", + "type": "text" + } + ], + "index_field_presence": true, + "max_num_partitions": 100, + "mode": "dynamic", + "partition_key": "tenant_id", + "store_source": true, + "tag_fields": [ + "log_level", + "tenant_id" + ], + "timestamp_field": "timestamp", + "tokenizers": [ + { + "filters": [], + "name": "custom_tokenizer", + "pattern": "[^\\p{L}\\p{N}]+", + "type": "regex" + } + ] + }, + "index_id": "my-index", + "index_uri": "s3://quickwit-indexes/my-index", + "indexing_settings": { + "commit_timeout_secs": 301, + "docstore_blocksize": 1000000, + "docstore_compression_level": 8, + "merge_policy": { + "maturation_period": "2days", + "max_merge_factor": 11, + "merge_factor": 9, + "min_level_num_docs": 100000, + "type": "stable_log" + }, + "resources": { + "heap_size": "50.0 MB" + }, + "split_num_docs_target": 10000001 + }, + "retention": { + "period": "90 days", + "schedule": "daily" + }, + "search_settings": { + "default_search_fields": [ + "message" + ] + }, + "version": "0.7" + }, + "index_uid": "my-index:00000000000000000000000000", + "sources": [ + { + "desired_num_pipelines": 2, + "enabled": true, + "input_format": "json", + "max_num_pipelines_per_indexer": 2, + "params": { + "client_params": {}, + "topic": "kafka-topic" + }, + "source_id": "kafka-source", + "source_type": "kafka", + "transform": { + "script": ".message = downcase(string!(.message))", + "timezone": "UTC" + }, + "version": "0.7" + } + ], + "version": "0.7" +} diff --git a/quickwit/quickwit-metastore/test-data/index-metadata/v0.7.json b/quickwit/quickwit-metastore/test-data/index-metadata/v0.7.json new file mode 100644 index 00000000000..0920f2d776f --- /dev/null +++ b/quickwit/quickwit-metastore/test-data/index-metadata/v0.7.json @@ -0,0 +1,133 @@ +{ + "checkpoint": { + "kafka-source": { + "00000000000000000000": "00000000000000000042" + } + }, + "create_timestamp": 1789, + "index_config": { + "doc_mapping": { + "dynamic_mapping": { + "expand_dots": true, + "fast": { + "normalizer": "raw" + }, + "indexed": true, + "record": "basic", + "stored": true, + "tokenizer": "raw" + }, + "field_mappings": [ + { + "coerce": true, + "fast": true, + "indexed": true, + "name": "tenant_id", + "output_format": "number", + "stored": true, + "type": "u64" + }, + { + "fast": true, + "fast_precision": "seconds", + "indexed": true, + "input_formats": [ + "rfc3339", + "unix_timestamp" + ], + "name": "timestamp", + "output_format": "rfc3339", + "stored": true, + "type": "datetime" + }, + { + "fast": false, + "fieldnorms": false, + "indexed": true, + "name": "log_level", + "record": "basic", + "stored": true, + "tokenizer": "raw", + "type": "text" + }, + { + "fast": false, + "fieldnorms": false, + "indexed": true, + "name": "message", + "record": "position", + "stored": true, + "tokenizer": "default", + "type": "text" + } + ], + "index_field_presence": true, + "max_num_partitions": 100, + "mode": "dynamic", + "partition_key": "tenant_id", + "store_source": true, + "tag_fields": [ + "log_level", + "tenant_id" + ], + "timestamp_field": "timestamp", + "tokenizers": [ + { + "filters": [], + "name": "custom_tokenizer", + "pattern": "[^\\p{L}\\p{N}]+", + "type": "regex" + } + ] + }, + "index_id": "my-index", + "index_uri": "s3://quickwit-indexes/my-index", + "indexing_settings": { + "commit_timeout_secs": 301, + "docstore_blocksize": 1000000, + "docstore_compression_level": 8, + "merge_policy": { + "maturation_period": "2days", + "max_merge_factor": 11, + "merge_factor": 9, + "min_level_num_docs": 100000, + "type": "stable_log" + }, + "resources": { + "heap_size": "50.0 MB" + }, + "split_num_docs_target": 10000001 + }, + "retention": { + "period": "90 days", + "schedule": "daily" + }, + "search_settings": { + "default_search_fields": [ + "message" + ] + }, + "version": "0.7" + }, + "index_uid": "my-index:00000000000000000000000000", + "sources": [ + { + "desired_num_pipelines": 2, + "enabled": true, + "input_format": "json", + "max_num_pipelines_per_indexer": 2, + "params": { + "client_params": {}, + "topic": "kafka-topic" + }, + "source_id": "kafka-source", + "source_type": "kafka", + "transform": { + "script": ".message = downcase(string!(.message))", + "timezone": "UTC" + }, + "version": "0.7" + } + ], + "version": "0.7" +} diff --git a/quickwit/quickwit-metastore/test-data/split-metadata/v0.4.expected.json b/quickwit/quickwit-metastore/test-data/split-metadata/v0.4.expected.json index ad772409417..1dbbba0b6c3 100644 --- a/quickwit/quickwit-metastore/test-data/split-metadata/v0.4.expected.json +++ b/quickwit/quickwit-metastore/test-data/split-metadata/v0.4.expected.json @@ -24,5 +24,5 @@ "start": 121000 }, "uncompressed_docs_size_in_bytes": 234234, - "version": "0.6" + "version": "0.7" } diff --git a/quickwit/quickwit-metastore/test-data/split-metadata/v0.5.expected.json b/quickwit/quickwit-metastore/test-data/split-metadata/v0.5.expected.json index ad772409417..1dbbba0b6c3 100644 --- a/quickwit/quickwit-metastore/test-data/split-metadata/v0.5.expected.json +++ b/quickwit/quickwit-metastore/test-data/split-metadata/v0.5.expected.json @@ -24,5 +24,5 @@ "start": 121000 }, "uncompressed_docs_size_in_bytes": 234234, - "version": "0.6" + "version": "0.7" } diff --git a/quickwit/quickwit-metastore/test-data/split-metadata/v0.6.expected.json b/quickwit/quickwit-metastore/test-data/split-metadata/v0.6.expected.json index 9c1f6311c86..d83ecc012d9 100644 --- a/quickwit/quickwit-metastore/test-data/split-metadata/v0.6.expected.json +++ b/quickwit/quickwit-metastore/test-data/split-metadata/v0.6.expected.json @@ -25,5 +25,5 @@ "start": 121000 }, "uncompressed_docs_size_in_bytes": 234234, - "version": "0.6" + "version": "0.7" } diff --git a/quickwit/quickwit-metastore/test-data/split-metadata/v0.7.expected.json b/quickwit/quickwit-metastore/test-data/split-metadata/v0.7.expected.json new file mode 100644 index 00000000000..d83ecc012d9 --- /dev/null +++ b/quickwit/quickwit-metastore/test-data/split-metadata/v0.7.expected.json @@ -0,0 +1,29 @@ +{ + "create_timestamp": 3, + "delete_opstamp": 10, + "footer_offsets": { + "end": 2000, + "start": 1000 + }, + "index_uid": "my-index:00000000000000000000000000", + "maturity": { + "maturation_period_millis": 4000, + "type": "immature" + }, + "node_id": "node", + "num_docs": 12303, + "num_merge_ops": 3, + "partition_id": 7, + "source_id": "source", + "split_id": "split", + "tags": [ + "234", + "aaa" + ], + "time_range": { + "end": 130198, + "start": 121000 + }, + "uncompressed_docs_size_in_bytes": 234234, + "version": "0.7" +} diff --git a/quickwit/quickwit-metastore/test-data/split-metadata/v0.7.json b/quickwit/quickwit-metastore/test-data/split-metadata/v0.7.json new file mode 100644 index 00000000000..d83ecc012d9 --- /dev/null +++ b/quickwit/quickwit-metastore/test-data/split-metadata/v0.7.json @@ -0,0 +1,29 @@ +{ + "create_timestamp": 3, + "delete_opstamp": 10, + "footer_offsets": { + "end": 2000, + "start": 1000 + }, + "index_uid": "my-index:00000000000000000000000000", + "maturity": { + "maturation_period_millis": 4000, + "type": "immature" + }, + "node_id": "node", + "num_docs": 12303, + "num_merge_ops": 3, + "partition_id": 7, + "source_id": "source", + "split_id": "split", + "tags": [ + "234", + "aaa" + ], + "time_range": { + "end": 130198, + "start": 121000 + }, + "uncompressed_docs_size_in_bytes": 234234, + "version": "0.7" +} diff --git a/quickwit/quickwit-opentelemetry/Cargo.toml b/quickwit/quickwit-opentelemetry/Cargo.toml index e394825b333..9359012cebd 100644 --- a/quickwit/quickwit-opentelemetry/Cargo.toml +++ b/quickwit/quickwit-opentelemetry/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-opentelemetry" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "AGPL-3.0-or-later" # For a commercial, license, contact hello@quickwit.io diff --git a/quickwit/quickwit-opentelemetry/src/otlp/logs.rs b/quickwit/quickwit-opentelemetry/src/otlp/logs.rs index 7b385f2b261..dc9d5b01ecf 100644 --- a/quickwit/quickwit-opentelemetry/src/otlp/logs.rs +++ b/quickwit/quickwit-opentelemetry/src/otlp/logs.rs @@ -47,7 +47,7 @@ use crate::otlp::metrics::OTLP_SERVICE_METRICS; pub const OTEL_LOGS_INDEX_ID: &str = "otel-logs-v0_6"; const OTEL_LOGS_INDEX_CONFIG: &str = r#" -version: 0.6 +version: 0.7 index_id: ${INDEX_ID} diff --git a/quickwit/quickwit-opentelemetry/src/otlp/traces.rs b/quickwit/quickwit-opentelemetry/src/otlp/traces.rs index d1f510c7504..d7cca0d62c4 100644 --- a/quickwit/quickwit-opentelemetry/src/otlp/traces.rs +++ b/quickwit/quickwit-opentelemetry/src/otlp/traces.rs @@ -55,7 +55,7 @@ pub const OTEL_TRACES_INDEX_ID: &str = "otel-traces-v0_7"; pub const OTEL_TRACES_INDEX_ID_PATTERN: &str = "otel-traces-v0_*"; const OTEL_TRACES_INDEX_CONFIG: &str = r#" -version: 0.6 +version: 0.7 index_id: ${INDEX_ID} diff --git a/quickwit/quickwit-proto/Cargo.toml b/quickwit/quickwit-proto/Cargo.toml index 4d81ac71eeb..93cda9d4363 100644 --- a/quickwit/quickwit-proto/Cargo.toml +++ b/quickwit/quickwit-proto/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-proto" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "AGPL-3.0-or-later" # For a commercial, license, contact hello@quickwit.io diff --git a/quickwit/quickwit-query/Cargo.toml b/quickwit/quickwit-query/Cargo.toml index 0902deb7cbe..c4b50d596c7 100644 --- a/quickwit/quickwit-query/Cargo.toml +++ b/quickwit/quickwit-query/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-query" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "AGPL-3.0-or-later" # For a commercial, license, contact hello@quickwit.io diff --git a/quickwit/quickwit-rest-client/Cargo.toml b/quickwit/quickwit-rest-client/Cargo.toml index 1ebfe3bfe69..bd6abccd306 100644 --- a/quickwit/quickwit-rest-client/Cargo.toml +++ b/quickwit/quickwit-rest-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-rest-client" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "AGPL-3.0-or-later" # For a commercial, license, contact hello@quickwit.io diff --git a/quickwit/quickwit-search/Cargo.toml b/quickwit/quickwit-search/Cargo.toml index f75c49d73fd..0bc3c457834 100644 --- a/quickwit/quickwit-search/Cargo.toml +++ b/quickwit/quickwit-search/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-search" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "AGPL-3.0-or-later" # For a commercial, license, contact hello@quickwit.io diff --git a/quickwit/quickwit-serve/Cargo.toml b/quickwit/quickwit-serve/Cargo.toml index 6a39807efaa..f80b7166469 100644 --- a/quickwit/quickwit-serve/Cargo.toml +++ b/quickwit/quickwit-serve/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-serve" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "AGPL-3.0-or-later" # For a commercial, license, contact hello@quickwit.io diff --git a/quickwit/quickwit-serve/src/index_api/rest_handler.rs b/quickwit/quickwit-serve/src/index_api/rest_handler.rs index 4a8b6fc71bd..fa00dbff623 100644 --- a/quickwit/quickwit-serve/src/index_api/rest_handler.rs +++ b/quickwit/quickwit-serve/src/index_api/rest_handler.rs @@ -1355,7 +1355,7 @@ mod tests { .path("/indexes?overwrite=true") .method("POST") .json(&true) - .body(r#"{"version": "0.6", "index_id": "hdfs-logs", "doc_mapping": {"field_mappings":[{"name": "timestamp", "type": "i64", "fast": true, "indexed": true}]}}"#) + .body(r#"{"version": "0.7", "index_id": "hdfs-logs", "doc_mapping": {"field_mappings":[{"name": "timestamp", "type": "i64", "fast": true, "indexed": true}]}}"#) .reply(&index_management_handler) .await; assert_eq!(resp.status(), 200); @@ -1365,7 +1365,7 @@ mod tests { .path("/indexes?overwrite=true") .method("POST") .json(&true) - .body(r#"{"version": "0.6", "index_id": "hdfs-logs", "doc_mapping": {"field_mappings":[{"name": "timestamp", "type": "i64", "fast": true, "indexed": true}]}}"#) + .body(r#"{"version": "0.7", "index_id": "hdfs-logs", "doc_mapping": {"field_mappings":[{"name": "timestamp", "type": "i64", "fast": true, "indexed": true}]}}"#) .reply(&index_management_handler) .await; assert_eq!(resp.status(), 200); @@ -1375,7 +1375,7 @@ mod tests { .path("/indexes") .method("POST") .json(&true) - .body(r#"{"version": "0.6", "index_id": "hdfs-logs", "doc_mapping": {"field_mappings":[{"name": "timestamp", "type": "i64", "fast": true, "indexed": true}]}}"#) + .body(r#"{"version": "0.7", "index_id": "hdfs-logs", "doc_mapping": {"field_mappings":[{"name": "timestamp", "type": "i64", "fast": true, "indexed": true}]}}"#) .reply(&index_management_handler) .await; assert_eq!(resp.status(), 400); @@ -1394,7 +1394,7 @@ mod tests { .path("/indexes") .method("POST") .json(&true) - .body(r#"{"version": "0.6", "index_id": "hdfs-logs", "doc_mapping": {"field_mappings":[{"name": "timestamp", "type": "i64", "fast": true, "indexed": true}]}}"#) + .body(r#"{"version": "0.7", "index_id": "hdfs-logs", "doc_mapping": {"field_mappings":[{"name": "timestamp", "type": "i64", "fast": true, "indexed": true}]}}"#) .reply(&index_management_handler) .await; assert_eq!(resp.status(), 200); @@ -1408,7 +1408,7 @@ mod tests { assert_json_include!(actual: resp_json, expected: expected_response_json); // Create source. - let source_config_body = r#"{"version": "0.6", "source_id": "vec-source", "source_type": "vec", "params": {"docs": [], "batch_num_docs": 10}}"#; + let source_config_body = r#"{"version": "0.7", "source_id": "vec-source", "source_type": "vec", "params": {"docs": [], "batch_num_docs": 10}}"#; let resp = warp::test::request() .path("/indexes/hdfs-logs/sources") .method("POST") @@ -1513,7 +1513,7 @@ mod tests { let index_management_handler = super::index_management_handlers(index_service, Arc::new(node_config)) .recover(recover_fn); - let source_config_body = r#"{"version": "0.6", "source_id": "file-source", "source_type": + let source_config_body = r#"{"version": "0.7", "source_id": "file-source", "source_type": "file", "params": {"filepath": "FILEPATH"}}"#; let resp = warp::test::request() .path("/indexes/hdfs-logs/sources") @@ -1541,7 +1541,7 @@ mod tests { .header("content-type", "application/yaml") .body( r#" - version: 0.6 + version: 0.7 index_id: hdfs-logs doc_mapping: field_mappings: @@ -1579,7 +1579,7 @@ mod tests { .header("content-type", "application/toml") .body( r#" - version = "0.6" + version = "0.7" index_id = "hdfs-logs" [doc_mapping] field_mappings = [ @@ -1636,7 +1636,7 @@ mod tests { .method("POST") .json(&true) .body( - r#"{"version": "0.6", "index_id": "hdfs-log", "doc_mapping": + r#"{"version": "0.7", "index_id": "hdfs-log", "doc_mapping": {"field_mappings":[{"name": "timestamp", "type": "unknown", "fast": true, "indexed": true}]}}"#, ) @@ -1675,7 +1675,7 @@ mod tests { .method("POST") .json(&true) .body( - r#"{"version": "0.6", "source_id": "pulsar-source", + r#"{"version": "0.7", "source_id": "pulsar-source", "desired_num_pipelines": 2, "source_type": "pulsar", "params": {"topics": ["my-topic"], "address": "pulsar://localhost:6650" }}"#, ) diff --git a/quickwit/quickwit-storage/Cargo.toml b/quickwit/quickwit-storage/Cargo.toml index 978873dadf1..c798ffc3ffe 100644 --- a/quickwit/quickwit-storage/Cargo.toml +++ b/quickwit/quickwit-storage/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-storage" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "AGPL-3.0-or-later" # For a commercial, license, contact hello@quickwit.io diff --git a/quickwit/quickwit-telemetry/Cargo.toml b/quickwit/quickwit-telemetry/Cargo.toml index 0a0672ba89c..cdc7cadb62c 100644 --- a/quickwit/quickwit-telemetry/Cargo.toml +++ b/quickwit/quickwit-telemetry/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "quickwit-telemetry" -version = "0.6.5-dev" +version = "0.7.0" authors = ["Quickwit, Inc. "] edition = "2021" license = "AGPL-3.0-or-later" # For a commercial, license, contact hello@quickwit.io diff --git a/quickwit/quickwit-ui/package.json b/quickwit/quickwit-ui/package.json index 600a08d1a84..d076b54a1b6 100644 --- a/quickwit/quickwit-ui/package.json +++ b/quickwit/quickwit-ui/package.json @@ -1,6 +1,6 @@ { "name": "quickwit-ui", - "version": "0.6.3", + "version": "0.7.0", "license": "AGPL-3.0", "private": true, "proxy": "http://127.0.0.1:7280", diff --git a/quickwit/quickwit-ui/src/assets/img/quickwit-logo.svg b/quickwit/quickwit-ui/src/assets/img/quickwit-logo.svg index c5222f937a4..2cdc10945cf 100644 --- a/quickwit/quickwit-ui/src/assets/img/quickwit-logo.svg +++ b/quickwit/quickwit-ui/src/assets/img/quickwit-logo.svg @@ -21,4 +21,4 @@ - \ No newline at end of file + diff --git a/quickwit/rest-api-tests/scenarii/aggregations/_setup.quickwit.yaml b/quickwit/rest-api-tests/scenarii/aggregations/_setup.quickwit.yaml index 2ad97244608..d7df578d493 100644 --- a/quickwit/rest-api-tests/scenarii/aggregations/_setup.quickwit.yaml +++ b/quickwit/rest-api-tests/scenarii/aggregations/_setup.quickwit.yaml @@ -7,7 +7,7 @@ status_code: null method: POST endpoint: indexes/ json: - version: "0.6" + version: "0.7" index_id: aggregations doc_mapping: mode: dynamic diff --git a/quickwit/rest-api-tests/scenarii/default_search_fields/0002_invalid_default_fields.yaml b/quickwit/rest-api-tests/scenarii/default_search_fields/0002_invalid_default_fields.yaml index e4aded73d6c..93dcb70620b 100644 --- a/quickwit/rest-api-tests/scenarii/default_search_fields/0002_invalid_default_fields.yaml +++ b/quickwit/rest-api-tests/scenarii/default_search_fields/0002_invalid_default_fields.yaml @@ -3,7 +3,7 @@ method: POST endpoint: indexes/ json: - version: "0.6" + version: "0.7" index_id: failing1 doc_mapping: mode: lenient @@ -21,7 +21,7 @@ expected: method: POST endpoint: indexes/ json: - version: "0.6" + version: "0.7" index_id: failing2 doc_mapping: mode: dynamic @@ -40,7 +40,7 @@ expected: method: POST endpoint: indexes/ json: - version: "0.6" + version: "0.7" index_id: failing3 doc_mapping: mode: dynamic diff --git a/quickwit/rest-api-tests/scenarii/default_search_fields/_setup.quickwit.yaml b/quickwit/rest-api-tests/scenarii/default_search_fields/_setup.quickwit.yaml index 1590bced7c1..253d011462d 100644 --- a/quickwit/rest-api-tests/scenarii/default_search_fields/_setup.quickwit.yaml +++ b/quickwit/rest-api-tests/scenarii/default_search_fields/_setup.quickwit.yaml @@ -7,7 +7,7 @@ status_code: null method: POST endpoint: indexes/ json: - version: "0.6" + version: "0.7" index_id: defaultsearchfields doc_mapping: mode: dynamic diff --git a/quickwit/rest-api-tests/scenarii/es_compatibility/_setup.quickwit.yaml b/quickwit/rest-api-tests/scenarii/es_compatibility/_setup.quickwit.yaml index 5eea75dd277..399c1facd08 100644 --- a/quickwit/rest-api-tests/scenarii/es_compatibility/_setup.quickwit.yaml +++ b/quickwit/rest-api-tests/scenarii/es_compatibility/_setup.quickwit.yaml @@ -9,7 +9,7 @@ method: POST api_root: http://localhost:7280/api/v1/ endpoint: indexes/ json: - version: "0.6" + version: "0.7" index_id: gharchive doc_mapping: index_field_presence: true diff --git a/quickwit/rest-api-tests/scenarii/es_compatibility/multi-indices/_setup.quickwit.yaml b/quickwit/rest-api-tests/scenarii/es_compatibility/multi-indices/_setup.quickwit.yaml index c99384ae024..cd1ef39d2b6 100644 --- a/quickwit/rest-api-tests/scenarii/es_compatibility/multi-indices/_setup.quickwit.yaml +++ b/quickwit/rest-api-tests/scenarii/es_compatibility/multi-indices/_setup.quickwit.yaml @@ -14,7 +14,7 @@ method: POST api_root: http://localhost:7280/api/v1/ endpoint: indexes/ json: - version: "0.6" + version: "0.7" index_id: gharchive-1 doc_mapping: index_field_presence: true @@ -36,7 +36,7 @@ method: POST api_root: http://localhost:7280/api/v1/ endpoint: indexes/ json: - version: "0.6" + version: "0.7" index_id: gharchive-2 doc_mapping: index_field_presence: true diff --git a/quickwit/rest-api-tests/scenarii/es_field_capabilities/_setup.quickwit.yaml b/quickwit/rest-api-tests/scenarii/es_field_capabilities/_setup.quickwit.yaml index ecdcd2944dd..9ac8f3c38f0 100644 --- a/quickwit/rest-api-tests/scenarii/es_field_capabilities/_setup.quickwit.yaml +++ b/quickwit/rest-api-tests/scenarii/es_field_capabilities/_setup.quickwit.yaml @@ -14,7 +14,7 @@ method: POST api_root: http://localhost:7280/api/v1/ endpoint: indexes/ json: - version: "0.6" + version: "0.7" index_id: fieldcaps doc_mapping: mode: dynamic @@ -37,7 +37,7 @@ method: POST api_root: http://localhost:7280/api/v1/ endpoint: indexes/ json: - version: "0.6" + version: "0.7" index_id: fieldcaps-2 doc_mapping: mode: dynamic diff --git a/quickwit/rest-api-tests/scenarii/qw_search_api/_setup.quickwit.yaml b/quickwit/rest-api-tests/scenarii/qw_search_api/_setup.quickwit.yaml index 82803b3b2c3..17711f4cb99 100644 --- a/quickwit/rest-api-tests/scenarii/qw_search_api/_setup.quickwit.yaml +++ b/quickwit/rest-api-tests/scenarii/qw_search_api/_setup.quickwit.yaml @@ -7,7 +7,7 @@ status_code: null method: POST endpoint: indexes/ json: - version: "0.6" + version: "0.7" index_id: simple doc_mapping: timestamp_field: ts diff --git a/quickwit/rest-api-tests/scenarii/sort_orders/_setup.quickwit.yaml b/quickwit/rest-api-tests/scenarii/sort_orders/_setup.quickwit.yaml index 44c9b89017f..d656ece3c69 100644 --- a/quickwit/rest-api-tests/scenarii/sort_orders/_setup.quickwit.yaml +++ b/quickwit/rest-api-tests/scenarii/sort_orders/_setup.quickwit.yaml @@ -7,7 +7,7 @@ status_code: null method: POST endpoint: indexes/ json: - version: "0.6" + version: "0.7" index_id: sortorder doc_mapping: mode: dynamic