Commit Graph

21 Commits

Author SHA1 Message Date
pulse-triage[bot] 6860dde3ef Find safe diagnostics without requiring another live run
Match the current Support navigation and phone control labels, explain absent exports, and lead reporting with existing evidence. Keep live-check, full-bundle and privacy limits intact; verify the shipped guide against the actual route and state owners.

Contract-Neutral: Existing help and diagnostic-state tests only; no runtime, renderer, routes, access, exports or live-check behaviour changes.
Change-source: pulse-maintainer
2026-10-14 05:14:08 +01:00
rcourtman 9031dd949c docs: correct API reference auth labels and add missing routes
Audited every HTTP route the server registers against docs/API.md.
Where a documented route and the code disagreed, or an integrator-facing
route was missing, the reference now matches the code.

- Auth and scope labels: notifications, SSO providers, license
  activate/clear, security reset-lockout, availability targets, agent
  profiles (every method needs settings:write for tokens), relay settings
  and the resource metadata routes (no admin requirement).
- Behaviour: POST /api/notifications/test targets one channel per request,
  the storage detail route is GET /api/storage/{storageId} (not a list at /api/storage/), token
  rename-only updates are accepted, validate-token moved out of the Audit
  Log (Pro) section because it has no licence gate, and the setup script
  is public.
- Retired routes: /api/ai/remediation/execute and /rollback always answer
  410 Gone, as approve already documented.
- Newly documented: GET /api/ai/patrol/runs/{id}, POST
  /api/availability-history, POST /api/agents/agent/{id}/allow-reenroll,
  PUT /api/truenas/connections/{id} and its /test route.

scripts/tests/test_api_reference_routes.py pins the corrections to the
router so later drift fails a test: every scope named on a route line must
exist in pkg/auth/scopes.go, the newly documented routes must exist in the
router, and the retired routes must say 410. It fails on the previous
reference and passes on this one.

Each doc is mirrored under frontend-modern/public/docs and updated in
both places. Labels where the docs and the code disagree about licence
gating are left alone; that needs a product decision, not a doc edit.

Contract-Neutral: Customer docs corrected to match shipped behaviour; no runtime, API or contract change.
2026-10-11 15:13:29 +01:00
rcourtman 8a99b16d6c docs: correct customer docs that drifted from the source
Audited the customer-facing docs against the code: about 5,200 concrete
claims (env vars, endpoints, flags, defaults, ports, UI labels), plus every
environment variable the code reads. Each discrepancy was re-verified
against the source before editing, and every edit was reviewed again.

What users would have hit following the old text:
- UI paths and labels that no longer exist (Settings > Relay, Platform
  connections, Access Control, SSO Providers, Create Organization) and
  Patrol mode names (now Ask first, Safe auto-fix, Autopilot).
- Wrong values and behaviour: LOG_MAX_AGE=0 does not disable cleanup,
  Patrol evidence budget is 10 calls and 12 turns, ALLOW_UNPROTECTED_EXPORT
  covers private networks too, PULSE_AUDIT_ASYNC defaults on.
- Agent install: install.sh ignores PULSE_ENABLE_KUBERNETES and
  PULSE_ENABLE_PROXMOX, rejects --disable-auto-update, and the token
  fallback lives in the state directory.
- API: audit endpoints answer 402 on Community, onboarding QR is GET,
  type=container is rejected, several routes need admin plus a scope.
- HTTP_REDIRECT_PORT was not documented anywhere.

Docs are mirrored under frontend-modern/public/docs, so each change is
applied to both copies. The tests that pinned the old wording (including
three that asserted claims the code contradicts) are updated alongside.

Contract-Neutral: Customer docs corrected to match shipped behaviour; no runtime, API or contract change.
2026-10-11 13:59:56 +01:00
pulse-triage[bot] fcc633337e Bound copied log diagnostics by bytes as well as records
Cap server and agent excerpts at 256 KiB before display or request-ID search. Buffer only a bounded owner-only temporary file, preserve reader failures, and apply the hard deadline to the complete read-only pipeline. Exercise exact-size, overflow, stream, privacy, cleanup and closed-pipe deadline controls without accessing a real journal, daemon or service.

Contract-Neutral: Documentation-only passive log recipe bounds and executable copied-recipe tests; no runtime, API, authentication, installer or monitoring contract change.
Change-source: pulse-maintainer
2026-10-11 02:24:14 +01:00
pulse-triage[bot] 1a72e0f2bd Align TrueNAS disk health help with the composed display policy
Replace the obsolete Storage scope warning while preserving saved-rule, current-reading, SMART and passive private-reporting boundaries. Record the fresh inspected desktop and phone browser result for actual composed runtime bytes, including the page-model merge with current main.

Contract-Neutral: Documentation, document controls and fresh browser evidence only; no further subsystem contract or runtime delta.
Change-source: pulse-maintainer
2026-10-09 14:06:35 +01:00
pulse-triage[bot] 7c431a5a36 Explain TrueNAS disk heat without hiding health evidence
Distinguish current and last-known heat, saved alert tiers, Off and native SMART risk. Name the Storage display scope limit and keep mismatch reporting passive and private.

Change-source: pulse-maintainer
Contract-Neutral: Documents existing disk policy and a current display limitation; no alert, collection or subsystem contract delta.
2026-10-09 13:27:22 +01:00
pulse-triage[bot] 26db2344de Route TrueNAS diagnostics through bounded fail-closed log readers
Remove the record-limited but indefinitely blocking duplicate commands. Use the existing unfiltered Pulse readers, preserve NAS-specific safety guidance, and exercise the linked source and rendered help against failures, real deadlines, TERM resistance and missing timeout.

Contract-Neutral: Documentation and diagnostic-recipe verification only; no runtime, API, permission or subsystem behaviour changes.
Change-source: pulse-maintainer
2026-10-07 16:21:52 +01:00
pulse-triage[bot] 5bacce0f63 Distinguish Pulse service errors from failed TrueNAS polling
The copied help treated Pulse's truenas_unavailable response as an appliance or API-key problem. Explain the local handler/persistence failure, preserve existing request evidence and keep explicit opt-out, failed probes and stale collection separate. Bind the guidance to actual handler responses and shipped-viewer links without probing an appliance.

Contract-Neutral: Correct existing TrueNAS help and add response/renderer regression tests; runtime, API, polling, permissions and dependency contracts are unchanged.
Change-source: pulse-maintainer
2026-10-06 06:30:24 +01:00
pulse-triage[bot] a6c40e693b Keep TrueNAS diagnostic reads bounded and truthful
Remove log filters that hide reader failures and unrelated startup errors. Use current export labels and separate cached downloads from live diagnostics, preserving private evidence and the backup safety boundary.

Change-source: pulse-maintainer
2026-10-05 20:57:01 +01:00
pulse-triage[bot] cadfd1f4e1 Keep TrueNAS API setup credentials and responses private
Make the existing connection guide fail closed before editing credentials, ignore curl configuration, bound each single POST and retain sensitive responses in new private files. Explain actual test/save status and uncertain-save readback without retrying setup as diagnostics.

Contract-Neutral: Documentation-only credential handling and copied-recipe regression tests; no runtime API, TrueNAS polling, authentication or connection-management contract changes.
Change-source: pulse-maintainer
2026-10-04 21:21:27 +01:00
pulse-triage[bot] 1c999113a1 Separate TrueNAS setup acceptance from connection probes
Remove the one-cycle data guarantee at the first setup steps, explain which ordinary reads a successful system-information probe has not exercised, and retain the published 6.4.1/6.4.5 probe-timestamp warning without applying it to repaired builds. Preserve read-only, credential-free polling checks and verify their shipped rendering and keyboard path.

Contract-Neutral: Existing help and its verification only; no runtime, API, polling, access, persistence or retention change.
Change-source: pulse-maintainer
2026-10-04 03:28:45 +01:00
pulse-triage[bot] 1a1b59072b Point monitoring help at the current platform navigation
Replace retired task-page advice with registered platform routes, TrueNAS tabs and Proxmox backups. Preserve saved connections when troubleshooting missing navigation and distinguish proxy reload failures from missing inventory.

Change-source: pulse-maintainer
2026-10-03 02:32:05 +01:00
pulse-triage[bot] 4b0f23e0a7 Distinguish TrueNAS stale polling from failed authentication
Preserve existing polling evidence before a connection test updates its ledger. Explain freshness, optional telemetry and session turnover using the read-only projection, correct the 60-second default, and keep diagnostic steps free of credentials and destructive reproductions.

Contract-Neutral: Documentation and existing-guide checks only; no runtime, API, transport, identity, access or retention change.
Change-source: pulse-maintainer
2026-10-03 00:07:05 +01:00
pulse-triage[bot] 36066f0406 Explain how to find CORE graph responses without exposing a capture
The CORE reporter could find requests but not the matching replies. Clarify Firefox message filtering, per-request IDs, CPU versus temperature and bounded response sharing in the canonical and shipped guide; keep secrets and full captures out of diagnostics. Add guidance regression coverage while preserving the existing authenticated connection recipes.

Change-source: pulse-maintainer
2026-10-01 21:32:16 +01:00
pulse-triage[bot] 19fa6b1c8d Make TrueNAS diagnostics safe and distinguish missing telemetry
Replace token and API-key shell arguments with private header and payload files, verify the exact test/save recipes with synthetic credentials, and separate hardware capacity from actual usage and History. Bound local logs and keep sanitized evidence and trusted HTTPS as the troubleshooting path.

Contract-Neutral: Documentation and synthetic recipe checks only; no runtime, API, transport or metric contract changes.
Change-source: pulse-maintainer
2026-10-01 02:16:44 +01:00
pulse-triage[bot] 6b5369bbfa Align TrueNAS guidance with JSON-RPC runtime
Change-source: pulse-maintainer
2026-09-01 18:32:39 +01:00
pulse-triage[bot] a46e322bde Expose TrueNAS SMART alert counters 2026-08-28 23:04:11 +01:00
pulse-triage[bot] 79206d340a Retain dismissed TrueNAS SMART failures 2026-08-28 09:15:36 +01:00
rcourtman 1275bd822d Document the TrueNAS 25.10 Readonly Admin API key limitation
Keys linked to Readonly Admin users return 403 on endpoints Pulse
polls through the deprecated REST bridge on TrueNAS SCALE 25.10
(issue #1589); note the Full Admin workaround until the WebSocket API
migration (#1550) lands.

Contract-Neutral: user docs note for the TrueNAS 25.10 role limitation (#1589)
2026-07-18 11:54:10 +01:00
rcourtman 3fa46aa836 Add native TrueNAS VM inventory to overview
Project TrueNAS vm.query inventory into canonical VM resources and render it on the TrueNAS overview.
2026-05-20 22:32:46 +01:00
rcourtman 778a2577b6 feat: Pulse v6 release 2026-03-18 16:06:30 +00:00