signalk-container-helper 0.1.0 → 0.2.1
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/CHANGELOG.md +25 -0
- package/README.md +240 -11
- package/dist/types.d.ts +34 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -1
- package/dist/types.js.map +1 -1
- package/dist/ui/components.d.ts +147 -0
- package/dist/ui/components.d.ts.map +1 -0
- package/dist/ui/components.js +189 -0
- package/dist/ui/components.js.map +1 -0
- package/dist/ui/format.d.ts +12 -0
- package/dist/ui/format.d.ts.map +1 -0
- package/dist/ui/format.js +72 -0
- package/dist/ui/format.js.map +1 -0
- package/dist/ui/hooks.d.ts +78 -0
- package/dist/ui/hooks.d.ts.map +1 -0
- package/dist/ui/hooks.js +163 -0
- package/dist/ui/hooks.js.map +1 -0
- package/dist/ui/index.d.ts +11 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +10 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/styles.d.ts +267 -0
- package/dist/ui/styles.d.ts.map +1 -0
- package/dist/ui/styles.js +213 -0
- package/dist/ui/styles.js.map +1 -0
- package/dist/ui/versions.d.ts +66 -0
- package/dist/ui/versions.d.ts.map +1 -0
- package/dist/ui/versions.js +96 -0
- package/dist/ui/versions.js.map +1 -0
- package/package.json +28 -3
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# v0.2.1
|
|
2
|
+
|
|
3
|
+
Docs-only release.
|
|
4
|
+
|
|
5
|
+
- **README: "ESM plugins must build an ESM remote"** — Signal K injects each configurator panel's script tag based on the plugin's package.json `type` field, so `"type": "module"` plugins (like this library, and therefore most of its consumers) must build their panel as an ESM Module Federation container (`experiments.outputModule` + `output.module` + `library: { type: "module" }`); the classic `var` remote the CommonJS reference plugins use loads silently into module scope and fails at panel-open time with the misleading _'Module "…" is not available. Make sure the webapp is installed.'_ The new section documents the server's injection logic, both mismatch failure modes, the webpack recipe, a `get`/`init` verification one-liner, and links [signalk-piper](https://github.com/hoeken/signalk-piper) as a working ESM example — plus a matching panel-conventions bullet, and the "no changes to the standard webpack config" claim is now scoped to loaders
|
|
6
|
+
|
|
7
|
+
# v0.2.0
|
|
8
|
+
|
|
9
|
+
- **New `signalk-container-helper/ui` entrypoint** — browser-side React building blocks for plugin config panels, packaging the pieces the reference plugins (`signalk-grafana`, `signalk-questdb`, `mayara-server-signalk-plugin`) had each been hand-copying: the shared inline-style vocabulary (`panelStyles`, `stateColors`), components (`StatusCard`, `VersionSelect`, `UpdateControls`, `Button`, `CollapsibleSection`, and friends), fetch-and-poll hooks (`useStatusPoll`, `useVersions`, `useUpdateFlow`) with self-scheduling polls and stale-response drops, version-dropdown view logic (`deriveVersionsView`) that handles both structured and legacy `/api/versions` shapes and falls back to the running tag so a rate-limited GitHub fetch never blanks the select, and `formatUpdateMessage` typed against `UpdateCheckResult` to match `registerUpdateRoutes`' contract
|
|
10
|
+
- The UI entry ships as tsc-compiled `React.createElement` ESM (no JSX) so panel webpack builds that exclude `node_modules` from babel-loader can bundle it directly; `react` (≥ 17) is a new **optional** peer dependency that resolves to the Admin UI's Module Federation shared singleton — the main entry remains Node-only and zero-dependency
|
|
11
|
+
- **Type mirror** — added `ContainerConfig.devices` and `ContainerConfig.groupAdd`, mirroring signalk-container 1.24.0 (older manager versions silently ignore both fields)
|
|
12
|
+
|
|
13
|
+
# v0.1.0
|
|
14
|
+
|
|
15
|
+
Initial release — a typed, zero-dependency helper library for Signal K plugin developers whose plugins run containers through the [signalk-container](https://github.com/dirkwa/signalk-container) plugin, packaging the integration patterns extracted from `signalk-backup`, `mayara-server-signalk-plugin`, `signalk-doctor`, and `signalk-updater`.
|
|
16
|
+
|
|
17
|
+
- **`ManagedContainer`** — the full owned-container lifecycle: image-tag validation, `ensureRunning`, waiting for the app inside the container to answer HTTP, update-detection registration, `/api/update/check` + `/api/update/apply` routes, log access, and clean shutdown
|
|
18
|
+
- **`AdoptedContainer`** — update registration and update checks for containers the plugin doesn't own
|
|
19
|
+
- **Manager discovery** — `getContainerManager` plus `waitForContainerManager`, a two-phase wait (manager present → runtime settled) that keeps the two failure modes distinct in error reporting
|
|
20
|
+
- **Declarative update sources** — `buildVersionSource` resolves a GitHub-releases, Docker-Hub-tags, or custom spec against the manager's update service
|
|
21
|
+
- **HTTP utilities** — `fetchWithTimeout`, `waitForHttpReady` (poll until 2xx or deadline), and `probeHttpHealth` (retrying liveness probe with slow-response detection that never throws)
|
|
22
|
+
- **Startup helper** — `startSafely` wraps async plugin startup so failures are caught and reported even though Signal K doesn't await `start()`
|
|
23
|
+
- **Typed errors** — `ContainerHelperError` with stable error codes, plus the `errMsg` and `isValidImageTag` guards
|
|
24
|
+
- **Type mirror of signalk-container's public API** — `ContainerManagerApi`, `ContainerConfig`, `UpdateServiceApi`, and friends, verified against `signalk-container/types` (≥ 1.23.2) by a contract test so the mirror can't silently drift
|
|
25
|
+
- Ships as an ES module and requires Node ≥ 24
|
package/README.md
CHANGED
|
@@ -11,6 +11,10 @@ mounting `/api/update/check` + `apply` routes, and stopping cleanly. This librar
|
|
|
11
11
|
packages those patterns — extracted from `signalk-backup`, `mayara-server-signalk-plugin`,
|
|
12
12
|
`signalk-doctor`, and `signalk-updater` — into a small, typed, zero-dependency API.
|
|
13
13
|
|
|
14
|
+
It also ships the shared **React config-panel building blocks** those plugins
|
|
15
|
+
hand-copied (container status card, image-version dropdown, update controls) as
|
|
16
|
+
a separate browser-side entrypoint, [`signalk-container-helper/ui`](#config-panel-ui-signalk-container-helperui).
|
|
17
|
+
|
|
14
18
|
See [SPEC.md](SPEC.md) for the full design rationale.
|
|
15
19
|
|
|
16
20
|
## Install
|
|
@@ -201,6 +205,230 @@ Why not `manager.getState()` for health? signalk-container namespace-prefixes th
|
|
|
201
205
|
containers it manages (`sk-<name>`); externally-managed peers don't carry the prefix,
|
|
202
206
|
so the manager can't see them — and "running" isn't "healthy" anyway.
|
|
203
207
|
|
|
208
|
+
## Config-panel UI (`signalk-container-helper/ui`)
|
|
209
|
+
|
|
210
|
+
The reference plugins also share a hand-copied React config panel: a container
|
|
211
|
+
status card, an image-version dropdown, a check/apply update row, and the same
|
|
212
|
+
inline-style vocabulary. The `/ui` entrypoint packages those as reusable
|
|
213
|
+
components and hooks. It is a separate subpath export — the main entry stays
|
|
214
|
+
Node-only and zero-dependency; `/ui` needs `react` (an optional peer
|
|
215
|
+
dependency) and runs in the Signal K Admin UI page.
|
|
216
|
+
|
|
217
|
+
### How it fits the standard panel build
|
|
218
|
+
|
|
219
|
+
Signal K loads plugin config panels as **webpack Module Federation remotes**
|
|
220
|
+
(`public/remoteEntry.js` exposing `./PluginConfigurationPanel`, with `react`
|
|
221
|
+
shared as a singleton). The standard webpack config runs `babel-loader` with
|
|
222
|
+
`exclude: /node_modules/`, so a library shipping raw JSX would break the
|
|
223
|
+
build. This entrypoint therefore ships **tsc-compiled `React.createElement`
|
|
224
|
+
JS (no JSX)** that webpack bundles directly, and its `import "react"` resolves
|
|
225
|
+
to the host Admin UI's shared React singleton. No loader changes are needed —
|
|
226
|
+
but the remote's output format must match your package's module type (next
|
|
227
|
+
section).
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
npm install signalk-container-helper react
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
(`react` can be a devDependency of your plugin — it is only used at bundle
|
|
234
|
+
time; at runtime the Admin UI provides the singleton.)
|
|
235
|
+
|
|
236
|
+
### ESM plugins must build an ESM remote
|
|
237
|
+
|
|
238
|
+
The server injects each panel's script tag based on the **plugin's**
|
|
239
|
+
package.json `type` field:
|
|
240
|
+
|
|
241
|
+
```js
|
|
242
|
+
moduleInfo.type === "module"
|
|
243
|
+
? `<script type="module" src="/${moduleInfo.name}/remoteEntry.js"></script>`
|
|
244
|
+
: `<script src="/${moduleInfo.name}/remoteEntry.js"></script>`;
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
The remote's output format must match, and the failure modes on a mismatch
|
|
248
|
+
are unhelpful, so get this right up front:
|
|
249
|
+
|
|
250
|
+
- **CommonJS plugin** (the reference plugins): the classic remote —
|
|
251
|
+
`library: { type: "var", name: "<name with [-@/] → _>" }` — which lands on
|
|
252
|
+
`window` when the plain script tag runs.
|
|
253
|
+
- **`"type": "module"` plugin** (likely yours — this library is ESM-only):
|
|
254
|
+
the Admin UI loads the panel with a dynamic `import()` and requires real
|
|
255
|
+
`get`/`init` module exports. A copied `var` remote loads silently into
|
|
256
|
+
module scope — no window global, no exports — and the panel dies with
|
|
257
|
+
_'Module "…" is not available. Make sure the webapp is installed.'_ even
|
|
258
|
+
though discovery and serving worked. Build an **ESM container** instead:
|
|
259
|
+
|
|
260
|
+
```js
|
|
261
|
+
// webpack.config.cjs (an ESM package needs the .cjs extension, or an ESM config)
|
|
262
|
+
module.exports = {
|
|
263
|
+
// ...
|
|
264
|
+
experiments: { outputModule: true },
|
|
265
|
+
output: {
|
|
266
|
+
path: path.resolve(__dirname, "public"),
|
|
267
|
+
module: true,
|
|
268
|
+
clean: false,
|
|
269
|
+
},
|
|
270
|
+
plugins: [
|
|
271
|
+
new ModuleFederationPlugin({
|
|
272
|
+
name: "your_plugin_name",
|
|
273
|
+
library: { type: "module" }, // no global var name
|
|
274
|
+
filename: "remoteEntry.js",
|
|
275
|
+
exposes: {
|
|
276
|
+
"./PluginConfigurationPanel":
|
|
277
|
+
"./src/configpanel/PluginConfigurationPanel",
|
|
278
|
+
},
|
|
279
|
+
shared: {
|
|
280
|
+
react: { singleton: true, requiredVersion: "^19" },
|
|
281
|
+
"react-dom": { singleton: true, requiredVersion: "^19" },
|
|
282
|
+
},
|
|
283
|
+
}),
|
|
284
|
+
],
|
|
285
|
+
};
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
Chunks emit as `.mjs`; verify the container shape with
|
|
289
|
+
`node -e 'import("./public/remoteEntry.js").then((m) => console.log(typeof m.get, typeof m.init))'`
|
|
290
|
+
(both must print `function`).
|
|
291
|
+
|
|
292
|
+
The mismatch breaks in the other direction too: a CJS package emitting an ESM
|
|
293
|
+
remote throws a `SyntaxError` when the browser executes `export` syntax from
|
|
294
|
+
a plain script tag. A working ESM example is
|
|
295
|
+
[signalk-piper](https://github.com/hoeken/signalk-piper)'s
|
|
296
|
+
`webpack.config.cjs`.
|
|
297
|
+
|
|
298
|
+
### Example panel
|
|
299
|
+
|
|
300
|
+
```jsx
|
|
301
|
+
import React, { useState } from "react";
|
|
302
|
+
import {
|
|
303
|
+
panelStyles as S,
|
|
304
|
+
SectionTitle,
|
|
305
|
+
StatusCard,
|
|
306
|
+
FieldRow,
|
|
307
|
+
VersionSelect,
|
|
308
|
+
UpdateControls,
|
|
309
|
+
CollapsibleSection,
|
|
310
|
+
ActionStatus,
|
|
311
|
+
Button,
|
|
312
|
+
useStatusPoll,
|
|
313
|
+
useVersions,
|
|
314
|
+
} from "signalk-container-helper/ui";
|
|
315
|
+
|
|
316
|
+
const BASE = "/plugins/signalk-myservice";
|
|
317
|
+
|
|
318
|
+
export default function PluginConfigurationPanel({ configuration, save }) {
|
|
319
|
+
const cfg = configuration || {};
|
|
320
|
+
const [tag, setTag] = useState(cfg.imageTag || "latest");
|
|
321
|
+
const [saved, setSaved] = useState("");
|
|
322
|
+
|
|
323
|
+
// Polls /api/status every 5s; parses non-2xx bodies too (unhealthy
|
|
324
|
+
// responses often carry fields the panel must surface).
|
|
325
|
+
const { status, loading } = useStatusPoll(`${BASE}/api/status`, {
|
|
326
|
+
fallback: { status: "not_running" },
|
|
327
|
+
});
|
|
328
|
+
|
|
329
|
+
// Fetches /api/versions once; refresh() from the ↻ button. Accepts a bare
|
|
330
|
+
// VersionInfo[] or the structured { versions, sources } shape, and keeps
|
|
331
|
+
// the last known list when the fetch fails.
|
|
332
|
+
const versions = useVersions(`${BASE}/api/versions`);
|
|
333
|
+
|
|
334
|
+
const running = status?.status === "running";
|
|
335
|
+
return (
|
|
336
|
+
<div style={S.root}>
|
|
337
|
+
<SectionTitle>My Service Status</SectionTitle>
|
|
338
|
+
<StatusCard
|
|
339
|
+
icon="M"
|
|
340
|
+
iconBackground={running ? "#7c3aed" : undefined}
|
|
341
|
+
title="My Service"
|
|
342
|
+
meta={
|
|
343
|
+
loading ? "Checking..." : running ? status.endpoint : "Not running"
|
|
344
|
+
}
|
|
345
|
+
state={running ? "ok" : "error"}
|
|
346
|
+
link={running ? { href: status.url, label: "Open ↗" } : undefined}
|
|
347
|
+
/>
|
|
348
|
+
|
|
349
|
+
{/* Talks to the routes ManagedContainer.registerUpdateRoutes mounts. */}
|
|
350
|
+
{running && (
|
|
351
|
+
<UpdateControls
|
|
352
|
+
checkUrl={`${BASE}/api/update/check`}
|
|
353
|
+
applyUrl={`${BASE}/api/update/apply`}
|
|
354
|
+
tag={tag}
|
|
355
|
+
/>
|
|
356
|
+
)}
|
|
357
|
+
|
|
358
|
+
<SectionTitle>Settings</SectionTitle>
|
|
359
|
+
<FieldRow label="Image version">
|
|
360
|
+
<VersionSelect
|
|
361
|
+
value={tag}
|
|
362
|
+
onChange={setTag}
|
|
363
|
+
versions={versions.versions}
|
|
364
|
+
loading={versions.loading}
|
|
365
|
+
error={versions.versionsError}
|
|
366
|
+
onRefresh={versions.refresh}
|
|
367
|
+
/>
|
|
368
|
+
</FieldRow>
|
|
369
|
+
|
|
370
|
+
<CollapsibleSection title="Advanced">
|
|
371
|
+
<FieldRow label="Extra arguments" hint="rarely needed">
|
|
372
|
+
<input style={S.input} />
|
|
373
|
+
</FieldRow>
|
|
374
|
+
</CollapsibleSection>
|
|
375
|
+
|
|
376
|
+
<ActionStatus message={saved} />
|
|
377
|
+
<div style={{ marginTop: 24 }}>
|
|
378
|
+
<Button
|
|
379
|
+
onClick={() => {
|
|
380
|
+
save({ ...cfg, imageTag: tag });
|
|
381
|
+
setSaved("Saved! Plugin will restart with new configuration.");
|
|
382
|
+
}}
|
|
383
|
+
>
|
|
384
|
+
Save Configuration
|
|
385
|
+
</Button>
|
|
386
|
+
</div>
|
|
387
|
+
</div>
|
|
388
|
+
);
|
|
389
|
+
}
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
### UI exports
|
|
393
|
+
|
|
394
|
+
| Export | Purpose |
|
|
395
|
+
| ---------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
396
|
+
| `panelStyles`, `stateColors` | The shared inline-style vocabulary (`root`, `card`, `fieldRow`, `input`, `warnBanner`, …). Inline styles are deliberate: a CSS file shipped by a federation remote would leak into or be clobbered by the host page. Spread-extend: `{ ...panelStyles.input, width: 300 }` |
|
|
397
|
+
| `StatusCard`, `StateDot` | Container status card (icon, title, meta, optional link, state dot) and the bare green/amber/red dot |
|
|
398
|
+
| `VersionSelect` | Image-version dropdown: floating tags (`latest`, `main`, …), pre-releases, stable releases, PR test images — and a synthetic `<tag> (running)` option when the current value isn't listed, so the controlled select never silently resets the running image |
|
|
399
|
+
| `UpdateControls` | Self-contained check/apply row against `registerUpdateRoutes`' contract (`GET check` → `UpdateCheckResult`, `POST apply` → `{ success, tag }`) |
|
|
400
|
+
| `SectionTitle`, `FieldRow`, `Hint`, `CollapsibleSection`, `Button`, `ActionStatus` | Form scaffolding: uppercase section headings, label + control + hint rows, collapsed-by-default advanced sections (keyboard-accessible), busy-aware buttons, the green/red outcome line |
|
|
401
|
+
| `useStatusPoll(url, opts)` | Self-scheduling status poll (no overlapping requests on slow hosts; stale responses dropped; body parsed on non-2xx too) |
|
|
402
|
+
| `useVersions(url)` | `/api/versions` fetch with rate-limit/offline error lines; preserves the last known list on failure |
|
|
403
|
+
| `useUpdateFlow({ checkUrl, applyUrl })` | The check/apply state machine behind `UpdateControls`, for custom layouts |
|
|
404
|
+
| `splitVersions`, `shownTags`, `runningTagFallback`, `deriveVersionsView` | The pure dropdown view-logic (unit-tested without a DOM) |
|
|
405
|
+
| `formatUpdateMessage`, `formatTimeAgo`, `formatNumber` | `UpdateCheckResult` → status line ("Update available: 1.0.0 → 1.1.0", "Offline — last checked 3h ago…"), relative timestamps, compact counts ("1.2K") |
|
|
406
|
+
|
|
407
|
+
### Panel conventions the components encode
|
|
408
|
+
|
|
409
|
+
Adopt these even where you don't use the components:
|
|
410
|
+
|
|
411
|
+
- **A controlled `<select>` must always render its value.** If the running
|
|
412
|
+
tag isn't in the options (a GitHub rate limit hid it, or a pin fell out of
|
|
413
|
+
the top-N), inject a synthetic option — otherwise the browser shows the
|
|
414
|
+
first option and the next Save silently changes the running image.
|
|
415
|
+
- **Version lists degrade, never wipe.** On a failed `/api/versions` fetch,
|
|
416
|
+
keep showing the last known list with an explanatory error line.
|
|
417
|
+
- **Poll by self-scheduling, not `setInterval`.** On a slow host one response
|
|
418
|
+
can outlast the poll period; the next request must only start after the
|
|
419
|
+
previous one settled. Drop stale responses with a generation counter.
|
|
420
|
+
- **Parse status bodies on non-2xx.** Unhealthy responses (503) often carry
|
|
421
|
+
the very fields the operator needs to fix the problem.
|
|
422
|
+
- **Offline is a state, not an error.** Boats lose connectivity; show "last
|
|
423
|
+
checked 3h ago", don't paint the panel red.
|
|
424
|
+
- **Persist the requested tag, not the resolved one** after an update, so
|
|
425
|
+
floating tags like `latest` keep auto-tracking.
|
|
426
|
+
- **Match the remote's module format to your package's `type` field.** The
|
|
427
|
+
server injects `<script type="module">` for `"type": "module"` plugins and
|
|
428
|
+
a plain script tag otherwise; the wrong webpack `library` type fails only
|
|
429
|
+
at panel-open time, with a misleading "webapp is not installed" error (see
|
|
430
|
+
[ESM plugins must build an ESM remote](#esm-plugins-must-build-an-esm-remote)).
|
|
431
|
+
|
|
204
432
|
## API overview
|
|
205
433
|
|
|
206
434
|
| Export | Purpose |
|
|
@@ -238,13 +466,14 @@ All errors thrown by the helpers have already been surfaced through
|
|
|
238
466
|
|
|
239
467
|
The helpers feature-detect newer signalk-container capabilities:
|
|
240
468
|
|
|
241
|
-
| Capability
|
|
242
|
-
|
|
|
243
|
-
| `whenReady()`
|
|
244
|
-
| `getLogs()`
|
|
245
|
-
| `recreate()`
|
|
246
|
-
| `ContainerConfig.healthcheck`
|
|
247
|
-
| `ContainerConfig.ulimits`
|
|
469
|
+
| Capability | Floor | Fallback behavior |
|
|
470
|
+
| ------------------------------------------------------ | ------ | ------------------------------------------------------------ |
|
|
471
|
+
| `whenReady()` | 1.6.0 | polls `getRuntime()` |
|
|
472
|
+
| `getLogs()` | 1.7.0 | `getLogs()` returns `null` |
|
|
473
|
+
| `recreate()` | 1.12.0 | self-heal skipped; updates use pull → remove → ensureRunning |
|
|
474
|
+
| `ContainerConfig.healthcheck` | 1.14.0 | ignored by older versions |
|
|
475
|
+
| `ContainerConfig.ulimits` | 1.17.0 | ignored by older versions |
|
|
476
|
+
| `ContainerConfig.devices` / `ContainerConfig.groupAdd` | 1.24.0 | ignored by older versions |
|
|
248
477
|
|
|
249
478
|
## Design rules inherited from the reference plugins
|
|
250
479
|
|
|
@@ -277,11 +506,11 @@ This library is distributed through **npm with semver** — consumers `npm insta
|
|
|
277
506
|
|
|
278
507
|
Releases are tag-triggered (`.github/workflows/publish.yml` fires on `v*` tags):
|
|
279
508
|
|
|
280
|
-
1. Bump `version` in `package.json`, commit, and merge to `master`.
|
|
281
|
-
2.
|
|
282
|
-
3. The workflow
|
|
509
|
+
1. Bump `version` in `package.json`, add a matching `# vX.Y.Z` section to `CHANGELOG.md`, commit, and merge to `master`.
|
|
510
|
+
2. Run `npm run release` — it tags `v<version>` and pushes the tag.
|
|
511
|
+
3. The workflow extracts that version's CHANGELOG.md section as the GitHub Release notes (and fails if the section is missing), then builds, tests, and runs `npm publish --provenance` (tags containing `alpha`/`beta`/`rc` publish under the matching dist-tag).
|
|
283
512
|
|
|
284
|
-
Publishing
|
|
513
|
+
Publishing uses [npm trusted publishing](https://docs.npmjs.com/trusted-publishers) (OIDC) — no npm token secret, but the package must list this repo's workflow as a trusted publisher on npmjs.com.
|
|
285
514
|
|
|
286
515
|
## License
|
|
287
516
|
|
package/dist/types.d.ts
CHANGED
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
*
|
|
12
12
|
* Source of truth: https://github.com/dirkwa/signalk-container
|
|
13
13
|
* (src/types.ts and src/updates/types.ts)
|
|
14
|
-
* Last synced against signalk-container: v1.
|
|
14
|
+
* Last synced against signalk-container: v1.24.0 (pending release —
|
|
15
|
+
* `devices`/`groupAdd` are ahead of the newest published release, 1.23.2)
|
|
15
16
|
* Supported baseline: v1.6.0 — members newer than the baseline are optional
|
|
16
17
|
* here so call sites are forced to feature-detect. Version floors are noted
|
|
17
18
|
* on each member.
|
|
@@ -103,8 +104,9 @@ export interface ContainerResourceLimits {
|
|
|
103
104
|
* Declarative desired state for a managed container. Pass the same config to
|
|
104
105
|
* `ensureRunning` on every plugin start — signalk-container diffs it against
|
|
105
106
|
* the live container and removes + recreates when `image`, `tag`, `command`,
|
|
106
|
-
* `networkMode`, `env`, `volumes`, or `
|
|
107
|
-
* `healthcheck`, and `ulimits` are NOT part of drift
|
|
107
|
+
* `networkMode`, `env`, `volumes`, `ports`, `devices`, or `groupAdd` differ.
|
|
108
|
+
* `restart`, `labels`, `healthcheck`, and `ulimits` are NOT part of drift
|
|
109
|
+
* detection.
|
|
108
110
|
*/
|
|
109
111
|
export interface ContainerConfig {
|
|
110
112
|
/** Image repo without tag, e.g. "ghcr.io/questdb/questdb". */
|
|
@@ -159,6 +161,35 @@ export interface ContainerConfig {
|
|
|
159
161
|
inImageUid?: number;
|
|
160
162
|
inImageGid?: number;
|
|
161
163
|
} | false;
|
|
164
|
+
/**
|
|
165
|
+
* Host devices to expose. Two entry forms:
|
|
166
|
+
* - device NODE path, docker `--device` syntax
|
|
167
|
+
* `hostPath[:containerPath[:permissions]]` — attached statically at
|
|
168
|
+
* create time; a replugged node reappears only on the next recreate.
|
|
169
|
+
* - device DIRECTORY path, e.g. "/dev/snd" — hot-plug mode: bind-mounted
|
|
170
|
+
* at the same path with device-class cgroup rules opened, so nodes
|
|
171
|
+
* appearing after a USB replug stay visible. Use for USB audio,
|
|
172
|
+
* input devices, GPUs.
|
|
173
|
+
* An entry whose host path is missing is skipped with a warning — an
|
|
174
|
+
* unplugged device never prevents container start. On rootless runtimes
|
|
175
|
+
* access is governed by plain file permissions on the bound nodes —
|
|
176
|
+
* combine with `groupAdd` to hold the device group. Part of drift
|
|
177
|
+
* detection. 1.24.0+ — silently ignored by older versions.
|
|
178
|
+
*/
|
|
179
|
+
devices?: string[];
|
|
180
|
+
/**
|
|
181
|
+
* Supplementary groups (`--group-add`): group names or numeric GIDs.
|
|
182
|
+
* Names are resolved to GIDs against the HOST's /etc/group (it is the
|
|
183
|
+
* host GID the kernel checks on host device nodes, and the runtimes
|
|
184
|
+
* would resolve names against the image's /etc/group instead); a name
|
|
185
|
+
* unknown to the host is skipped with a warning. On rootless Podman the
|
|
186
|
+
* `run.oci.keep_original_groups` annotation is additionally emitted so
|
|
187
|
+
* the container process keeps the host user's own supplementary groups —
|
|
188
|
+
* `groupAdd: ["audio"]` + `devices: ["/dev/snd"]` then works across
|
|
189
|
+
* docker and rootful/rootless podman alike. Part of drift detection.
|
|
190
|
+
* 1.24.0+ — silently ignored by older versions.
|
|
191
|
+
*/
|
|
192
|
+
groupAdd?: (string | number)[];
|
|
162
193
|
/** Plugin-default resource limits; users override per-field. */
|
|
163
194
|
resources?: ContainerResourceLimits;
|
|
164
195
|
/**
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
*
|
|
12
12
|
* Source of truth: https://github.com/dirkwa/signalk-container
|
|
13
13
|
* (src/types.ts and src/updates/types.ts)
|
|
14
|
-
* Last synced against signalk-container: v1.
|
|
14
|
+
* Last synced against signalk-container: v1.24.0 (pending release —
|
|
15
|
+
* `devices`/`groupAdd` are ahead of the newest published release, 1.23.2)
|
|
15
16
|
* Supported baseline: v1.6.0 — members newer than the baseline are optional
|
|
16
17
|
* here so call sites are forced to feature-detect. Version floors are noted
|
|
17
18
|
* on each member.
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import React, { type CSSProperties, type ReactNode } from "react";
|
|
2
|
+
import { type StateKind } from "./styles.js";
|
|
3
|
+
import { type SplitVersionsOptions, type VersionInfo } from "./versions.js";
|
|
4
|
+
/** Uppercase section heading ("GRAFANA STATUS", "SETTINGS", …). */
|
|
5
|
+
export declare function SectionTitle({ children }: {
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
}): React.JSX.Element;
|
|
8
|
+
/** Small grey inline hint; `color` overrides for warnings. */
|
|
9
|
+
export declare function Hint({ children, color, }: {
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
color?: string;
|
|
12
|
+
}): React.JSX.Element;
|
|
13
|
+
/**
|
|
14
|
+
* A labeled settings row: fixed-width label, then the control(s), then an
|
|
15
|
+
* optional hint. The layout every reference panel uses for its form.
|
|
16
|
+
*/
|
|
17
|
+
export declare function FieldRow({ label, hint, hintColor, children, }: {
|
|
18
|
+
label: ReactNode;
|
|
19
|
+
hint?: ReactNode;
|
|
20
|
+
hintColor?: string;
|
|
21
|
+
children?: ReactNode;
|
|
22
|
+
}): React.JSX.Element;
|
|
23
|
+
/** The 10px status dot: green ok / amber warn / red error, or a custom color. */
|
|
24
|
+
export declare function StateDot({ state, color, title, style, }: {
|
|
25
|
+
state?: StateKind;
|
|
26
|
+
color?: string;
|
|
27
|
+
title?: string;
|
|
28
|
+
style?: CSSProperties;
|
|
29
|
+
}): React.JSX.Element;
|
|
30
|
+
export interface StatusCardProps {
|
|
31
|
+
/** Icon glyph, typically one or two letters ("G", "Q", "SK"). */
|
|
32
|
+
icon: ReactNode;
|
|
33
|
+
iconBackground?: string;
|
|
34
|
+
iconColor?: string;
|
|
35
|
+
title: ReactNode;
|
|
36
|
+
/** Secondary line: version, address, counts… */
|
|
37
|
+
meta?: ReactNode;
|
|
38
|
+
/** Drives the state dot (and the default icon colors when omitted). */
|
|
39
|
+
state?: StateKind;
|
|
40
|
+
stateTitle?: string;
|
|
41
|
+
/** Optional "Open Grafana ↗"-style external link. */
|
|
42
|
+
link?: {
|
|
43
|
+
href: string;
|
|
44
|
+
label: ReactNode;
|
|
45
|
+
};
|
|
46
|
+
/** Extra elements between the info block and the state dot. */
|
|
47
|
+
children?: ReactNode;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The container status card: icon, name, meta line, optional link, state
|
|
51
|
+
* dot. In the error state the icon flips to the shared muted-red treatment
|
|
52
|
+
* unless explicit colors are given.
|
|
53
|
+
*/
|
|
54
|
+
export declare function StatusCard({ icon, iconBackground, iconColor, title, meta, state, stateTitle, link, children, }: StatusCardProps): React.JSX.Element;
|
|
55
|
+
/**
|
|
56
|
+
* Collapsed-by-default section for advanced/rare settings. A real <button>
|
|
57
|
+
* so keyboard users can toggle with Enter/Space and screen readers announce
|
|
58
|
+
* expanded state; the style resets the default button chrome so it still
|
|
59
|
+
* reads as a section title.
|
|
60
|
+
*/
|
|
61
|
+
export declare function CollapsibleSection({ title, defaultOpen, children, }: {
|
|
62
|
+
title: ReactNode;
|
|
63
|
+
defaultOpen?: boolean;
|
|
64
|
+
children: ReactNode;
|
|
65
|
+
}): React.JSX.Element;
|
|
66
|
+
export type ButtonVariant = "primary" | "secondary" | "warn" | "danger";
|
|
67
|
+
/**
|
|
68
|
+
* Panel button. `busy` renders `busyLabel` and disables — the
|
|
69
|
+
* "Updating…" / "Checking…" pattern.
|
|
70
|
+
*/
|
|
71
|
+
export declare function Button({ variant, small, busy, busyLabel, disabled, onClick, title, style, children, }: {
|
|
72
|
+
variant?: ButtonVariant;
|
|
73
|
+
small?: boolean;
|
|
74
|
+
busy?: boolean;
|
|
75
|
+
busyLabel?: ReactNode;
|
|
76
|
+
disabled?: boolean;
|
|
77
|
+
onClick?: () => void;
|
|
78
|
+
title?: string;
|
|
79
|
+
style?: CSSProperties;
|
|
80
|
+
children: ReactNode;
|
|
81
|
+
}): React.JSX.Element;
|
|
82
|
+
/**
|
|
83
|
+
* The action-outcome line under the form: green for success, red for
|
|
84
|
+
* failure. Renders (with reserved height) only when `message` is set.
|
|
85
|
+
*/
|
|
86
|
+
export declare function ActionStatus({ message, error, style, }: {
|
|
87
|
+
message: string;
|
|
88
|
+
error?: boolean;
|
|
89
|
+
style?: CSSProperties;
|
|
90
|
+
}): React.JSX.Element | null;
|
|
91
|
+
export interface FloatingOption {
|
|
92
|
+
tag: string;
|
|
93
|
+
/** Display label; defaults to the tag. */
|
|
94
|
+
label?: string;
|
|
95
|
+
}
|
|
96
|
+
export interface VersionSelectProps extends SplitVersionsOptions {
|
|
97
|
+
value: string;
|
|
98
|
+
onChange: (tag: string) => void;
|
|
99
|
+
/** From `useVersions` / your /api/versions endpoint. */
|
|
100
|
+
versions: VersionInfo[];
|
|
101
|
+
/**
|
|
102
|
+
* Non-release tags listed first. Default
|
|
103
|
+
* `[{ tag: "latest", label: "latest (recommended)" }]`.
|
|
104
|
+
*/
|
|
105
|
+
floatingOptions?: FloatingOption[];
|
|
106
|
+
loading?: boolean;
|
|
107
|
+
/** Operator-facing fetch error (from `useVersions`); rendered in red. */
|
|
108
|
+
error?: string;
|
|
109
|
+
/** When set, renders the ↻ refresh button. */
|
|
110
|
+
onRefresh?: () => void;
|
|
111
|
+
disabled?: boolean;
|
|
112
|
+
style?: CSSProperties;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* The image-version dropdown: floating tags, then pre-releases, then stable
|
|
116
|
+
* releases ("(current stable)" on the newest), then PR test images in an
|
|
117
|
+
* optgroup. When the current `value` isn't among the rendered options —
|
|
118
|
+
* e.g. a pr<N> whose listing was rate-limited, or a stable pin that fell
|
|
119
|
+
* out of the top-N — a synthetic "<tag> (running)" option is injected so
|
|
120
|
+
* the controlled <select> never renders blank and silently resets the
|
|
121
|
+
* operator's real running image.
|
|
122
|
+
*
|
|
123
|
+
* Renders inline elements only, so it slots into a `FieldRow`.
|
|
124
|
+
*/
|
|
125
|
+
export declare function VersionSelect({ value, onChange, versions, floatingOptions, stableCount, preCount, loading, error, onRefresh, disabled, style, }: VersionSelectProps): React.JSX.Element;
|
|
126
|
+
export interface UpdateControlsProps {
|
|
127
|
+
/** GET route mounted by `registerUpdateRoutes` — returns UpdateCheckResult. */
|
|
128
|
+
checkUrl: string;
|
|
129
|
+
/** POST route mounted by `registerUpdateRoutes` — body { tag? }. */
|
|
130
|
+
applyUrl: string;
|
|
131
|
+
/** Tag to apply; omit to re-apply the container's current tag. */
|
|
132
|
+
tag?: string;
|
|
133
|
+
/** Called with the resolved tag after a successful apply. */
|
|
134
|
+
onApplied?: (tag: string | undefined) => void;
|
|
135
|
+
updateLabel?: ReactNode;
|
|
136
|
+
disabled?: boolean;
|
|
137
|
+
style?: CSSProperties;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* The self-contained check/apply row: a "Check for updates" button that
|
|
141
|
+
* becomes "vX → vY available [Update]" when the check says so, or the
|
|
142
|
+
* up-to-date/offline message otherwise. Talks to the routes
|
|
143
|
+
* `ManagedContainer.registerUpdateRoutes` mounts. For a custom layout use
|
|
144
|
+
* `useUpdateFlow` + `formatUpdateMessage` directly.
|
|
145
|
+
*/
|
|
146
|
+
export declare function UpdateControls({ checkUrl, applyUrl, tag, onApplied, updateLabel, disabled, style, }: UpdateControlsProps): React.JSX.Element;
|
|
147
|
+
//# sourceMappingURL=components.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/ui/components.tsx"],"names":[],"mappings":"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"}
|