From d5a6259588f12fcd7e7b7a029446da1b67c86fe6 Mon Sep 17 00:00:00 2001 From: Jason Stirnaman Date: Sun, 6 Jul 2025 00:05:41 -0500 Subject: [PATCH 1/5] feat(influxdb3): v3.2.1 release notes --- .../_index.md | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/content/shared/v3-core-enterprise-release-notes/_index.md b/content/shared/v3-core-enterprise-release-notes/_index.md index fa11b397f..3d39f0cef 100644 --- a/content/shared/v3-core-enterprise-release-notes/_index.md +++ b/content/shared/v3-core-enterprise-release-notes/_index.md @@ -5,6 +5,34 @@ > All updates to Core are automatically included in Enterprise. > The Enterprise sections below only list updates exclusive to Enterprise. +## v3.2.1 {date="2025-07-03"} + +### Core + +#### Features + +- Allow hard_deleted date of deleted schema to be updated +- Include hard_deletion_date in `_internal`, `databases`, and `tables` + +#### Bug Fixes + +- Add help text for the new update subcommand (#26569) ([#26569](https://github.com/influxdata/influxdb/pull/26569)) +- `--object-store` is explicitly marked required (#26575) ([#26575](https://github.com/influxdata/influxdb/pull/26575)) +- v1 query API should default to ns for CSV output (#26577) ([#26577](https://github.com/influxdata/influxdb/pull/26577)) +- Existing soft-deleted schema can be hard-deleted (#26574) ([#26574](https://github.com/influxdata/influxdb/pull/26574)) + +### Enterprise + +All Core updates are included in Enterprise. Additional Enterprise-specific features and fixes: + +#### Features + +- Amend license info command + +#### Bug Fixes + +- Use string representation of TriggerSpecificationDefinition in API + ## v3.2.0 {date="2025-06-25"} **Core**: revision 1ca3168bee From 9f9a6f853d946049a1a3f23d89fbbd6cfe513d5a Mon Sep 17 00:00:00 2001 From: Jason Stirnaman Date: Sun, 6 Jul 2025 16:24:11 -0500 Subject: [PATCH 2/5] chore(influxdb3): improve release notes --- .../v3-core-enterprise-release-notes/_index.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/content/shared/v3-core-enterprise-release-notes/_index.md b/content/shared/v3-core-enterprise-release-notes/_index.md index 3d39f0cef..9de837d59 100644 --- a/content/shared/v3-core-enterprise-release-notes/_index.md +++ b/content/shared/v3-core-enterprise-release-notes/_index.md @@ -11,15 +11,17 @@ #### Features -- Allow hard_deleted date of deleted schema to be updated -- Include hard_deletion_date in `_internal`, `databases`, and `tables` +- **Enhanced database lifecycle management**: + - Allow updating the hard deletion date for already-deleted databases and tables, providing flexibility in managing data retention and compliance requirements + - Include `hard_deletion_date` column in `_internal` system tables (`databases` and `tables`) for better visibility into data lifecycle and audit trails #### Bug Fixes -- Add help text for the new update subcommand (#26569) ([#26569](https://github.com/influxdata/influxdb/pull/26569)) -- `--object-store` is explicitly marked required (#26575) ([#26575](https://github.com/influxdata/influxdb/pull/26575)) -- v1 query API should default to ns for CSV output (#26577) ([#26577](https://github.com/influxdata/influxdb/pull/26577)) -- Existing soft-deleted schema can be hard-deleted (#26574) ([#26574](https://github.com/influxdata/influxdb/pull/26574)) +- **CLI improvements**: + - Added help text for the new `update` subcommand for database and table update features ([#26569](https://github.com/influxdata/influxdb/pull/26569)) + - `--object-store` and storage configuration parameters are required for the `serve` command ([#26575](https://github.com/influxdata/influxdb/pull/26575)) +- **Query processing**: Fixed V1-compatible `/query` HTTP API endpoint to correctly default to nanosecond precision (`ns`) for CSV output, ensuring backward compatibility with InfluxDB 1.x clients and preventing data precision loss ([#26577](https://github.com/influxdata/influxdb/pull/26577)) +- **Database reliability**: Fixed issue preventing hard deletion of soft-deleted databases and tables, enabling complete data removal for compliance and storage management needs ([#26574](https://github.com/influxdata/influxdb/pull/26574)) ### Enterprise @@ -27,11 +29,11 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat #### Features -- Amend license info command +- **License management improvements**: New `influxdb3 show license` command displays detailed license information including type, expiration date, and resource limits, making it easier to monitor license status and compliance #### Bug Fixes -- Use string representation of TriggerSpecificationDefinition in API +- **API stability**: Fixed HTTP API trigger specification to use the correct `"request:REQUEST_PATH"` syntax, ensuring proper request-based trigger configuration for processing engine workflows ## v3.2.0 {date="2025-06-25"} From 3a1afd137125e9d7e1209cae6fc29ae7055c2698 Mon Sep 17 00:00:00 2001 From: Jason Stirnaman Date: Sun, 6 Jul 2025 16:25:23 -0500 Subject: [PATCH 3/5] feat(influxdb3): bump version --- data/products.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/products.yml b/data/products.yml index f92229b2e..d4484e420 100644 --- a/data/products.yml +++ b/data/products.yml @@ -6,7 +6,7 @@ influxdb3_core: versions: [core] list_order: 2 latest: core - latest_patch: 3.2.0 + latest_patch: 3.2.1 placeholder_host: localhost:8181 ai_sample_questions: - How do I install and run InfluxDB 3 Core? @@ -21,7 +21,7 @@ influxdb3_enterprise: versions: [enterprise] list_order: 2 latest: enterprise - latest_patch: 3.2.0 + latest_patch: 3.2.1 placeholder_host: localhost:8181 ai_sample_questions: - How do I install and run InfluxDB 3 Enterprise? From c457493fc4d479a1e2230af0ea25181c9b3666b7 Mon Sep 17 00:00:00 2001 From: Jason Stirnaman Date: Sun, 6 Jul 2025 16:43:54 -0500 Subject: [PATCH 4/5] chore(influxdb3): v3.2.1 fixes request trigger spec in 3Ent. Remove Core-Ent divergence notes. --- api-docs/influxdb3/enterprise/v3/ref.yml | 31 +++++-------------- .../shared/influxdb3-cli/create/trigger.md | 12 ------- .../processing-engine.md | 12 ------- content/shared/v3-core-plugins/_index.md | 30 ++---------------- 4 files changed, 10 insertions(+), 75 deletions(-) diff --git a/api-docs/influxdb3/enterprise/v3/ref.yml b/api-docs/influxdb3/enterprise/v3/ref.yml index b1cb43d7c..34b2bd961 100644 --- a/api-docs/influxdb3/enterprise/v3/ref.yml +++ b/api-docs/influxdb3/enterprise/v3/ref.yml @@ -1239,8 +1239,7 @@ paths: db: mydb plugin_filename: request.py trigger_name: hello_world_trigger - # trigger_specification: "request:hello-world" - For 3.2.1 (issue#6171) - trigger_specification: {"request_path": {"path": "hello-world"}} + trigger_specification: request:hello-world cron_friday_afternoon: summary: Cron trigger for Friday afternoons description: | @@ -1478,17 +1477,14 @@ paths: For example, if you define a trigger with the following: ```json - trigger_specification: {"request_path": {"path": "hello-world"}} + trigger_specification: "request:hello-world" ``` - + then, the HTTP API exposes the following plugin endpoint: ``` /api/v3/engine/hello-world ``` - - ***Note:*** Currently, due to a bug in InfluxDB 3 Enterprise, the request trigger specification is different from Core. - in: path required: true schema: @@ -2094,25 +2090,12 @@ components: - `table:TABLE_NAME` - Triggers on write events to a specific table ### On-demand triggers - Format: `{"request_path": {"path": "REQUEST_PATH"}}` + Format: `request:REQUEST_PATH` Creates an HTTP endpoint `/api/v3/engine/REQUEST_PATH` for manual invocation: - - `{"request_path": {"path": "hello-world"}}` - Creates endpoint `/api/v3/engine/hello-world` - - `{"request_path": {"path": "data-export"}}` - Creates endpoint `/api/v3/engine/data-export` - - ***Note:*** Currently, due to a bug in InfluxDB 3 Enterprise, the request trigger specification is different from Core. Use the JSON object format shown above. - - oneOf: - - type: string - pattern: ^(cron:[0-9 *,/-]+|every:[0-9]+[smhd]|all_tables|table:[a-zA-Z_][a-zA-Z0-9_]*)$ - - type: object - properties: - request_path: - type: object - properties: - path: - type: string - pattern: ^[a-zA-Z0-9_-]+$ + - `request:hello-world` - Creates endpoint `/api/v3/engine/hello-world` + - `request:data-export` - Creates endpoint `/api/v3/engine/data-export` + pattern: ^(cron:[0-9 *,/-]+|every:[0-9]+[smhd]|all_tables|table:[a-zA-Z_][a-zA-Z0-9_]*|request:[a-zA-Z0-9_-]+)$ example: cron:0 0 6 * * 1-5 trigger_arguments: type: object diff --git a/content/shared/influxdb3-cli/create/trigger.md b/content/shared/influxdb3-cli/create/trigger.md index baaadd91c..bc4bfd074 100644 --- a/content/shared/influxdb3-cli/create/trigger.md +++ b/content/shared/influxdb3-cli/create/trigger.md @@ -113,15 +113,3 @@ influxdb3 create trigger \ Creating a trigger in a disabled state prevents it from running immediately. You can enable it later when you're ready to activate it. {{% /code-placeholders %}} - -{{% show-in "enterprise" %}} -> [!Warning] -> #### Request trigger specification format differs between CLI and API -> -> Due to a bug in InfluxDB 3 Enterprise, the request trigger specification format differs: -> -> - **CLI**: `request:` (same as Core CLI and API) -> - **Enterprise API**: `{"request_path": {"path": ""}}` -> -> See the [API reference](/influxdb3/enterprise/api/#operation/PostConfigureProcessingEngineTrigger) for examples. Use `influxdb3 show summary` to verify the actual trigger specification. -{{% /show-in %}} diff --git a/content/shared/influxdb3-get-started/processing-engine.md b/content/shared/influxdb3-get-started/processing-engine.md index 61f3399f1..009b3d4ee 100644 --- a/content/shared/influxdb3-get-started/processing-engine.md +++ b/content/shared/influxdb3-get-started/processing-engine.md @@ -41,18 +41,6 @@ specifications: The plugin receives the HTTP request headers and content, and can parse, process, and send the data into the database or to third-party services. -{{% show-in "enterprise" %}} -> [!Warning] -> #### Request trigger specification format differs between CLI and API -> -> Due to a bug in InfluxDB 3 Enterprise, the request trigger specification format differs: -> -> - **CLI**: `request:` (same as Core CLI and API) -> - **Enterprise API**: `{"request_path": {"path": ""}}` -> -> See the [API reference](/influxdb3/enterprise/api/#operation/PostConfigureProcessingEngineTrigger) for examples. Use `influxdb3 show summary` to verify the actual trigger specification. -{{% /show-in %}} - ## Activate the processing engine To activate the processing engine, include the `--plugin-dir ` option diff --git a/content/shared/v3-core-plugins/_index.md b/content/shared/v3-core-plugins/_index.md index f225fdb27..620fe31e3 100644 --- a/content/shared/v3-core-plugins/_index.md +++ b/content/shared/v3-core-plugins/_index.md @@ -224,7 +224,7 @@ def process_scheduled_call(influxdb3_local, call_time, args=None): #### Create an HTTP request plugin -HTTP request plugins respond to API calls using [`request:`](#trigger-on-http-requests) trigger specifications{{% show-in "enterprise" %}} (CLI) or `{"request_path": {"path": "..."}}` (HTTP API){{% /show-in %}}. Use them for: +HTTP request plugins respond to API calls using [`request:`](#trigger-on-http-requests) trigger specifications. Use them for: - Creating custom API endpoints - Webhooks for external integrations @@ -263,7 +263,7 @@ After writing your plugin: |------------|----------------------|-----------------| | Data write | `table:` or `all_tables` | When data is written to tables | | Scheduled | `every:` or `cron:` | At specified time intervals | -| HTTP request | `request:`{{% show-in "enterprise" %}} (CLI) or `{"request_path": {"path": ""}}` (HTTP API){{% /show-in %}} | When HTTP requests are received | +| HTTP request | `request:` | When HTTP requests are received | ### Use the create trigger command @@ -367,18 +367,6 @@ To view triggers associated with a database, use the `influxdb3 show summary` co influxdb3 show summary --database my_database --token AUTH_TOKEN ``` -{{% show-in "enterprise" %}} -> [!Warning] -> #### Request trigger specification format differs between CLI and API -> -> Due to a bug in InfluxDB 3 Enterprise, the request trigger specification format differs: -> -> - **CLI**: `request:` (same as Core CLI and API) -> - **Enterprise API**: `{"request_path": {"path": ""}}` -> -> See the [API reference](/influxdb3/enterprise/api/#operation/PostConfigureProcessingEngineTrigger) for examples. Use `influxdb3 show summary` to verify the actual trigger specification. -{{% /show-in %}} - ### Pass arguments to plugins Use trigger arguments to pass configuration from a trigger to the plugin it runs. You can use this for: @@ -600,19 +588,7 @@ Each plugin must run on a node that supports its trigger type: |--------------------|--------------------------|-----------------------------| | Data write | `table:` or `all_tables` | Ingester nodes | | Scheduled | `every:` or `cron:` | Any node with scheduler | -| HTTP request | `request:`{{% show-in "enterprise" %}} (CLI) or `{"request_path": {"path": "..."}}` (HTTP API){{% /show-in %}} | Nodes that serve API traffic| - -{{% show-in "enterprise" %}} -> [!Note] -> #### Request trigger specification format differs between CLI and API -> -> Due to a bug in InfluxDB 3 Enterprise, the request trigger specification format differs: -> -> - **CLI**: `request:` (same as Core CLI and API) -> - **Enterprise API**: `{"request_path": {"path": ""}}` -> -> See the [API reference](/influxdb3/enterprise/api/#operation/PostConfigureProcessingEngineTrigger) for examples. -{{% /show-in %}} +| HTTP request | `request:` | Nodes that serve API traffic| For example: - Run write-ahead log (WAL) plugins on ingester nodes. From 06e904750c4471c55b52723232c28b3d21f25cdc Mon Sep 17 00:00:00 2001 From: Jason Stirnaman Date: Sun, 6 Jul 2025 16:48:10 -0500 Subject: [PATCH 5/5] fix(3core): distributed cluster should be enterprise-only --- content/shared/v3-core-plugins/_index.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content/shared/v3-core-plugins/_index.md b/content/shared/v3-core-plugins/_index.md index 620fe31e3..c324a3bb0 100644 --- a/content/shared/v3-core-plugins/_index.md +++ b/content/shared/v3-core-plugins/_index.md @@ -26,7 +26,9 @@ Once you have all the prerequisites in place, follow these steps to implement th - [Add a Processing Engine plugin](#add-a-processing-engine-plugin) - [Set up a trigger](#set-up-a-trigger) - [Advanced trigger configuration](#advanced-trigger-configuration) +{{% show-in "enterprise" %}} - [Distributed cluster considerations](#distributed-cluster-considerations) +{{% /show-in %}} ## Set up the Processing Engine @@ -66,7 +68,9 @@ When running {{% product-name %}} in a distributed setup, follow these steps to > > Configure your plugin directory on the same system as the nodes that run the triggers and plugins. +{{% show-in "enterprise" %}} For more information about configuring distributed environments, see the [Distributed cluster considerations](#distributed-cluster-considerations) section. +{{% /show-in %}} ## Add a Processing Engine plugin