@homeflare/alchemy 0.33.0 → 0.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/grafana/alerting-provenance.d.ts +80 -0
- package/dist/grafana/alerting-provenance.d.ts.map +1 -0
- package/dist/grafana/contact-point-fixtures.d.ts +28 -0
- package/dist/grafana/contact-point-fixtures.d.ts.map +1 -0
- package/dist/grafana/contact-point.d.ts +99 -0
- package/dist/grafana/contact-point.d.ts.map +1 -0
- package/dist/grafana/dashboard-model.d.ts +8 -38
- package/dist/grafana/dashboard-model.d.ts.map +1 -1
- package/dist/grafana/datasource.d.ts +2 -9
- package/dist/grafana/datasource.d.ts.map +1 -1
- package/dist/grafana/index.d.ts +10 -4
- package/dist/grafana/index.d.ts.map +1 -1
- package/dist/grafana/index.js +198 -41
- package/dist/grafana/index.js.map +12 -6
- package/dist/grafana/message-template.d.ts +70 -0
- package/dist/grafana/message-template.d.ts.map +1 -0
- package/dist/grafana/mute-timing.d.ts +112 -0
- package/dist/grafana/mute-timing.d.ts.map +1 -0
- package/dist/grafana/providers.d.ts +1 -1
- package/dist/grafana/providers.d.ts.map +1 -1
- package/dist/grafana/secret-refs.d.ts +19 -0
- package/dist/grafana/secret-refs.d.ts.map +1 -0
- package/dist/grafana/subset-match.d.ts +2 -0
- package/dist/grafana/subset-match.d.ts.map +1 -0
- package/dist/linux/index.d.ts +1 -1
- package/dist/linux/index.d.ts.map +1 -1
- package/dist/linux/index.js +3 -1
- package/dist/linux/index.js.map +1 -1
- package/docs/grafana-alerting.md +145 -0
- package/docs/grafana.md +4 -3
- package/docs/upstream-conformance.md +26 -4
- package/package.json +1 -1
- package/src/grafana/alerting-provenance.ts +109 -0
- package/src/grafana/contact-point-fixtures.ts +25 -0
- package/src/grafana/contact-point-provenance.test.ts +113 -0
- package/src/grafana/contact-point-secrets.test.ts +117 -0
- package/src/grafana/contact-point.test.ts +123 -0
- package/src/grafana/contact-point.ts +179 -0
- package/src/grafana/dashboard-model.ts +8 -57
- package/src/grafana/datasource.ts +5 -27
- package/src/grafana/index.ts +24 -4
- package/src/grafana/message-template.test.ts +212 -0
- package/src/grafana/message-template.ts +114 -0
- package/src/grafana/mute-timing.test.ts +227 -0
- package/src/grafana/mute-timing.ts +160 -0
- package/src/grafana/providers.ts +6 -0
- package/src/grafana/secret-refs.ts +48 -0
- package/src/grafana/subset-match.ts +71 -0
- package/src/linux/index-export.test.ts +25 -0
- package/src/linux/index.ts +15 -1
package/dist/linux/index.js
CHANGED
|
@@ -3106,12 +3106,14 @@ export {
|
|
|
3106
3106
|
SystemdUnit,
|
|
3107
3107
|
SystemdUnitProvider,
|
|
3108
3108
|
canActAsRoot,
|
|
3109
|
+
containerPathFor,
|
|
3109
3110
|
hostRunnerLayer,
|
|
3110
3111
|
linuxProviders,
|
|
3112
|
+
renderContainerFile,
|
|
3111
3113
|
renderUnit,
|
|
3112
3114
|
sshRunner,
|
|
3113
3115
|
sshSudoRunner
|
|
3114
3116
|
};
|
|
3115
3117
|
|
|
3116
|
-
//# debugId=
|
|
3118
|
+
//# debugId=6500D35B9B72590F64756E2164756E21
|
|
3117
3119
|
//# sourceMappingURL=index.js.map
|
package/dist/linux/index.js.map
CHANGED
|
@@ -58,6 +58,6 @@
|
|
|
58
58
|
"/**\n * sshSudoRunner(): the Linux twin of `../launchd/sudo-runner.ts` — the same idea (the deploy runs\n * as the operator, and only a fixed allowlist of calls goes through `sudo -n`), rebuilt for a\n * non-root ssh user with passwordless sudo instead of a local macOS session. See\n * docs/linux-sudo.md for the full argv table and what is measured versus reasoned.\n *\n * ⛔ `sudo -n`, NEVER A PROMPT — same rule, same reason: a deploy that stops to ask for a password\n * is the \"no silent sudo\" failure this exists to prevent.\n * ⛔ EVERY PRIVILEGED ARGV IS LOGGED BEFORE IT RUNS, and a file's bytes never reach argv or the\n * log: they travel through the staged file (sudo-stage.ts) alone.\n * ⛔ A PLAN NEVER ELEVATES. `checkWrite` and every read run through `base` — the plain\n * `sshRunner()` — never through sudo. Nothing here probes sudo at construction.\n * ★ PROMISES, NOT EFFECTS, ON PURPOSE — the same divergence `../launchd/runner.ts` documents\n * (H3 in the provider-standard skill): a consumer's own runner is a plain async implementation.\n */\nimport type { HostRunner } from '../launchd/runner.ts';\nimport { sudoRefusal } from '../launchd/sudo-said.ts';\nimport { type SshRunnerOptions, sshRunner } from './ssh-runner.ts';\nimport { elevatedExec } from './sudo-exec.ts';\nimport {\n CHMOD,\n CHOWN,\n INSTALL,\n MKDIR,\n MV,\n RM,\n RMDIR,\n SUDO,\n SYSTEMCTL_ABS,\n SudoRefusedError,\n checkPrefixes,\n prefixOf,\n privilegedProblem,\n routeExec,\n} from './sudo-allowlist.ts';\nimport { assertGuardedChain } from './sudo-guard.ts';\nimport { type Staged, stageRemote } from './sudo-stage.ts';\nimport { type Elevate, vetWrite, writeUnderPrefix } from './sudo-write.ts';\n\nexport { SudoRefusedError };\n\nexport type SshSudoRunnerOptions = SshRunnerOptions & {\n /** Directories root may write under. Required; absolute, normalised, never `/`. */\n readonly prefixes: readonly string[];\n /** One line per privileged argv, before it runs. @default a line on stderr */\n readonly log?: (line: string) => void;\n};\n\n/** What a sudo runner is built from. ★ Split out so the tests swap the host, never the logic. */\nexport type SshSudoDeps = {\n /** Runs everything, including `sudo` itself. `await sshRunner(options)` for the real one. */\n readonly base: HostRunner;\n readonly stage: (bytes: Uint8Array) => Promise<Staged>;\n readonly log: (line: string) => void;\n};\n\nconst outsidePrefixHint =\n (path: string, prefixes: readonly string[]) =>\n (cause: unknown): never => {\n const message = cause instanceof Error ? cause.message : String(cause);\n if (!/permission denied|operation not permitted/i.test(message)) throw cause;\n throw new Error(\n `sshSudoRunner ${path}: the operator could not do this, and the path is under no declared ` +\n `prefix (${prefixes.join(', ')}). If root owns its directory, declare that directory as ` +\n 'a prefix.',\n { cause },\n );\n };\n\nexport const makeSshSudoRunner = (prefixList: readonly string[], deps: SshSudoDeps): HostRunner => {\n const prefixes = checkPrefixes(prefixList);\n const { base } = deps;\n\n /** ⛔ THE ONE PLACE `sudo` IS SPAWNED: allowlist, then any host check (`before`), then the log\n * line, then `sudo -n -- argv`. Shared by exec()'s root branch and by writeFileAtomic. */\n const elevate: Elevate = async (argv, context, before) => {\n const shown = JSON.stringify(argv);\n const problem = privilegedProblem(argv, { prefixes, ...context });\n if (problem !== undefined)\n throw new SudoRefusedError(`sshSudoRunner refused ${shown}: ${problem}`);\n await before?.();\n deps.log(`homeflare/linux sudo -n ${shown}`);\n const result = await base.exec([SUDO, '-n', '--', ...argv]);\n const refused = sudoRefusal(shown, result);\n if (refused !== undefined) throw refused;\n return result;\n };\n\n return {\n checkWrite: async (path, options) => {\n await vetWrite(base, prefixes, path, options);\n },\n effectiveUid: () => base.effectiveUid(),\n exec: async (argv) => {\n const route = routeExec(argv, prefixes);\n if ('refuse' in route) throw new SudoRefusedError(`sshSudoRunner: ${route.refuse}`);\n if (route.as === 'operator') return base.exec(argv);\n return elevatedExec(base, elevate, prefixes, argv);\n },\n lookupGroup: (nameOrId) => base.lookupGroup(nameOrId),\n lookupUser: (nameOrId) => base.lookupUser(nameOrId),\n privileged: true,\n readFile: (path) => base.readFile(path),\n removeFile: async (path) => {\n const prefix = prefixOf(path, prefixes);\n if (prefix === undefined)\n return base.removeFile(path).catch(outsidePrefixHint(path, prefixes));\n // ★ Nothing there is success without a privileged call, so an idempotent delete logs nothing.\n const target = await assertGuardedChain(base, prefix, path, 'file-or-absent');\n if (target === undefined) return;\n const argv = [RM, '-f', '--', path];\n const result = await elevate(argv);\n if (result.exitCode !== 0) {\n throw new Error(\n `sudo -n ${JSON.stringify(argv)} -> ${String(result.exitCode)}: ${result.stderr.trim().slice(0, 300)}`,\n );\n }\n },\n sleep: (ms) => base.sleep(ms),\n stat: (path) => base.stat(path),\n writeFileAtomic: async (path, bytes, options) => {\n const vetted = await vetWrite(base, prefixes, path, options);\n if (vetted === undefined) {\n return base.writeFileAtomic(path, bytes, options).catch(outsidePrefixHint(path, prefixes));\n }\n await writeUnderPrefix(base, elevate, deps.stage, path, bytes, options, vetted.mode);\n },\n };\n};\n\nconst REQUIRED_PROGRAMS = [SUDO, INSTALL, MV, RM, MKDIR, CHMOD, CHOWN, RMDIR, SYSTEMCTL_ABS];\n\n/**\n * ★ READ-ONLY, OPTIONAL. One combined `test -x` so a missing coreutils package or a systemd-free\n * container fails at construction with a clear message, instead of at the first deploy step\n * that happens to need it. Never probes sudo itself.\n */\nconst checkProgramsExist = async (base: HostRunner, host: string): Promise<void> => {\n const script = REQUIRED_PROGRAMS.map(\n (p) => `test -x '${p}' || { echo \"$0: ${p}\"; exit 1; }`,\n ).join(' && ');\n const result = await base.exec(['/bin/sh', '-c', script, 'sshSudoRunner']);\n if (result.exitCode !== 0) {\n throw new Error(\n `sshSudoRunner ${host}: ${result.stdout.trim() || result.stderr.trim()} is missing or not ` +\n 'executable on this host. sshSudoRunner sends absolute GNU coreutils and systemd paths.',\n );\n }\n};\n\n/** The real sudo runner: `sshRunner()` for everything, `/usr/bin/sudo -n` for the allowlist. */\nexport const sshSudoRunner = async (options: SshSudoRunnerOptions): Promise<HostRunner> => {\n const base = await sshRunner(options);\n await checkProgramsExist(base, options.host);\n return makeSshSudoRunner(options.prefixes, {\n base,\n log:\n options.log ??\n ((line) => {\n process.stderr.write(`${line}\\n`);\n }),\n stage: stageRemote(base),\n });\n};\n"
|
|
59
59
|
],
|
|
60
60
|
"mappings": "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",
|
|
61
|
-
"debugId": "
|
|
61
|
+
"debugId": "6500D35B9B72590F64756E2164756E21",
|
|
62
62
|
"names": []
|
|
63
63
|
}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# Grafana alerting provisioning — `@homeflare/alchemy/grafana`
|
|
2
|
+
|
|
3
|
+
Declares Grafana's alerting-provisioning objects (decision 40: every internal alert lands in one
|
|
4
|
+
place). Ships in three stacked PRs, in the order this file's own history records:
|
|
5
|
+
|
|
6
|
+
1. **This PR:** `Grafana.ContactPoint`, `Grafana.MuteTiming`, `Grafana.MessageTemplate`.
|
|
7
|
+
2. Next: `Grafana.AlertRuleGroup`.
|
|
8
|
+
3. Then: `Grafana.NotificationPolicy` — the singleton policy tree, last on purpose (it references
|
|
9
|
+
contact points, mute timings and templates by name).
|
|
10
|
+
|
|
11
|
+
All three ship on the same `@distilled.cloud/grafana@0.2.0` operations
|
|
12
|
+
[grafana.md](./grafana.md#the-sdk-gap--history-and-what-shipped-on-top-of-the-fix) already
|
|
13
|
+
unblocked (`skipDeprecated` patched false for the 32 alerting-provisioning-write operations). No
|
|
14
|
+
live call was made writing this PR — see "Measured vs inferred" below.
|
|
15
|
+
|
|
16
|
+
## Foreign-provenance refusal — shared, `alerting-provenance.ts`
|
|
17
|
+
|
|
18
|
+
Every resource in this family reads a `provenance` string off what Grafana returns and refuses to
|
|
19
|
+
write when it names an owner other than this API. **Measured against Grafana's own source**
|
|
20
|
+
(`pkg/services/ngalert/models`, not re-fetched live): `ProvenanceNone = ""` (unclaimed),
|
|
21
|
+
`ProvenanceAPI = "api"` (this API's own writes), `ProvenanceFile = "file"`,
|
|
22
|
+
`ProvenanceConvertedPrometheus = "converted_prometheus"`. `alerting-provenance.ts`'s
|
|
23
|
+
`WRITABLE_PROVENANCES` is an **allowlist** of `{"", "api"}`, not a denylist of the two named
|
|
24
|
+
foreign values — an unnamed future provenance source refuses by default, the safer failure
|
|
25
|
+
direction for a control-plane write. Corroborated by Grafana's docs
|
|
26
|
+
(grafana.com/docs/grafana/v13.1/alerting/set-up/provision-alerting-resources/http-api-provisioning/),
|
|
27
|
+
whose example payloads show exactly `"api"` and `"file"`.
|
|
28
|
+
|
|
29
|
+
This is **defense in depth, not the only guard**: Grafana's alerting provisioning API also enforces
|
|
30
|
+
this server-side (grafana/grafana#103597, "Unable to delete file provisioned alert rules," reports
|
|
31
|
+
the block firing) — unlike the classic folder/dashboard write API `provisioned.ts` guards, which
|
|
32
|
+
has no such server-side check at all. `create` is never at risk for any resource below: it only
|
|
33
|
+
runs when `fetchLive` already found nothing.
|
|
34
|
+
|
|
35
|
+
⛔ **A missing `provenance` field is treated as foreign, never as `ProvenanceNone` — fixed after an
|
|
36
|
+
adversarial review of this PR found the guard failing OPEN.** The first version mapped
|
|
37
|
+
`live.provenance ?? ''`, collapsing "the field is absent" into "the field is explicitly empty" —
|
|
38
|
+
both writable. `isForeignProvenance`/`refuseIfForeignProvenance` now keep `undefined` as its own
|
|
39
|
+
value: only a field Grafana explicitly reports as `""` or `"api"` is writable. Every resource below
|
|
40
|
+
has a test pinning all three cases (missing refuses, explicit `""` is writable, `"file"` refuses).
|
|
41
|
+
|
|
42
|
+
`X-Disable-Provenance` is **never set** by any resource in this family. Every create/update
|
|
43
|
+
therefore leaves the object at `provenance: "api"` — Grafana's own default for an API write, which
|
|
44
|
+
blocks UI edits afterward. Deliberate: an object this family declares should stay owned by the
|
|
45
|
+
declaration, the "one owner per resource" posture `provisioned.ts` already established for
|
|
46
|
+
folders/dashboards.
|
|
47
|
+
|
|
48
|
+
## `Grafana.ContactPoint`
|
|
49
|
+
|
|
50
|
+
```ts
|
|
51
|
+
import { GrafanaContactPoint, grafanaProviders } from '@homeflare/alchemy/grafana';
|
|
52
|
+
|
|
53
|
+
export class OncallSlack extends GrafanaContactPoint('oncall-slack', {
|
|
54
|
+
uid: 'slack-oncall',
|
|
55
|
+
name: 'On-call Slack',
|
|
56
|
+
type: 'slack',
|
|
57
|
+
settings: { recipient: '#oncall' },
|
|
58
|
+
secureSettingsRefs: { url: 'GRAFANA_SLACK_WEBHOOK_URL_ENV' },
|
|
59
|
+
}) {}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
- **No by-uid GET route exists** — measured: `services/grafana.ts` has only `routeGetContactpoints`
|
|
63
|
+
(list, optional `name` filter) and its export sibling. Narrowing that GET to the declared `name`
|
|
64
|
+
is not safe either: `name` is a renameable grouping label (Grafana's own doc: "used as grouping
|
|
65
|
+
key in the UI"), so `fetchLive` lists every contact point unfiltered and matches `uid`
|
|
66
|
+
client-side — the same ambiguity `resource.ts`'s header and netbox's `soleMatch` name.
|
|
67
|
+
- **Secrets never appear as a literal prop (S25).** A secure `settings` key (a webhook URL, an API
|
|
68
|
+
key, …) is named in `secureSettingsRefs` (field -> env var NAME), resolved fresh inside
|
|
69
|
+
`create`/`update`'s own effect and merged into `settings` only there. Grafana's plain GET has no
|
|
70
|
+
`decrypt` option (only the export route does, org-admin only) — a secure key always comes back
|
|
71
|
+
redacted, so `matches` excludes every `secureSettingsRefs` key from comparison entirely, even if
|
|
72
|
+
`settings` also names it with a stale placeholder value (`contact-point.test.ts`'s own test for
|
|
73
|
+
this). Non-secret `settings` compares via `subset-match.ts`'s `declaredContentMatches`, tolerating
|
|
74
|
+
a default Grafana injects that the declaration never mentioned.
|
|
75
|
+
|
|
76
|
+
## `Grafana.MuteTiming`
|
|
77
|
+
|
|
78
|
+
```ts
|
|
79
|
+
import { GrafanaMuteTiming, grafanaProviders } from '@homeflare/alchemy/grafana';
|
|
80
|
+
|
|
81
|
+
export class Weekends extends GrafanaMuteTiming('weekends-mute', {
|
|
82
|
+
name: 'weekends',
|
|
83
|
+
timeIntervals: [{ weekdays: ['saturday', 'sunday'] }],
|
|
84
|
+
}) {}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
- ⚠️ **A genuine, surprising SDK finding, worth restating here.** The generated `MuteTimeInterval`
|
|
88
|
+
type declares only `name`/`time_intervals` — no `provenance`, no `version`, unlike every other
|
|
89
|
+
type this family reads. A first pass assumed the data was gone; empirically it is not:
|
|
90
|
+
`@distilled.cloud/core`'s response decoding is `JSON.parse` + a key-rename pass, never a strict
|
|
91
|
+
schema decode — any key a type doesn't model passes through **verbatim** (`protocol-http.ts`'s
|
|
92
|
+
`mapKeys`, confirmed by calling the real operation with a `provenance`/`version`-bearing response
|
|
93
|
+
through this family's own fake-Grafana harness). `mute-timing.ts` reads both through a small
|
|
94
|
+
local `& { provenance?: string; version?: string }` intersection rather than the SDK's own type.
|
|
95
|
+
The same passthrough applies outbound: `timeIntervals` is typed as an opaque
|
|
96
|
+
`Record<string, unknown>[]`, not the SDK's own too-narrow `TimeInterval` (which is missing the
|
|
97
|
+
real Alertmanager fields — `weekdays`/`times`/`months`/`days_of_month`/`years`/`location` — for
|
|
98
|
+
the same reason), and a real weekday/time entry reaches the wire unchanged. Tracked as a real SDK
|
|
99
|
+
type-generation gap in `docs/upstream-conformance.md` (the S22 fix route) — not a data-loss gap.
|
|
100
|
+
- **`version` rides on `destroy`, not `update`** — measured: `RouteDeleteMuteTimingRequest.version`
|
|
101
|
+
exists for optimistic concurrency; `RoutePutMuteTimingRequest` has no `version` field at all, a
|
|
102
|
+
real Grafana API asymmetry between the two write routes.
|
|
103
|
+
|
|
104
|
+
## `Grafana.MessageTemplate`
|
|
105
|
+
|
|
106
|
+
```ts
|
|
107
|
+
import { GrafanaMessageTemplate, grafanaProviders } from '@homeflare/alchemy/grafana';
|
|
108
|
+
|
|
109
|
+
export class SlackBody extends GrafanaMessageTemplate('slack-body-template', {
|
|
110
|
+
name: 'slack-body',
|
|
111
|
+
template: '{{ define "slack-body" }}...{{ end }}',
|
|
112
|
+
}) {}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
- **Create and update are the same wire call** — measured: no `routePostTemplate` exists, only
|
|
116
|
+
`routePutTemplate` (`PUT /v1/provisioning/templates/{name}`, upsert by name). Kept as two spec
|
|
117
|
+
functions anyway so the shared engine's `diff` reports a content change as `update`, not the
|
|
118
|
+
`replace` it shows for any resource whose `spec.update` is `undefined` (`resource.ts`).
|
|
119
|
+
`version` rides on `update` when Grafana reports one, for optimistic concurrency.
|
|
120
|
+
|
|
121
|
+
## Tests
|
|
122
|
+
|
|
123
|
+
Each resource's `*.test.ts` uses the family's `fake-grafana.ts` harness (the real distilled
|
|
124
|
+
protocol, only wire responses faked) and proves: a GET never carries a body; a foreign-provenance
|
|
125
|
+
object — an explicit `"file"` OR a MISSING `provenance` field — refuses update/destroy with no write
|
|
126
|
+
sent, while an explicit `""` is writable; a transient failure (401/403) propagates rather than
|
|
127
|
+
folding to absent; an unchanged declaration is a noop despite Grafana injecting an extra field the
|
|
128
|
+
declaration never mentioned; and — `Grafana.ContactPoint` only — a secret value never appears in the
|
|
129
|
+
attributes a real `reconcile` returns (driven end to end through create and the read-back
|
|
130
|
+
`resource.ts` always does, not just asserted absent from a declaration that never held it).
|
|
131
|
+
`Grafana.ContactPoint`'s tests are split three ways (`contact-point.test.ts`/`-secrets.test.ts`/
|
|
132
|
+
`-provenance.test.ts`, sharing fixtures from `contact-point-fixtures.ts`) to stay under the house's
|
|
133
|
+
250-line file cap.
|
|
134
|
+
|
|
135
|
+
## Measured vs inferred (no live call in this PR)
|
|
136
|
+
|
|
137
|
+
**Measured**, against the SDK's generated types and/or Grafana's own docs: the provenance enum and
|
|
138
|
+
its values; the absence of a by-uid contact-point GET; the create/update PUT-only shape for
|
|
139
|
+
templates and the `version`-on-destroy-only shape for mute timings; the response-decode
|
|
140
|
+
verbatim-passthrough behavior (traced into `@distilled.cloud/core`'s own source and confirmed
|
|
141
|
+
against the real operation through this family's fake-Grafana harness — as close to "measured" as
|
|
142
|
+
this PR gets without a live Grafana instance). **Inferred, not measured live:** whether Grafana's
|
|
143
|
+
real server-side provenance enforcement covers every write route this family calls the same way (only
|
|
144
|
+
the alert-rule-deletion case is corroborated by a filed issue); whether a genuine mute-timing
|
|
145
|
+
`version` conflict on delete surfaces as a typed `Conflict` in practice.
|
package/docs/grafana.md
CHANGED
|
@@ -126,8 +126,9 @@ export class TeslaMateDatasource extends GrafanaDatasource('teslamate-datasource
|
|
|
126
126
|
|
|
127
127
|
- **`Grafana.Folder` and `Grafana.Dashboard` ship** — see
|
|
128
128
|
[grafana-folder-dashboard.md](./grafana-folder-dashboard.md), not repeated here.
|
|
129
|
-
-
|
|
130
|
-
|
|
131
|
-
|
|
129
|
+
- **`Grafana.ContactPoint`, `Grafana.MuteTiming` and `Grafana.MessageTemplate` ship** — see
|
|
130
|
+
[grafana-alerting.md](./grafana-alerting.md), not repeated here.
|
|
131
|
+
- **`Grafana.AlertRuleGroup` and `Grafana.NotificationPolicy`** — stacked follow-up PRs on the same
|
|
132
|
+
operations, per grafana-alerting.md's own ordering; not blocked on anything.
|
|
132
133
|
- **`read` never answers `Unowned`** — the same open gap forgejo's and netbox's own families
|
|
133
134
|
still carry (see upstream-conformance.md); a maintainer decision on the ownership-check shape.
|
|
@@ -261,13 +261,35 @@ HttpClient` client. The old status-carrying `NetboxError` and its `cause.status
|
|
|
261
261
|
`@homeflare/distilled-netbox` established. `Grafana.Datasource`'s props/attributes/generated code
|
|
262
262
|
are unchanged (diffed operation-by-operation against the prior commit).
|
|
263
263
|
|
|
264
|
-
✅ **`Grafana.Folder`/`Grafana.Dashboard` shipped** (
|
|
264
|
+
✅ **`Grafana.Folder`/`Grafana.Dashboard` shipped** (PR 245, on top of the same
|
|
265
265
|
`@distilled.cloud/grafana` operations S22 unblocked) — the uid-required doctrine, the
|
|
266
266
|
provisioned-object refusal, the parentUid-is-create-only refusal and the volatile-field
|
|
267
267
|
normalization that makes an unchanged dashboard a true noop are all in
|
|
268
|
-
[grafana-folder-dashboard.md](./grafana-folder-dashboard.md), not repeated here.
|
|
269
|
-
|
|
270
|
-
|
|
268
|
+
[grafana-folder-dashboard.md](./grafana-folder-dashboard.md), not repeated here.
|
|
269
|
+
|
|
270
|
+
✅ **`Grafana.ContactPoint`/`Grafana.MuteTiming`/`Grafana.MessageTemplate` shipped** (this PR,
|
|
271
|
+
first of three stacked PRs — `Grafana.AlertRuleGroup` then `Grafana.NotificationPolicy` follow):
|
|
272
|
+
the foreign-provenance refusal (`alerting-provenance.ts`, an allowlist of Grafana's own
|
|
273
|
+
`ProvenanceNone`/`ProvenanceAPI` values, measured against `pkg/services/ngalert/models` and
|
|
274
|
+
Grafana's v13.1 docs) and the secret-settings-ref seam (`secret-refs.ts`, shared with
|
|
275
|
+
`Grafana.Datasource`) are both new shared building blocks — full detail:
|
|
276
|
+
[grafana-alerting.md](./grafana-alerting.md).
|
|
277
|
+
- 🔴 **New SDK gap found, not fixed here:** `MuteTimeInterval`'s generated type has no
|
|
278
|
+
`provenance`/`version` fields, and the SDK's own `TimeInterval` type is missing the real
|
|
279
|
+
Alertmanager time-interval fields (`weekdays`/`times`/`months`/etc.) entirely — Grafana's real
|
|
280
|
+
API returns and accepts all of them. NOT a data-loss gap: `@distilled.cloud/core`'s response
|
|
281
|
+
decoding never runs a strict schema decode (`JSON.parse` + a key-rename pass that leaves any
|
|
282
|
+
unmodeled key verbatim — `protocol-http.ts`'s `mapKeys`, confirmed by driving the real
|
|
283
|
+
operation through this family's fake-Grafana harness), so `mute-timing.ts` reads/writes both
|
|
284
|
+
through a locally-widened type instead. Same S22 fix route as the other named gaps
|
|
285
|
+
(regenerate the distilled clone's spec, copy forward) — not attempted here, since
|
|
286
|
+
`packages/distilled-grafana/src/` is vendored and never hand-edited.
|
|
287
|
+
- Measured, read-only, same census as PR 245's: `teslamate-grafana` has no contact points, mute
|
|
288
|
+
timings or templates configured either (consistent with the alerting-provisioning gap having
|
|
289
|
+
been real, not merely unexploited).
|
|
290
|
+
|
|
291
|
+
**Still open, not this PR's scope:** `Grafana.AlertRuleGroup`/`Grafana.NotificationPolicy` —
|
|
292
|
+
the next two stacked PRs, no longer blocked on the SDK.
|
|
271
293
|
- ⛔ **Same open gaps as `forgejo/*` and `netbox/*` above:** `read` never answers `Unowned`
|
|
272
294
|
(H1), and credentials come from an explicit env var NAME at call time rather than an
|
|
273
295
|
`alchemy/Auth` provider (S24) — here the house's own `grafanaCredentials(target)`, not the
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@homeflare/alchemy",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.34.0",
|
|
4
4
|
"description": "Custom Alchemy providers for Cloudflare, Proxmox, OpenBao, Forgejo, Talos, launchd and Caddy, and a verifier that proves adoptions are no-ops.",
|
|
5
5
|
"homepage": "https://github.com/taslabs-net/homeflare-kit/tree/main/packages/alchemy#readme",
|
|
6
6
|
"bugs": "https://github.com/taslabs-net/homeflare-kit/issues",
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The shared refusal for a foreign-provenance ALERTING-PROVISIONING object — `Grafana.ContactPoint`,
|
|
3
|
+
* `Grafana.MessageTemplate`, `Grafana.AlertRuleGroup` and `Grafana.NotificationPolicy` each read a
|
|
4
|
+
* `provenance` string off what Grafana returns (`EmbeddedContactPoint.provenance`,
|
|
5
|
+
* `NotificationTemplate.provenance`, `ProvisionedAlertRule.provenance` per rule, `Route.provenance`
|
|
6
|
+
* on the policy tree — all measured against `@distilled.cloud/grafana`'s generated types,
|
|
7
|
+
* `packages/distilled-grafana/src/services/grafana.ts`) and refuse a write when it disagrees with
|
|
8
|
+
* what this family is allowed to own. Sibling to `provisioned.ts`, not a rename of it — the two
|
|
9
|
+
* refusals guard different fields with different value shapes (`managedBy`/`provisioned` there,
|
|
10
|
+
* `provenance` here) for two different Grafana API surfaces (classic folder/dashboard vs. alerting
|
|
11
|
+
* provisioning), but both end in the SAME tagged error, reused from `provisioned.ts` rather than
|
|
12
|
+
* declared twice: "a write was refused because something else owns this object" is one condition
|
|
13
|
+
* across the whole family, the spirit PR 245's provisioned refusal already established.
|
|
14
|
+
*
|
|
15
|
+
* ★ THE ALLOWLIST, MEASURED AGAINST GRAFANA'S OWN SOURCE (not this SDK, which only echoes the
|
|
16
|
+
* value back on read — never re-fetched live in this PR): Grafana's `pkg/services/ngalert/
|
|
17
|
+
* models` package defines a `Provenance` type with `ProvenanceNone = ""` (nothing has claimed
|
|
18
|
+
* the object — fresh, or written through the classic non-provisioning path), `ProvenanceAPI =
|
|
19
|
+
* "api"` (created or last written through THIS provisioning API — what this family's own
|
|
20
|
+
* create/update leaves behind), `ProvenanceFile = "file"` (Grafana's file-based provisioning),
|
|
21
|
+
* and `ProvenanceConvertedPrometheus = "converted_prometheus"` (the Prometheus-rules importer).
|
|
22
|
+
* Corroborated by Grafana's own docs (grafana.com/docs/grafana/v13.1/alerting/set-up/
|
|
23
|
+
* provision-alerting-resources/http-api-provisioning/), whose example payloads show
|
|
24
|
+
* `"provenance": "api"` on an alert rule this API created and `"provenance": "file"` on a
|
|
25
|
+
* file-provisioned mute timing and template.
|
|
26
|
+
*
|
|
27
|
+
* `WRITABLE_PROVENANCES` is therefore an ALLOWLIST of `{"", "api"}`, not a denylist of the two
|
|
28
|
+
* named foreign values — a provenance source not yet named above (a plugin importer, a future
|
|
29
|
+
* Grafana release) refuses by default instead of silently being treated as writable, the safer
|
|
30
|
+
* failure direction for a control-plane write.
|
|
31
|
+
*
|
|
32
|
+
* ⛔ A MISSING `provenance` FIELD IS TREATED AS FOREIGN, NEVER AS `ProvenanceNone` — fixed after an
|
|
33
|
+
* adversarial review of this PR found the first version failed OPEN: every resource mapped
|
|
34
|
+
* `live.provenance ?? ''`, and `''` (`ProvenanceNone`, writable) is indistinguishable from a
|
|
35
|
+
* field the response simply never included once both collapse through `??`. Every `provenance`
|
|
36
|
+
* field in this family is optional on the wire (`EmbeddedContactPoint.provenance?: string`, etc.
|
|
37
|
+
* — genuinely absent is a real, typed possibility, not a hypothetical), and `Grafana.MuteTiming`'s
|
|
38
|
+
* depends on an unmodeled-key passthrough this family has never observed against a real Grafana
|
|
39
|
+
* response (see its own file header) — a version, edge case or bug in that decode path that drops
|
|
40
|
+
* the field would, under the old `?? ''` rule, silently make a file-provisioned object look
|
|
41
|
+
* writable. `isForeignProvenance`/`refuseIfForeignProvenance` below keep `undefined` as its own
|
|
42
|
+
* value all the way through: ONLY a field Grafana explicitly reported as `""` or `"api"` is
|
|
43
|
+
* writable; missing entirely refuses, with a message that says so rather than naming a fabricated
|
|
44
|
+
* provenance value.
|
|
45
|
+
*
|
|
46
|
+
* ⚠️ CLIENT-SIDE DEFENSE, NOT THE ONLY GUARD — AND NOT RE-MEASURED LIVE IN THIS PR. Grafana's own
|
|
47
|
+
* alerting provisioning API server ALSO enforces this (unlike the classic folder/dashboard write
|
|
48
|
+
* API `provisioned.ts` guards, which has no such server-side check at all): grafana/grafana#103597
|
|
49
|
+
* ("Unable to delete file provisioned alert rules") reports exactly this block firing for a
|
|
50
|
+
* `file`-provenance object, and the `X-Disable-Provenance` header's own documented purpose is "by
|
|
51
|
+
* default, you cannot edit API-provisioned alerting resources in Grafana" (same doc page). This
|
|
52
|
+
* function exists anyway, for the same reason `provisioned.ts` does: a clear, typed, house error
|
|
53
|
+
* instead of whatever 400-with-a-string-message Grafana's server happens to return this version —
|
|
54
|
+
* and as a defense against the known server-side bug that same issue documents
|
|
55
|
+
* (`X-Disable-Provenance` failing to actually unlock a `file`-provenance object), which could
|
|
56
|
+
* otherwise leave a write silently rejected with only a generic `BadRequest` and no explanation
|
|
57
|
+
* of why.
|
|
58
|
+
*
|
|
59
|
+
* ⚠️ `Grafana.MuteTiming` ALSO USES THIS FUNCTION, BUT THROUGH A WIDENED LIVE TYPE — the SDK's
|
|
60
|
+
* generated `MuteTimeInterval` interface (the TS type for both `GET .../mute-timings` and
|
|
61
|
+
* `GET .../mute-timings/{name}`) declares no `provenance` field at all, unlike every other type
|
|
62
|
+
* named above. A first pass at this family assumed that meant the DATA was gone; it is not —
|
|
63
|
+
* MEASURED (see mute-timing.ts's own file header for the full account): `@distilled.cloud/core`'s
|
|
64
|
+
* response decoding never runs a strict schema decode, only `JSON.parse` + a key-rename pass that
|
|
65
|
+
* passes any key a type doesn't model through verbatim, so `provenance` survives on the actual
|
|
66
|
+
* runtime value even though the TS type doesn't know about it. `mute-timing.ts` reads it through
|
|
67
|
+
* a small local `& { provenance?: string }` intersection type rather than the SDK's own.
|
|
68
|
+
*/
|
|
69
|
+
import * as Effect from 'effect/Effect';
|
|
70
|
+
import { GrafanaProvisionedObjectError } from './provisioned.ts';
|
|
71
|
+
|
|
72
|
+
export { GrafanaProvisionedObjectError };
|
|
73
|
+
|
|
74
|
+
const WRITABLE_PROVENANCES = new Set(['', 'api']);
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* True when `provenance` names an owner other than "this API" — INCLUDING when Grafana did not
|
|
78
|
+
* report the field at all (`undefined`). `undefined` is deliberately NEVER folded into `''`
|
|
79
|
+
* (`ProvenanceNone`) here — see the file header's "fails open" note. Only a value Grafana
|
|
80
|
+
* explicitly reported as `""` or `"api"` is writable.
|
|
81
|
+
*/
|
|
82
|
+
export const isForeignProvenance = (provenance: string | undefined): boolean =>
|
|
83
|
+
provenance === undefined || !WRITABLE_PROVENANCES.has(provenance);
|
|
84
|
+
|
|
85
|
+
export const refuseIfForeignProvenance = (
|
|
86
|
+
kind:
|
|
87
|
+
| 'Grafana.ContactPoint'
|
|
88
|
+
| 'Grafana.MessageTemplate'
|
|
89
|
+
| 'Grafana.MuteTiming'
|
|
90
|
+
| 'Grafana.AlertRuleGroup'
|
|
91
|
+
| 'Grafana.NotificationPolicy',
|
|
92
|
+
id: string,
|
|
93
|
+
provenance: string | undefined,
|
|
94
|
+
): Effect.Effect<never, GrafanaProvisionedObjectError> => {
|
|
95
|
+
const reason =
|
|
96
|
+
provenance === undefined
|
|
97
|
+
? `did not report a provenance at all — this family cannot tell whether it is safe to own`
|
|
98
|
+
: `has provenance '${provenance}', not '(none)' or 'api'`;
|
|
99
|
+
return Effect.fail(
|
|
100
|
+
new GrafanaProvisionedObjectError({
|
|
101
|
+
message:
|
|
102
|
+
`${kind} '${id}' ${reason} — something other than this API may own it (file ` +
|
|
103
|
+
`provisioning, the Prometheus-rules importer, or similar), and writing here could take ` +
|
|
104
|
+
`over or corrupt an object this family does not actually control. Edit it at its actual ` +
|
|
105
|
+
`source instead — declaring this object read-only (a declaration matching what is live) ` +
|
|
106
|
+
`is safe and will never reach this refusal.`,
|
|
107
|
+
}),
|
|
108
|
+
);
|
|
109
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared fixtures for `contact-point.test.ts`/`contact-point-secrets.test.ts`/
|
|
3
|
+
* `contact-point-provenance.test.ts` — split across three files to keep each under the house's
|
|
4
|
+
* 250-line cap. Deliberately NOT named `*.test.ts`: importing one test file from another would
|
|
5
|
+
* make `bun test`'s glob discovery execute its `describe` blocks twice (once directly, once as an
|
|
6
|
+
* import side effect of the importing file) — this file has none to run, only plain data.
|
|
7
|
+
*/
|
|
8
|
+
export const LIST_PATH = '/api/v1/provisioning/contact-points';
|
|
9
|
+
export const ITEM_PATH = '/api/v1/provisioning/contact-points/slack-oncall';
|
|
10
|
+
|
|
11
|
+
export const liveJson = {
|
|
12
|
+
disableResolveMessage: false,
|
|
13
|
+
name: 'On-call Slack',
|
|
14
|
+
provenance: 'api',
|
|
15
|
+
settings: { recipient: '#oncall' },
|
|
16
|
+
type: 'slack',
|
|
17
|
+
uid: 'slack-oncall',
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export const props = {
|
|
21
|
+
name: 'On-call Slack',
|
|
22
|
+
settings: { recipient: '#oncall' },
|
|
23
|
+
type: 'slack',
|
|
24
|
+
uid: 'slack-oncall',
|
|
25
|
+
};
|