fix(vale): use wrapper, add missing configs, disable noisy rules#7026
fix(vale): use wrapper, add missing configs, disable noisy rules#7026jstirnaman merged 3 commits intomasterfrom
Conversation
- Switch CI vale-check.sh from direct Docker to .ci/vale/vale.sh wrapper (uses local binary when available, falls back to Docker with pinned version) - Add "Install Vale" step to workflow for faster CI runs without Docker - Add missing core and clustered product config mappings to get_vale_config() - Disable high-false-positive style rules (passive voice, weasel words, cliches, first person, future tense) across all 6 Vale configs — these are better handled contextually by LLMs during content review - Keep all mechanical rules active (branding, spelling, capitalization, date format, repeated words, etc.)
Vale Style Check Results
Warnings (38)
Showing first 20 of 38 warnings. ✅ Check passed |
Auto code reviewNo issues found. Checked for bugs and CLAUDE.md compliance. 🤖 Generated with Claude Code |
- vale-linting: update execution docs (binary-first, Docker fallback), expand disabled rules table (4 → 19), add URL limitation section, add CI workflow files to Related Files table - vale-rule-config: add URL limitation note, replace stale product config example with cross-reference to vale-linting skill
Development Plan (preserved by cleanup workflow)Full plan details from Plan: Document v1.12.3Source
ObjectiveOSS and Enterprise v1.12.3 release is partially documented. Enterprise documentation is not yet published (pending decision). The following items need to be documented. Milestone: v1.12.3 (release:pending)
Outstanding issue (partially covered by #6950):
All milestone issues are labeled Existing PRs
Work streamsThree deliverables, in order:
Tasks0. Source analysis (prerequisite)
1. Enterprise follow-up PREnterprise
|
| File | Issues |
|---|---|
content/enterprise_influxdb/v1/tools/influxd-ctl/_index.md |
#6843 |
content/enterprise_influxdb/v1/tools/influxd-ctl/backup.md |
#6846, #6851, #6713 |
content/enterprise_influxdb/v1/tools/influxd-ctl/show-shards.md |
#6845 |
content/enterprise_influxdb/v1/administration/configure/config-data-nodes.md |
#6844, #6803 |
content/enterprise_influxdb/v1/tools/api.md |
#6837, #6838, #6839, #6802 |
content/enterprise_influxdb/v1/query_language/ (TBD) |
#6805 |
content/enterprise_influxdb/v1/about-the-project/release-notes.md |
all |
content/influxdb/v1/tools/api.md |
#6837, #6838, #6839, #6802 |
content/influxdb/v1/query_language/ (TBD) |
#6805 |
content/influxdb/v1/about_the_project/release-notes.md |
#6837, #6838, #6839, #6802, #6805 |
TBD (new page for influx-meta cleanup-shards) |
#6842 |
Source Analysis Results
Each issue below includes the docs-v2 issue description, the source PR, and corroboration against the v1.12.3 source code.
#6846 — influxd-ctl backup validates -from node exists
Docs issue: influxd-ctl backup now validates that the data node specified with -from exists in the cluster before starting the backup. Previously, specifying a non-existent node could lead to confusing errors. Now the command fails immediately with: data node "<addr>" does not exist. Enterprise 1.12.3+.
Source PR: plutonium#4228 (cherry-picked as #4319, merged 2025-09-30)
Files: cmd/influxd-ctl/backup/command.go, cmd/integration_backup_test.go
Corroboration: ✅ Confirmed in cmd/influxd-ctl/backup/command.go:610-621. The Init() method iterates cmd.nodes checking node.TCPHost == cmd.ca.Addr. Error format matches: fmt.Errorf("data node %q does not exist", cmd.ca.Addr).
Additional context: PR #4406 ("smarter data node selection", cherry-picked as #4412, merged 2026-02-17) builds on this — it adds fallback logic when the -from node doesn't own the shard, preferring other owners sorted by recency.
#6845 — New -e flag on influxd-ctl show-shards
Docs issue: A new -e flag has been added to influxd-ctl show-shards. By default, expired shards are filtered out. When -e is passed, expired shards are included. Example: influxd-ctl show-shards -e. Enterprise 1.12.3+.
Source PR: plutonium#4306 (cherry-picked as #4338, merged 2025-10-06)
Files: cmd/influxd-ctl/show/shards.go, meta/control/client.go, meta/control/client_internal_test.go
Corroboration: ✅ Confirmed in cmd/influxd-ctl/show/shards.go:46:
fs.BoolVar(&showExpiredShards, "e", false, "includes expired shards in display")Passed to c.ShowShards(verbose, metadataConsistency, showExpiredShards) at line 58.
#6844 — New cluster config timeout options ⚠️ RENAMED
Docs issue: Two new [cluster] config options: storage-read-timeout (default "15m") and storage-write-timeout (default "15m"). Read/write inactivity timeouts for Storage API RPC operations. Resettable on each operation. Clamped to shard-reader-timeout/shard-writer-timeout when non-zero. Set to "0" to disable. Enterprise 1.12.3+.
Source PRs:
- plutonium#4398 (cherry-picked as #4411, merged 2026-02-12): Added
StorageReadTimeout/StorageWriteTimeoutwith TOML keysstorage-read-timeout/storage-write-timeoutand clamping viaNormalizeStorageTimeouts().
Files:cluster/config.go,cluster/service.go,cluster/shard_mapper.go,cluster/storage_timeout_test.go,cmd/influxd/run/server.go,etc/config.sample.toml
Context: Fixed yamux stream pile-up during flux queries across nodes (EAR#6292). - plutonium#4433 (cherry-picked as #4434, merged 2026-03-02): Renamed
storage-*-timeout→rpc-resettable-*-timeout, removed clamping, broadened scope from Storage API to all incoming RPC connections.
Source issue: plutonium#4418
Corroboration:
Actual TOML config keys in v1.12.3:
| Config key | Type | Default | Section | Description |
|---|---|---|---|---|
rpc-resettable-read-timeout |
duration | "15m" |
[cluster] |
Read inactivity timeout for incoming RPC connections. Resets on each read. Set to "0" to disable. |
rpc-resettable-write-timeout |
duration | "15m" |
[cluster] |
Write inactivity timeout for incoming RPC connections. Resets on each write. Set to "0" to disable. |
Discrepancies from issue description:
- Names changed:
storage-read-timeout→rpc-resettable-read-timeout,storage-write-timeout→rpc-resettable-write-timeout - Clamping removed: no longer clamped to
shard-reader-timeout/shard-writer-timeout - Scope broadened: applies to all incoming RPC connections, not just Storage API
Source: cluster/config.go:55-63, etc/config.sample.toml
#6843 — New -timeout global flag for influxd-ctl
Docs issue: A new -timeout <duration> global flag for influxd-ctl. Overrides the default 10-second timeout for all operations. Example: influxd-ctl -timeout 30s show-shards. Enterprise 1.12.3+.
Source PR: plutonium#4342 (cherry-picked as #4393, merged 2026-01-02)
Files: cmd/influxd-ctl/config/config.go, cmd/influxd-ctl/main.go, cmd/influxd-ctl/show/node_test.go, cmd/integration_restore_test.go, cmd/integration_timeout_test.go, cmd/testhelper/integration.go, meta/control/client.go
Corroboration: ✅ Confirmed in cmd/influxd-ctl/main.go:101:
flag.DurationVar(&cmdConfig.Timeout, "timeout", 10*time.Second, "Override default timeout of 10s")Global flag defined before subcommand parsing. Stored in cmdConfig.Timeout and passed to all subcommands.
#6842 — New influx-meta cleanup-shards command
Docs issue: A new influx-meta cleanup-shards command to clean up shards and shard groups in the metadata of a live cluster. Removes shards with no owners, removes empty shard groups, displays summary for confirmation, fails safely if metadata is modified while running. Enterprise 1.12.3+.
Source PR: plutonium#4345 (merged 2025-10-24)
Files: cmd/influx-meta/cmd/cleanupshards.go, cmd/influx-meta/cmd/cleanupshards_test.go, cmd/influx-meta/cmd/mockgen/cleanupshards_mock.go
Corroboration: ✅ All four behaviors from the issue confirmed in source:
- Shards with no owners removed:
slices.DeleteFunc()filtering on owner count (cleanupshards.go:170-234) - Empty shard groups removed: after orphan shard removal, groups with no shards are removed
- Summary displayed: tab-separated table with ID, Database, RP, Shard Group, Start, End
- Safe failure:
VerifyClusterDataUnchanged()checks metadata twice usinggoogle/go-cmpdeep comparison
influx-meta binary context: Existing binary at cmd/influx-meta/ with 9 subcommands:
import, export, make-node-passive, convert, cleanup-shards, renumber-shard-groups, set-shard-group, fix-shard-owners, make-node-active
Root description: "Export and edit meta data in a live InfluxDB 1.x cluster. Use with GREAT caution."
Global flags (inherited by all subcommands):
| Flag | Type | Default | Description |
|---|---|---|---|
--host |
string | localhost:8091 |
address:port of meta node |
--config |
string | $HOME/.influx-meta.yaml |
config file path |
Prerequisites (from source code comments): No concurrent metadata-modifying operations (disable anti-entropy, stop influxd-ctl ops). Check shard end times with SHOW SHARDS — ensure no shards within 30 min of end time.
Page structure decision: influx-meta currently has no documentation pages. Need new page(s) — at minimum content/enterprise_influxdb/v1/tools/influx-meta/cleanup-shards.md.
#6839 — CQ diagnostics in /debug/vars
Docs issue: /debug/vars now includes CQ diagnostic information under a "cq" key. Aids monitoring and troubleshooting CQ execution. OSS and Enterprise 1.12.3+.
Source PR: influxdb#26874 (merged 2025-10-03)
Files: cmd/influxd/run/server.go, monitor/service.go, monitor/service_test.go, services/continuous_querier/service.go, services/httpd/handler.go
Corroboration: ✅ Confirmed. The PR body shows the exact output format:
"cq": {
"queryFail": 0,
"queryOk": 2
}Clarification: The issue says "diagnostics" but the implementation uses the statistics interface, not Diagnostics() (which returns empty — service.go:175-177). The CQ Statistics() method (service.go:162-171) returns a models.Statistic with name "cq" containing queryOk and queryFail counters. These are rendered under the statistics section of /debug/vars.
The distinction matters for docs: this data appears in the statistics section of the response, not the diagnostics section. The keys are queryOk (camelCase) and queryFail (camelCase).
#6838 — Running configuration in /debug/vars
Docs issue: /debug/vars now includes a "config" key containing the running server configuration. Useful for remote diagnostics without direct config file access. toml.Size → integers (bytes); toml.Duration → human-readable duration strings. OSS and Enterprise 1.12.3+.
Source PR: influxdb#26624 (merged 2025-08-20)
Files: cmd/influxd/run/server.go, monitor/service.go, monitor/service_test.go, services/httpd/handler.go, tsdb/config.go
Corroboration: ✅ Confirmed. The PR body shows the exact output structure:
"config": {
"aggressive-points-per-block": 10000,
"cache-max-memory-size": 1073741824,
"cache-snapshot-memory-size": 26214400,
"cache-snapshot-write-cold-duration": "10m0s",
"compact-full-write-cold-duration": "4h0m0s",
"compact-throughput": 50331648,
"compact-throughput-burst": 50331648,
"dir": "/home/foo/.influxdb/data",
"max-concurrent-compactions": 0,
"max-index-log-file-size": 1048576,
"max-series-per-database": 1000000,
"max-values-per-tag": 100000,
"series-file-max-concurrent-compactions": 0,
"series-id-set-cache-size": 100,
"strict-error-handling": false,
"wal-dir": "/home/foo/.influxdb/wal",
"wal-fsync-delay": "0s"
}Registered via m.RegisterDiagnosticsClient("config", m.TSDBConfig) in monitor/service.go:164-165. Type conversions in services/httpd/handler.go:2701-2723.
Note for Enterprise: The Enterprise [cluster] config also exposes its fields via its own Diagnostics() method (cluster/config.go:138-159), including dial-timeout, pool-max-idle-streams, shard-reader-timeout, rpc-resettable-*-timeout, cluster-tracing, etc.
#6837 — New time_format query parameter
Docs issue: A new time_format query parameter on /query. Accepted values: rfc3339, epoch (default: epoch). rfc3339 returns timestamps as RFC3339Nano strings. epoch preserves existing behavior with precision parameter. Invalid values return 400 Bad Request. OSS and Enterprise 1.12.3+.
Source PR: influxdb#26596 (merged 2025-07-10)
Files: services/httpd/handler.go, services/httpd/handler_test.go
Corroboration: ✅ All four points from the issue confirmed:
- Accepted values:
rfc3339,epoch—handler.go:635-638definestimeFormats := []string{"rfc3339", "epoch"} - Default:
epoch—handler.go:641:if timeFormat == "" { timeFormat = "epoch" } - RFC3339Nano output:
handler.go:809-812callsconvertToTimeFormat(r, time.RFC3339Nano) - 400 on invalid:
handler.go:643-644:"Time format must be one of the following: rfc3339,epoch"
Additional detail from source: When time_format=epoch, the existing epoch precision parameter (u, ms, s, m, h) continues to work via convertToEpoch(r, epoch) at line 807-808.
Endpoints: GET /query (line 200), POST /query (line 204).
#6713 — Document influxd-ctl backup changes
Docs issue: Document new flags for influxd-ctl backup: gzipCompressionLevel, cpuprofile, bufsize, gzipBlockCount, gzipBlockSize. Include performance characteristics for gzipCompressionLevel. Assigned to @devanbenz.
Source PR: plutonium#4375 (cherry-picked as #4400, merged 2026-01-07)
Files: cluster/config.go, cluster/service.go, cmd/influxd-ctl/backup/command.go, etc/config.sample.toml
Corroboration: ✅ All 5 flags confirmed in cmd/influxd-ctl/backup/command.go:170-180:
| Flag | Type | Default | Description | In #6950? |
|---|---|---|---|---|
-gzipCompressionLevel |
string | "default" |
Compression level: default, full, speedy, none |
✅ Yes |
-gzipBlockCount |
int | runtime.GOMAXPROCS(0) |
Concurrent compression blocks. Recommended: 1-2x CPU cores | ✅ Yes |
-gzipBlockSize |
int | 1048576 (1 MB) |
Block size for gzip. Recommended: >1 MB for performance | ✅ Yes |
-bufsize |
uint64 | 1048576 (1 MB) |
Buffer size for writing gzip files | ❌ Not in #6950 |
-cpuprofile |
string | "" |
Write CPU profile to file | ❌ Not in #6950 |
Validation: gzipBlockSize > 0, gzipBlockCount > 0 (command.go:245-251).
#6851 — Smarter data node selection for backups
Docs issue: When backing up a shard, skip copies with zero bytes and select the most recently written copy first. Keep trying shard copies from owning nodes until success or no more copies available. New -staleness-threshold flag: during incremental backups, skip shards whose last write time is within this duration from the last backup. Defaults to cache-snapshot-write-cold-duration (currently 10 minutes). Enterprise 1.12.3+.
Source PR: plutonium#4406 (cherry-picked as #4412, merged 2026-02-17)
Files: cmd/influxd-ctl/backup/command.go, cmd/influxd-ctl/backup/command_test.go, cmd/integration_backup_test.go
Corroboration: ✅ Confirmed in cmd/influxd-ctl/backup/command.go:
New flag (line 181):
fs.DurationVar(&ca.StalenessThreshold, "staleness-threshold", DefaultStalenessThreshold,
"For incremental backups, shards within this duration of the existing backup are considered current and skipped.")| Flag | Type | Default | Description |
|---|---|---|---|
-staleness-threshold |
duration | tsdb.DefaultCacheSnapshotWriteColdDuration (10m) |
For incremental backups, skip shards modified within this duration of the existing backup |
Validation: must be non-negative (line 253).
Behavior details from source:
- Zero-byte filtering (line 914):
slices.DeleteFunc(allSources, func(si SourceInfo) bool { return si.Size == 0 })— copies with zero bytes are skipped - Recency sorting (line 948): sources sorted by
Modifiedtime descending — most recently written copy tried first - Staleness check (line 928/972-984):
IsShardBackupCurrent()returns true when the backup time + staleness threshold is after the shard's modification time AND the backup is at least as large as the shard - Fallback (line 935): if the most recent copy is current, stale copies (modified before backup time) are filtered, and remaining copies are tried in recency order
#6805 — SHOW QUERIES displays user
Docs issue: The user is now printed for each query shown with SHOW QUERIES. Assists organizations sharing a single InfluxDB instance to attribute queries for performance analysis or debugging. OSS and Enterprise 1.12.3+.
Source PR: plutonium#4379 (merged 2025-11-20)
Files: cluster/statement_executor.go, cmd/integration_show_queries_test.go, rpc/rpc.go
Related OSS PRs: influxdb#26980
Corroboration: ✅ Confirmed in both repos.
OSS columns (query/task_manager.go:34):
qid | query | database | duration | status | user
Enterprise columns (cluster/statement_executor.go:93):
qid | node_id | tcp_host | query | database | duration | status | user
The user column is the last column in both. Enterprise adds node_id and tcp_host columns (positions 2 and 3) compared to OSS.
The user value comes from q.User in the query info. For unauthenticated queries, this will be an empty string.
Note: Enterprise's implementation in cluster/statement_executor.go fans out ShowQueriesRequest RPCs to all data nodes and aggregates results. The User field is propagated through rpc/rpc.go.
#6803 — Reload log level on SIGHUP
Docs issue: The log level can now be changed without stopping the node by sending SIGHUP. Very helpful for debugging without rebooting data nodes. Enterprise only, not OSS.
Source PR: plutonium#4237 (merged 2025-05-06)
Files: cmd/influxd/run/command.go, cmd/influxd/run/command_test.go, cmd/influxd/run/config.go, cmd/influxd/run/config_test.go
Corroboration: ✅ Confirmed Enterprise-only. No SIGHUP handling in OSS cmd/influxd/run/.
SIGHUP handler (cmd/influxd/run/command.go:213-246):
- Listens for
syscall.SIGHUPviasignal.Notify - Reloads the full config from the config file path
- Reloads TLS managers (certificates)
- Reloads entitlements (license)
- Reloads anti-entropy service (closes and re-opens)
- Dynamically changes log level:
config.Logging.Level.SetLevel(reloadedConfig.Logging.Level.Level())
Workflow: Edit the config file's [logging] section to change level, then send SIGHUP to the data node process:
kill -SIGHUP <pid>Log message on receipt: "Received SIGHUP. Attempting to reload licence information and anti-entropy configuration."
Log message on level change: "configured logger" with format and level fields.
What is reloaded on SIGHUP (beyond log level):
- TLS certificates (cluster inter-node TLS)
- Entitlements/license
- Anti-entropy service configuration
#6802 — Per-user query response bytes statistic
Docs issue: Admins can now see how many bytes each user has queried. Available in /debug/vars, SHOW STATS, and _internal database. OSS and Enterprise 1.12.3+.
Source PR: influxdb#27188 (merged 2026-02-06)
Files: services/httpd/config.go, services/httpd/handler.go, services/httpd/handler_test.go, services/httpd/service.go, pkg/data/gensyncmap/gensyncmap.go
Corroboration: ✅ Confirmed in services/httpd/:
Configuration (config.go:68):
| Config key | Type | Default | Env var | Section |
|---|---|---|---|---|
user-query-bytes-enabled |
bool | false |
INFLUXDB_HTTP_USER_QUERY_BYTES_ENABLED |
[http] |
Statistics structure (handler.go:484-498, service.go:51-56):
- Measurement name:
userquerybytes - Tag:
user(tag key fromStatUserTagKey = "user") - Tag value for unauthenticated:
(anonymous)(fromStatAnonymousUser) - Field:
userQueryRespBytes(fromstatUserQueryRespBytes) - Additional inherited tags:
bind(HTTP bind address)
Example output (from PR):
> SHOW STATS FOR 'userquerybytes'
name: userquerybytes
tags: bind=:8086, user=FRED
userQueryRespBytes
------------------
9009874
_internal database schema:
> SELECT * FROM userquerybytes
name: userquerybytes
time bind hostname user userQueryRespBytes
---- ---- -------- ---- ------------------
1770405340000000000 :8086 myhost FRED 476
Visibility in /debug/vars: Only appears when user-query-bytes-enabled is true AND at least one user has made a query. Admin-only when pprof-auth-enabled is true.
PR #6950 link check fixes
PR link check found 28 broken fragment links (first run) + 13 additional (second run). All resolved.
Fixed (in this branch, first pass)
| Broken link | Fix | File |
|---|---|---|
config-data-nodes/#https-insecure-certificate |
Added #### https-insecure-certificate heading to [cluster] section |
config-data-nodes.md |
config-data-nodes/#https-insecure-certificate-1 |
Added #### https-insecure-certificate heading to [http] section (Hugo generates -1 suffix) |
config-data-nodes.md |
config-data-nodes/#advanced-expiration |
Added #### advanced-expiration heading to [tls] section |
config-data-nodes.md |
backup/#backup-compression |
Added -gzipBlockCount, -gzipBlockSize, -gzipCompressionLevel to flags table; changed release notes link to backup/#flags |
backup.md, release-notes.md |
Fixed (second pass — CI run #23826485679)
| Broken link | Fix | File |
|---|---|---|
github.com/influxdb/influxdb/issues/4275 (404) |
Wrong GitHub org: influxdb → influxdata |
manage-database.md (enterprise + OSS) |
wiki.mozilla.org/...#Modern_compatibility (fragment gone) |
Removed #Modern_compatibility fragment |
config.md (OSS) |
config-data-nodes/#pprof-enabled-1 |
Only one pprof-enabled heading exists → #pprof-enabled |
release-notes.md |
authentication_and_authorization/#authenticate-requests |
Old page is now an alias → rewrote to configure/security/authentication/ |
query_language/_index.md |
authentication_and_authorization/#user-types-and-privileges |
→ manage/users-and-permissions/authorization-influxql/#non-admin-users |
query_language/_index.md |
authentication_and_authorization/#user-management-commands |
→ manage/users-and-permissions/authorization-influxql/#user-management-commands |
query_language/_index.md |
backup-and-restore/#example |
Heading is "Example: export and import..." → #example-export-and-import-for-disaster-recovery |
backup-and-restore.md |
backup-and-restore/#perform-a-metastore-only-backup |
Heading says "metadata" not "metastore" → #perform-a-metadata-only-backup |
backup-and-restore.md |
backup-and-restore/#restore-from-a-full-backup |
Heading is "Restore from a -full backup" → #restore-from-a--full-backup |
backup-and-restore.md |
replacing-nodes/#replace-a-data-node-in-an-influxdb-enterprise-cluster |
Heading uses plural "nodes" → #replace-data-nodes-in-an-influxdb-enterprise-cluster |
replacing-nodes.md |
replacing-nodes/#31-kill-the-meta-process-on-the-leader-node |
Heading 3.1 - produced triple-hyphen slug; changed heading to 3.1. format |
replacing-nodes.md |
replacing-nodes/#32-remove-and-replace-the-old-leader-node |
Same: 3.2 - → 3.2. format |
replacing-nodes.md |
replacing-nodes/#2-1-provision-a-new-meta-node |
Hugo removes . without hyphen → #21-provision-a-new-meta-node |
replacing-nodes.md |
Also fixed (pre-existing broken links, all resolved)
Old path /administration/configuration/ (should be /configure/config-data-nodes/) FIXED
/administration/configuration/ (should be /configure/config-data-nodes/)Source: release-notes.md (old release entries) — paths updated to /configure/config-data-nodes/.
Old path /administration/config-data-nodes (missing /configure/) FIXED
/administration/config-data-nodes (missing /configure/)All occurrences in upgrading.md, replacing-nodes.md, config-meta-nodes.md updated to /configure/config-data-nodes/ with correct fragments.
Old path /administration/config-meta-nodes + default value suffix FIXED
/administration/config-meta-nodes + default value suffixinfluxd-ctl/_index.md updated to configure/config-meta-nodes/#auth-enabled.
Fragment includes default value FIXED
release-notes.md:#termination-query-log→#termination-query-log--false;#max-values-per-tag-100000→#max-values-per-tag
Self-reference #meta-internal-shared-secret in config-meta-nodes.md FIXED
#meta-internal-shared-secret in config-meta-nodes.mdChanged to #internal-shared-secret (2 occurrences).
Missing/wrong headings in spec.md FIXED
- Removed ToC entry for non-existent
#query-engine-internals #execution-time→#execution_time;#planning-time→#planning_time#understanding-iterators/#understanding-cursors→ replaced with links to existing#iterator-type/#cursor-typesections
Redirected/wrong paths FIXED
authentication_and_authorization/#set-up-authentication→configure/security/authentication/#enable-authentication(intools/api.md,query_language/_index.md)query_management/#list-currently-running-queries-with-show-queries→ addedinfluxql_query_management/to path (inspec.md)influxql_query_management.md: fixedcoordinatorlink text →[cluster], path →configure/config-data-nodes/#cluster
Glossary and misc FIXED
glossary/#replication-factor→#replication-factor-rfin 10 enterprise files (OSS refs left as-is — correct there)backup-and-restore/#restore→#restore-utilityinmigration.md- Mozilla wiki
#Modern_compatibilityfragment removed from external link inconfig-data-nodes.md
Notes
- The OSS and Enterprise
api.mdfiles are independent (no sharedsourcefrontmatter) — each needs separate edits. - PR feat(enterprise): InfluxDB Enterprise v1.12.3 release #6950 is already reviewed. Do not add new content to it.
- Enterprise inherits OSS HTTP handler code (including
time_format,/debug/varsstats,userquerybytes) via go.mod replace directive (influxdb v1.12.3-rc.0.0.20260227181538-f3d5cb68ab25). - Issue New
storage-read-timeoutandstorage-write-timeoutcluster config options #6844: Fields were renamed post-issue-filing. Document asrpc-resettable-read-timeout/rpc-resettable-write-timeout(the actual TOML keys in v1.12.3). Clamping was also removed. influx-metabinary currently has no documentation pages. Decide whether to create just thecleanup-shardspage or document the full binary.-cpuprofileflag on backup is a debugging/profiling tool — consider whether it belongs in user-facing docs or just-bufsize.- Reload log level configuration on SIGHUP #6803 SIGHUP reload is Enterprise-only — also reloads TLS certs, entitlements, and anti-entropy, not just log level.
- Added a new statistic for per-user query response bytes #6802
userquerybytesis off by default — requires explicit opt-in via config or env var. - SHOW QUERIES displays the user who initiated a query #6805 SHOW QUERIES
usercolumn: Enterprise output has 8 columns (includesnode_id,tcp_host); OSS has 6 columns.
Cleanup
- Close DAR#628 — "docs(v1): document undocumented v1.12.3 features". All 6 features listed there (
time_format, dynamic logging,/debug/varsconfig,/debug/varscq, TLS cert reload on SIGHUP, user query bytes) are covered by issues in this plan (Newtime_formatquery parameter for HTTP API #6837, Reload log level configuration on SIGHUP #6803, Running configuration exposed via/debug/varsendpoint #6838, Continuous query statistics exposed via/debug/varsendpoint #6839, Reload log level configuration on SIGHUP #6803, Added a new statistic for per-user query response bytes #6802).
…aster (#7068) * fix(vale): add SQL/InfluxQL keywords to Acronyms rule exceptions (#7023) * fix(vale): add SQL/InfluxQL keywords to Acronyms rule exceptions The Acronyms rule matches any 3-5 uppercase letter word and suggests spelling it out. This causes high-noise, low-signal warnings for standard SQL/InfluxQL keywords (FROM, JOIN, WHERE, GROUP, ORDER, etc.) that are conventionally written in uppercase in queries and prose. Add ~90 common SQL/InfluxQL keywords to the exceptions list so they stop triggering the "spell out acronym" suggestion. https://claude.ai/code/session_01JZPd1PjSCLJW5NrT2AbSTF * fix(vale): address Copilot review on Acronyms exceptions - Quote YAML reserved words: "NULL", "ON", "TRUE" to prevent parsing as null/boolean - Remove BY (2 chars, outside the 3-5 char rule pattern) - Add NAME alongside NAMES for InfluxQL coverage https://claude.ai/code/session_01JZPd1PjSCLJW5NrT2AbSTF --------- Co-authored-by: Claude <noreply@anthropic.com> * fix(ci): Prevent workflow re-runs from overwriting successful PR check status (#7025) * Initial plan * fix(ci): Prevent workflow re-runs from overwriting successful PR check status Add check-existing-success job to doc-review, auto-label, and pr-preview workflows. When a re-run (attempt > 1) detects that successful check runs already exist for the same commit from a different workflow run, it aborts to prevent "skipped" status from overwriting "success" in the PR Checks UI. Agent-Logs-Url: https://github.com/influxdata/docs-v2/sessions/8124b791-ebd6-4cc7-bee9-17493a141d94 Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com> * fix(ci): Only abort re-runs that would skip jobs, not those that would execute Refined the fix to only abort re-runs when: 1. This is a re-run (attempt > 1) 2. The job conditions would cause jobs to SKIP (not actually execute) 3. Successful check runs already exist for this commit Re-runs that would actually execute jobs (and potentially fail) are allowed to proceed because failures are important information. Agent-Logs-Url: https://github.com/influxdata/docs-v2/sessions/8124b791-ebd6-4cc7-bee9-17493a141d94 Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com> * fix(ci): Include check job names in successful run detection Address code review feedback by including the check job names in the list of jobs to check for successful runs, ensuring consistency. Agent-Logs-Url: https://github.com/influxdata/docs-v2/sessions/8124b791-ebd6-4cc7-bee9-17493a141d94 Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com> * feat(enterprise): InfluxDB Enterprise v1.12.3 release (#6950) * Revert "InfluxDB 1.12.3 release (#6872)" This reverts commit 14e021a. * fix(v1): split v1.12.3 release — publish OSS, defer Enterprise pending GA Revert the combined InfluxDB 1.12.3 release commit and re-add only OSS v1.12.3 documentation. Enterprise v1.12.3 docs will be published in a separate PR once the release artifact is GA in the portal. Also adds FUTURE/PAST LIMIT ordering caution for users on versions prior to v1.12.3 (from copilot/restore-ordering-warning-influxql). * chore: document separate OSS/Enterprise PR workflow for v1 releases Update the influxdb1-tech-writer agent, v1 release PR template, and prepare-release-notes command to enforce the practice of always creating separate PRs for OSS v1 and Enterprise v1 releases. Enterprise must wait for GA in the portal before merging. * fix(enterprise): restore FUTURE/PAST LIMIT grammar productions in InfluxQL spec The revert of the combined v1.12.3 commit removed grammar production definitions (retention_future_limit, retention_past_limit) that document existing InfluxQL syntax, not v1.12.3-specific features. Restore them so the grammar is complete. * Revert "fix(enterprise): restore FUTURE/PAST LIMIT grammar productions in InfluxQL spec" This reverts commit c497f13. * fix(v1): remove incorrect FUTURE/PAST LIMIT ordering caution from OSS spec The caution stated that prior to v1.12.3, PAST LIMIT must appear before FUTURE LIMIT. This is incorrect — the correct syntax has always been FUTURE LIMIT before PAST LIMIT. The v1.12.3 fix addresses Enterprise meta-node recording of limits, not parser syntax order. * fix(enterprise): correct FUTURE/PAST LIMIT documentation for v1.12.2 (closes #6590) The correct InfluxQL syntax has always been FUTURE LIMIT before PAST LIMIT. The old docs incorrectly showed PAST before FUTURE in grammar definitions, examples, and section ordering. Also fixes a broken glossary anchor link for replication factor and adds missing production rule definitions to the spec. * style(enterprise): clean up InfluxQL spec formatting and fix broken links - Update frontmatter: improve description, remove v2 alias, add related links - Replace absolute-URL TOC with relative-anchor TOC - Convert legacy `> **NOTE:**` callouts to `> [!Note]` format - Fix h5 headings in EXPLAIN ANALYZE section to h4 - Fix broken anchor links (#execution-time, #planning-time → #execution_time, #planning_time) - Fix cross-reference links in EXPLAIN ANALYZE to use absolute paths - Fix typos: "keywords" → "keyword", "retention polices" → "retention policies" - Rewrite KILL QUERY section with proper Syntax header and combined example block - Fix SHOW STATS headings: remove backtick-wrapping from section headings - Add [with_key_clause] to SHOW TAG KEYS grammar and add example - Remove trailing whitespace in SHOW SHARDS section - Fix 3 broken cross-references in config-meta-nodes.md to use correct /enterprise_influxdb/v1/administration/configure/config-data-nodes/ path * feat(enterprise): InfluxDB Enterprise v1.12.3 release documentation Add Enterprise v1.12.3 documentation including: - Release notes with new features and bug fixes - Configuration options: https-insecure-certificate, advanced-expiration - Backup compression flags (gzipCompressionLevel, gzipBlockCount, gzipBlockSize) - Add FUTURE/PAST LIMIT support to ALTER RETENTION POLICY (fixed in v1.12.3) Merge when Enterprise v1.12.3 is GA in the InfluxData portal. * fix(enterprise): correct FUTURE/PAST LIMIT documentation for v1.12.2 (closes #6590) (#6947) The correct InfluxQL syntax has always been FUTURE LIMIT before PAST LIMIT. The old docs incorrectly showed PAST before FUTURE in grammar definitions, examples, and section ordering. Also fixes a broken glossary anchor link for replication factor and adds missing production rule definitions to the spec. * style(enterprise): clean up InfluxQL spec and fix broken config links (#6949) * fix(enterprise): correct FUTURE/PAST LIMIT documentation for v1.12.2 (closes #6590) The correct InfluxQL syntax has always been FUTURE LIMIT before PAST LIMIT. The old docs incorrectly showed PAST before FUTURE in grammar definitions, examples, and section ordering. Also fixes a broken glossary anchor link for replication factor and adds missing production rule definitions to the spec. * style(enterprise): clean up InfluxQL spec formatting and fix broken links - Update frontmatter: improve description, remove v2 alias, add related links - Replace absolute-URL TOC with relative-anchor TOC - Convert legacy `> **NOTE:**` callouts to `> [!Note]` format - Fix h5 headings in EXPLAIN ANALYZE section to h4 - Fix broken anchor links (#execution-time, #planning-time → #execution_time, #planning_time) - Fix cross-reference links in EXPLAIN ANALYZE to use absolute paths - Fix typos: "keywords" → "keyword", "retention polices" → "retention policies" - Rewrite KILL QUERY section with proper Syntax header and combined example block - Fix SHOW STATS headings: remove backtick-wrapping from section headings - Add [with_key_clause] to SHOW TAG KEYS grammar and add example - Remove trailing whitespace in SHOW SHARDS section - Fix 3 broken cross-references in config-meta-nodes.md to use correct /enterprise_influxdb/v1/administration/configure/config-data-nodes/ path * feat(enterprise): document influxd-ctl backup improvements (#7021) * chore: update v1.12.3 documentation plan with source analysis * feat(enterprise): document influxd-ctl backup improvements Add v1.12.3 backup improvements: - `-from` now validates that the node exists in the cluster (#6846) - Smarter node selection: skip zero-byte copies, prefer most recent writes, fall back to other owners (#6851) - New `-staleness-threshold` flag for incremental backups (#6851) - New `-bufsize` and `-cpuprofile` flags (#6713) closes #6846 closes #6851 closes #6713 * fix: correct grammar in backup flags table * Update content/enterprise_influxdb/v1/tools/influxd-ctl/backup.md * feat(v1): document time_format query parameter (#7011) * feat(v1): document time_format query parameter for /query endpoint Add the new `time_format` query parameter to the /query HTTP endpoint documentation for both InfluxDB OSS v1 and Enterprise v1. This parameter lets users choose between epoch (default) and RFC3339Nano timestamp formats in query responses. closes #6837 * style(v1): fix time_format example formatting Separate curl commands from output, add metadata version tag, add parameter bullets, remove $ prompt, use json code fence. * fix(v1): metadata tag on time_format example, not RFC3339 output The metadata version tag should identify the new parameter, not the output format which was already available. * fix(v1): link time_format changelog entry to new docs section * feat(v1): document /debug/vars config and CQ statistics (#7013) * chore: update v1.12.3 documentation plan with source analysis * feat(v1): document running config in /debug/vars endpoint Add documentation for the `config` key in the `/debug/vars` HTTP endpoint response for both OSS v1 and Enterprise v1. This exposes the active TSDB storage configuration for remote diagnostics. closes #6838 * fix(v1): clarify config value types in /debug/vars docs Replace internal Go type references (toml.Size, toml.Duration) with user-facing descriptions and concrete examples from the JSON output. Link to the TSDB data settings configuration reference. * feat(v1): document CQ statistics in /debug/vars endpoint Add documentation for the `cq` key in the `/debug/vars` HTTP endpoint response for both OSS v1 and Enterprise v1. This exposes continuous query execution counters (queryOk, queryFail). closes #6839 * fix(v1): Fix broken anchor links in API documentation (#7016) * Initial plan * fix(v1): Fix broken anchor links in API documentation - Fix fragment links in OSS v1 api.md: - #api-v2-query-http-endpoint → #apiv2query-http-endpoint - #api-v2-write-http-endpoint → #apiv2write-http-endpoint - #debug-pprof-http-endpoint → #debugpprof-http-endpoint - #debug-requests-http-endpoint → #debugrequests-http-endpoint - #debug-vars-http-endpoint → #debugvars-http-endpoint - Fix fragment and path links in Enterprise v1 api.md: - #http-endpoints-settings → #http-endpoint-settings (singular) - #influxdb-20-api-compatibility-endpoints → #influxdb-2x-api-compatibility-endpoints - /influxdb/v2.x/api-guide/client-libraries → /influxdb/v2/api-guide/client-libraries - Update authentication link path and anchor Agent-Logs-Url: https://github.com/influxdata/docs-v2/sessions/6b684002-2875-4254-a87c-e45b58fcf5da Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com> * fix(feedback): map enterprise_influxdb to influxdb GitHub namespace for issue links (#7024) * Initial plan * fix(feedback): map enterprise_influxdb to influxdb GitHub namespace for issue links Agent-Logs-Url: https://github.com/influxdata/docs-v2/sessions/a50bf9d2-21e4-4c29-955a-9a263867d111 Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com> --------- Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> * feat(enterprise): document -e flag on influxd-ctl show-shards (#7014) * chore: update v1.12.3 documentation plan with source analysis * feat(enterprise): document -e flag on influxd-ctl show-shards Add the new `-e` flag that includes expired shards in the output. By default, expired shards are now filtered out. closes #6845 * feat(enterprise): document -timeout global flag for influxd-ctl (#7015) * chore: update v1.12.3 documentation plan with source analysis * feat(enterprise): document -timeout global flag for influxd-ctl Add the new `-timeout` global flag that overrides the default 10-second timeout for all influxd-ctl operations. closes #6843 * feat(v1): document user column in SHOW QUERIES output (#7017) * chore: update v1.12.3 documentation plan with source analysis * feat(v1): document user column in SHOW QUERIES output Add the `user` column to SHOW QUERIES examples and column explanations for both OSS v1 and Enterprise v1. This column displays the user who initiated the query, aiding attribution for shared instances. Also fix pre-existing omission in Enterprise docs: add `node_id` and `tcp_host` columns that were missing from the SHOW QUERIES example despite being referenced in the KILL QUERY section. closes #6805 * feat(enterprise): document SIGHUP log level reload (#7018) * chore: update v1.12.3 documentation plan with source analysis * feat(enterprise): document SIGHUP log level reload Document that sending SIGHUP to Enterprise data nodes reloads the logging level from the configuration file without requiring a restart. Also note that SIGHUP reloads TLS certs, entitlements, and anti-entropy. closes #6803 * feat(v1): document user-query-bytes-enabled config option (#7019) * chore: update v1.12.3 documentation plan with source analysis * feat(v1): document user-query-bytes-enabled config option Add the `user-query-bytes-enabled` HTTP config option for both OSS v1 and Enterprise v1. When enabled, InfluxDB tracks per-user query response bytes in the `userquerybytes` measurement. closes #6802 * feat(enterprise): document rpc-resettable-*-timeout config options (#7020) * chore: update v1.12.3 documentation plan with source analysis * feat(enterprise): document rpc-resettable-*-timeout config options Add `rpc-resettable-read-timeout` and `rpc-resettable-write-timeout` to the [cluster] config section. These are inactivity timeouts for incoming RPC connections between data nodes that reset on each successful read/write operation. Note: issue #6844 originally described these as `storage-read-timeout` and `storage-write-timeout`, but they were renamed before v1.12.3. closes #6844 * feat(enterprise): add v1.12.3 release notes and bump product version Restore Enterprise v1.12.3 release notes and products.yml bump that were lost when the fix-unpublish branch was merged into this PR. Add release note entries for features documented in later PRs (backup improvements, show-shards -e, -timeout, rpc-resettable timeouts). Port hyperlinks from OSS release notes. Fix 15+ broken links in older release notes entries. * chore(enterprise): update enterprise 1.12.3 version and binary naming convention (#7027) * chore(enterprise): add ent 1.12.3 release summary, update release notes description (#7028) * Clarify speed improvements in release notes Updated speed improvement metrics for TSI series deletion. * fix(enterprise): fix broken fragment links across v1 docs Fix 28 broken fragment links found by PR link checker: - Add missing config headings (https-insecure-certificate, advanced-expiration) - Add gzip backup compression flags to influxd-ctl backup flags table - Fix old paths (/administration/configuration/ → /configure/config-data-nodes/) - Fix fragments with default value suffixes (#max-values-per-tag-100000 → #max-values-per-tag) - Fix glossary links (#replication-factor → #replication-factor-rf) - Fix self-references in config-meta-nodes.md - Fix spec.md underscore fragments and remove dead ToC entries - Update authentication and query management link paths * fix(enterprise): fix remaining broken links from CI run #23826485679 Fix 13 link-checker errors across v1 Enterprise and OSS docs: - Fix wrong GitHub org (influxdb → influxdata) in manage-database.md - Remove stale Mozilla wiki fragment in OSS config.md - Fix pprof-enabled-1 → pprof-enabled in release-notes.md - Rewrite auth links from old alias to actual pages in query_language - Fix mismatched same-page fragments in backup-and-restore.md - Normalize heading format (3.x - → 3.x.) in replacing-nodes.md --------- Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: Scott Anderson <sanderson@users.noreply.github.com> * fix(ci): cleanup PLAN files in a separate PR, add to comment, not description (#7029) * chore(deps): update yarn dependencies Run yarn to update lockfile with latest compatible versions. * chore(ci): Install context harness management commands and workflow - **.claude/commands/plan.md**: Creates and manages PLAN.md to guide agent work in the branch. Assumed to be a temporary file. - **.claude/commands/finish.md**: Cleans up temporary planning file, generates a summary for a PR. - **.github/workflows/cleanup-ephermal-docs.yml**: Safety net workflow to remove temporary files before the branch is merged into `master` (or `main`) * Improve cleanup workflow resilience and fork compatibility (#6822) * Initial plan * fix(ci): improve cleanup workflow resilience and fork compatibility - Switch from pull_request to pull_request_target for fork compatibility - Use fetch-depth: 0 to get full history - Add git pull --rebase before push to handle concurrent merges - Soften startup hook reference to clarify it's configurable Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com> * fix(ci): add error handling and security documentation - Add fallback to regular merge if rebase fails due to conflicts - Document security considerations for pull_request_target usage - Clarify why this workflow is safe for fork PRs Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com> * fix(ci): make merge strategy explicit in fallback Use --no-rebase --no-edit flags to ensure merge doesn't prompt for editor Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com> * fix: preserve full plan details on PR instead of summary only Update the /finish command and cleanup workflow to add complete PLAN.md contents to the PR description or comments, rather than just a summary. - /finish: reads full PLAN.md and appends it to PR description (in a collapsible details block) or posts as PR comment if description is long - cleanup workflow: posts full plan contents as PR comment before removing ephemeral files, adds pull-requests:write permission for commenting https://claude.ai/code/session_019Qfh7drSHEfryWP1DPCCiy * fix: rename /plan to /task-plan to avoid shadowing built-in command Claude Code has a built-in /plan command for entering plan mode. Rename to /task-plan to avoid the conflict. https://claude.ai/code/session_019Qfh7drSHEfryWP1DPCCiy * fix: trigger cleanup workflow on push, not just PR merge The cleanup workflow only triggered on pull_request_target (closed), which doesn't cover cases where PLAN.md reaches master via direct push or squash merge without the PR event firing correctly. Add a push trigger with path filters for ephemeral files so cleanup runs regardless of how the files reach the main branch. The PR comment step is gated to only run for PR events. https://claude.ai/code/session_019Qfh7drSHEfryWP1DPCCiy * fix: create cleanup PR instead of pushing directly to protected branch The cleanup workflow was failing because master has branch protection rules that block direct pushes. The git push in the "Remove ephemeral files" step returned exit code 1. Change strategy: instead of pushing a commit directly to master, create a cleanup branch and open a PR. Use gh pr merge --auto --squash to auto-merge once required checks pass. https://claude.ai/code/session_019Qfh7drSHEfryWP1DPCCiy * fix: always post plan details as PR comment, not in description Simplify the /finish command to always use a PR comment for preserving plan details. This keeps the PR description clean and editable. https://claude.ai/code/session_019Qfh7drSHEfryWP1DPCCiy --------- Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com> * fix(vale): use wrapper, add missing configs, disable noisy rules (#7026) * fix(vale): use wrapper, add missing configs, disable noisy rules - Switch CI vale-check.sh from direct Docker to .ci/vale/vale.sh wrapper (uses local binary when available, falls back to Docker with pinned version) - Add "Install Vale" step to workflow for faster CI runs without Docker - Add missing core and clustered product config mappings to get_vale_config() - Disable high-false-positive style rules (passive voice, weasel words, cliches, first person, future tense) across all 6 Vale configs — these are better handled contextually by LLMs during content review - Keep all mechanical rules active (branding, spelling, capitalization, date format, repeated words, etc.) * chore(skills): update Vale skills with CI workflow and disabled rules - vale-linting: update execution docs (binary-first, Docker fallback), expand disabled rules table (4 → 19), add URL limitation section, add CI workflow files to Related Files table - vale-rule-config: add URL limitation note, replace stale product config example with cross-reference to vale-linting skill * chore(ci): update GitHub Actions to Node.js 24-compatible versions (#7032) Node.js 20 actions are deprecated and will be forced to Node.js 24 on June 2, 2026. Update all workflow actions to versions that natively support Node.js 24: - actions/checkout v4 → v6 - actions/github-script v7 → v8 - actions/upload-artifact v4 → v7 - actions/download-artifact v4 → v8 - actions/setup-node v4 → v6 - actions/setup-python v4 → v6 - peter-evans/create-pull-request v5/v7 → v8 * chore: remove ephemeral planning docs [skip ci] (#7034) Automated cleanup of development planning documents. These files are used during development but shouldn't persist on the main branch. Files removed: PLAN.md Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * fix(enterprise): correct RPM download URL delimiters in v1.12.3 docs (#7039) RPM package URLs used `_c` (underscore) instead of `-c` (hyphen) before the cluster version prefix, producing broken download links. Fixes across all five affected pages: data node install, meta node install, single-server install, upgrading, and migration guides. closes #7036 * Release influxdb v3.9.0 (#7045) * feat(influxdb3): Bump version to 3.9.0 * docs(enterprise): rewrite performance upgrade preview documentation (#7035) * docs(enterprise): rewrite performance upgrade preview documentation Completely rewrites the InfluxDB 3 Enterprise performance upgrade preview docs to reflect the current state of the storage layer upgrades. Adds documentation for column families, auto-DVC, bulk export, Parquet upgrade path, and updates all configuration flags to match the current codebase. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs(enterprise): refine performance upgrade preview content - Change "Private preview beta" to "Performance preview beta" - Remove Auto-DVC section from main page - Replace "legacy Parquet engine" / "new engine" with "Parquet and .pt files" - Add Parquet auto-upgrade warning to enable section - Add "What is" and "Why" section structure Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Update content/influxdb3/enterprise/admin/pachatree/_index.md Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com> * Update content/influxdb3/enterprise/admin/pachatree/_index.md Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com> * Update content/influxdb3/enterprise/admin/pachatree/_index.md Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com> * Update content/influxdb3/enterprise/admin/pachatree/_index.md Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com> * Update content/influxdb3/enterprise/admin/pachatree/configure.md Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com> * fix(enterprise): singular dedicated compactor node Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Update content/influxdb3/enterprise/admin/pachatree/_index.md Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com> * docs(enterprise): move performance preview out of admin to /performance-preview/ Moves docs from /admin/pachatree/ to /performance-preview/ for a cleaner URL and proper sidebar placement as a top-level Enterprise section. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Apply suggestions from code review * fix(enterprise): address PR review feedback - Rename --enable-auto-dvc to --pt-enable-auto-dvc (canonical flag name) - Remove broken Auto-DVC anchor link from configure page - Align notification wording with "beta" (not "private preview") - Fix notification ID dot to dash (influxdb3-9-performance-preview) - Clarify column families syntax is for line protocol Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs(influxdb3): fix configuration defaults for performance preview Correct default values based on code audit: - Change --pt-max-columns from ~6.5M to 10,000,000 (10M) - Add Enterprise default value (3d) for --pt-file-cache-recency The --pt-max-columns default was incorrect (code defines Catalog::MAX_TOTAL_COLUMNS = 10_000_000). The --pt-file-cache-recency inherits from --parquet-mem-cache-query-path-duration, which defaults to 3d in Enterprise. Code audit findings from @peterbarnett03 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs(enterprise): add downgrade-to-parquet documentation Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs(enterprise): add cross-references to performance preview (#7049) * docs(enterprise): add cross-references to performance preview overview Link key terms (Apache Parquet, series key, line protocol, Gen0, compaction levels) to their reference pages and glossary entries. Add WAL-to-Gen0 pipeline summary in the bounded compaction section. * docs(enterprise): clarify "Why these upgrades" intro wording Reorder to: existing storage layer → customer needs → upgrades extend it. Replace "default" with "existing" to avoid ambiguity and drop negative value judgment. * Update content/influxdb3/enterprise/performance-preview/_index.md --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs(enterprise): add --use-pacha-tree to influxdb3 serve CLI reference (#7046) Add CLI reference entries for the performance upgrade preview flag and grouped --pt-* tuning options, linking to the main preview page and configuration reference. * feat(enterprise): add v3.9.0 export and telemetry API endpoints (#7047) * feat(enterprise): add v3.9.0 export and telemetry API endpoints Add Export data (beta) tag and four export endpoints (databases, tables, windows, window_data) gated behind --use-pacha-tree. Add query_sql_telemetry endpoint. Update write_lp with column families docs and query endpoints with hybrid query mode note. Bump spec version to v3.9.0. * docs(api): simplify hybrid query mode wording Change 'merge results from both legacy Parquet and new .pt storage' to 'merge results from Parquet and .pt files' for clarity. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Update static/openapi/influxdb3-enterprise-openapi.yaml * Update api-docs/influxdb3/enterprise/v3/influxdb3-enterprise-openapi.yaml --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * feat(influxdb3): add v3.9.0 release notes for Core and Enterprise (#7050) Core: DataFusion upgrade, Python runtime upgrade, product identity in HTTP responses, database lifecycle hardening. Enterprise: performance upgrade preview (beta) with --use-pacha-tree, bulk data export, automatic DVC, downgrade-to-parquet, --yes/-y for delete commands, 1MB default string field limit, compaction stability. --------- Co-authored-by: peterbarnett03 <peter.barnett03@gmail.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: code-callout shortcode (#7051) Fix code-callout * style(enterprise): fix formatting in performance preview (#7052) Replace -- with em dashes and colons, remove trailing whitespace on code-callout closing tag. * Update string field value size limit from 64KB to 1MB (#7054) * Initial plan * docs(line-protocol): update string field value size limit from 64KB to 1MB Agent-Logs-Url: https://github.com/influxdata/docs-v2/sessions/bca48bb7-d708-4770-bdf4-cd2e96a20d33 Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com> * chore: add Claude Preview launch.json for dev servers (#7056) Configure Hugo dev server (port 1313) and test server (port 1315) for Claude Preview integration. * fix(dx): unblock claude worktree start and pre-push hooks (#7059) * fix(claude): remove blocking WorktreeCreate yarn install hook The synchronous WorktreeCreate hook ran yarn install with a 120s timeout, blocking the Claude Code TUI when launched with `-w`. With puppeteer and playwright in deps, the install reliably exceeds the timeout. The async SessionStart hook already handles "first session in a new worktree" via its `[ ! -d node_modules ]` guard, so the WorktreeCreate hook is redundant. Also harden SessionStart: - Skip puppeteer/playwright browser downloads - Bump timeout 120 -> 300 * fix(lefthook): disable docker-dependent pre-push hooks Comment out pre-push hooks that require docker: - prune-legacy-containers - build-pytest-image - *-pytest code-block test tasks (cloud, cloud-dedicated, cloud-serverless, clustered, telegraf, v2) These blocked pushes for any change when docker was not running locally, even when the change had nothing to do with code blocks or container management. Replace prune-legacy-containers with list-legacy-containers, a fault-safe task that exits 0 when docker is unavailable and only warns about exited influxdata-docs containers when docker is running. Run code-block tests on demand via yarn test:codeblocks:*. * fix(influxdb3): correct wal-snapshot-size example from 100MB to 100 (#7066) * Initial plan * fix(influxdb3): correct wal-snapshot-size example from 100MB to 100 Agent-Logs-Url: https://github.com/influxdata/docs-v2/sessions/b793da7d-0941-4a24-b8fd-ea0e9817ca3a Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com> * fix(enterprise): change resource_identifier to resource_names in token API docs (#7064) * Initial plan * fix(enterprise): change resource_identifier to resource_names in token API docs Agent-Logs-Url: https://github.com/influxdata/docs-v2/sessions/eb87b46a-7801-4d7e-b6d8-b0cb693bfcb6 Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com> Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com> * docs(enterprise): simplify performance preview terminology in release notes (#7053) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com> * Initial plan * fix(enterprise): squash duplicate commits — rebase perf-preview note and replication link onto correct paths (#7077) * Initial plan * fix: remove extraneous master commits from PR branch Squashes back to the clean targeted state: only the performance-preview/ directory additions that are the actual intent of this PR. Removes all unrelated commits from master that were included accidentally via 'Merge branch master into copilot/rebase-on-master'. Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com> * fix: remove extraneous master commits from PR branch Agent-Logs-Url: https://github.com/influxdata/docs-v2/sessions/71cda8c8-9176-4d88-a464-5c104d9202a4 Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com> * chore: remove .claude/launch.json (unrelated to this PR) Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com> * chore: remove ephemeral PLAN.md planning document Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com> --------- Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com> Co-authored-by: Scott Anderson <sanderson@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: peterbarnett03 <peter.barnett03@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Summary
vale-check.shfrom direct Docker invocation to.ci/vale/vale.shwrapper (uses local binary when available, falls back to Docker with pinned version)coreandclusteredproduct config mappings toget_vale_config()— files in these products were falling through to root.vale.ini, skipping product-specific branding rulesTest plan
coreandclusteredfiles use product-specific configs (check Vale output grouping)