mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-10-26 05:29:45 +00:00
ba680d6c4d
`PULSE_METRICS_DB_PATH` sets `Config.MetricsDBPath`. `MultiTenantMonitor.GetMonitor` builds each non-default tenant from `baseConfig.DeepCopy()`, which kept that path, so `monitoring.New` opened the same `metrics.db` for every organization. With the override set, per-org charts, reports and Pulse Assistant summaries all read from one shared store. Changes: - `GetMonitor` clears `MetricsDBPath` on non-default tenant configs after setting their `DataPath`. Each org then opens `metrics.db` in its own data directory, and `DeleteOrganization` removes it along with the rest of the org's data. - The default org still uses the override, which covers the single-install tmpfs/RAM-disk case it exists for. Metrics for non-default orgs stay on the data volume. - New `multi_tenant_monitor_metrics_path_test.go` sets the override, provisions two orgs, and checks that each opens its own `metrics.db` and cannot read series written by the default org or the other org. It fails on current `main`. - `TestMetricsStoreRuntimeOverridesStayOnMonitorBoundary` now also requires the clear to come between the tenant `DataPath` assignment and `New`. - The monitoring contract and `CONFIGURATION.md` (plus its public mirror) now describe the default-org-only behaviour. Verification: `go test ./internal/monitoring/ ./internal/config/` passes on Linux. `canonical_completion_guard.py` passes for this commit.