@cat-factory/node-server 0.216.0 → 0.218.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/container-core-deps.d.ts.map +1 -1
- package/dist/container-core-deps.js +4 -0
- package/dist/container-core-deps.js.map +1 -1
- package/dist/db/schema.d.ts +1 -681
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +5 -87
- package/dist/db/schema.js.map +1 -1
- package/dist/db/tables/environments.d.ts +712 -0
- package/dist/db/tables/environments.d.ts.map +1 -0
- package/dist/db/tables/environments.js +103 -0
- package/dist/db/tables/environments.js.map +1 -0
- package/dist/repositories/environments.d.ts.map +1 -1
- package/dist/repositories/environments.js +6 -0
- package/dist/repositories/environments.js.map +1 -1
- package/dist/routeProbe.d.ts +11 -0
- package/dist/routeProbe.d.ts.map +1 -0
- package/dist/routeProbe.js +66 -0
- package/dist/routeProbe.js.map +1 -0
- package/drizzle/20260901201021_faulty_meteorite/migration.sql +1 -0
- package/drizzle/20260901201021_faulty_meteorite/snapshot.json +22255 -0
- package/drizzle/20260901202345_married_bromley/migration.sql +1 -0
- package/drizzle/20260901202345_married_bromley/snapshot.json +22267 -0
- package/package.json +21 -21
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environments.d.ts","sourceRoot":"","sources":["../../../src/db/tables/environments.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBlC,CAAA;AAKD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyCxB,CAAA;AAMD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwB/B,CAAA"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { sql } from 'drizzle-orm';
|
|
2
|
+
import { bigint, index, pgTable, primaryKey, text } from 'drizzle-orm/pg-core';
|
|
3
|
+
// The EPHEMERAL-ENVIRONMENT tables, extracted from `schema.ts` to keep that module inside its
|
|
4
|
+
// size budget: the per-provision-type infra handlers a workspace binds, the registry of
|
|
5
|
+
// environments provisioned through them, and the developer-triggered self-test runs that
|
|
6
|
+
// exercise one frame's provisioning config end to end. One cohesive group, re-exported from
|
|
7
|
+
// `schema.ts` so every `from '../db/schema.js'` importer is unaffected and drizzle-kit still sees
|
|
8
|
+
// the tables through that entry point.
|
|
9
|
+
// Ephemeral-environment integration (mirror of D1 migration 0025). A workspace's per-
|
|
10
|
+
// provision-type infra HANDLERS (how a service's declared provision type is stood up) and
|
|
11
|
+
// the registry of environments provisioned from them. Keyed by (workspace_id,
|
|
12
|
+
// provision_type, manifest_id): one handler per type, plus one per pinned custom manifest
|
|
13
|
+
// id ('' for non-custom). `handler_json` carries the engine connection (sans secrets); the
|
|
14
|
+
// manifests to apply come from the service at provision time. Credentials are opaque
|
|
15
|
+
// ciphertext (SecretCipher envelopes), never plaintext. See
|
|
16
|
+
// docs/initiatives/per-service-provision-types.md.
|
|
17
|
+
export const environmentConnections = pgTable('environment_connections', {
|
|
18
|
+
workspace_id: text('workspace_id').notNull(),
|
|
19
|
+
provision_type: text('provision_type').notNull(),
|
|
20
|
+
manifest_id: text('manifest_id').notNull().default(''),
|
|
21
|
+
engine: text('engine').notNull(),
|
|
22
|
+
backend_kind: text('backend_kind').notNull(),
|
|
23
|
+
provider_id: text('provider_id').notNull(),
|
|
24
|
+
label: text('label').notNull(),
|
|
25
|
+
base_url: text('base_url').notNull(),
|
|
26
|
+
handler_json: text('handler_json').notNull(),
|
|
27
|
+
accepts_manifest_id: text('accepts_manifest_id'),
|
|
28
|
+
secrets_cipher: text('secrets_cipher').notNull(),
|
|
29
|
+
created_at: bigint('created_at', { mode: 'number' }).notNull(),
|
|
30
|
+
deleted_at: bigint('deleted_at', { mode: 'number' }),
|
|
31
|
+
}, (t) => [
|
|
32
|
+
primaryKey({ columns: [t.workspace_id, t.provision_type, t.manifest_id] }),
|
|
33
|
+
index('idx_environment_conn_workspace')
|
|
34
|
+
.on(t.workspace_id)
|
|
35
|
+
.where(sql `${t.deleted_at} IS NULL`),
|
|
36
|
+
]);
|
|
37
|
+
// One row per provisioned environment. `access_cipher` holds the env's own access
|
|
38
|
+
// creds (what the tester uses); `provision_fields_cipher` holds the fields captured at
|
|
39
|
+
// provision time that status/teardown calls interpolate.
|
|
40
|
+
export const environments = pgTable('environments', {
|
|
41
|
+
id: text('id').primaryKey(),
|
|
42
|
+
workspace_id: text('workspace_id').notNull(),
|
|
43
|
+
block_id: text('block_id'),
|
|
44
|
+
// The service FRAME this env belongs to (the deployer block walked up to its frame). The
|
|
45
|
+
// cross-frame discovery key: a `frontend` frame's `service` binding resolves the live env
|
|
46
|
+
// by the bound service FRAME id, not the task the deployer ran on (`block_id`).
|
|
47
|
+
frame_id: text('frame_id'),
|
|
48
|
+
execution_id: text('execution_id'),
|
|
49
|
+
provider_id: text('provider_id').notNull(),
|
|
50
|
+
external_id: text('external_id'),
|
|
51
|
+
url: text('url'),
|
|
52
|
+
status: text('status').notNull(),
|
|
53
|
+
access_cipher: text('access_cipher'),
|
|
54
|
+
provision_fields_cipher: text('provision_fields_cipher'),
|
|
55
|
+
// The serialized `EnvironmentReachability` (ADR 0062), in the clear: a list of addresses for a
|
|
56
|
+
// host already published in plaintext beside it is neither a credential nor provider state.
|
|
57
|
+
reachability: text('reachability'),
|
|
58
|
+
created_at: bigint('created_at', { mode: 'number' }).notNull(),
|
|
59
|
+
expires_at: bigint('expires_at', { mode: 'number' }),
|
|
60
|
+
last_error: text('last_error'),
|
|
61
|
+
// The provider's account of a state it has not left yet (why the env is not ready), written
|
|
62
|
+
// on every provision and poll regardless of status, where `last_error` is written only on
|
|
63
|
+
// `failed`. Mirror of D1 migration 0098; see the kernel `EnvironmentRecord`.
|
|
64
|
+
status_note: text('status_note'),
|
|
65
|
+
deleted_at: bigint('deleted_at', { mode: 'number' }),
|
|
66
|
+
// The service's declared provision type + the resolved engine that handled it,
|
|
67
|
+
// recorded at provision time so run details can show exactly what ran where.
|
|
68
|
+
provision_type: text('provision_type'),
|
|
69
|
+
engine: text('engine'),
|
|
70
|
+
}, (t) => [
|
|
71
|
+
index('idx_environments_block')
|
|
72
|
+
.on(t.workspace_id, t.block_id)
|
|
73
|
+
.where(sql `${t.deleted_at} IS NULL`),
|
|
74
|
+
index('idx_environments_expiry')
|
|
75
|
+
.on(t.expires_at)
|
|
76
|
+
.where(sql `${t.deleted_at} IS NULL AND ${t.expires_at} IS NOT NULL`),
|
|
77
|
+
]);
|
|
78
|
+
// Ephemeral-environment self-test runs (mirror of D1 migration 0050). A developer-triggered
|
|
79
|
+
// diagnostic that exercises a service frame's provisioning config end to end against a
|
|
80
|
+
// throwaway branch (create branch → provision → tear down → delete branch). Its own table
|
|
81
|
+
// (not agent_runs) because it carries a `stage` state machine and is not a container agent.
|
|
82
|
+
export const environmentTestRuns = pgTable('environment_test_runs', {
|
|
83
|
+
id: text('id').primaryKey(),
|
|
84
|
+
workspace_id: text('workspace_id').notNull(),
|
|
85
|
+
block_id: text('block_id').notNull(),
|
|
86
|
+
status: text('status').notNull(),
|
|
87
|
+
stage: text('stage').notNull(),
|
|
88
|
+
initiated_by: text('initiated_by'),
|
|
89
|
+
// The frame's provisioning config, pinned at dispatch (JSON); see the kernel port.
|
|
90
|
+
provisioning: text('provisioning').notNull(),
|
|
91
|
+
branch: text('branch'),
|
|
92
|
+
environment_id: text('environment_id'),
|
|
93
|
+
env_url: text('env_url'),
|
|
94
|
+
error: text('error'),
|
|
95
|
+
failed_stage: text('failed_stage'),
|
|
96
|
+
created_at: bigint('created_at', { mode: 'number' }).notNull(),
|
|
97
|
+
updated_at: bigint('updated_at', { mode: 'number' }).notNull(),
|
|
98
|
+
}, (t) => [
|
|
99
|
+
index('idx_environment_test_runs_ws_status').on(t.workspace_id, t.status),
|
|
100
|
+
// The cross-workspace stale-run sweep (`listStale`) scans running runs by lease age.
|
|
101
|
+
index('idx_environment_test_runs_status_updated').on(t.status, t.updated_at),
|
|
102
|
+
]);
|
|
103
|
+
//# sourceMappingURL=environments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environments.js","sourceRoot":"","sources":["../../../src/db/tables/environments.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environments.d.ts","sourceRoot":"","sources":["../../src/repositories/environments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,+BAA+B,EAC/B,iBAAiB,EACjB,sBAAsB,EACtB,6BAA6B,EAC9B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AA4BhD,wFAAwF;AACxF,qBAAa,sCAAuC,YAAW,+BAA+B;IAChF,OAAO,CAAC,QAAQ,CAAC,EAAE;IAA/B,YAA6B,EAAE,EAAE,SAAS,EAAI;IAExC,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,EAAE,CAAC,CAYjF;IAEK,qBAAqB,CACzB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GAAG,IAAI,GACxB,OAAO,CAAC,2BAA2B,GAAG,IAAI,CAAC,CAc7C;IAEK,MAAM,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CA+B/D;IAEK,UAAU,CACd,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,IAAI,CAAC,CAYf;CACF;
|
|
1
|
+
{"version":3,"file":"environments.d.ts","sourceRoot":"","sources":["../../src/repositories/environments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,+BAA+B,EAC/B,iBAAiB,EACjB,sBAAsB,EACtB,6BAA6B,EAC9B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AA4BhD,wFAAwF;AACxF,qBAAa,sCAAuC,YAAW,+BAA+B;IAChF,OAAO,CAAC,QAAQ,CAAC,EAAE;IAA/B,YAA6B,EAAE,EAAE,SAAS,EAAI;IAExC,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,EAAE,CAAC,CAYjF;IAEK,qBAAqB,CACzB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GAAG,IAAI,GACxB,OAAO,CAAC,2BAA2B,GAAG,IAAI,CAAC,CAc7C;IAEK,MAAM,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CA+B/D;IAEK,UAAU,CACd,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,IAAI,CAAC,CAYf;CACF;AA2CD,2EAA2E;AAC3E,qBAAa,oCAAqC,YAAW,6BAA6B;IAC5E,OAAO,CAAC,QAAQ,CAAC,EAAE;IAA/B,YAA6B,EAAE,EAAE,SAAS,EAAI;IAExC,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBrD;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB1F;IAEK,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAa5E;IAEK,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAcxF;IAEK,kBAAkB,CACtB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAenC;IAEK,mBAAmB,CACvB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAenC;IAEK,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAOvE;IAEK,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAYlE;IAEK,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW3E;CACF"}
|
|
@@ -85,9 +85,11 @@ function rowToEnvironment(row) {
|
|
|
85
85
|
status: row.status,
|
|
86
86
|
accessCipher: row.access_cipher,
|
|
87
87
|
provisionFieldsCipher: row.provision_fields_cipher,
|
|
88
|
+
reachability: row.reachability ?? null,
|
|
88
89
|
createdAt: row.created_at,
|
|
89
90
|
expiresAt: row.expires_at,
|
|
90
91
|
lastError: row.last_error,
|
|
92
|
+
statusNote: row.status_note,
|
|
91
93
|
deletedAt: row.deleted_at,
|
|
92
94
|
provisionType: row.provision_type ?? null,
|
|
93
95
|
engine: row.engine ?? null,
|
|
@@ -100,8 +102,10 @@ const PATCH_COLUMNS = {
|
|
|
100
102
|
status: 'status',
|
|
101
103
|
accessCipher: 'access_cipher',
|
|
102
104
|
provisionFieldsCipher: 'provision_fields_cipher',
|
|
105
|
+
reachability: 'reachability',
|
|
103
106
|
expiresAt: 'expires_at',
|
|
104
107
|
lastError: 'last_error',
|
|
108
|
+
statusNote: 'status_note',
|
|
105
109
|
provisionType: 'provision_type',
|
|
106
110
|
engine: 'engine',
|
|
107
111
|
};
|
|
@@ -124,9 +128,11 @@ export class DrizzleEnvironmentRegistryRepository {
|
|
|
124
128
|
status: record.status,
|
|
125
129
|
access_cipher: record.accessCipher,
|
|
126
130
|
provision_fields_cipher: record.provisionFieldsCipher,
|
|
131
|
+
reachability: record.reachability,
|
|
127
132
|
created_at: record.createdAt,
|
|
128
133
|
expires_at: record.expiresAt,
|
|
129
134
|
last_error: record.lastError,
|
|
135
|
+
status_note: record.statusNote,
|
|
130
136
|
deleted_at: null,
|
|
131
137
|
provision_type: record.provisionType,
|
|
132
138
|
engine: record.engine,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environments.js","sourceRoot":"","sources":["../../src/repositories/environments.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"environments.js","sourceRoot":"","sources":["../../src/repositories/environments.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { RouteProbe } from '@cat-factory/kernel';
|
|
2
|
+
/**
|
|
3
|
+
* Open a socket to the request's target and resolve with what happened, never rejecting.
|
|
4
|
+
*
|
|
5
|
+
* The socket is destroyed on every exit path including the success one: the probe wants the
|
|
6
|
+
* three-way handshake and nothing after it, and leaving a connection open against an operator's
|
|
7
|
+
* balancer for the sake of a diagnostic would be its own small leak. Settling is latched, because
|
|
8
|
+
* a socket can emit `error` after a timeout has already destroyed it.
|
|
9
|
+
*/
|
|
10
|
+
export declare const nodeRouteProbe: RouteProbe;
|
|
11
|
+
//# sourceMappingURL=routeProbe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routeProbe.d.ts","sourceRoot":"","sources":["../src/routeProbe.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAwC,MAAM,qBAAqB,CAAA;AAmC3F;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,EAAE,UAuBzB,CAAA"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { connect } from 'node:net';
|
|
2
|
+
// The Node facade's `RouteProbe`: one bounded TCP connect, classified by what the socket said.
|
|
3
|
+
//
|
|
4
|
+
// A raw socket rather than a `fetch` because the question is whether packets get there. The
|
|
5
|
+
// incident this exists for had a load balancer answering 503 over a route that worked perfectly,
|
|
6
|
+
// and reading an HTTP status as the transport verdict would have mislabelled the one fact the
|
|
7
|
+
// tester needed. See `kernel/src/ports/route-probe.ts`.
|
|
8
|
+
/**
|
|
9
|
+
* Map a `net` error onto the probe vocabulary.
|
|
10
|
+
*
|
|
11
|
+
* `ENOTFOUND`/`EAI_AGAIN` are the resolver saying nothing, which is the case an address bridge
|
|
12
|
+
* exists to work around. `ETIMEDOUT`/`EHOSTUNREACH`/`ENETUNREACH` are a name that resolved and a
|
|
13
|
+
* route that does not carry, which is the expensive failure: a lookup that worked followed by a
|
|
14
|
+
* connect that hangs. `ECONNREFUSED` reaches the box and finds nothing listening, which is the
|
|
15
|
+
* deployed workload rather than the network. Anything else is reported as a probe malfunction
|
|
16
|
+
* rather than squeezed into one of those, because a wrong layer is worse than no layer.
|
|
17
|
+
*/
|
|
18
|
+
function classify(error) {
|
|
19
|
+
switch (error.code) {
|
|
20
|
+
case 'ENOTFOUND':
|
|
21
|
+
case 'EAI_AGAIN':
|
|
22
|
+
return { state: 'unresolved' };
|
|
23
|
+
case 'ETIMEDOUT':
|
|
24
|
+
case 'EHOSTUNREACH':
|
|
25
|
+
case 'ENETUNREACH':
|
|
26
|
+
return { state: 'no_route' };
|
|
27
|
+
case 'ECONNREFUSED':
|
|
28
|
+
return { state: 'refused' };
|
|
29
|
+
default:
|
|
30
|
+
return { state: 'failed', detail: error.code ?? error.message };
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Open a socket to the request's target and resolve with what happened, never rejecting.
|
|
35
|
+
*
|
|
36
|
+
* The socket is destroyed on every exit path including the success one: the probe wants the
|
|
37
|
+
* three-way handshake and nothing after it, and leaving a connection open against an operator's
|
|
38
|
+
* balancer for the sake of a diagnostic would be its own small leak. Settling is latched, because
|
|
39
|
+
* a socket can emit `error` after a timeout has already destroyed it.
|
|
40
|
+
*/
|
|
41
|
+
export const nodeRouteProbe = (req) => new Promise((resolve) => {
|
|
42
|
+
let settled = false;
|
|
43
|
+
let socket;
|
|
44
|
+
const finish = (outcome) => {
|
|
45
|
+
if (settled)
|
|
46
|
+
return;
|
|
47
|
+
settled = true;
|
|
48
|
+
socket?.destroy();
|
|
49
|
+
resolve(outcome);
|
|
50
|
+
};
|
|
51
|
+
// `connect` validates its arguments SYNCHRONOUSLY and throws for a port outside 1-65535 or a
|
|
52
|
+
// host of the wrong shape, and a throw inside this executor is a REJECTED probe. The port
|
|
53
|
+
// promises it never rejects: a caller's best-effort wrapper would swallow that and record no
|
|
54
|
+
// proof at all, where the `failed` member exists to say "we could not tell" on the record.
|
|
55
|
+
try {
|
|
56
|
+
socket = connect({ host: req.address ?? req.host, port: req.port });
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
finish(classify(error));
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
socket.setTimeout(req.timeoutMs, () => finish({ state: 'no_route' }));
|
|
63
|
+
socket.once('connect', () => finish({ state: 'carried' }));
|
|
64
|
+
socket.once('error', (error) => finish(classify(error)));
|
|
65
|
+
});
|
|
66
|
+
//# sourceMappingURL=routeProbe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routeProbe.js","sourceRoot":"","sources":["../src/routeProbe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAe,MAAM,UAAU,CAAA;AAG/C,+FAA+F;AAC/F,EAAE;AACF,4FAA4F;AAC5F,iGAAiG;AACjG,8FAA8F;AAC9F,wDAAwD;AAExD;;;;;;;;;GASG;AACH,SAAS,QAAQ,CAAC,KAA4B;IAC5C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,WAAW,CAAC;QACjB,KAAK,WAAW;YACd,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAA;QAChC,KAAK,WAAW,CAAC;QACjB,KAAK,cAAc,CAAC;QACpB,KAAK,aAAa;YAChB,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;QAC9B,KAAK,cAAc;YACjB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;QAC7B;YACE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,CAAA;IACnE,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAe,CAAC,GAAsB,EAAE,EAAE,CACnE,IAAI,OAAO,CAAoB,CAAC,OAAO,EAAE,EAAE;IACzC,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,MAA0B,CAAA;IAC9B,MAAM,MAAM,GAAG,CAAC,OAA0B,EAAE,EAAE;QAC5C,IAAI,OAAO;YAAE,OAAM;QACnB,OAAO,GAAG,IAAI,CAAA;QACd,MAAM,EAAE,OAAO,EAAE,CAAA;QACjB,OAAO,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC,CAAA;IACD,6FAA6F;IAC7F,0FAA0F;IAC1F,6FAA6F;IAC7F,2FAA2F;IAC3F,IAAI,CAAC;QACH,MAAM,GAAG,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;IACrE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,QAAQ,CAAC,KAA8B,CAAC,CAAC,CAAA;QAChD,OAAM;IACR,CAAC;IACD,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;IACrE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;IAC1D,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAA4B,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACjF,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ALTER TABLE "environments" ADD COLUMN "status_note" text;
|