signalk-p2p-plugin 0.3.0 → 0.4.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.
Files changed (63) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +41 -14
  3. package/deploy/README.md +20 -2
  4. package/deploy/policy.json +30 -0
  5. package/dist/advanced-config.d.ts +11 -0
  6. package/dist/advanced-config.d.ts.map +1 -0
  7. package/dist/advanced-config.js +40 -0
  8. package/dist/advanced-config.js.map +1 -0
  9. package/dist/api.d.ts +14 -1
  10. package/dist/api.d.ts.map +1 -1
  11. package/dist/api.js +41 -3
  12. package/dist/api.js.map +1 -1
  13. package/dist/config.d.ts +5 -0
  14. package/dist/config.d.ts.map +1 -1
  15. package/dist/config.js +12 -273
  16. package/dist/config.js.map +1 -1
  17. package/dist/data/envelope.d.ts.map +1 -1
  18. package/dist/data/envelope.js +2 -0
  19. package/dist/data/envelope.js.map +1 -1
  20. package/dist/data/types.d.ts +1 -1
  21. package/dist/data/types.d.ts.map +1 -1
  22. package/dist/groups/control.d.ts +8 -0
  23. package/dist/groups/control.d.ts.map +1 -1
  24. package/dist/groups/control.js +30 -0
  25. package/dist/groups/control.js.map +1 -1
  26. package/dist/groups/manager.d.ts +2 -0
  27. package/dist/groups/manager.d.ts.map +1 -1
  28. package/dist/groups/manager.js +28 -1
  29. package/dist/groups/manager.js.map +1 -1
  30. package/dist/groups/types.d.ts +12 -0
  31. package/dist/groups/types.d.ts.map +1 -1
  32. package/dist/groups/types.js +23 -0
  33. package/dist/groups/types.js.map +1 -1
  34. package/dist/live/relay.d.ts +3 -0
  35. package/dist/live/relay.d.ts.map +1 -1
  36. package/dist/live/relay.js +11 -0
  37. package/dist/live/relay.js.map +1 -1
  38. package/dist/peer/cli.js +16 -0
  39. package/dist/peer/cli.js.map +1 -1
  40. package/dist/peer/config.d.ts +3 -0
  41. package/dist/peer/config.d.ts.map +1 -1
  42. package/dist/peer/config.js +5 -0
  43. package/dist/peer/config.js.map +1 -1
  44. package/dist/plugin.d.ts.map +1 -1
  45. package/dist/plugin.js +136 -46
  46. package/dist/plugin.js.map +1 -1
  47. package/dist/policy/operator.d.ts +13 -0
  48. package/dist/policy/operator.d.ts.map +1 -0
  49. package/dist/policy/operator.js +53 -0
  50. package/dist/policy/operator.js.map +1 -0
  51. package/dist/policy/policy.d.ts +49 -0
  52. package/dist/policy/policy.d.ts.map +1 -0
  53. package/dist/policy/policy.js +147 -0
  54. package/dist/policy/policy.js.map +1 -0
  55. package/docs/plans/README.md +2 -2
  56. package/docs/plans/architecture.md +2 -2
  57. package/docs/plans/networks.md +35 -7
  58. package/docs/plans/peer-node.md +7 -2
  59. package/docs/plans/shared-data.md +4 -3
  60. package/package.json +3 -2
  61. package/policy/default.json +30 -0
  62. package/policy/operator.pub +2 -0
  63. package/public/index.html +268 -68
package/dist/config.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { DEFAULT_OPERATOR_PUBLIC_KEY } from "./policy/operator.js";
1
2
  export const DATA_SETS = [
2
3
  {
3
4
  id: "identity",
@@ -111,6 +112,7 @@ function defaultSharing() {
111
112
  export function defaultConfig() {
112
113
  return {
113
114
  identity: { keyFile: "auto" },
115
+ policy: { operatorKeys: [DEFAULT_OPERATOR_PUBLIC_KEY] },
114
116
  sharding: {
115
117
  maxVesselsPerShard: 500,
116
118
  maxVesselsPerInstance: 1000,
@@ -137,9 +139,9 @@ export function defaultConfig() {
137
139
  },
138
140
  sharing: defaultSharing(),
139
141
  ais: {
140
- public: true,
142
+ public: false,
141
143
  groups: [],
142
- mode: "both",
144
+ mode: "subscribe",
143
145
  maxTargets: 100,
144
146
  rateHz: 0.02,
145
147
  },
@@ -148,7 +150,7 @@ export function defaultConfig() {
148
150
  id: "all-vessels",
149
151
  kind: "public",
150
152
  enabled: true,
151
- consent: "opt-out",
153
+ consent: "receive-only",
152
154
  rateHzUnderway: 0.05,
153
155
  rateHzMoored: 0.01,
154
156
  },
@@ -173,6 +175,7 @@ export function resolveConfig(partial) {
173
175
  }
174
176
  return {
175
177
  identity: { ...defaults.identity, ...partial.identity },
178
+ policy: { ...defaults.policy, ...partial.policy },
176
179
  sharding: { ...defaults.sharding, ...partial.sharding },
177
180
  bootstrapPeers: partial.bootstrapPeers ?? defaults.bootstrapPeers,
178
181
  election: { ...defaults.election, ...partial.election },
@@ -184,296 +187,32 @@ export function resolveConfig(partial) {
184
187
  };
185
188
  }
186
189
  export function schema() {
187
- const audience = (title, description, publicDefault, groupsDefault) => ({
188
- type: "object",
189
- title,
190
- description,
191
- properties: {
192
- public: {
193
- type: "boolean",
194
- title: "Share publicly",
195
- description: "Publish this data set on the global all-vessels network.",
196
- default: publicDefault,
197
- },
198
- groups: {
199
- title: "Share with groups",
200
- description: "Publish this data set to every group, or only to the selected groups.",
201
- oneOf: [
202
- { enum: ["all"], title: "All groups" },
203
- {
204
- type: "array",
205
- title: "Selected groups",
206
- items: { type: "string", title: "Group id" },
207
- },
208
- ],
209
- default: groupsDefault === "all" ? "all" : [],
210
- },
211
- },
212
- additionalProperties: false,
213
- });
214
- const sharingProperties = Object.fromEntries(DATA_SETS.map((dataSet) => [
215
- dataSet.id,
216
- audience(dataSet.title, dataSet.description, dataSet.publicDefault, dataSet.groupsDefault),
217
- ]));
218
190
  return {
219
191
  type: "object",
220
192
  title: "Signal K P2P",
221
193
  properties: {
222
- identity: {
223
- type: "object",
224
- title: "Identity",
225
- properties: {
226
- keyFile: {
227
- type: "string",
228
- title: "Identity key file",
229
- description: "Where the instance Ed25519 key is stored. 'auto' keeps it in the plugin data directory.",
230
- default: "auto",
231
- },
232
- },
233
- },
234
- sharding: {
235
- type: "object",
236
- title: "Public network sharding",
237
- properties: {
238
- maxVesselsPerShard: {
239
- type: "number",
240
- title: "Maximum vessels per shard",
241
- default: 500,
242
- minimum: 100,
243
- },
244
- maxVesselsPerInstance: {
245
- type: "number",
246
- title: "Maximum vessels injected per instance",
247
- default: 1000,
248
- minimum: 100,
249
- },
250
- lookAheadKm: {
251
- type: "number",
252
- title: "Look-ahead radius (km)",
253
- default: 50,
254
- minimum: 0,
255
- },
256
- splitSettleMinutes: {
257
- type: "number",
258
- title: "Split settle time (minutes)",
259
- default: 10,
260
- minimum: 1,
261
- },
262
- mergeSettleMinutes: {
263
- type: "number",
264
- title: "Merge settle time (minutes)",
265
- default: 60,
266
- minimum: 1,
267
- },
268
- mergeBelowRatio: {
269
- type: "number",
270
- title: "Merge below this fraction of the maximum",
271
- default: 0.25,
272
- minimum: 0,
273
- maximum: 1,
274
- },
275
- boundaryHysteresisMeters: {
276
- type: "number",
277
- title: "Shard boundary hysteresis (m)",
278
- default: 1000,
279
- minimum: 0,
280
- },
281
- },
282
- },
283
- bootstrapPeers: {
284
- type: "array",
285
- title: "Bootstrap peers",
286
- description: "Optional always-on peers used to reach the mesh or bridge CGNAT. " +
287
- "They are ordinary peers, not required relays; leave empty for an " +
288
- "open, peer-elected mesh.",
289
- items: { type: "string" },
290
- default: [],
291
- },
292
194
  election: {
293
195
  type: "object",
294
- title: "Peer election",
196
+ title: "Relay",
295
197
  properties: {
296
- enabled: {
297
- type: "boolean",
298
- title: "Elect a relay/aggregator per shard",
299
- default: true,
300
- },
301
- epochMinutes: {
302
- type: "number",
303
- title: "Election epoch (minutes)",
304
- default: 10,
305
- minimum: 1,
306
- },
307
- minUptimeMinutes: {
308
- type: "number",
309
- title: "Minimum uptime to be eligible (minutes)",
310
- default: 10,
311
- minimum: 0,
312
- },
313
198
  relayConsent: {
314
199
  type: "boolean",
315
- title: "Offer to relay/aggregate for this shard",
316
- default: false,
317
- },
318
- reachable: {
319
- type: "boolean",
320
- title: "Advertise as publicly reachable",
321
- default: false,
322
- },
323
- unmetered: {
324
- type: "boolean",
325
- title: "Advertise an unmetered link",
326
- default: false,
327
- },
328
- capacity: {
329
- type: "number",
330
- title: "Relative relay capacity",
331
- default: 1,
332
- minimum: 1,
333
- maximum: 16,
334
- },
335
- },
336
- },
337
- security: {
338
- type: "object",
339
- title: "Security",
340
- properties: {
341
- publicAttestors: {
342
- type: "array",
343
- title: "Public attestors",
344
- description: "Keys allowed to attest public MMSI claims. Empty means TOFU only.",
345
- items: { type: "string" },
346
- default: [],
347
- },
348
- requireAttestation: {
349
- type: "boolean",
350
- title: "Require attestation for public members",
200
+ title: "Help relay nearby vessels",
201
+ description: "Offer this instance as a relay when the network elects it. " +
202
+ "Topology and rate limits come from the signed network policy.",
351
203
  default: false,
352
204
  },
353
- attestationThreshold: {
354
- type: "number",
355
- title: "Attestations required",
356
- default: 1,
357
- minimum: 1,
358
- },
359
- },
360
- },
361
- sharing: {
362
- type: "object",
363
- title: "Shared data",
364
- description: "Choose who receives each data set. Public means the all-vessels network.",
365
- properties: sharingProperties,
366
- },
367
- ais: {
368
- type: "object",
369
- title: "AIS vessels",
370
- properties: {
371
- public: { type: "boolean", title: "Share publicly", default: true },
372
- groups: {
373
- title: "Share with groups",
374
- oneOf: [
375
- { enum: ["all"], title: "All groups" },
376
- {
377
- type: "array",
378
- title: "Selected groups",
379
- items: { type: "string" },
380
- },
381
- ],
382
- default: [],
383
- },
384
- mode: {
385
- type: "string",
386
- title: "AIS direction",
387
- enum: ["both", "publish", "subscribe", "off"],
388
- enumNames: [
389
- "Send and receive",
390
- "Send our AIS vessels",
391
- "Receive AIS vessels only",
392
- "No AIS over P2P",
393
- ],
394
- default: "both",
395
- },
396
- maxTargets: {
397
- type: "number",
398
- title: "Maximum AIS targets per snapshot",
399
- default: 100,
400
- minimum: 0,
401
- },
402
- rateHz: {
403
- type: "number",
404
- title: "AIS snapshot rate (Hz)",
405
- default: 0.02,
406
- minimum: 0,
407
- },
408
- },
409
- },
410
- networks: {
411
- type: "array",
412
- title: "Networks",
413
- items: {
414
- type: "object",
415
- properties: {
416
- id: { type: "string", title: "Id" },
417
- kind: {
418
- type: "string",
419
- title: "Kind",
420
- enum: ["public", "group"],
421
- },
422
- name: { type: "string", title: "Name" },
423
- enabled: { type: "boolean", title: "Enabled", default: true },
424
- consent: {
425
- type: "string",
426
- title: "Consent",
427
- enum: [
428
- "opt-out",
429
- "underway-gated",
430
- "receive-only",
431
- "coarse-position",
432
- ],
433
- enumNames: [
434
- "Publish everything",
435
- "Publish only while underway",
436
- "Receive only",
437
- "Publish a coarse position",
438
- ],
439
- default: "opt-out",
440
- },
441
- rateHzUnderway: {
442
- type: "number",
443
- title: "Snapshot rate underway (Hz)",
444
- default: 0.05,
445
- minimum: 0,
446
- },
447
- rateHzMoored: {
448
- type: "number",
449
- title: "Snapshot rate moored (Hz)",
450
- default: 0.01,
451
- minimum: 0,
452
- },
453
- invite: { type: "string", title: "Group invite" },
454
- },
455
205
  },
456
206
  },
457
207
  inject: {
458
208
  type: "object",
459
- title: "Injection",
209
+ title: "Other vessels",
460
210
  properties: {
461
211
  enabled: {
462
212
  type: "boolean",
463
- title: "Inject received vessels into the Signal K tree",
213
+ title: "Show vessels received from the network",
464
214
  default: true,
465
215
  },
466
- history: {
467
- type: "boolean",
468
- title: "Allow injected vessels in history",
469
- default: false,
470
- },
471
- maxAgeSeconds: {
472
- type: "number",
473
- title: "Maximum age (seconds)",
474
- default: 900,
475
- minimum: 60,
476
- },
477
216
  },
478
217
  },
479
218
  },
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/data/envelope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAyClC,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAID,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAOxE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAiBrD"}
1
+ {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/data/envelope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,eAAO,MAAM,gBAAgB,IAAI,CAAC;AA4ClC,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAID,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAOxE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAiBrD"}
@@ -7,6 +7,7 @@ const WIRE_TYPES = {
7
7
  "ais-static": 5 /* WireRecordType.AisStatic */,
8
8
  claim: 6 /* WireRecordType.Claim */,
9
9
  capability: 7 /* WireRecordType.Capability */,
10
+ policy: 11 /* WireRecordType.Policy */,
10
11
  "group-roster": 8 /* WireRecordType.GroupRoster */,
11
12
  "group-join": 9 /* WireRecordType.GroupJoin */,
12
13
  "group-roster-request": 10 /* WireRecordType.GroupRosterRequest */,
@@ -19,6 +20,7 @@ const WIRE_TYPE_NAMES = {
19
20
  [5 /* WireRecordType.AisStatic */]: "ais-static",
20
21
  [6 /* WireRecordType.Claim */]: "claim",
21
22
  [7 /* WireRecordType.Capability */]: "capability",
23
+ [11 /* WireRecordType.Policy */]: "policy",
22
24
  [8 /* WireRecordType.GroupRoster */]: "group-roster",
23
25
  [9 /* WireRecordType.GroupJoin */]: "group-join",
24
26
  [10 /* WireRecordType.GroupRosterRequest */]: "group-roster-request",
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/data/envelope.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAelC,MAAM,UAAU,GAAuC;IACrD,QAAQ,iCAAyB;IACjC,MAAM,+BAAuB;IAC7B,MAAM,+BAAuB;IAC7B,cAAc,oCAA4B;IAC1C,YAAY,kCAA0B;IACtC,KAAK,8BAAsB;IAC3B,UAAU,mCAA2B;IACrC,cAAc,oCAA4B;IAC1C,YAAY,kCAA0B;IACtC,sBAAsB,4CAAmC;CAC1D,CAAC;AAEF,MAAM,eAAe,GAA+B;IAClD,iCAAyB,EAAE,UAAU;IACrC,+BAAuB,EAAE,QAAQ;IACjC,+BAAuB,EAAE,QAAQ;IACjC,oCAA4B,EAAE,cAAc;IAC5C,kCAA0B,EAAE,YAAY;IACxC,8BAAsB,EAAE,OAAO;IAC/B,mCAA2B,EAAE,YAAY;IACzC,oCAA4B,EAAE,cAAc;IAC5C,kCAA0B,EAAE,YAAY;IACxC,4CAAmC,EAAE,sBAAsB;CAC5D,CAAC;AAQF,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,MAAM,UAAU,cAAc,CAAC,IAAgB,EAAE,OAAe;IAC9D,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D,GAAG,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;IACpC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAChC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,IAAI,CAAC,MAAM,GAAG,YAAY,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,GAAG,MAAM,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,sBAAsB,MAAM,uBAAuB,IAAI,CAAC,MAAM,GAAG,YAAY,EAAE,CAChF,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,iCAAiC,QAAQ,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;AACjE,CAAC"}
1
+ {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/data/envelope.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAgBlC,MAAM,UAAU,GAAuC;IACrD,QAAQ,iCAAyB;IACjC,MAAM,+BAAuB;IAC7B,MAAM,+BAAuB;IAC7B,cAAc,oCAA4B;IAC1C,YAAY,kCAA0B;IACtC,KAAK,8BAAsB;IAC3B,UAAU,mCAA2B;IACrC,MAAM,gCAAuB;IAC7B,cAAc,oCAA4B;IAC1C,YAAY,kCAA0B;IACtC,sBAAsB,4CAAmC;CAC1D,CAAC;AAEF,MAAM,eAAe,GAA+B;IAClD,iCAAyB,EAAE,UAAU;IACrC,+BAAuB,EAAE,QAAQ;IACjC,+BAAuB,EAAE,QAAQ;IACjC,oCAA4B,EAAE,cAAc;IAC5C,kCAA0B,EAAE,YAAY;IACxC,8BAAsB,EAAE,OAAO;IAC/B,mCAA2B,EAAE,YAAY;IACzC,gCAAuB,EAAE,QAAQ;IACjC,oCAA4B,EAAE,cAAc;IAC5C,kCAA0B,EAAE,YAAY;IACxC,4CAAmC,EAAE,sBAAsB;CAC5D,CAAC;AAQF,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,MAAM,UAAU,cAAc,CAAC,IAAgB,EAAE,OAAe;IAC9D,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D,GAAG,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;IACpC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAChC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,IAAI,CAAC,MAAM,GAAG,YAAY,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,GAAG,MAAM,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,sBAAsB,MAAM,uBAAuB,IAAI,CAAC,MAAM,GAAG,YAAY,EAAE,CAChF,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,iCAAiC,QAAQ,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;AACjE,CAAC"}
@@ -72,5 +72,5 @@ export interface StaticInfo {
72
72
  }
73
73
  /** A generic map of canonical Signal K paths to native values. */
74
74
  export type Values = Record<string, unknown>;
75
- export type RecordType = "snapshot" | "static" | "values" | "ais-snapshot" | "ais-static" | "claim" | "capability" | "group-roster" | "group-join" | "group-roster-request";
75
+ export type RecordType = "snapshot" | "static" | "values" | "ais-snapshot" | "ais-static" | "claim" | "capability" | "policy" | "group-roster" | "group-join" | "group-roster-request";
76
76
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/data/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/data/types.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,14 @@ export interface GroupControl {
39
39
  leaveGroup(input: {
40
40
  groupId?: unknown;
41
41
  }): Promise<GroupResult>;
42
+ setRate(input: {
43
+ groupId?: unknown;
44
+ rateHz?: unknown;
45
+ }): Promise<GroupResult>;
46
+ setRateCap(input: {
47
+ groupId?: unknown;
48
+ rateHz?: unknown;
49
+ }): Promise<GroupResult>;
42
50
  groupProposals(groupId?: string): ProposalInfo[];
43
51
  approveProposal(input: {
44
52
  groupId?: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../src/groups/control.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EACV,SAAS,EAET,cAAc,EACd,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,IAAI,SAAS,EAAE,CAAC;IACtB,WAAW,CAAC,KAAK,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7D,YAAY,CAAC,KAAK,EAAE;QAClB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B,GAAG,WAAW,CAAC;IAChB,SAAS,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5E,aAAa,IAAI,cAAc,EAAE,CAAC;IAClC,aAAa,CAAC,KAAK,EAAE;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACzB,YAAY,CAAC,KAAK,EAAE;QAClB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACzB,aAAa,CAAC,KAAK,EAAE;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACzB,UAAU,CAAC,KAAK,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/D,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;IACjD,eAAe,CAAC,KAAK,EAAE;QACrB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACzB,YAAY,CAAC,KAAK,EAAE;QAClB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CAC1B;AAsCD,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,YAAY,GAAG,SAAS,GACzC,YAAY,CAwId"}
1
+ {"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../src/groups/control.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EACV,SAAS,EAET,cAAc,EACd,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,IAAI,SAAS,EAAE,CAAC;IACtB,WAAW,CAAC,KAAK,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7D,YAAY,CAAC,KAAK,EAAE;QAClB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B,GAAG,WAAW,CAAC;IAChB,SAAS,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5E,aAAa,IAAI,cAAc,EAAE,CAAC;IAClC,aAAa,CAAC,KAAK,EAAE;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACzB,YAAY,CAAC,KAAK,EAAE;QAClB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACzB,aAAa,CAAC,KAAK,EAAE;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACzB,UAAU,CAAC,KAAK,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/D,OAAO,CAAC,KAAK,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9E,UAAU,CAAC,KAAK,EAAE;QAChB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACzB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;IACjD,eAAe,CAAC,KAAK,EAAE;QACrB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACzB,YAAY,CAAC,KAAK,EAAE;QAClB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CAC1B;AA6CD,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,YAAY,GAAG,SAAS,GACzC,YAAY,CAsKd"}
@@ -22,6 +22,12 @@ function roleField(value) {
22
22
  }
23
23
  return value;
24
24
  }
25
+ function rateField(value) {
26
+ if (typeof value !== "number" || !Number.isFinite(value)) {
27
+ throw new Error("rateHz must be a number");
28
+ }
29
+ return value;
30
+ }
25
31
  function numberField(value) {
26
32
  if (value === undefined)
27
33
  return undefined;
@@ -146,6 +152,30 @@ export function createGroupControl(getManager) {
146
152
  return failure(error);
147
153
  }
148
154
  },
155
+ setRate: async (input) => {
156
+ try {
157
+ const groupId = stringField(input.groupId, "groupId");
158
+ return {
159
+ ok: true,
160
+ group: await requireManager().setPublishRate(groupId, rateField(input.rateHz)),
161
+ };
162
+ }
163
+ catch (error) {
164
+ return failure(error);
165
+ }
166
+ },
167
+ setRateCap: async (input) => {
168
+ try {
169
+ const groupId = stringField(input.groupId, "groupId");
170
+ return {
171
+ ok: true,
172
+ group: await requireManager().setRateCap(groupId, rateField(input.rateHz)),
173
+ };
174
+ }
175
+ catch (error) {
176
+ return failure(error);
177
+ }
178
+ },
149
179
  leaveGroup: async (input) => {
150
180
  try {
151
181
  const groupId = stringField(input.groupId, "groupId");
@@ -1 +1 @@
1
- {"version":3,"file":"control.js","sourceRoot":"","sources":["../../src/groups/control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"control.js","sourceRoot":"","sources":["../../src/groups/control.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,8 @@ export declare class GroupManager {
47
47
  removeMember(groupId: string, selfId: string): Promise<GroupInfo>;
48
48
  promoteMember(groupId: string, selfId: string, role: GroupRole): Promise<GroupInfo>;
49
49
  setAdminThreshold(groupId: string, threshold: number): Promise<GroupInfo>;
50
+ setRateCap(groupId: string, rateHz: number): Promise<GroupInfo>;
51
+ setPublishRate(groupId: string, rateHz: number): Promise<GroupInfo>;
50
52
  approveProposal(groupId: string, hash: string): Promise<GroupInfo>;
51
53
  exportProposal(groupId: string, hash: string): SignedRoster | undefined;
52
54
  exportRoster(groupId: string): SignedRoster;
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/groups/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/groups/manager.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { dirname, join } from "node:path";
4
4
  import { decodeEnvelope, encodeEnvelope } from "../data/envelope.js";
5
5
  import { LiveClient } from "../live/client.js";
6
6
  import { decryptRecord, deriveDataKey, encryptRecord, groupDataTopic, groupRosterTopic, openEpochKey, sealEpochKey, } from "./crypto.js";
7
- import { addApproval, approvalCount, proposalHash, signInvite, signJoinRequest, signRoster, verifyInvite, verifyJoinRequest, verifyRoster, } from "./types.js";
7
+ import { addApproval, approvalCount, proposalHash, signInvite, signJoinRequest, signRoster, verifyInvite, verifyJoinRequest, verifyRoster, DEFAULT_GROUP_RATE_CAP_HZ, clampGroupRate, groupPublishRate, groupRateCap, } from "./types.js";
8
8
  const ROLES = ["owner", "admin", "member", "viewer"];
9
9
  /**
10
10
  * Private group state and transport.
@@ -108,6 +108,7 @@ export class GroupManager {
108
108
  name: name.trim(),
109
109
  version: 1,
110
110
  epoch: 1,
111
+ rateCapHz: DEFAULT_GROUP_RATE_CAP_HZ,
111
112
  adminThreshold: 1,
112
113
  members: [this.selfMember("owner")],
113
114
  wrappedKeys: [this.wrap(epochKey, this.identity.boxPublicKey)],
@@ -304,6 +305,28 @@ export class GroupManager {
304
305
  await this.propose(state, candidate);
305
306
  return this.info(state);
306
307
  }
308
+ async setRateCap(groupId, rateHz) {
309
+ const state = this.requireGroup(groupId);
310
+ if (!this.isAdmin(state)) {
311
+ throw new Error("only an owner or admin can change the rate cap");
312
+ }
313
+ const candidate = structuredClone(state.roster);
314
+ candidate.rateCapHz = clampGroupRate(rateHz);
315
+ candidate.version += 1;
316
+ candidate.updatedAt = this.now();
317
+ await this.propose(state, candidate);
318
+ return this.info(state);
319
+ }
320
+ async setPublishRate(groupId, rateHz) {
321
+ const state = this.requireGroup(groupId);
322
+ if (!this.canPublish(groupId)) {
323
+ throw new Error("this member cannot publish to the group");
324
+ }
325
+ const cap = groupRateCap(state.roster);
326
+ state.publishRateHz = Math.min(clampGroupRate(rateHz), cap);
327
+ await this.save();
328
+ return this.info(state);
329
+ }
307
330
  async approveProposal(groupId, hash) {
308
331
  const state = this.requireGroup(groupId);
309
332
  if (!this.isAdmin(state)) {
@@ -430,6 +453,7 @@ export class GroupManager {
430
453
  state.dataTopic = groupDataTopic(epochKey).toString("hex");
431
454
  state.role = me.role;
432
455
  state.removed = false;
456
+ state.publishRateHz = Math.min(state.publishRateHz ?? groupRateCap(roster), groupRateCap(roster));
433
457
  await this.save();
434
458
  this.broadcastRoster({ roster, approvals });
435
459
  if (state.dataTopic !== previousTopic) {
@@ -636,6 +660,7 @@ export class GroupManager {
636
660
  dataTopic: groupDataTopic(epochKey).toString("hex"),
637
661
  rosterTopic: groupRosterTopic(Buffer.from(roster.groupId, "hex")).toString("hex"),
638
662
  role,
663
+ publishRateHz: groupRateCap(roster),
639
664
  };
640
665
  }
641
666
  info(state) {
@@ -647,6 +672,8 @@ export class GroupManager {
647
672
  members: state.roster.members.length,
648
673
  removed: Boolean(state.removed),
649
674
  pendingProposals: this.proposals.get(state.roster.groupId)?.size ?? 0,
675
+ rateCapHz: groupRateCap(state.roster),
676
+ publishRateHz: groupPublishRate(state),
650
677
  };
651
678
  }
652
679
  requireGroup(groupId) {