signalk-questdb 1.4.1 → 1.5.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/README.md CHANGED
@@ -106,26 +106,27 @@ wants to slice it into kopia-dedup-friendly shards. Allowed tables:
106
106
 
107
107
  ## Configuration
108
108
 
109
- | Setting | Default | Description |
110
- | ------------------ | ------------ | ----------------------------------------------------------------------------------- |
111
- | QuestDB version | `latest` | Docker image tag (dropdown shows stable + pre-releases) |
112
- | Managed container | `true` | Let signalk-container manage QuestDB, or connect to external |
113
- | QuestDB host | `127.0.0.1` | External QuestDB host (only used when managed=false) |
114
- | HTTP port | `9000` | External mode, or the host binding when "Bind to 0.0.0.0" is on |
115
- | ILP port | `9009` | External mode, or the host binding when "Bind to 0.0.0.0" is on |
116
- | PostgreSQL port | `8812` | Host binding for Grafana/psql when "Bind to 0.0.0.0" is on |
117
- | Sampling rate (ms) | `2000` | Default min ms between writes per path (0 = every update) |
118
- | Memory limit | `768m` | Hard cgroup cap on QuestDB container RAM (empty = unlimited) |
119
- | CPU limit (cores) | `1.5` | Max CPU cores QuestDB can use (0 = unlimited) |
120
- | Record own vessel | `true` | Record self context |
121
- | Record AIS targets | `false` | Record other vessels |
122
- | Retention (days) | `0` | Auto-delete old partitions (0 = keep forever) |
123
- | Path filter mode | `exclude` | `exclude` matching paths, or `include` only matching paths |
124
- | Path filter paths | _(empty)_ | Glob patterns, one per line (e.g. `navigation.position`); empty = record everything |
125
- | Compression codec | `lz4` | On-disk WAL compression: `none`, `lz4`, or `zstd` |
126
- | Compression level | `3` | ZSTD level 1-22 (only when codec is zstd) |
127
- | Container network | `sk-network` | Shared network for QuestDB (only applied when binding to 0.0.0.0) |
128
- | Bind to 0.0.0.0 | `false` | Expose QuestDB's ports on the LAN (see Connectivity below) |
109
+ | Setting | Default | Description |
110
+ | ------------------------- | ------------ | ----------------------------------------------------------------------------------------------------- |
111
+ | QuestDB version | `latest` | Docker image tag (dropdown shows stable + pre-releases) |
112
+ | Managed container | `true` | Let signalk-container manage QuestDB, or connect to external |
113
+ | QuestDB host | `127.0.0.1` | External QuestDB host (only used when managed=false) |
114
+ | HTTP port | `9000` | External mode, or the host binding when "Bind to 0.0.0.0" is on |
115
+ | ILP port | `9009` | External mode, or the host binding when "Bind to 0.0.0.0" is on |
116
+ | PostgreSQL port | `8812` | Host binding for Grafana/psql when "Bind to 0.0.0.0" is on |
117
+ | Sampling rate (ms) | `2000` | Default min ms between writes per path (0 = every update) |
118
+ | Write batch interval (ms) | `5000` | How often buffered samples are committed one WAL transaction per table per commit (see Performance) |
119
+ | Memory limit | `768m` | Hard cgroup cap on QuestDB container RAM (empty = unlimited) |
120
+ | CPU limit (cores) | `1.5` | Max CPU cores QuestDB can use (0 = unlimited) |
121
+ | Record own vessel | `true` | Record self context |
122
+ | Record AIS targets | `false` | Record other vessels |
123
+ | Retention (days) | `0` | Auto-delete old partitions (0 = keep forever) |
124
+ | Path filter mode | `exclude` | `exclude` matching paths, or `include` only matching paths |
125
+ | Path filter paths | _(empty)_ | Glob patterns, one per line (e.g. `navigation.position`); empty = record everything |
126
+ | Compression codec | `lz4` | On-disk WAL compression: `none`, `lz4`, or `zstd` |
127
+ | Compression level | `3` | ZSTD level 1-22 (only when codec is zstd) |
128
+ | Container network | `sk-network` | Shared network for QuestDB (only applied when binding to 0.0.0.0) |
129
+ | Bind to 0.0.0.0 | `false` | Expose QuestDB's ports on the LAN (see Connectivity below) |
129
130
 
130
131
  ## Connectivity
131
132
 
@@ -178,7 +179,7 @@ The plugin is optimized for Raspberry Pi and similar low-power devices:
178
179
  - **Default sampling rate** of 2000ms limits each path to 1 write per 2 seconds, keeping write volume modest on busy NMEA 2000 buses
179
180
  - **Resource caps** of 768 MB RAM and 1.5 CPU cores (cgroup limits via signalk-container) keep QuestDB from squeezing co-resident containers like Grafana, mayara, or signalk-backup. The JVM auto-sizes its heap to a fraction of the memory cap, so total footprint (heap + off-heap) is bounded
180
181
  - **QuestDB worker threads** reduced to 1 each (WAL, shared, ILP) to minimize CPU usage
181
- - **ILP batching** at 500ms intervals with 1000-row batches reduces TCP overhead
182
+ - **ILP batching** commits every 5s (configurable via "Write batch interval"; a large backlog of buffered rows commits early). Each commit is one WAL transaction per table, and with deduplicated tables the apply cost of a transaction grows with partition size — frequent tiny commits eventually outpace what a Pi can apply and recording stalls. Bigger batches keep the WAL healthy; the cost is that at most one interval of buffered samples is lost on a hard crash
182
183
  - Per-path overrides allow faster rates for critical paths (e.g. `{ "environment.wind.*": 200 }`) while keeping slow-changing paths throttled
183
184
  - Set the memory limit to empty or CPU limit to `0` to disable the cap entirely on roomier hosts
184
185
 
@@ -13,6 +13,7 @@ export declare const ConfigSchema: import("@sinclair/typebox").TObject<{
13
13
  paths: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
14
14
  }>;
15
15
  defaultSamplingRate: import("@sinclair/typebox").TNumber;
16
+ ilpFlushIntervalMs: import("@sinclair/typebox").TNumber;
16
17
  samplingRates: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TNumber>;
17
18
  recordSelf: import("@sinclair/typebox").TBoolean;
18
19
  recordOthers: import("@sinclair/typebox").TBoolean;
@@ -23,3 +24,14 @@ export declare const ConfigSchema: import("@sinclair/typebox").TObject<{
23
24
  compressionLevel: import("@sinclair/typebox").TNumber;
24
25
  }>;
25
26
  export type Config = Static<typeof ConfigSchema>;
27
+ /**
28
+ * Fill in config keys that older saved configs may lack. Signal K hands the
29
+ * plugin its stored configuration verbatim — TypeBox defaults are only
30
+ * applied by the Admin UI form, so a config saved before an option existed
31
+ * (or hand-edited) simply misses the key. The delta pipeline dereferences
32
+ * `pathFilter.paths` and `Object.entries(samplingRates)` on every delta, so
33
+ * a missing key crashed the stream subscription and recording silently
34
+ * stopped. Normalize once at the config boundary instead of guarding every
35
+ * consumer.
36
+ */
37
+ export declare function normalizeConfig(config: Config): Config;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConfigSchema = void 0;
4
+ exports.normalizeConfig = normalizeConfig;
4
5
  const typebox_1 = require("@sinclair/typebox");
5
6
  exports.ConfigSchema = typebox_1.Type.Object({
6
7
  questdbHost: typebox_1.Type.String({
@@ -58,6 +59,13 @@ exports.ConfigSchema = typebox_1.Type.Object({
58
59
  title: "Default sampling rate (ms)",
59
60
  description: "Minimum ms between writes for any path (0 = write every update). 2000ms is a sensible default for Pi/Cerbo-class hardware; lower it per-path via samplingRates when you need finer resolution.",
60
61
  }),
62
+ ilpFlushIntervalMs: typebox_1.Type.Number({
63
+ default: 5000,
64
+ minimum: 500,
65
+ maximum: 60000,
66
+ title: "Write batch interval (ms)",
67
+ description: "How often buffered samples are committed to QuestDB. Each commit is one WAL transaction per table, so short intervals create huge numbers of tiny transactions whose apply cost eventually stalls recording on Pi-class hardware — QuestDB recommends >100 rows per transaction. Longer intervals mean at most this many ms of buffered data is lost on a hard crash.",
68
+ }),
61
69
  samplingRates: typebox_1.Type.Record(typebox_1.Type.String(), typebox_1.Type.Number(), {
62
70
  default: {},
63
71
  title: "Per-path sampling rates (ms)",
@@ -96,4 +104,24 @@ exports.ConfigSchema = typebox_1.Type.Object({
96
104
  description: "zstd: 1-22 (default 3), lz4: ignored",
97
105
  }),
98
106
  });
107
+ /**
108
+ * Fill in config keys that older saved configs may lack. Signal K hands the
109
+ * plugin its stored configuration verbatim — TypeBox defaults are only
110
+ * applied by the Admin UI form, so a config saved before an option existed
111
+ * (or hand-edited) simply misses the key. The delta pipeline dereferences
112
+ * `pathFilter.paths` and `Object.entries(samplingRates)` on every delta, so
113
+ * a missing key crashed the stream subscription and recording silently
114
+ * stopped. Normalize once at the config boundary instead of guarding every
115
+ * consumer.
116
+ */
117
+ function normalizeConfig(config) {
118
+ return {
119
+ ...config,
120
+ pathFilter: {
121
+ mode: config.pathFilter?.mode ?? "exclude",
122
+ paths: config.pathFilter?.paths ?? [],
123
+ },
124
+ samplingRates: config.samplingRates ?? {},
125
+ };
126
+ }
99
127
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ export declare const DEFAULT_FLUSH_INTERVAL_MS = 5000;
1
2
  export declare class ILPWriter {
2
3
  private host;
3
4
  private port;
@@ -21,9 +22,11 @@ export declare class ILPWriter {
21
22
  private readonly maxReconnectDelay;
22
23
  private readonly stableConnectionMs;
23
24
  private readonly unhealthyAfterFlaps;
25
+ private readonly flushIntervalMs;
24
26
  constructor(host: string, port: number, debug?: (msg: string) => void, callbacks?: {
25
27
  onUnhealthy?: (msg: string) => void;
26
28
  onHealthy?: () => void;
29
+ flushIntervalMs?: number;
27
30
  timing?: {
28
31
  initialReconnectDelay?: number;
29
32
  maxReconnectDelay?: number;
@@ -33,9 +33,18 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.ILPWriter = void 0;
36
+ exports.ILPWriter = exports.DEFAULT_FLUSH_INTERVAL_MS = void 0;
37
37
  const net = __importStar(require("net"));
38
- const FLUSH_INTERVAL_MS = 500;
38
+ // Every flush that carries lines becomes one WAL transaction per touched
39
+ // table, and with DEDUP tables each transaction pays a dedup pass on apply
40
+ // whose cost grows with partition size. Flushing twice a second produced
41
+ // ~173K tiny (~30-row) transactions per table per day in the field — enough
42
+ // that by day two the WAL apply on a Pi could no longer keep up with the
43
+ // commit rate and tables stalled. Fewer, larger transactions are dramatically
44
+ // cheaper to apply; QuestDB's own guidance is >100 rows per transaction. The
45
+ // trade-off is bounded staleness: at most this many ms of buffered samples
46
+ // are lost on a hard crash (a normal stop flushes first).
47
+ exports.DEFAULT_FLUSH_INTERVAL_MS = 5000;
39
48
  const FLUSH_BATCH_SIZE = 1000;
40
49
  const INITIAL_RECONNECT_DELAY_MS = 1000;
41
50
  const MAX_RECONNECT_DELAY_MS = 30000;
@@ -99,12 +108,18 @@ class ILPWriter {
99
108
  maxReconnectDelay;
100
109
  stableConnectionMs;
101
110
  unhealthyAfterFlaps;
111
+ // How often buffered lines are committed. Unlike `timing`, this is a real
112
+ // production knob (wired to the plugin's ilpFlushIntervalMs config) — see
113
+ // the DEFAULT_FLUSH_INTERVAL_MS comment for the batching rationale.
114
+ flushIntervalMs;
102
115
  constructor(host, port, debug, callbacks) {
103
116
  this.host = host;
104
117
  this.port = port;
105
118
  this.debug = debug ?? (() => { });
106
119
  this.onUnhealthy = callbacks?.onUnhealthy ?? (() => { });
107
120
  this.onHealthy = callbacks?.onHealthy ?? (() => { });
121
+ this.flushIntervalMs =
122
+ callbacks?.flushIntervalMs ?? exports.DEFAULT_FLUSH_INTERVAL_MS;
108
123
  const t = callbacks?.timing ?? {};
109
124
  this.initialReconnectDelay =
110
125
  t.initialReconnectDelay ?? INITIAL_RECONNECT_DELAY_MS;
@@ -298,7 +313,7 @@ class ILPWriter {
298
313
  }
299
314
  startFlushTimer() {
300
315
  this.stopFlushTimer();
301
- this.flushTimer = setInterval(() => this.flush(), FLUSH_INTERVAL_MS);
316
+ this.flushTimer = setInterval(() => this.flush(), this.flushIntervalMs);
302
317
  }
303
318
  stopFlushTimer() {
304
319
  if (this.flushTimer) {
@@ -1 +1 @@
1
- {"version":3,"file":"ilp-writer.js","sourceRoot":"","sources":["../src/ilp-writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ilp-writer.js","sourceRoot":"","sources":["../src/ilp-writer.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -359,6 +359,10 @@ module.exports = (app) => {
359
359
  }
360
360
  }
361
361
  async function runStartInner(config, signal) {
362
+ // Older saved configs miss keys added since (pathFilter, samplingRates);
363
+ // the per-delta pipeline dereferences them per delta, so normalize once
364
+ // at the boundary.
365
+ config = (0, schema_1.normalizeConfig)(config);
362
366
  currentConfig = config;
363
367
  // A start may connect to a different QuestDB than the previous run —
364
368
  // notably external mode repointed at a new host/build — so drop any cached
@@ -501,6 +505,7 @@ module.exports = (app) => {
501
505
  // stuck on a cheerful "Recording" while every sample is dropped.
502
506
  onUnhealthy: (msg) => app.setPluginError(msg),
503
507
  onHealthy: () => app.setPluginStatus(`Recording to QuestDB at ${ilpHost}:${ilpPort}`),
508
+ flushIntervalMs: config.ilpFlushIntervalMs,
504
509
  });
505
510
  await writer.connect();
506
511
  // Last abort checkpoint before we register providers, the stream
@@ -982,6 +987,72 @@ module.exports = (app) => {
982
987
  // Signal K's own plugin-uninstall can't delete the data dir on rootless
983
988
  // Podman (the container writes files as a subuid the SK user can't
984
989
  // remove); removeManagedData wipes them from inside the userns.
990
+ // Lossless recovery for a suspended WAL: one plain `RESUME WAL` per
991
+ // suspended plugin table. Deliberately a SINGLE attempt each, no
992
+ // retries — QuestDB's own HTTP console parks a busy ALTER and retries
993
+ // it server-side once per second indefinitely, and several console
994
+ // tabs doing that produced a self-sustaining retry storm in the field.
995
+ // A busy/failed table is reported to the caller instead. `ALTER` is
996
+ // DDL, so this cannot go through /api/query (isReadOnlySQL blocks it).
997
+ //
998
+ // No lifecycle lock: the resumes mutate no plugin-side state and are
999
+ // idempotent, so racing a concurrent start/update/purge at worst
1000
+ // yields a per-table error the caller sees — while taking the lock
1001
+ // could park this request behind a wedged start forever.
1002
+ router.post("/api/resume-wal", async (_req, res) => {
1003
+ try {
1004
+ const client = queryClient;
1005
+ if (!client) {
1006
+ res
1007
+ .status(503)
1008
+ .json({ error: "QuestDB connection not initialized" });
1009
+ return;
1010
+ }
1011
+ const walResult = await client.exec("SELECT name, writerTxn, sequencerTxn FROM wal_tables() WHERE suspended = true", 10_000);
1012
+ const suspended = client
1013
+ .toObjects(walResult)
1014
+ .filter((row) => FULL_EXPORT_TABLE_SET.has(String(row.name)));
1015
+ const results = [];
1016
+ for (const row of suspended) {
1017
+ const table = String(row.name);
1018
+ const base = {
1019
+ table,
1020
+ writerTxn: Number(row.writerTxn ?? 0),
1021
+ sequencerTxn: Number(row.sequencerTxn ?? 0),
1022
+ };
1023
+ try {
1024
+ // Plain RESUME WAL replays from the next unapplied txn — it
1025
+ // skips nothing, so no data is lost. 10s deadline: a busy
1026
+ // table parks the request server-side (see above), and one
1027
+ // bounded attempt that reports "busy" beats waiting.
1028
+ await client.exec(`ALTER TABLE "${table.replace(/"/g, '""')}" RESUME WAL`, 10_000);
1029
+ results.push({ ...base, ok: true });
1030
+ }
1031
+ catch (err) {
1032
+ const msg = err instanceof Error ? err.message : String(err);
1033
+ results.push({
1034
+ ...base,
1035
+ ok: false,
1036
+ error: /abort|timeout/i.test(msg)
1037
+ ? "table busy — the writer is held (likely by the WAL apply job or a stuck operation); if this persists, restart the QuestDB container"
1038
+ : msg,
1039
+ });
1040
+ }
1041
+ }
1042
+ res.json({
1043
+ results,
1044
+ resumed: results.filter((r) => r.ok).length,
1045
+ message: results.length === 0
1046
+ ? "No suspended tables found"
1047
+ : `Resumed ${results.filter((r) => r.ok).length} of ${results.length} suspended table(s)`,
1048
+ });
1049
+ }
1050
+ catch (err) {
1051
+ res.status(500).json({
1052
+ error: err instanceof Error ? err.message : String(err),
1053
+ });
1054
+ }
1055
+ });
985
1056
  router.post("/api/purge-data", async (_req, res) => {
986
1057
  try {
987
1058
  // External mode is a config fact independent of the runtime, so
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ export declare function isReadOnlySQL(sql: string): boolean;
14
14
  export declare class QueryClient {
15
15
  private baseUrl;
16
16
  constructor(host: string, port: number);
17
- exec(sql: string): Promise<QuestDBResult>;
17
+ exec(sql: string, timeoutMs?: number): Promise<QuestDBResult>;
18
18
  execSafe(sql: string): Promise<QuestDBResult>;
19
19
  execCsv(sql: string): Promise<string>;
20
20
  isHealthy(): Promise<boolean>;
@@ -28,7 +28,7 @@ class QueryClient {
28
28
  constructor(host, port) {
29
29
  this.baseUrl = `http://${host}:${port}`;
30
30
  }
31
- async exec(sql) {
31
+ async exec(sql, timeoutMs = 30000) {
32
32
  const url = new URL("/exec", this.baseUrl);
33
33
  url.searchParams.set("query", sql);
34
34
  // Do NOT pass nm=true: it tells QuestDB to omit the `columns` metadata,
@@ -37,8 +37,13 @@ class QueryClient {
37
37
  // every consumer that reads rows by name (history playback, /api/query,
38
38
  // the suspended-WAL status probe). The metadata is small; correctness
39
39
  // wins over the few bytes saved.
40
+ //
41
+ // `timeoutMs` matters for statements QuestDB's HTTP endpoint can PARK:
42
+ // an ALTER against a busy table is retried server-side once per second
43
+ // with the response held open ("JsonQueryProcessor resource busy, will
44
+ // retry"), so without a deadline the call would wait the full default.
40
45
  const res = await fetch(url.toString(), {
41
- signal: AbortSignal.timeout(30000),
46
+ signal: AbortSignal.timeout(timeoutMs),
42
47
  });
43
48
  if (!res.ok) {
44
49
  const body = await res.text().catch(() => "");
@@ -1 +1 @@
1
- {"version":3,"file":"query-client.js","sourceRoot":"","sources":["../src/query-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-client.js","sourceRoot":"","sources":["../src/query-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const strict_1 = __importDefault(require("node:assert/strict"));
8
+ const schema_1 = require("../config/schema");
9
+ // Signal K hands the plugin its stored configuration verbatim — a config
10
+ // saved before an option existed simply misses the key, and TypeBox
11
+ // defaults are not applied at load time. These tests build such configs the
12
+ // way they exist on disk (missing keys), hence the casts.
13
+ (0, node_test_1.describe)("normalizeConfig", () => {
14
+ (0, node_test_1.it)("fills pathFilter and samplingRates missing from a legacy config", () => {
15
+ const legacy = {
16
+ managedContainer: true,
17
+ recordSelf: true,
18
+ };
19
+ const normalized = (0, schema_1.normalizeConfig)(legacy);
20
+ strict_1.default.deepEqual(normalized.pathFilter, { mode: "exclude", paths: [] });
21
+ strict_1.default.deepEqual(normalized.samplingRates, {});
22
+ // The defaults must be usable by the per-delta pipeline: pathFilter.paths
23
+ // is iterable and samplingRates is Object.entries-able.
24
+ strict_1.default.equal(normalized.pathFilter.paths.length, 0);
25
+ strict_1.default.equal(Object.entries(normalized.samplingRates).length, 0);
26
+ });
27
+ (0, node_test_1.it)("backfills a partially-shaped pathFilter per field", () => {
28
+ const partial = {
29
+ pathFilter: { mode: "include" },
30
+ };
31
+ const normalized = (0, schema_1.normalizeConfig)(partial);
32
+ strict_1.default.deepEqual(normalized.pathFilter, { mode: "include", paths: [] });
33
+ const pathsOnly = {
34
+ pathFilter: { paths: ["navigation.*"] },
35
+ };
36
+ strict_1.default.deepEqual((0, schema_1.normalizeConfig)(pathsOnly).pathFilter, {
37
+ mode: "exclude",
38
+ paths: ["navigation.*"],
39
+ });
40
+ });
41
+ (0, node_test_1.it)("preserves values that are present", () => {
42
+ const config = {
43
+ pathFilter: { mode: "include", paths: ["navigation.*"] },
44
+ samplingRates: { "environment.wind.*": 200 },
45
+ };
46
+ const normalized = (0, schema_1.normalizeConfig)(config);
47
+ strict_1.default.deepEqual(normalized.pathFilter, {
48
+ mode: "include",
49
+ paths: ["navigation.*"],
50
+ });
51
+ strict_1.default.deepEqual(normalized.samplingRates, {
52
+ "environment.wind.*": 200,
53
+ });
54
+ });
55
+ (0, node_test_1.it)("does not mutate the input", () => {
56
+ const legacy = { recordSelf: true };
57
+ (0, schema_1.normalizeConfig)(legacy);
58
+ strict_1.default.equal(legacy.pathFilter, undefined, "input object must stay untouched");
59
+ });
60
+ });
61
+ //# sourceMappingURL=config.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/test/config.test.ts"],"names":[],"mappings":";;;;;AAAA,yCAAyC;AACzC,gEAAwC;AACxC,6CAAgE;AAEhE,yEAAyE;AACzE,oEAAoE;AACpE,4EAA4E;AAC5E,0DAA0D;AAC1D,IAAA,oBAAQ,EAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,IAAA,cAAE,EAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,MAAM,GAAG;YACb,gBAAgB,EAAE,IAAI;YACtB,UAAU,EAAE,IAAI;SACI,CAAC;QAEvB,MAAM,UAAU,GAAG,IAAA,wBAAe,EAAC,MAAM,CAAC,CAAC;QAC3C,gBAAM,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACxE,gBAAM,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAC/C,0EAA0E;QAC1E,wDAAwD;QACxD,gBAAM,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACpD,gBAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,OAAO,GAAG;YACd,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SACX,CAAC;QACvB,MAAM,UAAU,GAAG,IAAA,wBAAe,EAAC,OAAO,CAAC,CAAC;QAC5C,gBAAM,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAExE,MAAM,SAAS,GAAG;YAChB,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,cAAc,CAAC,EAAE;SACnB,CAAC;QACvB,gBAAM,CAAC,SAAS,CAAC,IAAA,wBAAe,EAAC,SAAS,CAAC,CAAC,UAAU,EAAE;YACtD,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,CAAC,cAAc,CAAC;SACxB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,MAAM,GAAG;YACb,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,cAAc,CAAC,EAAE;YACxD,aAAa,EAAE,EAAE,oBAAoB,EAAE,GAAG,EAAE;SACxB,CAAC;QAEvB,MAAM,UAAU,GAAG,IAAA,wBAAe,EAAC,MAAM,CAAC,CAAC;QAC3C,gBAAM,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE;YACtC,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,CAAC,cAAc,CAAC;SACxB,CAAC,CAAC;QACH,gBAAM,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,EAAE;YACzC,oBAAoB,EAAE,GAAG;SAC1B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,MAAM,GAAG,EAAE,UAAU,EAAE,IAAI,EAAuB,CAAC;QACzD,IAAA,wBAAe,EAAC,MAAM,CAAC,CAAC;QACxB,gBAAM,CAAC,KAAK,CACT,MAAkC,CAAC,UAAU,EAC9C,SAAS,EACT,kCAAkC,CACnC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -50,12 +50,14 @@ const ilp_writer_1 = require("../ilp-writer");
50
50
  });
51
51
  await new Promise((resolve) => server.listen(0, "127.0.0.1", resolve));
52
52
  const port = server.address().port;
53
- const writer = new ilp_writer_1.ILPWriter("127.0.0.1", port);
53
+ const writer = new ilp_writer_1.ILPWriter("127.0.0.1", port, undefined, {
54
+ flushIntervalMs: 100,
55
+ });
54
56
  await writer.connect();
55
57
  const ts = new Date("2024-06-15T12:00:00.000Z");
56
58
  writer.write("navigation.speedOverGround", "self", 6.4, ts);
57
59
  // Wait for flush timer
58
- await new Promise((resolve) => setTimeout(resolve, 600));
60
+ await new Promise((resolve) => setTimeout(resolve, 300));
59
61
  await writer.disconnect();
60
62
  server.close();
61
63
  const all = received.join("");
@@ -71,11 +73,13 @@ const ilp_writer_1 = require("../ilp-writer");
71
73
  });
72
74
  await new Promise((resolve) => server.listen(0, "127.0.0.1", resolve));
73
75
  const port = server.address().port;
74
- const writer = new ilp_writer_1.ILPWriter("127.0.0.1", port);
76
+ const writer = new ilp_writer_1.ILPWriter("127.0.0.1", port, undefined, {
77
+ flushIntervalMs: 100,
78
+ });
75
79
  await writer.connect();
76
80
  const ts = new Date("2024-06-15T12:00:00.000Z");
77
81
  writer.writeString("navigation.state", "self", "motoring", ts);
78
- await new Promise((resolve) => setTimeout(resolve, 600));
82
+ await new Promise((resolve) => setTimeout(resolve, 300));
79
83
  await writer.disconnect();
80
84
  server.close();
81
85
  const all = received.join("");
@@ -90,11 +94,13 @@ const ilp_writer_1 = require("../ilp-writer");
90
94
  });
91
95
  await new Promise((resolve) => server.listen(0, "127.0.0.1", resolve));
92
96
  const port = server.address().port;
93
- const writer = new ilp_writer_1.ILPWriter("127.0.0.1", port);
97
+ const writer = new ilp_writer_1.ILPWriter("127.0.0.1", port, undefined, {
98
+ flushIntervalMs: 100,
99
+ });
94
100
  await writer.connect();
95
101
  const ts = new Date("2024-06-15T12:00:00.000Z");
96
102
  writer.writePosition("navigation.position", "self", { latitude: 52.5, longitude: 13.4 }, ts);
97
- await new Promise((resolve) => setTimeout(resolve, 600));
103
+ await new Promise((resolve) => setTimeout(resolve, 300));
98
104
  await writer.disconnect();
99
105
  server.close();
100
106
  const all = received.join("");
@@ -120,6 +126,7 @@ const ilp_writer_1 = require("../ilp-writer");
120
126
  await new Promise((resolve) => server.listen(0, "127.0.0.1", resolve));
121
127
  const port = server.address().port;
122
128
  const writer = new ilp_writer_1.ILPWriter("127.0.0.1", port, undefined, {
129
+ flushIntervalMs: 100,
123
130
  timing: { initialReconnectDelay: 100, stableConnectionMs: 50 },
124
131
  });
125
132
  await writer.connect();
@@ -153,7 +160,7 @@ const ilp_writer_1 = require("../ilp-writer");
153
160
  });
154
161
  await writer.connect().catch(() => { });
155
162
  // 3 flaps at ~20-40ms backoff each resolve well within this window.
156
- await new Promise((resolve) => setTimeout(resolve, 600));
163
+ await new Promise((resolve) => setTimeout(resolve, 300));
157
164
  await writer.disconnect();
158
165
  await new Promise((resolve) => server.close(() => resolve()));
159
166
  strict_1.default.ok(unhealthyMsg !== null, "onUnhealthy should fire after repeated flaps");
@@ -215,16 +222,53 @@ const ilp_writer_1 = require("../ilp-writer");
215
222
  });
216
223
  await new Promise((resolve) => server.listen(0, "127.0.0.1", resolve));
217
224
  const port = server.address().port;
218
- const writer = new ilp_writer_1.ILPWriter("127.0.0.1", port);
225
+ const writer = new ilp_writer_1.ILPWriter("127.0.0.1", port, undefined, {
226
+ flushIntervalMs: 100,
227
+ });
219
228
  await writer.connect();
220
229
  const ts = new Date("2024-06-15T12:00:00.000Z");
221
230
  writer.write("path with spaces", "ctx,with,commas", 1.0, ts);
222
- await new Promise((resolve) => setTimeout(resolve, 600));
231
+ await new Promise((resolve) => setTimeout(resolve, 300));
223
232
  await writer.disconnect();
224
233
  server.close();
225
234
  const all = received.join("");
226
235
  strict_1.default.ok(all.includes("path\\ with\\ spaces"), `Spaces should be escaped in: ${all}`);
227
236
  strict_1.default.ok(all.includes("ctx\\,with\\,commas"), `Commas should be escaped in: ${all}`);
228
237
  });
238
+ (0, node_test_1.it)("defaults the flush interval to 5s (batching, not the old 500ms)", async () => {
239
+ strict_1.default.equal(ilp_writer_1.DEFAULT_FLUSH_INTERVAL_MS, 5000);
240
+ const received = [];
241
+ const server = net.createServer((socket) => {
242
+ socket.on("data", (data) => received.push(data.toString()));
243
+ });
244
+ await new Promise((resolve) => server.listen(0, "127.0.0.1", resolve));
245
+ const port = server.address().port;
246
+ // No flushIntervalMs option: nothing may be flushed inside a window that
247
+ // the previous 500ms default would have flushed in.
248
+ const writer = new ilp_writer_1.ILPWriter("127.0.0.1", port);
249
+ await writer.connect();
250
+ writer.write("navigation.speedOverGround", "self", 6.4, new Date());
251
+ await new Promise((resolve) => setTimeout(resolve, 700));
252
+ strict_1.default.equal(received.join(""), "", "default-configured writer must not flush within 700ms");
253
+ await writer.disconnect();
254
+ await new Promise((resolve) => server.close(() => resolve()));
255
+ });
256
+ (0, node_test_1.it)("honors a custom flushIntervalMs", async () => {
257
+ const received = [];
258
+ const server = net.createServer((socket) => {
259
+ socket.on("data", (data) => received.push(data.toString()));
260
+ });
261
+ await new Promise((resolve) => server.listen(0, "127.0.0.1", resolve));
262
+ const port = server.address().port;
263
+ const writer = new ilp_writer_1.ILPWriter("127.0.0.1", port, undefined, {
264
+ flushIntervalMs: 100,
265
+ });
266
+ await writer.connect();
267
+ writer.write("navigation.speedOverGround", "self", 6.4, new Date());
268
+ await new Promise((resolve) => setTimeout(resolve, 300));
269
+ strict_1.default.ok(received.join("").includes("navigation.speedOverGround"), "custom 100ms interval should have flushed within 300ms");
270
+ await writer.disconnect();
271
+ await new Promise((resolve) => server.close(() => resolve()));
272
+ });
229
273
  });
230
274
  //# sourceMappingURL=ilp-writer.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ilp-writer.test.js","sourceRoot":"","sources":["../../src/test/ilp-writer.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ilp-writer.test.js","sourceRoot":"","sources":["../../src/test/ilp-writer.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "signalk-questdb",
3
- "version": "1.4.1",
3
+ "version": "1.5.0",
4
4
  "description": "QuestDB history provider for Signal K — replaces signalk-to-influxdb",
5
5
  "keywords": [
6
6
  "signalk-node-server-plugin",
package/public/805.js CHANGED
@@ -1,2 +1 @@
1
- /*! For license information please see 805.js.LICENSE.txt */
2
- "use strict";(self.webpackChunksignalk_questdb=self.webpackChunksignalk_questdb||[]).push([[805],{805(e,t,i){i.r(t),i.d(t,{default:()=>d});var n=i(231),a=i(446);const o={root:{fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',color:"#333",padding:"16px 0"},sectionTitle:{fontSize:13,fontWeight:600,color:"#888",textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:10,marginTop:24},btn:{display:"inline-flex",alignItems:"center",gap:8,padding:"8px 16px",border:"none",borderRadius:6,fontSize:13,fontWeight:600,cursor:"pointer"},btnPrimary:{background:"#3b82f6",color:"#fff"},btnSave:{background:"#3b82f6",color:"#fff"},btnDanger:{background:"#ef4444",color:"#fff",padding:"6px 12px",fontSize:12},btnDisabled:{opacity:.5,cursor:"not-allowed"},status:{marginTop:8,fontSize:12,minHeight:18},warnBanner:{padding:"12px 16px",background:"#fef2f2",border:"1px solid #fecaca",borderRadius:10,marginBottom:12,fontSize:13,color:"#991b1b",lineHeight:1.5},warnBannerTitle:{fontWeight:700,marginBottom:4},infoBanner:{padding:"12px 16px",background:"#fffbeb",border:"1px solid #fde68a",borderRadius:10,marginBottom:12,fontSize:13,color:"#92400e",lineHeight:1.5},warnBannerCode:{display:"block",marginTop:8,padding:"8px 10px",background:"#fff",border:"1px solid #fecaca",borderRadius:6,fontFamily:"monospace",fontSize:12,color:"#7f1d1d",whiteSpace:"pre-wrap",wordBreak:"break-word"},card:{display:"flex",alignItems:"center",gap:14,padding:"14px 18px",background:"#f8f9fa",border:"1px solid #e0e0e0",borderRadius:10,marginBottom:12},cardIcon:{width:44,height:44,borderRadius:10,display:"flex",alignItems:"center",justifyContent:"center",fontSize:20,fontWeight:700,flexShrink:0},cardInfo:{flex:1},cardTitle:{fontSize:15,fontWeight:600,color:"#333"},cardMeta:{fontSize:12,color:"#888"},stateIndicator:{width:10,height:10,borderRadius:"50%",flexShrink:0},fieldRow:{display:"flex",alignItems:"center",gap:12,marginBottom:10},label:{fontSize:13,fontWeight:500,color:"#555",width:180,flexShrink:0},select:{padding:"6px 10px",borderRadius:6,border:"1px solid #ccc",fontSize:13,background:"#fff",color:"#333",minWidth:200},input:{padding:"6px 10px",borderRadius:6,border:"1px solid #ccc",fontSize:13,background:"#fff",color:"#333",width:200},inputSmall:{padding:"6px 10px",borderRadius:6,border:"1px solid #ccc",fontSize:13,background:"#fff",color:"#333",width:80},checkbox:{width:16,height:16,accentColor:"#3b82f6"},hint:{fontSize:11,color:"#aaa",marginLeft:8},textarea:{padding:"6px 10px",borderRadius:6,border:"1px solid #ccc",fontSize:13,fontFamily:"monospace",background:"#fff",color:"#333",width:"100%",minHeight:70,boxSizing:"border-box",resize:"vertical"},empty:{textAlign:"center",padding:"30px 16px",color:"#999",fontSize:13},tag:{display:"inline-block",padding:"2px 8px",borderRadius:4,fontSize:10,fontWeight:600,marginLeft:8},tagPre:{background:"#fef3c7",color:"#92400e"},tagLatest:{background:"#dcfce7",color:"#166534"},migrationItem:{display:"flex",alignItems:"center",gap:12,padding:"12px 16px",background:"#f8f9fa",border:"1px solid #e0e0e0",borderRadius:10,marginBottom:8},migrationActions:{display:"flex",gap:8,alignItems:"center"},statsGrid:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(140px, 1fr))",gap:10,marginBottom:12},statCard:{padding:"12px 16px",background:"#f8f9fa",border:"1px solid #e0e0e0",borderRadius:10,textAlign:"center"},statValue:{fontSize:22,fontWeight:700,color:"#333"},statLabel:{fontSize:11,color:"#888",marginTop:2}};function s({title:e,children:t}){const[i,s]=(0,n.useState)(!1);return(0,a.jsxDEV)("div",{children:[(0,a.jsxDEV)("button",{type:"button","aria-expanded":i,style:{...o.sectionTitle,cursor:"pointer",userSelect:"none",display:"flex",alignItems:"center",gap:6,width:"100%",textAlign:"left",background:"none",border:"none",padding:0},onClick:()=>s(!i),children:[(0,a.jsxDEV)("span",{style:{fontSize:10,transition:"transform 0.15s",transform:i?"rotate(90deg)":"rotate(0deg)"},children:"▶"},void 0,!1),e]},void 0,!0),i&&(0,a.jsxDEV)("div",{style:{marginBottom:16},children:t},void 0,!1)]},void 0,!0)}function l(e){return null==e?"—":e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":String(e)}function d({configuration:e,save:t}){const i=e||{},[d,r]=(0,n.useState)(i.questdbHost||"127.0.0.1"),[c,u]=(0,n.useState)(i.questdbIlpPort||9009),[h,p]=(0,n.useState)(i.questdbHttpPort||9e3),[v,g]=(0,n.useState)(i.questdbPgPort||8812),[x,f]=(0,n.useState)(i.questdbVersion||"latest"),[y,b]=(0,n.useState)(!1!==i.managedContainer),[m,D]=(0,n.useState)(!1!==i.recordSelf),[E,j]=(0,n.useState)(i.recordOthers||!1),[V,w]=(0,n.useState)(i.defaultSamplingRate??2e3),[S,k]=(0,n.useState)(i.retentionDays||0),[R,C]=(0,n.useState)("include"===i.pathFilter?.mode?"include":"exclude"),[B,T]=(0,n.useState)((Array.isArray(i.pathFilter?.paths)?i.pathFilter.paths:[]).join("\n")),[I,z]=(0,n.useState)(i.compression||"lz4"),[L,P]=(0,n.useState)(i.compressionLevel||3),[q,Q]=(0,n.useState)(i.networkName||"sk-network"),[$,F]=(0,n.useState)(i.exposeToContainers||!1),[N,A]=(0,n.useState)([]),[U,M]=(0,n.useState)(!1),[W,H]=(0,n.useState)(null),[O,G]=(0,n.useState)(!0),[_,K]=(0,n.useState)(null),[Z,X]=(0,n.useState)(!1),[Y,J]=(0,n.useState)(""),[ee,te]=(0,n.useState)(""),[ie,ne]=(0,n.useState)(!1),[ae,oe]=(0,n.useState)(null),[se,le]=(0,n.useState)(!1),[de,re]=(0,n.useState)(!1),[ce,ue]=(0,n.useState)(!1),he=(0,n.useCallback)(async()=>{M(!0);try{const e=await fetch("/plugins/signalk-questdb/api/versions");if(e.ok){const t=await e.json();A(t)}}catch{}M(!1)},[]),pe=(0,n.useCallback)(async()=>{try{const e=await fetch("/plugins/signalk-questdb/api/status");e.ok?H(await e.json()):H({status:"not_running"})}catch{H({status:"not_running"})}G(!1)},[]);(0,n.useEffect)(()=>{he(),pe();const e=setInterval(pe,5e3);return()=>clearInterval(e)},[he,pe]);const[ve,ge]=(0,n.useState)(""),[xe,fe]=(0,n.useState)(""),[ye,be]=(0,n.useState)("parquet"),[me,De]=(0,n.useState)(!1),Ee=W&&"running"===W.status,je=Ee&&W.suspendedTables||[],Ve=je.length>0,we=Ee&&W.schemaMismatch||!1,Se=Ee&&W.ulimitClamp||null,ke=N.filter(e=>!e.prerelease).slice(0,3),Re=N.filter(e=>e.prerelease).slice(0,2);return(0,a.jsxDEV)("div",{style:o.root,children:[(0,a.jsxDEV)("div",{style:o.sectionTitle,children:"QuestDB Status"},void 0,!1),O?(0,a.jsxDEV)("div",{style:o.empty,children:"Checking QuestDB..."},void 0,!1):Ee?(0,a.jsxDEV)(a.Fragment,{children:[Ve&&(0,a.jsxDEV)("div",{style:o.warnBanner,children:[(0,a.jsxDEV)("div",{style:o.warnBannerTitle,children:"QuestDB WAL suspended — recording stalled"},void 0,!1),"Rows are arriving but no longer commit, so the counts below have stopped advancing. This follows an error while QuestDB applied the write-ahead log — see the reason reported per table below. Resume each suspended table in the QuestDB SQL console (",(0,a.jsxDEV)("code",{children:":9000"},void 0,!1),"), skipping the broken transaction:",(0,a.jsxDEV)("code",{style:o.warnBannerCode,children:je.map(e=>{const t=`"${String(e.name).replace(/"/g,'""')}"`,i=String(e.errorMessage||e.errorTag||"reason not reported").replace(/[\r\n]+/g," ");return`ALTER TABLE ${t} RESUME WAL FROM TXN ${e.writerTxn+1}; -- ${l(e.txnLag)} txns behind; ${i}`}).join("\n")},void 0,!1)]},void 0,!0),we&&(0,a.jsxDEV)("div",{style:o.warnBanner,children:[(0,a.jsxDEV)("div",{style:o.warnBannerTitle,children:"QuestDB table schema mismatch — data not readable"},void 0,!1),"A QuestDB table was re-created by ILP ingestion with the wrong timestamp column, so rows are being stored but reads filtering on time (history, Grafana, and the counts above) return nothing. The plugin rebuilds the affected table with the correct schema automatically within a minute; if this persists, restart the plugin. (The few rows written into the wrong-schema table are lost — they were unreadable anyway.)"]},void 0,!0),Se&&(0,a.jsxDEV)("div",{style:o.infoBanner,children:[(0,a.jsxDEV)("div",{style:o.warnBannerTitle,children:"QuestDB open-files limit capped by the host"},void 0,!1),"QuestDB requested a ",(0,a.jsxDEV)("code",{children:Se.ulimit},void 0,!1)," limit of"," ",l(Se.requested),", but this host only allows"," ",l(Se.granted),", so it was capped. QuestDB is running on the lower limit. To grant the full value, raise the host limit for the user running the container runtime — under rootless Podman that means a systemd ",(0,a.jsxDEV)("code",{children:"user@.service"},void 0,!1)," ",(0,a.jsxDEV)("code",{children:"LimitNOFILE"},void 0,!1)," drop-in (editing"," ",(0,a.jsxDEV)("code",{children:"/etc/security/limits.conf"},void 0,!1)," alone is usually not enough) — then restart the QuestDB container."," ",(0,a.jsxDEV)("a",{href:"https://github.com/dirkwa/signalk-container#raising-the-open-files-limit-nofile",target:"_blank",rel:"noreferrer",style:{color:"#92400e",textDecoration:"underline"},children:"Step-by-step instructions"},void 0,!1),"."]},void 0,!0),(0,a.jsxDEV)("div",{style:o.card,children:[(0,a.jsxDEV)("div",{style:{...o.cardIcon,background:"#7c3aed",color:"#fff"},children:"Q"},void 0,!1),(0,a.jsxDEV)("div",{style:o.cardInfo,children:[(0,a.jsxDEV)("div",{style:o.cardTitle,children:"QuestDB"},void 0,!1),(0,a.jsxDEV)("div",{style:o.cardMeta,children:[W?.endpoint||`${d}:${h}`," ","· ",Ve?"WAL suspended":"Recording"]},void 0,!0)]},void 0,!0),(0,a.jsxDEV)("div",{style:{...o.stateIndicator,background:Ve?"#ef4444":"#10b981"},title:Ve?"WAL suspended":"Running"},void 0,!1)]},void 0,!0),(0,a.jsxDEV)("div",{style:o.statsGrid,children:[(0,a.jsxDEV)("div",{style:o.statCard,children:[(0,a.jsxDEV)("div",{style:o.statValue,children:l(W.totalRows)},void 0,!1),(0,a.jsxDEV)("div",{style:o.statLabel,children:"Total Rows"},void 0,!1)]},void 0,!0),(0,a.jsxDEV)("div",{style:o.statCard,children:[(0,a.jsxDEV)("div",{style:o.statValue,children:l(W.activePathsToday)},void 0,!1),(0,a.jsxDEV)("div",{style:o.statLabel,children:"Active Paths Today"},void 0,!1)]},void 0,!0)]},void 0,!0),(0,a.jsxDEV)("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:12},children:ae&&ae.updateAvailable?(0,a.jsxDEV)(a.Fragment,{children:[(0,a.jsxDEV)("span",{style:{fontSize:13},children:["v",ae.currentVersion," →"," ",(0,a.jsxDEV)("strong",{children:["v",ae.latestVersion]},void 0,!0)," available"]},void 0,!0),(0,a.jsxDEV)("button",{style:{...o.btn,...o.btnPrimary,padding:"4px 12px",fontSize:12,...de?o.btnDisabled:{}},onClick:async()=>{re(!0),te("Pulling new image and restarting..."),ne(!1);try{const e=await fetch("/plugins/signalk-questdb/api/update/apply",{method:"POST"});if(e.ok){const t=await e.json();te(t.message),oe(null),t.newVersion&&f(t.newVersion),pe()}else{const t=await e.json().catch(()=>({error:e.statusText}));te(`Update failed: ${t.error}`),ne(!0)}}catch(e){te(`Update failed: ${e.message}`),ne(!0)}re(!1)},disabled:de,children:de?"Updating...":"Update QuestDB"},void 0,!1)]},void 0,!0):ae&&!ae.updateAvailable?(0,a.jsxDEV)("span",{style:{fontSize:12,color:"#888"},children:["v",ae.currentVersion," (up to date)"]},void 0,!0):(0,a.jsxDEV)("button",{style:{...o.btn,padding:"4px 12px",fontSize:12,background:"#f1f5f9",color:"#475569",border:"1px solid #e2e8f0",...se?o.btnDisabled:{}},onClick:async()=>{le(!0);try{const e=await fetch("/plugins/signalk-questdb/api/update/check");e.ok&&oe(await e.json())}catch{}le(!1)},disabled:se,children:se?"Checking...":"Check for updates"},void 0,!1)},void 0,!1)]},void 0,!0):(0,a.jsxDEV)("div",{style:o.card,children:[(0,a.jsxDEV)("div",{style:{...o.cardIcon,background:"#fef2f2",color:"#ef4444"},children:"Q"},void 0,!1),(0,a.jsxDEV)("div",{style:o.cardInfo,children:[(0,a.jsxDEV)("div",{style:o.cardTitle,children:"QuestDB"},void 0,!1),(0,a.jsxDEV)("div",{style:o.cardMeta,children:["unhealthy"===W?.status?"Not responding":"Not running",y?" — enable plugin to start container":""]},void 0,!0)]},void 0,!0),(0,a.jsxDEV)("div",{style:{...o.stateIndicator,background:"#ef4444"}},void 0,!1)]},void 0,!0),(0,a.jsxDEV)("div",{style:o.sectionTitle,children:"Image Version"},void 0,!1),(0,a.jsxDEV)("div",{style:o.fieldRow,children:[(0,a.jsxDEV)("span",{style:o.label,children:"QuestDB version"},void 0,!1),(0,a.jsxDEV)("select",{style:o.select,value:x,onChange:e=>f(e.target.value),children:[(0,a.jsxDEV)("option",{value:"latest",children:"latest (recommended)"},void 0,!1),Re.map(e=>(0,a.jsxDEV)("option",{value:e.tag,children:[e.tag," (pre-release)"]},e.tag,!0)),ke.map((e,t)=>(0,a.jsxDEV)("option",{value:e.tag,children:[e.tag,0===t?" (current stable)":""]},e.tag,!0))]},void 0,!0),U&&(0,a.jsxDEV)("span",{style:o.hint,children:"loading releases..."},void 0,!1),(0,a.jsxDEV)("button",{style:{...o.btn,...o.btnPrimary,padding:"4px 10px",fontSize:11},onClick:he,children:"↻"},void 0,!1)]},void 0,!0),(0,a.jsxDEV)("div",{style:o.sectionTitle,children:"Connection"},void 0,!1),(0,a.jsxDEV)("div",{style:o.fieldRow,children:[(0,a.jsxDEV)("span",{style:o.label,children:"Managed container"},void 0,!1),(0,a.jsxDEV)("input",{type:"checkbox",style:o.checkbox,checked:y,onChange:e=>b(e.target.checked)},void 0,!1),(0,a.jsxDEV)("span",{style:o.hint,children:y?"signalk-container manages QuestDB":"Connect to external QuestDB"},void 0,!1)]},void 0,!0),!y&&(0,a.jsxDEV)(a.Fragment,{children:[(0,a.jsxDEV)("div",{style:o.fieldRow,children:[(0,a.jsxDEV)("span",{style:o.label,children:"QuestDB host"},void 0,!1),(0,a.jsxDEV)("input",{style:o.input,value:d,onChange:e=>r(e.target.value)},void 0,!1)]},void 0,!0),(0,a.jsxDEV)("div",{style:o.fieldRow,children:[(0,a.jsxDEV)("span",{style:o.label,children:"HTTP port (queries)"},void 0,!1),(0,a.jsxDEV)("input",{style:o.inputSmall,type:"number",value:h,onChange:e=>p(Number(e.target.value))},void 0,!1)]},void 0,!0),(0,a.jsxDEV)("div",{style:o.fieldRow,children:[(0,a.jsxDEV)("span",{style:o.label,children:"ILP port (writes)"},void 0,!1),(0,a.jsxDEV)("input",{style:o.inputSmall,type:"number",value:c,onChange:e=>u(Number(e.target.value))},void 0,!1)]},void 0,!0)]},void 0,!0),y&&(0,a.jsxDEV)("div",{style:o.fieldRow,children:[(0,a.jsxDEV)("span",{style:o.label,children:"Bind to 0.0.0.0"},void 0,!1),(0,a.jsxDEV)("input",{type:"checkbox",style:o.checkbox,checked:$,onChange:e=>F(e.target.checked)},void 0,!1),(0,a.jsxDEV)("span",{style:{...o.hint,color:$?"#ef4444":void 0},children:$?"Caution! This exposes your data to the network":"Signal K reaches QuestDB automatically — only enable to reach it from another machine or a separate-Docker Grafana"},void 0,!1)]},void 0,!0),y&&$&&(0,a.jsxDEV)(a.Fragment,{children:[(0,a.jsxDEV)("div",{style:o.fieldRow,children:[(0,a.jsxDEV)("span",{style:o.label,children:"HTTP port (queries)"},void 0,!1),(0,a.jsxDEV)("input",{style:o.inputSmall,type:"number",value:h,onChange:e=>p(Number(e.target.value))},void 0,!1)]},void 0,!0),(0,a.jsxDEV)("div",{style:o.fieldRow,children:[(0,a.jsxDEV)("span",{style:o.label,children:"ILP port (writes)"},void 0,!1),(0,a.jsxDEV)("input",{style:o.inputSmall,type:"number",value:c,onChange:e=>u(Number(e.target.value))},void 0,!1)]},void 0,!0),(0,a.jsxDEV)("div",{style:o.fieldRow,children:[(0,a.jsxDEV)("span",{style:o.label,children:"PostgreSQL wire port"},void 0,!1),(0,a.jsxDEV)("input",{style:o.inputSmall,type:"number",value:v,onChange:e=>g(Number(e.target.value))},void 0,!1),(0,a.jsxDEV)("span",{style:o.hint,children:"for Grafana"},void 0,!1)]},void 0,!0),(0,a.jsxDEV)("div",{style:o.fieldRow,children:[(0,a.jsxDEV)("span",{style:o.label,children:"Container network"},void 0,!1),(0,a.jsxDEV)("input",{style:o.input,value:q,onChange:e=>Q(e.target.value)},void 0,!1),(0,a.jsxDEV)("span",{style:o.hint,children:"shared with signalk-grafana"},void 0,!1)]},void 0,!0)]},void 0,!0),(0,a.jsxDEV)("div",{style:o.sectionTitle,children:"Recording"},void 0,!1),(0,a.jsxDEV)("div",{style:o.fieldRow,children:[(0,a.jsxDEV)("span",{style:o.label,children:"Default sampling rate (ms)"},void 0,!1),(0,a.jsxDEV)("input",{style:o.inputSmall,type:"number",value:V,onChange:e=>w(Number(e.target.value))},void 0,!1),(0,a.jsxDEV)("span",{style:o.hint,children:"1000 = max 1 write/sec per path (0 = every update)"},void 0,!1)]},void 0,!0),(0,a.jsxDEV)("div",{style:o.fieldRow,children:[(0,a.jsxDEV)("span",{style:o.label,children:"Record own vessel"},void 0,!1),(0,a.jsxDEV)("input",{type:"checkbox",style:o.checkbox,checked:m,onChange:e=>D(e.target.checked)},void 0,!1)]},void 0,!0),(0,a.jsxDEV)("div",{style:o.fieldRow,children:[(0,a.jsxDEV)("span",{style:o.label,children:"Record AIS targets"},void 0,!1),(0,a.jsxDEV)("input",{type:"checkbox",style:o.checkbox,checked:E,onChange:e=>j(e.target.checked)},void 0,!1)]},void 0,!0),(0,a.jsxDEV)("div",{style:o.fieldRow,children:[(0,a.jsxDEV)("span",{style:o.label,children:"Retention (days)"},void 0,!1),(0,a.jsxDEV)("input",{style:o.inputSmall,type:"number",value:S,onChange:e=>k(Number(e.target.value))},void 0,!1),(0,a.jsxDEV)("span",{style:o.hint,children:"0 = keep forever"},void 0,!1)]},void 0,!0),(0,a.jsxDEV)(s,{title:"Path filtering",children:[(0,a.jsxDEV)("div",{style:o.fieldRow,children:[(0,a.jsxDEV)("span",{style:o.label,children:"Filter mode"},void 0,!1),(0,a.jsxDEV)("select",{style:o.select,value:R,onChange:e=>C(e.target.value),children:[(0,a.jsxDEV)("option",{value:"exclude",children:"Exclude matching paths"},void 0,!1),(0,a.jsxDEV)("option",{value:"include",children:"Include only matching paths"},void 0,!1)]},void 0,!0)]},void 0,!0),(0,a.jsxDEV)("div",{style:{marginBottom:10},children:[(0,a.jsxDEV)("div",{style:{...o.label,width:"auto",marginBottom:6},children:"Path patterns (one per line, glob supported)"},void 0,!1),(0,a.jsxDEV)("textarea",{style:o.textarea,value:B,onChange:e=>T(e.target.value),placeholder:"navigation.position\nnavigation.*\nnotifications.*"},void 0,!1),(0,a.jsxDEV)("div",{style:o.hint,children:["exclude"===R?"These paths are NOT recorded; everything else is.":"ONLY these paths are recorded; everything else is dropped."," ","Leave empty to record everything."]},void 0,!0)]},void 0,!0)]},void 0,!0),(0,a.jsxDEV)(s,{title:"Compression (on-disk)",children:[(0,a.jsxDEV)("div",{style:o.fieldRow,children:[(0,a.jsxDEV)("span",{style:o.label,children:"Compression codec"},void 0,!1),(0,a.jsxDEV)("select",{style:o.select,value:I,onChange:e=>z(e.target.value),children:[(0,a.jsxDEV)("option",{value:"none",children:"None"},void 0,!1),(0,a.jsxDEV)("option",{value:"lz4",children:"LZ4 (fast)"},void 0,!1),(0,a.jsxDEV)("option",{value:"zstd",children:"ZSTD (smaller)"},void 0,!1)]},void 0,!0),(0,a.jsxDEV)("span",{style:o.hint,children:"applies to new data after save"},void 0,!1)]},void 0,!0),"zstd"===I&&(0,a.jsxDEV)("div",{style:o.fieldRow,children:[(0,a.jsxDEV)("span",{style:o.label,children:"ZSTD level"},void 0,!1),(0,a.jsxDEV)("input",{style:o.inputSmall,type:"number",min:"1",max:"22",value:L,onChange:e=>P(Number(e.target.value))},void 0,!1),(0,a.jsxDEV)("span",{style:o.hint,children:"1 (fast) to 22 (smallest)"},void 0,!1)]},void 0,!0)]},void 0,!0),(0,a.jsxDEV)(s,{title:"InfluxDB Migration",children:[(0,a.jsxDEV)("div",{style:{display:"flex",gap:10,alignItems:"center",marginBottom:10},children:[(0,a.jsxDEV)("button",{style:{...o.btn,...o.btnPrimary,...Z?o.btnDisabled:{}},onClick:async()=>{X(!0),te("");try{const e=Y?`?url=${encodeURIComponent(Y)}`:"",t=await fetch(`/plugins/signalk-questdb/api/migration/detect${e}`);if(t.ok){const e=await t.json();K(e.sources),0===e.sources.length&&(te(Y?`No InfluxDB found at ${Y}.`:"No InfluxDB instances detected on localhost:8086."),ne(!1))}}catch(e){te("Detection failed: "+e.message),ne(!0)}X(!1)},disabled:Z,children:Z?"Detecting...":"Detect InfluxDB"},void 0,!1),(0,a.jsxDEV)("span",{style:o.hint,children:"Checks localhost:8086 for InfluxDB 1.x and 2.x"},void 0,!1)]},void 0,!0),_&&_.length>0&&(0,a.jsxDEV)("div",{children:_.map((e,t)=>(0,a.jsxDEV)("div",{style:o.migrationItem,children:[(0,a.jsxDEV)("div",{style:{...o.cardIcon,width:36,height:36,fontSize:16,background:"influxdb2"===e.type?"#020a47":"#22adf6",color:"#fff"},children:"influxdb2"===e.type?"2":"1"},void 0,!1),(0,a.jsxDEV)("div",{style:o.cardInfo,children:[(0,a.jsxDEV)("div",{style:o.cardTitle,children:["InfluxDB ","influxdb2"===e.type?"2.x":"1.x",(0,a.jsxDEV)("span",{style:{...o.tag,...o.tagLatest},children:e.status},void 0,!1)]},void 0,!0),(0,a.jsxDEV)("div",{style:o.cardMeta,children:[e.url," · v",e.version]},void 0,!0)]},void 0,!0)]},t,!0))},void 0,!1),(0,a.jsxDEV)("div",{style:{...o.fieldRow,marginTop:10},children:[(0,a.jsxDEV)("span",{style:o.label,children:"Manual InfluxDB URL"},void 0,!1),(0,a.jsxDEV)("input",{style:o.input,placeholder:"http://192.168.1.100:8086",value:Y,onChange:e=>J(e.target.value)},void 0,!1),(0,a.jsxDEV)("span",{style:o.hint,children:"for remote instances"},void 0,!1)]},void 0,!0),_&&0===_.length&&!Z&&(0,a.jsxDEV)("div",{style:{...o.empty,padding:"16px",textAlign:"left"},children:"No InfluxDB found on localhost. Use manual URL above for remote instances."},void 0,!1)]},void 0,!0),(0,a.jsxDEV)(s,{title:"Data Export",children:[(0,a.jsxDEV)("div",{style:o.fieldRow,children:[(0,a.jsxDEV)("span",{style:o.label,children:"From"},void 0,!1),(0,a.jsxDEV)("input",{style:o.input,type:"datetime-local",value:ve,onChange:e=>ge(e.target.value)},void 0,!1)]},void 0,!0),(0,a.jsxDEV)("div",{style:o.fieldRow,children:[(0,a.jsxDEV)("span",{style:o.label,children:"To"},void 0,!1),(0,a.jsxDEV)("input",{style:o.input,type:"datetime-local",value:xe,onChange:e=>fe(e.target.value)},void 0,!1)]},void 0,!0),(0,a.jsxDEV)("div",{style:o.fieldRow,children:[(0,a.jsxDEV)("span",{style:o.label,children:"Format"},void 0,!1),(0,a.jsxDEV)("select",{style:o.select,value:ye,onChange:e=>be(e.target.value),children:[(0,a.jsxDEV)("option",{value:"parquet",children:"Parquet"},void 0,!1),(0,a.jsxDEV)("option",{value:"csv",children:"CSV"},void 0,!1)]},void 0,!0)]},void 0,!0),(0,a.jsxDEV)("button",{style:{...o.btn,...o.btnPrimary,...me?o.btnDisabled:{}},onClick:async()=>{if(!ve||!xe)return te("Set both from and to dates for export."),void ne(!0);De(!0),te(`Exporting ${ye.toUpperCase()}...`),ne(!1);try{const e=`/plugins/signalk-questdb/api/export?from=${encodeURIComponent(ve)}&to=${encodeURIComponent(xe)}&format=${ye}`,t=await fetch(e);if(!t.ok){const e=await t.json().catch(()=>({error:t.statusText}));return te(`Export failed: ${e.error}`),ne(!0),void De(!1)}const i=await t.blob(),n="parquet"===ye?"parquet":"csv",a=document.createElement("a");a.href=URL.createObjectURL(i),a.download=`signalk-export-${ve.slice(0,10)}.${n}`,a.click(),URL.revokeObjectURL(a.href),te(`Exported ${(i.size/1024/1024).toFixed(1)} MB`)}catch(e){te(`Export failed: ${e.message}`),ne(!0)}De(!1)},disabled:me,children:me?"Exporting...":"Export Data"},void 0,!1)]},void 0,!0),!1!==i.managedContainer&&(0,a.jsxDEV)(s,{title:"Danger zone",children:[(0,a.jsxDEV)("div",{style:{fontSize:13,color:"#555",marginBottom:10},children:"Remove the QuestDB container and permanently delete all recorded data. Use this to fully reset QuestDB — Signal K's plugin-uninstall cannot delete this data on rootless Podman. This cannot be undone."},void 0,!1),(0,a.jsxDEV)("button",{style:{...o.btn,...o.btnDanger,...ce?o.btnDisabled:{}},onClick:async()=>{if(window.confirm("Remove the QuestDB container and DELETE ALL recorded data? This cannot be undone.")){ue(!0),te("Removing QuestDB container and data..."),ne(!1);try{const e=await fetch("/plugins/signalk-questdb/api/purge-data",{method:"POST"}),t=await e.json().catch(()=>({error:e.statusText}));e.ok?(te(t.message),pe()):(te(`Remove failed: ${t.error}`),ne(!0))}catch(e){te(`Remove failed: ${e.message}`),ne(!0)}ue(!1)}},disabled:ce,children:ce?"Removing...":"Remove container & all data"},void 0,!1)]},void 0,!0),ee&&(0,a.jsxDEV)("div",{style:{...o.status,color:ie?"#ef4444":"#10b981",marginTop:16},children:ee},void 0,!1),(0,a.jsxDEV)("div",{style:{marginTop:24},children:(0,a.jsxDEV)("button",{style:{...o.btn,...o.btnSave},onClick:()=>{t({questdbHost:d,questdbIlpPort:c,questdbHttpPort:h,questdbPgPort:v,questdbVersion:x,managedContainer:y,defaultSamplingRate:V,recordSelf:m,recordOthers:E,retentionDays:S,compression:I,compressionLevel:L,networkName:q,exposeToContainers:$,pathFilter:{mode:R,paths:B.split("\n").map(e=>e.trim()).filter(Boolean)},samplingRates:i.samplingRates||{}}),te("Saved! Plugin will restart with new configuration."),ne(!1)},children:"Save Configuration"},void 0,!1)},void 0,!1)]},void 0,!0)}},772(e,t){var i=Symbol.for("react.fragment");t.Fragment=i,t.jsxDEV=void 0},446(e,t,i){e.exports=i(772)}}]);
1
+ "use strict";(self.webpackChunksignalk_questdb=self.webpackChunksignalk_questdb||[]).push([[805],{805(e,t,a){a.r(t),a.d(t,{default:()=>i});var n=a(231);const l={root:{fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',color:"#333",padding:"16px 0"},sectionTitle:{fontSize:13,fontWeight:600,color:"#888",textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:10,marginTop:24},btn:{display:"inline-flex",alignItems:"center",gap:8,padding:"8px 16px",border:"none",borderRadius:6,fontSize:13,fontWeight:600,cursor:"pointer"},btnPrimary:{background:"#3b82f6",color:"#fff"},btnSave:{background:"#3b82f6",color:"#fff"},btnDanger:{background:"#ef4444",color:"#fff",padding:"6px 12px",fontSize:12},btnDisabled:{opacity:.5,cursor:"not-allowed"},status:{marginTop:8,fontSize:12,minHeight:18},warnBanner:{padding:"12px 16px",background:"#fef2f2",border:"1px solid #fecaca",borderRadius:10,marginBottom:12,fontSize:13,color:"#991b1b",lineHeight:1.5},warnBannerTitle:{fontWeight:700,marginBottom:4},infoBanner:{padding:"12px 16px",background:"#fffbeb",border:"1px solid #fde68a",borderRadius:10,marginBottom:12,fontSize:13,color:"#92400e",lineHeight:1.5},warnBannerCode:{display:"block",marginTop:8,padding:"8px 10px",background:"#fff",border:"1px solid #fecaca",borderRadius:6,fontFamily:"monospace",fontSize:12,color:"#7f1d1d",whiteSpace:"pre-wrap",wordBreak:"break-word"},card:{display:"flex",alignItems:"center",gap:14,padding:"14px 18px",background:"#f8f9fa",border:"1px solid #e0e0e0",borderRadius:10,marginBottom:12},cardIcon:{width:44,height:44,borderRadius:10,display:"flex",alignItems:"center",justifyContent:"center",fontSize:20,fontWeight:700,flexShrink:0},cardInfo:{flex:1},cardTitle:{fontSize:15,fontWeight:600,color:"#333"},cardMeta:{fontSize:12,color:"#888"},stateIndicator:{width:10,height:10,borderRadius:"50%",flexShrink:0},fieldRow:{display:"flex",alignItems:"center",gap:12,marginBottom:10},label:{fontSize:13,fontWeight:500,color:"#555",width:180,flexShrink:0},select:{padding:"6px 10px",borderRadius:6,border:"1px solid #ccc",fontSize:13,background:"#fff",color:"#333",minWidth:200},input:{padding:"6px 10px",borderRadius:6,border:"1px solid #ccc",fontSize:13,background:"#fff",color:"#333",width:200},inputSmall:{padding:"6px 10px",borderRadius:6,border:"1px solid #ccc",fontSize:13,background:"#fff",color:"#333",width:80},checkbox:{width:16,height:16,accentColor:"#3b82f6"},hint:{fontSize:11,color:"#aaa",marginLeft:8},textarea:{padding:"6px 10px",borderRadius:6,border:"1px solid #ccc",fontSize:13,fontFamily:"monospace",background:"#fff",color:"#333",width:"100%",minHeight:70,boxSizing:"border-box",resize:"vertical"},empty:{textAlign:"center",padding:"30px 16px",color:"#999",fontSize:13},tag:{display:"inline-block",padding:"2px 8px",borderRadius:4,fontSize:10,fontWeight:600,marginLeft:8},tagPre:{background:"#fef3c7",color:"#92400e"},tagLatest:{background:"#dcfce7",color:"#166534"},migrationItem:{display:"flex",alignItems:"center",gap:12,padding:"12px 16px",background:"#f8f9fa",border:"1px solid #e0e0e0",borderRadius:10,marginBottom:8},migrationActions:{display:"flex",gap:8,alignItems:"center"},statsGrid:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(140px, 1fr))",gap:10,marginBottom:12},statCard:{padding:"12px 16px",background:"#f8f9fa",border:"1px solid #e0e0e0",borderRadius:10,textAlign:"center"},statValue:{fontSize:22,fontWeight:700,color:"#333"},statLabel:{fontSize:11,color:"#888",marginTop:2}};function r({title:e,children:t}){const[a,r]=(0,n.useState)(!1);return n.createElement("div",null,n.createElement("button",{type:"button","aria-expanded":a,style:{...l.sectionTitle,cursor:"pointer",userSelect:"none",display:"flex",alignItems:"center",gap:6,width:"100%",textAlign:"left",background:"none",border:"none",padding:0},onClick:()=>r(!a)},n.createElement("span",{style:{fontSize:10,transition:"transform 0.15s",transform:a?"rotate(90deg)":"rotate(0deg)"}},"▶"),e),a&&n.createElement("div",{style:{marginBottom:16}},t))}function o(e){return null==e?"—":e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":String(e)}function i({configuration:e,save:t}){const a=e||{},[i,s]=(0,n.useState)(a.questdbHost||"127.0.0.1"),[c,d]=(0,n.useState)(a.questdbIlpPort||9009),[u,m]=(0,n.useState)(a.questdbHttpPort||9e3),[p,g]=(0,n.useState)(a.questdbPgPort||8812),[f,y]=(0,n.useState)(a.questdbVersion||"latest"),[b,h]=(0,n.useState)(!1!==a.managedContainer),[E,v]=(0,n.useState)(!1!==a.recordSelf),[x,w]=(0,n.useState)(a.recordOthers||!1),[S,k]=(0,n.useState)(a.defaultSamplingRate??2e3),[R,C]=(0,n.useState)(a.retentionDays||0),[B,T]=(0,n.useState)("include"===a.pathFilter?.mode?"include":"exclude"),[D,I]=(0,n.useState)((Array.isArray(a.pathFilter?.paths)?a.pathFilter.paths:[]).join("\n")),[z,L]=(0,n.useState)(a.compression||"lz4"),[P,q]=(0,n.useState)(a.compressionLevel||3),[$,Q]=(0,n.useState)(a.networkName||"sk-network"),[A,F]=(0,n.useState)(a.exposeToContainers||!1),[N,U]=(0,n.useState)([]),[j,M]=(0,n.useState)(!1),[W,V]=(0,n.useState)(null),[H,O]=(0,n.useState)(!0),[G,_]=(0,n.useState)(null),[K,Z]=(0,n.useState)(!1),[Y,J]=(0,n.useState)(""),[X,ee]=(0,n.useState)(""),[te,ae]=(0,n.useState)(!1),[ne,le]=(0,n.useState)(null),[re,oe]=(0,n.useState)(!1),[ie,se]=(0,n.useState)(!1),[ce,de]=(0,n.useState)(!1),[ue,me]=(0,n.useState)(!1),[pe,ge]=(0,n.useState)(""),fe=(0,n.useCallback)(async()=>{M(!0);try{const e=await fetch("/plugins/signalk-questdb/api/versions");if(e.ok){const t=await e.json();U(t)}}catch{}M(!1)},[]),ye=(0,n.useCallback)(async()=>{try{const e=await fetch("/plugins/signalk-questdb/api/status");e.ok?V(await e.json()):V({status:"not_running"})}catch{V({status:"not_running"})}O(!1)},[]);(0,n.useEffect)(()=>{fe(),ye();const e=setInterval(ye,5e3);return()=>clearInterval(e)},[fe,ye]);const[be,he]=(0,n.useState)(""),[Ee,ve]=(0,n.useState)(""),[xe,we]=(0,n.useState)("parquet"),[Se,ke]=(0,n.useState)(!1),Re=W&&"running"===W.status,Ce=Re&&W.suspendedTables||[],Be=Ce.length>0,Te=Re&&W.schemaMismatch||!1,De=Re&&W.ulimitClamp||null,Ie=N.filter(e=>!e.prerelease).slice(0,3),ze=N.filter(e=>e.prerelease).slice(0,2);return n.createElement("div",{style:l.root},n.createElement("div",{style:l.sectionTitle},"QuestDB Status"),H?n.createElement("div",{style:l.empty},"Checking QuestDB..."):Re?n.createElement(n.Fragment,null,Be&&n.createElement("div",{style:l.warnBanner},n.createElement("div",{style:l.warnBannerTitle},"QuestDB WAL suspended — recording stalled"),"Rows are arriving but no longer commit, so the counts below have stopped advancing. This follows an error while QuestDB applied the write-ahead log — see the reason reported per table below. Resuming replays every pending transaction, so no data is lost.",n.createElement("code",{style:l.warnBannerCode},Ce.map(e=>{const t=String(e.errorMessage||e.errorTag||"reason not reported").replace(/[\r\n]+/g," ");return`${e.name}: ${o(e.txnLag)} txns behind — ${t}`}).join("\n")),n.createElement("div",{style:{marginTop:10}},n.createElement("button",{style:{...l.btn,...l.btnPrimary,...ue?l.btnDisabled:{}},disabled:ue,onClick:async()=>{me(!0),ge("");try{const e=await fetch("/plugins/signalk-questdb/api/resume-wal",{method:"POST"}),t=await e.json().catch(()=>({error:e.statusText}));if(e.ok){const e=(t.results||[]).filter(e=>!e.ok);ge(0===e.length?`${t.message}. Recording resumes as the backlog drains — the banner clears once tables catch up.`:`${t.message}. `+e.map(e=>`${e.table}: ${e.error}`).join(" · ")),ye()}else ge(`Resume failed: ${t.error}`)}catch(e){ge(`Resume failed: ${e.message}`)}me(!1)}},ue?"Resuming...":"Resume recording")),n.createElement("div",{style:{marginTop:8,fontSize:12}},"Manual fallback in the QuestDB SQL console (",n.createElement("code",null,":9000"),"), one statement at a time — avoid running it from several tabs, the console retries a busy statement forever:",n.createElement("code",{style:l.warnBannerCode},Ce.map(e=>`ALTER TABLE "${String(e.name).replace(/"/g,'""')}" RESUME WAL;`).join("\n")))),pe&&n.createElement("div",{style:l.infoBanner},pe),Te&&n.createElement("div",{style:l.warnBanner},n.createElement("div",{style:l.warnBannerTitle},"QuestDB table schema mismatch — data not readable"),"A QuestDB table was re-created by ILP ingestion with the wrong timestamp column, so rows are being stored but reads filtering on time (history, Grafana, and the counts above) return nothing. The plugin rebuilds the affected table with the correct schema automatically within a minute; if this persists, restart the plugin. (The few rows written into the wrong-schema table are lost — they were unreadable anyway.)"),De&&n.createElement("div",{style:l.infoBanner},n.createElement("div",{style:l.warnBannerTitle},"QuestDB open-files limit capped by the host"),"QuestDB requested a ",n.createElement("code",null,De.ulimit)," limit of"," ",o(De.requested),", but this host only allows"," ",o(De.granted),", so it was capped. QuestDB is running on the lower limit. To grant the full value, raise the host limit for the user running the container runtime — under rootless Podman that means a systemd ",n.createElement("code",null,"user@.service")," ",n.createElement("code",null,"LimitNOFILE")," drop-in (editing"," ",n.createElement("code",null,"/etc/security/limits.conf")," alone is usually not enough) — then restart the QuestDB container."," ",n.createElement("a",{href:"https://github.com/dirkwa/signalk-container#raising-the-open-files-limit-nofile",target:"_blank",rel:"noreferrer",style:{color:"#92400e",textDecoration:"underline"}},"Step-by-step instructions"),"."),n.createElement("div",{style:l.card},n.createElement("div",{style:{...l.cardIcon,background:"#7c3aed",color:"#fff"}},"Q"),n.createElement("div",{style:l.cardInfo},n.createElement("div",{style:l.cardTitle},"QuestDB"),n.createElement("div",{style:l.cardMeta},W?.endpoint||`${i}:${u}`," ","· ",Be?"WAL suspended":"Recording")),n.createElement("div",{style:{...l.stateIndicator,background:Be?"#ef4444":"#10b981"},title:Be?"WAL suspended":"Running"})),n.createElement("div",{style:l.statsGrid},n.createElement("div",{style:l.statCard},n.createElement("div",{style:l.statValue},o(W.totalRows)),n.createElement("div",{style:l.statLabel},"Total Rows")),n.createElement("div",{style:l.statCard},n.createElement("div",{style:l.statValue},o(W.activePathsToday)),n.createElement("div",{style:l.statLabel},"Active Paths Today"))),n.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:12}},ne&&ne.updateAvailable?n.createElement(n.Fragment,null,n.createElement("span",{style:{fontSize:13}},"v",ne.currentVersion," →"," ",n.createElement("strong",null,"v",ne.latestVersion)," available"),n.createElement("button",{style:{...l.btn,...l.btnPrimary,padding:"4px 12px",fontSize:12,...ie?l.btnDisabled:{}},onClick:async()=>{se(!0),ee("Pulling new image and restarting..."),ae(!1);try{const e=await fetch("/plugins/signalk-questdb/api/update/apply",{method:"POST"});if(e.ok){const t=await e.json();ee(t.message),le(null),t.newVersion&&y(t.newVersion),ye()}else{const t=await e.json().catch(()=>({error:e.statusText}));ee(`Update failed: ${t.error}`),ae(!0)}}catch(e){ee(`Update failed: ${e.message}`),ae(!0)}se(!1)},disabled:ie},ie?"Updating...":"Update QuestDB")):ne&&!ne.updateAvailable?n.createElement("span",{style:{fontSize:12,color:"#888"}},"v",ne.currentVersion," (up to date)"):n.createElement("button",{style:{...l.btn,padding:"4px 12px",fontSize:12,background:"#f1f5f9",color:"#475569",border:"1px solid #e2e8f0",...re?l.btnDisabled:{}},onClick:async()=>{oe(!0);try{const e=await fetch("/plugins/signalk-questdb/api/update/check");e.ok&&le(await e.json())}catch{}oe(!1)},disabled:re},re?"Checking...":"Check for updates"))):n.createElement("div",{style:l.card},n.createElement("div",{style:{...l.cardIcon,background:"#fef2f2",color:"#ef4444"}},"Q"),n.createElement("div",{style:l.cardInfo},n.createElement("div",{style:l.cardTitle},"QuestDB"),n.createElement("div",{style:l.cardMeta},"unhealthy"===W?.status?"Not responding":"Not running",b?" — enable plugin to start container":"")),n.createElement("div",{style:{...l.stateIndicator,background:"#ef4444"}})),n.createElement("div",{style:l.sectionTitle},"Image Version"),n.createElement("div",{style:l.fieldRow},n.createElement("span",{style:l.label},"QuestDB version"),n.createElement("select",{style:l.select,value:f,onChange:e=>y(e.target.value)},n.createElement("option",{value:"latest"},"latest (recommended)"),ze.map(e=>n.createElement("option",{key:e.tag,value:e.tag},e.tag," (pre-release)")),Ie.map((e,t)=>n.createElement("option",{key:e.tag,value:e.tag},e.tag,0===t?" (current stable)":""))),j&&n.createElement("span",{style:l.hint},"loading releases..."),n.createElement("button",{style:{...l.btn,...l.btnPrimary,padding:"4px 10px",fontSize:11},onClick:fe},"↻")),n.createElement("div",{style:l.sectionTitle},"Connection"),n.createElement("div",{style:l.fieldRow},n.createElement("span",{style:l.label},"Managed container"),n.createElement("input",{type:"checkbox",style:l.checkbox,checked:b,onChange:e=>h(e.target.checked)}),n.createElement("span",{style:l.hint},b?"signalk-container manages QuestDB":"Connect to external QuestDB")),!b&&n.createElement(n.Fragment,null,n.createElement("div",{style:l.fieldRow},n.createElement("span",{style:l.label},"QuestDB host"),n.createElement("input",{style:l.input,value:i,onChange:e=>s(e.target.value)})),n.createElement("div",{style:l.fieldRow},n.createElement("span",{style:l.label},"HTTP port (queries)"),n.createElement("input",{style:l.inputSmall,type:"number",value:u,onChange:e=>m(Number(e.target.value))})),n.createElement("div",{style:l.fieldRow},n.createElement("span",{style:l.label},"ILP port (writes)"),n.createElement("input",{style:l.inputSmall,type:"number",value:c,onChange:e=>d(Number(e.target.value))}))),b&&n.createElement("div",{style:l.fieldRow},n.createElement("span",{style:l.label},"Bind to 0.0.0.0"),n.createElement("input",{type:"checkbox",style:l.checkbox,checked:A,onChange:e=>F(e.target.checked)}),n.createElement("span",{style:{...l.hint,color:A?"#ef4444":void 0}},A?"Caution! This exposes your data to the network":"Signal K reaches QuestDB automatically — only enable to reach it from another machine or a separate-Docker Grafana")),b&&A&&n.createElement(n.Fragment,null,n.createElement("div",{style:l.fieldRow},n.createElement("span",{style:l.label},"HTTP port (queries)"),n.createElement("input",{style:l.inputSmall,type:"number",value:u,onChange:e=>m(Number(e.target.value))})),n.createElement("div",{style:l.fieldRow},n.createElement("span",{style:l.label},"ILP port (writes)"),n.createElement("input",{style:l.inputSmall,type:"number",value:c,onChange:e=>d(Number(e.target.value))})),n.createElement("div",{style:l.fieldRow},n.createElement("span",{style:l.label},"PostgreSQL wire port"),n.createElement("input",{style:l.inputSmall,type:"number",value:p,onChange:e=>g(Number(e.target.value))}),n.createElement("span",{style:l.hint},"for Grafana")),n.createElement("div",{style:l.fieldRow},n.createElement("span",{style:l.label},"Container network"),n.createElement("input",{style:l.input,value:$,onChange:e=>Q(e.target.value)}),n.createElement("span",{style:l.hint},"shared with signalk-grafana"))),n.createElement("div",{style:l.sectionTitle},"Recording"),n.createElement("div",{style:l.fieldRow},n.createElement("span",{style:l.label},"Default sampling rate (ms)"),n.createElement("input",{style:l.inputSmall,type:"number",value:S,onChange:e=>k(Number(e.target.value))}),n.createElement("span",{style:l.hint},"1000 = max 1 write/sec per path (0 = every update)")),n.createElement("div",{style:l.fieldRow},n.createElement("span",{style:l.label},"Record own vessel"),n.createElement("input",{type:"checkbox",style:l.checkbox,checked:E,onChange:e=>v(e.target.checked)})),n.createElement("div",{style:l.fieldRow},n.createElement("span",{style:l.label},"Record AIS targets"),n.createElement("input",{type:"checkbox",style:l.checkbox,checked:x,onChange:e=>w(e.target.checked)})),n.createElement("div",{style:l.fieldRow},n.createElement("span",{style:l.label},"Retention (days)"),n.createElement("input",{style:l.inputSmall,type:"number",value:R,onChange:e=>C(Number(e.target.value))}),n.createElement("span",{style:l.hint},"0 = keep forever")),n.createElement(r,{title:"Path filtering"},n.createElement("div",{style:l.fieldRow},n.createElement("span",{style:l.label},"Filter mode"),n.createElement("select",{style:l.select,value:B,onChange:e=>T(e.target.value)},n.createElement("option",{value:"exclude"},"Exclude matching paths"),n.createElement("option",{value:"include"},"Include only matching paths"))),n.createElement("div",{style:{marginBottom:10}},n.createElement("div",{style:{...l.label,width:"auto",marginBottom:6}},"Path patterns (one per line, glob supported)"),n.createElement("textarea",{style:l.textarea,value:D,onChange:e=>I(e.target.value),placeholder:"navigation.position\nnavigation.*\nnotifications.*"}),n.createElement("div",{style:l.hint},"exclude"===B?"These paths are NOT recorded; everything else is.":"ONLY these paths are recorded; everything else is dropped."," ","Leave empty to record everything."))),n.createElement(r,{title:"Compression (on-disk)"},n.createElement("div",{style:l.fieldRow},n.createElement("span",{style:l.label},"Compression codec"),n.createElement("select",{style:l.select,value:z,onChange:e=>L(e.target.value)},n.createElement("option",{value:"none"},"None"),n.createElement("option",{value:"lz4"},"LZ4 (fast)"),n.createElement("option",{value:"zstd"},"ZSTD (smaller)")),n.createElement("span",{style:l.hint},"applies to new data after save")),"zstd"===z&&n.createElement("div",{style:l.fieldRow},n.createElement("span",{style:l.label},"ZSTD level"),n.createElement("input",{style:l.inputSmall,type:"number",min:"1",max:"22",value:P,onChange:e=>q(Number(e.target.value))}),n.createElement("span",{style:l.hint},"1 (fast) to 22 (smallest)"))),n.createElement(r,{title:"InfluxDB Migration"},n.createElement("div",{style:{display:"flex",gap:10,alignItems:"center",marginBottom:10}},n.createElement("button",{style:{...l.btn,...l.btnPrimary,...K?l.btnDisabled:{}},onClick:async()=>{Z(!0),ee("");try{const e=Y?`?url=${encodeURIComponent(Y)}`:"",t=await fetch(`/plugins/signalk-questdb/api/migration/detect${e}`);if(t.ok){const e=await t.json();_(e.sources),0===e.sources.length&&(ee(Y?`No InfluxDB found at ${Y}.`:"No InfluxDB instances detected on localhost:8086."),ae(!1))}}catch(e){ee("Detection failed: "+e.message),ae(!0)}Z(!1)},disabled:K},K?"Detecting...":"Detect InfluxDB"),n.createElement("span",{style:l.hint},"Checks localhost:8086 for InfluxDB 1.x and 2.x")),G&&G.length>0&&n.createElement("div",null,G.map((e,t)=>n.createElement("div",{key:t,style:l.migrationItem},n.createElement("div",{style:{...l.cardIcon,width:36,height:36,fontSize:16,background:"influxdb2"===e.type?"#020a47":"#22adf6",color:"#fff"}},"influxdb2"===e.type?"2":"1"),n.createElement("div",{style:l.cardInfo},n.createElement("div",{style:l.cardTitle},"InfluxDB ","influxdb2"===e.type?"2.x":"1.x",n.createElement("span",{style:{...l.tag,...l.tagLatest}},e.status)),n.createElement("div",{style:l.cardMeta},e.url," · v",e.version))))),n.createElement("div",{style:{...l.fieldRow,marginTop:10}},n.createElement("span",{style:l.label},"Manual InfluxDB URL"),n.createElement("input",{style:l.input,placeholder:"http://192.168.1.100:8086",value:Y,onChange:e=>J(e.target.value)}),n.createElement("span",{style:l.hint},"for remote instances")),G&&0===G.length&&!K&&n.createElement("div",{style:{...l.empty,padding:"16px",textAlign:"left"}},"No InfluxDB found on localhost. Use manual URL above for remote instances.")),n.createElement(r,{title:"Data Export"},n.createElement("div",{style:l.fieldRow},n.createElement("span",{style:l.label},"From"),n.createElement("input",{style:l.input,type:"datetime-local",value:be,onChange:e=>he(e.target.value)})),n.createElement("div",{style:l.fieldRow},n.createElement("span",{style:l.label},"To"),n.createElement("input",{style:l.input,type:"datetime-local",value:Ee,onChange:e=>ve(e.target.value)})),n.createElement("div",{style:l.fieldRow},n.createElement("span",{style:l.label},"Format"),n.createElement("select",{style:l.select,value:xe,onChange:e=>we(e.target.value)},n.createElement("option",{value:"parquet"},"Parquet"),n.createElement("option",{value:"csv"},"CSV"))),n.createElement("button",{style:{...l.btn,...l.btnPrimary,...Se?l.btnDisabled:{}},onClick:async()=>{if(!be||!Ee)return ee("Set both from and to dates for export."),void ae(!0);ke(!0),ee(`Exporting ${xe.toUpperCase()}...`),ae(!1);try{const e=`/plugins/signalk-questdb/api/export?from=${encodeURIComponent(be)}&to=${encodeURIComponent(Ee)}&format=${xe}`,t=await fetch(e);if(!t.ok){const e=await t.json().catch(()=>({error:t.statusText}));return ee(`Export failed: ${e.error}`),ae(!0),void ke(!1)}const a=await t.blob(),n="parquet"===xe?"parquet":"csv",l=document.createElement("a");l.href=URL.createObjectURL(a),l.download=`signalk-export-${be.slice(0,10)}.${n}`,l.click(),URL.revokeObjectURL(l.href),ee(`Exported ${(a.size/1024/1024).toFixed(1)} MB`)}catch(e){ee(`Export failed: ${e.message}`),ae(!0)}ke(!1)},disabled:Se},Se?"Exporting...":"Export Data")),!1!==a.managedContainer&&n.createElement(r,{title:"Danger zone"},n.createElement("div",{style:{fontSize:13,color:"#555",marginBottom:10}},"Remove the QuestDB container and permanently delete all recorded data. Use this to fully reset QuestDB — Signal K's plugin-uninstall cannot delete this data on rootless Podman. This cannot be undone."),n.createElement("button",{style:{...l.btn,...l.btnDanger,...ce?l.btnDisabled:{}},onClick:async()=>{if(window.confirm("Remove the QuestDB container and DELETE ALL recorded data? This cannot be undone.")){de(!0),ee("Removing QuestDB container and data..."),ae(!1);try{const e=await fetch("/plugins/signalk-questdb/api/purge-data",{method:"POST"}),t=await e.json().catch(()=>({error:e.statusText}));e.ok?(ee(t.message),ye()):(ee(`Remove failed: ${t.error}`),ae(!0))}catch(e){ee(`Remove failed: ${e.message}`),ae(!0)}de(!1)}},disabled:ce},ce?"Removing...":"Remove container & all data")),X&&n.createElement("div",{style:{...l.status,color:te?"#ef4444":"#10b981",marginTop:16}},X),n.createElement("div",{style:{marginTop:24}},n.createElement("button",{style:{...l.btn,...l.btnSave},onClick:()=>{t({questdbHost:i,questdbIlpPort:c,questdbHttpPort:u,questdbPgPort:p,questdbVersion:f,managedContainer:b,defaultSamplingRate:S,recordSelf:E,recordOthers:x,retentionDays:R,compression:z,compressionLevel:P,networkName:$,exposeToContainers:A,pathFilter:{mode:B,paths:D.split("\n").map(e=>e.trim()).filter(Boolean)},samplingRates:a.samplingRates||{}}),ee("Saved! Plugin will restart with new configuration."),ae(!1)}},"Save Configuration")))}}}]);
package/webpack.config.js CHANGED
@@ -15,7 +15,16 @@ module.exports = {
15
15
  test: /\.jsx?$/,
16
16
  loader: "babel-loader",
17
17
  exclude: /node_modules/,
18
- options: { presets: ["@babel/preset-react"] },
18
+ // runtime "classic" is load-bearing: Babel 8 changed preset-react's
19
+ // default to the "automatic" runtime, whose emitted code imports
20
+ // react/jsx-runtime. That module is not in the Module Federation
21
+ // `shared` scope below, so webpack bundles a private copy of React's
22
+ // jsx runtime into the remote — a second React instance in the host
23
+ // page — and the Admin UI's panel loader fails. Classic emits
24
+ // React.createElement against the shared singleton React.
25
+ options: {
26
+ presets: [["@babel/preset-react", { runtime: "classic" }]],
27
+ },
19
28
  },
20
29
  ],
21
30
  },
@@ -1,9 +0,0 @@
1
- /**
2
- * @license React
3
- * react-jsx-dev-runtime.production.js
4
- *
5
- * Copyright (c) Meta Platforms, Inc. and affiliates.
6
- *
7
- * This source code is licensed under the MIT license found in the
8
- * LICENSE file in the root directory of this source tree.
9
- */