From 487a6d046b13e61a25b9233403c592ce35087db8 Mon Sep 17 00:00:00 2001 From: Jason Stirnaman Date: Mon, 21 Apr 2025 13:49:49 -0500 Subject: [PATCH] feat(influxdb3): Core and Enterprise: update API references: - Add token management endpoints - Update auth traitTag content - Revise tags - Add cache information - Add Cache data tag group - Remove Data I/O tag group - Add Query data and Write data tags --- .../influxdb3/core/v3/content/tag-groups.yml | 9 +- api-docs/influxdb3/core/v3/ref.yml | 189 +++++++++---- .../enterprise/v3/content/tag-groups.yml | 9 +- api-docs/influxdb3/enterprise/v3/ref.yml | 248 ++++++++++++++---- 4 files changed, 344 insertions(+), 111 deletions(-) diff --git a/api-docs/influxdb3/core/v3/content/tag-groups.yml b/api-docs/influxdb3/core/v3/content/tag-groups.yml index 5289ddb33..364d5e794 100644 --- a/api-docs/influxdb3/core/v3/content/tag-groups.yml +++ b/api-docs/influxdb3/core/v3/content/tag-groups.yml @@ -2,11 +2,14 @@ tags: - Quick start - Authentication + - Cache data - Common parameters - Response codes - Compatibility endpoints - - Data I/O - - Databases + - Database - Processing engine - Server information - - Tables + - Table + - Token + - Query data + - Write data diff --git a/api-docs/influxdb3/core/v3/ref.yml b/api-docs/influxdb3/core/v3/ref.yml index 983cf9571..2b7c2e57d 100644 --- a/api-docs/influxdb3/core/v3/ref.yml +++ b/api-docs/influxdb3/core/v3/ref.yml @@ -47,13 +47,46 @@ tags: The InfluxDB 3 API uses tokens for authentication. To authenticate, include the `Authorization` header in your request with the value `Bearer `. - The token must be a valid InfluxDB 3 API token with the required permissions for the requested operation. + The token must be a valid InfluxDB 3 admin token. #### Related guides - [Manage tokens](/influxdb3/core/admin/tokens/) - - [Authentication and authorization](/influxdb3/core/reference/authentication/). + - [Authentication and authorization](/influxdb3/core/reference/authentication/) x-traitTag: true + - name: Cache data + description: | + Manage the in-memory cache. + + #### Distinct Value Cache + + The Distinct Value Cache (DVC) lets you cache distinct + values of one or more columns in a table, improving the performance of + queries that return distinct tag and field values. + + The DVC is an in-memory cache that stores distinct values for specific columns + in a table. When you create an DVC, you can specify what columns' distinct + values to cache, the maximum number of distinct value combinations to cache, and + the maximum age of cached values. A DVC is associated with a table, which can + have multiple DVCs. + + #### Last value cache + + The Last Value Cache (LVC) lets you cache the most recent + values for specific fields in a table, improving the performance of queries that + return the most recent value of a field for specific series or the last N values + of a field. + + The LVC is an in-memory cache that stores the last N number of values for + specific fields of series in a table. When you create an LVC, you can specify + what fields to cache, what tags to use to identify each series, and the + number of values to cache for each unique series. + An LVC is associated with a table, which can have multiple LVCs. + + #### Related guides + + - [Manage the Distinct Value Cache](/influxdb3/core/admin/distinct-value-cache/) + - [Manage the Last Value Cache](/influxdb3/core/admin/last-value-cache/) - name: Compatibility endpoints description: | InfluxDB 3 provides compatibility endpoints for InfluxDB 1.x and InfluxDB 2.x workloads and clients. @@ -81,19 +114,8 @@ tags: ### Server information Server information endpoints such as `/health` and `metrics` are compatible with InfluxDB 1.x and InfluxDB 2.x clients. - - name: Data I/O - description: | - Write and query data - - #### Data flow in InfluxDB 3 Core - - 1. **Incoming writes**: The system validates incoming data and stores it in the write buffer (in memory). If the `no_sync` write option is enabled (`no_sync=true`), the server sends a response to acknowledge the write. - 2. **WAL flush**: Every second (default), the system flushes the write buffer to the Write-Ahead Log (WAL) for persistence in the Object store. If `no_sync=false` (default), the server sends a response to acknowledge the write. - 3. **Query availability**: After WAL persistence completes, data moves to the queryable buffer where it becomes available for queries. By default, the server keeps up to 900 WAL files (15 minutes of data) buffered. - 4. **Long-term storage in Parquet**: Every ten minutes (default), the system persists the oldest data from the queryable buffer to the Object store in Parquet format. InfluxDB keeps the remaining data (the most recent 5 minutes) in memory. - 5. **In-memory cache**: InfluxDB puts Parquet files into an in-memory cache so that queries against the most recently persisted data don't have to go to object storage. - - name: Databases - description: Create, read, update, and delete database and cache resources + - name: Database + description: Manage databases - description: | Most InfluxDB API endpoints require parameters in the request--for example, specifying the database to use. @@ -128,28 +150,38 @@ tags: Use Processing engine plugins and triggers to run code and perform tasks for different database events. To get started with the Processing engine, see the [Processing engine and Python plugins](/influxdb3/core/processing-engine/) guide. + - name: Query data + description: Query data using SQL or InfluxQL - name: Quick start description: | - 1. [Check the status](#section/Server-information) of the InfluxDB server. + 1. [Create an admin token](#section/Authentication) for the InfluxDB 3 Enterprise API. ```bash - curl "http://localhost:8181/health" + curl -X POST "http://localhost:8181/api/v3/configure/token/admin" + ``` + 2. [Check the status](#section/Server-information) of the InfluxDB server. + + ```bash + curl "http://localhost:8181/health" \ + --header "Authorization: Bearer ADMIN_TOKEN" ``` - 2. [Write data](#section/Compatibility-endpoints/Write-data) to InfluxDB. + 3. [Write data](#section/Compatibility-endpoints/Write-data) to InfluxDB. ```bash - curl "http://localhost:8181/api/v3/write_lp?db=sensors&precision=auto" \ + curl "http://localhost:8181/api/v3/write_lp?db=sensors&precision=auto" + --header "Authorization: Bearer ADMIN_TOKEN" \ --data-raw "home,room=Kitchen temp=72.0 home,room=Living\ room temp=71.5" ``` If all data is written, the response is `204 No Content`. - 3. [Query data](#section/Compatibility-endpoints/Query-data) from InfluxDB. + 4. [Query data](#section/Compatibility-endpoints/Query-data) from InfluxDB. ```bash curl -G "http://localhost:8181/api/v3/query_sql" \ + --header "Authorization: Bearer ADMIN_TOKEN" \ --data-urlencode "db=sensors" \ --data-urlencode "q=SELECT * FROM home WHERE room='Living room'" \ --data-urlencode "format=jsonl" @@ -165,8 +197,12 @@ tags: x-traitTag: true - name: Server information description: Retrieve server metrics, status, and version information - - name: Tables + - name: Table description: Manage table schemas and data + - name: Token + description: Manage tokens for authentication and authorization + - name: Write data + description: Write data to InfluxDB 3 paths: /write: post: @@ -253,7 +289,7 @@ paths: description: Request entity too large. tags: - Compatibility endpoints - - Data I/O + - Write data /api/v2/write: post: operationId: PostV2Write @@ -336,7 +372,7 @@ paths: description: Request entity too large. tags: - Compatibility endpoints - - Data I/O + - Write data /api/v3/write_lp: post: operationId: PostWriteLP @@ -396,7 +432,7 @@ paths: '422': description: Unprocessable entity. tags: - - Data I/O + - Write data /api/v3/query_sql: get: operationId: GetExecuteQuerySQL @@ -455,7 +491,7 @@ paths: '422': description: Unprocessable entity. tags: - - Data I/O + - Query data post: operationId: PostExecuteQuerySQL summary: Execute SQL query @@ -494,7 +530,7 @@ paths: '422': description: Unprocessable entity. tags: - - Data I/O + - Query data /api/v3/query_influxql: get: operationId: GetExecuteInfluxQLQuery @@ -542,7 +578,7 @@ paths: '422': description: Unprocessable entity. tags: - - Data I/O + - Query data post: operationId: PostExecuteQueryInfluxQL summary: Execute InfluxQL query @@ -581,7 +617,7 @@ paths: '422': description: Unprocessable entity. tags: - - Data I/O + - Query data /query: get: operationId: GetV1ExecuteQuery @@ -687,7 +723,7 @@ paths: '422': description: Unprocessable entity. tags: - - Data I/O + - Query data - Compatibility endpoints post: operationId: PostExecuteV1Query @@ -798,7 +834,7 @@ paths: '422': description: Unprocessable entity. tags: - - Data I/O + - Query data - Compatibility endpoints /health: get: @@ -872,7 +908,7 @@ paths: '404': description: Database not found. tags: - - Databases + - Database post: operationId: PostConfigureDatabase summary: Create a database @@ -893,7 +929,7 @@ paths: '409': description: Database already exists. tags: - - Databases + - Database delete: operationId: DeleteConfigureDatabase summary: Delete a database @@ -910,7 +946,7 @@ paths: '404': description: Database not found. tags: - - Databases + - Database /api/v3/configure/table: post: operationId: PostConfigureTable @@ -932,7 +968,7 @@ paths: '404': description: Database not found. tags: - - Tables + - Table delete: operationId: DeleteConfigureTable summary: Delete a table @@ -954,14 +990,15 @@ paths: '404': description: Table not found. tags: - - Tables + - Table /api/v3/configure/distinct_cache: post: operationId: PostConfigureDistinctCache summary: Create distinct cache description: Creates a distinct cache for a table. tags: - - Tables + - Cache data + - Table requestBody: required: true content: @@ -1001,7 +1038,8 @@ paths: '409': description: Cache already exists. tags: - - Tables + - Cache data + - Table delete: operationId: DeleteConfigureLastCache summary: Delete last cache @@ -1028,7 +1066,8 @@ paths: '404': description: Cache not found. tags: - - Tables + - Cache data + - Table /api/v3/configure/processing_engine_trigger: post: operationId: PostConfigureProcessingEngineTrigger @@ -1289,7 +1328,30 @@ paths: description: Processing failure. tags: - Processing engine - /api/v3/configure/token/admin/regenerate: + /api/v3/configure/token/admin: + post: + operationId: PostCreateAdminToken + summary: Create admin token + description: | + Creates an admin token. + An admin token is a special type of token that has full access to all resources in the system. + + This endpoint is only available in InfluxDB 3 Enterprise. + responses: + '201': + description: | + Success. The admin token has been created. + The response body contains the token string and metadata. + content: + application/json: + schema: + $ref: '#/components/schemas/AdminTokenObject' + '401': + $ref: '#/components/responses/Unauthorized' + tags: + - Authentication + - Token + /api/v3/configure/enterprise/token/admin/regenerate: post: operationId: PostRegenerateAdminToken summary: Regenerate admin token @@ -1304,14 +1366,12 @@ paths: content: application/json: schema: - type: object - example: - {"id":0,"name":"_admin","token":"apiv3_00xx0Xx0xx00XX0x0","hash":"00xx0Xx0xx00XX0x0","created_at":"2025-04-18T14:02:45.331Z","expiry":null} + $ref: '#/components/schemas/AdminTokenObject' '401': $ref: '#/components/responses/Unauthorized' - tags: + tags: - Authentication - - Tokens + - Token components: parameters: AcceptQueryHeader: @@ -1448,6 +1508,29 @@ components: schema: $ref: '#/components/schemas/QueryRequestObject' schemas: + AdminTokenObject: + type: object + properties: + id: + type: integer + name: + type: string + token: + type: string + hash: + type: string + created_at: + type: string + format: date-time + expiry: + format: date-time + example: + id: 0 + name: _admin + token: apiv3_00xx0Xx0xx00XX0x0 + hash: 00xx0Xx0xx00XX0x0 + created_at: '2025-04-18T14:02:45.331Z' + expiry: null ContentEncoding: type: string enum: @@ -1489,13 +1572,10 @@ components: description: | Acknowledges a successful write without waiting for WAL persistence. - #### Data flow in InfluxDB 3 Core + #### Related - 1. **Incoming writes**: The system validates incoming data and stores it in the write buffer (in memory). If the `no_sync` write option is enabled (`no_sync=true`), the server sends a response to acknowledge the write. - 2. **WAL flush**: Every second (default), the system flushes the write buffer to the Write-Ahead Log (WAL) for persistence in the Object store. If `no_sync=false` (default), the server sends a response to acknowledge the write. - 3. **Query availability**: After WAL persistence completes, data moves to the queryable buffer where it becomes available for queries. By default, the server keeps up to 900 WAL files (15 minutes of data) buffered. - 4. **Long-term storage in Parquet**: Every ten minutes (default), the system persists the oldest data from the queryable buffer to the Object store in Parquet format. InfluxDB keeps the remaining data (the most recent 5 minutes) in memory. - 5. **In-memory cache**: InfluxDB puts Parquet files into an in-memory cache so that queries against the most recently persisted data don't have to go to object storage. + - [Use the HTTP API and client libraries to write data](/influxdb3/core/write-data/api-client-libraries/) + - [Data durability](/influxdb3/enterprise/reference/internals/durability/) PrecisionWriteCompatibility: enum: - ms @@ -1814,11 +1894,14 @@ x-tagGroups: tags: - Quick start - Authentication + - Cache data - Common parameters - Response codes - Compatibility endpoints - - Data I/O - - Databases + - Database - Processing engine - Server information - - Tables + - Table + - Token + - Query data + - Write data diff --git a/api-docs/influxdb3/enterprise/v3/content/tag-groups.yml b/api-docs/influxdb3/enterprise/v3/content/tag-groups.yml index 5289ddb33..364d5e794 100644 --- a/api-docs/influxdb3/enterprise/v3/content/tag-groups.yml +++ b/api-docs/influxdb3/enterprise/v3/content/tag-groups.yml @@ -2,11 +2,14 @@ tags: - Quick start - Authentication + - Cache data - Common parameters - Response codes - Compatibility endpoints - - Data I/O - - Databases + - Database - Processing engine - Server information - - Tables + - Table + - Token + - Query data + - Write data diff --git a/api-docs/influxdb3/enterprise/v3/ref.yml b/api-docs/influxdb3/enterprise/v3/ref.yml index fda5ec4fe..1b51cef38 100644 --- a/api-docs/influxdb3/enterprise/v3/ref.yml +++ b/api-docs/influxdb3/enterprise/v3/ref.yml @@ -47,13 +47,46 @@ tags: The InfluxDB 3 API uses tokens for authentication. To authenticate, include the `Authorization` header in your request with the value `Bearer `. - The token must be a valid InfluxDB 3 API token with the required permissions for the requested operation. + The token must be a valid InfluxDB 3 admin token or a resource token with the required permissions for the requested operation. #### Related guides - [Manage tokens](/influxdb3/enterprise/admin/tokens/) - - [Authentication and authorization](/influxdb3/enterprise/reference/authentication/). + - [Authentication and authorization](/influxdb3/enterprise/reference/authentication/) x-traitTag: true + - name: Cache data + description: | + Manage the in-memory cache. + + #### Distinct Value Cache + + The Distinct Value Cache (DVC) lets you cache distinct + values of one or more columns in a table, improving the performance of + queries that return distinct tag and field values. + + The DVC is an in-memory cache that stores distinct values for specific columns + in a table. When you create an DVC, you can specify what columns' distinct + values to cache, the maximum number of distinct value combinations to cache, and + the maximum age of cached values. A DVC is associated with a table, which can + have multiple DVCs. + + #### Last value cache + + The Last Value Cache (LVC) lets you cache the most recent + values for specific fields in a table, improving the performance of queries that + return the most recent value of a field for specific series or the last N values + of a field. + + The LVC is an in-memory cache that stores the last N number of values for + specific fields of series in a table. When you create an LVC, you can specify + what fields to cache, what tags to use to identify each series, and the + number of values to cache for each unique series. + An LVC is associated with a table, which can have multiple LVCs. + + #### Related guides + + - [Manage the Distinct Value Cache](/influxdb3/enterprise/admin/distinct-value-cache/) + - [Manage the Last Value Cache](/influxdb3/enterprise/admin/last-value-cache/) - name: Compatibility endpoints description: | InfluxDB 3 provides compatibility endpoints for InfluxDB 1.x and InfluxDB 2.x workloads and clients. @@ -81,19 +114,8 @@ tags: ### Server information Server information endpoints such as `/health` and `metrics` are compatible with InfluxDB 1.x and InfluxDB 2.x clients. - - name: Data I/O - description: | - Write and query data - - #### Data flow in InfluxDB 3 Enterprise - - 1. **Incoming writes**: The system validates incoming data and stores it in the write buffer (in memory). If the `no_sync` write option is enabled (`no_sync=true`), the server sends a response to acknowledge the write. - 2. **WAL flush**: Every second (default), the system flushes the write buffer to the Write-Ahead Log (WAL) for persistence in the Object store. If `no_sync=false` (default), the server sends a response to acknowledge the write. - 3. **Query availability**: After WAL persistence completes, data moves to the queryable buffer where it becomes available for queries. By default, the server keeps up to 900 WAL files (15 minutes of data) buffered. - 4. **Long-term storage in Parquet**: Every ten minutes (default), the system persists the oldest data from the queryable buffer to the Object store in Parquet format. InfluxDB keeps the remaining data (the most recent 5 minutes) in memory. - 5. **In-memory cache**: InfluxDB puts Parquet files into an in-memory cache so that queries against the most recently persisted data don't have to go to object storage. - - name: Databases - description: Create, read, update, and delete database and cache resources + - name: Database + description: Manage databases - description: | Most InfluxDB API endpoints require parameters in the request--for example, specifying the database to use. @@ -128,28 +150,38 @@ tags: Use Processing engine plugins and triggers to run code and perform tasks for different database events. To get started with the Processing engine, see the [Processing engine and Python plugins](/influxdb3/enterprise/processing-engine/) guide. + - name: Query data + description: Query data using SQL or InfluxQL - name: Quick start description: | - 1. [Check the status](#section/Server-information) of the InfluxDB server. + 1. [Create an admin token](#section/Authentication) for the InfluxDB 3 Enterprise API. ```bash - curl "http://localhost:8181/health" + curl -X POST "http://localhost:8181/api/v3/enterprise/configure/token/admin" + ``` + 2. [Check the status](#section/Server-information) of the InfluxDB server. + + ```bash + curl "http://localhost:8181/health" \ + --header "Authorization: Bearer ADMIN_TOKEN" ``` - 2. [Write data](#section/Compatibility-endpoints/Write-data) to InfluxDB. + 3. [Write data](#section/Compatibility-endpoints/Write-data) to InfluxDB. ```bash - curl "http://localhost:8181/api/v3/write_lp?db=sensors&precision=auto" \ + curl "http://localhost:8181/api/v3/write_lp?db=sensors&precision=auto" + --header "Authorization: Bearer ADMIN_TOKEN" \ --data-raw "home,room=Kitchen temp=72.0 home,room=Living\ room temp=71.5" ``` If all data is written, the response is `204 No Content`. - 3. [Query data](#section/Compatibility-endpoints/Query-data) from InfluxDB. + 4. [Query data](#section/Compatibility-endpoints/Query-data) from InfluxDB. ```bash curl -G "http://localhost:8181/api/v3/query_sql" \ + --header "Authorization: Bearer ADMIN_TOKEN" \ --data-urlencode "db=sensors" \ --data-urlencode "q=SELECT * FROM home WHERE room='Living room'" \ --data-urlencode "format=jsonl" @@ -165,8 +197,12 @@ tags: x-traitTag: true - name: Server information description: Retrieve server metrics, status, and version information - - name: Tables + - name: Table description: Manage table schemas and data + - name: Token + description: Manage tokens for authentication and authorization + - name: Write data + description: Write data to InfluxDB 3 paths: /write: post: @@ -253,7 +289,7 @@ paths: description: Request entity too large. tags: - Compatibility endpoints - - Data I/O + - Write data /api/v2/write: post: operationId: PostV2Write @@ -336,7 +372,7 @@ paths: description: Request entity too large. tags: - Compatibility endpoints - - Data I/O + - Write data /api/v3/write_lp: post: operationId: PostWriteLP @@ -396,7 +432,7 @@ paths: '422': description: Unprocessable entity. tags: - - Data I/O + - Write data /api/v3/query_sql: get: operationId: GetExecuteQuerySQL @@ -455,7 +491,7 @@ paths: '422': description: Unprocessable entity. tags: - - Data I/O + - Query data post: operationId: PostExecuteQuerySQL summary: Execute SQL query @@ -494,7 +530,7 @@ paths: '422': description: Unprocessable entity. tags: - - Data I/O + - Query data /api/v3/query_influxql: get: operationId: GetExecuteInfluxQLQuery @@ -542,7 +578,7 @@ paths: '422': description: Unprocessable entity. tags: - - Data I/O + - Query data post: operationId: PostExecuteQueryInfluxQL summary: Execute InfluxQL query @@ -581,7 +617,7 @@ paths: '422': description: Unprocessable entity. tags: - - Data I/O + - Query data /query: get: operationId: GetV1ExecuteQuery @@ -687,7 +723,7 @@ paths: '422': description: Unprocessable entity. tags: - - Data I/O + - Query data - Compatibility endpoints post: operationId: PostExecuteV1Query @@ -798,7 +834,7 @@ paths: '422': description: Unprocessable entity. tags: - - Data I/O + - Query data - Compatibility endpoints /health: get: @@ -872,7 +908,7 @@ paths: '404': description: Database not found. tags: - - Databases + - Database post: operationId: PostConfigureDatabase summary: Create a database @@ -893,7 +929,7 @@ paths: '409': description: Database already exists. tags: - - Databases + - Database delete: operationId: DeleteConfigureDatabase summary: Delete a database @@ -910,7 +946,7 @@ paths: '404': description: Database not found. tags: - - Databases + - Database /api/v3/configure/table: post: operationId: PostConfigureTable @@ -932,7 +968,7 @@ paths: '404': description: Database not found. tags: - - Tables + - Table delete: operationId: DeleteConfigureTable summary: Delete a table @@ -954,14 +990,15 @@ paths: '404': description: Table not found. tags: - - Tables + - Table /api/v3/configure/distinct_cache: post: operationId: PostConfigureDistinctCache summary: Create distinct cache description: Creates a distinct cache for a table. tags: - - Tables + - Cache data + - Table requestBody: required: true content: @@ -1001,7 +1038,8 @@ paths: '409': description: Cache already exists. tags: - - Tables + - Cache data + - Table delete: operationId: DeleteConfigureLastCache summary: Delete last cache @@ -1028,7 +1066,8 @@ paths: '404': description: Cache not found. tags: - - Tables + - Cache data + - Table /api/v3/configure/processing_engine_trigger: post: operationId: PostConfigureProcessingEngineTrigger @@ -1289,6 +1328,52 @@ paths: description: Processing failure. tags: - Processing engine + /api/v3/configure/enterprise/token: + post: + operationId: PostCreateResourceToken + summary: Create a resource token + description: | + Creates a resource (fine-grained permissions) token. + A resource token is a token that has access to specific resources in the system. + + This endpoint is only available in InfluxDB 3 Enterprise. + responses: + '201': + description: | + Success. The resource token has been created. + The response body contains the token string and metadata. + content: + application/json: + schema: + $ref: '#/components/schemas/ResourceTokenObject' + '401': + $ref: '#/components/responses/Unauthorized' + tags: + - Authentication + - Token + /api/v3/configure/enterprise/token/admin: + post: + operationId: PostCreateAdminToken + summary: Create admin token + description: | + Creates an admin token. + An admin token is a special type of token that has full access to all resources in the system. + + This endpoint is only available in InfluxDB 3 Enterprise. + responses: + '201': + description: | + Success. The admin token has been created. + The response body contains the token string and metadata. + content: + application/json: + schema: + $ref: '#/components/schemas/AdminTokenObject' + '401': + $ref: '#/components/responses/Unauthorized' + tags: + - Authentication + - Token /api/v3/configure/enterprise/token/admin/regenerate: post: operationId: PostRegenerateAdminToken @@ -1304,14 +1389,12 @@ paths: content: application/json: schema: - type: object - example: - {"id":0,"name":"_admin","token":"apiv3_00xx0Xx0xx00XX0x0","hash":"00xx0Xx0xx00XX0x0","created_at":"2025-04-18T14:02:45.331Z","expiry":null} + $ref: '#/components/schemas/AdminTokenObject' '401': $ref: '#/components/responses/Unauthorized' - tags: + tags: - Authentication - - Tokens + - Token components: parameters: AcceptQueryHeader: @@ -1448,6 +1531,67 @@ components: schema: $ref: '#/components/schemas/QueryRequestObject' schemas: + AdminTokenObject: + type: object + properties: + id: + type: integer + name: + type: string + token: + type: string + hash: + type: string + created_at: + type: string + format: date-time + expiry: + format: date-time + example: + id: 0 + name: _admin + token: apiv3_00xx0Xx0xx00XX0x0 + hash: 00xx0Xx0xx00XX0x0 + created_at: '2025-04-18T14:02:45.331Z' + expiry: null + ResourceTokenObject: + type: object + properties: + token_name: + type: string + permissions: + type: array + items: + type: object + properties: + resource_type: + type: string + enum: + - system + - db + resource_identifier: + type: array + items: + type: string + actions: + type: array + items: + type: string + enum: + - read + - write + expiry_secs: + type: integer + description: The expiration time in seconds. + example: + token_name: All system information + permissions: + - resource_type: system + resource_identifier: + - '*' + actions: + - read + expiry_secs: 300000 ContentEncoding: type: string enum: @@ -1489,13 +1633,10 @@ components: description: | Acknowledges a successful write without waiting for WAL persistence. - #### Data flow in InfluxDB 3 Enterprise + #### Related - 1. **Incoming writes**: The system validates incoming data and stores it in the write buffer (in memory). If the `no_sync` write option is enabled (`no_sync=true`), the server sends a response to acknowledge the write. - 2. **WAL flush**: Every second (default), the system flushes the write buffer to the Write-Ahead Log (WAL) for persistence in the Object store. If `no_sync=false` (default), the server sends a response to acknowledge the write. - 3. **Query availability**: After WAL persistence completes, data moves to the queryable buffer where it becomes available for queries. By default, the server keeps up to 900 WAL files (15 minutes of data) buffered. - 4. **Long-term storage in Parquet**: Every ten minutes (default), the system persists the oldest data from the queryable buffer to the Object store in Parquet format. InfluxDB keeps the remaining data (the most recent 5 minutes) in memory. - 5. **In-memory cache**: InfluxDB puts Parquet files into an in-memory cache so that queries against the most recently persisted data don't have to go to object storage. + - [Use the HTTP API and client libraries to write data](/influxdb3/enterprise/write-data/api-client-libraries/) + - [Data durability](/influxdb3/enterprise/reference/internals/durability/) PrecisionWriteCompatibility: enum: - ms @@ -1814,11 +1955,14 @@ x-tagGroups: tags: - Quick start - Authentication + - Cache data - Common parameters - Response codes - Compatibility endpoints - - Data I/O - - Databases + - Database - Processing engine - Server information - - Tables + - Table + - Token + - Query data + - Write data