@cat-factory/integrations 0.167.0 → 0.169.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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/modules/environments/EnvironmentProvisioningService.d.ts +64 -3
- package/dist/modules/environments/EnvironmentProvisioningService.d.ts.map +1 -1
- package/dist/modules/environments/EnvironmentProvisioningService.js +99 -1
- package/dist/modules/environments/EnvironmentProvisioningService.js.map +1 -1
- package/dist/modules/environments/HttpEnvironmentProvider.d.ts.map +1 -1
- package/dist/modules/environments/HttpEnvironmentProvider.js +11 -0
- package/dist/modules/environments/HttpEnvironmentProvider.js.map +1 -1
- package/dist/modules/environments/environmentDiagnostics.d.ts +51 -0
- package/dist/modules/environments/environmentDiagnostics.d.ts.map +1 -0
- package/dist/modules/environments/environmentDiagnostics.js +352 -0
- package/dist/modules/environments/environmentDiagnostics.js.map +1 -0
- package/dist/modules/environments/environmentReachability.d.ts +44 -0
- package/dist/modules/environments/environmentReachability.d.ts.map +1 -0
- package/dist/modules/environments/environmentReachability.js +86 -0
- package/dist/modules/environments/environmentReachability.js.map +1 -0
- package/dist/modules/environments/environmentRemediation.d.ts +53 -0
- package/dist/modules/environments/environmentRemediation.d.ts.map +1 -0
- package/dist/modules/environments/environmentRemediation.js +72 -0
- package/dist/modules/environments/environmentRemediation.js.map +1 -0
- package/dist/modules/environments/environments.logic.d.ts +37 -0
- package/dist/modules/environments/environments.logic.d.ts.map +1 -1
- package/dist/modules/environments/environments.logic.js +99 -0
- package/dist/modules/environments/environments.logic.js.map +1 -1
- package/dist/modules/kubernetes/KubernetesEnvironmentProvider.d.ts +25 -2
- package/dist/modules/kubernetes/KubernetesEnvironmentProvider.d.ts.map +1 -1
- package/dist/modules/kubernetes/KubernetesEnvironmentProvider.js +106 -21
- package/dist/modules/kubernetes/KubernetesEnvironmentProvider.js.map +1 -1
- package/dist/modules/kubernetes/KubernetesRunnerTransport.d.ts +43 -0
- package/dist/modules/kubernetes/KubernetesRunnerTransport.d.ts.map +1 -1
- package/dist/modules/kubernetes/KubernetesRunnerTransport.js +92 -3
- package/dist/modules/kubernetes/KubernetesRunnerTransport.js.map +1 -1
- package/dist/modules/kubernetes/kubernetes-diagnostics.d.ts +31 -0
- package/dist/modules/kubernetes/kubernetes-diagnostics.d.ts.map +1 -0
- package/dist/modules/kubernetes/kubernetes-diagnostics.js +350 -0
- package/dist/modules/kubernetes/kubernetes-diagnostics.js.map +1 -0
- package/dist/modules/kubernetes/kubernetes-environment.logic.d.ts +8 -1
- package/dist/modules/kubernetes/kubernetes-environment.logic.d.ts.map +1 -1
- package/dist/modules/kubernetes/kubernetes-environment.logic.js +18 -4
- package/dist/modules/kubernetes/kubernetes-environment.logic.js.map +1 -1
- package/dist/modules/kubernetes/kubernetes.logic.d.ts +60 -2
- package/dist/modules/kubernetes/kubernetes.logic.d.ts.map +1 -1
- package/dist/modules/kubernetes/kubernetes.logic.js +135 -2
- package/dist/modules/kubernetes/kubernetes.logic.js.map +1 -1
- package/dist/modules/shared/environmentBridge.d.ts +66 -0
- package/dist/modules/shared/environmentBridge.d.ts.map +1 -0
- package/dist/modules/shared/environmentBridge.js +78 -0
- package/dist/modules/shared/environmentBridge.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { EnvironmentManifest, EnvironmentProvider, EnvironmentRecord, Logger, ProviderRemediationAction, ProvisionFields, SecretResolver } from '@cat-factory/kernel';
|
|
2
|
+
/** The resolved provider trio a forensic call needs, exactly as the lifecycle paths resolve it. */
|
|
3
|
+
export interface ResolvedEnvironmentProvider {
|
|
4
|
+
manifest: EnvironmentManifest;
|
|
5
|
+
provider: EnvironmentProvider;
|
|
6
|
+
resolveSecret: SecretResolver;
|
|
7
|
+
}
|
|
8
|
+
/** One appended `remediate` row, as the owning service maps it onto the provisioning log. */
|
|
9
|
+
export interface EnvironmentRemediationLogRow {
|
|
10
|
+
workspaceId: string;
|
|
11
|
+
environmentId: string;
|
|
12
|
+
providerId: string;
|
|
13
|
+
blockId: string | null;
|
|
14
|
+
executionId: string | null;
|
|
15
|
+
outcome: 'success' | 'failure';
|
|
16
|
+
error: string | null;
|
|
17
|
+
detail: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* What either forensic half needs to reach one environment's provider. Declared here and EXTENDED
|
|
21
|
+
* by the gatherer's deps, so the two cannot drift into addressing the same row through different
|
|
22
|
+
* seams.
|
|
23
|
+
*/
|
|
24
|
+
export interface EnvironmentRemediatorDeps {
|
|
25
|
+
readRecord: (workspaceId: string, id: string) => Promise<EnvironmentRecord | null>;
|
|
26
|
+
resolveProvider: (record: EnvironmentRecord) => Promise<ResolvedEnvironmentProvider>;
|
|
27
|
+
decryptFields: (record: EnvironmentRecord) => Promise<ProvisionFields>;
|
|
28
|
+
/**
|
|
29
|
+
* Append the `remediate` row for a mutation this collaborator performed. Bound by the owning
|
|
30
|
+
* service, which is where the provisioning log's write seam lives; absent ⇒ this deployment
|
|
31
|
+
* keeps no provisioning log, exactly as for every other verb. Best-effort at the call site.
|
|
32
|
+
*/
|
|
33
|
+
recordRemediation?: (row: EnvironmentRemediationLogRow) => Promise<void>;
|
|
34
|
+
logger?: Logger;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Ask the provider to remediate in place.
|
|
38
|
+
*
|
|
39
|
+
* Every outcome is APPENDED to the provisioning log before it is returned. This is the one call in
|
|
40
|
+
* the module that MUTATES a live cluster, and a mutation with no row of its own is invisible to the
|
|
41
|
+
* two readers that most need it: the investigation's own next round rebuilds its timeline from that
|
|
42
|
+
* log, so an unlogged restart leaves the second round reasoning about an environment it believes
|
|
43
|
+
* nothing has touched, and the operator's provisioning drawer never shows it either.
|
|
44
|
+
*/
|
|
45
|
+
export declare function createEnvironmentRemediator(deps: EnvironmentRemediatorDeps): (args: {
|
|
46
|
+
workspaceId: string;
|
|
47
|
+
environmentId: string;
|
|
48
|
+
action: ProviderRemediationAction;
|
|
49
|
+
}) => Promise<{
|
|
50
|
+
applied: boolean;
|
|
51
|
+
detail: string;
|
|
52
|
+
}>;
|
|
53
|
+
//# sourceMappingURL=environmentRemediation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environmentRemediation.d.ts","sourceRoot":"","sources":["../../../src/modules/environments/environmentRemediation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,MAAM,EACN,yBAAyB,EACzB,eAAe,EACf,cAAc,EACf,MAAM,qBAAqB,CAAA;AAe5B,mGAAmG;AACnG,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,aAAa,EAAE,cAAc,CAAA;CAC9B;AAED,6FAA6F;AAC7F,MAAM,WAAW,4BAA4B;IAC3C,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,OAAO,EAAE,SAAS,GAAG,SAAS,CAAA;IAC9B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;IAClF,eAAe,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,2BAA2B,CAAC,CAAA;IACpF,aAAa,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;IACtE;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,4BAA4B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxE,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,yBAAyB,UAuCnC;IACpC,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,yBAAyB,CAAA;CAClC,KAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAsClD"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { getErrorMessage, noopLogger, runBestEffort } from '@cat-factory/kernel';
|
|
2
|
+
/**
|
|
3
|
+
* Ask the provider to remediate in place.
|
|
4
|
+
*
|
|
5
|
+
* Every outcome is APPENDED to the provisioning log before it is returned. This is the one call in
|
|
6
|
+
* the module that MUTATES a live cluster, and a mutation with no row of its own is invisible to the
|
|
7
|
+
* two readers that most need it: the investigation's own next round rebuilds its timeline from that
|
|
8
|
+
* log, so an unlogged restart leaves the second round reasoning about an environment it believes
|
|
9
|
+
* nothing has touched, and the operator's provisioning drawer never shows it either.
|
|
10
|
+
*/
|
|
11
|
+
export function createEnvironmentRemediator(deps) {
|
|
12
|
+
const log = (deps.logger ?? noopLogger).child({ scope: 'environmentRemediation' });
|
|
13
|
+
/** Append one remediation row; best-effort, so a log outage never costs the remediation. */
|
|
14
|
+
async function record(environment, providerId, action, result) {
|
|
15
|
+
const append = deps.recordRemediation;
|
|
16
|
+
if (!append)
|
|
17
|
+
return;
|
|
18
|
+
await runBestEffort(log, 'record an environment remediation', () => append({
|
|
19
|
+
workspaceId: environment.workspaceId,
|
|
20
|
+
environmentId: environment.id,
|
|
21
|
+
providerId,
|
|
22
|
+
blockId: environment.blockId ?? null,
|
|
23
|
+
executionId: environment.executionId ?? null,
|
|
24
|
+
outcome: result.outcome,
|
|
25
|
+
error: result.error,
|
|
26
|
+
detail: JSON.stringify({
|
|
27
|
+
action,
|
|
28
|
+
applied: result.applied,
|
|
29
|
+
...(result.detail === undefined ? {} : { detail: result.detail }),
|
|
30
|
+
}),
|
|
31
|
+
}), { workspaceId: environment.workspaceId, environmentId: environment.id, action });
|
|
32
|
+
}
|
|
33
|
+
return async function remediate(args) {
|
|
34
|
+
const { workspaceId, environmentId, action } = args;
|
|
35
|
+
const environment = await deps.readRecord(workspaceId, environmentId);
|
|
36
|
+
if (!environment)
|
|
37
|
+
throw new Error(`Environment '${environmentId}' is no longer in the registry`);
|
|
38
|
+
const { manifest, provider, resolveSecret } = await deps.resolveProvider(environment);
|
|
39
|
+
const remediateFn = provider.diagnostics?.remediate;
|
|
40
|
+
if (!remediateFn) {
|
|
41
|
+
throw new Error(`Provider '${manifest.providerId}' offers no in-place remediation for this environment`);
|
|
42
|
+
}
|
|
43
|
+
const provisionFields = await deps.decryptFields(environment);
|
|
44
|
+
try {
|
|
45
|
+
const outcome = await remediateFn.call(provider.diagnostics, {
|
|
46
|
+
manifest,
|
|
47
|
+
externalId: environment.externalId,
|
|
48
|
+
provisionFields,
|
|
49
|
+
resolveSecret,
|
|
50
|
+
action,
|
|
51
|
+
});
|
|
52
|
+
// `applied: false` is a FAILURE row, not a quiet success: the requested remediation did not
|
|
53
|
+
// happen, and the timeline's job is to say whether anything touched this environment.
|
|
54
|
+
await record(environment, manifest.providerId, action, {
|
|
55
|
+
outcome: outcome.applied ? 'success' : 'failure',
|
|
56
|
+
error: outcome.applied ? null : outcome.detail,
|
|
57
|
+
applied: outcome.applied,
|
|
58
|
+
detail: outcome.detail,
|
|
59
|
+
});
|
|
60
|
+
return outcome;
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
await record(environment, manifest.providerId, action, {
|
|
64
|
+
outcome: 'failure',
|
|
65
|
+
error: getErrorMessage(error),
|
|
66
|
+
applied: false,
|
|
67
|
+
});
|
|
68
|
+
throw error;
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=environmentRemediation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environmentRemediation.js","sourceRoot":"","sources":["../../../src/modules/environments/environmentRemediation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ConnectionTestResult, EnvironmentAccessHandle, EnvironmentHandle, EnvironmentManifest, EnvironmentStatus, ProviderConfigField, TeardownConfirmation, TeardownProbe } from '@cat-factory/kernel';
|
|
2
2
|
import type { EnvironmentRecord, UrlSafetyPolicy } from '@cat-factory/kernel';
|
|
3
|
+
import type { EnvironmentAddress, EnvironmentReachability } from '@cat-factory/contracts';
|
|
3
4
|
/**
|
|
4
5
|
* The agent kind that triggers deterministic provisioning, and its counterpart that triggers the
|
|
5
6
|
* deterministic RECLAIM. Re-exported from `@cat-factory/contracts` rather than restated: the
|
|
@@ -175,8 +176,44 @@ export declare function mapStatus(raw: string | undefined, statusMap: {
|
|
|
175
176
|
from: string;
|
|
176
177
|
to: EnvironmentStatus;
|
|
177
178
|
}[] | undefined, fallback: EnvironmentStatus): EnvironmentStatus;
|
|
179
|
+
/**
|
|
180
|
+
* Read a manifest's `addressesPath` off an arbitrary provider response.
|
|
181
|
+
*
|
|
182
|
+
* Three shapes are accepted because a self-rolled management API can reasonably return any of
|
|
183
|
+
* them, and refusing two would push an org into reshaping its API for us: a single address string,
|
|
184
|
+
* an array of strings, or an array of `{ address, label }` objects. Anything else in the array is
|
|
185
|
+
* SKIPPED rather than coerced, so an unexpected element cannot become the literal `[object
|
|
186
|
+
* Object]` in an `--add-host` argument.
|
|
187
|
+
*
|
|
188
|
+
* Nothing here validates the addresses. Which ones a bridge may name is kernel's rule
|
|
189
|
+
* (`isBridgeableAddress`), applied where the bridge is built, and what actually carries is the
|
|
190
|
+
* proof's answer; a provider stating a useless address gets a recorded failed attempt, which is
|
|
191
|
+
* the honest outcome.
|
|
192
|
+
*/
|
|
193
|
+
export declare function extractAddresses(json: unknown, path: string | undefined): EnvironmentAddress[];
|
|
194
|
+
/**
|
|
195
|
+
* Parse the stored reachability blob, or null when there is none and when what is there does not
|
|
196
|
+
* validate.
|
|
197
|
+
*
|
|
198
|
+
* The ONE parse of that column, which is why it is here rather than in each facade's repository:
|
|
199
|
+
* two implementations of one validator is how a D1 row and a Postgres row come to disagree about
|
|
200
|
+
* what they hold. A blob that fails validation reads as ABSENT rather than throwing, because the
|
|
201
|
+
* caller is a projection every environment read goes through and a stale shape written by an older
|
|
202
|
+
* build must not take the whole handle down with it: an unreadable proof and no proof are the same
|
|
203
|
+
* fact to every reader (nothing has been shown to carry).
|
|
204
|
+
*/
|
|
205
|
+
export declare function parseReachability(raw: string | null): EnvironmentReachability | null;
|
|
206
|
+
/** Serialize reachability for the row, or null when there is nothing worth a column. */
|
|
207
|
+
export declare function serializeReachability(value: EnvironmentReachability | null): string | null;
|
|
178
208
|
/** Project a stored record onto the wire handle, optionally with decrypted access. */
|
|
179
209
|
export declare function recordToHandle(record: EnvironmentRecord, access?: EnvironmentAccessHandle | null): EnvironmentHandle;
|
|
210
|
+
/**
|
|
211
|
+
* A provider's status note as it is stored: trimmed, blank-as-null, and bounded.
|
|
212
|
+
*
|
|
213
|
+
* A capped note SAYS it was capped rather than trailing off, so a reader never takes the prefix
|
|
214
|
+
* for the whole account (the same rule every other cap in the environment path follows).
|
|
215
|
+
*/
|
|
216
|
+
export declare function boundStatusNote(note: string | null | undefined): string | null;
|
|
180
217
|
/** Coerce an extracted expiry (epoch-ms number, numeric string, or ISO) to ms. */
|
|
181
218
|
export declare function coerceExpiresAt(value: unknown): number | null;
|
|
182
219
|
//# sourceMappingURL=environments.logic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environments.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/environments/environments.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACd,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"environments.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/environments/environments.logic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { connectionFailureResult, STRICT_URL_SAFETY_POLICY } from '@cat-factory/kernel';
|
|
2
|
+
import { environmentReachabilitySchema } from '@cat-factory/contracts';
|
|
3
|
+
import * as v from 'valibot';
|
|
2
4
|
import { safeFetch } from '../shared/safe-fetch.js';
|
|
3
5
|
import { assertSafePublicUrl, publicUrlHost } from '../shared/url-guard.js';
|
|
4
6
|
// Pure helpers for the ephemeral-environment integration: SSRF validation of the
|
|
@@ -334,6 +336,74 @@ export function mapStatus(raw, statusMap, fallback) {
|
|
|
334
336
|
}
|
|
335
337
|
return fallback;
|
|
336
338
|
}
|
|
339
|
+
/**
|
|
340
|
+
* Read a manifest's `addressesPath` off an arbitrary provider response.
|
|
341
|
+
*
|
|
342
|
+
* Three shapes are accepted because a self-rolled management API can reasonably return any of
|
|
343
|
+
* them, and refusing two would push an org into reshaping its API for us: a single address string,
|
|
344
|
+
* an array of strings, or an array of `{ address, label }` objects. Anything else in the array is
|
|
345
|
+
* SKIPPED rather than coerced, so an unexpected element cannot become the literal `[object
|
|
346
|
+
* Object]` in an `--add-host` argument.
|
|
347
|
+
*
|
|
348
|
+
* Nothing here validates the addresses. Which ones a bridge may name is kernel's rule
|
|
349
|
+
* (`isBridgeableAddress`), applied where the bridge is built, and what actually carries is the
|
|
350
|
+
* proof's answer; a provider stating a useless address gets a recorded failed attempt, which is
|
|
351
|
+
* the honest outcome.
|
|
352
|
+
*/
|
|
353
|
+
export function extractAddresses(json, path) {
|
|
354
|
+
if (!path)
|
|
355
|
+
return [];
|
|
356
|
+
const raw = extractByPath(json, path);
|
|
357
|
+
if (typeof raw === 'string')
|
|
358
|
+
return raw.trim() ? [{ address: raw.trim() }] : [];
|
|
359
|
+
if (!Array.isArray(raw))
|
|
360
|
+
return [];
|
|
361
|
+
const out = [];
|
|
362
|
+
for (const entry of raw) {
|
|
363
|
+
if (typeof entry === 'string') {
|
|
364
|
+
if (entry.trim())
|
|
365
|
+
out.push({ address: entry.trim() });
|
|
366
|
+
continue;
|
|
367
|
+
}
|
|
368
|
+
if (!entry || typeof entry !== 'object')
|
|
369
|
+
continue;
|
|
370
|
+
const record = entry;
|
|
371
|
+
const address = typeof record.address === 'string' ? record.address.trim() : '';
|
|
372
|
+
if (!address)
|
|
373
|
+
continue;
|
|
374
|
+
const label = typeof record.label === 'string' ? record.label.trim() : '';
|
|
375
|
+
out.push(label ? { address, label } : { address });
|
|
376
|
+
}
|
|
377
|
+
return out;
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Parse the stored reachability blob, or null when there is none and when what is there does not
|
|
381
|
+
* validate.
|
|
382
|
+
*
|
|
383
|
+
* The ONE parse of that column, which is why it is here rather than in each facade's repository:
|
|
384
|
+
* two implementations of one validator is how a D1 row and a Postgres row come to disagree about
|
|
385
|
+
* what they hold. A blob that fails validation reads as ABSENT rather than throwing, because the
|
|
386
|
+
* caller is a projection every environment read goes through and a stale shape written by an older
|
|
387
|
+
* build must not take the whole handle down with it: an unreadable proof and no proof are the same
|
|
388
|
+
* fact to every reader (nothing has been shown to carry).
|
|
389
|
+
*/
|
|
390
|
+
export function parseReachability(raw) {
|
|
391
|
+
if (!raw)
|
|
392
|
+
return null;
|
|
393
|
+
try {
|
|
394
|
+
const parsed = v.safeParse(environmentReachabilitySchema, JSON.parse(raw));
|
|
395
|
+
return parsed.success ? parsed.output : null;
|
|
396
|
+
}
|
|
397
|
+
catch {
|
|
398
|
+
return null;
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
/** Serialize reachability for the row, or null when there is nothing worth a column. */
|
|
402
|
+
export function serializeReachability(value) {
|
|
403
|
+
if (!value || (value.candidates.length === 0 && !value.proof))
|
|
404
|
+
return null;
|
|
405
|
+
return JSON.stringify(value);
|
|
406
|
+
}
|
|
337
407
|
/** Project a stored record onto the wire handle, optionally with decrypted access. */
|
|
338
408
|
export function recordToHandle(record, access) {
|
|
339
409
|
return {
|
|
@@ -345,15 +415,44 @@ export function recordToHandle(record, access) {
|
|
|
345
415
|
providerId: record.providerId,
|
|
346
416
|
externalId: record.externalId,
|
|
347
417
|
url: record.url,
|
|
418
|
+
reachability: parseReachability(record.reachability),
|
|
348
419
|
status: record.status,
|
|
349
420
|
...(access ? { access } : {}),
|
|
350
421
|
createdAt: record.createdAt,
|
|
351
422
|
expiresAt: record.expiresAt,
|
|
352
423
|
lastError: record.lastError,
|
|
424
|
+
statusNote: record.statusNote,
|
|
353
425
|
provisionType: record.provisionType,
|
|
354
426
|
engine: record.engine,
|
|
355
427
|
};
|
|
356
428
|
}
|
|
429
|
+
/**
|
|
430
|
+
* How much of a provider's status note is persisted. The note is provider-authored prose that
|
|
431
|
+
* lands in three places a sentence has to stay readable in: the step's Environment panel, the
|
|
432
|
+
* readiness ceiling's run-failure message, and the outcome card's environment row.
|
|
433
|
+
*
|
|
434
|
+
* `lastError` is deliberately uncapped beside it, and the asymmetry is the point: a fault is
|
|
435
|
+
* something a person opens and scrolls (the panel gives it its own scrollable block), while the
|
|
436
|
+
* note is one muted line beside an environment that is doing fine. A code adapter answering with
|
|
437
|
+
* a controller dump or an event list would otherwise push everything under it off the surface.
|
|
438
|
+
*/
|
|
439
|
+
const STATUS_NOTE_CAP = 400;
|
|
440
|
+
/**
|
|
441
|
+
* A provider's status note as it is stored: trimmed, blank-as-null, and bounded.
|
|
442
|
+
*
|
|
443
|
+
* A capped note SAYS it was capped rather than trailing off, so a reader never takes the prefix
|
|
444
|
+
* for the whole account (the same rule every other cap in the environment path follows).
|
|
445
|
+
*/
|
|
446
|
+
export function boundStatusNote(note) {
|
|
447
|
+
const trimmed = note?.trim();
|
|
448
|
+
if (!trimmed)
|
|
449
|
+
return null;
|
|
450
|
+
if (trimmed.length <= STATUS_NOTE_CAP)
|
|
451
|
+
return trimmed;
|
|
452
|
+
const dropped = trimmed.length - STATUS_NOTE_CAP;
|
|
453
|
+
return (`${trimmed.slice(0, STATUS_NOTE_CAP)} ` +
|
|
454
|
+
`[note truncated: ${dropped} of ${trimmed.length} characters dropped]`);
|
|
455
|
+
}
|
|
357
456
|
/** Coerce an extracted expiry (epoch-ms number, numeric string, or ISO) to ms. */
|
|
358
457
|
export function coerceExpiresAt(value) {
|
|
359
458
|
if (value === null || value === undefined)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environments.logic.js","sourceRoot":"","sources":["../../../src/modules/environments/environments.logic.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"environments.logic.js","sourceRoot":"","sources":["../../../src/modules/environments/environments.logic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AsyncProvisionCapability, ConnectionTestResult, EnvironmentConnectionTestRequest, EnvironmentManifest, EnvironmentProvider, EnvironmentStatus, EnvironmentStatusRequest, EnvironmentTeardownRequest, KubernetesConnectionConfig, KubernetesProvisionConfig, ProviderConfigField, ProvisionEnvironmentRequest, ProvisionedEnvironment, SecretResolver, TeardownProbe } from '@cat-factory/kernel';
|
|
1
|
+
import type { AsyncProvisionCapability, ConnectionTestResult, EnvironmentConnectionTestRequest, EnvironmentManifest, EnvironmentProvider, EnvironmentStatus, EnvironmentDiagnosis, EnvironmentRemediationOutcome, EnvironmentRemediationRequest, EnvironmentStatusRequest, EnvironmentTeardownRequest, KubernetesConnectionConfig, KubernetesProvisionConfig, ProviderConfigField, ProvisionEnvironmentRequest, ProvisionedEnvironment, SecretResolver, TeardownProbe } from '@cat-factory/kernel';
|
|
2
2
|
import { KubernetesApiClient } from './KubernetesApiClient.js';
|
|
3
3
|
/**
|
|
4
4
|
* Field manager for the manifest applies. Exported so the registry-auth writes can be pinned as
|
|
@@ -44,6 +44,21 @@ export declare class KubernetesEnvironmentProvider implements EnvironmentProvide
|
|
|
44
44
|
* provider builds the deploy job + maps its outcome; the engine dispatches/polls it.
|
|
45
45
|
*/
|
|
46
46
|
readonly asyncProvision: AsyncProvisionCapability;
|
|
47
|
+
/**
|
|
48
|
+
* What the apiserver can say about a namespace that never became usable, and the one thing the
|
|
49
|
+
* platform can ask it to do about it.
|
|
50
|
+
*
|
|
51
|
+
* Grouped as the optional capability rather than folded into `status()`, which reduces the whole
|
|
52
|
+
* cluster's answer to one word because a readiness judgement needs one word. The per-pod terminal
|
|
53
|
+
* reasons `analyzePodStatus` extracts have always been available and have never reached a reader:
|
|
54
|
+
* an `ImagePullBackOff` arrives at the run as a generic timeout, and the difference between "the
|
|
55
|
+
* image does not exist" and "we waited twenty minutes" is the whole diagnosis.
|
|
56
|
+
*/
|
|
57
|
+
readonly diagnostics: {
|
|
58
|
+
describe: (req: EnvironmentStatusRequest) => Promise<EnvironmentDiagnosis>;
|
|
59
|
+
supportedActions: readonly "restart"[];
|
|
60
|
+
remediate: (req: EnvironmentRemediationRequest) => Promise<EnvironmentRemediationOutcome>;
|
|
61
|
+
};
|
|
47
62
|
provision(req: ProvisionEnvironmentRequest): Promise<ProvisionedEnvironment>;
|
|
48
63
|
status(req: EnvironmentStatusRequest): Promise<ProvisionedEnvironment>;
|
|
49
64
|
teardown(req: EnvironmentTeardownRequest): Promise<{
|
|
@@ -148,7 +163,15 @@ export declare class KubernetesEnvironmentProvider implements EnvironmentProvide
|
|
|
148
163
|
* `imagePullSecrets` it does not mention straight back off again.
|
|
149
164
|
*/
|
|
150
165
|
private applyResource;
|
|
151
|
-
/**
|
|
166
|
+
/**
|
|
167
|
+
* Aggregate the namespace's Deployments into one lifecycle verdict, plus the note that says
|
|
168
|
+
* what a `provisioning` verdict is waiting on ({@link reduceRolloutProgress}).
|
|
169
|
+
*
|
|
170
|
+
* The note is the whole reason this returns a pair rather than a bare status: `provisioning` is
|
|
171
|
+
* what keeps the deployer's readiness wait alive, and it is persisted as the environment's
|
|
172
|
+
* `statusNote`, so the run states which workloads have not landed instead of only how long it
|
|
173
|
+
* has been waiting for them.
|
|
174
|
+
*/
|
|
152
175
|
private deploymentStatus;
|
|
153
176
|
/**
|
|
154
177
|
* Whether anything in the cluster will serve the host an `ingressTemplate` URL names: the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KubernetesEnvironmentProvider.d.ts","sourceRoot":"","sources":["../../../src/modules/kubernetes/KubernetesEnvironmentProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,oBAAoB,EAEpB,gCAAgC,EAChC,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,EAE1B,yBAAyB,EACzB,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,EAItB,cAAc,EACd,aAAa,EACd,MAAM,qBAAqB,CAAA;AAS5B,OAAO,EAAE,mBAAmB,EAAY,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"KubernetesEnvironmentProvider.d.ts","sourceRoot":"","sources":["../../../src/modules/kubernetes/KubernetesEnvironmentProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,oBAAoB,EAEpB,gCAAgC,EAChC,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EAEpB,6BAA6B,EAC7B,6BAA6B,EAC7B,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,EAE1B,yBAAyB,EACzB,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,EAItB,cAAc,EACd,aAAa,EACd,MAAM,qBAAqB,CAAA;AAS5B,OAAO,EAAE,mBAAmB,EAAY,MAAM,0BAA0B,CAAA;AA6ExE;;;;GAIG;AACH,eAAO,MAAM,aAAa,gBAAgB,CAAA;AAmB1C,MAAM,WAAW,oCAAoC;IACnD,oEAAoE;IACpE,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,qBAAa,6BAA8B,YAAW,mBAAmB;IAE3D,OAAO,CAAC,QAAQ,CAAC,OAAO;IAApC,YAA6B,OAAO,GAAE,oCAAyC,EAAI;IAEnF;;;;OAIG;IACH,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,mBAAmB,GAAG,yBAAyB,CAE9E;IAED;;;;;;;;OAQG;IACH,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,mBAAmB,GAAG,0BAA0B,CAEnF;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,UAAU,CAClB,MAAM,EAAE,0BAA0B,EAClC,aAAa,EAAE,cAAc,GAC5B,mBAAmB,CAErB;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,wBAAwB,CAGhD;IAED;;;;;;;;;OASG;IACH,QAAQ,CAAC,WAAW;wBACI,wBAAwB,KAAG,OAAO,CAAC,oBAAoB,CAAC;;yBA8BvE,6BAA6B,KACjC,OAAO,CAAC,6BAA6B,CAAC;MAcC;IAEtC,SAAS,CAAC,GAAG,EAAE,2BAA2B,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAmDjF;IAEK,MAAM,CAAC,GAAG,EAAE,wBAAwB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAmF3E;IAEK,QAAQ,CAAC,GAAG,EAAE,0BAA0B,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,iBAAiB,CAAA;KAAE,CAAC,CAoBtF;IAED;;;;;;;;;OASG;IACG,eAAe,CAAC,GAAG,EAAE,0BAA0B,GAAG,OAAO,CAAC,aAAa,CAAC,CAyD7E;IAEK,cAAc,CAAC,GAAG,EAAE,gCAAgC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAgCzF;IAED,cAAc,IAAI,mBAAmB,EAAE,CAKtC;IAID;;;;OAIG;YACW,iBAAiB;IAwC/B,uEAAuE;IACvE,OAAO,CAAC,iBAAiB;IAQzB;;;;OAIG;IACH;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,gBAAgB;YASV,eAAe;IAqB7B;;;;;;;;;;;;;;;OAeG;YACW,mBAAmB;IAmBjC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;YACW,kBAAkB;IAgFhC,sFAAsF;YACxE,kBAAkB;YAclB,KAAK;IASnB;;;;;OAKG;YACW,aAAa;IAmC3B;;;;;;;;OAQG;YACW,gBAAgB;IAgD9B;;;;;;;;;OASG;YACW,gBAAgB;IAoB9B,uFAAuF;YACzE,cAAc;IAa5B;;;;;;;OAOG;YACW,cAAc;IAiC5B;;;OAGG;YACW,eAAe;IAmB7B;;;;OAIG;YACW,iBAAiB;IA+B/B,iFAAiF;YACnE,OAAO;IAKrB;;;OAGG;YACW,gBAAgB;IAa9B,0FAA0F;YAC5E,aAAa;IAwB3B,0EAA0E;YAC5D,QAAQ;CAevB"}
|