@marineyachtradar/signalk-plugin 1.4.0-beta.1 → 1.4.0-beta.3
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/package.json +1 -1
- package/plugin/index.js +64 -26
- package/plugin/index.js.map +1 -1
- package/plugin/signalk-token.d.ts +23 -0
- package/plugin/signalk-token.d.ts.map +1 -1
- package/plugin/signalk-token.js +53 -3
- package/plugin/signalk-token.js.map +1 -1
package/package.json
CHANGED
package/plugin/index.js
CHANGED
|
@@ -50,8 +50,14 @@ module.exports = function (app) {
|
|
|
50
50
|
// how many radars are discovered.
|
|
51
51
|
let notificationForwarder = null;
|
|
52
52
|
let discoveryInterval = null;
|
|
53
|
-
//
|
|
54
|
-
|
|
53
|
+
// Monotonic generation for the token-acquisition loop. Bumped on every
|
|
54
|
+
// start() and stop(); each recovery loop captures the value at launch and
|
|
55
|
+
// treats itself as cancelled once it no longer matches. A boolean flag was
|
|
56
|
+
// insufficient: a fast stop()→start() reset it to false under an old
|
|
57
|
+
// in-flight loop, which then resumed and POSTed a duplicate access request
|
|
58
|
+
// alongside the new loop. A counter makes a superseded loop stay cancelled
|
|
59
|
+
// forever, so only one acquisition is ever live.
|
|
60
|
+
let tokenGeneration = 0;
|
|
55
61
|
let reconnectInterval = null;
|
|
56
62
|
let isConnected = false;
|
|
57
63
|
// Appended to the "Connected" status line when a newer container image
|
|
@@ -78,19 +84,20 @@ module.exports = function (app) {
|
|
|
78
84
|
// every field being present.
|
|
79
85
|
const merged = { ...schema_1.SCHEMA_DEFAULTS, ...config };
|
|
80
86
|
currentSettings = merged;
|
|
81
|
-
//
|
|
82
|
-
//
|
|
83
|
-
//
|
|
84
|
-
|
|
87
|
+
// New generation: supersedes any token loop left over from a prior
|
|
88
|
+
// start (a fast disable/enable or config save) so only the loop this
|
|
89
|
+
// start launches is live.
|
|
90
|
+
tokenGeneration++;
|
|
85
91
|
void asyncStart(merged).catch((err) => {
|
|
86
92
|
app.setPluginError(`Startup failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
87
93
|
});
|
|
88
94
|
},
|
|
89
95
|
async stop() {
|
|
90
96
|
app.debug('Stopping mayara-server-signalk-plugin');
|
|
91
|
-
//
|
|
92
|
-
//
|
|
93
|
-
|
|
97
|
+
// Bump the generation so any in-flight token loop sees itself as
|
|
98
|
+
// superseded and exits on its next check, without keeping the process
|
|
99
|
+
// alive after stop() returns.
|
|
100
|
+
tokenGeneration++;
|
|
94
101
|
try {
|
|
95
102
|
app.radarApi.unRegister(PLUGIN_ID);
|
|
96
103
|
}
|
|
@@ -640,17 +647,36 @@ module.exports = function (app) {
|
|
|
640
647
|
}
|
|
641
648
|
return config;
|
|
642
649
|
}
|
|
643
|
-
async function ensureSignalkToken(containers, tag) {
|
|
650
|
+
async function ensureSignalkToken(containers, tag, isCancelled = () => false) {
|
|
644
651
|
const dataDir = app.getDataDirPath();
|
|
645
|
-
if ((0, signalk_token_1.readCachedToken)(dataDir)) {
|
|
646
|
-
app.debug('Signal K token cached; container started with WS transport');
|
|
647
|
-
return 'done';
|
|
648
|
-
}
|
|
649
652
|
// Derive scheme + port from the live SK config (same source of
|
|
650
653
|
// truth as the nav transport) so a TLS-enabled server is reached
|
|
651
654
|
// over https — its plain-HTTP listener 302-redirects and drops the
|
|
652
655
|
// POST body, so http would never mint a token.
|
|
653
656
|
const sk = resolveSignalkApi();
|
|
657
|
+
const cached = (0, signalk_token_1.readCachedToken)(dataDir);
|
|
658
|
+
if (cached) {
|
|
659
|
+
// A token on disk isn't necessarily still valid — the admin may have
|
|
660
|
+
// revoked it in Security → Access Requests. Validate before trusting
|
|
661
|
+
// it; if revoked, drop the cache and fall through to re-request so the
|
|
662
|
+
// recovery loop can pick up a fresh approval without a manual restart.
|
|
663
|
+
// `unknown` (SK still starting, network blip) keeps the cached token.
|
|
664
|
+
const state = await (0, signalk_token_1.validateCachedToken)({
|
|
665
|
+
token: cached,
|
|
666
|
+
signalkPort: sk.port,
|
|
667
|
+
ssl: sk.scheme === 'https'
|
|
668
|
+
});
|
|
669
|
+
if (state !== 'revoked') {
|
|
670
|
+
app.debug('Signal K token cached and still valid; container on WS transport');
|
|
671
|
+
return 'done';
|
|
672
|
+
}
|
|
673
|
+
app.debug('Cached Signal K token was revoked; dropping it and re-requesting');
|
|
674
|
+
(0, signalk_token_1.deleteCachedToken)(dataDir);
|
|
675
|
+
// The container is still running with the dead token in env; recreate
|
|
676
|
+
// it so it drops to tcp: until a new token is approved.
|
|
677
|
+
await containers.ensureRunning(CONTAINER_NAME, buildContainerConfig(tag));
|
|
678
|
+
app.setPluginStatus('Signal K token was revoked — re-requesting access');
|
|
679
|
+
}
|
|
654
680
|
// Request `readwrite` so mayara can later push deltas back into SK
|
|
655
681
|
// (radar targets, MARPA tracks, heading echoes, guard-zone
|
|
656
682
|
// notifications). Today the token only reads the AIS REST snapshot,
|
|
@@ -685,6 +711,13 @@ module.exports = function (app) {
|
|
|
685
711
|
'Security settings, or add `--signalk-token <token>` to mayaraArgs.');
|
|
686
712
|
// Recoverable: the operator may enable device requests later.
|
|
687
713
|
return 'retry';
|
|
714
|
+
case 'already-pending':
|
|
715
|
+
// A request for this clientId is already outstanding on SK (e.g. one
|
|
716
|
+
// left by a prior plugin instance). Don't POST another — wait and let
|
|
717
|
+
// the recovery loop re-check; once it's approved the token caches and
|
|
718
|
+
// the next pass returns 'done'.
|
|
719
|
+
app.setPluginStatus('Awaiting Signal K token approval — see Security → Access Requests');
|
|
720
|
+
return 'retry';
|
|
688
721
|
case 'error':
|
|
689
722
|
app.debug(`Signal K token request error: ${begin.message}`);
|
|
690
723
|
return 'retry';
|
|
@@ -695,15 +728,15 @@ module.exports = function (app) {
|
|
|
695
728
|
app.setPluginStatus('Awaiting Signal K token approval — see Security → Access Requests');
|
|
696
729
|
app.debug(`Awaiting approval at ${begin.href} (request ${begin.requestId}). ` +
|
|
697
730
|
`Set plugin config "requestSignalkToken" to false to suppress this.`);
|
|
698
|
-
const token = await (0, signalk_token_1.awaitApproval)(begin.href, sk.port,
|
|
731
|
+
const token = await (0, signalk_token_1.awaitApproval)(begin.href, sk.port, isCancelled, (msg) => {
|
|
699
732
|
app.debug(msg);
|
|
700
733
|
}, undefined, // keep the default poll interval
|
|
701
734
|
sk.scheme === 'https');
|
|
702
735
|
if (!token) {
|
|
703
|
-
// Denied, expired, or
|
|
704
|
-
//
|
|
705
|
-
//
|
|
706
|
-
if (
|
|
736
|
+
// Denied, expired, or superseded. Leave the container on its existing
|
|
737
|
+
// transport. If we weren't superseded, this is recoverable — the
|
|
738
|
+
// operator may approve a fresh request later.
|
|
739
|
+
if (isCancelled()) {
|
|
707
740
|
return 'done';
|
|
708
741
|
}
|
|
709
742
|
app.setPluginStatus('Signal K token request was denied or expired. AIS overlay will ' +
|
|
@@ -728,22 +761,27 @@ module.exports = function (app) {
|
|
|
728
761
|
* approves the device request (or enables device access requests) later is
|
|
729
762
|
* picked up without a plugin restart. Each attempt that returns `retry`
|
|
730
763
|
* waits `recoveryMs` before the next, capped at `MAX_TOKEN_RECOVERY_ATTEMPTS`
|
|
731
|
-
* so a permanently-denied install doesn't poll forever.
|
|
732
|
-
*
|
|
733
|
-
*
|
|
764
|
+
* so a permanently-denied install doesn't poll forever.
|
|
765
|
+
*
|
|
766
|
+
* The loop captures the token generation at launch and stops the moment a
|
|
767
|
+
* later start()/stop() supersedes it — guaranteeing exactly one live
|
|
768
|
+
* acquisition, so a fast restart can't leave two loops POSTing duplicate
|
|
769
|
+
* access requests.
|
|
734
770
|
*/
|
|
735
771
|
async function ensureSignalkTokenWithRecovery(containers, tag, recoveryMs) {
|
|
772
|
+
const myGeneration = tokenGeneration;
|
|
773
|
+
const isCancelled = () => myGeneration !== tokenGeneration;
|
|
736
774
|
const MAX_TOKEN_RECOVERY_ATTEMPTS = 60;
|
|
737
775
|
for (let attempt = 0; attempt < MAX_TOKEN_RECOVERY_ATTEMPTS; attempt++) {
|
|
738
|
-
if (
|
|
776
|
+
if (isCancelled()) {
|
|
739
777
|
return;
|
|
740
778
|
}
|
|
741
|
-
const outcome = await ensureSignalkToken(containers, tag);
|
|
779
|
+
const outcome = await ensureSignalkToken(containers, tag, isCancelled);
|
|
742
780
|
if (outcome === 'done') {
|
|
743
781
|
return;
|
|
744
782
|
}
|
|
745
|
-
// Recoverable failure: wait, then re-attempt — unless
|
|
746
|
-
//
|
|
783
|
+
// Recoverable failure: wait, then re-attempt — unless superseded while
|
|
784
|
+
// waiting (re-checked at the top of the loop).
|
|
747
785
|
await new Promise((resolve) => setTimeout(resolve, recoveryMs));
|
|
748
786
|
}
|
|
749
787
|
app.debug('Signal K token recovery gave up after repeated failures; restart the plugin to retry');
|
package/plugin/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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"}
|
|
@@ -9,6 +9,8 @@ export type EnsureResult = {
|
|
|
9
9
|
kind: 'pending';
|
|
10
10
|
requestId: string;
|
|
11
11
|
href: string;
|
|
12
|
+
} | {
|
|
13
|
+
kind: 'already-pending';
|
|
12
14
|
} | {
|
|
13
15
|
kind: 'error';
|
|
14
16
|
message: string;
|
|
@@ -48,6 +50,27 @@ export declare function hasCachedToken(dataDir: string): boolean;
|
|
|
48
50
|
* Signal K server process owner.
|
|
49
51
|
*/
|
|
50
52
|
export declare function writeCachedToken(dataDir: string, token: string): void;
|
|
53
|
+
/** Remove the cached token (e.g. after the server revoked it). No-op if absent. */
|
|
54
|
+
export declare function deleteCachedToken(dataDir: string): void;
|
|
55
|
+
export interface ValidateOptions {
|
|
56
|
+
token: string;
|
|
57
|
+
signalkPort: number;
|
|
58
|
+
ssl: boolean;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Check whether a cached token is still accepted by the local Signal K
|
|
62
|
+
* server. Returns:
|
|
63
|
+
* - `valid` — the server accepted the bearer (HTTP 2xx)
|
|
64
|
+
* - `revoked` — the server rejected it (HTTP 401/403): the admin revoked
|
|
65
|
+
* or it expired, so the cache should be dropped and re-requested
|
|
66
|
+
* - `unknown` — could not tell (network error, SK still starting, other
|
|
67
|
+
* status). Treated as "keep using it" so a transient blip
|
|
68
|
+
* doesn't throw away a good token.
|
|
69
|
+
*
|
|
70
|
+
* Hits `/signalk/v1/api/vessels/self` — a read every approved device token
|
|
71
|
+
* may perform — over the same loopback transport the token flow uses.
|
|
72
|
+
*/
|
|
73
|
+
export declare function validateCachedToken(opts: ValidateOptions): Promise<'valid' | 'revoked' | 'unknown'>;
|
|
51
74
|
/**
|
|
52
75
|
* Begin a Signal K device access request and resolve when it transitions
|
|
53
76
|
* out of PENDING. Returns one of:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signalk-token.d.ts","sourceRoot":"","sources":["../src/signalk-token.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"signalk-token.d.ts","sourceRoot":"","sources":["../src/signalk-token.ts"],"names":[],"mappings":"AAmFA,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,mBAAmB,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAIpD;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtC,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,OAAO,CAAA;CACjD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKnE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAGrE;AAED,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEvD;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,OAAO,CAAA;CACb;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC,CAa1C;AAWD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAiElF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,OAAO,EAC1B,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,EAC1B,cAAc,GAAE,MAAyB,EACzC,GAAG,GAAE,OAAe,GACnB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAuC7B"}
|
package/plugin/signalk-token.js
CHANGED
|
@@ -4,6 +4,8 @@ exports.readCachedToken = readCachedToken;
|
|
|
4
4
|
exports.tokenFilePath = tokenFilePath;
|
|
5
5
|
exports.hasCachedToken = hasCachedToken;
|
|
6
6
|
exports.writeCachedToken = writeCachedToken;
|
|
7
|
+
exports.deleteCachedToken = deleteCachedToken;
|
|
8
|
+
exports.validateCachedToken = validateCachedToken;
|
|
7
9
|
exports.beginTokenRequest = beginTokenRequest;
|
|
8
10
|
exports.awaitApproval = awaitApproval;
|
|
9
11
|
const fs_1 = require("fs");
|
|
@@ -33,11 +35,15 @@ const POLL_INTERVAL_MS = 5_000;
|
|
|
33
35
|
* host) get the verification-disabled `node:https` path, so an absolute
|
|
34
36
|
* `http://` href can never accidentally route through it.
|
|
35
37
|
*/
|
|
36
|
-
async function requestJson(method, url, body) {
|
|
38
|
+
async function requestJson(method, url, body, extraHeaders) {
|
|
39
|
+
const headers = { ...extraHeaders };
|
|
40
|
+
if (body !== undefined)
|
|
41
|
+
headers['Content-Type'] = 'application/json';
|
|
42
|
+
const hasHeaders = Object.keys(headers).length > 0;
|
|
37
43
|
if (!url.startsWith('https:')) {
|
|
38
44
|
const res = await fetch(url, {
|
|
39
45
|
method,
|
|
40
|
-
headers:
|
|
46
|
+
headers: hasHeaders ? headers : undefined,
|
|
41
47
|
body
|
|
42
48
|
});
|
|
43
49
|
return { status: res.status, ok: res.ok, json: () => res.json() };
|
|
@@ -46,7 +52,7 @@ async function requestJson(method, url, body) {
|
|
|
46
52
|
const req = (0, https_1.request)(url, {
|
|
47
53
|
method,
|
|
48
54
|
rejectUnauthorized: false,
|
|
49
|
-
headers:
|
|
55
|
+
headers: hasHeaders ? headers : undefined
|
|
50
56
|
}, (res) => {
|
|
51
57
|
const chunks = [];
|
|
52
58
|
res.on('data', (c) => chunks.push(c));
|
|
@@ -100,6 +106,40 @@ function writeCachedToken(dataDir, token) {
|
|
|
100
106
|
const path = (0, path_1.join)(dataDir, TOKEN_FILENAME);
|
|
101
107
|
(0, fs_1.writeFileSync)(path, token, { mode: 0o600 });
|
|
102
108
|
}
|
|
109
|
+
/** Remove the cached token (e.g. after the server revoked it). No-op if absent. */
|
|
110
|
+
function deleteCachedToken(dataDir) {
|
|
111
|
+
(0, fs_1.rmSync)((0, path_1.join)(dataDir, TOKEN_FILENAME), { force: true });
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Check whether a cached token is still accepted by the local Signal K
|
|
115
|
+
* server. Returns:
|
|
116
|
+
* - `valid` — the server accepted the bearer (HTTP 2xx)
|
|
117
|
+
* - `revoked` — the server rejected it (HTTP 401/403): the admin revoked
|
|
118
|
+
* or it expired, so the cache should be dropped and re-requested
|
|
119
|
+
* - `unknown` — could not tell (network error, SK still starting, other
|
|
120
|
+
* status). Treated as "keep using it" so a transient blip
|
|
121
|
+
* doesn't throw away a good token.
|
|
122
|
+
*
|
|
123
|
+
* Hits `/signalk/v1/api/vessels/self` — a read every approved device token
|
|
124
|
+
* may perform — over the same loopback transport the token flow uses.
|
|
125
|
+
*/
|
|
126
|
+
async function validateCachedToken(opts) {
|
|
127
|
+
const scheme = opts.ssl ? 'https' : 'http';
|
|
128
|
+
const url = `${scheme}://127.0.0.1:${opts.signalkPort}/signalk/v1/api/vessels/self`;
|
|
129
|
+
try {
|
|
130
|
+
const res = await requestJson('GET', url, undefined, {
|
|
131
|
+
Authorization: `Bearer ${opts.token}`
|
|
132
|
+
});
|
|
133
|
+
if (res.status === 401 || res.status === 403)
|
|
134
|
+
return 'revoked';
|
|
135
|
+
if (res.ok)
|
|
136
|
+
return 'valid';
|
|
137
|
+
return 'unknown';
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
return 'unknown';
|
|
141
|
+
}
|
|
142
|
+
}
|
|
103
143
|
/**
|
|
104
144
|
* Begin a Signal K device access request and resolve when it transitions
|
|
105
145
|
* out of PENDING. Returns one of:
|
|
@@ -147,6 +187,16 @@ async function beginTokenRequest(opts) {
|
|
|
147
187
|
if (res.status === 403) {
|
|
148
188
|
return { kind: 'requests-disabled' };
|
|
149
189
|
}
|
|
190
|
+
if (res.status === 400) {
|
|
191
|
+
// SK rejects a second pending request for the same clientId with 400
|
|
192
|
+
// ("...has already requested access"). Treat as already-pending so the
|
|
193
|
+
// caller waits instead of erroring or POSTing again.
|
|
194
|
+
const reply = (await res.json().catch(() => undefined));
|
|
195
|
+
if (reply?.message?.includes('already requested')) {
|
|
196
|
+
return { kind: 'already-pending' };
|
|
197
|
+
}
|
|
198
|
+
return { kind: 'error', message: reply?.message ?? 'HTTP 400 from access-request endpoint' };
|
|
199
|
+
}
|
|
150
200
|
if (res.status !== 202 && res.status !== 200) {
|
|
151
201
|
return { kind: 'error', message: `Unexpected HTTP ${res.status} from access-request endpoint` };
|
|
152
202
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signalk-token.js","sourceRoot":"","sources":["../src/signalk-token.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"signalk-token.js","sourceRoot":"","sources":["../src/signalk-token.ts"],"names":[],"mappings":"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"}
|