@aeolus-fleet/core 0.20.5 → 0.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/http/server.d.ts +2 -0
- package/dist/adapters/http/server.js +11 -0
- package/dist/adapters/http/server.js.map +1 -1
- package/dist/adapters/prisma/client.d.ts +2 -0
- package/dist/adapters/prisma/client.js +19 -1
- package/dist/adapters/prisma/client.js.map +1 -1
- package/dist/adapters/prisma/fleet-busy.d.ts +2 -0
- package/dist/adapters/prisma/fleet-busy.js +26 -0
- package/dist/adapters/prisma/fleet-busy.js.map +1 -0
- package/dist/adapters/prisma/generated/browser.d.ts +7 -0
- package/dist/adapters/prisma/generated/client.d.ts +7 -0
- package/dist/adapters/prisma/generated/internal/class.d.ts +11 -0
- package/dist/adapters/prisma/generated/internal/class.js +4 -4
- package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
- package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +83 -1
- package/dist/adapters/prisma/generated/internal/prismaNamespace.js +6 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +7 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +6 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
- package/dist/adapters/prisma/generated/models/DeclaredNetworkRules.d.ts +1195 -0
- package/dist/adapters/prisma/generated/models/DeclaredNetworkRules.js +2 -0
- package/dist/adapters/prisma/generated/models/DeclaredNetworkRules.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Fleet.d.ts +259 -0
- package/dist/adapters/prisma/generated/models/Ship.d.ts +263 -0
- package/dist/adapters/prisma/generated/models.d.ts +1 -0
- package/dist/adapters/prisma/migrate.js +17 -4
- package/dist/adapters/prisma/migrate.js.map +1 -1
- package/dist/adapters/prisma/network.d.ts +3 -1
- package/dist/adapters/prisma/network.js +23 -0
- package/dist/adapters/prisma/network.js.map +1 -1
- package/dist/adapters/prisma/registry.js +2 -0
- package/dist/adapters/prisma/registry.js.map +1 -1
- package/dist/adapters/prisma/unit-of-work.d.ts +2 -1
- package/dist/adapters/prisma/unit-of-work.js +2 -1
- package/dist/adapters/prisma/unit-of-work.js.map +1 -1
- package/dist/adapters/trpc/console.d.ts +2 -1
- package/dist/adapters/trpc/console.js +6 -2
- package/dist/adapters/trpc/console.js.map +1 -1
- package/dist/adapters/trpc/context.d.ts +9 -1
- package/dist/adapters/trpc/fleet.d.ts +46 -3
- package/dist/adapters/trpc/fleet.js +34 -6
- package/dist/adapters/trpc/fleet.js.map +1 -1
- package/dist/adapters/trpc/router.d.ts +52 -3
- package/dist/adapters/trpc/ship-contract.js +2 -0
- package/dist/adapters/trpc/ship-contract.js.map +1 -1
- package/dist/adapters/trpc/ship-protocol.js +2 -2
- package/dist/adapters/trpc/ship-protocol.js.map +1 -1
- package/dist/adapters/trpc/system.d.ts +15 -0
- package/dist/adapters/trpc/system.js +10 -1
- package/dist/adapters/trpc/system.js.map +1 -1
- package/dist/adapters/trpc/trpc.d.ts +11 -0
- package/dist/adapters/trpc/trpc.js +26 -10
- package/dist/adapters/trpc/trpc.js.map +1 -1
- package/dist/app.js +2 -1
- package/dist/app.js.map +1 -1
- package/dist/domain/registry/check-reach.d.ts +15 -0
- package/dist/domain/registry/check-reach.js +4 -4
- package/dist/domain/registry/check-reach.js.map +1 -1
- package/dist/domain/registry/declare-network-rules.d.ts +33 -0
- package/dist/domain/registry/declare-network-rules.js +30 -0
- package/dist/domain/registry/declare-network-rules.js.map +1 -0
- package/dist/domain/registry/declared-network-rules.d.ts +60 -0
- package/dist/domain/registry/declared-network-rules.js +70 -0
- package/dist/domain/registry/declared-network-rules.js.map +1 -0
- package/dist/domain/registry/explain-reach.d.ts +34 -0
- package/dist/domain/registry/explain-reach.js +42 -0
- package/dist/domain/registry/explain-reach.js.map +1 -0
- package/dist/domain/registry/label.d.ts +8 -10
- package/dist/domain/registry/label.js +4 -16
- package/dist/domain/registry/label.js.map +1 -1
- package/dist/domain/registry/network-settings.d.ts +26 -13
- package/dist/domain/registry/network-settings.js +68 -31
- package/dist/domain/registry/network-settings.js.map +1 -1
- package/dist/domain/registry/ports.d.ts +12 -0
- package/dist/domain/registry/read-assigned-crew-requests.d.ts +2 -2
- package/dist/domain/registry/read-assigned-crew-requests.js +2 -1
- package/dist/domain/registry/read-assigned-crew-requests.js.map +1 -1
- package/dist/domain/registry/read-declared-network-rules.d.ts +16 -0
- package/dist/domain/registry/read-declared-network-rules.js +9 -0
- package/dist/domain/registry/read-declared-network-rules.js.map +1 -0
- package/dist/domain/registry/retire-ship.d.ts +4 -2
- package/dist/domain/registry/retire-ship.js +10 -1
- package/dist/domain/registry/retire-ship.js.map +1 -1
- package/dist/domain/registry/set-network-rules.d.ts +4 -2
- package/dist/domain/registry/set-network-rules.js +4 -2
- package/dist/domain/registry/set-network-rules.js.map +1 -1
- package/dist/domain/registry/unassign-label.js +1 -1
- package/dist/domain/registry/unassign-label.js.map +1 -1
- package/dist/domain/shared/errors.d.ts +1 -1
- package/dist/domain/shared/errors.js.map +1 -1
- package/dist/wiring.d.ts +6 -0
- package/dist/wiring.js +7 -1
- package/dist/wiring.js.map +1 -1
- package/package.json +3 -2
- package/src/adapters/prisma/migrations/20261010110000_network_rules_through_plugin/migration.sql +4 -0
- package/src/adapters/prisma/migrations/20261010130000_cleared_network_rules_on_record/migration.sql +57 -0
- package/src/adapters/prisma/migrations/20261010210000_declared_network_rules/migration.sql +16 -0
- package/src/adapters/prisma/schema.prisma +17 -0
package/src/adapters/prisma/migrations/20261010110000_network_rules_through_plugin/migration.sql
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
-- Rules exist only through a registered networking plugin (decision 0035):
|
|
2
|
+
-- rules argo set before then go, all-to-all. The version stays, as it names
|
|
3
|
+
-- the settings past refusals were checked against.
|
|
4
|
+
UPDATE "network_settings" SET "rules" = NULL WHERE "plugin_ship_id" IS NULL;
|
package/src/adapters/prisma/migrations/20261010130000_cleared_network_rules_on_record/migration.sql
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
-- Every state change writes its event: the rules the migration before this
|
|
2
|
+
-- one cleared get theirs. A fleet it cleared has no plugin and no rules, yet
|
|
3
|
+
-- the change at its current version is a NetworkRulesSet that gave rules.
|
|
4
|
+
-- Each such fleet moves to the next version with NetworkRulesSet for none,
|
|
5
|
+
-- by the system, taking the next number of the fleet's stream. Its id is an
|
|
6
|
+
-- evt_ id as common/src/ids makes them: the time in milliseconds, then 80
|
|
7
|
+
-- random bits, in lowercase Crockford base32.
|
|
8
|
+
DO $$
|
|
9
|
+
DECLARE
|
|
10
|
+
alphabet CONSTANT text := '0123456789abcdefghjkmnpqrstvwxyz';
|
|
11
|
+
cleared record;
|
|
12
|
+
at timestamptz;
|
|
13
|
+
millis bigint;
|
|
14
|
+
body text;
|
|
15
|
+
next_version integer;
|
|
16
|
+
next_seq bigint;
|
|
17
|
+
BEGIN
|
|
18
|
+
FOR cleared IN
|
|
19
|
+
SELECT settings."fleet_id", settings."version"
|
|
20
|
+
FROM "network_settings" settings
|
|
21
|
+
WHERE settings."plugin_ship_id" IS NULL
|
|
22
|
+
AND settings."rules" IS NULL
|
|
23
|
+
AND EXISTS (
|
|
24
|
+
SELECT 1 FROM "events" event
|
|
25
|
+
WHERE event."fleet_id" = settings."fleet_id"
|
|
26
|
+
AND event."type" = 'NetworkRulesSet'
|
|
27
|
+
AND event."details" -> 'version' = to_jsonb(settings."version")
|
|
28
|
+
AND event."details" -> 'rules' <> 'null'::jsonb
|
|
29
|
+
)
|
|
30
|
+
ORDER BY settings."fleet_id"
|
|
31
|
+
LOOP
|
|
32
|
+
at := clock_timestamp();
|
|
33
|
+
millis := floor(extract(epoch FROM at) * 1000)::bigint;
|
|
34
|
+
body := '';
|
|
35
|
+
FOR position IN REVERSE 9..0 LOOP
|
|
36
|
+
body := body || substr(alphabet, ((millis >> (position * 5)) & 31)::integer + 1, 1);
|
|
37
|
+
END LOOP;
|
|
38
|
+
FOR position IN 1..16 LOOP
|
|
39
|
+
body := body || substr(alphabet, floor(random() * 32)::integer + 1, 1);
|
|
40
|
+
END LOOP;
|
|
41
|
+
|
|
42
|
+
next_version := cleared."version" + 1;
|
|
43
|
+
UPDATE "network_settings" SET "version" = next_version WHERE "fleet_id" = cleared."fleet_id";
|
|
44
|
+
UPDATE "fleets" SET "last_event_seq" = "last_event_seq" + 1 WHERE "id" = cleared."fleet_id"
|
|
45
|
+
RETURNING "last_event_seq" INTO next_seq;
|
|
46
|
+
INSERT INTO "events" ("id", "fleet_id", "type", "occurred_at", "details", "seq")
|
|
47
|
+
VALUES (
|
|
48
|
+
'evt_' || body,
|
|
49
|
+
cleared."fleet_id",
|
|
50
|
+
'NetworkRulesSet',
|
|
51
|
+
at,
|
|
52
|
+
jsonb_build_object('version', next_version, 'rules', NULL),
|
|
53
|
+
next_seq
|
|
54
|
+
);
|
|
55
|
+
END LOOP;
|
|
56
|
+
END;
|
|
57
|
+
$$;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
-- The network rules each ship declared on the labels it owns (decision 0037):
|
|
2
|
+
-- one row per declaring ship, none while it declares none.
|
|
3
|
+
-- CreateTable
|
|
4
|
+
CREATE TABLE "declared_network_rules" (
|
|
5
|
+
"fleet_id" TEXT NOT NULL,
|
|
6
|
+
"ship_id" TEXT NOT NULL,
|
|
7
|
+
"rules" JSONB NOT NULL,
|
|
8
|
+
|
|
9
|
+
CONSTRAINT "declared_network_rules_pkey" PRIMARY KEY ("fleet_id","ship_id")
|
|
10
|
+
);
|
|
11
|
+
|
|
12
|
+
-- AddForeignKey
|
|
13
|
+
ALTER TABLE "declared_network_rules" ADD CONSTRAINT "declared_network_rules_fleet_id_fkey" FOREIGN KEY ("fleet_id") REFERENCES "fleets"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
14
|
+
|
|
15
|
+
-- AddForeignKey
|
|
16
|
+
ALTER TABLE "declared_network_rules" ADD CONSTRAINT "declared_network_rules_fleet_id_ship_id_fkey" FOREIGN KEY ("fleet_id", "ship_id") REFERENCES "ships"("fleet_id", "id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
@@ -52,6 +52,7 @@ model Fleet {
|
|
|
52
52
|
labelValues LabelValue[]
|
|
53
53
|
shipLabels ShipLabel[]
|
|
54
54
|
networkSettings NetworkSettings?
|
|
55
|
+
declaredNetworkRules DeclaredNetworkRules[]
|
|
55
56
|
reachRefusals ReachRefusal[]
|
|
56
57
|
credentials Credential[]
|
|
57
58
|
messages Message[]
|
|
@@ -110,6 +111,7 @@ model Ship {
|
|
|
110
111
|
requestedClears WorktreeClearRequest[] @relation("WorktreeClearRequestRequester")
|
|
111
112
|
ownedLabels Label[] @relation("LabelOwner")
|
|
112
113
|
labels ShipLabel[] @relation("ShipLabelShip")
|
|
114
|
+
declaredNetworkRules DeclaredNetworkRules[]
|
|
113
115
|
|
|
114
116
|
@@unique([fleetId, id])
|
|
115
117
|
/// An idempotency key is used once per commissioning ship.
|
|
@@ -344,6 +346,21 @@ model NetworkSettings {
|
|
|
344
346
|
@@map("network_settings")
|
|
345
347
|
}
|
|
346
348
|
|
|
349
|
+
/// The network rules a ship declared on the labels it owns (decision 0037),
|
|
350
|
+
/// its whole list as JSON, at most 20. No row while it declares none; a retire
|
|
351
|
+
/// removes its row.
|
|
352
|
+
model DeclaredNetworkRules {
|
|
353
|
+
fleetId String @map("fleet_id")
|
|
354
|
+
shipId String @map("ship_id")
|
|
355
|
+
rules Json
|
|
356
|
+
|
|
357
|
+
fleet Fleet @relation(fields: [fleetId], references: [id])
|
|
358
|
+
ship Ship @relation(fields: [fleetId, shipId], references: [fleetId, id])
|
|
359
|
+
|
|
360
|
+
@@id([fleetId, shipId])
|
|
361
|
+
@@map("declared_network_rules")
|
|
362
|
+
}
|
|
363
|
+
|
|
347
364
|
/// A send the network rules refused (decision 0034), recorded in the
|
|
348
365
|
/// transaction that refused it. Ids start with rfs_. Sender and recipient are
|
|
349
366
|
/// as they were then: ids, names and the label values they carried, as JSON,
|