Merge pull request #6179 from influxdata/core-ent-3.2

Core ent 3.2
pull/6173/head^2
Jason Stirnaman 2025-06-30 14:59:22 -05:00 committed by GitHub
commit 5b33042fab
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
56 changed files with 2284 additions and 160 deletions

View File

@ -2,11 +2,11 @@
applyTo: "content/**/*.md, layouts/**/*.html"
---
# GitHub Copilot Instructions for InfluxData Documentation
# Contributing instructions for InfluxData Documentation
## Purpose and scope
GitHub Copilot should help document InfluxData products
Help document InfluxData products
by creating clear, accurate technical content with proper
code examples, frontmatter, shortcodes, and formatting.
@ -375,6 +375,9 @@ list_query_example:# Code examples included with article descriptions in childre
# References to examples in data/query_examples
canonical: # Path to canonical page, overrides auto-gen'd canonical URL
v2: # Path to v2 equivalent page
alt_links: # Alternate pages in other products/versions for cross-product navigation
cloud-dedicated: /influxdb3/cloud-dedicated/path/to/page/
core: /influxdb3/core/path/to/page/
prepend: # Prepend markdown content to an article (especially powerful with cascade)
block: # (Optional) Wrap content in a block style (note, warn, cloud)
content: # Content to prepend to article
@ -466,6 +469,29 @@ add the following frontmatter to the 1.x page:
v2: /influxdb/v2.0/get-started/
```
### Alternative links for cross-product navigation
Use the `alt_links` frontmatter to specify equivalent pages in other InfluxDB products,
for example, when a page exists at a different path in a different version or if
the feature doesn't exist in that product.
This enables the product switcher to navigate users to the corresponding page when they
switch between products. If a page doesn't exist in another product (for example, an
Enterprise-only feature), point to the nearest parent page if relevant.
```yaml
alt_links:
cloud-dedicated: /influxdb3/cloud-dedicated/admin/tokens/create-token/
cloud-serverless: /influxdb3/cloud-serverless/admin/tokens/create-token/
core: /influxdb3/core/reference/cli/influxdb3/update/ # Points to parent if exact page doesn't exist
```
Supported product keys for InfluxDB 3:
- `core`
- `enterprise`
- `cloud-serverless`
- `cloud-dedicated`
- `clustered`
### Prepend and append content to a page
Use the `prepend` and `append` frontmatter to add content to the top or bottom of a page.

View File

@ -363,6 +363,9 @@ list_query_example:# Code examples included with article descriptions in childre
# References to examples in data/query_examples
canonical: # Path to canonical page, overrides auto-gen'd canonical URL
v2: # Path to v2 equivalent page
alt_links: # Alternate pages in other products/versions for cross-product navigation
cloud-dedicated: /influxdb3/cloud-dedicated/path/to/page/
core: /influxdb3/core/path/to/page/
prepend: # Prepend markdown content to an article (especially powerful with cascade)
block: # (Optional) Wrap content in a block style (note, warn, cloud)
content: # Content to prepend to article
@ -454,6 +457,29 @@ add the following frontmatter to the 1.x page:
v2: /influxdb/v2.0/get-started/
```
### Alternative links for cross-product navigation
Use the `alt_links` frontmatter to specify equivalent pages in other InfluxDB products,
for example, when a page exists at a different path in a different version or if
the feature doesn't exist in that product.
This enables the product switcher to navigate users to the corresponding page when they
switch between products. If a page doesn't exist in another product (for example, an
Enterprise-only feature), point to the nearest parent page if relevant.
```yaml
alt_links:
cloud-dedicated: /influxdb3/cloud-dedicated/admin/tokens/create-token/
cloud-serverless: /influxdb3/cloud-serverless/admin/tokens/create-token/
core: /influxdb3/core/reference/cli/influxdb3/update/ # Points to parent if exact page doesn't exist
```
Supported product keys for InfluxDB 3:
- `core`
- `enterprise`
- `cloud-serverless`
- `cloud-dedicated`
- `clustered`
### Prepend and append content to a page
Use the `prepend` and `append` frontmatter to add content to the top or bottom of a page.

View File

@ -922,9 +922,25 @@ paths:
summary: Delete a database
description: |
Soft deletes a database.
The database is scheduled for deletion and unavailable for querying.
The database is scheduled for deletion and unavailable for querying.
Use the `hard_delete_at` parameter to schedule a hard deletion.
parameters:
- $ref: '#/components/parameters/db'
- name: hard_delete_at
in: query
required: false
schema:
type: string
format: date-time
description: |
Schedule the database for hard deletion at the specified time.
If not provided, the database will be soft deleted.
Use ISO 8601 date-time format (for example, "2025-12-31T23:59:59Z").
#### Deleting a database cannot be undone
Deleting a database is a destructive action.
Once a database is deleted, data stored in that database cannot be recovered.
responses:
'200':
description: Success. Database deleted.
@ -961,7 +977,13 @@ paths:
summary: Delete a table
description: |
Soft deletes a table.
The table is scheduled for deletion and unavailable for querying.
The table is scheduled for deletion and unavailable for querying.
Use the `hard_delete_at` parameter to schedule a hard deletion.
#### Deleting a table cannot be undone
Deleting a table is a destructive action.
Once a table is deleted, data stored in that table cannot be recovered.
parameters:
- $ref: '#/components/parameters/db'
- name: table
@ -969,6 +991,16 @@ paths:
required: true
schema:
type: string
- name: hard_delete_at
in: query
required: false
schema:
type: string
format: date-time
description: |
Schedule the table for hard deletion at the specified time.
If not provided, the table will be soft deleted.
Use ISO 8601 format (for example, "2025-12-31T23:59:59Z").
responses:
'200':
description: Success (no content). The table has been deleted.
@ -1078,7 +1110,7 @@ paths:
In `"cron:CRON_EXPRESSION"`, `CRON_EXPRESSION` uses extended 6-field cron format.
The cron expression `0 0 6 * * 1-5` means the trigger will run at 6:00 AM every weekday (Monday to Friday).
value:
db: DATABASE_NAME
db: mydb
plugin_filename: schedule.py
trigger_name: schedule_cron_trigger
trigger_specification: cron:0 0 6 * * 1-5
@ -1136,7 +1168,7 @@ paths:
db: mydb
plugin_filename: request.py
trigger_name: hello_world_trigger
trigger_specification: path:hello-world
trigger_specification: request:hello-world
cron_friday_afternoon:
summary: Cron trigger for Friday afternoons
description: |
@ -1365,16 +1397,16 @@ paths:
description: Plugin not enabled.
tags:
- Processing engine
/api/v3/engine/{plugin_path}:
/api/v3/engine/{request_path}:
parameters:
- name: plugin_path
- name: request_path
description: |
The path configured in the request trigger specification "path:<plugin_path>"` for the plugin.
The path configured in the request trigger specification for the plugin.
For example, if you define a trigger with the following:
```json
trigger-spec: "path:hello-world"
trigger_specification: "request:hello-world"
```
then, the HTTP API exposes the following plugin endpoint:
@ -1390,7 +1422,7 @@ paths:
operationId: GetProcessingEnginePluginRequest
summary: On Request processing engine plugin request
description: |
Executes the On Request processing engine plugin specified in `<plugin_path>`.
Executes the On Request processing engine plugin specified in the trigger's `plugin_filename`.
The request can include request headers, query string parameters, and a request body, which InfluxDB passes to the plugin.
An On Request plugin implements the following signature:
@ -1417,7 +1449,7 @@ paths:
operationId: PostProcessingEnginePluginRequest
summary: On Request processing engine plugin request
description: |
Executes the On Request processing engine plugin specified in `<plugin_path>`.
Executes the On Request processing engine plugin specified in the trigger's `plugin_filename`.
The request can include request headers, query string parameters, and a request body, which InfluxDB passes to the plugin.
An On Request plugin implements the following signature:
@ -1868,7 +1900,7 @@ components:
`schedule.py` or `endpoints/report.py`.
The path can be absolute or relative to the `--plugins-dir` directory configured when starting InfluxDB 3.
The plugin file must implement the trigger interface associated with the trigger's specification (`trigger_spec`).
The plugin file must implement the trigger interface associated with the trigger's specification.
trigger_name:
type: string
trigger_specification:
@ -1911,12 +1943,12 @@ components:
- `table:TABLE_NAME` - Triggers on write events to a specific table
### On-demand triggers
Format: `path:ENDPOINT_NAME`
Format: `request:REQUEST_PATH`
Creates an HTTP endpoint `/api/v3/engine/ENDPOINT_NAME` for manual invocation:
- `path:hello-world` - Creates endpoint `/api/v3/engine/hello-world`
- `path: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_]*|path:[a-zA-Z0-9_-]+)$
Creates an HTTP endpoint `/api/v3/engine/REQUEST_PATH` for manual invocation:
- `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
@ -2013,6 +2045,65 @@ components:
- m
- h
type: string
UpdateDatabaseRequest:
type: object
properties:
retention_period:
type: string
description: |
The retention period for the database. Specifies how long data should be retained.
Use duration format (for example, "1d", "1h", "30m", "7d").
example: "7d"
description: Request schema for updating database configuration.
UpdateTableRequest:
type: object
properties:
db:
type: string
description: The name of the database containing the table.
table:
type: string
description: The name of the table to update.
retention_period:
type: string
description: |
The retention period for the table. Specifies how long data in this table should be retained.
Use duration format (for example, "1d", "1h", "30m", "7d").
example: "30d"
required:
- db
- table
description: Request schema for updating table configuration.
LicenseResponse:
type: object
properties:
license_type:
type: string
description: The type of license (for example, "enterprise", "trial").
example: "enterprise"
expires_at:
type: string
format: date-time
description: The expiration date of the license in ISO 8601 format.
example: "2025-12-31T23:59:59Z"
features:
type: array
items:
type: string
description: List of features enabled by the license.
example:
- "clustering"
- "processing_engine"
- "advanced_auth"
status:
type: string
enum:
- "active"
- "expired"
- "invalid"
description: The current status of the license.
example: "active"
description: Response schema for license information.
responses:
Unauthorized:
description: Unauthorized access.

View File

@ -922,9 +922,25 @@ paths:
summary: Delete a database
description: |
Soft deletes a database.
The database is scheduled for deletion and unavailable for querying.
The database is scheduled for deletion and unavailable for querying.
Use the `hard_delete_at` parameter to schedule a hard deletion.
parameters:
- $ref: '#/components/parameters/db'
- name: hard_delete_at
in: query
required: false
schema:
type: string
format: date-time
description: |
Schedule the database for hard deletion at the specified time.
If not provided, the database will be soft deleted.
Use ISO 8601 date-time format (for example, "2025-12-31T23:59:59Z").
#### Deleting a database cannot be undone
Deleting a database is a destructive action.
Once a database is deleted, data stored in that database cannot be recovered.
responses:
'200':
description: Success. Database deleted.
@ -961,7 +977,13 @@ paths:
summary: Delete a table
description: |
Soft deletes a table.
The table is scheduled for deletion and unavailable for querying.
The table is scheduled for deletion and unavailable for querying.
Use the `hard_delete_at` parameter to schedule a hard deletion.
#### Deleting a table cannot be undone
Deleting a table is a destructive action.
Once a table is deleted, data stored in that table cannot be recovered.
parameters:
- $ref: '#/components/parameters/db'
- name: table
@ -969,6 +991,16 @@ paths:
required: true
schema:
type: string
- name: hard_delete_at
in: query
required: false
schema:
type: string
format: date-time
description: |
Schedule the table for hard deletion at the specified time.
If not provided, the table will be soft deleted.
Use ISO 8601 format (for example, "2025-12-31T23:59:59Z").
responses:
'200':
description: Success (no content). The table has been deleted.
@ -978,6 +1010,77 @@ paths:
description: Table not found.
tags:
- Table
patch:
operationId: PatchConfigureTable
summary: Update a table
description: |
Updates table configuration, such as retention period.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateTableRequest'
responses:
'200':
description: Success. The table has been updated.
'400':
description: Bad request.
'401':
$ref: '#/components/responses/Unauthorized'
'404':
description: Table not found.
tags:
- Table
/api/v3/configure/database/{db}:
patch:
operationId: PatchConfigureDatabase
summary: Update a database
description: |
Updates database configuration, such as retention period.
parameters:
- name: db
in: path
required: true
schema:
type: string
description: The name of the database to update.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateDatabaseRequest'
responses:
'200':
description: Success. The database has been updated.
'400':
description: Bad request.
'401':
$ref: '#/components/responses/Unauthorized'
'404':
description: Database not found.
tags:
- Database
/api/v3/show/license:
get:
operationId: GetShowLicense
summary: Show license information
description: |
Retrieves information about the current InfluxDB 3 Enterprise license.
responses:
'200':
description: Success. The response body contains license information.
content:
application/json:
schema:
$ref: '#/components/schemas/LicenseResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
description: Access denied.
tags:
- Server information
/api/v3/configure/distinct_cache:
post:
operationId: PostConfigureDistinctCache
@ -1136,7 +1239,8 @@ paths:
db: mydb
plugin_filename: request.py
trigger_name: hello_world_trigger
trigger_specification: path:hello-world
# trigger_specification: "request:hello-world" - For 3.2.1 (issue#6171)
trigger_specification: {"request_path": {"path": "hello-world"}}
cron_friday_afternoon:
summary: Cron trigger for Friday afternoons
description: |
@ -1365,23 +1469,26 @@ paths:
description: Plugin not enabled.
tags:
- Processing engine
/api/v3/engine/{plugin_path}:
/api/v3/engine/{request_path}:
parameters:
- name: plugin_path
- name: request_path
description: |
The path configured in the request trigger specification "path:<plugin_path>"` for the plugin.
The path configured in the request trigger specification for the plugin.
For example, if you define a trigger with the following:
```json
trigger-spec: "path:hello-world"
trigger_specification: {"request_path": {"path": "hello-world"}}
```
then, the HTTP API exposes the following plugin endpoint:
```
<INFLUXDB3_HOST>/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:
@ -1390,7 +1497,7 @@ paths:
operationId: GetProcessingEnginePluginRequest
summary: On Request processing engine plugin request
description: |
Executes the On Request processing engine plugin specified in `<plugin_path>`.
Executes the On Request processing engine plugin specified in the trigger's `plugin_filename`.
The request can include request headers, query string parameters, and a request body, which InfluxDB passes to the plugin.
An On Request plugin implements the following signature:
@ -1417,7 +1524,7 @@ paths:
operationId: PostProcessingEnginePluginRequest
summary: On Request processing engine plugin request
description: |
Executes the On Request processing engine plugin specified in `<plugin_path>`.
Executes the On Request processing engine plugin specified in the trigger's `plugin_filename`.
The request can include request headers, query string parameters, and a request body, which InfluxDB passes to the plugin.
An On Request plugin implements the following signature:
@ -1812,6 +1919,16 @@ components:
properties:
db:
type: string
pattern: '^[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]$|^[a-zA-Z0-9]$'
description: |-
The database name. Database names cannot contain underscores (_).
Names must start and end with alphanumeric characters and can contain hyphens (-) in the middle.
retention_period:
type: string
description: |-
The retention period for the database. Specifies how long data should be retained.
Use duration format (for example, "1d", "1h", "30m", "7d").
example: "7d"
required:
- db
CreateTableRequest:
@ -1843,6 +1960,12 @@ components:
required:
- name
- type
retention_period:
type: string
description: |-
The retention period for the table. Specifies how long data in this table should be retained.
Use duration format (for example, "1d", "1h", "30m", "7d").
example: "30d"
required:
- db
- table
@ -1929,11 +2052,10 @@ components:
`schedule.py` or `endpoints/report.py`.
The path can be absolute or relative to the `--plugins-dir` directory configured when starting InfluxDB 3.
The plugin file must implement the trigger interface associated with the trigger's specification (`trigger_spec`).
The plugin file must implement the trigger interface associated with the trigger's specification.
trigger_name:
type: string
trigger_specification:
type: string
description: |
Specifies when and how the processing engine trigger should be invoked.
@ -1972,12 +2094,25 @@ components:
- `table:TABLE_NAME` - Triggers on write events to a specific table
### On-demand triggers
Format: `path:ENDPOINT_NAME`
Format: `{"request_path": {"path": "REQUEST_PATH"}}`
Creates an HTTP endpoint `/api/v3/engine/ENDPOINT_NAME` for manual invocation:
- `path:hello-world` - Creates endpoint `/api/v3/engine/hello-world`
- `path: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_]*|path:[a-zA-Z0-9_-]+)$
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_-]+$
example: cron:0 0 6 * * 1-5
trigger_arguments:
type: object
@ -2074,6 +2209,65 @@ components:
- m
- h
type: string
UpdateDatabaseRequest:
type: object
properties:
retention_period:
type: string
description: |
The retention period for the database. Specifies how long data should be retained.
Use duration format (for example, "1d", "1h", "30m", "7d").
example: "7d"
description: Request schema for updating database configuration.
UpdateTableRequest:
type: object
properties:
db:
type: string
description: The name of the database containing the table.
table:
type: string
description: The name of the table to update.
retention_period:
type: string
description: |
The retention period for the table. Specifies how long data in this table should be retained.
Use duration format (for example, "1d", "1h", "30m", "7d").
example: "30d"
required:
- db
- table
description: Request schema for updating table configuration.
LicenseResponse:
type: object
properties:
license_type:
type: string
description: The type of license (for example, "enterprise", "trial").
example: "enterprise"
expires_at:
type: string
format: date-time
description: The expiration date of the license in ISO 8601 format.
example: "2025-12-31T23:59:59Z"
features:
type: array
items:
type: string
description: List of features enabled by the license.
example:
- "clustering"
- "processing_engine"
- "advanced_auth"
status:
type: string
enum:
- "active"
- "expired"
- "invalid"
description: The current status of the license.
example: "active"
description: Response schema for license information.
responses:
Unauthorized:
description: Unauthorized access.

View File

@ -97,4 +97,4 @@ blockquote {
"blocks/important",
"blocks/warning",
"blocks/caution",
"blocks/beta";
"blocks/special-state";

View File

@ -1,10 +1,10 @@
.block.beta {
.block.special-state {
@include gradient($grad-burningDusk);
padding: 4px;
border: none;
border-radius: 25px !important;
.beta-content {
.state-content {
background: $article-bg;
border-radius: 21px;
padding: calc(1.65rem - 4px) calc(2rem - 4px) calc(.1rem + 4px) calc(2rem - 4px);

View File

@ -304,13 +304,21 @@ services:
image: influxdb:3-core
ports:
- 8181:8181
volumes:
- type: bind
source: test/influxdb3/core/data
target: /var/lib/influxdb3/data
- type: bind
source: test/influxdb3/core/plugins
target: /var/lib/influxdb3-plugins
command:
- influxdb3
- serve
- --node-id=sensors_node0
- --node-id=node0
- --log-filter=debug
- --object-store=file
- --data-dir=/var/lib/influxdb3
- --data-dir=/var/lib/influxdb3/data
- --plugin-dir=/var/lib/influxdb3/plugins
influxdb3-enterprise:
container_name: influxdb3-enterprise
image: influxdb:3-enterprise
@ -326,16 +334,16 @@ services:
- --cluster-id=cluster0
- --log-filter=debug
- --object-store=file
- --data-dir=/var/lib/influxdb3
- --data-dir=/var/lib/influxdb3/data
- --plugin-dir=/var/lib/influxdb3/plugins
- --license-email=${INFLUXDB3_LICENSE_EMAIL}
volumes:
- type: bind
source: docker/influxdb3/data
target: /var/lib/influxdb3
source: test/influxdb3/enterprise/data
target: /var/lib/influxdb3/data
- type: bind
source: docker/influxdb3/plugins
target: /var/lib/influxdb3-plugins
source: test/influxdb3/enterprise/plugins
target: /var/lib/influxdb3/plugins
telegraf-pytest:
container_name: telegraf-pytest
image: influxdata/docs-pytest

View File

@ -12,6 +12,7 @@ influxdb3/core/tags: [databases]
related:
- /influxdb3/core/write-data/best-practices/schema-design/
- /influxdb3/core/reference/cli/influxdb3/
- /influxdb3/explorer/manage-databases/
alt_links:
cloud: /influxdb/cloud/admin/buckets/
cloud_dedicated: /influxdb3/cloud-dedicated/admin/databases/

View File

@ -17,6 +17,7 @@ list_code_example: |
{{% /code-placeholders %}}
related:
- /influxdb3/core/reference/cli/influxdb3/create/database/
- /influxdb3/explorer/manage-databases/
source: /shared/influxdb3-admin/databases/create.md
---

View File

@ -16,6 +16,7 @@ list_code_example: |
{{% /code-placeholders %}}
related:
- /influxdb3/core/reference/cli/influxdb3/delete/database/
- /influxdb3/explorer/manage-databases/
source: /shared/influxdb3-admin/databases/delete.md
---

View File

@ -13,6 +13,7 @@ list_code_example: |
```
related:
- /influxdb3/core/reference/cli/influxdb3/show/databases/
- /influxdb3/explorer/manage-databases/
source: /shared/influxdb3-admin/databases/list.md
---

View File

@ -32,6 +32,7 @@ influxdb3 [GLOBAL-OPTIONS] [COMMAND]
| [serve](/influxdb3/core/reference/cli/influxdb3/serve/) | Run the {{% product-name %}} server |
| [show](/influxdb3/core/reference/cli/influxdb3/show/) | List resources |
| [test](/influxdb3/core/reference/cli/influxdb3/test/) | Test plugins |
| [update](/influxdb3/core/reference/cli/influxdb3/update/) | Update resources |
| [write](/influxdb3/core/reference/cli/influxdb3/write/) | Write to {{% product-name %}} |
## Global options

View File

@ -0,0 +1,15 @@
---
title: influxdb3 update
description: >
The `influxdb3 update` command updates resources such as databases.
menu:
influxdb3_core:
parent: influxdb3
name: influxdb3 update
weight: 300
source: /shared/influxdb3-cli/update/_index.md
---
<!--
// SOURCE content/shared/influxdb3-cli/update/_index.md
-->

View File

@ -0,0 +1,15 @@
---
title: influxdb3 update database
description: >
The `influxdb3 update database` command updates an existing database.
menu:
influxdb3_core:
parent: influxdb3 update
name: influxdb3 update database
weight: 400
source: /shared/influxdb3-cli/update/database/_index.md
---
<!--
// SOURCE content/shared/influxdb3-cli/update/database/_index.md
-->

View File

@ -12,6 +12,7 @@ influxdb3/enterprise/tags: [databases]
related:
- /influxdb3/enterprise/write-data/best-practices/schema-design/
- /influxdb3/enterprise/reference/cli/influxdb3/
- /influxdb3/explorer/manage-databases/
alt_links:
cloud: /influxdb/cloud/admin/buckets/
cloud_dedicated: /influxdb3/cloud-dedicated/admin/databases/

View File

@ -17,6 +17,7 @@ list_code_example: |
{{% /code-placeholders %}}
related:
- /influxdb3/enterprise/reference/cli/influxdb3/create/database/
- /influxdb3/explorer/manage-databases/
source: /shared/influxdb3-admin/databases/create.md
---

View File

@ -16,6 +16,7 @@ list_code_example: |
{{% /code-placeholders %}}
related:
- /influxdb3/enterprise/reference/cli/influxdb3/delete/database/
- /influxdb3/explorer/manage-databases/
source: /shared/influxdb3-admin/databases/delete.md
---

View File

@ -13,6 +13,7 @@ list_code_example: |
```
related:
- /influxdb3/enterprise/reference/cli/influxdb3/show/databases/
- /influxdb3/explorer/manage-databases/
source: /shared/influxdb3-admin/databases/list.md
---

View File

@ -6,6 +6,8 @@ menu:
influxdb3_enterprise:
parent: Administer InfluxDB
weight: 202
related:
- /influxdb3/explorer/manage-tokens/
source: /shared/influxdb3-admin/tokens/_index.md
---

View File

@ -10,6 +10,9 @@ menu:
parent: Manage tokens
name: Admin tokens
weight: 101
cascade:
related:
- /influxdb3/explorer/manage-tokens/
influxdb3/enterprise/tags: [tokens]
source: /shared/influxdb3-admin/tokens/admin/_index.md
---

View File

@ -32,6 +32,7 @@ influxdb3 [GLOBAL-OPTIONS] [COMMAND]
| [serve](/influxdb3/enterprise/reference/cli/influxdb3/serve/) | Run the {{% product-name %}} server |
| [show](/influxdb3/enterprise/reference/cli/influxdb3/show/) | List resources |
| [test](/influxdb3/enterprise/reference/cli/influxdb3/test/) | Test plugins |
| [update](/influxdb3/enterprise/reference/cli/influxdb3/update/) | Update resources |
| [write](/influxdb3/enterprise/reference/cli/influxdb3/write/) | Write to {{% product-name %}} |
## Global options

View File

@ -0,0 +1,88 @@
---
title: influxdb3 show license
description: >
The `influxdb3 show license` command displays license information for your
InfluxDB 3 Enterprise server.
menu:
influxdb3_enterprise:
parent: influxdb3 show
name: influxdb3 show license
weight: 300
---
The `influxdb3 show license` command displays license information for your {{< product-name >}} instance.
## Usage
<!--pytest.mark.skip-->
```bash
influxdb3 show license [OPTIONS]
```
## Options
| Option | | Description |
| :----- | :----------- | :--------------------------------------------------------------------------------------- |
| `-H` | `--host` | Host URL of the running {{< product-name >}} server (default is `http://127.0.0.1:8181`) |
| | `--cluster-id` | _({{< req >}})_ Cluster identifier |
| | `--node-id` | _({{< req >}})_ Node identifier |
| | `--object-store` | _({{< req >}})_ Object store type (file, memory, s3, gcs, azure) |
| | `--token` | Authentication token |
| | `--tls-ca` | Path to a custom TLS certificate authority (for testing or self-signed certificates) |
| `-h` | `--help` | Print help information |
| | `--help-all` | Print detailed help information |
> [!Note]
> **CLI help documentation bug in v3.2.0**
>
> The `influxdb3 show license --help` output in v3.2.0 does not display the required `--object-store`, `--cluster-id`, and `--node-id` options and related object store configuration options.
> This command requires object store configuration and cluster/node identification to function properly.
### Additional object store options
Depending on the `--object-store` type specified, additional configuration options may be required:
- **S3**: AWS credentials and bucket configuration
- **GCS**: Google Cloud credentials and bucket configuration
- **Azure**: Azure credentials and container configuration
- **File**: Local file system path configuration
### Option environment variables
You can use the following environment variables to set command options:
| Environment Variable | Option |
| :------------------------ | :----------- |
| `INFLUXDB3_HOST_URL` | `--host` |
| `INFLUXDB3_AUTH_TOKEN` | `--token` |
## Examples
### Display license information with file object store
{{% code-placeholders "AUTH_TOKEN|CLUSTER_ID|NODE_ID" %}}
<!--pytest.mark.skip-->
```bash
influxdb3 show license \
--cluster-id CLUSTER_ID \
--node-id NODE_ID \
--object-store file \
--token AUTH_TOKEN
```
{{% /code-placeholders %}}
In the example above, replace the following:
- {{% code-placeholder-key %}}`AUTH_TOKEN`{{% /code-placeholder-key %}}:
Authentication token
- {{% code-placeholder-key %}}`CLUSTER_ID`{{% /code-placeholder-key %}}:
Your cluster identifier
- {{% code-placeholder-key %}}`NODE_ID`{{% /code-placeholder-key %}}:
Your node identifier
The command displays information about your Enterprise license, including license type, expiration date, and usage limits.

View File

@ -0,0 +1,15 @@
---
title: influxdb3 update
description: >
The `influxdb3 update` command updates resources such as databases and tables.
menu:
influxdb3_enterprise:
parent: influxdb3
name: influxdb3 update
weight: 300
source: /shared/influxdb3-cli/update/_index.md
---
<!--
// SOURCE content/shared/influxdb3-cli/update/_index.md
-->

View File

@ -0,0 +1,15 @@
---
title: influxdb3 update database
description: >
The `influxdb3 update database` command updates an existing database.
menu:
influxdb3_enterprise:
parent: influxdb3 update
name: influxdb3 update database
weight: 400
source: /shared/influxdb3-cli/update/database/_index.md
---
<!--
// SOURCE content/shared/influxdb3-cli/update/database/_index.md
-->

View File

@ -0,0 +1,17 @@
---
title: influxdb3 update table
description: >
The `influxdb3 update table` command updates an existing table.
menu:
influxdb3_enterprise:
parent: influxdb3 update
name: influxdb3 update table
weight: 400
source: /shared/influxdb3-cli/update/table/_index.md
alt_links:
core: /influxdb3/core/reference/cli/influxdb3/update/
---
<!--
// SOURCE content/shared/influxdb3-cli/update/table/_index.md
-->

View File

@ -0,0 +1,132 @@
---
title: Get started with InfluxDB 3 Explorer
description: >
Learn how to use InfluxDB 3 Explorer to connect to InfluxDB 3, write data, and
query data.
menu:
influxdb3_explorer:
name: Get started
weight: 3
---
Get started with {{% product-name %}} by connecting it to an InfluxDB 3 instance,
writing data to InfluxDB, and then querying that data. This guide walks you
through each of those steps.
1. [Connect to an InfluxDB 3 server](#connect-to-an-influxdb-3-server)
2. [Write data to InfluxDB](#write-data-to-influxdb)
3. [Query data from InfluxDB](#query-data-from-influxdb)
> [!Note]
> This guide assumes you have already [installed {{% product-name %}}](/influxdb3/explorer/install/).
## Connect to an InfluxDB 3 server
InfluxDB 3 Explorer supports the following InfluxDB 3 products:
- [InfluxDB 3 Core](/influxdb3/core/)
- [InfluxDB 3 Enterprise](/influxdb3/enterprise/)
1. Navigate to **Configure** > **Servers**.
2. Click **+ Connect Your First Server**.
3. Provide the following InfluxDB 3 server information:
- **Server name**: A name to identify the InfluxDB 3 server you're connecting to.
- **Server URL**: The URL used to connect to your InfluxDB 3 server.
- Select the protocol to use (http or https).
- Provide the host and, if necessary, the port.
- **Token**: The authorization token to use to connect to your InfluxDB 3 server.
We recommend using an InfluxDB 3 _admin_ token.
> [!Important]
> #### Token permissions may limit Explorer functionality
>
> The permissions associated with the provided token determine what
> databases you can access using this server configuration. InfluxDB 3
> tokens with limited permissions may not be able to use some Explorer
> functionality.
4. Click **Add Server**.
InfluxDB 3 Explorer attempts to verify the connection. If successful, Explorer
saves the server configuration and selects it as the active server.
> [!Note]
> If you already have data in your InfluxDB 3 instance, skip to
> [Query data from InfluxDB](#query-data-from-influxdb).
## Write data to InfluxDB
{{% product-name %}} lets you write data to InfluxDB 3 and provides multiple
options. For this getting started guide, use Explorer to write one of the
sample data sets to InfluxDB:
1. Navigate to **Write Data** > **Sample/Dev Data**.
2. Select any of the available sample data sets.
3. Click **Write Sample Data**.
{{% product-name %}} creates a new database and then writes the sample data to
the database.
### Other write methods
{{% product-name %}} provides other ways to write data to InfluxDB, including
the following:
- Line protocol
- CSV or JSON
- InfluxDB 3 client libraries
- Telegraf
## Query data from InfluxDB
To use {{% product-name %}} to query data from InfluxDB 3, navigate to
**Query Data** > **Data Explorer**.
The _Data Explorer_ lets you explore the
schema of your database and automatically builds SQL queries by either
selecting columns in the _Schema Browser_ or by using _Natural Language_ with
the {{% product-name %}} OpenAI integration.
For this getting started guide, use the Schema Browser to build a SQL query
that returns data from the newly written sample data set.
1. On the **Data Explorer** in the **Schema** column, select the database you
want to query from the database dropdown menu.
Once selected, all tables in the database appear.
2. Click the name of the table you want to query to expand and view all the
columns in that table.
3. Select each column you want to query.
As you select columns in the Schema Browser, Explorer generates and updates
an SQL query in the _Query pane_.
4. Use the time range dropdown menu above the Query pane to select a time range
to query. You can select one of the predefined relative time ranges, or you
can select _Custom Range_ to define an absolute time range to query.
5. With columns and a time range selected, click **Run Query**.
{{% product-name %}} runs the query and returns the results in the _Results pane_.
The Results pane provides three view options:
- **Table** _(default)_: Displays raw query results in paginated table format.
- **Line**: Displays query results in a line graph.
- **Bar**: Displays query results in a bar graph.
> [!Tip]
> SQL query results may not be ordered by `time` and Line and Bar graph
> visualizations may behave unexpectedly. To order results by time:
>
> - Ensure that you query the `time` column
> - Update the query to include an `ORDER BY time` clause.
Congratulations! You have successfully used {{% product-name %}} to connect to,
write data to, and query data from an InfluxDB 3 instance.
## Video walkthrough
{{< youtube "zW2Hi1Ki4Eo" >}}
<!--
## Next steps
TO-DO: Provide links to deeper content as we release it
-->

View File

@ -1,14 +0,0 @@
---
title: Get started using InfluxDB 3 Explorer
description: Follow steps to get started using InfluxDB 3 Explorer.
menu:
influxdb3_explorer:
name: Get started
weight: 3
---
Follow steps to get started using InfluxDB 3 Explorer.
{{< youtube "zW2Hi1Ki4Eo" >}}
<!-- {{< page-nav next="/explorer/v1/get-started/connect/" >}} -->

View File

@ -1,12 +0,0 @@
---
title: Connect to a server
description:
Use InfluxDB 3 Explorer to connect to an InfluxDB 3 server.
menu:
influxdb3_explorer:
parent: Get started
weight: 101
draft: true
---
Use InfluxDB 3 Explorer to connect to an InfluxDB 3 server.

View File

@ -73,7 +73,11 @@ Use [Docker](https://docker.com) to install and run **InfluxDB 3 Explorer**.
- `$(pwd)/db:/db:rw`
- `$(pwd)/config:/app-root/config:ro`
- `$(pwd)/ssl:/etc/nginx/ssl:ro`
- Any of the available [environment variables](#environment-variables)
- Any of the available [environment variables](#environment-variables)
> [!Note]
> To persist sessions across container restarts, see the detailed instructions
> on setting the [`SESSION_SECRET_KEY` environment variable](#session_secret_key).
```bash
docker run --detach \
@ -114,6 +118,13 @@ To enable TLS/SSL, mount valid certificate and key files into the container:
The nginx web server automatically uses certificate files when they are present
in the mounted path.
> [!Note]
> You can use a custom location for certificate and key files.
> Use the [`SSL_CERT_PATH`](#ssl_cert_path) and [`SSL_KEY_PATH`](#ssl_key_path)
> environment variables to identify the custom location.
> Also update the SSL directory volume mount path inside the container.
---
## Pre-configure InfluxDB connection settings
@ -191,11 +202,91 @@ If `--mode` is not set, the container defaults to query mode.
Use the following environment variables to customize {{% product-name %}} settings
in your container.
| Variable | Description | Default |
|----------------|--------------------------------------------------|----------------------|
| `DATABASE_URL` | Path to SQLite DB inside container | `/db/sqlite.db` |
- [DATABASE_URL](#database_url)
- [SESSION_SECRET_KEY](#session_secret_key)
- [SSL_CERT_PATH](#ssl_cert_path)
- [SSL_KEY_PATH](#ssl_key_path)
---
### DATABASE_URL
Path to SQLite DB inside container. The default is `/db/sqlite.db`.
{{< expand-wrapper >}}
{{% expand "View `DATABASE_URL` example" %}}
<!-- pytest.mark.skip -->
```bash
docker run --detach \
# ...
--volume $(pwd)/db:/custom/db-path:rw \
--env DATABASE_URL=/custom/db-path/sqlite.db \
quay.io/influxdb/influxdb3-explorer:latest
```
{{% /expand %}}
{{< /expand-wrapper >}}
### SESSION_SECRET_KEY
Specifies the secret key for session management. If none is provided, Explorer
uses a random 32-byte hex string as the session secret key.
{{< expand-wrapper >}}
{{% expand "View `SESSION_SECRET_KEY` example" %}}
<!-- pytest.mark.skip -->
```bash
docker run --detach \
# ...
--env SESSION_SECRET_KEY=xxX0Xx000xX0XxxxX0Xx000xX0XxX00x \
quay.io/influxdb/influxdb3-explorer:latest
```
{{% /expand %}}
{{< /expand-wrapper >}}
> [!Important]
> #### Always set SESSION_SECRET_KEY in production
>
> When you restart the container, {{% product-name %}} generates a new key if
> not explicitly set. For production use cases, always set the `SESSION_SECRET_KEY`
> environment variable to persist sessions across restarts.
### SSL_CERT_PATH
Defines the path to the SSL certificate file inside the container.
Default is `/etc/nginx/ssl/cert.pem`.
{{< expand-wrapper >}}
{{% expand "View `SSL_CERT_PATH` example" %}}
<!-- pytest.mark.skip -->
```bash
docker run --detach \
# ...
--volume $(pwd)/ssl:/custom/ssl:ro \
--env SSL_CERT_PATH=/custom/ssl/cert.pem \
quay.io/influxdb/influxdb3-explorer:latest
```
{{% /expand %}}
{{< /expand-wrapper >}}
### SSL_KEY_PATH
Defines the path to the SSL private key file inside the container.
Default is `/etc/nginx/ssl/key.pem`.
{{< expand-wrapper >}}
{{% expand "View `SSL_KEY_PATH` example" %}}
<!-- pytest.mark.skip -->
```bash
docker run --detach \
# ...
--volume $(pwd)/ssl:/custom/ssl:ro \
--env SSL_KEY_PATH=/custom/ssl/key.pem \
quay.io/influxdb/influxdb3-explorer:latest
```
{{% /expand %}}
{{< /expand-wrapper >}}
## Volume Reference
@ -205,8 +296,6 @@ in your container.
| `/app-root/config` | JSON config for defaults | `./config` |
| `/etc/nginx/ssl` | SSL certs for HTTPS | `./ssl` |
---
## Exposed Ports
| Port | Protocol | Purpose |

View File

@ -0,0 +1,53 @@
---
title: Manage databases with InfluxDB 3 Explorer
seotitle: Manage InfluxDB databases with InfluxDB 3 Explorer
description: >
Use InfluxDB 3 Explorer to manage databases in an InfluxDB 3 instance.
menu:
influxdb3_explorer:
name: Manage databases
weight: 4
related:
- /influxdb3/core/admin/databases/, Manage databases in InfluxDB 3 Core
- /influxdb3/enterprise/admin/databases/, Manage databases in InfluxDB 3 Enterprise
---
{{% product-name %}} lets you manage databases in your InfluxDB 3 Core instance
or InfluxDB 3 Enterprise cluster.
> [!Important]
> Using {{% product-name %}} to manage a database in InfluxDB 3 requires that
> Explorer is running in [admin mode](/influxdb3/explorer/install/#run-in-query-or-admin-mode)
> and that the token used in the InfluxDB 3 server configuration is an
> [admin token](/influxdb3/enterprise/admin/tokens/admin/).
To manage databases, navigate to **Manage Databases** in Explorer.
This page provides a list of databases in the connected InfluxDB 3 server that
contains the database name, retention period, and number of tables
(which includes system tables).
## Create a database
1. On the **Manage Databases** page, click **+ Create New**.
2. Provide a **Database name**.
_For information about naming restrictions, see
[InfluxDB 3 naming restrictions](/influxdb3/enterprise/admin/databases/create/#database-naming-restrictions)._
3. _(Optional)_ Specify a **Retention Period** for the database.
This determines how long InfluxDB retains data (based on timestamp) in the
database before expiring and removing the data. If no retention period is
specified, InfluxDB does not expire data in the database.
Set the following:
- **Retention Period**: The number of time units to retain data.
- **Unit**: The unit of time to use in the retention period definition.
4. Click **{{< icon "check" >}} Create Database**.
## Delete a database
1. On the **Manage Databases** page, click **{{< icon "trash" >}}**.
2. Confirm that you want to delete the database.
> [!Caution]
> Deleting a database is a destructive action and cannot be undone.

View File

@ -0,0 +1,92 @@
---
title: Manage InfluxDB 3 plugins with InfluxDB 3 Explorer
description: >
Use InfluxDB 3 Explorer to manage InfluxDB 3 processing engine plugins.
menu:
influxdb3_explorer:
name: Manage InfluxDB plugins
weight: 5
cascade:
related:
- /influxdb3/core/plugins/, InfluxDB 3 Core Processing engine plugins
- /influxdb3/enterprise/plugins/, InfluxDB 3 Enterprise Processing engine plugins
cascade:
prepend: |
> [!Warning]
> #### {{% product-name %}} plugin management is currently in beta
>
> The {{% product-name %}} plugin management tools and the Plugin Library are
> currently in **beta**.
---
{{% product-name %}} lets you manage plugins in your InfluxDB 3 instance or cluster.
[InfluxDB 3 Processing engine plugins](/influxdb3/enterprise/plugins/) let you
extend your database with custom Python code.
Use {{% product-name %}} to manage plugins in your InfluxDB 3 instance and
install prebuilt plugins from the _Plugin Library_.
Each plugin can define one or more _triggers_—rules that
specify when the plugin should execute. Triggers are typically based on
conditions such as data arriving in a specific table or matching certain
criteria.
- **Data writes** - Process and transform data as it enters the database
- **Scheduled events** - Run code at defined intervals or specific times
- **HTTP requests** - Expose custom API endpoints that execute your code
When a trigger condition is met, InfluxDB 3 automatically runs the associated
plugin code. This enables real-time data processing, enrichment, or alerting
without manual intervention.
Use the InfluxDB 3 Explorer UI to enable, disable, or configure triggers for each plugin.
<!-- TOC -->
- [View installed plugins](#view-installed-plugins)
- [Filter installed plugins](#filter-installed-plugins)
- [Enable or disable a plugin](#enable-or-disable-a-plugin)
- [ View Plugin Logs](#view-plugin-logs)
- [Delete a plugin](#delete-a-plugin)
- [Use the Plugin Library](#use-the-plugin-library)
<!-- /TOC -->
## View installed plugins
To view plugins installed in your InfluxDB 3 server, navigate to
**Manage Plugins** > **Overview**.
1. Navigate to the **Manage Plugins** > **Overview** section in the left sidebar.
2. All installed plugins are listed under the _All Plugins_ tab.
### Filter installed plugins
To filter installed plugins by state, use the top tabs to filter by:
- **All Plugins**
- **Running**
- **Stopped**
- **Errors**
You can also use the **search bar** to filter by plugin name.
## Enable or disable a plugin
1. In the plugin list, locate the desired plugin.
- **If the plugin is currently running (enabled)**, click {{< icon "pause" >}} to disable the plugin.
- **If the plugin is currently stopped (disabled)**, click the {{< icon "play" >}} button to enable the plugin.
## View plugin logs
1. In the plugin list, locate the desired plugin.
2. Click **Logs** to view the most recent logs output by the plugin.
3. To view more log entries, click **View More**.
4. To export the logs, click **Export**.
## Delete a plugin
1. In the plugin list, locate the desired plugin.
2. Click the **{{< icon "trash" >}} button** to delete the plugin.
3. Confirm that you want to delete the plugin.
{{< children hlevel="h2" >}}

View File

@ -0,0 +1,74 @@
---
title: Use the Plugin Library
description: >
Use InfluxDB 3 Explorer Plugin Library to view and install pre-built InfluxDB
3 processing engine plugins.
menu:
influxdb3_explorer:
name: Plugin Library
parent: Manage InfluxDB plugins
weight: 101
---
The _InfluxDB Plugin Library_ is a collection of pre-built InfluxDB 3 plugins that
you can install in your InfluxDB 3 server. To view the Plugin library, navigate
to **Manage Plugins** > **Plugin Library** in the left sidebar.
## Search the Plugin Library
To search for plugins in the Plugin library, submit a search term in the search bar.
## Install a plugin
1. In the **Plugin Library**, locate the plugin you want to install.
2. Click on the plugin card to open its details.
3. To install a plugin from {{% product-name %}} select **Install Plugin**:
4. Provide the following:
- **Database**: The name of the InfluxDB 3 database to associate the
plugin with.
- **Trigger Name**: A unique name for the plugin and trigger combination.
- **Trigger Type**: The trigger type. What trigger types are available
depend on the plugin.
_For more information about InfluxDB 3 plugin triggers, see
[Understand trigger types](/influxdb3/enterprise/plugins/#understand-trigger-types)._
Depending on the selected trigger type, provide the following:
- **Data Writes (All Tables)**: _no additional configuration options_.
- **Data Writes (Single Table)**:
- **Table Name**: The name of the table that, when written to, triggers the plugin to run.
- **Schedule**:
- **Frequency**: When to run the plugin using one of the following patterns:
- `every:<duration>`: Run at specified intervals--for example:
`every:15m`.
- `cron:<cron-expression>`: Run on a cron schedule--for
example: `cron:0 */12 * * *`.
- **HTTP Endpoint**:
- **API Endpoint**: The API endpoint name to use to trigger the plugin--for
example: `downsample`. To trigger the plugin, you would then send
a request to the `/api/v3/engine/downsample` endpoint of your InfluxDB
server to trigger the plugin.
- **Advanced Settings**
- **Run Asynchronously**: Execute the plugin asynchronously and do not
wait for a response.
- **Error Behavior**: Specify the action you want the plugin to take
when it encounters an error:
- **Log**: Log the error to your InfluxDB server's logs.
- **Retry**: Retry the plugin execution.
- **Disable**: Disable the plugin.
- **Arguments**: Specific arguments to pass to the Plugin.
Plugins can have both required and optional arguments.
5. Click **Deploy** to install the plugin.
### Other plugin installation options
{{% product-name %}} also lets you do the following:
- **Download Code**: Download the plugin code to view it or modify it for your own use.
- **Copy Install Command**: Copy the `influxdb3` CLI command you can use to
manually install the plugin on your InfluxDB 3 server.

View File

@ -0,0 +1,104 @@
---
title: Manage tokens with InfluxDB 3 Explorer
seotitle: Manage InfluxDB tokens with InfluxDB 3 Explorer
description: >
Use InfluxDB 3 Explorer to manage authorization tokens for an InfluxDB 3 instance.
menu:
influxdb3_explorer:
name: Manage tokens
weight: 4
related:
- /influxdb3/core/admin/tokens/, Manage tokens in InfluxDB 3 Core
- /influxdb3/enterprise/admin/tokens/, Manage tokens in InfluxDB 3 Enterprise
---
{{% product-name %}} lets you manage authorization tokens for your InfluxDB 3
Core instance or InfluxDB 3 Enterprise cluster.
> [!Important]
> Using {{% product-name %}} to manage authorization tokens in InfluxDB 3 requires that
> Explorer is running in [admin mode](/influxdb3/explorer/install/#run-in-query-or-admin-mode)
> and that the token used in the InfluxDB 3 server configuration is an
> [admin token](/influxdb3/enterprise/admin/tokens/admin/).
To manage InfluxDB authorization tokens, navigate to **Manage Tokens** in Explorer.
This page provides a list of databases in the connected InfluxDB 3 server that
contains the database name, retention period, and number of tables
(which includes system tables).
## Create a token
Use {{% product-name %}} to create an admin token or a resource token
_(Enterprise only)_ for your InfluxDB 3 instance or cluster.
For more information about InfluxDB tokens, see:
- [Manage tokens in InfluxDB 3 Core](/influxdb3/core/admin/tokens/)
- [Manage tokens in InfluxDB 3 Enterprise](/influxdb3/enterprise/admin/tokens/)
{{< tabs-wrapper >}}
{{% tabs %}}
[Admin Token](#)
[Resource Token _(Enterprise only)_](#)
{{% /tabs %}}
{{% tab-content %}}
<!----------------------------- BEGIN ADMIN TOKEN ----------------------------->
To create an _admin_ token:
1. On the **Manage Databases** page, click **+ Create New**.
2. Select **Admin Token** to create an admin token.
3. Provide a **Token Name**.
4. Click **Create Admin Token**.
5. Copy the generated token string and store it in a secure place.
<!------------------------------ END ADMIN TOKEN ------------------------------>
{{% /tab-content %}}
{{% tab-content %}}
<!---------------------------- BEGIN RESOURCE TOKEN --------------------------->
To create a _resource_ token with read or write permissions for specific databases:
1. On the **Manage Databases** page, click **+ Create New**.
2. Select **Database Token** to create a resource token _(InfluxDB 3 Enterprise only)_.
3. Provide a **Token Name**.
4. _(Optional)_ Select a **Token Expiry**.
5. Select **Database Permissions** to assign to the token.
To grant the token read or write permissions on all databases, select the
_Read_ and _Write_ column headings.
To grant permissions for specific databases, select the checkboxes next
to each respective database name.
6. Copy the generated token string and store it in a secure place.
<!----------------------------- END RESOURCE TOKEN ---------------------------->
{{% /tab-content %}}
{{< /tabs-wrapper >}}
> [!Note]
> #### Store tokens in a secure secret store
>
> This is the _only_ time you are able to view and copy the raw token string.
> We recommend storing tokens in a **secure secret store**.
## Delete a token
On the **Manage Databases** page, click the **{{< icon "trash" >}}** button
on the row of the token you want to delete.
> [!Caution]
> Deleting a token is a destructive action and cannot be undone.
> Any clients using the deleted token will no longer be able to access your
> InfluxDB 3 instance.
> [!Note]
> #### You cannot delete the _admin token
>
> When using InfluxDB 3 Enterprise, the first token created in the cluster is
> named `_admin`. This functions as the "operator" token and cannot be deleted.

View File

@ -19,13 +19,14 @@ You can also set the database name using the `INFLUXDB3_DATABASE_NAME` environme
## Options
| Option | | Description |
| :----- | :----------- | :--------------------------------------------------------------------------------------- |
| `-H` | `--host` | Host URL of the running {{< product-name >}} server (default is `http://127.0.0.1:8181`) |
| | `--token` | Authentication token |
| | `--tls-ca` | Path to a custom TLS certificate authority (for testing or self-signed certificates) |
| `-h` | `--help` | Print help information |
| | `--help-all` | Print detailed help information |
| Option | | Description |
| :----- | :------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------- |
| `-H` | `--host` | Host URL of the running {{< product-name >}} server (default is `http://127.0.0.1:8181`) |
| | `--retention-period` | Database [retention period](/influxdb3/version/reference/glossary/#retention-period) ([duration](/influxdb3/version/reference/glossary/#duration) value, for example: `30d`, `24h`, `1h`) |
| | `--token` | Authentication token |
| | `--tls-ca` | Path to a custom TLS certificate authority (for testing or self-signed certificates) |
| `-h` | `--help` | Print help information |
| | `--help-all` | Print detailed help information |
### Option environment variables
@ -69,4 +70,14 @@ Flags override their associated environment variables.
influxdb3 create database --token AUTH_TOKEN DATABASE_NAME
```
### Create a database with a retention period
Creates a database with a specific retention period.
<!--pytest.mark.skip-->
```bash
influxdb3 create database --retention-period 30d DATABASE_NAME
```
{{% /code-placeholders %}}

View File

@ -24,6 +24,7 @@ influxdb3 create table [OPTIONS] \
## Options
{{% hide-in "enterprise" %}}
| Option | | Description |
| :----- | :----------- | :--------------------------------------------------------------------------------------- |
| `-H` | `--host` | Host URL of the running {{< product-name >}} server (default is `http://127.0.0.1:8181`) |
@ -34,6 +35,22 @@ influxdb3 create table [OPTIONS] \
| | `--tls-ca` | Path to a custom TLS certificate authority (for testing or self-signed certificates) |
| `-h` | `--help` | Print help information |
| | `--help-all` | Print detailed help information |
{{% /hide-in %}}
<!-- Using the show-in shortcode for only the retention-period option breaks the formatting in Core -->
{{% show-in "enterprise" %}}
| Option | | Description |
| :----- | :------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------- |
| `-H` | `--host` | Host URL of the running {{< product-name >}} server (default is `http://127.0.0.1:8181`) |
| `-d` | `--database` | _({{< req >}})_ Name of the database to operate on |
| | `--retention-period` | [Retention period](/influxdb3/version/reference/glossary/#retention-period) ([duration](/influxdb3/version/reference/glossary/#duration) value, for example: `30d`, `24h`, `1h`) for data in the table|
| | `--token` | _({{< req >}})_ Authentication token |
| | `--tags` | _({{< req >}})_ Comma-separated list of tag columns to include in the table |
| | `--fields` | Comma-separated list of field columns and their types to include in the table |
| | `--tls-ca` | Path to a custom TLS certificate authority (for testing or self-signed certificates) |
| `-h` | `--help` | Print help information |
| | `--help-all` | Print detailed help information |
{{% /show-in %}}
> [!Important]
>
@ -90,6 +107,22 @@ influxdb3 create table \
TABLE_NAME
```
{{% show-in "enterprise" %}}
### Create a table with a retention period
<!--pytest.mark.skip-->
```bash
influxdb3 create table \
--tags room,sensor_id \
--fields temp:float64,hum:float64 \
--retention-period 7d \
--database DATABASE_NAME \
--token AUTH_TOKEN \
TABLE_NAME
```
{{% /show-in %}}
### Verification
Use the `SHOW TABLES` query to verify that the table was created successfully:
@ -114,7 +147,7 @@ Example output:
+---------------+--------------------+----------------------------+------------+
```
>[!Note]
> [!Note]
> `SHOW TABLES` is an SQL query. It isn't supported in InfluxQL.
{{% /code-placeholders %}}

View File

@ -27,7 +27,7 @@ influxdb3 create trigger [OPTIONS] \
| `-d` | `--database` | _({{< req >}})_ Name of the database to operate on |
| | `--token` | _({{< req >}})_ Authentication token |
| | `--plugin-filename` | _({{< req >}})_ Name of the file, stored in the server's `plugin-dir`, that contains the Python plugin code to run |
| | `--trigger-spec` | Trigger specification--for example `table:<TABLE_NAME>` or `all_tables` |
| | `--trigger-spec` | Trigger specification: `table:<TABLE_NAME>`, `all_tables`, `every:<DURATION>`, `cron:<EXPRESSION>`, or `request:<REQUEST_PATH>` |
| | `--disabled` | Create the trigger in disabled state |
| | `--tls-ca` | Path to a custom TLS certificate authority (for testing or self-signed certificates) |
| `-h` | `--help` | Print help information |
@ -113,3 +113,15 @@ 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:<REQUEST_PATH>` (same as Core CLI and API)
> - **Enterprise API**: `{"request_path": {"path": "<REQUEST_PATH>"}}`
>
> See the [API reference](/influxdb3/enterprise/api/#operation/PostConfigureProcessingEngineTrigger) for examples. Use `influxdb3 show summary` to verify the actual trigger specification.
{{% /show-in %}}

View File

@ -17,13 +17,14 @@ influxdb3 delete database [OPTIONS] <DATABASE_NAME>
## Options
| Option | | Description |
| :----- | :----------- | :--------------------------------------------------------------------------------------- |
| `-H` | `--host` | Host URL of the running {{< product-name >}} server (default is `http://127.0.0.1:8181`) |
| | `--token` | Authentication token |
| | `--tls-ca` | Path to a custom TLS certificate authority (for testing or self-signed certificates) |
| `-h` | `--help` | Print help information |
| | `--help-all` | Print detailed help information |
| Option | | Description |
| :----- | :------------ | :--------------------------------------------------------------------------------------- |
| `-H` | `--host` | Host URL of the running {{< product-name >}} server (default is `http://127.0.0.1:8181`) |
| | `--hard-delete` | When to hard delete data (never/now/default/timestamp). Default behavior is a soft delete that allows recovery |
| | `--token` | Authentication token |
| | `--tls-ca` | Path to a custom TLS certificate authority (for testing or self-signed certificates) |
| `-h` | `--help` | Print help information |
| | `--help-all` | Print detailed help information |
### Option environment variables
@ -36,8 +37,10 @@ You can use the following environment variables to set command options:
## Examples
- [Delete a database](#delete-a-new-database)
- [Delete a database while specifying the token inline](#delete-a-new-database-while-specifying-the-token-inline)
- [Delete a database](#delete-a-database)
- [Delete a database while specifying the token inline](#delete-a-database-while-specifying-the-token-inline)
- [Hard delete a database immediately](#hard-delete-a-database-immediately)
- [Hard delete a database at a specific time](#hard-delete-a-database-at-a-specific-time)
In the examples below, replace the following:
@ -64,4 +67,24 @@ influxdb3 delete database DATABASE_NAME
influxdb3 delete database --token AUTH_TOKEN DATABASE_NAME
```
### Hard delete a database immediately
Permanently delete a database and all its data immediately without the ability to recover.
<!--pytest.mark.skip-->
```bash
influxdb3 delete database --hard-delete now DATABASE_NAME
```
### Hard delete a database at a specific time
Schedule a database for permanent deletion at a specific timestamp.
<!--pytest.mark.skip-->
```bash
influxdb3 delete database --hard-delete "2024-01-01T00:00:00Z" DATABASE_NAME
```
{{% /code-placeholders %}}

View File

@ -15,14 +15,15 @@ influxdb3 delete table [OPTIONS] --database <DATABASE_NAME> <TABLE_NAME>
## Options
| Option | | Description |
| :----- | :----------- | :--------------------------------------------------------------------------------------- |
| `-H` | `--host` | Host URL of the running {{< product-name >}} server (default is `http://127.0.0.1:8181`) |
| `-d` | `--database` | _({{< req >}})_ Name of the database to operate on |
| | `--token` | _({{< req >}})_ Authentication token |
| | `--tls-ca` | Path to a custom TLS certificate authority (for testing or self-signed certificates) |
| `-h` | `--help` | Print help information |
| | `--help-all` | Print detailed help information |
| Option | | Description |
| :----- | :------------ | :--------------------------------------------------------------------------------------- |
| `-H` | `--host` | Host URL of the running {{< product-name >}} server (default is `http://127.0.0.1:8181`) |
| `-d` | `--database` | _({{< req >}})_ Name of the database to operate on |
| | `--hard-delete` | When to hard delete data (never/now/default/timestamp). Default behavior is a soft delete that allows recovery |
| | `--token` | _({{< req >}})_ Authentication token |
| | `--tls-ca` | Path to a custom TLS certificate authority (for testing or self-signed certificates) |
| `-h` | `--help` | Print help information |
| | `--help-all` | Print detailed help information |
### Option environment variables
@ -49,9 +50,23 @@ influxdb3 delete table \
TABLE_NAME
```
### Hard delete a table immediately
Permanently delete a table and all its data immediately without the ability to recover.
<!--pytest.mark.skip-->
```bash
influxdb3 delete table \
--database DATABASE_NAME \
--token AUTH_TOKEN \
--hard-delete now \
TABLE_NAME
```
{{% /code-placeholders %}}
In the example above, replace the following:
Replace the following:
- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}:
Database name

View File

@ -14,6 +14,7 @@ influxdb3 show <SUBCOMMAND>
| Subcommand | Description |
| :---------------------------------------------------------------------- | :--------------------------------------------- |
| [databases](/influxdb3/version/reference/cli/influxdb3/show/databases/) | List database |
{{% show-in "enterprise" %}}| [license](/influxdb3/version/reference/cli/influxdb3/show/license/) | Display license information |{{% /show-in %}}
| [system](/influxdb3/version/reference/cli/influxdb3/show/system/) | Display system table data |
| [tokens](/influxdb3/version/reference/cli/influxdb3/show/tokens/) | List authentication tokens |
| help | Print command help or the help of a subcommand |

View File

@ -0,0 +1,33 @@
The `influxdb3 update` command updates resources such as databases and tables.
## Usage
<!--pytest.mark.skip-->
```bash
influxdb3 update <SUBCOMMAND>
```
## Subcommands
{{% show-in "enterprise" %}}
| Subcommand | Description |
| :----------------------------------------------------------------- | :--------------------- |
| [database](/influxdb3/version/reference/cli/influxdb3/update/database/) | Update a database |
| [table](/influxdb3/version/reference/cli/influxdb3/update/table/) | Update a table |
| help | Print command help or the help of a subcommand |
{{% /show-in %}}
{{% show-in "core" %}}
| Subcommand | Description |
| :----------------------------------------------------------------- | :--------------------- |
| [database](/influxdb3/version/reference/cli/influxdb3/update/database/) | Update a database |
| help | Print command help or the help of a subcommand |
{{% /show-in %}}
## Options
| Option | | Description |
| :----- | :----------- | :------------------------------ |
| `-h` | `--help` | Print help information |
| | `--help-all` | Print detailed help information |

View File

@ -0,0 +1,84 @@
The `influxdb3 update database` command updates an existing database in your {{< product-name >}} instance.
Use this command to update a database's retention period.
## Usage
<!--pytest.mark.skip-->
```bash
influxdb3 update database [OPTIONS] --database <DATABASE_NAME>
```
## Arguments
- **`DATABASE_NAME`**: (Required) The name of the database to update.
You can also set the database name using the `INFLUXDB3_DATABASE_NAME` environment variable.
## Options
| Option | | Description |
| :----- | :------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------- |
| `-H` | `--host` | Host URL of the running {{< product-name >}} server (default is `http://127.0.0.1:8181`) |
| `-d` | `--database` | The name of the database to update |
| | `--token` | Authentication token |
| `-r` | `--retention-period` | The retention period as a [duration](/influxdb3/version/reference/glossary/#duration) value (for example: `30d`, `24h`) or `none` to clear |
| | `--tls-ca` | Path to a custom TLS certificate authority (for testing or self-signed certificates) |
| `-h` | `--help` | Print help information |
| | `--help-all` | Print detailed help information |
### Option environment variables
You can use the following environment variables instead of providing CLI options directly:
| Environment Variable | Option |
| :------------------------ | :----------- |
| `INFLUXDB3_HOST_URL` | `--host` |
| `INFLUXDB3_DATABASE_NAME` | `--database` |
| `INFLUXDB3_AUTH_TOKEN` | `--token` |
| `INFLUXDB3_TLS_CA` | `--tls-ca` |
## Examples
The following examples show how to update a database.
In your commands replace the following:
- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}:
Database name
- {{% code-placeholder-key %}}`AUTH_TOKEN`{{% /code-placeholder-key %}}:
Authentication token
{{% code-placeholders "DATABASE_NAME|AUTH_TOKEN" %}}
### Update a database retention period
Updates a database retention period to 30 days.
<!--pytest.mark.skip-->
```bash
influxdb3 update database --retention-period 30d DATABASE_NAME
```
### Clear a database retention period
Removes the retention period from a database by setting it to `none`.
<!--pytest.mark.skip-->
```bash
influxdb3 update database --retention-period none DATABASE_NAME
```
### Update a database with authentication
Updates a database using an authentication token.
<!--pytest.mark.skip-->
```bash
influxdb3 update database --token AUTH_TOKEN --retention-period 7d DATABASE_NAME
```
{{% /code-placeholders %}}

View File

@ -0,0 +1,74 @@
The `influxdb3 update table` command updates an existing table in a database in your {{< product-name >}} instance.
Use this command to update a table's retention period.
## Usage
<!--pytest.mark.skip-->
```bash
influxdb3 update table [OPTIONS] --database <DATABASE_NAME> <TABLE_NAME>
```
## Arguments
- **`TABLE_NAME`**: (Required) The name of the table to update
## Options
| Option | | Description |
| :----- | :------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------- |
| `-H` | `--host` | Host URL of the running {{< product-name >}} server (default is `http://127.0.0.1:8181`) |
| `-d` | `--database` | The name of the database containing the table |
| | `--token` | Authentication token |
| `-r` | `--retention-period` | The retention period as a [duration](/influxdb3/version/reference/glossary/#duration) value (for example: `30d`, `24h`) or `none` to clear |
| | `--tls-ca` | Path to a custom TLS certificate authority (for testing or self-signed certificates) |
| `-h` | `--help` | Print help information |
| | `--help-all` | Print detailed help information |
### Option environment variables
You can use the following environment variables instead of providing CLI options directly:
| Environment Variable | Option |
| :------------------------ | :----------- |
| `INFLUXDB3_HOST_URL` | `--host` |
| `INFLUXDB3_DATABASE_NAME` | `--database` |
| `INFLUXDB3_AUTH_TOKEN` | `--token` |
| `INFLUXDB3_TLS_CA` | `--tls-ca` |
## Examples
The following examples show how to update a table.
In your commands replace the following:
- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}:
Database name
- {{% code-placeholder-key %}}`TABLE_NAME`{{% /code-placeholder-key %}}:
Table name
- {{% code-placeholder-key %}}`AUTH_TOKEN`{{% /code-placeholder-key %}}:
Authentication token
{{% code-placeholders "DATABASE_NAME|TABLE_NAME|AUTH_TOKEN" %}}
### Update a table retention period
Updates a table retention period to 30 days.
<!--pytest.mark.skip-->
```bash
influxdb3 update table --database DATABASE_NAME --token AUTH_TOKEN --retention-period 30d TABLE_NAME
```
### Clear a table retention period
Removes the retention period from a table by setting it to `none`.
<!--pytest.mark.skip-->
```bash
influxdb3 update table --database DATABASE_NAME --retention-period none TABLE_NAME
```
{{% /code-placeholders %}}

View File

@ -23,24 +23,36 @@ engine [trigger](#trigger).
### Trigger
When you create a trigger, you specify a [plugin](#plugin), a database, optional
arguments, and a _trigger-spec_, which defines when the plugin is executed and
arguments, and a trigger specification, which defines when the plugin is executed and
what data it receives.
#### Trigger types
InfluxDB 3 provides the following types of triggers, each with specific
trigger-specs:
specifications:
- **On WAL flush**: Sends a batch of written data (for a specific table or all
tables) to a plugin (by default, every second).
- **On Schedule**: Executes a plugin on a user-configured schedule (using a
- **Data write** (`table:` or `all_tables`): Sends a batch of written data (for a specific table or all
tables) to a plugin when the database flushes data to the Write-Ahead Log (by default, every second).
- **Scheduled** (`every:` or `cron:`): Executes a plugin on a user-configured schedule (using a
crontab or a duration). This trigger type is useful for data collection and
deadman monitoring.
- **On Request**: Binds a plugin to a custom HTTP API endpoint at
`/api/v3/engine/<ENDPOINT_PATH>`.
- **HTTP request** (`request:`): Binds a plugin to a custom HTTP API endpoint at
`/api/v3/engine/<REQUEST_PATH>`.
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:<REQUEST_PATH>` (same as Core CLI and API)
> - **Enterprise API**: `{"request_path": {"path": "<REQUEST_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 <PLUGIN_DIR>` option
@ -64,10 +76,10 @@ to the current working directory of the `influxdb3` server.
## Create a plugin
To create a plugin, write and store a Python file in your configured `PLUGIN_DIR`.
The following example is a WAL flush plugin that processes data before it gets
The following example is a data write plugin that processes data before it gets
persisted to the object store.
##### Example Python plugin for WAL rows
##### Example Python plugin for data writes
```python
# This is the basic structure for Python plugin code that runs in the
@ -77,9 +89,9 @@ persisted to the object store.
# allowing you to write generic code that uses variables such as monitoring
# thresholds, environment variables, and host names.
#
# Use the following exact signature to define a function for the WAL flush
# Use the following exact signature to define a function for the data write
# trigger.
# When you create a trigger for a WAL flush plugin, you specify the database
# When you create a trigger for a data write plugin, you specify the database
# and tables that the plugin receives written data from on every WAL flush
# (default is once per second).
def process_writes(influxdb3_local, table_batches, args=None):
@ -98,9 +110,8 @@ def process_writes(influxdb3_local, table_batches, args=None):
# value.
influxdb3_local.info("query result: " + str(query_result))
# this is the data that is sent when the WAL is flushed of writes the server
# received for the DB or table of interest. One batch for each table (will
# only be one if triggered on a single table)
# this is the data that is sent when data is written to the database and flushed to the WAL.
# One batch for each table (will only be one if triggered on a single table)
for table_batch in table_batches:
# here you can see that the table_name is available.
influxdb3_local.info("table: " + table_batch["table_name"])
@ -151,7 +162,7 @@ affecting actual data. During a plugin test:
To test a plugin:
1. Save the [example plugin code](#example-python-plugin-for-wal-rows) to a
1. Save the [example plugin code](#example-python-plugin-for-data-writes) to a
plugin file inside of the plugin directory. If you haven't yet written data
to the table in the example, comment out the lines where it queries.
2. To run the test, enter the following command with the following options:

View File

@ -5,6 +5,57 @@
> All updates to Core are automatically included in Enterprise.
> The Enterprise sections below only list updates exclusive to Enterprise.
## v3.2.0 {date="2025-06-25"}
**Core**: revision 1ca3168bee
**Enterprise**: revision 1ca3168bee
### Core
#### Features
- **Hard delete for databases and tables**: Permanently delete databases and tables, enabling complete removal of data structures for compliance and storage management ([#26553](https://github.com/influxdata/influxdb/pull/26553))
- **AWS credentials auto-reload**: Support dynamic reloading of ephemeral AWS credentials from files, improving security and reliability when using AWS services ([#26537](https://github.com/influxdata/influxdb/pull/26537))
- **Database retention period support**: Add retention period support for databases via CLI commands (`create database` and `update database` commands) and HTTP APIs ([#26520](https://github.com/influxdata/influxdb/pull/26520)):
- New CLI command: `update database --retention-period`
- **Configurable lookback duration**: Users can specify lookback duration for PersistedFiles buffer, providing better control over query performance ([#26528](https://github.com/influxdata/influxdb/pull/26528))
- **WAL replay concurrency control**: Add concurrency limits for WAL (Write-Ahead Log) replay to improve startup performance and resource management ([#26483](https://github.com/influxdata/influxdb/pull/26483))
- **Enhanced write path**: Separate write path executor with unbounded memory for improved write performance ([#26455](https://github.com/influxdata/influxdb/pull/26455))
#### Bug Fixes
- **WAL corruption handling**: Handle corrupt WAL files during replay without panic, improving data recovery and system resilience ([#26556](https://github.com/influxdata/influxdb/pull/26556))
- **Database naming validation**: Disallow underscores in database names when created via API to ensure consistency ([#26507](https://github.com/influxdata/influxdb/pull/26507))
- **Object store cleanup**: Automatic intermediate directory cleanup for file object store, preventing storage bloat ([#26480](https://github.com/influxdata/influxdb/pull/26480))
#### Additional Updates
- Track generation 1 duration in catalog for better performance monitoring ([#26508](https://github.com/influxdata/influxdb/pull/26508))
- Add retention period support to the catalog ([#26479](https://github.com/influxdata/influxdb/pull/26479))
- Update help text for improved user experience ([#26509](https://github.com/influxdata/influxdb/pull/26509))
### Enterprise
All Core updates are included in Enterprise. Additional Enterprise-specific features and fixes:
#### Features
- **License management improvements**:
- New `influxdb3 show license` command to display current license information
- **Table-level retention period support**: Add retention period support for individual tables in addition to database-level retention, providing granular data lifecycle management
- New CLI commands: `create table --retention-period` and `update table --retention-period`
- Set or clear table-specific retention policies independent of database settings
- **Compaction improvements**:
- Address compactor restart issues for better reliability
- Track compacted generation durations in catalog for monitoring
- Disable parquet cache for ingest mode to optimize memory usage
#### Bug Fixes
- **Query optimization**: Correctly partition query chunks into generations for improved performance
- **Data integrity**: Don't delete generation 1 files as part of compaction process
- **License handling**: Trim whitespace from license file contents after reading to prevent validation issues
## v3.1.0 {date="2025-05-29"}
**Core**: revision 482dd8aac580c04f37e8713a8fffae89ae8bc264

View File

@ -22,20 +22,11 @@ Ensure you have:
Once you have all the prerequisites in place, follow these steps to implement the Processing Engine for your data automation needs.
1. [Set up the Processing Engine](#set-up-the-processing-engine)
2. [Add a Processing Engine plugin](#add-a-processing-engine-plugin)
- [Use example plugins](#use-example-plugins)
- [Create a custom plugin](#create-a-custom-plugin)
3. [Set up a trigger](#set-up-a-trigger)
- [Understand trigger types](#understand-trigger-types)
- [Use the create trigger command](#use-the-create-trigger-command)
- [Trigger specification examples](#trigger-specification-examples)
4. [Advanced trigger configuration](#advanced-trigger-configuration)
- [Access community plugins from GitHub](#access-community-plugins-from-github)
- [Pass arguments to plugins](#pass-arguments-to-plugins)
- [Control trigger execution](#control-trigger-execution)
- [Configure error handling for a trigger](#configure-error-handling-for-a-trigger)
- [Install Python dependencies](#install-python-dependencies)
- [Set up the Processing Engine](#set-up-the-processing-engine)
- [Add a Processing Engine plugin](#add-a-processing-engine-plugin)
- [Set up a trigger](#set-up-a-trigger)
- [Advanced trigger configuration](#advanced-trigger-configuration)
- [Distributed cluster considerations](#distributed-cluster-considerations)
## Set up the Processing Engine
@ -75,6 +66,8 @@ 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.
For more information about configuring distributed environments, see the [Distributed cluster considerations](#distributed-cluster-considerations) section.
## Add a Processing Engine plugin
A plugin is a Python script that defines a specific function signature for a trigger (_trigger spec_). When the specified event occurs, InfluxDB runs the plugin.
@ -168,11 +161,11 @@ Before you begin, make sure:
Choose a plugin type based on your automation goals:
| Plugin Type | Best For | Trigger Type |
| ---------------- | ------------------------------------------- | ------------------------ |
| **Data write** | Processing data as it arrives | `table:` or `all_tables` |
| **Scheduled** | Running code at specific intervals or times | `every:` or `cron:` |
| **HTTP request** | Running code on demand via API endpoints | `path:` |
| Plugin Type | Best For |
| ---------------- | ------------------------------------------- |
| **Data write** | Processing data as it arrives |
| **Scheduled** | Running code at specific intervals or times |
| **HTTP request** | Running code on demand via API endpoints |
#### Create your plugin file
@ -184,7 +177,7 @@ After writing your plugin, [create a trigger](#use-the-create-trigger-command) t
#### Create a data write plugin
Use a data write plugin to process data as it's written to the database. Ideal use cases include:
Use a data write plugin to process data as it's written to the database. These plugins use [`table:` or `all_tables:`](#trigger-on-data-writes) trigger specifications. Ideal use cases include:
- Data transformation and enrichment
- Alerting on incoming values
@ -209,7 +202,7 @@ def process_writes(influxdb3_local, table_batches, args=None):
#### Create a scheduled plugin
Scheduled plugins run at defined intervals. Use them for:
Scheduled plugins run at defined intervals using [`every:` or `cron:`](#trigger-on-a-schedule) trigger specifications. Use them for:
- Periodic data aggregation
- Report generation
@ -231,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. Use them for:
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:
- Creating custom API endpoints
- Webhooks for external integrations
@ -270,7 +263,7 @@ After writing your plugin:
|------------|----------------------|-----------------|
| Data write | `table:<TABLE_NAME>` or `all_tables` | When data is written to tables |
| Scheduled | `every:<DURATION>` or `cron:<EXPRESSION>` | At specified time intervals |
| HTTP request | `path:<ENDPOINT_PATH>` | When HTTP requests are received |
| HTTP request | `request:<REQUEST_PATH>`{{% show-in "enterprise" %}} (CLI) or `{"request_path": {"path": "<REQUEST_PATH>"}}` (HTTP API){{% /show-in %}} | When HTTP requests are received |
### Use the create trigger command
@ -302,7 +295,7 @@ In the example above, replace the following:
### Trigger specification examples
#### Data write example
#### Trigger on data writes
```bash
# Trigger on writes to a specific table
@ -325,13 +318,13 @@ The trigger runs when the database flushes ingested data for the specified table
The plugin receives the written data and table information.
#### Scheduled events example
#### Trigger on a schedule
```bash
# Run every 5 minutes
influxdb3 create trigger \
--trigger-spec "every:5m" \
--plugin-filename "hourly_check.py" \
--plugin-filename "periodic_check.py" \
--database my_database \
regular_check
@ -346,7 +339,7 @@ influxdb3 create trigger \
The plugin receives the scheduled call time.
#### HTTP requests example
#### Trigger on HTTP requests
```bash
# Create an endpoint at /api/v3/engine/webhook
@ -357,7 +350,9 @@ influxdb3 create trigger \
webhook_processor
```
Access your endpoint available at `/api/v3/engine/<ENDPOINT_PATH>`.
Access your endpoint at `/api/v3/engine/{REQUEST_PATH}` (in this example, `/api/v3/engine/webhook`).
The trigger is enabled by default and runs when an HTTP request is received at the specified path.
To run the plugin, send a `GET` or `POST` request to the endpoint--for example:
```bash
@ -366,6 +361,24 @@ curl http://{{% influxdb/host %}}/api/v3/engine/webhook
The plugin receives the HTTP request object with methods, headers, and body.
To view triggers associated with a database, use the `influxdb3 show summary` command:
```bash
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:<REQUEST_PATH>` (same as Core CLI and API)
> - **Enterprise API**: `{"request_path": {"path": "<REQUEST_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:
@ -587,7 +600,19 @@ 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 | `path:` | Nodes that serve API traffic|
| 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:<REQUEST_PATH>` (same as Core CLI and API)
> - **Enterprise API**: `{"request_path": {"path": "<REQUEST_PATH>"}}`
>
> See the [API reference](/influxdb3/enterprise/api/#operation/PostConfigureProcessingEngineTrigger) for examples.
{{% /show-in %}}
For example:
- Run write-ahead log (WAL) plugins on ingester nodes.

View File

@ -0,0 +1,354 @@
#!/bin/bash
# Script to generate release notes for InfluxDB v3.x releases
# Usage: ./generate-release-notes.sh [--no-fetch] [--pull] <from_version> <to_version> <primary_repo_path> [additional_repo_paths...]
#
# Options:
# --no-fetch Skip fetching latest commits from remote
# --pull Pull latest changes (implies fetch) - use with caution as it may change your working directory
#
# Example: ./generate-release-notes.sh v3.1.0 v3.2.0 /path/to/influxdb /path/to/influxdb_pro /path/to/influxdb_iox
# Example: ./generate-release-notes.sh --no-fetch v3.1.0 v3.2.0 /path/to/influxdb
# Example: ./generate-release-notes.sh --pull v3.1.0 v3.2.0 /path/to/influxdb /path/to/influxdb_pro
set -e
# Parse command line options
FETCH_COMMITS=true
PULL_COMMITS=false
while [[ $# -gt 0 ]]; do
case $1 in
--no-fetch)
FETCH_COMMITS=false
shift
;;
--pull)
PULL_COMMITS=true
FETCH_COMMITS=true
shift
;;
-*)
echo "Unknown option $1"
exit 1
;;
*)
break
;;
esac
done
# Parse remaining arguments
FROM_VERSION="${1:-v3.1.0}"
TO_VERSION="${2:-v3.2.0}"
PRIMARY_REPO="${3:-/Users/ja/Documents/github/influxdb}"
# Collect additional repositories (all arguments after the third)
ADDITIONAL_REPOS=()
shift 3 2>/dev/null || true
while [ $# -gt 0 ]; do
ADDITIONAL_REPOS+=("$1")
shift
done
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
echo -e "${BLUE}Generating release notes for ${TO_VERSION}${NC}"
echo -e "Primary Repository: ${PRIMARY_REPO}"
if [ ${#ADDITIONAL_REPOS[@]} -gt 0 ]; then
echo -e "Additional Repositories:"
for repo in "${ADDITIONAL_REPOS[@]}"; do
echo -e " - ${repo}"
done
fi
echo -e "From: ${FROM_VERSION} To: ${TO_VERSION}\n"
# Function to extract PR number from commit message
extract_pr_number() {
echo "$1" | grep -oE '#[0-9]+' | head -1 | sed 's/#//'
}
# Function to get commits from a repository
get_commits_from_repo() {
local repo_path="$1"
local pattern="$2"
local format="${3:-%h %s}"
if [ -d "$repo_path" ]; then
git -C "$repo_path" log --format="$format" "${FROM_VERSION}..${TO_VERSION}" 2>/dev/null | grep -E "$pattern" || true
fi
}
# Function to analyze API-related commits
analyze_api_changes() {
local repo_path="$1"
local repo_name="$2"
if [ ! -d "$repo_path" ]; then
return
fi
# Look for API-related file changes
local api_files=$(git -C "$repo_path" diff --name-only "${FROM_VERSION}..${TO_VERSION}" 2>/dev/null | grep -E "(api|handler|endpoint|route)" | head -10 || true)
# Look for specific API endpoint patterns in commit messages and diffs
local api_commits=$(git -C "$repo_path" log --format="%h %s" "${FROM_VERSION}..${TO_VERSION}" 2>/dev/null | \
grep -iE "(api|endpoint|/write|/query|/ping|/health|/metrics|v1|v2|v3)" || true)
if [ -n "$api_files" ] || [ -n "$api_commits" ]; then
echo " Repository: $repo_name"
if [ -n "$api_files" ]; then
echo " Modified API files:"
echo "$api_files" | while read -r file; do
echo " - $file"
done
fi
if [ -n "$api_commits" ]; then
echo " API-related commits:"
echo "$api_commits" | while read -r commit; do
echo " - $commit"
done
fi
echo
fi
}
# Get the release date
RELEASE_DATE=$(git -C "$PRIMARY_REPO" log -1 --format=%ai "$TO_VERSION" | cut -d' ' -f1)
echo -e "${GREEN}Release Date: ${RELEASE_DATE}${NC}\n"
# Create array of all repositories
ALL_REPOS=("$PRIMARY_REPO")
for repo in "${ADDITIONAL_REPOS[@]}"; do
ALL_REPOS+=("$repo")
done
# Fetch latest commits from all repositories (if enabled)
if [ "$FETCH_COMMITS" = true ]; then
if [ "$PULL_COMMITS" = true ]; then
echo -e "${YELLOW}Pulling latest changes from all repositories...${NC}"
echo -e "${RED}Warning: This will modify your working directories!${NC}"
else
echo -e "${YELLOW}Fetching latest commits from all repositories...${NC}"
fi
for repo in "${ALL_REPOS[@]}"; do
if [ -d "$repo" ]; then
repo_name=$(basename "$repo")
if [ "$PULL_COMMITS" = true ]; then
echo -e " Pulling changes in $repo_name..."
if git -C "$repo" pull origin 2>/dev/null; then
echo -e " ${GREEN}${NC} Successfully pulled changes in $repo_name"
else
echo -e " ${RED}${NC} Failed to pull changes in $repo_name (trying fetch only)"
if git -C "$repo" fetch origin 2>/dev/null; then
echo -e " ${GREEN}${NC} Successfully fetched from $repo_name"
else
echo -e " ${RED}${NC} Failed to fetch from $repo_name (continuing with local commits)"
fi
fi
else
echo -e " Fetching from $repo_name..."
if git -C "$repo" fetch origin 2>/dev/null; then
echo -e " ${GREEN}${NC} Successfully fetched from $repo_name"
else
echo -e " ${RED}${NC} Failed to fetch from $repo_name (continuing with local commits)"
fi
fi
else
echo -e " ${RED}${NC} Repository not found: $repo"
fi
done
else
echo -e "${YELLOW}Skipping fetch (using local commits only)${NC}"
fi
# Collect commits by category from all repositories
echo -e "\n${YELLOW}Analyzing commits across all repositories...${NC}"
# Initialize variables
FEATURES=""
FIXES=""
BREAKING=""
PERF=""
API_CHANGES=""
# Collect commits from all repositories
for repo in "${ALL_REPOS[@]}"; do
if [ -d "$repo" ]; then
repo_name=$(basename "$repo")
echo -e " Analyzing $repo_name..."
# Features
repo_features=$(get_commits_from_repo "$repo" "^[a-f0-9]+ feat:" | sed "s/^[a-f0-9]* feat: /- [$repo_name] /")
if [ -n "$repo_features" ]; then
FEATURES="$FEATURES$repo_features"$'\n'
fi
# Fixes
repo_fixes=$(get_commits_from_repo "$repo" "^[a-f0-9]+ fix:" | sed "s/^[a-f0-9]* fix: /- [$repo_name] /")
if [ -n "$repo_fixes" ]; then
FIXES="$FIXES$repo_fixes"$'\n'
fi
# Breaking changes
repo_breaking=$(get_commits_from_repo "$repo" "^[a-f0-9]+ .*(BREAKING|breaking change)" | sed "s/^[a-f0-9]* /- [$repo_name] /")
if [ -n "$repo_breaking" ]; then
BREAKING="$BREAKING$repo_breaking"$'\n'
fi
# Performance improvements
repo_perf=$(get_commits_from_repo "$repo" "^[a-f0-9]+ perf:" | sed "s/^[a-f0-9]* perf: /- [$repo_name] /")
if [ -n "$repo_perf" ]; then
PERF="$PERF$repo_perf"$'\n'
fi
# API changes
repo_api=$(get_commits_from_repo "$repo" "(api|endpoint|/write|/query|/ping|/health|/metrics|v1|v2|v3)" | sed "s/^[a-f0-9]* /- [$repo_name] /")
if [ -n "$repo_api" ]; then
API_CHANGES="$API_CHANGES$repo_api"$'\n'
fi
fi
done
# Analyze API changes in detail
echo -e "\n${YELLOW}Analyzing HTTP API changes...${NC}"
for repo in "${ALL_REPOS[@]}"; do
repo_name=$(basename "$repo")
analyze_api_changes "$repo" "$repo_name"
done
# Generate markdown output
OUTPUT_FILE="release-notes-${TO_VERSION}.md"
cat > "$OUTPUT_FILE" << EOF
## ${TO_VERSION} {date="${RELEASE_DATE}"}
### Features
EOF
# Add features
if [ -n "$FEATURES" ]; then
echo "$FEATURES" | while IFS= read -r line; do
if [ -n "$line" ]; then
PR=$(extract_pr_number "$line")
# Clean up the commit message
CLEAN_LINE=$(echo "$line" | sed -E 's/ \(#[0-9]+\)$//')
if [ -n "$PR" ]; then
echo "$CLEAN_LINE ([#$PR](https://github.com/influxdata/influxdb/pull/$PR))" >> "$OUTPUT_FILE"
else
echo "$CLEAN_LINE" >> "$OUTPUT_FILE"
fi
fi
done
else
echo "- No new features in this release" >> "$OUTPUT_FILE"
fi
# Add bug fixes
cat >> "$OUTPUT_FILE" << EOF
### Bug Fixes
EOF
if [ -n "$FIXES" ]; then
echo "$FIXES" | while IFS= read -r line; do
if [ -n "$line" ]; then
PR=$(extract_pr_number "$line")
CLEAN_LINE=$(echo "$line" | sed -E 's/ \(#[0-9]+\)$//')
if [ -n "$PR" ]; then
echo "$CLEAN_LINE ([#$PR](https://github.com/influxdata/influxdb/pull/$PR))" >> "$OUTPUT_FILE"
else
echo "$CLEAN_LINE" >> "$OUTPUT_FILE"
fi
fi
done
else
echo "- No bug fixes in this release" >> "$OUTPUT_FILE"
fi
# Add breaking changes if any
if [ -n "$BREAKING" ]; then
cat >> "$OUTPUT_FILE" << EOF
### Breaking Changes
EOF
echo "$BREAKING" | while IFS= read -r line; do
if [ -n "$line" ]; then
PR=$(extract_pr_number "$line")
CLEAN_LINE=$(echo "$line" | sed -E 's/ \(#[0-9]+\)$//')
if [ -n "$PR" ]; then
echo "$CLEAN_LINE ([#$PR](https://github.com/influxdata/influxdb/pull/$PR))" >> "$OUTPUT_FILE"
else
echo "$CLEAN_LINE" >> "$OUTPUT_FILE"
fi
fi
done
fi
# Add performance improvements if any
if [ -n "$PERF" ]; then
cat >> "$OUTPUT_FILE" << EOF
### Performance Improvements
EOF
echo "$PERF" | while IFS= read -r line; do
if [ -n "$line" ]; then
PR=$(extract_pr_number "$line")
CLEAN_LINE=$(echo "$line" | sed -E 's/ \(#[0-9]+\)$//')
if [ -n "$PR" ]; then
echo "$CLEAN_LINE ([#$PR](https://github.com/influxdata/influxdb/pull/$PR))" >> "$OUTPUT_FILE"
else
echo "$CLEAN_LINE" >> "$OUTPUT_FILE"
fi
fi
done
fi
# Add HTTP API changes if any
if [ -n "$API_CHANGES" ]; then
cat >> "$OUTPUT_FILE" << EOF
### HTTP API Changes
EOF
echo "$API_CHANGES" | while IFS= read -r line; do
if [ -n "$line" ]; then
PR=$(extract_pr_number "$line")
CLEAN_LINE=$(echo "$line" | sed -E 's/ \(#[0-9]+\)$//')
if [ -n "$PR" ]; then
echo "$CLEAN_LINE ([#$PR](https://github.com/influxdata/influxdb/pull/$PR))" >> "$OUTPUT_FILE"
else
echo "$CLEAN_LINE" >> "$OUTPUT_FILE"
fi
fi
done
fi
# Add API analysis summary
cat >> "$OUTPUT_FILE" << EOF
### API Analysis Summary
The following endpoints may have been affected in this release:
- v1 API endpoints: \`/write\`, \`/query\`, \`/ping\`
- v2 API endpoints: \`/api/v2/write\`, \`/api/v2/query\`
- v3 API endpoints: \`/api/v3/*\`
- System endpoints: \`/health\`, \`/metrics\`
Please review the commit details above and consult the API documentation for specific changes.
EOF
echo -e "\n${GREEN}Release notes generated in: ${OUTPUT_FILE}${NC}"
echo -e "${YELLOW}Please review and edit the generated notes before adding to documentation.${NC}"
echo -e "${BLUE}API changes have been automatically detected and included.${NC}"

View File

@ -111,7 +111,7 @@
<div class="products">
<div class="product">
<div class="product-info">
<h3 state="beta"><a href="/influxdb3/explorer/">InfluxDB 3 Explorer</a></h3>
<h3 state="New"><a href="/influxdb3/explorer/">InfluxDB 3 Explorer</a></h3>
<p>A standalone UI designed for visualizing, querying, and managing data in InfluxDB 3 Core and Enterprise.</p>
</div>
<ul class="product-links">

View File

@ -5,7 +5,7 @@
{{ partial "article/supported-versions.html" . }}
{{ partial "article/page-meta.html" . }}
</div>
{{ partial "article/beta.html" . }}
{{ partial "article/special-state.html" . }}
{{ partial "article/stable-version.html" . }}
{{ partial "article/flux-experimental.html" . }}
{{ partial "article/flux-contrib.html" . }}

View File

@ -8,19 +8,23 @@
{{ $earlyAccessList := slice "influxdb3/explorer" }}
{{ if in $earlyAccessList (print $product "/" $version )}}
<div class="block beta">
<div class="beta-content">
<h4 id="public-beta">{{ $displayName }} is in Public Beta</h4>
<div class="block special-state">
<div class="state-content">
<h4 id="influxdb3-explorer-ga">{{ $displayName }} is Generally Available</h4>
<p>
{{ $displayName }} is in public beta and available for testing and feedback,
but is <strong>not meant for production use yet</strong>.
Both the product and this documentation are works in progress.
We welcome and encourage your input about your experience with the beta and
{{ $displayName }} is generally available and is ready for production use.
We welcome and encourage your input about your experience with Explorer and
invite you to <strong>join our public channels</strong> for updates and to
share feedback.
</p>
<p>
<em>The {{ $displayName}} documentation is a work in progress, and we are actively
working to improve it. If you have any questions or suggestions, please
<a href="https://github.com/influxdata/docs-v2/issues/new?labels=InfluxDB%203%20Explorer">submit an issue</a>.
We welcome any and all contributions.</em>
</p>
<div class="expand-wrapper">
<div class="expand" id="beta-feedback-channels">
<div class="expand" id="feedback-channels">
<p class="expand-label">
<span class="expand-toggle"></span><span>Join our public channels</span>
</p>

View File

@ -60,7 +60,7 @@ Identify products by their product path. Dictionary schema:
<li>{{ template "productLink" (merge (dict "productPath" "influxdb3/cloud-dedicated") $templateDefaults) }}</li>
</ul>
<ul class="item-list products" data-category="Tools">
<li>{{ template "productLink" (merge (dict "productPath" "influxdb3/explorer" "state" "beta") $templateDefaults) }}</li>
<li>{{ template "productLink" (merge (dict "productPath" "influxdb3/explorer" "state" "New") $templateDefaults) }}</li>
</ul>
</div>
<div class="product-group">

38
plans/README.md Normal file
View File

@ -0,0 +1,38 @@
# Documentation Plans
This directory contains plans for recurring documentation tasks and automation.
## Active Plans
### CLI Documentation Synchronization
- **Location**: `cli-docs-sync/`
- **Purpose**: Keep InfluxDB 3 CLI reference documentation in sync with actual CLI commands
- **Current Version**: `plan-v3.2.0.md`
- **Status**: Ready for execution
### Release Notes Automation
- **Location**: `release-notes-automation/`
- **Purpose**: Automate generation of release notes from git commits
- **Scripts**: Available in `/scripts/generate-release-notes.sh`
## Plan Structure
Each plan directory should contain:
- `plan-[version].md` - The detailed plan
- `execution-log.md` - Track progress and notes
- `templates/` - Reusable templates and patterns
## Usage for Claude
When working with Claude on these plans:
1. Reference the specific plan file: `@plans/[task]/plan-[version].md`
2. Update execution logs as you progress
3. Iterate on plans by creating new versions
4. Use templates for consistency
## Best Practices
- Keep plans versioned by release or iteration
- Document lessons learned in execution logs
- Create reusable templates for recurring patterns
- Link plans to related scripts and automation

View File

@ -0,0 +1,47 @@
# CLI Documentation Sync - Execution Log
## v3.2.0 Execution
### Status: Planning Complete ✅
**Date**: 2025-06-26
**Plan**: `plan-v3.2.0.md`
### Phase 1: Analysis (Not Started)
- [ ] Audit existing CLI documentation structure
- [ ] Extract v3.2.0 changes from release notes
- [ ] Generate current CLI help output
### Phase 2: Update Documentation (Not Started)
#### Files to Create:
- [ ] `/content/shared/influxdb3-cli/update/_index.md`
- [ ] `/content/shared/influxdb3-cli/update/database.md`
- [ ] `/content/shared/influxdb3-cli/update/table.md` (Enterprise)
- [ ] `/content/shared/influxdb3-cli/show/license.md` (Enterprise)
#### Files to Update:
- [ ] `/content/shared/influxdb3-cli/create/database.md` (add `--retention-period`)
- [ ] `/content/shared/influxdb3-cli/create/table.md` (add Enterprise `--retention-period`)
- [ ] `/content/shared/influxdb3-cli/show/_index.md` (add license command)
- [ ] `/content/shared/influxdb3-cli/delete/database.md` (review hard delete)
- [ ] `/content/shared/influxdb3-cli/delete/table.md` (review hard delete)
### Phase 3: Automation (Not Started)
- [ ] Create CLI documentation sync script
- [ ] Establish documentation standards
- [ ] Plan CI/CD integration
### Phase 4: Validation (Not Started)
- [ ] Test documented commands
- [ ] Verify completeness
- [ ] Check cross-references
### Notes and Lessons Learned
- Release notes analysis was crucial for identifying specific CLI changes
- Having automation scripts in place (`generate-release-notes.sh`) helped identify features
- Need to distinguish between Core and Enterprise features clearly
### Next Actions
When ready to execute:
1. Reference plan: `@plans/cli-docs-sync/plan-v3.2.0.md`
2. Start with Phase 1 analysis
3. Update this log as progress is made

View File

@ -0,0 +1,165 @@
# Plan: Update InfluxDB 3 CLI Reference Documentation for v3.2.0
## Phase 1: Analyze Current State and Changes
### 1. Audit existing CLI documentation structure
**Existing files in `/content/shared/influxdb3-cli/`:**
- `/content/shared/influxdb3-cli/create/_index.md`
- `/content/shared/influxdb3-cli/create/database.md` ⚠️ **NEEDS UPDATE** (add `--retention-period`)
- `/content/shared/influxdb3-cli/create/distinct_cache.md`
- `/content/shared/influxdb3-cli/create/file_index.md`
- `/content/shared/influxdb3-cli/create/last_cache.md`
- `/content/shared/influxdb3-cli/create/table.md` ⚠️ **NEEDS UPDATE** (add Enterprise `--retention-period`)
- `/content/shared/influxdb3-cli/create/token/_index.md`
- `/content/shared/influxdb3-cli/create/token/admin.md`
- `/content/shared/influxdb3-cli/create/trigger.md`
- `/content/shared/influxdb3-cli/delete/_index.md`
- `/content/shared/influxdb3-cli/delete/database.md` ⚠️ **REVIEW** (hard delete features)
- `/content/shared/influxdb3-cli/delete/distinct_cache.md`
- `/content/shared/influxdb3-cli/delete/file_index.md`
- `/content/shared/influxdb3-cli/delete/last_cache.md`
- `/content/shared/influxdb3-cli/delete/table.md` ⚠️ **REVIEW** (hard delete features)
- `/content/shared/influxdb3-cli/delete/trigger.md`
- `/content/shared/influxdb3-cli/disable/_index.md`
- `/content/shared/influxdb3-cli/disable/trigger.md`
- `/content/shared/influxdb3-cli/enable/_index.md`
- `/content/shared/influxdb3-cli/enable/trigger.md`
- `/content/shared/influxdb3-cli/query.md`
- `/content/shared/influxdb3-cli/show/_index.md` ⚠️ **NEEDS UPDATE** (add license command)
- `/content/shared/influxdb3-cli/show/databases.md`
- `/content/shared/influxdb3-cli/show/system/_index.md`
- `/content/shared/influxdb3-cli/show/system/summary.md`
- `/content/shared/influxdb3-cli/show/system/table-list.md`
- `/content/shared/influxdb3-cli/show/system/table.md`
- `/content/shared/influxdb3-cli/show/tokens.md`
- `/content/shared/influxdb3-cli/test/_index.md`
- `/content/shared/influxdb3-cli/test/schedule_plugin.md`
- `/content/shared/influxdb3-cli/test/wal_plugin.md`
- `/content/shared/influxdb3-cli/write.md`
### 2. Extract v3.2.0 changes from release notes
**From `/content/shared/v3-core-enterprise-release-notes/_index.md`:**
**Core v3.2.0 Features:**
- Database retention period support: `create database --retention-period`, `update database --retention-period`
- Hard delete for databases and tables
- AWS credentials auto-reload
- WAL improvements
**Enterprise v3.2.0 Features:**
- License management: `influxdb3 show license`
- Table retention period support: `create table --retention-period`, `update table --retention-period`
- All Core features plus Enterprise-specific enhancements
### 3. Generate current CLI help output
- Run `influxdb3 --help` for both Core and Enterprise versions
- Extract new commands, options, and help text
- Compare with existing documentation
## Phase 2: Update Documentation Files
### Files to Create (NEW):
- `/content/shared/influxdb3-cli/update/_index.md` 🆕
- `/content/shared/influxdb3-cli/update/database.md` 🆕 (retention period management)
- `/content/shared/influxdb3-cli/update/table.md` 🆕 (Enterprise-only, retention period management)
- `/content/shared/influxdb3-cli/show/license.md` 🆕 (Enterprise-only)
### Files to Update (EXISTING):
- `/content/shared/influxdb3-cli/create/database.md` ⚠️ (add `--retention-period` option)
- `/content/shared/influxdb3-cli/create/table.md` ⚠️ (add Enterprise `--retention-period` option)
- `/content/shared/influxdb3-cli/show/_index.md` ⚠️ (include license command)
- `/content/shared/influxdb3-cli/delete/database.md` ⚠️ (review hard delete options)
- `/content/shared/influxdb3-cli/delete/table.md` ⚠️ (review hard delete options)
### Content Changes by Category:
**1. Retention Period Documentation:**
- Update `/content/shared/influxdb3-cli/create/database.md` with `--retention-period` option
- Create `/content/shared/influxdb3-cli/update/` directory structure
- Create `/content/shared/influxdb3-cli/update/database.md` for retention management
- Update `/content/shared/influxdb3-cli/create/table.md` with Enterprise `--retention-period` option
- Create `/content/shared/influxdb3-cli/update/table.md` for Enterprise table retention management
**2. License Management Documentation:**
- Update `/content/shared/influxdb3-cli/show/_index.md` to include license command
- Create `/content/shared/influxdb3-cli/show/license.md` for Enterprise license display
**3. Hard Delete Documentation:**
- Review and update `/content/shared/influxdb3-cli/delete/database.md` with hard delete options
- Review and update `/content/shared/influxdb3-cli/delete/table.md` with hard delete options
## Phase 3: Automation and Process Improvements
### Immediate Improvements:
1. **Create CLI documentation sync script:**
```bash
# Script: /Users/ja/Documents/github/docs-v2/scripts/sync-cli-docs.sh
# - Extract help text from influxdb3 CLI
# - Compare with existing docs
# - Generate report of differences
# - Auto-update basic command syntax
```
2. **Establish documentation standards:**
- Standardize frontmatter across CLI docs
- Create templates for command documentation
- Define Enterprise vs Core content patterns using Hugo shortcodes
### Long-term Automation Strategy:
1. **CI/CD Integration:**
- Add GitHub Actions workflow to detect CLI changes
- Auto-generate CLI help extraction on new releases
- Create pull requests for documentation updates
2. **Release Process Integration:**
- Include CLI documentation review in release checklist
- Link release notes to specific CLI documentation updates
- Automated cross-referencing between release notes and CLI docs
3. **Content Management Improvements:**
- Use Hugo shortcodes for Enterprise-specific content
- Implement version-aware documentation
- Create shared content templates for common CLI patterns
## Phase 4: Validation and Testing
### Content accuracy verification:
- Test all documented commands and options against actual CLIs
- Verify Enterprise vs Core feature availability
- Cross-reference with actual CLI behavior
### Documentation completeness check:
- Ensure all v3.2.0 features are documented
- Verify examples and use cases
- Check internal links and cross-references
## Suggested Recurring Process
### Pre-release (during development):
- Monitor CLI changes in pull requests
- Update documentation as features are added
- Maintain CLI help extraction automation
### At release (when tagging versions):
- Run automated CLI documentation sync
- Review and approve auto-generated updates
- Publish updated documentation
### Post-release (after release):
- Validate documentation accuracy
- Gather user feedback on CLI documentation
- Plan improvements for next cycle
## Related Documentation Paths
### InfluxDB 3 Product Documentation (affects CLI usage examples):
- `/content/influxdb3/core/write-data/influxdb3-cli.md`
- `/content/influxdb3/enterprise/write-data/influxdb3-cli.md`
- `/content/shared/influxdb3-write-guides/influxdb3-cli.md`
### Admin Documentation (affects retention and license features):
- `/content/influxdb3/core/admin/`
- `/content/influxdb3/enterprise/admin/`
- `/content/influxdb3/enterprise/admin/license.md`
This plan ensures comprehensive documentation updates for v3.2.0 while establishing sustainable processes for future releases.

View File

@ -0,0 +1,79 @@
# Plan: Update InfluxDB 3 CLI Reference Documentation
## Automation and Process Improvements
### Immediate Improvements:
1. **Create CLI documentation sync script:**
```bash
# Script: /Users/ja/Documents/github/docs-v2/scripts/sync-cli-docs.sh
# - Extract help text from influxdb3 CLI at /Users/ja/.influxdb//influxdb3
# - Compare with existing docs
# - Generate report of differences
# - Auto-update basic command syntax
# - Real-time CLI verification capability established
```
2. **Establish documentation standards:**
- Standardize frontmatter across CLI docs
- Create templates for command documentation
- Define Enterprise vs Core content patterns using Hugo shortcodes
### Long-term Automation Strategy:
1. **CI/CD Integration:**
- Add GitHub Actions workflow to detect CLI changes
- Auto-generate CLI help extraction on new releases
- Create pull requests for documentation updates
2. **Release Process Integration:**
- Include CLI documentation review in release checklist
- Link release notes to specific CLI documentation updates
- Automated cross-referencing between release notes and CLI docs
3. **Content Management Improvements:**
- Use Hugo shortcodes for Enterprise-specific content
- Implement version-aware documentation
- Create shared content templates for common CLI patterns
## Phase 4: Validation and Testing
### Content accuracy verification:
- ✅ **CLI Access Available**: Direct verification via `influxdb3 --help` commands
- ✅ **Real-time Validation**: All commands and options verified against actual CLI output
- **Process**: Use `influxdb3 [command] --help` to validate documentation accuracy
- **Verification**: Cross-reference documented options with actual CLI behavior
### Documentation completeness check:
- Ensure all v3.2.0 features are documented
- Verify examples and use cases
- Check internal links and cross-references
## Suggested Recurring Process
### Pre-release (during development):
- Monitor CLI changes in pull requests
- Update documentation as features are added
- Maintain CLI help extraction automation
### At release (when tagging versions):
- Run automated CLI documentation sync
- Review and approve auto-generated updates
- Publish updated documentation
### Post-release (after release):
- Validate documentation accuracy
- Gather user feedback on CLI documentation
- Plan improvements for next cycle
## Related Documentation Paths
### InfluxDB 3 Product Documentation (affects CLI usage examples):
- `/content/influxdb3/core/write-data/influxdb3-cli.md`
- `/content/influxdb3/enterprise/write-data/influxdb3-cli.md`
- `/content/shared/influxdb3-write-guides/influxdb3-cli.md`
### Admin Documentation (affects retention and license features):
- `/content/influxdb3/core/admin/`
- `/content/influxdb3/enterprise/admin/`
- `/content/influxdb3/enterprise/admin/license.md`
This plan ensures comprehensive documentation updates for v3.2.0 while establishing sustainable processes for future releases.

1
test/.gitignore vendored
View File

@ -2,6 +2,7 @@
/Cargo.lock
config.toml
content
influxdb3/**/data
_*_pid
node_modules
shared

View File

@ -0,0 +1,20 @@
# Create a processing engine request trigger
# // SECTION - influxdb3-core
curl -v -X POST "http://localhost:8181/api/v3/configure/processingengine/trigger" \
--header "Authorization: Bearer ${INFLUXDB3_CORE_ADMIN_TOKEN}" \
--json '{
"db": "sensors",
"plugin_filename": "request.py",
"trigger_name": "Process request trigger",
"trigger_specification": "request:process-request"
}'
# // SECTION - influxdb3-enterprise
curl -v -X POST "http://localhost:8181/api/v3/configure/processingengine/trigger" \
--header "Authorization: Bearer ${INFLUXDB3_ENTERPRISE_ADMIN_TOKEN}" \
--json '{
"db": "sensors",
"plugin_filename": "request.py",
"trigger_name": "Process request trigger",
"trigger_specification": {"request_path": {"path": "process-request"}}
}'