@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
|
@@ -16,6 +16,8 @@ export interface HttpServerOptions {
|
|
|
16
16
|
fleetEvents?: FleetEventWatches;
|
|
17
17
|
/** Throws when the database is unreachable. */
|
|
18
18
|
checkDatabase: () => Promise<void>;
|
|
19
|
+
/** The latest migration applied to the database; null before the first. Throws when unreachable. */
|
|
20
|
+
latestMigration: () => Promise<string | null>;
|
|
19
21
|
clock: Clock;
|
|
20
22
|
logger: FastifyServerOptions['logger'];
|
|
21
23
|
/** Trust X-Forwarded-For from a reverse proxy in front of the server, for the client address. */
|
|
@@ -110,6 +110,16 @@ export function buildHttpServer(options) {
|
|
|
110
110
|
// its migrations, configuration or fleets.
|
|
111
111
|
const versions = runningVersions();
|
|
112
112
|
server.get('/api/version', () => versions);
|
|
113
|
+
/** The versions this process runs and the database's latest migration, for `system.version`; no migration when the database does not say. */
|
|
114
|
+
const readVersion = async (log) => {
|
|
115
|
+
try {
|
|
116
|
+
return { ...versions, migration: await options.latestMigration() };
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
log.error(failureForLog(error), 'latest migration unknown');
|
|
120
|
+
return { ...versions, migration: null };
|
|
121
|
+
}
|
|
122
|
+
};
|
|
113
123
|
// Server up and database reachable. Nothing about fleets.
|
|
114
124
|
server.get('/health', async (_request, reply) => {
|
|
115
125
|
try {
|
|
@@ -127,6 +137,7 @@ export function buildHttpServer(options) {
|
|
|
127
137
|
fleetUrl: options.fleetUrl,
|
|
128
138
|
installation: { configured: options.installationToken, presented: headerValue(request.headers[INSTALLATION_TOKEN_HEADER]) },
|
|
129
139
|
log: request.log,
|
|
140
|
+
readVersion: () => readVersion(request.log),
|
|
130
141
|
fleetEvents,
|
|
131
142
|
...caller,
|
|
132
143
|
userAgent: request.headers['user-agent'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/adapters/http/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAiC,MAAM,+BAA+B,CAAC;AACjG,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,OAAO,EAAE,EAA2F,MAAM,SAAS,CAAC;AAG3H,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAkB,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAkB,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC7G,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,oEAAoE;AACpE,SAAS,WAAW,CAAC,KAAoC;IACvD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,kDAAkD;AAClD,MAAM,CAAC,MAAM,0BAA0B,GAAc,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAErF,wGAAwG;AACxG,MAAM,CAAC,MAAM,2BAA2B,GAAc,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/adapters/http/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAiC,MAAM,+BAA+B,CAAC;AACjG,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,OAAO,EAAE,EAA2F,MAAM,SAAS,CAAC;AAG3H,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAkB,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAkB,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC7G,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,oEAAoE;AACpE,SAAS,WAAW,CAAC,KAAoC;IACvD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,kDAAkD;AAClD,MAAM,CAAC,MAAM,0BAA0B,GAAc,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAErF,wGAAwG;AACxG,MAAM,CAAC,MAAM,2BAA2B,GAAc,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAkCtF;;;GAGG;AACH,MAAM,gBAAgB,GAAoF;IACxG,6BAA6B,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,oCAAoC,EAAE;IACtH,2BAA2B,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,oCAAoC,EAAE;IACpH,0BAA0B,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,gCAAgC,EAAE;IACrH,8BAA8B,EAAE;QAC9B,UAAU,EAAE,GAAG;QACf,IAAI,EAAE,wBAAwB;QAC9B,OAAO,EAAE,+BAA+B;KACzC;CACF,CAAC;AAEF,6CAA6C;AAC7C,MAAM,kBAAkB,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC;AAE3G;;;;GAIG;AACH,MAAM,UAAU,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAE1D,mFAAmF;AACnF,MAAM,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAAC;AAErC,yEAAyE;AACzE,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC;;;GAGG;AACH,MAAM,iBAAiB,GAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;AAE1F;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,OAA0B;IACxD,MAAM,MAAM,GAAG,OAAO,CAAC;QACrB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;QAC/B,UAAU,EAAE,OAAO,CAAC,gBAAgB,IAAI,KAAK;QAC7C,uEAAuE;QACvE,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;QAC5B,6DAA6D;QAC7D,aAAa,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;QACvC,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IAEH,2EAA2E;IAC3E,kEAAkE;IAClE,kHAAkH;IAClH,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,KAAmB,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACnE,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC;QAC3E,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC7F,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/F,CAAC;QACD,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACtF,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAClD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC,CACvF,CAAC;IAEF,MAAM,aAAa,GAAG,iBAAiB,CAAC,OAAO,CAAC,eAAe,IAAI,0BAA0B,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9G,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,OAAO,CAAC,iBAAiB,IAAI,2BAA2B,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACpH,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAChD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,uBAAuB,EAAE,CAAC;IAErE,4EAA4E;IAC5E,2EAA2E;IAC3E,6EAA6E;IAC7E,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACnD,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YAC7C,OAAO;QACT,CAAC;QACD,KAAK,KAAK,CAAC,MAAM,CAAC,6BAA6B,EAAE,aAAa,CAAC,CAAC;QAChE,KAAK,KAAK,CAAC,MAAM,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAC;QAC9D,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,KAAK;iBACR,IAAI,CAAC,GAAG,CAAC;iBACT,MAAM,CAAC,8BAA8B,EAAE,WAAW,CAAC;iBACnD,MAAM,CAAC,8BAA8B,EAAE,cAAc,CAAC;iBACtD,MAAM,CAAC,wBAAwB,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC;iBAC7D,IAAI,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,gEAAgE;IAChE,yEAAyE;IACzE,2CAA2C;IAC3C,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IACnC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;IAE3C,6IAA6I;IAC7I,MAAM,WAAW,GAAG,KAAK,EAAE,GAAyC,EAAE,EAAE;QACtE,IAAI,CAAC;YACH,OAAO,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;QACrE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,0BAA0B,CAAC,CAAC;YAC5D,OAAO,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC;IAEF,0DAA0D;IAC1D,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;QAC9C,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;YAC9B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAC,CAAC;YAC9D,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,mGAAmG;IACnG,MAAM,UAAU,GAAG,CACjB,OAA8D,EAC9D,MAAwG,EAC/F,EAAE,CAAC,CAAC;QACb,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,YAAY,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,iBAAiB,EAAE,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,EAAE;QAC3H,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC;QAC3C,WAAW;QACX,GAAG,MAAM;QACT,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;QACxC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;QAC9B,aAAa;QACb,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,iBAAiB,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;QAC/D,aAAa,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC;QAC9D,gBAAgB;KACjB,CAAC,CAAC;IAEH,MAAM,IAAI,GAAwC;QAChD,MAAM,EAAE,OAAO;QACf,WAAW,EAAE;YACX,MAAM,EAAE,SAAS;YACjB,aAAa,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAW,EAAE,CACvC,UAAU,CAAC,GAAG,EAAE;gBACd,WAAW,EAAE;oBACX,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;oBAC7C,YAAY,EAAE,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;iBACnD;gBACD,oBAAoB,EAAE,IAAI;gBAC1B,aAAa,EAAE;oBACb,GAAG,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;wBACxB,KAAK,GAAG,CAAC,MAAM,CACb,YAAY,EACZ,aAAa,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CACpF,CAAC;oBACJ,CAAC;oBACD,KAAK,EAAE,GAAG,EAAE;wBACV,KAAK,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,oBAAoB,CAAC,YAAY,CAAC,CAAC,CAAC;oBACpE,CAAC;iBACF;aACF,CAAC;YACJ,sEAAsE;YACtE,sEAAsE;YACtE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE;gBAChC,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;oBAC3C,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;gBACjG,CAAC;YACH,CAAC;SACF;KACF,CAAC;IACF,KAAK,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;IAE9C,0EAA0E;IAC1E,yEAAyE;IACzE,sEAAsE;IACtE,kDAAkD;IAClD,KAAK,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACnC,MAAM,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QACvC,MAAM,YAAY,GAAG,sBAAsB,CAAY;YACrD,MAAM,EAAE,SAAS;YACjB,GAAG,EAAE,KAAK,CAAC,eAAe;YAC1B,aAAa,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CACzB,UAAU,CACR;gBACE,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE;gBAClC,EAAE,EAAE,UAAU,EAAE;gBAChB,GAAG,EAAE,MAAM,CAAC,GAAG;aAChB,EACD;gBACE,WAAW,EAAE,EAAE,YAAY,EAAE,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACnE,oBAAoB,EAAE,IAAI;gBAC1B,aAAa,EAAE,iBAAiB;aACjC,CACF;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE;gBAChC,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;oBAC3C,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,qBAAqB,CAAC,CAAC;gBACpG,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QACH,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;YAC1D,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,iGAAiG;IACjG,MAAM,QAAQ,GAAG;QACf,UAAU,EAAE,CAAC,OAAuB,EAAE,WAA+B,EAAE,EAAE,CACvE,UAAU,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,oBAAoB,EAAE,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAC;KACtG,CAAC;IACF,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAClC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEtC,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -6,3 +6,5 @@ export type Db = PrismaClient | Prisma.TransactionClient;
|
|
|
6
6
|
export declare function createPrismaClient(databaseUrl: string): PrismaClient;
|
|
7
7
|
/** Throws when the database cannot answer a trivial query. */
|
|
8
8
|
export declare function checkDatabase(prisma: PrismaClient): Promise<void>;
|
|
9
|
+
/** The latest migration applied to the database, by name; null before the first. */
|
|
10
|
+
export declare function latestMigration(db: PrismaClient): Promise<string | null>;
|
|
@@ -1,11 +1,29 @@
|
|
|
1
1
|
import { PrismaPg } from '@prisma/adapter-pg';
|
|
2
2
|
import { PrismaClient } from './generated/client.js';
|
|
3
|
+
/**
|
|
4
|
+
* How long a call waits for a connection from the pool, in a transaction or
|
|
5
|
+
* outside one (such as the crew-token lookup), before it is refused as busy
|
|
6
|
+
* (fleet-busy.ts). The pool keeps pg's default size.
|
|
7
|
+
*/
|
|
8
|
+
const CONNECTION_WAIT_MS = 10_000;
|
|
3
9
|
/** Creates a Prisma client on a pg connection pool for the given database. */
|
|
4
10
|
export function createPrismaClient(databaseUrl) {
|
|
5
|
-
return new PrismaClient({
|
|
11
|
+
return new PrismaClient({
|
|
12
|
+
adapter: new PrismaPg({ connectionString: databaseUrl, connectionTimeoutMillis: CONNECTION_WAIT_MS }),
|
|
13
|
+
transactionOptions: { maxWait: CONNECTION_WAIT_MS },
|
|
14
|
+
});
|
|
6
15
|
}
|
|
7
16
|
/** Throws when the database cannot answer a trivial query. */
|
|
8
17
|
export async function checkDatabase(prisma) {
|
|
9
18
|
await prisma.$queryRaw `SELECT 1`;
|
|
10
19
|
}
|
|
20
|
+
/** The latest migration applied to the database, by name; null before the first. */
|
|
21
|
+
export async function latestMigration(db) {
|
|
22
|
+
const [row] = await db.$queryRaw `
|
|
23
|
+
SELECT migration_name FROM _prisma_migrations
|
|
24
|
+
WHERE finished_at IS NOT NULL AND rolled_back_at IS NULL
|
|
25
|
+
ORDER BY migration_name DESC
|
|
26
|
+
LIMIT 1`;
|
|
27
|
+
return row?.migration_name ?? null;
|
|
28
|
+
}
|
|
11
29
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/adapters/prisma/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAe,MAAM,uBAAuB,CAAC;AAOlE,8EAA8E;AAC9E,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IACpD,OAAO,IAAI,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/adapters/prisma/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAe,MAAM,uBAAuB,CAAC;AAOlE;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC,8EAA8E;AAC9E,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IACpD,OAAO,IAAI,YAAY,CAAC;QACtB,OAAO,EAAE,IAAI,QAAQ,CAAC,EAAE,gBAAgB,EAAE,WAAW,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,CAAC;QACrG,kBAAkB,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE;KACpD,CAAC,CAAC;AACL,CAAC;AAED,8DAA8D;AAC9D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAoB;IACtD,MAAM,MAAM,CAAC,SAAS,CAAA,UAAU,CAAC;AACnC,CAAC;AAED,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EAAgB;IACpD,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,SAAS,CAA8B;;;;YAIpD,CAAC;IACX,OAAO,GAAG,EAAE,cAAc,IAAI,IAAI,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A call that found no free connection in the pool within its wait never
|
|
3
|
+
* started its work, so it stored nothing and the same call can simply be made
|
|
4
|
+
* again. A transaction says so through Prisma as P2028, as an expired
|
|
5
|
+
* transaction does, so the message tells the two apart. A query outside a
|
|
6
|
+
* transaction, such as the crew-token lookup, gets the pg pool's own error,
|
|
7
|
+
* which Prisma passes on as it is.
|
|
8
|
+
*/
|
|
9
|
+
import { Prisma } from './generated/client.js';
|
|
10
|
+
/** Prisma's code for a transaction API error. */
|
|
11
|
+
const TRANSACTION_API_ERROR = 'P2028';
|
|
12
|
+
/** What Prisma says when a transaction could not start within its wait. */
|
|
13
|
+
const NO_CONNECTION_IN_TIME = 'Unable to start a transaction in the given time';
|
|
14
|
+
/** What the pg pool says when no connection came free within its wait. */
|
|
15
|
+
const POOL_WAIT_EXCEEDED = 'timeout exceeded when trying to connect';
|
|
16
|
+
/** True when the failure, or any of its causes, is a call that never got a connection. */
|
|
17
|
+
export function isFleetBusy(error) {
|
|
18
|
+
if (error instanceof Prisma.PrismaClientKnownRequestError) {
|
|
19
|
+
return error.code === TRANSACTION_API_ERROR && error.message.includes(NO_CONNECTION_IN_TIME);
|
|
20
|
+
}
|
|
21
|
+
if (!(error instanceof Error)) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
return error.message === POOL_WAIT_EXCEEDED || (error.cause !== undefined && isFleetBusy(error.cause));
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=fleet-busy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fleet-busy.js","sourceRoot":"","sources":["../../../src/adapters/prisma/fleet-busy.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,iDAAiD;AACjD,MAAM,qBAAqB,GAAG,OAAO,CAAC;AACtC,2EAA2E;AAC3E,MAAM,qBAAqB,GAAG,iDAAiD,CAAC;AAChF,0EAA0E;AAC1E,MAAM,kBAAkB,GAAG,yCAAyC,CAAC;AAErE,0FAA0F;AAC1F,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,KAAK,YAAY,MAAM,CAAC,6BAA6B,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC,IAAI,KAAK,qBAAqB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IAC/F,CAAC;IACD,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,KAAK,kBAAkB,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACzG,CAAC"}
|
|
@@ -66,6 +66,13 @@ export type ShipLabel = Prisma.ShipLabelModel;
|
|
|
66
66
|
* set take turns on an advisory lock on them (network.ts).
|
|
67
67
|
*/
|
|
68
68
|
export type NetworkSettings = Prisma.NetworkSettingsModel;
|
|
69
|
+
/**
|
|
70
|
+
* Model DeclaredNetworkRules
|
|
71
|
+
* The network rules a ship declared on the labels it owns (decision 0037),
|
|
72
|
+
* its whole list as JSON, at most 20. No row while it declares none; a retire
|
|
73
|
+
* removes its row.
|
|
74
|
+
*/
|
|
75
|
+
export type DeclaredNetworkRules = Prisma.DeclaredNetworkRulesModel;
|
|
69
76
|
/**
|
|
70
77
|
* Model ReachRefusal
|
|
71
78
|
* A send the network rules refused (decision 0034), recorded in the
|
|
@@ -85,6 +85,13 @@ export type ShipLabel = Prisma.ShipLabelModel;
|
|
|
85
85
|
* set take turns on an advisory lock on them (network.ts).
|
|
86
86
|
*/
|
|
87
87
|
export type NetworkSettings = Prisma.NetworkSettingsModel;
|
|
88
|
+
/**
|
|
89
|
+
* Model DeclaredNetworkRules
|
|
90
|
+
* The network rules a ship declared on the labels it owns (decision 0037),
|
|
91
|
+
* its whole list as JSON, at most 20. No row while it declares none; a retire
|
|
92
|
+
* removes its row.
|
|
93
|
+
*/
|
|
94
|
+
export type DeclaredNetworkRules = Prisma.DeclaredNetworkRulesModel;
|
|
88
95
|
/**
|
|
89
96
|
* Model ReachRefusal
|
|
90
97
|
* A send the network rules refused (decision 0034), recorded in the
|
|
@@ -227,6 +227,17 @@ export interface PrismaClient<in LogOpts extends Prisma.LogLevel = never, in out
|
|
|
227
227
|
get networkSettings(): Prisma.NetworkSettingsDelegate<ExtArgs, {
|
|
228
228
|
omit: OmitOpts;
|
|
229
229
|
}>;
|
|
230
|
+
/**
|
|
231
|
+
* `prisma.declaredNetworkRules`: Exposes CRUD operations for the **DeclaredNetworkRules** model.
|
|
232
|
+
* Example usage:
|
|
233
|
+
* ```ts
|
|
234
|
+
* // Fetch zero or more DeclaredNetworkRules
|
|
235
|
+
* const declaredNetworkRules = await prisma.declaredNetworkRules.findMany()
|
|
236
|
+
* ```
|
|
237
|
+
*/
|
|
238
|
+
get declaredNetworkRules(): Prisma.DeclaredNetworkRulesDelegate<ExtArgs, {
|
|
239
|
+
omit: OmitOpts;
|
|
240
|
+
}>;
|
|
230
241
|
/**
|
|
231
242
|
* `prisma.reachRefusal`: Exposes CRUD operations for the **ReachRefusal** model.
|
|
232
243
|
* Example usage:
|