diff --git a/.ci/remark-lint/.remark-lint.js b/.ci/remark-lint/.remark-lint.js
index a53718b14..596e84a9b 100644
--- a/.ci/remark-lint/.remark-lint.js
+++ b/.ci/remark-lint/.remark-lint.js
@@ -4,22 +4,31 @@ import remarkPresetLintMarkdownStyleGuide from 'remark-preset-lint-markdown-styl
import remarkFrontmatter from 'remark-frontmatter';
import remarkFrontmatterSchema from 'remark-lint-frontmatter-schema';
import remarkNoShellDollars from 'remark-lint-no-shell-dollars';
+import remarkLintNoUndefinedReferences from 'remark-lint-no-undefined-references';
import remarkToc from 'remark-toc';
const remarkConfig = {
settings: {
bullet: '-',
- plugins: [
- remarkPresetLintConsistent,
- remarkPresetLintRecommended,
- remarkPresetLintMarkdownStyleGuide,
- remarkFrontmatter,
- remarkFrontmatterSchema,
- remarkNoShellDollars,
- // Generate a table of contents in `## Contents`
- [remarkToc, { heading: '' }],
- ],
},
+ plugins: [
+ remarkPresetLintConsistent,
+ remarkPresetLintRecommended,
+ remarkPresetLintMarkdownStyleGuide,
+ remarkFrontmatter,
+ remarkFrontmatterSchema,
+ remarkNoShellDollars,
+ // Override no-undefined-references to allow GitHub Alerts syntax
+ // This prevents lint warnings for [!Note], [!Tip], etc. in blockquotes
+ [
+ remarkLintNoUndefinedReferences,
+ {
+ allow: ['!Note', '!Tip', '!Important', '!Warning', '!Caution'],
+ },
+ ],
+ // Generate a table of contents in `## Contents`
+ [remarkToc, { heading: '' }],
+ ],
};
export default remarkConfig;
diff --git a/.ci/remark-lint/package.json b/.ci/remark-lint/package.json
index 3ba9a210a..d62218a23 100644
--- a/.ci/remark-lint/package.json
+++ b/.ci/remark-lint/package.json
@@ -9,6 +9,7 @@
"remark-preset-lint-recommended": "7.0.0",
"remark-frontmatter": "5.0.0",
"remark-lint-frontmatter-schema": "3.15.4",
- "remark-lint-no-shell-dollars": "4.0.0"
+ "remark-lint-no-shell-dollars": "4.0.0",
+ "remark-lint-no-undefined-references": "5.0.2"
}
}
diff --git a/content/influxdb3/clustered/install/set-up-cluster/configure-cluster/use-helm.md b/content/influxdb3/clustered/install/set-up-cluster/configure-cluster/use-helm.md
index 2179f8922..dfc698134 100644
--- a/content/influxdb3/clustered/install/set-up-cluster/configure-cluster/use-helm.md
+++ b/content/influxdb3/clustered/install/set-up-cluster/configure-cluster/use-helm.md
@@ -22,14 +22,14 @@ provides an alternative method for deploying your InfluxDB cluster using
resource. When using Helm, apply configuration options in a
a `values.yaml` on your local machine.
- InfluxData provides the following items:
+InfluxData provides the following items:
- **`influxdb-docker-config.json`**: an authenticated Docker configuration file.
The InfluxDB Clustered software is in a secure container registry.
This file grants access to the collection of container images required to
install InfluxDB Clustered.
----
+***
## Configuration data
@@ -40,23 +40,24 @@ available:
API endpoints
- **PostgreSQL-style data source name (DSN)**: used to access your
PostgreSQL-compatible database that stores the InfluxDB Catalog.
-- **Object store credentials** _(AWS S3 or S3-compatible)_
+- **Object store credentials** *(AWS S3 or S3-compatible)*
- Endpoint URL
- Access key
- Bucket name
- Region (required for S3, may not be required for other object stores)
-- **Local storage information** _(for ingester pods)_
+- **Local storage information** *(for ingester pods)*
- Storage class
- Storage size
InfluxDB is deployed to a Kubernetes namespace which, throughout the following
-installation procedure, is referred to as the _target_ namespace.
+installation procedure, is referred to as the *target* namespace.
For simplicity, we assume this namespace is `influxdb`, however
you may use any name you like.
-> [!Note]
+> \[!Note]
+>
> #### Set namespaceOverride if using a namespace other than influxdb
->
+>
> If you use a namespace name other than `influxdb`, update the `namespaceOverride`
> field in your `values.yaml` to use your custom namespace name.
@@ -85,21 +86,21 @@ which simplifies the installation and management of the InfluxDB Clustered packa
It manages the application of the jsonnet templates used to install, manage, and
update an InfluxDB cluster.
-> [!Note]
+> \[!Note]
> If you already installed the `kubecfg kubit` operator separately when
> [setting up prerequisites](/influxdb3/clustered/install/set-up-cluster/prerequisites/#install-the-kubecfg-kubit-operator)
> for your cluster, in your `values.yaml`, set `skipOperator` to `true`.
->
+>
> ```yaml
> skipOperator: true
> ```
## Configure your cluster
-1. [Install Helm](#install-helm)
-2. [Create a values.yaml file](#create-a-valuesyaml-file)
-3. [Configure access to the InfluxDB container registry](#configure-access-to-the-influxdb-container-registry)
-4. [Modify the configuration file to point to prerequisites](#modify-the-configuration-file-to-point-to-prerequisites)
+1. [Install Helm](#install-helm)
+2. [Create a values.yaml file](#create-a-valuesyaml-file)
+3. [Configure access to the InfluxDB container registry](#configure-access-to-the-influxdb-container-registry)
+4. [Modify the configuration file to point to prerequisites](#modify-the-configuration-file-to-point-to-prerequisites)
### Install Helm
@@ -136,11 +137,11 @@ In both scenarios, you need a valid container registry secret file.
Use [crane](https://github.com/google/go-containerregistry/tree/main/cmd/crane)
to create a container registry secret file.
-1. [Install crane](https://github.com/google/go-containerregistry/tree/main/cmd/crane#installation)
-2. Use the following command to create a container registry secret file and
- retrieve the necessary secrets:
+1. [Install crane](https://github.com/google/go-containerregistry/tree/main/cmd/crane#installation)
+2. Use the following command to create a container registry secret file and
+ retrieve the necessary secrets:
-{{% code-placeholders "PACKAGE_VERSION" %}}
+{{% code-placeholders "PACKAGE\_VERSION" %}}
```sh
mkdir /tmp/influxdbsecret
@@ -152,12 +153,12 @@ DOCKER_CONFIG=/tmp/influxdbsecret \
{{% /code-placeholders %}}
----
+***
Replace {{% code-placeholder-key %}}`PACKAGE_VERSION`{{% /code-placeholder-key %}}
with your InfluxDB Clustered package version.
----
+***
If your Docker configuration is valid and you’re able to connect to the container
registry, the command succeeds and the output is the JSON manifest for the Docker
@@ -206,6 +207,7 @@ Error: fetching manifest us-docker.pkg.dev/influxdb2-artifacts/clustered/influxd
{{% /tabs %}}
{{% tab-content %}}
+
#### Public registry
@@ -229,8 +231,10 @@ If you change the name of this secret, you must also change the value of the
`imagePullSecrets.name` field in your `values.yaml`.
+
{{% /tab-content %}}
{{% tab-content %}}
+
#### Private registry (air-gapped)
@@ -284,9 +288,8 @@ In addition to the InfluxDB images, copy the kubit operator images:
```bash
# Create a list of kubit-related images
cat > /tmp/kubit-images.txt << EOF
-ghcr.io/kubecfg/kubit:v0.0.20
+ghcr.io/kubecfg/kubit:v0.0.22
ghcr.io/kubecfg/kubecfg/kubecfg:latest
-bitnami/kubectl:1.27.5
registry.k8s.io/kubectl:v1.28.0
EOF
@@ -298,7 +301,8 @@ cat /tmp/kubit-images.txt | xargs -I% crane cp % YOUR_PRIVATE_REGISTRY/%
Configure your `values.yaml` to use your private registry:
-{{% code-placeholders "REGISTRY_HOSTNAME" %}}
+{{% code-placeholders "REGISTRY\_HOSTNAME" %}}
+
```yaml
# Configure registry override for all images
images:
@@ -307,8 +311,8 @@ images:
# Configure kubit operator images
kubit:
controller:
- image: REGISTRY_HOSTNAME/ghcr.io/kubecfg/kubit:v0.0.20
- apply_step_image: REGISTRY_HOSTNAME/bitnami/kubectl:1.27.5
+ image: REGISTRY_HOSTNAME/ghcr.io/kubecfg/kubit:v0.0.22
+ apply_step_image: REGISTRY_HOSTNAME/registry.k8s.io/kubectl:v1.28.0
render_step_image: REGISTRY_HOSTNAME/registry.k8s.io/kubectl:v1.28.0
kubecfg_image: REGISTRY_HOSTNAME/ghcr.io/kubecfg/kubecfg/kubecfg:latest
@@ -316,6 +320,7 @@ kubit:
imagePullSecrets:
- name: your-registry-pull-secret
```
+
{{% /code-placeholders %}}
Replace {{% code-placeholder-key %}}`REGISTRY_HOSTNAME`{{% /code-placeholder-key %}} with your private registry hostname.
@@ -345,13 +350,13 @@ To configure ingress, provide values for the following fields in your
Provide the hostnames that Kubernetes should use to expose the InfluxDB API
endpoints--for example: `{{< influxdb/host >}}`.
- _You can provide multiple hostnames. The ingress layer accepts incoming
+ *You can provide multiple hostnames. The ingress layer accepts incoming
requests for all listed hostnames. This can be useful if you want to have
- distinct paths for your internal and external traffic._
+ distinct paths for your internal and external traffic.*
- > [!Note]
+ > \[!Note]
> You are responsible for configuring and managing DNS. Options include:
- >
+ >
> - Manually managing DNS records
> - Using [external-dns](https://github.com/kubernetes-sigs/external-dns) to
> synchronize exposed Kubernetes services and ingresses with DNS providers.
@@ -361,16 +366,16 @@ To configure ingress, provide values for the following fields in your
(Optional): Provide the name of the secret that contains your TLS certificate
and key. The examples in this guide use the name `ingress-tls`.
- _The `tlsSecretName` field is optional. You may want to use it if you already
- have a TLS certificate for your DNS name._
+ *The `tlsSecretName` field is optional. You may want to use it if you already
+ have a TLS certificate for your DNS name.*
- > [!Note]
+ > \[!Note]
> Writing to and querying data from InfluxDB does not require TLS.
> For simplicity, you can wait to enable TLS before moving into production.
> For more information, see Phase 4 of the InfluxDB Clustered installation
> process, [Secure your cluster](/influxdb3/clustered/install/secure-cluster/).
- {{% code-callout "ingress-tls|cluster-host\.com" "green" %}}
+{{% code-callout "ingress-tls|cluster-host.com" "green" %}}
```yaml
ingress:
@@ -405,14 +410,14 @@ following fields in your `values.yaml`:
- `bucket`: Object storage bucket name
- `s3`:
- `endpoint`: Object storage endpoint URL
- - `allowHttp`: _Set to `true` to allow unencrypted HTTP connections_
+ - `allowHttp`: *Set to `true` to allow unencrypted HTTP connections*
- `accessKey.value`: Object storage access key
- _(can use a `value` literal or `valueFrom` to retrieve the value from a secret)_
+ *(can use a `value` literal or `valueFrom` to retrieve the value from a secret)*
- `secretKey.value`: Object storage secret key
- _(can use a `value` literal or `valueFrom` to retrieve the value from a secret)_
+ *(can use a `value` literal or `valueFrom` to retrieve the value from a secret)*
- `region`: Object storage region
-{{% code-placeholders "S3_(URL|ACCESS_KEY|SECRET_KEY|BUCKET_NAME|REGION)" %}}
+{{% code-placeholders "S3\_(URL|ACCESS\_KEY|SECRET\_KEY|BUCKET\_NAME|REGION)" %}}
```yml
objectStore:
@@ -442,7 +447,7 @@ objectStore:
{{% /code-placeholders %}}
----
+***
Replace the following:
@@ -452,7 +457,7 @@ Replace the following:
- {{% code-placeholder-key %}}`S3_SECRET_KEY`{{% /code-placeholder-key %}}: Object storage secret key
- {{% code-placeholder-key %}}`S3_REGION`{{% /code-placeholder-key %}}: Object storage region
----
+***
@@ -468,11 +473,11 @@ following fields in your `values.yaml`:
- `bucket`: Azure Blob Storage bucket name
- `azure`:
- `accessKey.value`: Azure Blob Storage access key
- _(can use a `value` literal or `valueFrom` to retrieve the value from a secret)_
+ *(can use a `value` literal or `valueFrom` to retrieve the value from a secret)*
- `account.value`: Azure Blob Storage account ID
- _(can use a `value` literal or `valueFrom` to retrieve the value from a secret)_
+ *(can use a `value` literal or `valueFrom` to retrieve the value from a secret)*
-{{% code-placeholders "AZURE_(BUCKET_NAME|ACCESS_KEY|STORAGE_ACCOUNT)" %}}
+{{% code-placeholders "AZURE\_(BUCKET\_NAME|ACCESS\_KEY|STORAGE\_ACCOUNT)" %}}
```yml
objectStore:
@@ -493,7 +498,7 @@ objectStore:
{{% /code-placeholders %}}
----
+***
Replace the following:
@@ -501,7 +506,7 @@ Replace the following:
- {{% code-placeholder-key %}}`AZURE_ACCESS_KEY`{{% /code-placeholder-key %}}: Azure Blob Storage access key
- {{% code-placeholder-key %}}`AZURE_STORAGE_ACCOUNT`{{% /code-placeholder-key %}}: Azure Blob Storage account ID
----
+***
@@ -521,7 +526,7 @@ following fields in your `values.yaml`:
- `serviceAccountSecret.key`: the key inside of your Google IAM secret that
contains your Google IAM account credentials
-{{% code-placeholders "GOOGLE_(BUCKET_NAME|IAM_SECRET|CREDENTIALS_KEY)" %}}
+{{% code-placeholders "GOOGLE\_(BUCKET\_NAME|IAM\_SECRET|CREDENTIALS\_KEY)" %}}
```yml
objectStore:
@@ -541,7 +546,7 @@ objectStore:
{{% /code-placeholders %}}
----
+***
Replace the following:
@@ -550,11 +555,11 @@ Replace the following:
- {{% code-placeholder-key %}}`GOOGLE_IAM_SECRET`{{% /code-placeholder-key %}}:
the Kubernetes Secret name that contains your Google IAM service account
credentials
-- {{% code-placeholder-key %}}`GOOGLE_CREDENTIALS_KEY`{{% /code-placeholder-key %}}:
+- {{% code-placeholder-key %}}`GOOGLE_CREDENTIALS_KEY`{{% /code-placeholder-key %}}:
the key inside of your Google IAM secret that contains your Google IAM account
credentials
----
+***
@@ -568,7 +573,7 @@ metadata about your time series data.
To connect your InfluxDB cluster to your PostgreSQL-compatible database,
provide values for the following fields in your `values.yaml`:
-> [!Note]
+> \[!Note]
> We recommend storing sensitive credentials, such as your PostgreSQL-compatible DSN,
> as secrets in your Kubernetes cluster.
@@ -576,7 +581,7 @@ provide values for the following fields in your `values.yaml`:
- `SecretName`: Secret name
- `SecretKey`: Key in the secret that contains the DSN
-{{% code-placeholders "SECRET_(NAME|KEY)" %}}
+{{% code-placeholders "SECRET\_(NAME|KEY)" %}}
```yml
catalog:
@@ -591,7 +596,7 @@ catalog:
{{% /code-placeholders %}}
----
+***
Replace the following:
@@ -600,58 +605,64 @@ Replace the following:
- {{% code-placeholder-key %}}`SECRET_KEY`{{% /code-placeholder-key %}}:
Key in the secret that references your PostgreSQL-compatible DSN
----
+***
-> [!Warning]
+> \[!Warning]
>
> ##### Percent-encode special symbols in PostgreSQL DSNs
->
+>
> Special symbols in PostgreSQL DSNs should be percent-encoded to ensure they
> are parsed correctly by InfluxDB Clustered. This is important to consider when
> using DSNs containing auto-generated passwords which may include special
> symbols to make passwords more secure.
->
+>
> A DSN with special characters that are not percent-encoded result in an error
> similar to:
->
+>
> ```txt
> Catalog DSN error: A catalog error occurred: unhandled external error: error with configuration: invalid port number
> ```
->
+>
> For more information, see the [PostgreSQL Connection URI docs](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING-URIS).
>
> {{< expand-wrapper >}}
-{{% expand "View percent-encoded DSN example" %}}
-To use the following DSN containing special characters:
+> {{% expand "View percent-encoded DSN example" %}}
+> To use the following DSN containing special characters:
{{% code-callout "#" %}}
+
```txt
postgresql://postgres:meow#meow@my-fancy.cloud-database.party:5432/postgres
```
+
{{% /code-callout %}}
You must percent-encode the special characters in the connection string:
{{% code-callout "%23" %}}
+
```txt
postgresql://postgres:meow%23meow@my-fancy.cloud-database.party:5432/postgres
```
+
{{% /code-callout %}}
{{% /expand %}}
{{< /expand-wrapper >}}
-> [!Note]
->
+> \[!Note]
+>
> ##### PostgreSQL instances without TLS or SSL
->
+>
> If your PostgreSQL-compatible instance runs without TLS or SSL, you must include
> the `sslmode=disable` parameter in the DSN. For example:
->
+>
> {{% code-callout "sslmode=disable" %}}
+
```
postgres://username:passw0rd@mydomain:5432/influxdb?sslmode=disable
```
+
{{% /code-callout %}}
#### Configure local storage for ingesters
@@ -666,7 +677,7 @@ following fields in your `values.yaml`:
This differs based on the Kubernetes environment and desired storage characteristics.
- `storage`: Storage size. We recommend a minimum of 2 gibibytes (`2Gi`).
-{{% code-placeholders "STORAGE_(CLASS|SIZE)" %}}
+{{% code-placeholders "STORAGE\_(CLASS|SIZE)" %}}
```yaml
ingesterStorage:
@@ -680,7 +691,7 @@ ingesterStorage:
{{% /code-placeholders %}}
----
+***
Replace the following:
@@ -689,7 +700,7 @@ Replace the following:
- {{% code-placeholder-key %}}`STORAGE_SIZE`{{% /code-placeholder-key %}}:
Storage size (example: `2Gi`)
----
+***
### Deploy your cluster
@@ -775,6 +786,7 @@ helm upgrade influxdb ./influxdb3-clustered-X.Y.Z.tgz \
```
{{% note %}}
+
#### Understanding kubit's role in air-gapped environments
When deploying with Helm in an air-gapped environment:
@@ -796,9 +808,10 @@ This is why mirroring both the InfluxDB images and the kubit operator images is
### Common issues
1. **Image pull errors**
-
+
```
Error: failed to create labeled resources: failed to create resources: failed to create resources:
Internal error occurred: failed to create pod sandbox: rpc error: code = Unknown
desc = failed to pull image "us-docker.pkg.dev/...": failed to pull and unpack image "...":
failed to resolve reference "...": failed to do request: ... i/o timeout
+ ```
diff --git a/content/influxdb3/clustered/install/set-up-cluster/deploy.md b/content/influxdb3/clustered/install/set-up-cluster/deploy.md
index 983db90c1..bf1c7ca3b 100644
--- a/content/influxdb3/clustered/install/set-up-cluster/deploy.md
+++ b/content/influxdb3/clustered/install/set-up-cluster/deploy.md
@@ -29,9 +29,10 @@ To compare these tools and deployment methods, see [Choose the right deployment
## Prerequisites
If you haven't already set up and configured your cluster, see how to
-[install InfluxDB Clustered](/influxdb3/clustered/install/).
+[install InfluxDB Clustered](/influxdb3/clustered/install/).
+
{{< tabs-wrapper >}}
@@ -41,7 +42,9 @@ If you haven't already set up and configured your cluster, see how to
[helm](#)
{{% /tabs %}}
{{% tab-content %}}
+
+
- [`kubectl` standard deployment (with internet access)](#kubectl-standard-deployment-with-internet-access)
- [`kubectl` air-gapped deployment](#kubectl-air-gapped-deployment)
@@ -56,34 +59,37 @@ kubectl apply \
--namespace influxdb
```
-> [!Note]
+> \[!Note]
> Due to the additional complexity and maintenance requirements, using `kubectl apply` isn't
> recommended for air-gapped environments.
> Instead, consider using the [`kubit` CLI approach](#kubit-cli), which is specifically designed for air-gapped deployments.
+
{{% /tab-content %}}
{{% tab-content %}}
+
+
## Standard and air-gapped deployments
-_This approach avoids the need for installing the kubit operator in the cluster,
-making it ideal for air-gapped clusters._
+*This approach avoids the need for installing the kubit operator in the cluster,
+making it ideal for air-gapped clusters.*
-> [!Important]
+> \[!Important]
> For air-gapped deployment, ensure you have [configured access to a private registry for InfluxDB images](/influxdb3/clustered/install/set-up-cluster/configure-cluster/directly/#configure-access-to-the-influxDB-container-registry).
1. On a machine with internet access, download the [`kubit` CLI](https://github.com/kubecfg/kubit#cli-tool)--for example:
```bash
- curl -L -o kubit https://github.com/kubecfg/kubit/archive/refs/tags/v0.0.20.tar.gz
+ curl -L -o kubit https://github.com/kubecfg/kubit/archive/refs/tags/v0.0.22.tar.gz
chmod +x kubit
```
- Replace {{% code-placeholder-key %}}`v0.0.20`{{% /code-placeholder-key%}} with the [latest release version](https://github.com/kubecfg/kubit/releases/latest).
+ Replace {{% code-placeholder-key %}}`v0.0.22`{{% /code-placeholder-key%}} with the [latest release version](https://github.com/kubecfg/kubit/releases/latest).
2. If deploying InfluxDB in an air-gapped environment (without internet access),
- transfer the binary to your air-gapped environment.
+ transfer the binary to your air-gapped environment.
3. Use the `kubit local apply` command to process your [custom-configured `myinfluxdb.yml`](/influxdb3/clustered/install/set-up-cluster/configure-cluster/directly/) locally
and apply the resulting resources to your cluster:
@@ -108,7 +114,9 @@ applies the resulting Kubernetes resources directly to your cluster.
{{% /tab-content %}}
{{% tab-content %}}
+
+
- [Helm standard deployment (with internet access)](#helm-standard-deployment-with-internet-access)
- [Helm air-gapped deployment](#helm-air-gapped-deployment)
@@ -145,7 +153,7 @@ helm upgrade influxdb influxdata/influxdb3-clustered \
## Helm air-gapped deployment
-> [!Important]
+> \[!Important]
> For air-gapped deployment, ensure you have [configured access to a private registry for InfluxDB images and the kubit operator](/influxdb3/clustered/install/set-up-cluster/configure-cluster/use-helm/#configure-access-to-the-influxDB-container-registry).
1. On a machine with internet access, download the Helm chart:
@@ -153,14 +161,14 @@ helm upgrade influxdb influxdata/influxdb3-clustered \
```bash
# Add the InfluxData repository
helm repo add influxdata https://helm.influxdata.com/
-
+
# Update the repositories
helm repo update
-
+
# Download the chart as a tarball
helm pull influxdata/influxdb3-clustered --version X.Y.Z
```
-
+
Replace `X.Y.Z` with the specific chart version you want to use.
2. Transfer the chart tarball to your air-gapped environment using your secure file transfer method.
@@ -188,7 +196,8 @@ helm upgrade influxdb ./influxdb3-clustered-X.Y.Z.tgz \
--namespace influxdb
```
-> [!Note]
+> \[!Note]
+>
> #### kubit's role in air-gapped environments
>
> When deploying with Helm in an air-gapped environment:
@@ -200,6 +209,7 @@ helm upgrade influxdb ./influxdb3-clustered-X.Y.Z.tgz \
> This is why you need to [mirror InfluxDB images and kubit operator images](/influxdb3/clustered/install/set-up-cluster/configure-cluster/use-helm/#mirror-influxdb-images) for air-gapped deployments.
+
{{% /tab-content %}}
{{< /tabs-wrapper >}}
@@ -208,7 +218,7 @@ helm upgrade influxdb ./influxdb3-clustered-X.Y.Z.tgz \
Kubernetes deployments take some time to complete. To check on the status of a
deployment, use the `kubectl get` command:
-> [!Note]
+> \[!Note]
> The following example uses the [`yq` command-line YAML parser](https://github.com/mikefarah/yq)
> to parse and format the YAML output.
> You can also specify the output as `json` and use the
diff --git a/content/influxdb3/clustered/install/set-up-cluster/prerequisites.md b/content/influxdb3/clustered/install/set-up-cluster/prerequisites.md
index 1c392f88c..559249bd1 100644
--- a/content/influxdb3/clustered/install/set-up-cluster/prerequisites.md
+++ b/content/influxdb3/clustered/install/set-up-cluster/prerequisites.md
@@ -13,17 +13,17 @@ aliases:
- /influxdb3/clustered/install/prerequisites/
---
-InfluxDB Clustered requires the following prerequisite external dependencies:
+InfluxDB Clustered requires the following prerequisite external dependencies:
- **kubectl command line tool**
- **Kubernetes cluster**
- **kubecfg kubit operator**
- **Kubernetes ingress controller**
- **Object storage**: AWS S3 or S3-compatible storage (including Google Cloud Storage
- or Azure Blob Storage) to store the InfluxDB Parquet files.
-- **PostgreSQL-compatible database** _(AWS Aurora, hosted PostgreSQL, etc.)_:
+ or Azure Blob Storage) to store the InfluxDB Parquet files.
+- **PostgreSQL-compatible database** *(AWS Aurora, hosted PostgreSQL, etc.)*:
Stores the [InfluxDB Catalog](/influxdb3/clustered/reference/internals/storage-engine/#catalog).
-- **Local or attached storage**:
+- **Local or attached storage**:
Stores the Write-Ahead Log (WAL) for
[InfluxDB Ingesters](/influxdb3/clustered/reference/internals/storage-engine/#ingester).
@@ -45,7 +45,7 @@ cluster.
Follow instructions to install `kubectl` on your local machine:
-> [!Note]
+> \[!Note]
> InfluxDB Clustered Kubernetes deployments require `kubectl` 1.27 or higher.
- [Install kubectl on Linux](https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/)
@@ -54,35 +54,35 @@ Follow instructions to install `kubectl` on your local machine:
#### Set up your Kubernetes cluster
-1. Deploy a Kubernetes cluster. The deployment process depends on your
- Kubernetes environment or Kubernetes cloud provider. Refer to the
- [Kubernetes documentation](https://kubernetes.io/docs/home/) or your cloud
- provider's documentation for information about deploying a Kubernetes cluster.
+1. Deploy a Kubernetes cluster. The deployment process depends on your
+ Kubernetes environment or Kubernetes cloud provider. Refer to the
+ [Kubernetes documentation](https://kubernetes.io/docs/home/) or your cloud
+ provider's documentation for information about deploying a Kubernetes cluster.
-2. Ensure `kubectl` can connect to your Kubernetes cluster.
- Your Manage [kubeconfig file](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/)
- defines cluster connection credentials.
+2. Ensure `kubectl` can connect to your Kubernetes cluster.
+ Your Manage [kubeconfig file](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/)
+ defines cluster connection credentials.
-3. Create two namespaces--`influxdb` and `kubit`. Use
- [`kubectl create namespace`](https://kubernetes.io/docs/reference/kubectl/generated/kubectl_create/kubectl_create_namespace/) to create the
- namespaces:
+3. Create two namespaces--`influxdb` and `kubit`. Use
+ [`kubectl create namespace`](https://kubernetes.io/docs/reference/kubectl/generated/kubectl_create/kubectl_create_namespace/) to create the
+ namespaces:
-
+
- ```bash
- kubectl create namespace influxdb && \
- kubectl create namespace kubit
- ```
+ ```bash
+ kubectl create namespace influxdb && \
+ kubectl create namespace kubit
+ ```
-4. Install an [ingress controller](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/)
- in the cluster and a mechanism to obtain a valid TLS certificate
- (for example: [cert-manager](https://cert-manager.io/) or provide the
- certificate PEM manually out of band).
- To use the InfluxDB-specific ingress controller, install [Ingress NGINX](https://github.com/kubernetes/ingress-nginx).
+4. Install an [ingress controller](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/)
+ in the cluster and a mechanism to obtain a valid TLS certificate
+ (for example: [cert-manager](https://cert-manager.io/) or provide the
+ certificate PEM manually out of band).
+ To use the InfluxDB-specific ingress controller, install [Ingress NGINX](https://github.com/kubernetes/ingress-nginx).
-5. Ensure your Kubernetes cluster can access the InfluxDB container registry,
- or, if running in an air-gapped environment, a local container registry to
- which you can copy the InfluxDB images.
+5. Ensure your Kubernetes cluster can access the InfluxDB container registry,
+ or, if running in an air-gapped environment, a local container registry to
+ which you can copy the InfluxDB images.
### Cluster sizing recommendation
@@ -97,10 +97,11 @@ following sizing for {{% product-name %}} components:
[On-Prem](#)
{{% /tabs %}}
{{% tab-content %}}
+
- **Catalog store (PostgreSQL-compatible database) (x1):**
- - _[See below](#postgresql-compatible-database-requirements)_
+ - *[See below](#postgresql-compatible-database-requirements)*
- **Ingesters and Routers (x3):**
- EC2 m6i.2xlarge (8 CPU, 32 GB RAM)
- Local storage: minimum of 2 GB (high-speed SSD)
@@ -112,12 +113,14 @@ following sizing for {{% product-name %}} components:
- EC2 t3.large (2 CPU, 8 GB RAM)
+
{{% /tab-content %}}
{{% tab-content %}}
+
- **Catalog store (PostgreSQL-compatible database) (x1):**
- - _[See below](#postgresql-compatible-database-requirements)_
+ - *[See below](#postgresql-compatible-database-requirements)*
- **Ingesters and Routers (x3):**
- GCE c2-standard-8 (8 CPU, 32 GB RAM)
- Local storage: minimum of 2 GB (high-speed SSD)
@@ -129,25 +132,29 @@ following sizing for {{% product-name %}} components:
- GCE c2d-standard-2 (2 CPU, 8 GB RAM)
+
{{% /tab-content %}}
{{% tab-content %}}
+
- **Catalog store (PostgreSQL-compatible database) (x1):**
- - _[See below](#postgresql-compatible-database-requirements)_
+ - *[See below](#postgresql-compatible-database-requirements)*
- **Ingesters and Routers (x3):**
- - Standard_D8s_v3 (8 CPU, 32 GB RAM)
+ - Standard\_D8s\_v3 (8 CPU, 32 GB RAM)
- Local storage: minimum of 2 GB (high-speed SSD)
- **Queriers (x3):**
- - Standard_D8s_v3 (8 CPU, 32 GB RAM)
+ - Standard\_D8s\_v3 (8 CPU, 32 GB RAM)
- **Compactors (x1):**
- - Standard_D8s_v3 (8 CPU, 32 GB RAM)
+ - Standard\_D8s\_v3 (8 CPU, 32 GB RAM)
- **Kubernetes Control Plane (x1):**
- - Standard_B2ms (2 CPU, 8 GB RAM)
+ - Standard\_B2ms (2 CPU, 8 GB RAM)
+
{{% /tab-content %}}
{{% tab-content %}}
+
- **Catalog store (PostgreSQL-compatible database) (x1):**
@@ -168,6 +175,7 @@ following sizing for {{% product-name %}} components:
- RAM: 8 GB
+
{{% /tab-content %}}
{{< /tabs-wrapper >}}
@@ -181,20 +189,21 @@ simplifies the installation and management of the InfluxDB Clustered package.
It manages the application of the jsonnet templates used to install, manage, and
update an InfluxDB cluster.
-> [!Note]
+> \[!Note]
+>
> #### The InfluxDB Clustered Helm chart includes the kubit operator
->
+>
> If using the [InfluxDB Clustered Helm chart](https://github.com/influxdata/helm-charts/tree/master/charts/influxdb3-clustered)
> to deploy your InfluxDB cluster, you do not need to install the kubit operator
> separately. The Helm chart installs the kubit operator.
Use `kubectl` to install the [kubecfg kubit](https://github.com/kubecfg/kubit)
-operator **v0.0.18 or later**.
+operator **v0.0.22 or later**.
```bash
-kubectl apply -k 'https://github.com/kubecfg/kubit//kustomize/global?ref=v0.0.19'
+kubectl apply -k 'https://github.com/kubecfg/kubit//kustomize/global?ref=v0.0.22'
```
### Set up a Kubernetes ingress controller
@@ -206,7 +215,8 @@ You can provide your own ingress or you can install
[Nginx Ingress Controller](https://github.com/kubernetes/ingress-nginx) to use
the InfluxDB-defined ingress.
-> [!Important]
+> \[!Important]
+>
> #### Allow gRPC/HTTP2
>
> InfluxDB Clustered components use gRPC/HTTP2 protocols.
@@ -232,19 +242,20 @@ that work with InfluxDB Clustered. Other S3-compatible object stores should work
as well.
{{% /caption %}}
-> [!Important]
+> \[!Important]
+>
> #### Object storage recommendations
->
+>
> We **strongly** recommend the following:
->
+>
> - ##### Enable object versioning
->
+>
> Enable object versioning in your object store.
> Refer to your object storage provider's documentation for information about
> enabling object versioning.
->
+>
> - ##### Run the object store in a separate namespace or outside of Kubernetes
->
+>
> Run the Object store in a separate namespace from InfluxDB or external to
> Kubernetes entirely. Doing so makes management of the InfluxDB cluster easier
> and helps to prevent accidental data loss. While deploying everything in the
@@ -260,7 +271,8 @@ the correct permissions to allow InfluxDB to perform all the actions it needs to
The IAM role that you use to access AWS S3 should have the following policy:
-{{% code-placeholders "S3_BUCKET_NAME" %}}
+{{% code-placeholders "S3\_BUCKET\_NAME" %}}
+
```json
{
"Version": "2012-10-17",
@@ -297,6 +309,7 @@ The IAM role that you use to access AWS S3 should have the following policy:
]
}
```
+
{{% /code-placeholders %}}
Replace the following:
@@ -310,13 +323,15 @@ Replace the following:
To use Google Cloud Storage (GCS) as your object store, your [IAM principal](https://cloud.google.com/iam/docs/overview) should be granted the `roles/storage.objectUser` role.
For example, if using [Google Service Accounts](https://cloud.google.com/iam/docs/service-account-overview):
-{{% code-placeholders "GCP_SERVICE_ACCOUNT|GCP_BUCKET" %}}
+{{% code-placeholders "GCP\_SERVICE\_ACCOUNT|GCP\_BUCKET" %}}
+
```bash
gcloud storage buckets add-iam-policy-binding \
gs://GCP_BUCKET \
--member="serviceAccount:GCP_SERVICE_ACCOUNT" \
--role="roles/storage.objectUser"
```
+
{{% /code-placeholders %}}
Replace the following:
@@ -333,13 +348,15 @@ should be granted the `Storage Blob Data Contributor` role.
This is a built-in role for Azure which encompasses common permissions.
You can assign it using the following command:
-{{% code-placeholders "PRINCIPAL|AZURE_SUBSCRIPTION|AZURE_RESOURCE_GROUP|AZURE_STORAGE_ACCOUNT|AZURE_STORAGE_CONTAINER" %}}
+{{% code-placeholders "PRINCIPAL|AZURE\_SUBSCRIPTION|AZURE\_RESOURCE\_GROUP|AZURE\_STORAGE\_ACCOUNT|AZURE\_STORAGE\_CONTAINER" %}}
+
```bash
az role assignment create \
--role "Storage Blob Data Contributor" \
--assignee PRINCIPAL \
--scope "/subscriptions/AZURE_SUBSCRIPTION/resourceGroups/AZURE_RESOURCE_GROUP/providers/Microsoft.Storage/storageAccounts/AZURE_STORAGE_ACCOUNT/blobServices/default/containers/AZURE_STORAGE_CONTAINER"
```
+
{{% /code-placeholders %}}
Replace the following:
@@ -354,7 +371,7 @@ Replace the following:
{{< /expand-wrapper >}}
-> [!Note]
+> \[!Note]
> To configure permissions with MinIO, use the
> [example AWS access policy](#view-example-aws-s3-access-policy).
@@ -362,7 +379,7 @@ Replace the following:
The [InfluxDB Catalog](/influxdb3/clustered/reference/internals/storage-engine/#catalog)
that stores metadata related to your time series data requires a PostgreSQL or
-PostgreSQL-compatible database _(AWS Aurora, hosted PostgreSQL, etc.)_.
+PostgreSQL-compatible database *(AWS Aurora, hosted PostgreSQL, etc.)*.
The process for installing and setting up your PostgreSQL-compatible database
depends on the database and database provider you use.
Refer to your database's or provider's documentation for setting up your
@@ -376,12 +393,12 @@ PostgreSQL-compatible database.
applications, ensure that your PostgreSQL-compatible instance is dedicated
exclusively to InfluxDB.
-> [!Note]
+> \[!Note]
> We **strongly** recommended running the PostgreSQL-compatible database
> in a separate namespace from InfluxDB or external to Kubernetes entirely.
> Doing so makes management of the InfluxDB cluster easier and helps to prevent
> accidental data loss.
->
+>
> While deploying everything in the same namespace is possible, we do not
> recommend it for production environments.
diff --git a/content/influxdb3/core/reference/cli/influxdb3/_index.md b/content/influxdb3/core/reference/cli/influxdb3/_index.md
index 495a03f3d..478848717 100644
--- a/content/influxdb3/core/reference/cli/influxdb3/_index.md
+++ b/content/influxdb3/core/reference/cli/influxdb3/_index.md
@@ -22,8 +22,8 @@ influxdb3 [GLOBAL-OPTIONS] [COMMAND]
## Commands
-| Command | Description |
-| :--------------------------------------------------------------| :---------------------------------- |
+| Command | Description |
+| :---------------------------------------------------------- | :---------------------------------- |
| [create](/influxdb3/core/reference/cli/influxdb3/create/) | Create resources |
| [delete](/influxdb3/core/reference/cli/influxdb3/delete/) | Delete resources |
| [disable](/influxdb3/core/reference/cli/influxdb3/disable/) | Disable resources |
@@ -37,14 +37,39 @@ influxdb3 [GLOBAL-OPTIONS] [COMMAND]
## Global options
-| Option | | Description |
-| :----- | :---------------- | :-------------------------------------------------------------------- |
-| `-h` | `--help` | Print help information |
-| | `--help-all` | Print detailed help information including runtime configuration options |
-| `-V` | `--version` | Print version |
+| Option | | Description |
+| :----- | :----------- | :---------------------------------------------------------------------- |
+| `-h` | `--help` | Print help information |
+| | `--help-all` | Print detailed help information including runtime configuration options |
+| `-V` | `--version` | Print version |
For advanced global configuration options (including `--num-io-threads` and other runtime settings), see [Configuration options](/influxdb3/core/reference/config-options/#global-configuration-options).
+## Quick-Start Mode
+
+For development, testing, and home use, you can start {{< product-name >}} by running `influxdb3` without the `serve` subcommand or any configuration parameters. The system automatically generates required values:
+
+- **`node-id`**: `{hostname}-node` (fallback: `primary-node`)
+- **`object-store`**: `file`
+- **`data-dir`**: `~/.influxdb`
+
+The system displays warning messages showing the auto-generated identifiers:
+
+```
+Using auto-generated node id: mylaptop-node. For production deployments, explicitly set --node-id
+```
+
+> \[!Important]
+>
+> #### Production deployments
+>
+> Quick-start mode is designed for development and testing environments.
+> For production deployments, use explicit configuration with the `serve` subcommand
+> and specify all required parameters as shown in the [Examples](#examples) below.
+
+**Configuration precedence**: CLI flags > environment variables > auto-generated defaults
+
+For more information about quick-start mode, see [Get started](/influxdb3/core/get-started/setup/#quick-start-mode-development).
## Examples
@@ -54,6 +79,21 @@ with a unique identifier for your {{< product-name >}} server.
{{% code-placeholders "my-host-01" %}}
+
+
+### Quick-start InfluxDB 3 server
+
+```bash
+# Zero-config startup
+influxdb3
+
+# Override specific defaults
+influxdb3 --object-store memory
+
+# Use environment variables to override defaults
+INFLUXDB3_NODE_IDENTIFIER_PREFIX=my-node influxdb3
+```
+
### Run the InfluxDB 3 server
@@ -104,7 +144,7 @@ influxdb3 serve \
--verbose
```
-### Run {{% product-name %}} with debug logging using LOG_FILTER
+### Run {{% product-name %}} with debug logging using LOG\_FILTER
@@ -115,4 +155,4 @@ LOG_FILTER=debug influxdb3 serve \
--node-id my-host-01
```
-{{% /code-placeholders %}}
\ No newline at end of file
+{{% /code-placeholders %}}
diff --git a/content/influxdb3/core/reference/cli/influxdb3/serve.md b/content/influxdb3/core/reference/cli/influxdb3/serve.md
index ef5b9e019..8dfcfccdc 100644
--- a/content/influxdb3/core/reference/cli/influxdb3/serve.md
+++ b/content/influxdb3/core/reference/cli/influxdb3/serve.md
@@ -18,20 +18,22 @@ The `influxdb3 serve` command starts the {{< product-name >}} server.
```bash
-influxdb3 serve [OPTIONS] --node-id
+influxdb3 serve [OPTIONS]
```
-## Required parameters
+## Required Parameters
- **node-id**: A unique identifier for your server instance. Must be unique for any hosts sharing the same object store.
- **object-store**: Determines where time series data is stored.
- Other object store parameters depending on the selected `object-store` type.
-> [!NOTE]
+> \[!NOTE]
> `--node-id` supports alphanumeric strings with optional hyphens.
-> [!Important]
+> \[!Important]
+>
> #### Global configuration options
+>
> Some configuration options (like [`--num-io-threads`](/influxdb3/core/reference/config-options/#num-io-threads)) are **global** and must be specified **before** the `serve` command:
>
> ```bash
@@ -44,99 +46,95 @@ influxdb3 serve [OPTIONS] --node-id
| Option | | Description |
| :--------------- | :--------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------ |
-| {{< req "\*" >}} | `--node-id` | _See [configuration options](/influxdb3/core/reference/config-options/#node-id)_ |
-| | `--object-store` | _See [configuration options](/influxdb3/core/reference/config-options/#object-store)_ |
-| | `--admin-token-recovery-http-bind` | _See [configuration options](/influxdb3/core/reference/config-options/#admin-token-recovery-http-bind)_ |
-| | `--admin-token-recovery-tcp-listener-file-path` | _See [configuration options](/influxdb3/core/reference/config-options/#admin-token-recovery-tcp-listener-file-path)_ |
-| | `--admin-token-file` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#admin-token-file)_ |
-| | `--aws-access-key-id` | _See [configuration options](/influxdb3/core/reference/config-options/#aws-access-key-id)_ |
-| | `--aws-allow-http` | _See [configuration options](/influxdb3/core/reference/config-options/#aws-allow-http)_ |
-| | `--aws-credentials-file` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#aws-credentials-file)_ |
-| | `--aws-default-region` | _See [configuration options](/influxdb3/core/reference/config-options/#aws-default-region)_ |
-| | `--aws-endpoint` | _See [configuration options](/influxdb3/core/reference/config-options/#aws-endpoint)_ |
-| | `--aws-secret-access-key` | _See [configuration options](/influxdb3/core/reference/config-options/#aws-secret-access-key)_ |
-| | `--aws-session-token` | _See [configuration options](/influxdb3/core/reference/config-options/#aws-session-token)_ |
-| | `--aws-skip-signature` | _See [configuration options](/influxdb3/core/reference/config-options/#aws-skip-signature)_ |
-| | `--azure-allow-http` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#azure-allow-http)_ |
-| | `--azure-endpoint` | _See [configuration options](/influxdb3/enterprise/reference/config-options/##azure-endpoint)_ |
-| | `--azure-storage-access-key` | _See [configuration options](/influxdb3/core/reference/config-options/#azure-storage-access-key)_ |
-| | `--azure-storage-account` | _See [configuration options](/influxdb3/core/reference/config-options/#azure-storage-account)_ |
-| | `--bucket` | _See [configuration options](/influxdb3/core/reference/config-options/#bucket)_ |
-| | `--data-dir` | _See [configuration options](/influxdb3/core/reference/config-options/#data-dir)_ |
-| | `--datafusion-config` | _See [configuration options](/influxdb3/core/reference/config-options/#datafusion-config)_ |
-| | `--datafusion-max-parquet-fanout` | _See [configuration options](/influxdb3/core/reference/config-options/#datafusion-max-parquet-fanout)_ |
-| | `--datafusion-num-threads` | _See [configuration options](/influxdb3/core/reference/config-options/#datafusion-num-threads)_ |
-| | `--datafusion-runtime-disable-lifo-slot` | _See [configuration options](/influxdb3/core/reference/config-options/#datafusion-runtime-disable-lifo-slot)_ |
-| | `--datafusion-runtime-event-interval` | _See [configuration options](/influxdb3/core/reference/config-options/#datafusion-runtime-event-interval)_ |
-| | `--datafusion-runtime-global-queue-interval` | _See [configuration options](/influxdb3/core/reference/config-options/#datafusion-runtime-global-queue-interval)_ |
-| | `--datafusion-runtime-max-blocking-threads` | _See [configuration options](/influxdb3/core/reference/config-options/#datafusion-runtime-max-blocking-threads)_ |
-| | `--datafusion-runtime-max-io-events-per-tick` | _See [configuration options](/influxdb3/core/reference/config-options/#datafusion-runtime-max-io-events-per-tick)_ |
-| | `--datafusion-runtime-thread-keep-alive` | _See [configuration options](/influxdb3/core/reference/config-options/#datafusion-runtime-thread-keep-alive)_ |
-| | `--datafusion-runtime-thread-priority` | _See [configuration options](/influxdb3/core/reference/config-options/#datafusion-runtime-thread-priority)_ |
-| | `--datafusion-runtime-type` | _See [configuration options](/influxdb3/core/reference/config-options/#datafusion-runtime-type)_ |
-| | `--datafusion-use-cached-parquet-loader` | _See [configuration options](/influxdb3/core/reference/config-options/#datafusion-use-cached-parquet-loader)_ |
-| | `--delete-grace-period` | _See [configuration options](/influxdb3/core/reference/config-options/#delete-grace-period)_ |
-| | `--disable-authz` | _See [configuration options](/influxdb3/core/reference/config-options/#disable-authz)_ |
-| | `--disable-parquet-mem-cache` | _See [configuration options](/influxdb3/core/reference/config-options/#disable-parquet-mem-cache)_ |
-| | `--distinct-cache-eviction-interval` | _See [configuration options](/influxdb3/core/reference/config-options/#distinct-cache-eviction-interval)_ |
-| | `--exec-mem-pool-bytes` | _See [configuration options](/influxdb3/core/reference/config-options/#exec-mem-pool-bytes)_ |
-| | `--force-snapshot-mem-threshold` | _See [configuration options](/influxdb3/core/reference/config-options/#force-snapshot-mem-threshold)_ |
-| | `--gen1-duration` | _See [configuration options](/influxdb3/core/reference/config-options/#gen1-duration)_ |
-| | `--gen1-lookback-duration` | _See [configuration options](/influxdb3/core/reference/config-options/#gen1-lookback-duration)_ |
-| | `--google-service-account` | _See [configuration options](/influxdb3/core/reference/config-options/#google-service-account)_ |
-| | `--hard-delete-default-duration` | _See [configuration options](/influxdb3/core/reference/config-options/#hard-delete-default-duration)_ |
+| {{< req "\*" >}} | `--node-id` | *See [configuration options](/influxdb3/core/reference/config-options/#node-id)* |
+| {{< req "\*" >}} | `--object-store` | *See [configuration options](/influxdb3/core/reference/config-options/#object-store)* |
+| | `--admin-token-recovery-http-bind` | *See [configuration options](/influxdb3/core/reference/config-options/#admin-token-recovery-http-bind)* |
+| | `--admin-token-recovery-tcp-listener-file-path` | *See [configuration options](/influxdb3/core/reference/config-options/#admin-token-recovery-tcp-listener-file-path)* |
+| | `--admin-token-file` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#admin-token-file)* |
+| | `--aws-access-key-id` | *See [configuration options](/influxdb3/core/reference/config-options/#aws-access-key-id)* |
+| | `--aws-allow-http` | *See [configuration options](/influxdb3/core/reference/config-options/#aws-allow-http)* |
+| | `--aws-credentials-file` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#aws-credentials-file)* |
+| | `--aws-default-region` | *See [configuration options](/influxdb3/core/reference/config-options/#aws-default-region)* |
+| | `--aws-endpoint` | *See [configuration options](/influxdb3/core/reference/config-options/#aws-endpoint)* |
+| | `--aws-secret-access-key` | *See [configuration options](/influxdb3/core/reference/config-options/#aws-secret-access-key)* |
+| | `--aws-session-token` | *See [configuration options](/influxdb3/core/reference/config-options/#aws-session-token)* |
+| | `--aws-skip-signature` | *See [configuration options](/influxdb3/core/reference/config-options/#aws-skip-signature)* |
+| | `--azure-allow-http` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#azure-allow-http)* |
+| | `--azure-endpoint` | *See [configuration options](/influxdb3/enterprise/reference/config-options/##azure-endpoint)* |
+| | `--azure-storage-access-key` | *See [configuration options](/influxdb3/core/reference/config-options/#azure-storage-access-key)* |
+| | `--azure-storage-account` | *See [configuration options](/influxdb3/core/reference/config-options/#azure-storage-account)* |
+| | `--bucket` | *See [configuration options](/influxdb3/core/reference/config-options/#bucket)* |
+| | `--data-dir` | *See [configuration options](/influxdb3/core/reference/config-options/#data-dir)* |
+| | `--datafusion-config` | *See [configuration options](/influxdb3/core/reference/config-options/#datafusion-config)* |
+| | `--datafusion-max-parquet-fanout` | *See [configuration options](/influxdb3/core/reference/config-options/#datafusion-max-parquet-fanout)* |
+| | `--datafusion-num-threads` | *See [configuration options](/influxdb3/core/reference/config-options/#datafusion-num-threads)* |
+| | `--datafusion-runtime-disable-lifo-slot` | *See [configuration options](/influxdb3/core/reference/config-options/#datafusion-runtime-disable-lifo-slot)* |
+| | `--datafusion-runtime-event-interval` | *See [configuration options](/influxdb3/core/reference/config-options/#datafusion-runtime-event-interval)* |
+| | `--datafusion-runtime-global-queue-interval` | *See [configuration options](/influxdb3/core/reference/config-options/#datafusion-runtime-global-queue-interval)* |
+| | `--datafusion-runtime-max-blocking-threads` | *See [configuration options](/influxdb3/core/reference/config-options/#datafusion-runtime-max-blocking-threads)* |
+| | `--datafusion-runtime-max-io-events-per-tick` | *See [configuration options](/influxdb3/core/reference/config-options/#datafusion-runtime-max-io-events-per-tick)* |
+| | `--datafusion-runtime-thread-keep-alive` | *See [configuration options](/influxdb3/core/reference/config-options/#datafusion-runtime-thread-keep-alive)* |
+| | `--datafusion-runtime-thread-priority` | *See [configuration options](/influxdb3/core/reference/config-options/#datafusion-runtime-thread-priority)* |
+| | `--datafusion-runtime-type` | *See [configuration options](/influxdb3/core/reference/config-options/#datafusion-runtime-type)* |
+| | `--datafusion-use-cached-parquet-loader` | *See [configuration options](/influxdb3/core/reference/config-options/#datafusion-use-cached-parquet-loader)* |
+| | `--delete-grace-period` | *See [configuration options](/influxdb3/core/reference/config-options/#delete-grace-period)* |
+| | `--disable-authz` | *See [configuration options](/influxdb3/core/reference/config-options/#disable-authz)* |
+| | `--disable-parquet-mem-cache` | *See [configuration options](/influxdb3/core/reference/config-options/#disable-parquet-mem-cache)* |
+| | `--distinct-cache-eviction-interval` | *See [configuration options](/influxdb3/core/reference/config-options/#distinct-cache-eviction-interval)* |
+| | `--exec-mem-pool-bytes` | *See [configuration options](/influxdb3/core/reference/config-options/#exec-mem-pool-bytes)* |
+| | `--force-snapshot-mem-threshold` | *See [configuration options](/influxdb3/core/reference/config-options/#force-snapshot-mem-threshold)* |
+| | `--gen1-duration` | *See [configuration options](/influxdb3/core/reference/config-options/#gen1-duration)* |
+| | `--gen1-lookback-duration` | *See [configuration options](/influxdb3/core/reference/config-options/#gen1-lookback-duration)* |
+| | `--google-service-account` | *See [configuration options](/influxdb3/core/reference/config-options/#google-service-account)* |
+| | `--hard-delete-default-duration` | *See [configuration options](/influxdb3/core/reference/config-options/#hard-delete-default-duration)* |
| `-h` | `--help` | Print help information |
| | `--help-all` | Print detailed help information |
-| | `--http-bind` | _See [configuration options](/influxdb3/core/reference/config-options/#http-bind)_ |
-| | `--last-cache-eviction-interval` | _See [configuration options](/influxdb3/core/reference/config-options/#last-cache-eviction-interval)_ |
-| | `--log-destination` | _See [configuration options](/influxdb3/core/reference/config-options/#log-destination)_ |
-| | `--log-filter` | _See [configuration options](/influxdb3/core/reference/config-options/#log-filter)_ |
-| | `--log-format` | _See [configuration options](/influxdb3/core/reference/config-options/#log-format)_ |
-| | `--max-http-request-size` | _See [configuration options](/influxdb3/core/reference/config-options/#max-http-request-size)_ |
-| | `--object-store-cache-endpoint` | _See [configuration options](/influxdb3/core/reference/config-options/#object-store-cache-endpoint)_ |
-| | `--object-store-connection-limit` | _See [configuration options](/influxdb3/core/reference/config-options/#object-store-connection-limit)_ |
-| | `--object-store-http2-max-frame-size` | _See [configuration options](/influxdb3/core/reference/config-options/#object-store-http2-max-frame-size)_ |
-| | `--object-store-http2-only` | _See [configuration options](/influxdb3/core/reference/config-options/#object-store-http2-only)_ |
-| | `--object-store-max-retries` | _See [configuration options](/influxdb3/core/reference/config-options/#object-store-max-retries)_ |
-| | `--object-store-retry-timeout` | _See [configuration options](/influxdb3/core/reference/config-options/#object-store-retry-timeout)_ |
-| | `--package-manager` | _See [configuration options](/influxdb3/core/reference/config-options/#package-manager)_ |
-| | `--parquet-mem-cache-prune-interval` | _See [configuration options](/influxdb3/core/reference/config-options/#parquet-mem-cache-prune-interval)_ |
-| | `--parquet-mem-cache-prune-percentage` | _See [configuration options](/influxdb3/core/reference/config-options/#parquet-mem-cache-prune-percentage)_ |
-| | `--parquet-mem-cache-query-path-duration` | _See [configuration options](/influxdb3/core/reference/config-options/#parquet-mem-cache-query-path-duration)_ |
-| | `--parquet-mem-cache-size` | _See [configuration options](/influxdb3/core/reference/config-options/#parquet-mem-cache-size)_ |
-| | `--plugin-dir` | _See [configuration options](/influxdb3/core/reference/config-options/#plugin-dir)_ |
-| | `--preemptive-cache-age` | _See [configuration options](/influxdb3/core/reference/config-options/#preemptive-cache-age)_ |
-| | `--query-file-limit` | _See [configuration options](/influxdb3/core/reference/config-options/#query-file-limit)_ |
-| | `--query-log-size` | _See [configuration options](/influxdb3/core/reference/config-options/#query-log-size)_ |
-| | `--retention-check-interval` | _See [configuration options](/influxdb3/core/reference/config-options/#retention-check-interval)_ |
-| | `--snapshotted-wal-files-to-keep` | _See [configuration options](/influxdb3/core/reference/config-options/#snapshotted-wal-files-to-keep)_ |
-| | `--table-index-cache-concurrency-limit` | _See [configuration options](/influxdb3/core/reference/config-options/#table-index-cache-concurrency-limit)_ |
-| | `--table-index-cache-max-entries` | _See [configuration options](/influxdb3/core/reference/config-options/#table-index-cache-max-entries)_ |
-| | `--tcp-listener-file-path` | _See [configuration options](/influxdb3/core/reference/config-options/#tcp-listener-file-path)_ |
-| | `--telemetry-disable-upload` | _See [configuration options](/influxdb3/core/reference/config-options/#telemetry-disable-upload)_ |
-| | `--telemetry-endpoint` | _See [configuration options](/influxdb3/core/reference/config-options/#telemetry-endpoint)_ |
-| | `--tls-cert` | _See [configuration options](/influxdb3/core/reference/config-options/#tls-cert)_ |
-| | `--tls-key` | _See [configuration options](/influxdb3/core/reference/config-options/#tls-key)_ |
-| | `--tls-minimum-version` | _See [configuration options](/influxdb3/core/reference/config-options/#tls-minimum-version)_ |
-| | `--traces-exporter` | _See [configuration options](/influxdb3/core/reference/config-options/#traces-exporter)_ |
-| | `--traces-exporter-jaeger-agent-host` | _See [configuration options](/influxdb3/core/reference/config-options/#traces-exporter-jaeger-agent-host)_ |
-| | `--traces-exporter-jaeger-agent-port` | _See [configuration options](/influxdb3/core/reference/config-options/#traces-exporter-jaeger-agent-port)_ |
-| | `--traces-exporter-jaeger-service-name` | _See [configuration options](/influxdb3/core/reference/config-options/#traces-exporter-jaeger-service-name)_ |
-| | `--traces-exporter-jaeger-trace-context-header-name` | _See [configuration options](/influxdb3/core/reference/config-options/#traces-exporter-jaeger-trace-context-header-name)_ |
-| | `--traces-jaeger-debug-name` | _See [configuration options](/influxdb3/core/reference/config-options/#traces-jaeger-debug-name)_ |
-| | `--traces-jaeger-max-msgs-per-second` | _See [configuration options](/influxdb3/core/reference/config-options/#traces-jaeger-max-msgs-per-second)_ |
-| | `--traces-jaeger-tags` | _See [configuration options](/influxdb3/core/reference/config-options/#traces-jaeger-tags)_ |
-| | `--virtual-env-location` | _See [configuration options](/influxdb3/core/reference/config-options/#virtual-env-location)_ |
-| | `--wal-flush-interval` | _See [configuration options](/influxdb3/core/reference/config-options/#wal-flush-interval)_ |
-| | `--wal-max-write-buffer-size` | _See [configuration options](/influxdb3/core/reference/config-options/#wal-max-write-buffer-size)_ |
-| | `--wal-replay-concurrency-limit` | _See [configuration options](/influxdb3/core/reference/config-options/#wal-replay-concurrency-limit)_ |
-| | `--wal-replay-fail-on-error` | _See [configuration options](/influxdb3/core/reference/config-options/#wal-replay-fail-on-error)_ |
-| | `--wal-snapshot-size` | _See [configuration options](/influxdb3/core/reference/config-options/#wal-snapshot-size)_ |
-| | `--without-auth` | _See [configuration options](/influxdb3/core/reference/config-options/#without-auth)_ |
-
-{{< caption >}}
-{{< req text="\* Required options" >}}
-{{< /caption >}}
+| | `--http-bind` | *See [configuration options](/influxdb3/core/reference/config-options/#http-bind)* |
+| | `--last-cache-eviction-interval` | *See [configuration options](/influxdb3/core/reference/config-options/#last-cache-eviction-interval)* |
+| | `--log-destination` | *See [configuration options](/influxdb3/core/reference/config-options/#log-destination)* |
+| | `--log-filter` | *See [configuration options](/influxdb3/core/reference/config-options/#log-filter)* |
+| | `--log-format` | *See [configuration options](/influxdb3/core/reference/config-options/#log-format)* |
+| | `--max-http-request-size` | *See [configuration options](/influxdb3/core/reference/config-options/#max-http-request-size)* |
+| | `--object-store-cache-endpoint` | *See [configuration options](/influxdb3/core/reference/config-options/#object-store-cache-endpoint)* |
+| | `--object-store-connection-limit` | *See [configuration options](/influxdb3/core/reference/config-options/#object-store-connection-limit)* |
+| | `--object-store-http2-max-frame-size` | *See [configuration options](/influxdb3/core/reference/config-options/#object-store-http2-max-frame-size)* |
+| | `--object-store-http2-only` | *See [configuration options](/influxdb3/core/reference/config-options/#object-store-http2-only)* |
+| | `--object-store-max-retries` | *See [configuration options](/influxdb3/core/reference/config-options/#object-store-max-retries)* |
+| | `--object-store-retry-timeout` | *See [configuration options](/influxdb3/core/reference/config-options/#object-store-retry-timeout)* |
+| | `--package-manager` | *See [configuration options](/influxdb3/core/reference/config-options/#package-manager)* |
+| | `--parquet-mem-cache-prune-interval` | *See [configuration options](/influxdb3/core/reference/config-options/#parquet-mem-cache-prune-interval)* |
+| | `--parquet-mem-cache-prune-percentage` | *See [configuration options](/influxdb3/core/reference/config-options/#parquet-mem-cache-prune-percentage)* |
+| | `--parquet-mem-cache-query-path-duration` | *See [configuration options](/influxdb3/core/reference/config-options/#parquet-mem-cache-query-path-duration)* |
+| | `--parquet-mem-cache-size` | *See [configuration options](/influxdb3/core/reference/config-options/#parquet-mem-cache-size)* |
+| | `--plugin-dir` | *See [configuration options](/influxdb3/core/reference/config-options/#plugin-dir)* |
+| | `--preemptive-cache-age` | *See [configuration options](/influxdb3/core/reference/config-options/#preemptive-cache-age)* |
+| | `--query-file-limit` | *See [configuration options](/influxdb3/core/reference/config-options/#query-file-limit)* |
+| | `--query-log-size` | *See [configuration options](/influxdb3/core/reference/config-options/#query-log-size)* |
+| | `--retention-check-interval` | *See [configuration options](/influxdb3/core/reference/config-options/#retention-check-interval)* |
+| | `--snapshotted-wal-files-to-keep` | *See [configuration options](/influxdb3/core/reference/config-options/#snapshotted-wal-files-to-keep)* |
+| | `--table-index-cache-concurrency-limit` | *See [configuration options](/influxdb3/core/reference/config-options/#table-index-cache-concurrency-limit)* |
+| | `--table-index-cache-max-entries` | *See [configuration options](/influxdb3/core/reference/config-options/#table-index-cache-max-entries)* |
+| | `--tcp-listener-file-path` | *See [configuration options](/influxdb3/core/reference/config-options/#tcp-listener-file-path)* |
+| | `--telemetry-disable-upload` | *See [configuration options](/influxdb3/core/reference/config-options/#telemetry-disable-upload)* |
+| | `--telemetry-endpoint` | *See [configuration options](/influxdb3/core/reference/config-options/#telemetry-endpoint)* |
+| | `--tls-cert` | *See [configuration options](/influxdb3/core/reference/config-options/#tls-cert)* |
+| | `--tls-key` | *See [configuration options](/influxdb3/core/reference/config-options/#tls-key)* |
+| | `--tls-minimum-version` | *See [configuration options](/influxdb3/core/reference/config-options/#tls-minimum-version)* |
+| | `--traces-exporter` | *See [configuration options](/influxdb3/core/reference/config-options/#traces-exporter)* |
+| | `--traces-exporter-jaeger-agent-host` | *See [configuration options](/influxdb3/core/reference/config-options/#traces-exporter-jaeger-agent-host)* |
+| | `--traces-exporter-jaeger-agent-port` | *See [configuration options](/influxdb3/core/reference/config-options/#traces-exporter-jaeger-agent-port)* |
+| | `--traces-exporter-jaeger-service-name` | *See [configuration options](/influxdb3/core/reference/config-options/#traces-exporter-jaeger-service-name)* |
+| | `--traces-exporter-jaeger-trace-context-header-name` | *See [configuration options](/influxdb3/core/reference/config-options/#traces-exporter-jaeger-trace-context-header-name)* |
+| | `--traces-jaeger-debug-name` | *See [configuration options](/influxdb3/core/reference/config-options/#traces-jaeger-debug-name)* |
+| | `--traces-jaeger-max-msgs-per-second` | *See [configuration options](/influxdb3/core/reference/config-options/#traces-jaeger-max-msgs-per-second)* |
+| | `--traces-jaeger-tags` | *See [configuration options](/influxdb3/core/reference/config-options/#traces-jaeger-tags)* |
+| | `--virtual-env-location` | *See [configuration options](/influxdb3/core/reference/config-options/#virtual-env-location)* |
+| | `--wal-flush-interval` | *See [configuration options](/influxdb3/core/reference/config-options/#wal-flush-interval)* |
+| | `--wal-max-write-buffer-size` | *See [configuration options](/influxdb3/core/reference/config-options/#wal-max-write-buffer-size)* |
+| | `--wal-replay-concurrency-limit` | *See [configuration options](/influxdb3/core/reference/config-options/#wal-replay-concurrency-limit)* |
+| | `--wal-replay-fail-on-error` | *See [configuration options](/influxdb3/core/reference/config-options/#wal-replay-fail-on-error)* |
+| | `--wal-snapshot-size` | *See [configuration options](/influxdb3/core/reference/config-options/#wal-snapshot-size)* |
+| | `--without-auth` | *See [configuration options](/influxdb3/core/reference/config-options/#without-auth)* |
### Option environment variables
@@ -144,11 +142,52 @@ You can use environment variables to define most `influxdb3 serve` options.
For more information, see
[Configuration options](/influxdb3/core/reference/config-options/).
+## Quick-Start Mode
+
+For development, testing, and home use, you can start {{< product-name >}} by running `influxdb3` without the `serve` subcommand or any configuration parameters. The system automatically generates required values:
+
+- **`node-id`**: `{hostname}-node` (fallback: `primary-node`)
+- **`object-store`**: `file`
+- **`data-dir`**: `~/.influxdb`
+
+The system displays warning messages showing the auto-generated identifiers:
+
+```
+Using auto-generated node id: mylaptop-node. For production deployments, explicitly set --node-id
+```
+
+### Quick-start examples
+
+
+
+```bash
+# Zero-config startup
+influxdb3
+
+# Override specific defaults
+influxdb3 --object-store memory
+
+# Use environment variables to override defaults
+INFLUXDB3_NODE_IDENTIFIER_PREFIX=my-node influxdb3
+```
+
+> \[!Important]
+>
+> #### Production deployments
+>
+> Quick-start mode is designed for development and testing environments.
+> For production deployments, use explicit configuration with the `serve` subcommand
+> and specify all required parameters as shown in the [Examples](#examples) below.
+
+**Configuration precedence**: CLI flags > environment variables > auto-generated defaults
+
+For more information about quick-start mode, see [Get started](/influxdb3/core/get-started/setup/#quick-start-mode-development).
+
## Examples
- [Run the InfluxDB 3 server](#run-the-influxdb-3-server)
- [Run the InfluxDB 3 server with extra verbose logging](#run-the-influxdb-3-server-with-extra-verbose-logging)
-- [Run InfluxDB 3 with debug logging using LOG_FILTER](#run-influxdb-3-with-debug-logging-using-log_filter)
+- [Run InfluxDB 3 with debug logging using LOG\_FILTER](#run-influxdb-3-with-debug-logging-using-log_filter)
In the examples below, replace
{{% code-placeholder-key %}}`my-host-01`{{% /code-placeholder-key %}}:
@@ -179,7 +218,7 @@ influxdb3 serve \
--verbose
```
-### Run InfluxDB 3 with debug logging using LOG_FILTER
+### Run InfluxDB 3 with debug logging using LOG\_FILTER
@@ -192,13 +231,12 @@ LOG_FILTER=debug influxdb3 serve \
{{% /code-placeholders %}}
-
## Troubleshooting
### Common Issues
-- **Error: "Failed to connect to object store"**
+- **Error: "Failed to connect to object store"**\
Verify your `--object-store` setting and ensure all required parameters for that storage type are provided.
-- **Permission errors when using S3, Google Cloud, or Azure storage**
+- **Permission errors when using S3, Google Cloud, or Azure storage**\
Check that your authentication credentials are correct and have sufficient permissions.
diff --git a/content/influxdb3/core/reference/cli/influxdb3/show/plugins.md b/content/influxdb3/core/reference/cli/influxdb3/show/plugins.md
new file mode 100644
index 000000000..fadd9f729
--- /dev/null
+++ b/content/influxdb3/core/reference/cli/influxdb3/show/plugins.md
@@ -0,0 +1,16 @@
+---
+title: influxdb3 show plugins
+description: >
+ The `influxdb3 show plugins` command lists loaded Processing Engine plugins in your
+ InfluxDB 3 Core server.
+menu:
+ influxdb3_core:
+ parent: influxdb3 show
+ name: influxdb3 show plugins
+weight: 350
+source: /shared/influxdb3-cli/show/plugins.md
+---
+
+
diff --git a/content/influxdb3/core/reference/cli/influxdb3/update/trigger.md b/content/influxdb3/core/reference/cli/influxdb3/update/trigger.md
new file mode 100644
index 000000000..c0b02f7e8
--- /dev/null
+++ b/content/influxdb3/core/reference/cli/influxdb3/update/trigger.md
@@ -0,0 +1,15 @@
+---
+title: influxdb3 update trigger
+description: >
+ The `influxdb3 update trigger` command updates an existing trigger.
+menu:
+ influxdb3_core:
+ parent: influxdb3 update
+ name: influxdb3 update trigger
+weight: 401
+source: /shared/influxdb3-cli/update/trigger.md
+---
+
+
diff --git a/content/influxdb3/enterprise/reference/cli/influxdb3/_index.md b/content/influxdb3/enterprise/reference/cli/influxdb3/_index.md
index 1a52c7f40..facefa464 100644
--- a/content/influxdb3/enterprise/reference/cli/influxdb3/_index.md
+++ b/content/influxdb3/enterprise/reference/cli/influxdb3/_index.md
@@ -22,8 +22,8 @@ influxdb3 [GLOBAL-OPTIONS] [COMMAND]
## Commands
-| Command | Description |
-| :--------------------------------------------------------------| :---------------------------------- |
+| Command | Description |
+| :---------------------------------------------------------------- | :---------------------------------- |
| [create](/influxdb3/enterprise/reference/cli/influxdb3/create/) | Create resources |
| [delete](/influxdb3/enterprise/reference/cli/influxdb3/delete/) | Delete resources |
| [disable](/influxdb3/enterprise/reference/cli/influxdb3/disable/) | Disable resources |
@@ -37,27 +37,69 @@ influxdb3 [GLOBAL-OPTIONS] [COMMAND]
## Global options
-| Option | | Description |
-| :----- | :---------------- | :-------------------------------------------------------------------- |
-| `-h` | `--help` | Print help information |
-| | `--help-all` | Print detailed help information including runtime configuration options |
-| `-V` | `--version` | Print version |
+| Option | | Description |
+| :----- | :----------- | :---------------------------------------------------------------------- |
+| `-h` | `--help` | Print help information |
+| | `--help-all` | Print detailed help information including runtime configuration options |
+| `-V` | `--version` | Print version |
For advanced global configuration options (including `--num-io-threads` and other runtime settings), see [Configuration options](/influxdb3/enterprise/reference/config-options/#global-configuration-options).
+## Quick-Start Mode
+
+For development, testing, and home use, you can start {{< product-name >}} by running `influxdb3` without the `serve` subcommand or any configuration parameters. The system automatically generates required values:
+
+- **`node-id`**: `{hostname}-node` (fallback: `primary-node`)
+- **`cluster-id`**: `{hostname}-cluster` (fallback: `primary-cluster`)
+- **`object-store`**: `file`
+- **`data-dir`**: `~/.influxdb`
+
+The system displays warning messages showing the auto-generated identifiers:
+
+```
+Using auto-generated node id: mylaptop-node. For production deployments, explicitly set --node-id
+Using auto-generated cluster id: mylaptop-cluster. For production deployments, explicitly set --cluster-id
+```
+
+> \[!Important]
+>
+> #### Production deployments
+>
+> Quick-start mode is designed for development and testing environments.
+> For production deployments, use explicit configuration with the `serve` subcommand
+> and specify all required parameters as shown in the [Examples](#examples) below.
+
+**Configuration precedence**: CLI flags > environment variables > auto-generated defaults
+
+For more information about quick-start mode, see [Get started](/influxdb3/enterprise/get-started/setup/#quick-start-mode-development).
## Examples
In the examples below, replace the following:
- {{% code-placeholder-key %}}`my-host-01`{{% /code-placeholder-key %}}:
-a unique identifier for your {{< product-name >}} server.
+ a unique identifier for your {{< product-name >}} server.
- {{% code-placeholder-key %}}`my-cluster-01`{{% /code-placeholder-key %}}:
-a unique identifier for your {{< product-name >}} cluster.
-The value you use must be different from `--node-id` values in the cluster.
+ a unique identifier for your {{< product-name >}} cluster.
+ The value you use must be different from `--node-id` values in the cluster.
{{% code-placeholders "my-host-01|my-cluster-01" %}}
+### Quick-start influxdb3 server
+
+
+
+```bash
+# Zero-config startup
+influxdb3
+
+# Override specific defaults
+influxdb3 --object-store memory
+
+# Use environment variables to override defaults
+INFLUXDB3_NODE_IDENTIFIER_PREFIX=my-node influxdb3
+```
+
### Run the InfluxDB 3 server
@@ -111,7 +153,7 @@ influxdb3 serve \
--verbose
```
-### Run {{% product-name %}} with debug logging using LOG_FILTER
+### Run {{% product-name %}} with debug logging using LOG\_FILTER
@@ -123,4 +165,4 @@ LOG_FILTER=debug influxdb3 serve \
--cluster-id my-cluster-01
```
-{{% /code-placeholders %}}
\ No newline at end of file
+{{% /code-placeholders %}}
diff --git a/content/influxdb3/enterprise/reference/cli/influxdb3/serve.md b/content/influxdb3/enterprise/reference/cli/influxdb3/serve.md
index bded5f63b..fecc5d7e4 100644
--- a/content/influxdb3/enterprise/reference/cli/influxdb3/serve.md
+++ b/content/influxdb3/enterprise/reference/cli/influxdb3/serve.md
@@ -18,23 +18,23 @@ The `influxdb3 serve` command starts the {{< product-name >}} server.
```bash
-influxdb3 serve [OPTIONS] \
- --node-id \
- --cluster-id
+influxdb3 serve [OPTIONS]
```
-## Required parameters
+## Required Parameters
- **node-id**: A unique identifier for your server instance. Must be unique for any hosts sharing the same object store.
- **cluster-id**: A unique identifier for your cluster. Must be different from any node-id in your cluster.
- **object-store**: Determines where time series data is stored.
- Other object store parameters depending on the selected `object-store` type.
-> [!NOTE]
+> \[!NOTE]
> `--node-id` and `--cluster-id` support alphanumeric strings with optional hyphens.
-> [!Important]
+> \[!Important]
+>
> #### Global configuration options
+>
> Some configuration options (like [`--num-io-threads`](/influxdb3/enterprise/reference/config-options/#num-io-threads)) are **global** and must be specified **before** the `serve` command:
>
> ```bash
@@ -45,124 +45,120 @@ influxdb3 serve [OPTIONS] \
## Options
-| Option | | Description |
-| :--------------- | :--------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------ |
-| | `--admin-token-recovery-http-bind` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#admin-token-recovery-http-bind)_ |
-| | `--admin-token-recovery-tcp-listener-file-path` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#admin-token-recovery-tcp-listener-file-path)_ |
-| | `--admin-token-file` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#admin-token-file)_ |
-| | `--aws-access-key-id` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#aws-access-key-id)_ |
-| | `--aws-allow-http` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#aws-allow-http)_ |
-| | `--aws-credentials-file` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#aws-credentials-file)_ |
-| | `--aws-default-region` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#aws-default-region)_ |
-| | `--aws-endpoint` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#aws-endpoint)_ |
-| | `--aws-secret-access-key` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#aws-secret-access-key)_ |
-| | `--aws-session-token` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#aws-session-token)_ |
-| | `--aws-skip-signature` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#aws-skip-signature)_ |
-| | `--azure-allow-http` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#azure-allow-http)_ |
-| | `--azure-endpoint` | _See [configuration options](/influxdb3/enterprise/reference/config-options/##azure-endpoint)_ |
-| | `--azure-storage-access-key` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#azure-storage-access-key)_ |
-| | `--azure-storage-account` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#azure-storage-account)_ |
-| | `--bucket` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#bucket)_ |
-| | `--catalog-sync-interval` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#catalog-sync-interval)_ |
-| {{< req "\*" >}} | `--cluster-id` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#cluster-id)_ |
-| | `--compaction-check-interval` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#compaction-check-interval)_ |
-| | `--compaction-cleanup-wait` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#compaction-cleanup-wait)_ |
-| | `--compaction-gen2-duration` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#compaction-gen2-duration)_ |
-| | `--compaction-max-num-files-per-plan` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#compaction-max-num-files-per-plan)_ |
-| | `--compaction-multipliers` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#compaction-multipliers)_ |
-| | `--compaction-row-limit` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#compaction-row-limit)_ |
-| | `--data-dir` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#data-dir)_ |
-| | `--datafusion-config` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#datafusion-config)_ |
-| | `--datafusion-max-parquet-fanout` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#datafusion-max-parquet-fanout)_ |
-| | `--datafusion-num-threads` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#datafusion-num-threads)_ |
-| | `--datafusion-runtime-disable-lifo-slot` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#datafusion-runtime-disable-lifo-slot)_ |
-| | `--datafusion-runtime-event-interval` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#datafusion-runtime-event-interval)_ |
-| | `--datafusion-runtime-global-queue-interval` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#datafusion-runtime-global-queue-interval)_ |
-| | `--datafusion-runtime-max-blocking-threads` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#datafusion-runtime-max-blocking-threads)_ |
-| | `--datafusion-runtime-max-io-events-per-tick` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#datafusion-runtime-max-io-events-per-tick)_ |
-| | `--datafusion-runtime-thread-keep-alive` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#datafusion-runtime-thread-keep-alive)_ |
-| | `--datafusion-runtime-thread-priority` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#datafusion-runtime-thread-priority)_ |
-| | `--datafusion-runtime-type` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#datafusion-runtime-type)_ |
-| | `--datafusion-use-cached-parquet-loader` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#datafusion-use-cached-parquet-loader)_ |
-| | `--delete-grace-period` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#delete-grace-period)_ |
-| | `--disable-authz` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#disable-authz)_ |
-| | `--disable-parquet-mem-cache` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#disable-parquet-mem-cache)_ |
-| | `--distinct-cache-eviction-interval` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#distinct-cache-eviction-interval)_ |
-| | `--distinct-value-cache-disable-from-history` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#distinct-value-cache-disable-from-history)_ |
-| | `--exec-mem-pool-bytes` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#exec-mem-pool-bytes)_ |
-| | `--force-snapshot-mem-threshold` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#force-snapshot-mem-threshold)_ |
-| | `--gen1-duration` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#gen1-duration)_ |
-| | `--gen1-lookback-duration` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#gen1-lookback-duration)_ |
-| | `--google-service-account` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#google-service-account)_ |
-| | `--hard-delete-default-duration` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#hard-delete-default-duration)_ |
-| `-h` | `--help` | Print help information |
-| | `--help-all` | Print detailed help information |
-| | `--http-bind` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#http-bind)_ |
-| | `--last-cache-eviction-interval` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#last-cache-eviction-interval)_ |
-| | `--last-value-cache-disable-from-history` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#last-value-cache-disable-from-history)_ |
-| | `--license-email` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#license-email)_ |
-| | `--license-file` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#license-file)_ |
-| | `--log-destination` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#log-destination)_ |
-| | `--log-filter` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#log-filter)_ |
-| | `--log-format` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#log-format)_ |
-| | `--max-http-request-size` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#max-http-request-size)_ |
-| | `--mode` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#mode)_ |
-| {{< req "\*" >}} | `--node-id` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#node-id)_ |
-| | `--node-id-from-env` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#node-id-from-env)_ |
-| | `--num-cores` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#num-cores)_ |
-| | `--num-datafusion-threads` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#num-datafusion-threads)_ |
-| | `--num-database-limit` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#num-database-limit)_ |
-| | `--num-table-limit` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#num-table-limit)_ |
-| | `--num-total-columns-per-table-limit` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#num-total-columns-per-table-limit)_ |
-| | `--object-store` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#object-store)_ |
-| | `--object-store-cache-endpoint` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#object-store-cache-endpoint)_ |
-| | `--object-store-connection-limit` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#object-store-connection-limit)_ |
-| | `--object-store-http2-max-frame-size` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#object-store-http2-max-frame-size)_ |
-| | `--object-store-http2-only` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#object-store-http2-only)_ |
-| | `--object-store-max-retries` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#object-store-max-retries)_ |
-| | `--object-store-retry-timeout` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#object-store-retry-timeout)_ |
-| | `--package-manager` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#package-manager)_ |
-| | `--parquet-mem-cache-prune-interval` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#parquet-mem-cache-prune-interval)_ |
-| | `--parquet-mem-cache-prune-percentage` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#parquet-mem-cache-prune-percentage)_ |
-| | `--parquet-mem-cache-query-path-duration` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#parquet-mem-cache-query-path-duration)_ |
-| | `--parquet-mem-cache-size` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#parquet-mem-cache-size)_ |
-| | `--permission-tokens-file` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#permission-tokens-file)_ |
-| | `--plugin-dir` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#plugin-dir)_ |
-| | `--preemptive-cache-age` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#preemptive-cache-age)_ |
-| | `--query-file-limit` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#query-file-limit)_ |
-| | `--query-log-size` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#query-log-size)_ |
-| | `--replication-interval` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#replication-interval)_ |
-| | `--retention-check-interval` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#retention-check-interval)_ |
-| | `--snapshotted-wal-files-to-keep` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#snapshotted-wal-files-to-keep)_ |
-| | `--table-index-cache-concurrency-limit` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#table-index-cache-concurrency-limit)_ |
-| | `--table-index-cache-max-entries` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#table-index-cache-max-entries)_ |
-| | `--tcp-listener-file-path` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#tcp-listener-file-path)_ |
-| | `--telemetry-disable-upload` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#telemetry-disable-upload)_ |
-| | `--telemetry-endpoint` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#telemetry-endpoint)_ |
-| | `--tls-cert` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#tls-cert)_ |
-| | `--tls-key` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#tls-key)_ |
-| | `--tls-minimum-version` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#tls-minimum-version)_ |
-| | `--traces-exporter` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#traces-exporter)_ |
-| | `--traces-exporter-jaeger-agent-host` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#traces-exporter-jaeger-agent-host)_ |
-| | `--traces-exporter-jaeger-agent-port` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#traces-exporter-jaeger-agent-port)_ |
-| | `--traces-exporter-jaeger-service-name` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#traces-exporter-jaeger-service-name)_ |
-| | `--traces-exporter-jaeger-trace-context-header-name` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#traces-exporter-jaeger-trace-context-header-name)_ |
-| | `--traces-jaeger-debug-name` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#traces-jaeger-debug-name)_ |
-| | `--traces-jaeger-max-msgs-per-second` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#traces-jaeger-max-msgs-per-second)_ |
-| | `--traces-jaeger-tags` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#traces-jaeger-tags)_ |
-| | `--use-pacha-tree` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#use-pacha-tree)_ |
-| | `--virtual-env-location` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#virtual-env-location)_ |
-| | `--wait-for-running-ingestor` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#wait-for-running-ingestor)_ |
-| | `--wal-flush-interval` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#wal-flush-interval)_ |
-| | `--wal-max-write-buffer-size` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#wal-max-write-buffer-size)_ |
-| | `--wal-replay-concurrency-limit` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#wal-replay-concurrency-limit)_ |
-| | `--wal-replay-fail-on-error` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#wal-replay-fail-on-error)_ |
-| | `--wal-snapshot-size` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#wal-snapshot-size)_ |
-| | `--without-auth` | _See [configuration options](/influxdb3/enterprise/reference/config-options/#without-auth)_ |
-
-{{< caption >}}
-{{< req text="\* Required options" >}}
-{{< /caption >}}
+| Option | | Description |
+| :----- | :--------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------ |
+| | `--admin-token-recovery-http-bind` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#admin-token-recovery-http-bind)* |
+| | `--admin-token-recovery-tcp-listener-file-path` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#admin-token-recovery-tcp-listener-file-path)* |
+| | `--admin-token-file` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#admin-token-file)* |
+| | `--aws-access-key-id` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#aws-access-key-id)* |
+| | `--aws-allow-http` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#aws-allow-http)* |
+| | `--aws-credentials-file` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#aws-credentials-file)* |
+| | `--aws-default-region` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#aws-default-region)* |
+| | `--aws-endpoint` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#aws-endpoint)* |
+| | `--aws-secret-access-key` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#aws-secret-access-key)* |
+| | `--aws-session-token` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#aws-session-token)* |
+| | `--aws-skip-signature` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#aws-skip-signature)* |
+| | `--azure-allow-http` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#azure-allow-http)* |
+| | `--azure-endpoint` | *See [configuration options](/influxdb3/enterprise/reference/config-options/##azure-endpoint)* |
+| | `--azure-storage-access-key` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#azure-storage-access-key)* |
+| | `--azure-storage-account` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#azure-storage-account)* |
+| | `--bucket` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#bucket)* |
+| | `--catalog-sync-interval` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#catalog-sync-interval)* |
+| | `--cluster-id` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#cluster-id)* |
+| | `--compaction-check-interval` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#compaction-check-interval)* |
+| | `--compaction-cleanup-wait` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#compaction-cleanup-wait)* |
+| | `--compaction-gen2-duration` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#compaction-gen2-duration)* |
+| | `--compaction-max-num-files-per-plan` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#compaction-max-num-files-per-plan)* |
+| | `--compaction-multipliers` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#compaction-multipliers)* |
+| | `--compaction-row-limit` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#compaction-row-limit)* |
+| | `--data-dir` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#data-dir)* |
+| | `--datafusion-config` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#datafusion-config)* |
+| | `--datafusion-max-parquet-fanout` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#datafusion-max-parquet-fanout)* |
+| | `--datafusion-num-threads` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#datafusion-num-threads)* |
+| | `--datafusion-runtime-disable-lifo-slot` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#datafusion-runtime-disable-lifo-slot)* |
+| | `--datafusion-runtime-event-interval` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#datafusion-runtime-event-interval)* |
+| | `--datafusion-runtime-global-queue-interval` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#datafusion-runtime-global-queue-interval)* |
+| | `--datafusion-runtime-max-blocking-threads` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#datafusion-runtime-max-blocking-threads)* |
+| | `--datafusion-runtime-max-io-events-per-tick` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#datafusion-runtime-max-io-events-per-tick)* |
+| | `--datafusion-runtime-thread-keep-alive` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#datafusion-runtime-thread-keep-alive)* |
+| | `--datafusion-runtime-thread-priority` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#datafusion-runtime-thread-priority)* |
+| | `--datafusion-runtime-type` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#datafusion-runtime-type)* |
+| | `--datafusion-use-cached-parquet-loader` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#datafusion-use-cached-parquet-loader)* |
+| | `--delete-grace-period` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#delete-grace-period)* |
+| | `--disable-authz` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#disable-authz)* |
+| | `--disable-parquet-mem-cache` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#disable-parquet-mem-cache)* |
+| | `--distinct-cache-eviction-interval` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#distinct-cache-eviction-interval)* |
+| | `--distinct-value-cache-disable-from-history` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#distinct-value-cache-disable-from-history)* |
+| | `--exec-mem-pool-bytes` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#exec-mem-pool-bytes)* |
+| | `--force-snapshot-mem-threshold` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#force-snapshot-mem-threshold)* |
+| | `--gen1-duration` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#gen1-duration)* |
+| | `--gen1-lookback-duration` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#gen1-lookback-duration)* |
+| | `--google-service-account` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#google-service-account)* |
+| | `--hard-delete-default-duration` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#hard-delete-default-duration)* |
+| `-h` | `--help` | Print help information |
+| | `--help-all` | Print detailed help information |
+| | `--http-bind` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#http-bind)* |
+| | `--last-cache-eviction-interval` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#last-cache-eviction-interval)* |
+| | `--last-value-cache-disable-from-history` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#last-value-cache-disable-from-history)* |
+| | `--license-email` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#license-email)* |
+| | `--license-file` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#license-file)* |
+| | `--log-destination` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#log-destination)* |
+| | `--log-filter` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#log-filter)* |
+| | `--log-format` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#log-format)* |
+| | `--max-http-request-size` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#max-http-request-size)* |
+| | `--mode` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#mode)* |
+| | `--node-id` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#node-id)* |
+| | `--node-id-from-env` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#node-id-from-env)* |
+| | `--num-cores` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#num-cores)* |
+| | `--num-datafusion-threads` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#num-datafusion-threads)* |
+| | `--num-database-limit` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#num-database-limit)* |
+| | `--num-table-limit` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#num-table-limit)* |
+| | `--num-total-columns-per-table-limit` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#num-total-columns-per-table-limit)* |
+| | `--object-store` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#object-store)* |
+| | `--object-store-cache-endpoint` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#object-store-cache-endpoint)* |
+| | `--object-store-connection-limit` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#object-store-connection-limit)* |
+| | `--object-store-http2-max-frame-size` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#object-store-http2-max-frame-size)* |
+| | `--object-store-http2-only` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#object-store-http2-only)* |
+| | `--object-store-max-retries` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#object-store-max-retries)* |
+| | `--object-store-retry-timeout` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#object-store-retry-timeout)* |
+| | `--package-manager` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#package-manager)* |
+| | `--parquet-mem-cache-prune-interval` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#parquet-mem-cache-prune-interval)* |
+| | `--parquet-mem-cache-prune-percentage` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#parquet-mem-cache-prune-percentage)* |
+| | `--parquet-mem-cache-query-path-duration` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#parquet-mem-cache-query-path-duration)* |
+| | `--parquet-mem-cache-size` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#parquet-mem-cache-size)* |
+| | `--permission-tokens-file` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#permission-tokens-file)* |
+| | `--plugin-dir` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#plugin-dir)* |
+| | `--preemptive-cache-age` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#preemptive-cache-age)* |
+| | `--query-file-limit` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#query-file-limit)* |
+| | `--query-log-size` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#query-log-size)* |
+| | `--replication-interval` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#replication-interval)* |
+| | `--retention-check-interval` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#retention-check-interval)* |
+| | `--snapshotted-wal-files-to-keep` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#snapshotted-wal-files-to-keep)* |
+| | `--table-index-cache-concurrency-limit` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#table-index-cache-concurrency-limit)* |
+| | `--table-index-cache-max-entries` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#table-index-cache-max-entries)* |
+| | `--tcp-listener-file-path` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#tcp-listener-file-path)* |
+| | `--telemetry-disable-upload` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#telemetry-disable-upload)* |
+| | `--telemetry-endpoint` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#telemetry-endpoint)* |
+| | `--tls-cert` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#tls-cert)* |
+| | `--tls-key` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#tls-key)* |
+| | `--tls-minimum-version` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#tls-minimum-version)* |
+| | `--traces-exporter` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#traces-exporter)* |
+| | `--traces-exporter-jaeger-agent-host` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#traces-exporter-jaeger-agent-host)* |
+| | `--traces-exporter-jaeger-agent-port` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#traces-exporter-jaeger-agent-port)* |
+| | `--traces-exporter-jaeger-service-name` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#traces-exporter-jaeger-service-name)* |
+| | `--traces-exporter-jaeger-trace-context-header-name` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#traces-exporter-jaeger-trace-context-header-name)* |
+| | `--traces-jaeger-debug-name` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#traces-jaeger-debug-name)* |
+| | `--traces-jaeger-max-msgs-per-second` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#traces-jaeger-max-msgs-per-second)* |
+| | `--traces-jaeger-tags` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#traces-jaeger-tags)* |
+| | `--use-pacha-tree` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#use-pacha-tree)* |
+| | `--virtual-env-location` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#virtual-env-location)* |
+| | `--wait-for-running-ingestor` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#wait-for-running-ingestor)* |
+| | `--wal-flush-interval` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#wal-flush-interval)* |
+| | `--wal-max-write-buffer-size` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#wal-max-write-buffer-size)* |
+| | `--wal-replay-concurrency-limit` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#wal-replay-concurrency-limit)* |
+| | `--wal-replay-fail-on-error` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#wal-replay-fail-on-error)* |
+| | `--wal-snapshot-size` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#wal-snapshot-size)* |
+| | `--without-auth` | *See [configuration options](/influxdb3/enterprise/reference/config-options/#without-auth)* |
### Option environment variables
@@ -170,19 +166,62 @@ You can use environment variables to define most `influxdb3 serve` options.
For more information, see
[Configuration options](/influxdb3/enterprise/reference/config-options/).
+## Quick-Start Mode
+
+For development, testing, and home use, you can start {{< product-name >}} by running `influxdb3` without the `serve` subcommand or any configuration parameters. The system automatically generates required values:
+
+- **`node-id`**: `{hostname}-node` (fallback: `primary-node`)
+- **`cluster-id`**: `{hostname}-cluster` (fallback: `primary-cluster`)
+- **`object-store`**: `file`
+- **`data-dir`**: `~/.influxdb`
+
+The system displays warning messages showing the auto-generated identifiers:
+
+```
+Using auto-generated node id: mylaptop-node. For production deployments, explicitly set --node-id
+Using auto-generated cluster id: mylaptop-cluster. For production deployments, explicitly set --cluster-id
+```
+
+### Quick-start examples
+
+
+
+```bash
+# Zero-config startup
+influxdb3
+
+# Override specific defaults
+influxdb3 --object-store memory
+
+# Use environment variables to override defaults
+INFLUXDB3_NODE_IDENTIFIER_PREFIX=my-node influxdb3
+```
+
+> \[!Important]
+>
+> #### Production deployments
+>
+> Quick-start mode is designed for development and testing environments.
+> For production deployments, use explicit configuration with the `serve` subcommand
+> and specify all required parameters as shown in the [Examples](#examples) below.
+
+**Configuration precedence**: CLI flags > environment variables > auto-generated defaults
+
+For more information about quick-start mode, see [Get started](/influxdb3/enterprise/get-started/setup/#quick-start-mode-development).
+
## Examples
- [Run the InfluxDB 3 server](#run-the-influxdb-3-server)
- [Run the InfluxDB 3 server with extra verbose logging](#run-the-influxdb-3-server-with-extra-verbose-logging)
-- [Run InfluxDB 3 with debug logging using LOG_FILTER](#run-influxdb-3-with-debug-logging-using-log_filter)
+- [Run InfluxDB 3 with debug logging using LOG\_FILTER](#run-influxdb-3-with-debug-logging-using-log_filter)
In the examples below, replace the following:
- {{% code-placeholder-key %}}`my-host-01`{{% /code-placeholder-key %}}:
-a unique string that identifies your {{< product-name >}} server.
+ a unique string that identifies your {{< product-name >}} server.
- {{% code-placeholder-key %}}`my-cluster-01`{{% /code-placeholder-key %}}:
-a unique string that identifies your {{< product-name >}} cluster.
-The value you use must be different from `--node-id` values in the cluster.
+ a unique string that identifies your {{< product-name >}} cluster.
+ The value you use must be different from `--node-id` values in the cluster.
{{% code-placeholders "my-host-01|my-cluster-01" %}}
@@ -237,7 +276,7 @@ influxdb3 serve \
--verbose
```
-### Run InfluxDB 3 with debug logging using LOG_FILTER
+### Run InfluxDB 3 with debug logging using LOG\_FILTER
@@ -251,16 +290,15 @@ LOG_FILTER=debug influxdb3 serve \
{{% /code-placeholders %}}
-
## Troubleshooting
### Common Issues
-- **Error: "cluster-id cannot match any node-id in the cluster"**
+- **Error: "cluster-id cannot match any node-id in the cluster"**\
Ensure your `--cluster-id` value is different from all `--node-id` values in your cluster.
-- **Error: "Failed to connect to object store"**
+- **Error: "Failed to connect to object store"**\
Verify your `--object-store` setting and ensure all required parameters for that storage type are provided.
-- **Permission errors when using S3, Google Cloud, or Azure storage**
+- **Permission errors when using S3, Google Cloud, or Azure storage**\
Check that your authentication credentials are correct and have sufficient permissions.
diff --git a/content/influxdb3/enterprise/reference/cli/influxdb3/show/plugins.md b/content/influxdb3/enterprise/reference/cli/influxdb3/show/plugins.md
new file mode 100644
index 000000000..fce3bc5e5
--- /dev/null
+++ b/content/influxdb3/enterprise/reference/cli/influxdb3/show/plugins.md
@@ -0,0 +1,16 @@
+---
+title: influxdb3 show plugins
+description: >
+ The `influxdb3 show plugins` command lists loaded Processing Engine plugins in your
+ InfluxDB 3 Enterprise server.
+menu:
+ influxdb3_enterprise:
+ parent: influxdb3 show
+ name: influxdb3 show plugins
+weight: 350
+source: /shared/influxdb3-cli/show/plugins.md
+---
+
+
diff --git a/content/influxdb3/enterprise/reference/cli/influxdb3/update/trigger.md b/content/influxdb3/enterprise/reference/cli/influxdb3/update/trigger.md
new file mode 100644
index 000000000..1c532ce41
--- /dev/null
+++ b/content/influxdb3/enterprise/reference/cli/influxdb3/update/trigger.md
@@ -0,0 +1,15 @@
+---
+title: influxdb3 update trigger
+description: >
+ The `influxdb3 update trigger` command updates an existing trigger.
+menu:
+ influxdb3_enterprise:
+ parent: influxdb3 update
+ name: influxdb3 update trigger
+weight: 401
+source: /shared/influxdb3-cli/update/trigger.md
+---
+
+
diff --git a/content/shared/influxdb3-admin/query-system-data/_index.md b/content/shared/influxdb3-admin/query-system-data/_index.md
index c3ef83994..85e1b98fa 100644
--- a/content/shared/influxdb3-admin/query-system-data/_index.md
+++ b/content/shared/influxdb3-admin/query-system-data/_index.md
@@ -1,5 +1,6 @@
-{{% product-name %}} stores data related to the database server, queries, and tables in _system tables_.
+
+{{% product-name %}} stores data related to the database server, queries, and tables in *system tables*.
You can query the system tables for information about your running server, databases, and and table schemas.
## Query system tables
@@ -8,12 +9,13 @@ You can query the system tables for information about your running server, datab
- [Examples](#examples)
- [Show tables](#show-tables)
- [View column information for a table](#view-column-information-for-a-table)
+ - [Recently executed queries](#recently-executed-queries)
+ - [Query plugin files](#query-plugin-files)
-### Use the HTTP query API
+### Use the HTTP query API
Use the HTTP API `/api/v3/query_sql` endpoint to retrieve system information about your database server and table schemas in {{% product-name %}}.
-
To execute a query, send a `GET` or `POST` request to the endpoint:
- `GET`: Pass parameters in the URL query string (for simple queries)
@@ -21,16 +23,17 @@ To execute a query, send a `GET` or `POST` request to the endpoint:
Include the following parameters:
-- `q`: _({{< req >}})_ The SQL query to execute.
-- `db`: _({{< req >}})_ The database to execute the query against.
-- `params`: A JSON object containing parameters to be used in a _parameterized query_.
+- `q`: *({{< req >}})* The SQL query to execute.
+- `db`: *({{< req >}})* The database to execute the query against.
+- `params`: A JSON object containing parameters to be used in a *parameterized query*.
- `format`: The format of the response (`json`, `jsonl`, `csv`, `pretty`, or `parquet`).
JSONL (`jsonl`) is preferred because it streams results back to the client.
`pretty` is for human-readable output. Default is `json`.
#### Examples
-> [!Note]
+> \[!Note]
+>
> #### system\_ sample data
>
> In examples, tables with `"table_name":"system_` are user-created tables for CPU, memory, disk,
@@ -88,8 +91,8 @@ A table has one of the following `table_schema` values:
The following query sends a `POST` request that executes an SQL query to
retrieve information about columns in the sample `system_swap` table schema:
-_Note: when you send a query in JSON, you must escape single quotes
-that surround field names._
+*Note: when you send a query in JSON, you must escape single quotes
+that surround field names.*
```bash
curl "http://localhost:8181/api/v3/query_sql" \
@@ -134,3 +137,58 @@ The output is similar to the following:
{"id":"cdd63409-1822-4e65-8e3a-d274d553dbb3","phase":"success","issue_time":"2025-01-20T17:01:40.690067","query_type":"sql","query_text":"show tables","partitions":0,"parquet_files":0,"plan_duration":"PT0.032689S","permit_duration":"PT0.000202S","execute_duration":"PT0.000223S","end2end_duration":"PT0.033115S","compute_duration":"P0D","max_memory":0,"success":true,"running":false,"cancelled":false}
{"id":"47f8d312-5e75-4db2-837a-6fcf94c09927","phase":"success","issue_time":"2025-01-20T17:02:32.627782","query_type":"sql","query_text":"show tables","partitions":0,"parquet_files":0,"plan_duration":"PT0.000583S","permit_duration":"PT0.000015S","execute_duration":"PT0.000063S","end2end_duration":"PT0.000662S","compute_duration":"P0D","max_memory":0,"success":true,"running":false,"cancelled":false}
```
+
+#### Query plugin files
+
+To view loaded Processing Engine plugins, query the `plugin_files` system table in the `_internal` database.
+
+The `system.plugin_files` table provides information about plugin files loaded by the Processing Engine:
+
+**Columns:**
+
+- `plugin_name` (String): Name of a trigger using this plugin
+- `file_name` (String): Plugin filename
+- `file_path` (String): Full server path to the plugin file
+- `size_bytes` (Int64): File size in bytes
+- `last_modified` (Int64): Last modification timestamp (milliseconds since epoch)
+
+```bash
+curl "http://localhost:8181/api/v3/query_sql" \
+ --header "Authorization: Bearer AUTH_TOKEN" \
+ --json '{
+ "db": "_internal",
+ "q": "SELECT * FROM system.plugin_files",
+ "format": "jsonl"
+ }'
+```
+
+The output is similar to the following:
+
+```jsonl
+{"plugin_name":"my_trigger","file_name":"my_plugin.py","file_path":"/path/to/plugins/my_plugin.py","size_bytes":2048,"last_modified":1704067200000}
+{"plugin_name":"scheduled_trigger","file_name":"scheduler.py","file_path":"/path/to/plugins/scheduler.py","size_bytes":4096,"last_modified":1704153600000}
+```
+
+**Filter plugins by trigger name:**
+
+```bash
+curl "http://localhost:8181/api/v3/query_sql" \
+ --header "Authorization: Bearer AUTH_TOKEN" \
+ --json '{
+ "db": "_internal",
+ "q": "SELECT * FROM system.plugin_files WHERE plugin_name = '"'my_trigger'"'",
+ "format": "jsonl"
+ }'
+```
+
+**Find plugins by file pattern:**
+
+```bash
+curl "http://localhost:8181/api/v3/query_sql" \
+ --header "Authorization: Bearer AUTH_TOKEN" \
+ --json '{
+ "db": "_internal",
+ "q": "SELECT * FROM system.plugin_files WHERE file_name LIKE '"'%scheduler%'"'",
+ "format": "jsonl"
+ }'
+```
diff --git a/content/shared/influxdb3-cli/config-options.md b/content/shared/influxdb3-cli/config-options.md
index 47e75c8f4..9570e2586 100644
--- a/content/shared/influxdb3-cli/config-options.md
+++ b/content/shared/influxdb3-cli/config-options.md
@@ -1,4 +1,5 @@
+
{{< product-name >}} lets you customize your configuration by using
`influxdb3` command options or by setting environment variables.
@@ -17,6 +18,7 @@ Some options are **global** (specified before the command) while others are **se
#### Example command with global and serve-specific options
{{% show-in "core" %}}
+
```sh
@@ -27,9 +29,11 @@ influxdb3 --num-io-threads=4 serve \
--verbose \
--log-filter info
```
+
{{% /show-in %}}
{{% show-in "enterprise" %}}
+
```sh
@@ -42,6 +46,7 @@ influxdb3 --num-io-threads=4 serve \
--verbose \
--log-filter info
```
+
{{% /show-in %}}
##### Example environment variables
@@ -67,7 +72,7 @@ The following options apply to the `influxdb3` CLI globally and must be specifie
Sets the number of threads allocated to the IO runtime thread pool. IO threads handle HTTP request serving, line protocol parsing, and file operations.
-> [!Important]
+> \[!Important]
> `--num-io-threads` is a **global option** that must be specified before the `serve` command.
{{% show-in "enterprise" %}}
@@ -83,16 +88,16 @@ influxdb3 --num-io-threads=8 serve --node-id=node0 --object-store=file
For detailed information about thread allocation, see the [Resource Limits](#resource-limits) section.
{{% /show-in %}}
-| influxdb3 option | Environment variable |
-| :--------------- | :------------------------- |
+| influxdb3 option | Environment variable |
+| :----------------- | :------------------------- |
| `--num-io-threads` | `INFLUXDB3_NUM_IO_THREADS` |
----
+***
## Server configuration options
- [General](#general)
-{{% show-in "enterprise" %}}- [Licensing](#licensing){{% /show-in %}}
+ {{% show-in "enterprise" %}}- [Licensing](#licensing){{% /show-in %}}
- [Security](#security)
- [AWS](#aws)
- [Google Cloud Service](#google-cloud-service)
@@ -107,43 +112,46 @@ For detailed information about thread allocation, see the [Resource Limits](#res
- [Compaction](#compaction)
- [Caching](#caching)
- [Processing Engine](#processing-engine)
-{{% show-in "enterprise" %}}
+ {{% show-in "enterprise" %}}
- [Cluster Management](#cluster-management)
-{{% /show-in %}}
+ {{% /show-in %}}
- [Resource Limits](#resource-limits)
- [Data Lifecycle Management](#data-lifecycle-management)
- [Telemetry](#telemetry)
- [TCP Listeners](#tcp-listeners)
----
+***
### General
{{% show-in "enterprise" %}}
+
- [cluster-id](#cluster-id)
-{{% /show-in %}}
+ {{% /show-in %}}
- [data-dir](#data-dir)
-{{% show-in "enterprise" %}}
+ {{% show-in "enterprise" %}}
- [mode](#mode)
-{{% /show-in %}}
+ {{% /show-in %}}
- [node-id](#node-id)
-{{% show-in "enterprise" %}}
+ {{% show-in "enterprise" %}}
- [node-id-from-env](#node-id-from-env)
-{{% /show-in %}}
+ {{% /show-in %}}
- [object-store](#object-store)
- [query-file-limit](#query-file-limit)
{{% show-in "enterprise" %}}
+
#### cluster-id
-Specifies the cluster identifier that prefixes the object store path for the Enterprise Catalog.
+Specifies the cluster identifier that prefixes the object store path for the Enterprise Catalog.
This value must be different than the [`--node-id`](#node-id) value.
-| influxdb3 serve option | Environment variable |
-| :--------------------- | :--------------------------------- |
-| `--cluster-id` | `INFLUXDB3_ENTERPRISE_CLUSTER_ID` |
+| influxdb3 serve option | Environment variable |
+| :--------------------- | :-------------------------------- |
+| `--cluster-id` | `INFLUXDB3_ENTERPRISE_CLUSTER_ID` |
+
+***
----
{{% /show-in %}}
#### data-dir
@@ -155,16 +163,17 @@ Required when using the `file` [object store](#object-store).
| :--------------------- | :------------------- |
| `--data-dir` | `INFLUXDB3_DB_DIR` |
----
+***
{{% show-in "enterprise" %}}
+
#### mode
Sets the mode to start the server in, allowing you to create specialized nodes in a distributed cluster.
This option supports the following values:
-- `all` _(default)_: Enables all server modes
+- `all` *(default)*: Enables all server modes
- `ingest`: Enables only data ingest capabilities
- `query`: Enables only query capabilities
- `compact`: Enables only compaction processes
@@ -174,7 +183,7 @@ You can specify multiple modes using a comma-delimited list (for example, `inges
**Default:** `all`
-> [!Important]
+> \[!Important]
> **Thread allocation for different modes:**
>
> - **Ingest mode**: Benefits from additional IO threads for line protocol parsing. For high-throughput
@@ -189,6 +198,7 @@ You can specify multiple modes using a comma-delimited list (for example, `inges
> - **All mode**: Requires balanced thread allocation based on your workload mix.
**Example configurations:**
+
```bash
# High-throughput ingest node (32 cores)
influxdb3 --num-io-threads=12 serve --mode=ingest --datafusion-num-threads=20
@@ -204,7 +214,8 @@ influxdb3 --num-io-threads=6 serve --mode=all --datafusion-num-threads=26
| :--------------------- | :-------------------------- |
| `--mode` | `INFLUXDB3_ENTERPRISE_MODE` |
----
+***
+
{{% /show-in %}}
#### node-id
@@ -217,9 +228,10 @@ configuration--for example, the same bucket.
| :--------------------- | :--------------------------------- |
| `--node-id` | `INFLUXDB3_NODE_IDENTIFIER_PREFIX` |
----
+***
{{% show-in "enterprise" %}}
+
#### node-id-from-env
Specifies the node identifier used as a prefix in all object store file paths.
@@ -240,7 +252,8 @@ export DATABASE_NODE=node0 && influxdb3 serve \
--data-dir ~/.influxdb3/data
```
----
+***
+
{{% /show-in %}}
#### object-store
@@ -259,9 +272,10 @@ This option supports the following values:
| :--------------------- | :----------------------- |
| `--object-store` | `INFLUXDB3_OBJECT_STORE` |
----
+***
{{% show-in "enterprise" %}}
+
### Licensing
#### license-email
@@ -274,7 +288,7 @@ This option is mutually exclusive with [license-file](#license-file).
| :--------------------- | :----------------------------------- |
| `--license-email` | `INFLUXDB3_ENTERPRISE_LICENSE_EMAIL` |
----
+***
#### license-file
@@ -282,11 +296,11 @@ Specifies the path to a license file for {{< product-name >}}. When provided, th
file's contents are used instead of requesting a new license.
This option is mutually exclusive with [license-email](#license-email).
-| influxdb3 serve option | Environment variable |
-| :--------------------- | :----------------------------------- |
-| `--license-file` | `INFLUXDB3_ENTERPRISE_LICENSE_FILE` |
+| influxdb3 serve option | Environment variable |
+| :--------------------- | :---------------------------------- |
+| `--license-file` | `INFLUXDB3_ENTERPRISE_LICENSE_FILE` |
----
+***
#### license-type
@@ -297,11 +311,12 @@ interactive license prompt. Provide one of the following license types:
- `trial`
- `commercial`
-| influxdb3 serve option | Environment variable |
-| :--------------------- | :----------------------------------- |
-| `--license-type` | `INFLUXDB3_ENTERPRISE_LICENSE_TYPE` |
+| influxdb3 serve option | Environment variable |
+| :--------------------- | :---------------------------------- |
+| `--license-type` | `INFLUXDB3_ENTERPRISE_LICENSE_TYPE` |
+
+***
----
{{% /show-in %}}
### Security
@@ -313,61 +328,61 @@ interactive license prompt. Provide one of the following license types:
- [disable-authz](#disable-authz)
- [admin-token-recovery-http-bind](#admin-token-recovery-http-bind)
- [admin-token-file](#admin-token-file)
-{{% show-in "enterprise" %}}- [permission-tokens-file](#permission-tokens-file){{% /show-in %}}
+ {{% show-in "enterprise" %}}- [permission-tokens-file](#permission-tokens-file){{% /show-in %}}
#### tls-key
The path to a key file for TLS to be enabled.
-| influxdb3 serve option | Environment variable |
-| :--------------------- | :--------------------- |
-| `--tls-key` | `INFLUXDB3_TLS_KEY` |
+| influxdb3 serve option | Environment variable |
+| :--------------------- | :------------------- |
+| `--tls-key` | `INFLUXDB3_TLS_KEY` |
----
+***
#### tls-cert
The path to a cert file for TLS to be enabled.
-| influxdb3 serve option | Environment variable |
-| :--------------------- | :--------------------- |
-| `--tls-cert` | `INFLUXDB3_TLS_CERT` |
+| influxdb3 serve option | Environment variable |
+| :--------------------- | :------------------- |
+| `--tls-cert` | `INFLUXDB3_TLS_CERT` |
----
+***
#### tls-minimum-version
-The minimum version for TLS.
+The minimum version for TLS.
Valid values are `tls-1.2` or `tls-1.3`.
Default is `tls-1.2`.
-| influxdb3 serve option | Environment variable |
-| :---------------------- | :----------------------- |
+| influxdb3 serve option | Environment variable |
+| :---------------------- | :------------------------------ |
| `--tls-minimum-version` | `INFLUXDB3_TLS_MINIMUM_VERSION` |
----
+***
#### without-auth
Disables authentication for all server actions (CLI commands and API requests).
The server processes all requests without requiring tokens or authentication.
-| influxdb3 serve option | Environment variable |
-| :--------------------- | :---------------------------- |
-| `--without-auth` | `INFLUXDB3_START_WITHOUT_AUTH`|
+| influxdb3 serve option | Environment variable |
+| :--------------------- | :----------------------------- |
+| `--without-auth` | `INFLUXDB3_START_WITHOUT_AUTH` |
----
+***
#### disable-authz
-Optionally disable authz by passing in a comma separated list of resources.
+Optionally disable authz by passing in a comma separated list of resources.
Valid values are `health`, `ping`, and `metrics`.
| influxdb3 serve option | Environment variable |
| :--------------------- | :------------------------ |
| `--disable-authz` | `INFLUXDB3_DISABLE_AUTHZ` |
----
+***
#### admin-token-recovery-http-bind
@@ -375,7 +390,7 @@ Enables an admin token recovery HTTP server on a separate port.
This server allows regenerating lost admin tokens without existing authentication.
The server automatically shuts down after a successful token regeneration.
-> [!Warning]
+> \[!Warning]
> This option creates an unauthenticated endpoint that can regenerate admin tokens.
> Only use this when you have lost access to your admin token and ensure the
> server is only accessible from trusted networks.
@@ -396,7 +411,7 @@ influxdb3 serve --admin-token-recovery-http-bind
influxdb3 create token --admin --regenerate --host http://127.0.0.1:8182
```
----
+***
#### admin-token-file
@@ -412,6 +427,7 @@ Offline admin tokens are defined in a JSON-formatted file.
Use the following command to generate an offline admin token file:
+
```bash { placeholders="./path/to/admin-token.json" }
influxdb3 create token --admin \
--name "example-admin-token" \
@@ -422,6 +438,7 @@ influxdb3 create token --admin \
{{< expand-wrapper >}}
{{% expand "View example offline admin token file" %}}
+
```json
{
"token": "apiv3_0XXXX-xxxXxXxxxXX_OxxxX...",
@@ -429,6 +446,7 @@ influxdb3 create token --admin \
"expiry_millis": 1756400061529
}
```
+
{{% /expand %}}
{{< /expand-wrapper >}}
@@ -449,9 +467,10 @@ influxdb3 create token \
influxdb3 serve --admin-token-file ./path/to/admin-token.json
```
----
+***
{{% show-in "enterprise" %}}
+
#### permission-tokens-file
Specifies an offline permission (resource) tokens file to use if no resource
@@ -481,6 +500,7 @@ influxdb3 create token \
{{< expand-wrapper >}}
{{% expand "View example offline permission tokens file" %}}
+
```json
{
"create_databases": [
@@ -501,10 +521,11 @@ influxdb3 create token \
]
}
```
+
{{% /expand %}}
{{< /expand-wrapper >}}
-> [!Note]
+> \[!Note]
> If you write a new offline permission token to an existing permission token file,
> the command appends the new token to the existing output file.
@@ -527,7 +548,8 @@ influxdb3 create token \
influxdb3 serve --permission-tokens-file ./path/to/tokens.json
```
----
+***
+
{{% /show-in %}}
### AWS
@@ -550,7 +572,7 @@ permission to read from and write to the specified S3 bucket.
| :--------------------- | :------------------- |
| `--aws-access-key-id` | `AWS_ACCESS_KEY_ID` |
----
+***
#### aws-secret-access-key
@@ -561,7 +583,7 @@ goes with the specified access key ID.
| :------------------------ | :---------------------- |
| `--aws-secret-access-key` | `AWS_SECRET_ACCESS_KEY` |
----
+***
#### aws-default-region
@@ -574,7 +596,7 @@ the specified bucket if different from the fallback value.
| :--------------------- | :------------------- |
| `--aws-default-region` | `AWS_DEFAULT_REGION` |
----
+***
#### aws-endpoint
@@ -584,7 +606,7 @@ When using an Amazon S3 compatibility storage service, set this to the endpoint.
| :--------------------- | :------------------- |
| `--aws-endpoint` | `AWS_ENDPOINT` |
----
+***
#### aws-session-token
@@ -595,7 +617,7 @@ handy when using a federated login or SSO and fetching credentials via the UI.
| :--------------------- | :------------------- |
| `--aws-session-token` | `AWS_SESSION_TOKEN` |
----
+***
#### aws-allow-http
@@ -605,7 +627,7 @@ Allows unencrypted HTTP connections to AWS.
| :--------------------- | :------------------- |
| `--aws-allow-http` | `AWS_ALLOW_HTTP` |
----
+***
#### aws-skip-signature
@@ -615,7 +637,7 @@ If enabled, S3 object stores do not fetch credentials and do not sign requests.
| :--------------------- | :------------------- |
| `--aws-skip-signature` | `AWS_SKIP_SIGNATURE` |
----
+***
#### aws-credentials-file
@@ -646,7 +668,7 @@ request.
| :----------------------- | :--------------------- |
| `--aws-credentials-file` | `AWS_CREDENTIALS_FILE` |
----
+***
### Google Cloud Service
@@ -661,7 +683,7 @@ JSON file that contains the Google credentials.
| :------------------------- | :----------------------- |
| `--google-service-account` | `GOOGLE_SERVICE_ACCOUNT` |
----
+***
### Microsoft Azure
@@ -679,7 +701,7 @@ when navigating to **All Services > Storage accounts > `[name]`**.
| :------------------------ | :---------------------- |
| `--azure-storage-account` | `AZURE_STORAGE_ACCOUNT` |
----
+***
#### azure-storage-access-key
@@ -690,7 +712,7 @@ values in the Storage account's **Settings > Access keys**.
| :--------------------------- | :------------------------- |
| `--azure-storage-access-key` | `AZURE_STORAGE_ACCESS_KEY` |
----
+***
#### azure-endpoint
@@ -701,7 +723,7 @@ Storage endpoint.
| :--------------------- | :------------------- |
| `--azure-endpoint` | `AZURE_ENDPOINT` |
----
+***
#### azure-allow-http
@@ -714,7 +736,7 @@ to Azure Blob Storage.
| :--------------------- | :------------------- |
| `--azure-allow-http` | `AZURE_ALLOW_HTTP` |
----
+***
### Object Storage
@@ -735,7 +757,7 @@ Sets the name of the object storage bucket to use. Must also set
| :--------------------- | :------------------- |
| `--bucket` | `INFLUXDB3_BUCKET` |
----
+***
#### object-store-connection-limit
@@ -748,7 +770,7 @@ this value.
| :-------------------------------- | :------------------------------ |
| `--object-store-connection-limit` | `OBJECT_STORE_CONNECTION_LIMIT` |
----
+***
#### object-store-http2-only
@@ -758,7 +780,7 @@ Forces HTTP/2 connections to network-based object stores.
| :-------------------------- | :------------------------ |
| `--object-store-http2-only` | `OBJECT_STORE_HTTP2_ONLY` |
----
+***
#### object-store-http2-max-frame-size
@@ -768,7 +790,7 @@ Sets the maximum frame size (in bytes/octets) for HTTP/2 connections.
| :------------------------------------ | :---------------------------------- |
| `--object-store-http2-max-frame-size` | `OBJECT_STORE_HTTP2_MAX_FRAME_SIZE` |
----
+***
#### object-store-max-retries
@@ -778,7 +800,7 @@ Defines the maximum number of times to retry a request.
| :--------------------------- | :------------------------- |
| `--object-store-max-retries` | `OBJECT_STORE_MAX_RETRIES` |
----
+***
#### object-store-retry-timeout
@@ -789,7 +811,7 @@ further retries are be attempted.
| :----------------------------- | :--------------------------- |
| `--object-store-retry-timeout` | `OBJECT_STORE_RETRY_TIMEOUT` |
----
+***
#### object-store-cache-endpoint
@@ -799,7 +821,7 @@ Sets the endpoint of an S3-compatible, HTTP/2-enabled object store cache.
| :------------------------------ | :---------------------------- |
| `--object-store-cache-endpoint` | `OBJECT_STORE_CACHE_ENDPOINT` |
----
+***
### Logs
@@ -816,7 +838,7 @@ Sets the filter directive for logs.
| :--------------------- | :------------------- |
| `--log-filter` | `LOG_FILTER` |
----
+***
#### log-destination
@@ -824,7 +846,7 @@ Specifies the destination for logs.
This option supports the following values:
-- `stdout` _(default)_
+- `stdout` *(default)*
- `stderr`
**Default:** `stdout`
@@ -833,7 +855,7 @@ This option supports the following values:
| :--------------------- | :------------------- |
| `--log-destination` | `LOG_DESTINATION` |
----
+***
#### log-format
@@ -841,7 +863,7 @@ Defines the message format for logs.
This option supports the following values:
-- `full` _(default)_
+- `full` *(default)*
**Default:** `full`
@@ -849,7 +871,7 @@ This option supports the following values:
| :--------------------- | :------------------- |
| `--log-format` | `LOG_FORMAT` |
----
+***
#### query-log-size
@@ -862,7 +884,7 @@ log before older queries are evicted to make room for new ones.
| :--------------------- | :------------------------- |
| `--query-log-size` | `INFLUXDB3_QUERY_LOG_SIZE` |
----
+***
### Traces
@@ -885,7 +907,7 @@ Sets the type of tracing exporter.
| :--------------------- | :------------------- |
| `--traces-exporter` | `TRACES_EXPORTER` |
----
+***
#### traces-exporter-jaeger-agent-host
@@ -897,7 +919,7 @@ Specifies the Jaeger agent network hostname for tracing.
| :------------------------------------ | :---------------------------------- |
| `--traces-exporter-jaeger-agent-host` | `TRACES_EXPORTER_JAEGER_AGENT_HOST` |
----
+***
#### traces-exporter-jaeger-agent-port
@@ -909,7 +931,7 @@ Defines the Jaeger agent network port for tracing.
| :------------------------------------ | :---------------------------------- |
| `--traces-exporter-jaeger-agent-port` | `TRACES_EXPORTER_JAEGER_AGENT_PORT` |
----
+***
#### traces-exporter-jaeger-service-name
@@ -921,7 +943,7 @@ Sets the Jaeger service name for tracing.
| :-------------------------------------- | :------------------------------------ |
| `--traces-exporter-jaeger-service-name` | `TRACES_EXPORTER_JAEGER_SERVICE_NAME` |
----
+***
#### traces-exporter-jaeger-trace-context-header-name
@@ -933,7 +955,7 @@ Specifies the header name used for passing trace context.
| :--------------------------------------------------- | :------------------------------------------------- |
| `--traces-exporter-jaeger-trace-context-header-name` | `TRACES_EXPORTER_JAEGER_TRACE_CONTEXT_HEADER_NAME` |
----
+***
#### traces-jaeger-debug-name
@@ -945,7 +967,7 @@ Specifies the header name used for force sampling in tracing.
| :--------------------------- | :---------------------------------- |
| `--traces-jaeger-debug-name` | `TRACES_EXPORTER_JAEGER_DEBUG_NAME` |
----
+***
#### traces-jaeger-tags
@@ -955,7 +977,7 @@ Defines a set of `key=value` pairs to annotate tracing spans with.
| :--------------------- | :---------------------------- |
| `--traces-jaeger-tags` | `TRACES_EXPORTER_JAEGER_TAGS` |
----
+***
#### traces-jaeger-max-msgs-per-second
@@ -967,7 +989,7 @@ Specifies the maximum number of messages sent to a Jaeger service per second.
| :------------------------------------ | :---------------------------------- |
| `--traces-jaeger-max-msgs-per-second` | `TRACES_JAEGER_MAX_MSGS_PER_SECOND` |
----
+***
### DataFusion
@@ -994,7 +1016,7 @@ Sets the maximum number of DataFusion runtime threads to use.
| :------------------------- | :--------------------------------- |
| `--datafusion-num-threads` | `INFLUXDB3_DATAFUSION_NUM_THREADS` |
----
+***
#### datafusion-max-parquet-fanout
@@ -1007,7 +1029,7 @@ When multiple parquet files are required in a sorted way
| :-------------------------------- | :---------------------------------------- |
| `--datafusion-max-parquet-fanout` | `INFLUXDB3_DATAFUSION_MAX_PARQUET_FANOUT` |
----
+***
#### datafusion-use-cached-parquet-loader
@@ -1017,7 +1039,7 @@ Uses a cached parquet loader when reading parquet files from the object store.
| :--------------------------------------- | :----------------------------------------------- |
| `--datafusion-use-cached-parquet-loader` | `INFLUXDB3_DATAFUSION_USE_CACHED_PARQUET_LOADER` |
----
+***
#### datafusion-config
@@ -1028,7 +1050,7 @@ Provides custom configuration to DataFusion as a comma-separated list of
| :--------------------- | :---------------------------- |
| `--datafusion-config` | `INFLUXDB3_DATAFUSION_CONFIG` |
----
+***
### HTTP
@@ -1045,7 +1067,7 @@ Specifies the maximum size of HTTP requests.
| :------------------------ | :-------------------------------- |
| `--max-http-request-size` | `INFLUXDB3_MAX_HTTP_REQUEST_SIZE` |
----
+***
#### http-bind
@@ -1057,7 +1079,7 @@ Defines the address on which InfluxDB serves HTTP API requests.
| :--------------------- | :------------------------- |
| `--http-bind` | `INFLUXDB3_HTTP_BIND_ADDR` |
----
+***
### Memory
@@ -1077,7 +1099,7 @@ example: `8000000000` or `10%`.
| :---------------------- | :------------------------------ |
| `--exec-mem-pool-bytes` | `INFLUXDB3_EXEC_MEM_POOL_BYTES` |
----
+***
#### force-snapshot-mem-threshold
@@ -1091,7 +1113,7 @@ percentage (portion of available memory) or absolute value in MB--for example: `
| :------------------------------- | :--------------------------------------- |
| `--force-snapshot-mem-threshold` | `INFLUXDB3_FORCE_SNAPSHOT_MEM_THRESHOLD` |
----
+***
### Write-Ahead Log (WAL)
@@ -1114,7 +1136,7 @@ Use `s` for seconds or `ms` for milliseconds. For local disks, `100 ms` is recom
| :--------------------- | :----------------------------- |
| `--wal-flush-interval` | `INFLUXDB3_WAL_FLUSH_INTERVAL` |
----
+***
#### wal-snapshot-size
@@ -1127,7 +1149,7 @@ multiplied by the interval, determines how often snapshots are taken.
| :--------------------- | :---------------------------- |
| `--wal-snapshot-size` | `INFLUXDB3_WAL_SNAPSHOT_SIZE` |
----
+***
#### wal-max-write-buffer-size
@@ -1140,12 +1162,12 @@ flush must be executed and succeed.
| :---------------------------- | :------------------------------------ |
| `--wal-max-write-buffer-size` | `INFLUXDB3_WAL_MAX_WRITE_BUFFER_SIZE` |
----
+***
#### snapshotted-wal-files-to-keep
Specifies the number of snapshotted WAL files to retain in the object store.
-Flushing the WAL files does not clear the WAL files immediately;
+Flushing the WAL files does not clear the WAL files immediately;
they are deleted when the number of snapshotted WAL files exceeds this number.
**Default:** `300`
@@ -1154,7 +1176,7 @@ they are deleted when the number of snapshotted WAL files exceeds this number.
| :-------------------------------- | :-------------------------------- |
| `--snapshotted-wal-files-to-keep` | `INFLUXDB3_NUM_WAL_FILES_TO_KEEP` |
----
+***
#### wal-replay-fail-on-error
@@ -1162,11 +1184,11 @@ Determines whether WAL replay should fail when encountering errors.
**Default:** `false`
-| influxdb3 serve option | Environment variable |
-| :--------------------------- | :------------------------------------- |
-| `--wal-replay-fail-on-error` | `INFLUXDB3_WAL_REPLAY_FAIL_ON_ERROR` |
+| influxdb3 serve option | Environment variable |
+| :--------------------------- | :----------------------------------- |
+| `--wal-replay-fail-on-error` | `INFLUXDB3_WAL_REPLAY_FAIL_ON_ERROR` |
----
+***
#### wal-replay-concurrency-limit
@@ -1176,25 +1198,28 @@ The default is dynamically determined.
**Default:** `max(num_cpus, 10)`
-| influxdb3 serve option | Environment variable |
-| :--------------------------------- | :------------------------------------------ |
-| `--wal-replay-concurrency-limit` | `INFLUXDB3_WAL_REPLAY_CONCURRENCY_LIMIT` |
+| influxdb3 serve option | Environment variable |
+| :------------------------------- | :--------------------------------------- |
+| `--wal-replay-concurrency-limit` | `INFLUXDB3_WAL_REPLAY_CONCURRENCY_LIMIT` |
----
+***
### Compaction
{{% show-in "enterprise" %}}
+
+
- [compaction-max-num-files-per-plan](#compaction-max-num-files-per-plan)
- [compaction-gen2-duration](#compaction-gen2-duration)
- [compaction-multipliers](#compaction-multipliers)
- [compaction-cleanup-wait](#compaction-cleanup-wait)
- [compaction-check-interval](#compaction-check-interval)
-{{% /show-in %}}
+ {{% /show-in %}}
- [gen1-duration](#gen1-duration)
{{% show-in "enterprise" %}}
+
+
+```bash
+influxdb3 create trigger \
+ --database DATABASE_NAME \
+ --token AUTH_TOKEN \
+ --path "my_complex_plugin" \
+ --trigger-spec "every:5m" \
+ TRIGGER_NAME
+```
+
+The `--path` points to a directory in the server's `plugin-dir` with the following structure:
+
+```
+my_complex_plugin/
+├── __init__.py # Required entry point
+├── processors.py # Supporting modules
+└── utils.py
+```
+
+For more information about multifile plugins, see [Create your plugin file](/influxdb3/version/plugins/#create-your-plugin-file).
+
+### Upload and create a trigger with a local plugin
+
+Upload plugin files from your local machine and create a trigger in a single command. Requires admin token.
+
+
+
+```bash
+# Upload single-file plugin
+influxdb3 create trigger \
+ --database DATABASE_NAME \
+ --token AUTH_TOKEN \
+ --path "/local/path/to/plugin.py" \
+ --upload \
+ --trigger-spec "every:1m" \
+ TRIGGER_NAME
+
+# Upload multifile plugin directory
+influxdb3 create trigger \
+ --database DATABASE_NAME \
+ --token AUTH_TOKEN \
+ --path "/local/path/to/plugin-dir" \
+ --upload \
+ --trigger-spec "table:TABLE_NAME" \
+ TRIGGER_NAME
+```
+
+The `--upload` flag transfers local files to the server's plugin directory. This is useful for:
+
+- Local plugin development and testing
+- Deploying plugins without SSH access
+- Automating plugin deployment
+
+For more information, see [Upload plugins from local machine](/influxdb3/version/plugins/#upload-plugins-from-local-machine).
+
### Create a trigger with additional arguments
```bash
@@ -182,7 +245,7 @@ influxdb3 create trigger \
### Create a disabled trigger
-Create a trigger in a disabled state.
+Create a trigger in a disabled state.
diff --git a/content/shared/influxdb3-cli/show/_index.md b/content/shared/influxdb3-cli/show/_index.md
index eea02dcf0..be2cf6a5d 100644
--- a/content/shared/influxdb3-cli/show/_index.md
+++ b/content/shared/influxdb3-cli/show/_index.md
@@ -1,4 +1,3 @@
-
The `influxdb3 show` command lists resources in your {{< product-name >}} server.
## Usage
@@ -11,13 +10,14 @@ influxdb3 show
## Subcommands
-| 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 |
+| 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 %}} |
+| [plugins](/influxdb3/version/reference/cli/influxdb3/show/plugins/) | List loaded plugins | | |
+| [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 | | |
## Options
diff --git a/content/shared/influxdb3-cli/show/plugins.md b/content/shared/influxdb3-cli/show/plugins.md
new file mode 100644
index 000000000..e0f727a73
--- /dev/null
+++ b/content/shared/influxdb3-cli/show/plugins.md
@@ -0,0 +1,89 @@
+The `influxdb3 show plugins` command lists loaded Processing Engine plugins in your
+{{< product-name >}} server.
+
+## Usage
+
+
+
+```bash
+influxdb3 show plugins [OPTIONS]
+```
+
+## Options
+
+| Option | | Description |
+| :----- | :----------- | :--------------------------------------------------------------------------------------- |
+| `-H` | `--host` | Host URL of the running {{< product-name >}} server (default is `http://127.0.0.1:8181`) |
+| | `--token` | *({{< req >}})* Authentication token |
+| | `--format` | Output format (`pretty` *(default)*, `json`, `jsonl`, `csv`, or `parquet`) |
+| | `--output` | Path where to save output when using the `parquet` format |
+| | `--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 to set command options:
+
+| Environment Variable | Option |
+| :--------------------- | :-------- |
+| `INFLUXDB3_HOST_URL` | `--host` |
+| `INFLUXDB3_AUTH_TOKEN` | `--token` |
+
+## Output
+
+The command returns information about loaded plugin files:
+
+- **plugin\_name**: Name of a trigger using this plugin
+- **file\_name**: Plugin filename
+- **file\_path**: Full server path to the plugin file
+- **size\_bytes**: File size in bytes
+- **last\_modified**: Last modification timestamp (milliseconds since epoch)
+
+> \[!Note]
+> This command queries the `system.plugin_files` table in the `_internal` database.
+> For more advanced queries and filtering, see [Query system data](/influxdb3/version/admin/query-system-data/).
+
+## Examples
+
+- [List all plugins](#list-all-plugins)
+- [List plugins in different output formats](#list-plugins-in-different-output-formats)
+- [Output plugins to a Parquet file](#output-plugins-to-a-parquet-file)
+
+### List all plugins
+
+
+
+```bash
+influxdb3 show plugins
+```
+
+### List plugins in different output formats
+
+You can specify the output format using the `--format` option:
+
+
+
+```bash
+# JSON format
+influxdb3 show plugins --format json
+
+# JSON Lines format
+influxdb3 show plugins --format jsonl
+
+# CSV format
+influxdb3 show plugins --format csv
+```
+
+### Output plugins to a Parquet file
+
+[Parquet](https://parquet.apache.org/) is a binary format.
+Use the `--output` option to specify the file where you want to save the Parquet data.
+
+
+
+```bash
+influxdb3 show plugins \
+ --format parquet \
+ --output /Users/me/plugins.parquet
+```
diff --git a/content/shared/influxdb3-cli/update/_index.md b/content/shared/influxdb3-cli/update/_index.md
index afe2a22db..996a7932c 100644
--- a/content/shared/influxdb3-cli/update/_index.md
+++ b/content/shared/influxdb3-cli/update/_index.md
@@ -1,4 +1,4 @@
-The `influxdb3 update` command updates resources such as databases and tables.
+The `influxdb3 update` command updates resources in your {{< product-name >}} instance.
## Usage
@@ -11,23 +11,27 @@ influxdb3 update
## 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 %}}
+
+| Subcommand | Description |
+| :---------------------------------------------------------------------- | :--------------------------------------------- |
+| [database](/influxdb3/version/reference/cli/influxdb3/update/database/) | Update a database |
+| [table](/influxdb3/version/reference/cli/influxdb3/update/table/) | Update a table |
+| [trigger](/influxdb3/version/reference/cli/influxdb3/update/trigger/) | Update a trigger |
+| 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 %}}
+
+| Subcommand | Description |
+| :---------------------------------------------------------------------- | :--------------------------------------------- |
+| [database](/influxdb3/version/reference/cli/influxdb3/update/database/) | Update a database |
+| [trigger](/influxdb3/version/reference/cli/influxdb3/update/trigger/) | Update a trigger |
+| 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 |
\ No newline at end of file
+| | `--help-all` | Print detailed help information |
diff --git a/content/shared/influxdb3-cli/update/trigger.md b/content/shared/influxdb3-cli/update/trigger.md
new file mode 100644
index 000000000..fce8f7ca3
--- /dev/null
+++ b/content/shared/influxdb3-cli/update/trigger.md
@@ -0,0 +1,174 @@
+The `influxdb3 update trigger` command updates an existing trigger in your {{< product-name >}} instance.
+
+Use this command to update trigger plugin code, configuration, or behavior without recreating the trigger. This preserves trigger history and configuration while allowing you to iterate on plugin development.
+
+## Usage
+
+
+
+```bash
+influxdb3 update trigger [OPTIONS] \
+ --database \
+ --trigger-name
+```
+
+## Arguments
+
+- **`DATABASE_NAME`**: (Required) The name of the database containing the trigger.
+- **`TRIGGER_NAME`**: (Required) The name of the trigger 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` | *({{< req >}})* Name of the database containing the trigger |
+| | `--trigger-name` | *({{< req >}})* Name of the trigger to update |
+| `-p` | `--path` | Path to plugin file or directory (single `.py` file or directory containing `__init__.py` for multifile plugins). Can be local path (with `--upload`) or server path. |
+| | `--upload` | Upload local plugin files to the server. Requires admin token. Use with `--path` to specify local files. |
+| | `--trigger-arguments` | Additional arguments for the trigger, in the format `key=value`, separated by commas (for example, `arg1=val1,arg2=val2`) |
+| | `--disabled` | Set the trigger state to disabled |
+| | `--enabled` | Set the trigger state to enabled |
+| | `--error-behavior` | Error handling behavior: `log`, `retry`, or `disable` |
+| | `--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
+
+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 triggers in different scenarios.
+
+- [Update trigger plugin code](#update-trigger-plugin-code)
+- [Upload and update with a local plugin](#upload-and-update-with-a-local-plugin)
+- [Update trigger arguments](#update-trigger-arguments)
+- [Enable or disable a trigger](#enable-or-disable-a-trigger)
+- [Update error handling behavior](#update-error-handling-behavior)
+
+***
+
+Replace the following placeholders with your values:
+
+- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: Database name
+- {{% code-placeholder-key %}}`AUTH_TOKEN`{{% /code-placeholder-key %}}: Authentication token
+- {{% code-placeholder-key %}}`TRIGGER_NAME`{{% /code-placeholder-key %}}: Name of the trigger to update
+
+{{% code-placeholders "(DATABASE|TRIGGER)\_NAME|AUTH\_TOKEN" %}}
+
+### Update trigger plugin code
+
+Update a trigger to use modified plugin code from the server's plugin directory.
+
+
+
+```bash
+influxdb3 update trigger \
+ --database DATABASE_NAME \
+ --trigger-name TRIGGER_NAME \
+ --path "my_plugin.py" \
+ --token AUTH_TOKEN
+```
+
+### Upload and update with a local plugin
+
+Upload new plugin code from your local machine and update the trigger in a single operation. Requires admin token.
+
+
+
+```bash
+# Upload single-file plugin
+influxdb3 update trigger \
+ --database DATABASE_NAME \
+ --trigger-name TRIGGER_NAME \
+ --path "/local/path/to/updated_plugin.py" \
+ --upload \
+ --token AUTH_TOKEN
+
+# Upload multifile plugin directory
+influxdb3 update trigger \
+ --database DATABASE_NAME \
+ --trigger-name TRIGGER_NAME \
+ --path "/local/path/to/plugin_directory" \
+ --upload \
+ --token AUTH_TOKEN
+```
+
+The `--upload` flag transfers local files to the server's plugin directory, making it easy to iterate on plugin development without manual file copying.
+
+### Update trigger arguments
+
+Modify the arguments passed to a trigger's plugin code.
+
+
+
+```bash
+influxdb3 update trigger \
+ --database DATABASE_NAME \
+ --trigger-name TRIGGER_NAME \
+ --trigger-arguments threshold=100,window=5m \
+ --token AUTH_TOKEN
+```
+
+### Enable or disable a trigger
+
+Change the trigger's enabled state without modifying other configuration.
+
+
+
+```bash
+# Disable a trigger
+influxdb3 update trigger \
+ --database DATABASE_NAME \
+ --trigger-name TRIGGER_NAME \
+ --disabled \
+ --token AUTH_TOKEN
+
+# Enable a trigger
+influxdb3 update trigger \
+ --database DATABASE_NAME \
+ --trigger-name TRIGGER_NAME \
+ --enabled \
+ --token AUTH_TOKEN
+```
+
+### Update error handling behavior
+
+Change how the trigger responds to errors.
+
+
+
+```bash
+# Log errors without retrying
+influxdb3 update trigger \
+ --database DATABASE_NAME \
+ --trigger-name TRIGGER_NAME \
+ --error-behavior log \
+ --token AUTH_TOKEN
+
+# Retry on errors
+influxdb3 update trigger \
+ --database DATABASE_NAME \
+ --trigger-name TRIGGER_NAME \
+ --error-behavior retry \
+ --token AUTH_TOKEN
+
+# Disable trigger on error
+influxdb3 update trigger \
+ --database DATABASE_NAME \
+ --trigger-name TRIGGER_NAME \
+ --error-behavior disable \
+ --token AUTH_TOKEN
+```
+
+{{% /code-placeholders %}}
diff --git a/content/shared/influxdb3-get-started/setup.md b/content/shared/influxdb3-get-started/setup.md
index 3024c6f74..a47912c36 100644
--- a/content/shared/influxdb3-get-started/setup.md
+++ b/content/shared/influxdb3-get-started/setup.md
@@ -1,11 +1,13 @@
+
- [Prerequisites](#prerequisites)
+- [Quick-Start Mode (Development)](#quick-start-mode-development)
- [Start InfluxDB](#start-influxdb)
- [Object store examples](#object-store-examples)
-{{% show-in "enterprise" %}}
+ {{% show-in "enterprise" %}}
- [Set up licensing](#set-up-licensing)
- [Available license types](#available-license-types)
-{{% /show-in %}}
+ {{% /show-in %}}
- [Set up authorization](#set-up-authorization)
- [Create an operator token](#create-an-operator-token)
- [Set your token for authorization](#set-your-token-for-authorization)
@@ -21,6 +23,62 @@ To get started, you'll need:
- A directory on your local disk where you can persist data (used by examples in this guide)
- S3-compatible object store and credentials
+## Quick-Start Mode (Development)
+
+For development, testing, and home use, you can start {{% product-name %}} without
+any arguments. The system automatically generates required configuration values
+based on your system's hostname:
+
+```bash
+influxdb3
+```
+
+When you run `influxdb3` without arguments, the following values are auto-generated:
+
+{{% show-in "enterprise" %}}
+
+- **`node-id`**: `{hostname}-node` (or `primary-node` if hostname is unavailable)
+- **`cluster-id`**: `{hostname}-cluster` (or `primary-cluster` if hostname is unavailable)
+ {{% /show-in %}}
+ {{% show-in "core" %}}
+- **`node-id`**: `{hostname}-node` (or `primary-node` if hostname is unavailable)
+ {{% /show-in %}}
+- **`object-store`**: `file`
+- **`data-dir`**: `~/.influxdb`
+
+The system displays warning messages showing the auto-generated identifiers:
+
+{{% show-in "enterprise" %}}
+
+```
+Using auto-generated node id: mylaptop-node. For production deployments, explicitly set --node-id
+Using auto-generated cluster id: mylaptop-cluster. For production deployments, explicitly set --cluster-id
+```
+
+{{% /show-in %}}
+{{% show-in "core" %}}
+
+```
+Using auto-generated node id: mylaptop-node. For production deployments, explicitly set --node-id
+```
+
+{{% /show-in %}}
+
+> \[!Important]
+>
+> #### When to use quick-start mode
+>
+> Quick-start mode is designed for development, testing, and home lab environments
+> where simplicity is prioritized over explicit configuration.
+>
+> **For production deployments**, use explicit configuration values with the
+> [`influxdb3 serve` command](/influxdb3/version/reference/cli/influxdb3/serve/)
+> as shown in the [Start InfluxDB](#start-influxdb) section below.
+
+**Configuration precedence**: Environment variables override auto-generated defaults.
+For example, if you set `INFLUXDB3_NODE_IDENTIFIER_PREFIX=my-node`, the system
+uses `my-node` instead of generating `{hostname}-node`.
+
## Start InfluxDB
Use the [`influxdb3 serve` command](/influxdb3/version/reference/cli/influxdb3/serve/)
@@ -28,24 +86,28 @@ to start {{% product-name %}}.
Provide the following:
{{% show-in "enterprise" %}}
+
- `--node-id`: A string identifier that distinguishes individual server
instances within the cluster. This forms the final part of the storage path:
`//`.
In a multi-node setup, this ID is used to reference specific nodes.
+
- `--cluster-id`: A string identifier that determines part of the storage path
hierarchy. All nodes within the same cluster share this identifier.
The storage path follows the pattern `//`.
In a multi-node setup, this ID is used to reference the entire cluster.
-{{% /show-in %}}
-{{% show-in "core" %}}
+ {{% /show-in %}}
+ {{% show-in "core" %}}
+
- `--node-id`: A string identifier that distinguishes individual server instances.
This forms the final part of the storage path: `/`.
-{{% /show-in %}}
+ {{% /show-in %}}
+
- `--object-store`: Specifies the type of object store to use.
InfluxDB supports the following:
-
- - `file`: local file system
- - `memory`: in memory _(no object persistence)_
+
+ - `file`: local file system
+ - `memory`: in memory *(no object persistence)*
- `memory-throttled`: like `memory` but with latency and throughput that
somewhat resembles a cloud-based object store
- `s3`: AWS S3 and S3-compatible services like Ceph or Minio
@@ -55,14 +117,15 @@ Provide the following:
- Other object store parameters depending on the selected `object-store` type.
For example, if you use `s3`, you must provide the bucket name and credentials.
-> [!Note]
+> \[!Note]
+>
> #### Diskless architecture
>
> InfluxDB 3 supports a diskless architecture that can operate with object
> storage alone, eliminating the need for locally attached disks.
-> {{% product-name %}} can also work with only local disk storage when needed.
+> {{% product-name %}} can also work with only local disk storage when needed.
>
-> {{% show-in "enterprise" %}}
+> {{% show-in "enterprise" %}}
> The combined path structure `//` ensures
> proper organization of data in your object store, allowing for clean
> separation between clusters and individual nodes.
@@ -72,6 +135,7 @@ For this getting started guide, use the `file` object store to persist data to
your local disk.
{{% show-in "enterprise" %}}
+
```bash
# File system object store
# Provide the filesystem directory
@@ -81,8 +145,10 @@ influxdb3 serve \
--object-store file \
--data-dir ~/.influxdb3
```
+
{{% /show-in %}}
{{% show-in "core" %}}
+
```bash
# File system object store
# Provide the file system directory
@@ -91,6 +157,7 @@ influxdb3 serve \
--object-store file \
--data-dir ~/.influxdb3
```
+
{{% /show-in %}}
### Object store examples
@@ -104,6 +171,7 @@ This is the default object store type.
Replace the following with your values:
{{% show-in "enterprise" %}}
+
```bash
# Filesystem object store
# Provide the filesystem directory
@@ -113,8 +181,10 @@ influxdb3 serve \
--object-store file \
--data-dir ~/.influxdb3
```
+
{{% /show-in %}}
{{% show-in "core" %}}
+
```bash
# File system object store
# Provide the file system directory
@@ -123,6 +193,7 @@ influxdb3 serve \
--object-store file \
--data-dir ~/.influxdb3
```
+
{{% /show-in %}}
{{% /expand %}}
@@ -136,7 +207,9 @@ provide the following options with your `docker run` command:
- `--object-store file --data-dir /path/in/container`: Uses the volume for object storage
{{% show-in "enterprise" %}}
+
+
```bash
# File system object store with Docker
# Create a mount
@@ -149,9 +222,12 @@ docker run -it \
--object-store file \
--data-dir /path/in/container
```
+
{{% /show-in %}}
{{% show-in "core" %}}
+
+
```bash
# File system object store with Docker
# Create a mount
@@ -163,10 +239,11 @@ docker run -it \
--object-store file \
--data-dir /path/in/container
```
+
{{% /show-in %}}
-> [!Note]
->
+> \[!Note]
+>
> The {{% product-name %}} Docker image exposes port `8181`, the `influxdb3`
> server default for HTTP connections.
> To map the exposed port to a different port when running a container, see the
@@ -175,8 +252,9 @@ docker run -it \
{{% /expand %}}
{{% expand "Docker compose with a mounted file system object store" %}}
Open `compose.yaml` for editing and add a `services` entry for
- {{% product-name %}}--for example:
+{{% product-name %}}--for example:
{{% show-in "enterprise" %}}
+
```yaml
# compose.yaml
services:
@@ -206,11 +284,13 @@ services:
# Path to store plugins in the container
target: /var/lib/influxdb3/plugins
```
- Replace `EMAIL_ADDRESS` with your email address to bypass the email prompt
- when generating a trial or at-home license. For more information, see [Manage your
- {{% product-name %}} license](/influxdb3/version/admin/license/).
+
+Replace `EMAIL_ADDRESS` with your email address to bypass the email prompt
+when generating a trial or at-home license. For more information, see [Manage your
+{{% product-name %}} license](/influxdb3/version/admin/license/).
{{% /show-in %}}
{{% show-in "core" %}}
+
```yaml
# compose.yaml
services:
@@ -237,11 +317,13 @@ services:
# Path to store plugins in the container
target: /var/lib/influxdb3/plugins
```
+
{{% /show-in %}}
Use the Docker Compose CLI to start the server--for example:
+
```bash
docker compose pull && docker compose up influxdb3-{{< product-key >}}
```
@@ -250,7 +332,8 @@ The command pulls the latest {{% product-name %}} Docker image and starts
`influxdb3` in a container with host port `8181` mapped to container port
`8181`, the server default for HTTP connections.
-> [!Tip]
+> \[!Tip]
+>
> #### Custom port mapping
>
> To customize your `influxdb3` server hostname and port, specify the
@@ -267,6 +350,7 @@ This is useful for production deployments that require high availability and dur
Provide your bucket name and credentials to access the S3 object store.
{{% show-in "enterprise" %}}
+
```bash
# S3 object store (default is the us-east-1 region)
# Specify the object store type and associated options
@@ -293,8 +377,10 @@ influxdb3 serve \
--aws-endpoint ENDPOINT \
--aws-allow-http
```
+
{{% /show-in %}}
{{% show-in "core" %}}
+
```bash
# S3 object store (default is the us-east-1 region)
# Specify the object store type and associated options
@@ -319,6 +405,7 @@ influxdb3 serve \
--aws-endpoint ENDPOINT \
--aws-allow-http
```
+
{{% /show-in %}}
{{% /expand %}}
@@ -328,6 +415,7 @@ Store data in RAM without persisting it on shutdown.
It's useful for rapid testing and development.
{{% show-in "enterprise" %}}
+
```bash
# Memory object store
# Stores data in RAM; doesn't persist data
@@ -336,8 +424,10 @@ influxdb3 serve \
--cluster-id cluster01 \
--object-store memory
```
+
{{% /show-in %}}
{{% show-in "core" %}}
+
```bash
# Memory object store
# Stores data in RAM; doesn't persist data
@@ -345,6 +435,7 @@ influxdb3 serve \
--node-id host01 \
--object-store memory
```
+
{{% /show-in %}}
{{% /expand %}}
@@ -358,6 +449,7 @@ influxdb3 serve --help
```
{{% show-in "enterprise" %}}
+
## Set up licensing
When you first start a new instance, {{% product-name %}} prompts you to select a
@@ -375,27 +467,29 @@ InfluxDB 3 Enterprise licenses:
- **At-Home**: For at-home hobbyist use with limited access to InfluxDB 3 Enterprise capabilities.
- **Commercial**: Commercial license with full access to InfluxDB 3 Enterprise capabilities.
-> [!Important]
+> \[!Important]
+>
> #### Trial and at-home licenses with Docker
>
> To generate the trial or home license in Docker, bypass the email prompt.
> The first time you start a new instance, provide your email address with the
> `--license-email` option or the `INFLUXDB3_ENTERPRISE_LICENSE_EMAIL` environment variable.
>
-> _Currently, if you use Docker and enter your email address in the prompt, a bug may
-> prevent the container from generating the license ._
+> *Currently, if you use Docker and enter your email address in the prompt, a bug may
+> prevent the container from generating the license .*
>
> For more information, see [the Docker Compose example](/influxdb3/enterprise/admin/license/?t=Docker+compose#start-the-server-with-your-license-email).
-{{% /show-in %}}
+> {{% /show-in %}}
-> [!Tip]
+> \[!Tip]
+>
> #### Use the InfluxDB 3 Explorer query interface
>
> You can complete the remaining steps in this guide using InfluxDB 3 Explorer,
> the web-based query and administrative interface for InfluxDB 3.
> Explorer provides visual management of databases and tokens and an
> easy way to write and query your time series data.
->
+>
> For more information, see the [InfluxDB 3 Explorer documentation](/influxdb3/explorer/).
## Set up authorization
@@ -416,17 +510,17 @@ commands and HTTP API requests.
database
- A system token grants read access to system information endpoints and
metrics for the server
-{{% /show-in %}}
-{{% show-in "core" %}}
-{{% product-name %}} supports _admin_ tokens, which grant access to all CLI actions and API endpoints.
-{{% /show-in %}}
+ {{% /show-in %}}
+ {{% show-in "core" %}}
+ {{% product-name %}} supports *admin* tokens, which grant access to all CLI actions and API endpoints.
+ {{% /show-in %}}
For more information about tokens and authorization, see [Manage tokens](/influxdb3/version/admin/tokens/).
### Create an operator token
After you start the server, create your first admin token.
-The first admin token you create is the _operator_ token for the server.
+The first admin token you create is the *operator* token for the server.
Use the [`influxdb3 create token` command](/influxdb3/version/reference/cli/influxdb3/create/token/)
with the `--admin` option to create your operator token:
@@ -445,11 +539,13 @@ influxdb3 create token --admin
{{% /code-tab-content %}}
{{% code-tab-content %}}
-{{% code-placeholders "CONTAINER_NAME" %}}
+{{% code-placeholders "CONTAINER\_NAME" %}}
+
```bash
# With Docker — in a new terminal:
docker exec -it CONTAINER_NAME influxdb3 create token --admin
```
+
{{% /code-placeholders %}}
Replace {{% code-placeholder-key %}}`CONTAINER_NAME`{{% /code-placeholder-key %}} with the name of your running Docker container.
@@ -459,9 +555,10 @@ Replace {{% code-placeholder-key %}}`CONTAINER_NAME`{{% /code-placeholder-key %}
The command returns a token string for authenticating CLI commands and API requests.
-> [!Important]
+> \[!Important]
+>
> #### Store your token securely
->
+>
> InfluxDB displays the token string only when you create it.
> Store your token securely—you cannot retrieve it from the database later.
@@ -486,10 +583,12 @@ In your command, replace {{% code-placeholder-key %}}`YOUR_AUTH_TOKEN`{{% /code-
Set the `INFLUXDB3_AUTH_TOKEN` environment variable to have the CLI use your
token automatically:
-{{% code-placeholders "YOUR_AUTH_TOKEN" %}}
+{{% code-placeholders "YOUR\_AUTH\_TOKEN" %}}
+
```bash
export INFLUXDB3_AUTH_TOKEN=YOUR_AUTH_TOKEN
```
+
{{% /code-placeholders %}}
{{% /tab-content %}}
@@ -497,10 +596,12 @@ export INFLUXDB3_AUTH_TOKEN=YOUR_AUTH_TOKEN
Include the `--token` option with CLI commands:
-{{% code-placeholders "YOUR_AUTH_TOKEN" %}}
+{{% code-placeholders "YOUR\_AUTH\_TOKEN" %}}
+
```bash
influxdb3 show databases --token YOUR_AUTH_TOKEN
```
+
{{% /code-placeholders %}}
{{% /tab-content %}}
@@ -508,37 +609,41 @@ influxdb3 show databases --token YOUR_AUTH_TOKEN
For HTTP API requests, include your token in the `Authorization` header--for example:
-{{% code-placeholders "YOUR_AUTH_TOKEN" %}}
+{{% code-placeholders "YOUR\_AUTH\_TOKEN" %}}
+
```bash
curl "http://{{< influxdb/host >}}/api/v3/configure/database" \
--header "Authorization: Bearer YOUR_AUTH_TOKEN"
```
+
{{% /code-placeholders %}}
#### Learn more about tokens and permissions
- [Manage admin tokens](/influxdb3/version/admin/tokens/admin/) - Understand and
manage operator and named admin tokens
-{{% show-in "enterprise" %}}
+ {{% show-in "enterprise" %}}
- [Manage resource tokens](/influxdb3/version/admin/tokens/resource/) - Create,
list, and delete resource tokens
-{{% /show-in %}}
+ {{% /show-in %}}
- [Authentication](/influxdb3/version/reference/internals/authentication/) -
Understand authentication, authorizations, and permissions in {{% product-name %}}
+
+
{{% show-in "core" %}}
{{% page-nav
- prev="/influxdb3/version/get-started/"
- prevText="Get started"
- next="/influxdb3/version/get-started/write/"
- nextText="Write data"
+prev="/influxdb3/version/get-started/"
+prevText="Get started"
+next="/influxdb3/version/get-started/write/"
+nextText="Write data"
%}}
{{% /show-in %}}
{{% show-in "enterprise" %}}
{{% page-nav
- prev="/influxdb3/version/get-started/"
- prevText="Get started"
- next="/influxdb3/version/get-started/multi-server/"
- nextText="Create a multi-node cluster"
+prev="/influxdb3/version/get-started/"
+prevText="Get started"
+next="/influxdb3/version/get-started/multi-server/"
+nextText="Create a multi-node cluster"
%}}
{{% /show-in %}}
diff --git a/content/shared/influxdb3-plugins/_index.md b/content/shared/influxdb3-plugins/_index.md
index 754115f31..8ac6f9d7b 100644
--- a/content/shared/influxdb3-plugins/_index.md
+++ b/content/shared/influxdb3-plugins/_index.md
@@ -1,8 +1,8 @@
-Use the Processing Engine in {{% product-name %}} to extend your database with custom Python code. Trigger your code on write, on a schedule, or on demand to automate workflows, transform data, and create API endpoints.
+Use the Processing Engine in {{% product-name %}} to extend your database with custom Python code. Trigger your code on write, on a schedule, or on demand to automate workflows, transform data, and create API endpoints.
## What is the Processing Engine?
-The Processing Engine is an embedded Python virtual machine that runs inside your {{% product-name %}} database. You configure _triggers_ to run your Python _plugin_ code in response to:
+The Processing Engine is an embedded Python virtual machine that runs inside your {{% product-name %}} database. You configure *triggers* to run your Python *plugin* code in response to:
- **Data writes** - Process and transform data as it enters the database
- **Scheduled events** - Run code at defined intervals or specific times
@@ -14,7 +14,8 @@ This guide walks you through setting up the Processing Engine, creating your fir
## Before you begin
-Ensure you have:
+Ensure you have:
+
- A working {{% product-name %}} instance
- Access to command line
- Python installed if you're writing your own plugin
@@ -24,21 +25,27 @@ Once you have all the prerequisites in place, follow these steps to implement th
- [Set up the Processing Engine](#set-up-the-processing-engine)
- [Add a Processing Engine plugin](#add-a-processing-engine-plugin)
+ - [Upload plugins from local machine](#upload-plugins-from-local-machine)
+ - [Update existing plugins](#update-existing-plugins)
+ - [View loaded plugins](#view-loaded-plugins)
- [Set up a trigger](#set-up-a-trigger)
- [Manage plugin dependencies](#manage-plugin-dependencies)
-{{% show-in "enterprise" %}}
+- [Plugin security](#plugin-security)
+ {{% show-in "enterprise" %}}
- [Distributed cluster considerations](#distributed-cluster-considerations)
-{{% /show-in %}}
+ {{% /show-in %}}
## Set up the Processing Engine
To activate the Processing Engine, start your {{% product-name %}} server with the `--plugin-dir` flag. This flag tells InfluxDB where to load your plugin files.
-> [!Important]
+> \[!Important]
+>
> #### Keep the influxdb3 binary with its python directory
>
-> The influxdb3 binary requires the adjacent `python/` directory to function.
+> The influxdb3 binary requires the adjacent `python/` directory to function.
> If you manually extract from tar.gz, keep them in the same parent directory:
+>
> ```
> your-install-location/
> ├── influxdb3
@@ -47,7 +54,7 @@ To activate the Processing Engine, start your {{% product-name %}} server with t
>
> Add the parent directory to your PATH; do not move the binary out of this directory.
-{{% code-placeholders "NODE_ID|OBJECT_STORE_TYPE|PLUGIN_DIR" %}}
+{{% code-placeholders "NODE\_ID|OBJECT\_STORE\_TYPE|PLUGIN\_DIR" %}}
```bash
influxdb3 serve \
@@ -64,11 +71,12 @@ In the example above, replace the following:
- {{% code-placeholder-key %}}`OBJECT_STORE_TYPE`{{% /code-placeholder-key %}}: Type of object store (for example, file or s3)
- {{% code-placeholder-key %}}`PLUGIN_DIR`{{% /code-placeholder-key %}}: Absolute path to the directory where plugin files are stored. Store all plugin files in this directory or its subdirectories.
-> [!Note]
+> \[!Note]
+>
> #### Use custom plugin repositories
>
> By default, plugins referenced with the `gh:` prefix are fetched from the official
-> [influxdata/influxdb3_plugins](https://github.com/influxdata/influxdb3_plugins) repository.
+> [influxdata/influxdb3\_plugins](https://github.com/influxdata/influxdb3_plugins) repository.
> To use a custom repository, add the `--plugin-repo` flag when starting the server.
> See [Use a custom plugin repository](#option-3-use-a-custom-plugin-repository) for details.
@@ -84,7 +92,8 @@ When running {{% product-name %}} in a distributed setup, follow these steps to
3. Maintain identical plugin files across all instances where plugins run
- Use shared storage or file synchronization tools to keep plugins consistent
-> [!Note]
+> \[!Note]
+>
> #### Provide plugins to nodes that run them
>
> Configure your plugin directory on the same system as the nodes that run the triggers and plugins.
@@ -95,7 +104,7 @@ For more information about configuring distributed environments, see the [Distri
## 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.
+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.
### Choose a plugin strategy
@@ -110,13 +119,13 @@ InfluxData maintains a repository of official and community plugins that you can
Browse the [plugin library](/influxdb3/version/plugins/library/) to find examples and InfluxData official plugins for:
- - **Data transformation**: Process and transform incoming data
- - **Alerting**: Send notifications based on data thresholds
- - **Aggregation**: Calculate statistics on time series data
- - **Integration**: Connect to external services and APIs
- - **System monitoring**: Track resource usage and health metrics
+- **Data transformation**: Process and transform incoming data
+- **Alerting**: Send notifications based on data thresholds
+- **Aggregation**: Calculate statistics on time series data
+- **Integration**: Connect to external services and APIs
+- **System monitoring**: Track resource usage and health metrics
-For community contributions, see the [influxdb3_plugins repository](https://github.com/influxdata/influxdb3_plugins) on GitHub.
+For community contributions, see the [influxdb3\_plugins repository](https://github.com/influxdata/influxdb3_plugins) on GitHub.
#### Add example plugins
@@ -189,17 +198,17 @@ influxdb3 create trigger \
The `--plugin-repo` option accepts any HTTP/HTTPS URL that serves raw plugin files.
See the [plugin-repo configuration option](/influxdb3/version/reference/config-options/#plugin-repo) for more details.
-Plugins have various functions such as:
+Plugins have various functions such as:
- Receive plugin-specific arguments (such as written data, call time, or an HTTP request)
-- Access keyword arguments (as `args`) passed from _trigger arguments_ configurations
+- Access keyword arguments (as `args`) passed from *trigger arguments* configurations
- Access the `influxdb3_local` shared API to write data, query data, and managing state between executions
-For more information about available functions, arguments, and how plugins interact with InfluxDB, see how to [Extend plugins](/influxdb3/version/extend-plugin/).
+For more information about available functions, arguments, and how plugins interact with InfluxDB, see how to [Extend plugins](/influxdb3/version/extend-plugin/).
### Create a custom plugin
-To build custom functionality, you can create your own Processing Engine plugin.
+To build custom functionality, you can create your own Processing Engine plugin.
#### Prerequisites
@@ -227,10 +236,53 @@ Choose a plugin type based on your automation goals:
#### Create your plugin file
+Plugins now support both single-file and multifile architectures:
+
+**Single-file plugins:**
+
- Create a `.py` file in your plugins directory
- Add the appropriate function signature based on your chosen plugin type
- Write your processing logic inside the function
+**Multifile plugins:**
+
+- Create a directory in your plugins directory
+- Add an `__init__.py` file as the entry point (required)
+- Organize supporting modules in additional `.py` files
+- Import and use modules within your plugin code
+
+##### Example multifile plugin structure
+
+```
+my_plugin/
+├── __init__.py # Required - entry point with trigger function
+├── utils.py # Supporting module
+├── processors.py # Data processing functions
+└── config.py # Configuration helpers
+```
+
+The `__init__.py` file must contain your trigger function:
+
+```python
+# my_plugin/__init__.py
+from .processors import process_data
+from .config import get_settings
+
+def process_writes(influxdb3_local, table_batches, args=None):
+ settings = get_settings()
+ for table_batch in table_batches:
+ process_data(influxdb3_local, table_batch, settings)
+```
+
+Supporting modules can contain helper functions:
+
+```python
+# my_plugin/processors.py
+def process_data(influxdb3_local, table_batch, settings):
+ # Processing logic here
+ pass
+```
+
After writing your plugin, [create a trigger](#use-the-create-trigger-command) to connect it to a database event and define when it runs.
#### Create a data write plugin
@@ -313,21 +365,141 @@ After writing your plugin:
- [Install any Python dependencies](#manage-plugin-dependencies) your plugin requires
- Learn how to [extend plugins with the API](/influxdb3/version/extend-plugin/)
+### Upload plugins from local machine
+
+For local development and testing, you can upload plugin files directly from your machine when creating triggers. This eliminates the need to manually copy files to the server's plugin directory.
+
+Use the `--upload` flag with `--path` to transfer local files or directories:
+
+```bash
+# Upload single-file plugin
+influxdb3 create trigger \
+ --trigger-spec "every:10s" \
+ --path "/local/path/to/plugin.py" \
+ --upload \
+ --database metrics \
+ my_trigger
+
+# Upload multifile plugin directory
+influxdb3 create trigger \
+ --trigger-spec "every:30s" \
+ --path "/local/path/to/plugin-dir" \
+ --upload \
+ --database metrics \
+ complex_trigger
+```
+
+> \[!Important]
+>
+> #### Admin privileges required
+>
+> Plugin uploads require an admin token. This security measure prevents unauthorized code execution on the server.
+
+**When to use plugin upload:**
+
+- Local plugin development and testing
+- Deploying plugins without SSH access to the server
+- Rapid iteration on plugin code
+- Automating plugin deployment in CI/CD pipelines
+
+For more information, see the [`influxdb3 create trigger` CLI reference](/influxdb3/version/reference/cli/influxdb3/create/trigger/).
+
+### Update existing plugins
+
+Modify plugin code for running triggers without recreating them. This allows you to iterate on plugin development while preserving trigger configuration and history.
+
+Use the `influxdb3 update trigger` command:
+
+```bash
+# Update single-file plugin
+influxdb3 update trigger \
+ --database metrics \
+ --trigger-name my_trigger \
+ --path "/path/to/updated/plugin.py"
+
+# Update multifile plugin
+influxdb3 update trigger \
+ --database metrics \
+ --trigger-name complex_trigger \
+ --path "/path/to/updated/plugin-dir"
+```
+
+The update operation:
+
+- Replaces plugin files immediately
+- Preserves trigger configuration (spec, schedule, arguments)
+- Requires admin token for security
+- Works with both local paths and uploaded files
+
+For complete reference, see [`influxdb3 update trigger`](/influxdb3/version/reference/cli/influxdb3/update/trigger/).
+
+### View loaded plugins
+
+Monitor which plugins are loaded in your system for operational visibility and troubleshooting.
+
+**Option 1: Use the CLI command**
+
+```bash
+# List all plugins
+influxdb3 show plugins --token $ADMIN_TOKEN
+
+# JSON format for programmatic access
+influxdb3 show plugins --format json --token $ADMIN_TOKEN
+```
+
+**Option 2: Query the system table**
+
+The `system.plugin_files` table in the `_internal` database provides detailed plugin file information:
+
+```bash
+influxdb3 query \
+ -d _internal \
+ "SELECT * FROM system.plugin_files ORDER BY plugin_name" \
+ --token $ADMIN_TOKEN
+```
+
+**Available columns:**
+
+- `plugin_name` (String): Trigger name
+- `file_name` (String): Plugin file name
+- `file_path` (String): Full server path
+- `size_bytes` (Int64): File size
+- `last_modified` (Int64): Modification timestamp (milliseconds)
+
+**Example queries:**
+
+```sql
+-- Find plugins by name
+SELECT * FROM system.plugin_files WHERE plugin_name = 'my_trigger';
+
+-- Find large plugins
+SELECT plugin_name, size_bytes
+FROM system.plugin_files
+WHERE size_bytes > 10000;
+
+-- Check modification times
+SELECT plugin_name, file_name, last_modified
+FROM system.plugin_files
+ORDER BY last_modified DESC;
+```
+
+For more information, see the [`influxdb3 show plugins` reference](/influxdb3/version/reference/cli/influxdb3/show/plugins/) and [Query system data](/influxdb3/version/admin/query-system-data/#query-plugin-files).
+
## Set up a trigger
### Understand trigger types
-| Plugin Type | Trigger Specification | When Plugin Runs |
-|------------|----------------------|-----------------|
-| Data write | `table:` or `all_tables` | When data is written to tables |
-| Scheduled | `every:` or `cron:` | At specified time intervals |
-| HTTP request | `request:` | When HTTP requests are received |
+| Plugin Type | Trigger Specification | When Plugin Runs |
+| ------------ | ----------------------------------------- | ------------------------------- |
+| Data write | `table:` or `all_tables` | When data is written to tables |
+| Scheduled | `every:` or `cron:` | At specified time intervals |
+| HTTP request | `request:` | When HTTP requests are received |
### Use the create trigger command
Use the `influxdb3 create trigger` command with the appropriate trigger specification:
-{{% code-placeholders "SPECIFICATION|PLUGIN_FILE|DATABASE_NAME|TRIGGER_NAME" %}}
+{{% code-placeholders "SPECIFICATION|PLUGIN\_FILE|DATABASE\_NAME|TRIGGER\_NAME" %}}
```bash
influxdb3 create trigger \
@@ -335,7 +507,7 @@ influxdb3 create trigger \
--plugin-filename PLUGIN_FILE \
--database DATABASE_NAME \
TRIGGER_NAME
- ```
+```
{{% /code-placeholders %}}
@@ -346,14 +518,14 @@ In the example above, replace the following:
- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: Name of the database
- {{% code-placeholder-key %}}`TRIGGER_NAME`{{% /code-placeholder-key %}}: Name of the new trigger
-> [!Note]
+> \[!Note]
> When specifying a local plugin file, the `--plugin-filename` parameter
-> _is relative to_ the `--plugin-dir` configured for the server.
+> *is relative to* the `--plugin-dir` configured for the server.
> You don't need to provide an absolute path.
### Trigger specification examples
-#### Trigger on data writes
+#### Trigger on data writes
```bash
# Trigger on writes to a specific table
@@ -381,7 +553,8 @@ The plugin receives the written data and table information.
If you want to use a single trigger for all tables but exclude specific tables,
you can use trigger arguments and your plugin code to filter out unwanted tables--for example:
-{{% code-placeholders "DATABASE_NAME|AUTH_TOKEN" %}}
+{{% code-placeholders "DATABASE\_NAME|AUTH\_TOKEN" %}}
+
```bash
influxdb3 create trigger \
--database DATABASE_NAME \
@@ -391,13 +564,14 @@ influxdb3 create trigger \
--trigger-arguments "exclude_tables=temp_data,debug_info,system_logs" \
data_processor
```
+
{{% /code-placeholders %}}
Replace the following:
-- {{% code-placeholder-key %}}DATABASE_NAME{{% /code-placeholder-key %}}: the name of the database
-- {{% code-placeholder-key %}}AUTH_TOKEN{{% /code-placeholder-key %}}: your {{% token-link "database" %}}{{% show-in
-"enterprise" %}} with write permissions on the specified database{{% /show-in %}}
+- {{% code-placeholder-key %}}DATABASE\_NAME{{% /code-placeholder-key %}}: the name of the database
+- {{% code-placeholder-key %}}AUTH\_TOKEN{{% /code-placeholder-key %}}: your {{% token-link "database" %}}{{% show-in
+ "enterprise" %}} with write permissions on the specified database{{% /show-in %}}
Then, in your plugin:
@@ -423,7 +597,7 @@ def on_write(self, database, table_name, batch):
triggers instead of filtering within plugin code.
See HTTP API [Processing engine endpoints](/influxdb3/version/api/v3/#tag/Processing-engine) for managing triggers.
-#### Trigger on a schedule
+#### Trigger on a schedule
```bash
# Run every 5 minutes
@@ -545,12 +719,10 @@ influxdb3 create trigger \
## Manage plugin dependencies
-
-
-Use the `influxdb3 install package` command to add third-party libraries (like `pandas`, `requests`, or `influxdb3-python`) to your plugin environment.
+Use the `influxdb3 install package` command to add third-party libraries (like `pandas`, `requests`, or `influxdb3-python`) to your plugin environment.\
This installs packages into the Processing Engine’s embedded Python environment to ensure compatibility with your InfluxDB instance.
-{{% code-placeholders "CONTAINER_NAME|PACKAGE_NAME" %}}
+{{% code-placeholders "CONTAINER\_NAME|PACKAGE\_NAME" %}}
{{< code-tabs-wrapper >}}
@@ -585,18 +757,133 @@ These examples install the specified Python package (for example, pandas) into t
- Use the CLI command when running InfluxDB directly on your system.
- Use the Docker variant if you're running InfluxDB in a containerized environment.
-> [!Important]
+> \[!Important]
+>
> #### Use bundled Python for plugins
+>
> When you start the server with the `--plugin-dir` option, InfluxDB 3 creates a Python virtual environment (`/venv`) for your plugins.
> If you need to create a custom virtual environment, use the Python interpreter bundled with InfluxDB 3. Don't use the system Python.
> Creating a virtual environment with the system Python (for example, using `python -m venv`) can lead to runtime errors and plugin failures.
->
->For more information, see the [processing engine README](https://github.com/influxdata/influxdb/blob/main/README_processing_engine.md).
+>
+> For more information, see the [processing engine README](https://github.com/influxdata/influxdb/blob/main/README_processing_engine.md).
{{% /code-placeholders %}}
InfluxDB creates a Python virtual environment in your plugins directory with the specified packages installed.
+### Disable package installation for secure environments
+
+For air-gapped deployments or environments with strict security requirements, you can disable Python package installation while maintaining Processing Engine functionality.
+
+Start the server with `--package-manager disabled`:
+
+```bash
+influxdb3 serve \
+ --node-id node0 \
+ --object-store file \
+ --data-dir ~/.influxdb3 \
+ --plugin-dir ~/.plugins \
+ --package-manager disabled
+```
+
+When package installation is disabled:
+
+- The Processing Engine continues to function normally for triggers
+- Plugin code executes without restrictions
+- Package installation commands are blocked
+- Pre-installed dependencies in the virtual environment remain available
+
+**Pre-install required dependencies:**
+
+Before disabling the package manager, install all required Python packages:
+
+```bash
+# Install packages first
+influxdb3 install package pandas requests numpy
+
+# Then start with disabled package manager
+influxdb3 serve \
+ --plugin-dir ~/.plugins \
+ --package-manager disabled
+```
+
+**Use cases for disabled package management:**
+
+- Air-gapped environments without internet access
+- Compliance requirements prohibiting runtime package installation
+- Centrally managed dependency environments
+- Security policies requiring pre-approved packages only
+
+For more configuration options, see [--package-manager](/influxdb3/version/reference/config-options/#package-manager).
+
+## Plugin security
+
+The Processing Engine includes security features to protect your {{% product-name %}} instance from unauthorized code execution and file system attacks.
+
+### Plugin path validation
+
+All plugin file paths are validated to prevent directory traversal attacks. The system blocks:
+
+- **Relative paths with parent directory references** (`../`, `../../`)
+- **Absolute paths** (`/etc/passwd`, `/usr/bin/script.py`)
+- **Symlinks that escape the plugin directory**
+
+When creating or updating triggers, plugin paths must resolve within the configured `--plugin-dir`.
+
+**Example of blocked paths:**
+
+```bash
+# These will be rejected
+influxdb3 create trigger \
+ --path "../../../etc/passwd" \ # Blocked: parent directory traversal
+ ...
+
+influxdb3 create trigger \
+ --path "/tmp/malicious.py" \ # Blocked: absolute path
+ ...
+```
+
+**Valid plugin paths:**
+
+```bash
+# These are allowed
+influxdb3 create trigger \
+ --path "myapp/plugin.py" \ # Relative to plugin-dir
+ ...
+
+influxdb3 create trigger \
+ --path "transforms/data.py" \ # Subdirectory in plugin-dir
+ ...
+```
+
+### Upload and update permissions
+
+Plugin upload and update operations require admin tokens to prevent unauthorized code deployment:
+
+- `--upload` flag requires admin privileges
+- `update trigger` command requires admin token
+- Standard resource tokens cannot upload or modify plugin code
+
+This security model ensures only administrators can introduce or modify executable code in your database.
+
+### Best practices
+
+**For development:**
+
+- Use the `--upload` flag to deploy plugins during development
+- Test plugins in non-production environments first
+- Review plugin code before deployment
+
+**For production:**
+
+- Pre-deploy plugins to the server's plugin directory via secure file transfer
+- Use custom plugin repositories for vetted, approved plugins
+- Disable package installation (`--package-manager disabled`) in locked-down environments
+- Audit plugin files using the [`system.plugin_files` table](#view-loaded-plugins)
+- Implement change control processes for plugin updates
+
+For more security configuration options, see [Configuration options](/influxdb3/version/reference/config-options/).
+
{{% show-in "enterprise" %}}
## Distributed cluster considerations
@@ -607,20 +894,21 @@ When you deploy {{% product-name %}} in a multi-node environment, configure each
Each plugin must run on a node that supports its trigger type:
-| Plugin type | Trigger spec | Runs on |
-|--------------------|--------------------------|-----------------------------|
-| Data write | `table:` or `all_tables` | Ingester nodes |
-| Scheduled | `every:` or `cron:` | Any node with scheduler |
-| HTTP request | `request:` | Nodes that serve API traffic|
+| Plugin type | Trigger spec | Runs on |
+| ------------ | ------------------------ | ---------------------------- |
+| Data write | `table:` or `all_tables` | Ingester nodes |
+| Scheduled | `every:` or `cron:` | Any node with scheduler |
+| HTTP request | `request:` | Nodes that serve API traffic |
For example:
+
- Run write-ahead log (WAL) plugins on ingester nodes.
- Run scheduled plugins on any node configured to execute them.
- Run HTTP-triggered plugins on querier nodes or any node that handles HTTP endpoints.
Place all plugin files in the `--plugin-dir` directory configured for each node.
-> [!Note]
+> \[!Note]
> Triggers fail if the plugin file isn’t available on the node where it runs.
### Route third-party clients to querier nodes
@@ -630,7 +918,7 @@ External tools—such as Grafana, custom dashboards, or REST clients—must conn
#### Examples
- **Grafana**: When adding InfluxDB 3 as a Grafana data source, use a querier node URL, such as:
-`https://querier.example.com:8086`
+ `https://querier.example.com:8086`
- **REST clients**: Applications using `POST /api/v3/query/sql` or similar endpoints must target a querier node.
{{% /show-in %}}
diff --git a/content/shared/v3-core-enterprise-release-notes/_index.md b/content/shared/v3-core-enterprise-release-notes/_index.md
index 56260b275..496d76254 100644
--- a/content/shared/v3-core-enterprise-release-notes/_index.md
+++ b/content/shared/v3-core-enterprise-release-notes/_index.md
@@ -1,17 +1,49 @@
-> [!Note]
+> \[!Note]
+>
> #### InfluxDB 3 Core and Enterprise relationship
>
> InfluxDB 3 Enterprise is a superset of InfluxDB 3 Core.
> All updates to Core are automatically included in Enterprise.
> The Enterprise sections below only list updates exclusive to Enterprise.
+## v3.6.0 {date="2025-10-30"}
+
+### Core
+
+#### Features
+
+- **Quick-Start Developer Experience**:
+ - `influxdb3` now supports running without arguments for instant database startup, automatically generating IDs and storage flags values based on your system's setup.
+- **Processing Engine**:
+ - Plugins now support multiple files instead of single-file limitations.
+ - When creating a trigger, you can upload a plugin directly from your local machine using the `--upload` flag.
+ - Existing plugin files can now be updated at runtime without recreating triggers.
+ - New `system.plugin_files` table and `show plugins` CLI command now provide visibility into all loaded plugin files.
+ - Custom plugin repositories are now supported via `--plugin-repo` CLI flag.
+ - Python package installation can now be disabled with `--package-manager disabled` for locked-down environments.
+ - Plugin file path validation now prevents directory traversal attacks by blocking relative and absolute path patterns.
+
+#### Bug fixes
+
+- **Token management**: Token display now works correctly for hard-deleted databases
+
+### Enterprise
+
+All Core updates are included in Enterprise. Additional Enterprise-specific features and fixes:
+
+#### Operational improvements
+
+- **Storage engine**: improvements to the Docker-based license service development environment
+- **Catalog consistency**: Node management fixes for catalog edge cases
+- Other enhancements and performance improvements
+
## v3.5.0 {date="2025-09-30"}
### Core
#### Features
-- **Custom Plugin Repository**:
+- **Custom Plugin Repository**:
- Use the `--plugin-repo` option with `influxdb3 serve` to specify custom plugin repositories. This enables loading plugins from personal repos or disabling remote repo access.
#### Bug fixes
@@ -19,9 +51,9 @@
- **Database reliability**:
- Table index updates now complete atomically before creating new indices, preventing race conditions that could corrupt database state ([#26838](https://github.com/influxdata/influxdb/pull/26838))
- Delete operations are now idempotent, preventing errors during object store cleanup ([#26839](https://github.com/influxdata/influxdb/pull/26839))
-- **Write path**:
+- **Write path**:
- Write operations to soft-deleted databases are now rejected, preventing data loss ([#26722](https://github.com/influxdata/influxdb/pull/26722))
-- **Runtime stability**:
+- **Runtime stability**:
- Fixed a compatibility issue that could cause deadlocks for concurrent operations ([#26804](https://github.com/influxdata/influxdb/pull/26804))
- Other bug fixes and performance improvements
@@ -35,12 +67,12 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat
#### Features
-- **Cache optimization**:
+- **Cache optimization**:
- Last Value Cache (LVC) and Distinct Value Cache (DVC) now populate on creation and only on query nodes, reducing resource usage on ingest nodes.
#### Bug fixes
-- **Object store reliability**:
+- **Object store reliability**:
- Object store operations now use retryable mechanisms with better error handling
#### Operational improvements
@@ -48,7 +80,7 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat
- **Compaction optimizations**:
- Compaction producer now waits 10 seconds before starting cycles, reducing resource contention during startup
- Enhanced scheduling algorithms distribute compaction work more efficiently across available resources
-- **System tables**:
+- **System tables**:
- System tables now provide consistent data across different node modes (ingest, query, compact), enabling better monitoring in multi-node deployments
## v3.4.2 {date="2025-09-11"}
@@ -92,8 +124,8 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat
### Core
#### Bug Fixes
-- Upgrading from 3.3.0 to 3.4.x no longer causes possible catalog migration issues ([#26756](https://github.com/influxdata/influxdb/pull/26756))
+- Upgrading from 3.3.0 to 3.4.x no longer causes possible catalog migration issues ([#26756](https://github.com/influxdata/influxdb/pull/26756))
## v3.4.0 {date="2025-08-27"}
@@ -107,21 +139,22 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat
([#26734](https://github.com/influxdata/influxdb/pull/26734))
- **Azure Endpoint**:
- Use the `--azure-endpoint` option with `influxdb3 serve` to specify the Azure Blob Storage endpoint for object store connections. ([#26687](https://github.com/influxdata/influxdb/pull/26687))
-- **No_Sync via CLI**:
+- **No\_Sync via CLI**:
- Use the `--no-sync` option with `influxdb3 write` to skip waiting for WAL persistence on write and immediately return a response to the write request. ([#26703](https://github.com/influxdata/influxdb/pull/26703))
-
+
#### Bug Fixes
+
- Validate tag and field names when creating tables ([#26641](https://github.com/influxdata/influxdb/pull/26641))
- Using GROUP BY twice on the same column no longer causes incorrect data ([#26732](https://github.com/influxdata/influxdb/pull/26732))
#### Security & Misc
+
- Reduce verbosity of the TableIndexCache log. ([#26709](https://github.com/influxdata/influxdb/pull/26709))
- WAL replay concurrency limit defaults to number of CPU cores, preventing possible OOMs. ([#26715](https://github.com/influxdata/influxdb/pull/26715))
-- Remove unsafe signal_handler code. ([#26685](https://github.com/influxdata/influxdb/pull/26685))
+- Remove unsafe signal\_handler code. ([#26685](https://github.com/influxdata/influxdb/pull/26685))
- Upgrade Python version to 3.13.7-20250818. ([#26686](https://github.com/influxdata/influxdb/pull/26686), [#26700](https://github.com/influxdata/influxdb/pull/26700))
- Tags with `/` in the name no longer break the primary key.
-
### Enterprise
All Core updates are included in Enterprise. Additional Enterprise-specific features and fixes:
@@ -129,18 +162,16 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat
#### Features
- **Token Provisioning**:
- - Generate _resource_ and _admin_ tokens offline and use them when starting the database.
+ - Generate *resource* and *admin* tokens offline and use them when starting the database.
- Select a home or trial license without using an interactive terminal.
- Use `--license-type` [home | trial | commercial] option to the `influxdb3 serve` command to automate the selection of the license type.
+ Use `--license-type` \[home | trial | commercial] option to the `influxdb3 serve` command to automate the selection of the license type.
#### Bug Fixes
- Don't initialize the Processing Engine when the specified `--mode` does not require it.
- Don't panic when `INFLUXDB3_PLUGIN_DIR` is set in containers without the Processing Engine enabled.
-
-
## v3.3.0 {date="2025-07-29"}
### Core
@@ -226,7 +257,7 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat
## v3.2.0 {date="2025-06-25"}
-**Core**: revision 1ca3168bee
+**Core**: revision 1ca3168bee\
**Enterprise**: revision 1ca3168bee
### Core
@@ -259,7 +290,7 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat
#### Features
-- **License management improvements**:
+- **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`
@@ -276,6 +307,7 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat
- **License handling**: Trim whitespace from license file contents after reading to prevent validation issues
## v3.1.0 {date="2025-05-29"}
+
**Core**: revision 482dd8aac580c04f37e8713a8fffae89ae8bc264
**Enterprise**: revision 2cb23cf32b67f9f0d0803e31b356813a1a151b00
@@ -283,6 +315,7 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat
### Core
#### Token and Security Updates
+
- Named admin tokens can now be created, with configurable expirations
- `health`, `ping`, and `metrics` endpoints can now be opted out of authorization
- `Basic $TOKEN` is now supported for all APIs
@@ -290,6 +323,7 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat
- Additional info available when starting InfuxDB using `--without-auth`
#### Additional Updates
+
- New catalog metrics available for count operations
- New object store metrics available for transfer latencies and transfer sizes
- New query duration metrics available for Last Value caches
@@ -297,6 +331,7 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat
- Other performance improvements
#### Fixes
+
- New tags are now backfilled with NULL instead of empty strings
- Bitcode deserialization error fixed
- Series key metadata not persisting to Parquet is now fixed
@@ -305,24 +340,28 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat
### Enterprise
#### Token and Security Updates
+
- Resource tokens now use resource names in `show tokens`
- Tokens can now be granted `CREATE` permission for creating databases
#### Additional Updates
+
- Last value caches reload on restart
- Distinct value caches reload on restart
- Other performance improvements
-- Replaces remaining "INFLUXDB_IOX" Dockerfile environment variables with the following:
+- Replaces remaining "INFLUXDB\_IOX" Dockerfile environment variables with the following:
- `ENV INFLUXDB3_OBJECT_STORE=file`
- `ENV INFLUXDB3_DB_DIR=/var/lib/influxdb3`
#### Fixes
+
- Improvements and fixes for license validations
- False positive fixed for catalog error on shutdown
- UX improvements for error and onboarding messages
- Other general fixes and corrections
## v3.0.3 {date="2025-05-16"}
+
**Core**: revision 384c457ef5f0d5ca4981b22855e411d8cac2688e
**Enterprise**: revision 34f4d28295132b9efafebf654e9f6decd1a13caf
@@ -331,20 +370,19 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat
#### Fixes
-- Prevent operator token, `_admin`, from being deleted.
+- Prevent operator token, `_admin`, from being deleted.
### Enterprise
#### Fixes
-- Fix object store info digest that is output during onboarding.
+- Fix object store info digest that is output during onboarding.
- Fix issues with false positive catalog error on shutdown.
- Fix licensing validation issues.
- Other fixes and performance improvements.
-
-
## v3.0.2 {date="2025-05-01"}
+
**Core**: revision d80d6cd60049c7b266794a48c97b1b6438ac5da9
**Enterprise**: revision e9d7e03c2290d0c3e44d26e3eeb60aaf12099f29
@@ -353,39 +391,40 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat
#### Security updates
-- Generate testing TLS certificates on the fly.
-- Set the TLS CA via the INFLUXDB3_TLS_CA environment variable.
-- Enforce a minimum TLS version for enhanced security.
-- Allow CORS requests from browsers.
+- Generate testing TLS certificates on the fly.
+- Set the TLS CA via the INFLUXDB3\_TLS\_CA environment variable.
+- Enforce a minimum TLS version for enhanced security.
+- Allow CORS requests from browsers.
#### General updates
-- Support the `--format json` option in the token creation output.
-- Remove the Last Values Cache size limitation to improve performance and flexibility.
-- Incorporate additional performance improvements.
+- Support the `--format json` option in the token creation output.
+- Remove the Last Values Cache size limitation to improve performance and flexibility.
+- Incorporate additional performance improvements.
#### Fixes
-- Fix a counting bug in the distinct cache.
-- Fix how the distinct cache handles rows with null values.
-- Fix handling of `group by` tag columns that use escape quotes.
-- Sort the IOx table schema consistently in the `SHOW TABLES` command.
+- Fix a counting bug in the distinct cache.
+- Fix how the distinct cache handles rows with null values.
+- Fix handling of `group by` tag columns that use escape quotes.
+- Sort the IOx table schema consistently in the `SHOW TABLES` command.
### Enterprise
#### Updates
-- Introduce a command and system table to list cluster nodes.
-- Support multiple custom permission argument matches.
-- Improve overall performance.
+- Introduce a command and system table to list cluster nodes.
+- Support multiple custom permission argument matches.
+- Improve overall performance.
#### Fixes
-- Initialize the object store only once.
-- Prevent the Home license server from crashing on restart.
-- Enforce the `--num-cores` thread allocation limit.
+- Initialize the object store only once.
+- Prevent the Home license server from crashing on restart.
+- Enforce the `--num-cores` thread allocation limit.
## v3.0.1 {date="2025-04-16"}
+
**Core**: revision d7c071e0c4959beebc7a1a433daf8916abd51214
**Enterprise**: revision 96e4aad870b44709e149160d523b4319ea91b54c
@@ -393,15 +432,18 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat
### Core
#### Updates
+
- TLS CA can now be set with an environment variable: `INFLUXDB3_TLS_CA`
- Other general performance improvements
#### Fixes
-- The `--tags` argument is now optional for creating a table, and additionally now requires at least one tag _if_ specified
+
+- The `--tags` argument is now optional for creating a table, and additionally now requires at least one tag *if* specified
### Enterprise
#### Updates
+
- Catalog limits for databases, tables, and columns are now configurable using `influxdb3 serve` options:
- `--num-database-limit`
- `--num-table-limit`
@@ -410,8 +452,8 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat
- Other general performance improvements
#### Fixes
-- **Home** license thread count log errors
+- **Home** license thread count log errors
## v3.0.0 {date="2025-04-14"}
@@ -440,50 +482,59 @@ All Core updates are included in Enterprise. Additional Enterprise-specific feat
- You can now use Commercial, Trial, and At-Home licenses.
-
## v3.0.0-0.beta.3 {date="2025-04-01"}
+
**Core**: revision f881c5844bec93a85242f26357a1ef3ebf419dd3
**Enterprise**: revision 6bef9e700a59c0973b0cefdc6baf11583933e262
### Core
+
#### General Improvements
+
- InfluxDB 3 now supports graceful shutdowns when sending the interrupt signal to the service.
#### Bug fixes
+
- Empty batches in JSON format results are now handled properly
- The Processing Engine now properly extracts data from DictionaryArrays
### Enterprise
+
##### Multi-node improvements
+
- Query nodes now automatically detect new ingest nodes
#### Bug fixes
-- Several fixes for compaction planning and processing
+
+- Several fixes for compaction planning and processing
- The Processing Engine now properly extracts data from DictionaryArrays
-
## v3.0.0-0.beta.2 {date="2025-03-24"}
+
**Core**: revision 033e1176d8c322b763b4aefb24686121b1b24f7c
**Enterprise**: revision e530fcd498c593cffec2b56d4f5194afc717d898
-This update brings several backend performance improvements to both Core and Enterprise in preparation for additional new features over the next several weeks.
-
+This update brings several backend performance improvements to both Core and Enterprise in preparation for additional new features over the next several weeks.
## v3.0.0-0.beta.1 {date="2025-03-17"}
+
### Core
+
#### Features
##### Query and storage enhancements
+
- New ability to stream response data for CSV and JSON queries, similar to how JSONL streaming works
- Parquet files are now cached on the query path, improving performance
- Query buffer is incrementally cleared when snapshotting, lowering memory spikes
##### Processing engine improvements
+
- New Trigger Types:
- - _Scheduled_: Run Python plugins on custom, time-defined basis
- - _Request_: Call Python plugins via HTTP requests
+ - *Scheduled*: Run Python plugins on custom, time-defined basis
+ - *Request*: Call Python plugins via HTTP requests
- New in-memory cache for storing data temporarily; cached data can be stored for a single trigger or across all triggers
- Integration with virtual environments and install packages:
- Specify Python virtual environment via CLI or `VIRTUAL_ENV` variable
@@ -493,11 +544,13 @@ This update brings several backend performance improvements to both Core and Ent
- Write to logs from within the Processing Engine
##### Database and CLI improvements
+
- You can now specify the precision on your timestamps for writes using the `--precision` flag. Includes nano/micro/milli/seconds (ns/us/ms/s)
- Added a new `show` system subcommand to display system tables with different options via SQL (default limit: 100)
- Clearer table creation error messages
##### Bug fixes
+
- If a database was created and the service was killed before any data was written, the database would not be retained
- A last cache with specific "value" columns could not be queried
- Running CTRL-C no longer stopped an InfluxDB process, due to a Python trigger
@@ -508,14 +561,15 @@ This update brings several backend performance improvements to both Core and Ent
For Core and Enterprise, there are parameter changes for simplicity:
-| Old Parameter | New Parameter |
-|---------------|---------------|
-| `--writer-id`
`--host-id` | `--node-id` |
+| Old Parameter | New Parameter |
+| ---------------------------- | ------------- |
+| `--writer-id`
`--host-id` | `--node-id` |
### Enterprise features
#### Cluster management
-- Nodes are now associated with _clusters_, simplifying compaction, read replication, and processing
+
+- Nodes are now associated with *clusters*, simplifying compaction, read replication, and processing
- Node specs are now available for simpler management of cache creations
#### Mode types
@@ -526,9 +580,9 @@ For Core and Enterprise, there are parameter changes for simplicity:
For Enterprise, additional parameters for the `serve` command have been consolidated for simplicity:
-| Old Parameter | New Parameter |
-|---------------|---------------|
-| `--read-from-node-ids`
`--compact-from-node-ids` | `--cluster-id` |
-| `--run-compactions`
`--mode=compactor` | `--mode=compact`
`--mode=compact` |
+| Old Parameter | New Parameter |
+| --------------------------------------------------- | ------------------------------------ |
+| `--read-from-node-ids`
`--compact-from-node-ids` | `--cluster-id` |
+| `--run-compactions`
`--mode=compactor` | `--mode=compact`
`--mode=compact` |
In addition to the above changes, `--cluster-id` is now a required parameter for all new instances.
diff --git a/data/notifications.yaml b/data/notifications.yaml
index da1eb80ec..4701acddc 100644
--- a/data/notifications.yaml
+++ b/data/notifications.yaml
@@ -40,29 +40,23 @@
# - [The plan for InfluxDB 3.0 Open Source](https://influxdata.com/blog/the-plan-for-influxdb-3-0-open-source)
# - [InfluxDB 3.0 benchmarks](https://influxdata.com/blog/influxdb-3-0-is-2.5x-45x-faster-compared-to-influxdb-open-source/)
-- id: influxdb3.5-explorer-1.3
+- id: influxdb3.6-explorer-1.4
level: note
scope:
- /
- title: New in InfluxDB 3.5
+ title: New in InfluxDB 3.6
slug: |
- Key enhancements in InfluxDB 3.5 and the InfluxDB 3 Explorer 1.3.
+ Key enhancements in InfluxDB 3.6 and the InfluxDB 3 Explorer 1.4.
- See the Blog Post
+ See the Blog Post
message: |
- InfluxDB 3.5 is now available for both Core and Enterprise, introducing
- custom plugin repository support,
- enhanced operational visibility with queryable CLI parameters and manual node
- management, stronger security controls, and general performance improvements.
-
- InfluxDB 3 Explorer 1.3 brings powerful new capabilities including Dashboards
- (beta) for saving and organizing your favorite queries, and cache querying for
- instant access to Last Value and Distinct Value caches—making Explorer a more
- comprehensive workspace for time series monitoring and analysis.
+ InfluxDB 3.6 is now available for both Core and Enterprise. This release introduces
+ the 1.4 update to InfluxDB 3 Explorer, featuring the beta launch of Ask AI, along
+ with new capabilities for simple startup and expanded functionality in the Processing Engine.
For more information, check out:
- - [See the announcement blog post](https://www.influxdata.com/blog/influxdb-3-5/)
+ - [See the announcement blog post](https://www.influxdata.com/blog/influxdb-3-6/)
- [InfluxDB 3 Core release notes](/influxdb3/core/release-notes/)
- [InfluxDB 3 Enterprise release notes](/influxdb3/enterprise/release-notes/)
- [Get Started with InfluxDB 3 Explorer](/influxdb3/explorer/get-started/)
diff --git a/data/products.yml b/data/products.yml
index 21e23cec9..271a86df5 100644
--- a/data/products.yml
+++ b/data/products.yml
@@ -6,7 +6,7 @@ influxdb3_core:
versions: [core]
list_order: 2
latest: core
- latest_patch: 3.5.0
+ latest_patch: 3.6.0
placeholder_host: localhost:8181
detector_config:
query_languages:
@@ -35,7 +35,7 @@ influxdb3_enterprise:
versions: [enterprise]
list_order: 2
latest: enterprise
- latest_patch: 3.5.0
+ latest_patch: 3.6.0
placeholder_host: localhost:8181
detector_config:
query_languages:
@@ -63,7 +63,7 @@ influxdb3_explorer:
menu_category: tools
list_order: 1
latest: explorer
- latest_patch: 1.3.0
+ latest_patch: 1.4.0
placeholder_host: localhost:8888
ai_sample_questions:
- How do I query data using InfluxDB 3 Explorer?
diff --git a/lefthook.yml b/lefthook.yml
index 175fbfd48..e910ae114 100644
--- a/lefthook.yml
+++ b/lefthook.yml
@@ -22,26 +22,6 @@ pre-commit:
docker compose run --rm --name remark-lint remark-lint $files --output --quiet || \
{ echo "⚠️ Remark found formatting issues in instruction files. Automatic formatting applied."; }
stage_fixed: true
- # Report markdown formatting issues in content/api-docs without auto-fixing
- lint-markdown-content:
- tags: lint
- glob: "{api-docs/**/*.md,content/**/*.md}"
- run: |
- # Prepend /workdir/ to staged files since repository is mounted at /workdir in container
- files=$(echo '{staged_files}' | sed 's|^|/workdir/|g; s| | /workdir/|g')
- # Run remark to check for formatting differences (without --output, shows diff in stdout)
- # If output differs from input, fail the commit
- for file in $files; do
- original=$(cat "${file#/workdir/}")
- formatted=$(docker compose run --rm --name remark-lint-content remark-lint "$file" 2>/dev/null | tail -n +2)
- if [ "$original" != "$formatted" ]; then
- echo "❌ Markdown formatting issues in ${file#/workdir/}"
- echo " Run: docker compose run --rm remark-lint $file --output"
- echo " Or manually fix the formatting to match remark style"
- exit 1
- fi
- done
- echo "✅ All content files are properly formatted"
# Lint instruction and repository documentation files with generic Vale config
lint-instructions:
tags: lint