Commit Graph

11 Commits (00846fbffd6a4fd594e79fa26d6fa8a5cf5f6266)

Author SHA1 Message Date
Jason Stirnaman 0a37d652cb
chore: add hooks and guidelines to reduce agent friction (#6999)
* chore: add hooks and guidelines to reduce agent friction

Add prompt hooks to .claude/settings.json to enforce:
- Worktree path safety (reject reads from main clone)
- Local-first search (reject WebFetch for repo content)
- Shared content awareness (remind about content/shared/)

Add agent and documentation guidelines:
- doc-triage-agent: search rules for local-first, worktree-aware,
  shared content, and parallel search
- AGENTS.md: worktree awareness and search patterns sections
- influxdb3-test-setup skill: Enterprise unavailable troubleshooting
- init-influxdb3.sh: placeholder email validation and startup health check

Addresses friction points identified in session analysis for #6991.

* chore: replace prompt hook with deterministic worktree path check

Replace the prompt-based worktree path hook with a command hook that
uses git plumbing (rev-parse --git-dir vs --git-common-dir) to detect
worktrees and block reads targeting the main clone. Works regardless
of where the worktree is located on disk.

Also add git, fzf, and common shell utilities to project allow list,
and clean up settings.local.json (remove phantom tools, duplicates).

* chore: add yarn install hooks for worktree and session start

WorktreeCreate: always install deps (new worktree needs them)
SessionStart: install only if node_modules missing (async, non-blocking)

Both skip Cypress binary and use --frozen-lockfile.
2026-03-27 20:28:10 -05:00
Jason Stirnaman a384b4e8ed
refactor(test): parameterize container paths for host-runner support (#6992)
* refactor(test): parameterize container paths for host-runner support

Enable test scripts to run both inside Docker containers (existing
behavior) and directly on the host/CI runner by replacing hardcoded
/src, /app, and /shared paths with environment variables that default
to the container values.

- Parameterize REPO_ROOT, WORK_DIR, SHARED_DIR, ENV_FILE in run-tests.sh
- Parameterize REPO_ROOT, WORK_DIR in prepare-content.sh
- Move log_file from pytest.ini to --override-ini in run-tests.sh
- Pin influxdb3-python-cli to v0.3.2 (was unpinned @main)
- Fix shellcheck warnings: quote $file, backticks to $(), while-read loop

* Update test/pytest/requirements.txt
2026-03-26 14:50:24 -05:00
Jason Stirnaman a32b566887
test(influxdb3): Improve InfluxDB 3 Core and Enterprise Docker services (#6750)
* test(influxdb3): Improve InfluxDB 3 Core and Enterprise Docker services

Improve Docker Compose services and initialization script for testing InfluxDB 3 Core and Enterprise endpoints.

compose.yaml changes:
- Add influxdb3-core service with per-worktree data isolation
- Add influxdb3-core-noauth service for endpoint testing without auth
- Add influxdb3-enterprise service with trial license configuration
- Fix env_file handling (use optional path, remove variable override)
- Add detailed usage comments for each service

New files:
- test/scripts/init-influxdb3.sh: Helper script to initialize services,
  create directories, and validate configuration

- Enterprise configuration uses shared data at ~/influxdata-docs/.influxdb3/
to persist license and data across worktrees.

- .claude/skills/influxdb3-test-setup/SKILL.md. It covers:

  1. Architecture overview - Shows the directory structure for shared vs per-worktree data
  2. Quick reference - Common commands table
  3. Setup workflows - Core only, Enterprise only, or both
  4. Worktree-specific databases - How to create isolated databases named after the worktree
  5. Test environment configuration - Setting up .env.test files for code block tests
  6. Troubleshooting - Common issues (license, auth, ports)
  7. Service comparison - Core vs Enterprise differences

  The skill references the init script but keeps database creation as a separate workflow step, allowing flexibility for different testing scenarios.

* docs(copilot): Document influxdb3-test-setup skill in Copilot instructions (#6751)

* Initial plan

* docs(copilot): Add influxdb3-test-setup skill documentation to instructions

- Add InfluxDB 3 Test Setup subsection under Testing section with quick reference commands
- Add Skills section under Specialized Instructions with all available skills
- Document influxdb3-test-setup skill alongside existing skills (cypress-e2e-testing, docs-cli-workflow, hugo-template-dev)
- Include links to skill files and brief descriptions for discoverability

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(ci): Refactor InfluxDB 3 token handling to use JSON secrets

- Store Core and Enterprise tokens as JSON files with metadata
- Update SKILL.md instructions for jq-based token extraction
- Use Docker secrets for secure token mounting in compose.yaml
- Update init-influxdb3.sh to generate JSON token files
- Refactor compose.yaml to mount token files as secrets, not binds
- Standardize API examples and environment setup for new token format

* docs(influxdb3): Update token documentation for Docker Compose and CI/CD (#6756)

- Add 'description' field to offline admin token schema alongside 'expiry_millis'
- Add new section for Docker Compose with preconfigured admin tokens
- Document Docker secrets for secure token management
- Add CI/CD setup instructions using environment variables
- Standardize on INFLUXDB3_AUTH_TOKEN environment variable

Both 'description' and 'expiry_millis' are optional fields supported
by the InfluxDB 3 server when reading preconfigured token files.

* Revert "docs(influxdb3): Update token documentation for Docker Compose and CI…" (#6757)

This reverts commit 5c786ac2fd.

---------

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
2026-01-20 17:17:36 -06:00
Jason Stirnaman 3d4f78f5c4 fix(cloudv2): Doesn't support environment references in templates 2025-03-14 18:11:16 -05:00
Jason Stirnaman 4403dd9a18 fix: LInks and headings. Replace `latest` with `v2`. Specify OSS v2 in headings. Closes fix(api-refs): specify v2 in InfluxDB OSS headings #5866, Closes Flux docs: replace `/influxdb/latest` with `/influxdb/v2` #5864. Linting cleanup, removing terminal prompt from examples 2025-02-27 17:50:16 -06:00
Jason Stirnaman 7e65f611b7 fix(oss): Update TLS example using openssl and including Subject Alternative Name (SAN)
- Example uses Subject Alternative Name extension required by modern clients.
- Updated example is more verbose, but should work cross-platform.
- Added troubleshooting steps.
- Passes tests.
- Reformatted to headings and remove list nesting.
2024-09-24 16:58:53 -05:00
Jason Stirnaman ed0586cd13 fix(v2): API nav items:
- Fixes sidebar navigation for API pages, moving the v1-compatibility Hugo page into Develop with the API.
- Makes titles consistent for API reference docs.
- Disables linkify autolinking of URLs and email addresses to prevent autolinking example email addresses (I audited content to make sure we don't rely on the autolinking behavior; we use explicit HTML/MD syntax for links)
- Uses standard placeholders and adds test setup for v1-compat write and query.
- Clean up Markdown
- Adds home-sensor-data.lp to Downloads (thought it was already there)
2024-09-18 10:18:17 -05:00
Jason Stirnaman df39d7cd86 chore(telegraf): Update and improve Telegraf install instructions
- Updates Telegraf install instructions, adds more info to promote verifying downloads.
- Adds setup for tests.
- Makes tests pass in install and configuration docs.
- Adds Vale.sh exception to allow duration values inside code blocks.
- Adds Dockerfiles for convenience to test install procedures in CentOS and Ubuntu.
- Clarifies and fixes config file handling and specifying input and output plugins.
2024-08-26 16:32:16 -05:00
Jason Stirnaman 67e4084cf0 chore(ci): substitute v2 placeholders for tests, move setup to run-tests, fix env variables and broken use of parse_yaml 2024-08-07 13:58:43 -05:00
Jason Stirnaman 11bc7d5168 fix(v2): http-write-timeout
- Fix the http-write-timeout definition, which should be similar to https://pkg.go.dev/net/http#Server.WriteTimeout
- Add a Vale spelling config for v2 server options
- Add influxdb to the test container packages (for testing service influxdb...)
- Add Dockerfile config and test setup for testing some InfluxDB startup config options (using influxd)
2024-07-30 18:18:26 -05:00
Jason Stirnaman 37a7a7c6e7 chore(ci): Improve pre-commit hook, test harness, and linter
- Pre-commit hook:
       - Redo test harness so commands can run in parallel
       - Cleanup Vale command args
       - Replace lint-staged and husky with Lefthook.
    - Pre-push hook:
       - Scan for package vulnerabilities
    - Tests
      - Run tests on demand, in parallel, or debugged using docker compose up, run, exec, etc.
      - Each test container (service) runs the prepare-content script before running tests.
      - Return to using Python instead of Docker to provide environment variables so they don't get exposed in Docker inspect.
      - Bind mount influxctl config.toml and .env.test files
      - Bind mount scripts for faster builds while iterating on test scripts.
    - Vale:
      - Override Acronyms style def--ignore acronym if it's linked.
2024-07-23 15:08:28 -05:00