diff --git a/PUBLIC_SOURCE_EXPORT.md b/PUBLIC_SOURCE_EXPORT.md index 8d097b2..d7528c2 100644 --- a/PUBLIC_SOURCE_EXPORT.md +++ b/PUBLIC_SOURCE_EXPORT.md @@ -1,5 +1,5 @@ # Curated public source export -Generated from private canonical revision `0e0633c8ac91cb71312a26837f791035a78d81b8`. +Generated from private canonical revision `1b456e5a2e8bd0a3bb4238cdc3036b64a7690ae6`. This parentless candidate excludes private operational history, evidence, planning, prompts, and machine-local agent configuration. diff --git a/PUBLIC_SOURCE_MANIFEST.json b/PUBLIC_SOURCE_MANIFEST.json index 958b1df..77968ce 100644 --- a/PUBLIC_SOURCE_MANIFEST.json +++ b/PUBLIC_SOURCE_MANIFEST.json @@ -1,6 +1,6 @@ { "schemaVersion": 1, - "sourceRevision": "0e0633c8ac91cb71312a26837f791035a78d81b8", + "sourceRevision": "1b456e5a2e8bd0a3bb4238cdc3036b64a7690ae6", "files": [ { "path": ".dockerignore", @@ -3069,13 +3069,13 @@ }, { "path": "package.json", - "bytes": 658, - "sha256": "a05226c6b4d274ea8bf08696c4ecbd90bbc23fdbb7b76de1867b76fe73531e85" + "bytes": 700, + "sha256": "21ee00596169309b32dd58248fb971ee83912293160bf988c9b17d83b28811cb" }, { "path": "pnpm-lock.yaml", - "bytes": 60519, - "sha256": "64a540c83307eab5a83bdabd5fd128ead91d166a155b3c51568318999756c1f2" + "bytes": 60552, + "sha256": "5dde289f3eda6d94f5c9912cadd961a0e9f1e66956af806ae53678c356074d7f" }, { "path": "pnpm-workspace.yaml", @@ -3089,8 +3089,8 @@ }, { "path": "README.md", - "bytes": 4686, - "sha256": "ce9dec254576717be9953e8463d5d415fe572ff3f56f523861645b4bfd6656a7" + "bytes": 5328, + "sha256": "b627aee3d71364ea9a4b5bb73165eb046f06c74c66ac2a08a16eb681edb0bdb3" }, { "path": "requirements-dev.txt", diff --git a/README.md b/README.md index a25aca3..b90c6f0 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,12 @@ flowchart LR The web/API tier has no Docker socket or host-root access. Only the agent receives explicitly configured read-only sources needed for observation. PostgreSQL stores configuration, inventory, dashboards, alerts and audit; the worker handles discovery, probes and notifications. +## Read a board with its evidence + +Start with the local mock environment to learn the board and incident views. In a real installation, configure the intended telemetry sources, then inspect timestamps and coverage alongside each status. Follow an incident into its supporting observations before deciding which infrastructure action to take. + +Unknown or stale observations need investigation; they are not a healthy measurement. A running Pulse container does not prove that its remote telemetry sources are reachable. Pulse provides read-only operational evidence: perform infrastructure changes through the appropriate operator workflow. + ## Production deployment Begin with the [public deployment guide](docs/PUBLIC_DEPLOYMENT.md). A production instance needs HTTPS, Authentik/OIDC, private PostgreSQL, externally managed secrets, a defined Prometheus source, least-privilege Unraid API access where required, a backup directory, and a reviewed network and mount projection. The supplied configuration fails closed when mandatory production settings are absent. Validate backup, restore and rollback before relying on alerts. diff --git a/package.json b/package.json index 8810816..fe8e632 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,8 @@ }, "pnpm": { "overrides": { - "nanoid@<3.3.18": "3.3.18" + "nanoid@<3.3.18": "3.3.18", + "undici@>=8.0.0 <8.10.2": "8.10.2" } }, "scripts": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7041414..9636343 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,6 +6,7 @@ settings: overrides: nanoid@<3.3.18: 3.3.18 + undici@>=8.0.0 <8.10.2: 8.10.2 importers: @@ -915,8 +916,8 @@ packages: undici-types@8.3.0: resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==} - undici@8.10.0: - resolution: {integrity: sha512-HvltHd7avK13QIw/oLe4qoOLyoVSoafqJ2jYOrtMRBkbYT31eiBQ8O0ehRKZiEZCMEyLFQNIADpgCWC5fALvYQ==} + undici@8.10.2: + resolution: {integrity: sha512-/y4/bH9YNU5hi9NIrpOuvGXFcxrj3CMrV+/AYpowAYTpHn8gX/XPFjNy766FPoYY0miQhdW977JFWKGNhBdwyQ==} engines: {node: '>=22.19.0'} vite@8.2.0: @@ -1510,7 +1511,7 @@ snapshots: saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 6.0.2 - undici: 8.10.0 + undici: 8.10.2 w3c-xmlserializer: 5.0.0 webidl-conversions: 8.0.1 whatwg-mimetype: 5.0.0 @@ -1742,7 +1743,7 @@ snapshots: undici-types@8.3.0: {} - undici@8.10.0: {} + undici@8.10.2: {} vite@8.2.0(@types/node@26.2.0): dependencies: