@sfdxy/anypoint-connect 0.16.3 → 0.18.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/README.md +17 -6
- package/dist/analysis/audit-actors.d.ts +36 -0
- package/dist/analysis/audit-actors.d.ts.map +1 -0
- package/dist/analysis/audit-actors.js +93 -0
- package/dist/analysis/audit-actors.js.map +1 -0
- package/dist/analysis/credentials.d.ts +49 -0
- package/dist/analysis/credentials.d.ts.map +1 -0
- package/dist/analysis/credentials.js +118 -0
- package/dist/analysis/credentials.js.map +1 -0
- package/dist/analysis/parser.d.ts +5 -0
- package/dist/analysis/parser.d.ts.map +1 -1
- package/dist/analysis/parser.js +10 -1
- package/dist/analysis/parser.js.map +1 -1
- package/dist/api/AlertsApi.d.ts +138 -0
- package/dist/api/AlertsApi.d.ts.map +1 -0
- package/dist/api/AlertsApi.js +168 -0
- package/dist/api/AlertsApi.js.map +1 -0
- package/dist/api/LogsApi.d.ts +88 -12
- package/dist/api/LogsApi.d.ts.map +1 -1
- package/dist/api/LogsApi.js +335 -31
- package/dist/api/LogsApi.js.map +1 -1
- package/dist/auth/BearerProvider.d.ts +12 -0
- package/dist/auth/BearerProvider.d.ts.map +1 -0
- package/dist/auth/BearerProvider.js +18 -0
- package/dist/auth/BearerProvider.js.map +1 -0
- package/dist/auth/ClientCredentialsProvider.d.ts +23 -0
- package/dist/auth/ClientCredentialsProvider.d.ts.map +1 -0
- package/dist/auth/ClientCredentialsProvider.js +59 -0
- package/dist/auth/ClientCredentialsProvider.js.map +1 -0
- package/dist/auth/TokenProvider.d.ts +12 -0
- package/dist/auth/TokenProvider.d.ts.map +1 -0
- package/dist/auth/TokenProvider.js +2 -0
- package/dist/auth/TokenProvider.js.map +1 -0
- package/dist/auth/index.d.ts +1 -0
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/cli.js +8 -0
- package/dist/cli.js.map +1 -1
- package/dist/client/AnypointClient.d.ts +22 -0
- package/dist/client/AnypointClient.d.ts.map +1 -1
- package/dist/client/AnypointClient.js +82 -12
- package/dist/client/AnypointClient.js.map +1 -1
- package/dist/client/HttpClient.d.ts +3 -3
- package/dist/client/HttpClient.d.ts.map +1 -1
- package/dist/client/HttpClient.js +13 -3
- package/dist/client/HttpClient.js.map +1 -1
- package/dist/commands/alerts.d.ts +16 -0
- package/dist/commands/alerts.d.ts.map +1 -0
- package/dist/commands/alerts.js +375 -0
- package/dist/commands/alerts.js.map +1 -0
- package/dist/commands/api.d.ts.map +1 -1
- package/dist/commands/api.js +8 -3
- package/dist/commands/api.js.map +1 -1
- package/dist/commands/app-change-cli.d.ts +5 -2
- package/dist/commands/app-change-cli.d.ts.map +1 -1
- package/dist/commands/app-change-cli.js +19 -5
- package/dist/commands/app-change-cli.js.map +1 -1
- package/dist/commands/apps.d.ts.map +1 -1
- package/dist/commands/apps.js +69 -22
- package/dist/commands/apps.js.map +1 -1
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +21 -0
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +20 -1
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +17 -6
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +1 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/logs.d.ts +2 -1
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +105 -10
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/monitor.d.ts.map +1 -1
- package/dist/commands/monitor.js +29 -1
- package/dist/commands/monitor.js.map +1 -1
- package/dist/commands/runtimes.d.ts.map +1 -1
- package/dist/commands/runtimes.js +38 -5
- package/dist/commands/runtimes.js.map +1 -1
- package/dist/commands/shared.d.ts.map +1 -1
- package/dist/commands/shared.js +1 -7
- package/dist/commands/shared.js.map +1 -1
- package/dist/config/auth-modes.d.ts +11 -0
- package/dist/config/auth-modes.d.ts.map +1 -0
- package/dist/config/auth-modes.js +18 -0
- package/dist/config/auth-modes.js.map +1 -0
- package/dist/config/profiles.d.ts +19 -2
- package/dist/config/profiles.d.ts.map +1 -1
- package/dist/config/profiles.js +68 -24
- package/dist/config/profiles.js.map +1 -1
- package/dist/index.d.ts +12 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +4 -9
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/alerts.d.ts +82 -0
- package/dist/mcp/tools/alerts.d.ts.map +1 -0
- package/dist/mcp/tools/alerts.js +423 -0
- package/dist/mcp/tools/alerts.js.map +1 -0
- package/dist/mcp/tools/api-manager.d.ts.map +1 -1
- package/dist/mcp/tools/api-manager.js +6 -1
- package/dist/mcp/tools/api-manager.js.map +1 -1
- package/dist/mcp/tools/app-inputs.d.ts +20 -2
- package/dist/mcp/tools/app-inputs.d.ts.map +1 -1
- package/dist/mcp/tools/app-inputs.js +40 -2
- package/dist/mcp/tools/app-inputs.js.map +1 -1
- package/dist/mcp/tools/apps-deploy.d.ts.map +1 -1
- package/dist/mcp/tools/apps-deploy.js +65 -13
- package/dist/mcp/tools/apps-deploy.js.map +1 -1
- package/dist/mcp/tools/apps-lifecycle.d.ts.map +1 -1
- package/dist/mcp/tools/apps-lifecycle.js +37 -15
- package/dist/mcp/tools/apps-lifecycle.js.map +1 -1
- package/dist/mcp/tools/apps-read.d.ts.map +1 -1
- package/dist/mcp/tools/apps-read.js +11 -5
- package/dist/mcp/tools/apps-read.js.map +1 -1
- package/dist/mcp/tools/audit.d.ts.map +1 -1
- package/dist/mcp/tools/audit.js +17 -4
- package/dist/mcp/tools/audit.js.map +1 -1
- package/dist/mcp/tools/exchange.d.ts.map +1 -1
- package/dist/mcp/tools/exchange.js +38 -18
- package/dist/mcp/tools/exchange.js.map +1 -1
- package/dist/mcp/tools/identity.d.ts.map +1 -1
- package/dist/mcp/tools/identity.js +29 -2
- package/dist/mcp/tools/identity.js.map +1 -1
- package/dist/mcp/tools/index.d.ts +1 -0
- package/dist/mcp/tools/index.d.ts.map +1 -1
- package/dist/mcp/tools/index.js +1 -0
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/logs.d.ts +1 -1
- package/dist/mcp/tools/logs.d.ts.map +1 -1
- package/dist/mcp/tools/logs.js +34 -1
- package/dist/mcp/tools/logs.js.map +1 -1
- package/dist/mcp/tools/monitoring.d.ts.map +1 -1
- package/dist/mcp/tools/monitoring.js +5 -3
- package/dist/mcp/tools/monitoring.js.map +1 -1
- package/dist/mcp/tools/output-schemas.d.ts +83 -0
- package/dist/mcp/tools/output-schemas.d.ts.map +1 -0
- package/dist/mcp/tools/output-schemas.js +81 -0
- package/dist/mcp/tools/output-schemas.js.map +1 -0
- package/dist/mcp/tools/profile.d.ts +17 -3
- package/dist/mcp/tools/profile.d.ts.map +1 -1
- package/dist/mcp/tools/profile.js +122 -10
- package/dist/mcp/tools/profile.js.map +1 -1
- package/dist/mcp/tools/shared.d.ts +34 -2
- package/dist/mcp/tools/shared.d.ts.map +1 -1
- package/dist/mcp/tools/shared.js +37 -4
- package/dist/mcp/tools/shared.js.map +1 -1
- package/dist/safety/artifact.d.ts +45 -0
- package/dist/safety/artifact.d.ts.map +1 -1
- package/dist/safety/artifact.js +109 -0
- package/dist/safety/artifact.js.map +1 -1
- package/dist/safety/guards.d.ts +10 -0
- package/dist/safety/guards.d.ts.map +1 -1
- package/dist/safety/guards.js +16 -0
- package/dist/safety/guards.js.map +1 -1
- package/dist/safety/plan-binding.d.ts +21 -0
- package/dist/safety/plan-binding.d.ts.map +1 -0
- package/dist/safety/plan-binding.js +61 -0
- package/dist/safety/plan-binding.js.map +1 -0
- package/dist/safety/preapproval.d.ts +102 -0
- package/dist/safety/preapproval.d.ts.map +1 -0
- package/dist/safety/preapproval.js +251 -0
- package/dist/safety/preapproval.js.map +1 -0
- package/dist/safety/secrets.d.ts +7 -0
- package/dist/safety/secrets.d.ts.map +1 -1
- package/dist/safety/secrets.js +16 -0
- package/dist/safety/secrets.js.map +1 -1
- package/dist/utils/formatter.d.ts +2 -0
- package/dist/utils/formatter.d.ts.map +1 -1
- package/dist/utils/formatter.js +4 -0
- package/dist/utils/formatter.js.map +1 -1
- package/dist/utils/logger.d.ts +2 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +23 -13
- package/dist/utils/logger.js.map +1 -1
- package/dist/workflows/alerts.d.ts +309 -0
- package/dist/workflows/alerts.d.ts.map +1 -0
- package/dist/workflows/alerts.js +631 -0
- package/dist/workflows/alerts.js.map +1 -0
- package/dist/workflows/app-change.d.ts +32 -1
- package/dist/workflows/app-change.d.ts.map +1 -1
- package/dist/workflows/app-change.js +57 -2
- package/dist/workflows/app-change.js.map +1 -1
- package/dist/workflows/artifact-verification.d.ts +52 -0
- package/dist/workflows/artifact-verification.d.ts.map +1 -0
- package/dist/workflows/artifact-verification.js +85 -0
- package/dist/workflows/artifact-verification.js.map +1 -0
- package/dist/workflows/jar-deployment.d.ts +37 -10
- package/dist/workflows/jar-deployment.d.ts.map +1 -1
- package/dist/workflows/jar-deployment.js +44 -13
- package/dist/workflows/jar-deployment.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Alerts API
|
|
3
|
+
* Anypoint Monitoring alerts (the observability family behind the Monitoring UI) and a read of
|
|
4
|
+
* Runtime Manager event alerts.
|
|
5
|
+
*
|
|
6
|
+
* These endpoints are not publicly documented. Shapes follow observed responses and may change; a
|
|
7
|
+
* family that answers 404 or 403 on list is reported as unsupported (AlertsUnsupportedError) rather
|
|
8
|
+
* than as "no alerts".
|
|
9
|
+
*/
|
|
10
|
+
import { AxiosError } from 'axios';
|
|
11
|
+
import { sanitizePlatformText } from '../safety/secrets.js';
|
|
12
|
+
import { errorMessage } from '../utils/errors.js';
|
|
13
|
+
export const ALERT_METRIC_IDS = [
|
|
14
|
+
'cpu_utilization',
|
|
15
|
+
'memory_utilization',
|
|
16
|
+
'thread_count',
|
|
17
|
+
'message_count',
|
|
18
|
+
'message_error_count',
|
|
19
|
+
'message_response_time',
|
|
20
|
+
'api_request_count',
|
|
21
|
+
'api_response_time',
|
|
22
|
+
'api_response_code_count',
|
|
23
|
+
'api_policy_violation_count',
|
|
24
|
+
];
|
|
25
|
+
export const ALERT_OPERATORS = [
|
|
26
|
+
'GREATER_THAN',
|
|
27
|
+
'LESS_THAN',
|
|
28
|
+
'GREATER_THAN_EQUAL_TO',
|
|
29
|
+
'LESS_THAN_EQUAL_TO',
|
|
30
|
+
'EQUALS',
|
|
31
|
+
];
|
|
32
|
+
export class AlertsUnsupportedError extends Error {
|
|
33
|
+
family;
|
|
34
|
+
status;
|
|
35
|
+
constructor(family, status) {
|
|
36
|
+
super(`${family} alerts are not available for this organization or token (HTTP ${status})`);
|
|
37
|
+
this.family = family;
|
|
38
|
+
this.status = status;
|
|
39
|
+
this.name = 'AlertsUnsupportedError';
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
export class AlertPendingError extends Error {
|
|
43
|
+
constructor(id) {
|
|
44
|
+
super(`Alert ${id} is still PENDING (being provisioned or deleted), and the platform refuses changes until it is ACTIVE. Retry in a minute or two.`);
|
|
45
|
+
this.name = 'AlertPendingError';
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
const BASE = '/observability/api/v1';
|
|
49
|
+
const PAGE_SIZE = 100;
|
|
50
|
+
/** Hard stop for pagination: 2,000 alerts. */
|
|
51
|
+
const MAX_PAGES = 20;
|
|
52
|
+
function status(error) {
|
|
53
|
+
return error instanceof AxiosError ? error.response?.status : undefined;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Map platform errors to messages that say what happened. Platform text is sanitized first: an alert
|
|
57
|
+
* error can echo recipients or tokens, and it ends up in MCP responses and CLI output.
|
|
58
|
+
*/
|
|
59
|
+
export function alertError(error, id) {
|
|
60
|
+
const code = status(error);
|
|
61
|
+
const detail = sanitizePlatformText(errorMessage(error));
|
|
62
|
+
if (code === 404)
|
|
63
|
+
return new Error(`${id ? `Alert ${id}` : 'Alert'} not found (it may have been deleted)`);
|
|
64
|
+
if (code === 400 && /not present or deleted/i.test(detail) && id)
|
|
65
|
+
return new AlertPendingError(id);
|
|
66
|
+
if (code === 400)
|
|
67
|
+
return new Error(`The alert was rejected (HTTP 400): ${detail}`);
|
|
68
|
+
return new Error(code ? `Alert request failed (HTTP ${code}): ${detail}` : detail);
|
|
69
|
+
}
|
|
70
|
+
export class AlertsApi {
|
|
71
|
+
http;
|
|
72
|
+
constructor(http) {
|
|
73
|
+
this.http = http;
|
|
74
|
+
}
|
|
75
|
+
url(orgId, id) {
|
|
76
|
+
return `${BASE}/organizations/${orgId}/alerts${id ? `/${encodeURIComponent(id)}` : ''}`;
|
|
77
|
+
}
|
|
78
|
+
/** Every Monitoring alert of the organization, optionally narrowed by environment ID and exact name. */
|
|
79
|
+
async list(orgId, filter = {}) {
|
|
80
|
+
return (await this.listAll(orgId, filter)).alerts;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Like {@link list}, and says whether the listing is complete. It is not when the page cap was
|
|
84
|
+
* reached with more pages left; callers must not infer that an alert is absent from such a listing.
|
|
85
|
+
*/
|
|
86
|
+
async listAll(orgId, filter = {}) {
|
|
87
|
+
const alerts = [];
|
|
88
|
+
for (let page = 0; page < MAX_PAGES; page++) {
|
|
89
|
+
const params = new URLSearchParams({ limit: String(PAGE_SIZE), offset: String(page * PAGE_SIZE) });
|
|
90
|
+
if (filter.environmentId)
|
|
91
|
+
params.set('environmentId', filter.environmentId);
|
|
92
|
+
if (filter.name)
|
|
93
|
+
params.set('name', filter.name);
|
|
94
|
+
let response;
|
|
95
|
+
try {
|
|
96
|
+
response = await this.http.get(`${this.url(orgId)}?${params}`);
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
const code = status(error);
|
|
100
|
+
if (code === 404 || code === 403)
|
|
101
|
+
throw new AlertsUnsupportedError('Monitoring', code);
|
|
102
|
+
throw alertError(error);
|
|
103
|
+
}
|
|
104
|
+
const batch = response.data ?? [];
|
|
105
|
+
alerts.push(...batch);
|
|
106
|
+
if (batch.length < PAGE_SIZE || !response.metadata?.pagination?.next)
|
|
107
|
+
return { alerts, complete: true };
|
|
108
|
+
}
|
|
109
|
+
return { alerts, complete: false };
|
|
110
|
+
}
|
|
111
|
+
/** One alert, or null when it does not exist (any more). */
|
|
112
|
+
async get(orgId, id) {
|
|
113
|
+
try {
|
|
114
|
+
const response = await this.http.get(this.url(orgId, id));
|
|
115
|
+
return response.data ?? null;
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
if (status(error) === 404)
|
|
119
|
+
return null;
|
|
120
|
+
throw alertError(error, id);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
async create(orgId, body) {
|
|
124
|
+
try {
|
|
125
|
+
const response = await this.http.post(this.url(orgId), body);
|
|
126
|
+
return response && 'data' in response ? response.data : response;
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
throw alertError(error);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
/** Replace an alert. The platform needs the full body; a partial one is rejected. */
|
|
133
|
+
async update(orgId, id, body) {
|
|
134
|
+
try {
|
|
135
|
+
await this.http.patch(this.url(orgId, id), { ...body, id });
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
throw alertError(error, id);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/** Request deletion. It is asynchronous: the alert can stay PENDING for a while before it is gone. */
|
|
142
|
+
async delete(orgId, id) {
|
|
143
|
+
try {
|
|
144
|
+
await this.http.delete(this.url(orgId, id));
|
|
145
|
+
return 'accepted';
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
// The platform also answers 404 while a change is still PENDING; callers check the list.
|
|
149
|
+
if (status(error) === 404)
|
|
150
|
+
return 'not-found';
|
|
151
|
+
throw alertError(error, id);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/** Runtime Manager event alerts (deployment failed and similar) for one environment. Read only. */
|
|
155
|
+
async listRuntimeManager(orgId, envId) {
|
|
156
|
+
try {
|
|
157
|
+
const response = await this.http.get('/armui/api/v1/alerts', { headers: { 'X-ANYPNT-ORG-ID': orgId, 'X-ANYPNT-ENV-ID': envId } });
|
|
158
|
+
return Array.isArray(response) ? response : (response.data ?? []);
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
const code = status(error);
|
|
162
|
+
if (code === 404 || code === 403)
|
|
163
|
+
throw new AlertsUnsupportedError('Runtime Manager', code);
|
|
164
|
+
throw alertError(error);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=AlertsApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AlertsApi.js","sourceRoot":"","sources":["../../src/api/AlertsApi.ts"],"names":[],"mappings":"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"}
|
package/dist/api/LogsApi.d.ts
CHANGED
|
@@ -26,6 +26,8 @@ export interface LogReadOptions {
|
|
|
26
26
|
* replaced by an update stays visible. Default 0: the desired spec, or the last successful one.
|
|
27
27
|
*/
|
|
28
28
|
previousSpecs?: number;
|
|
29
|
+
/** Cancels the request in flight. */
|
|
30
|
+
signal?: AbortSignal;
|
|
29
31
|
}
|
|
30
32
|
/** Where a log file came from. */
|
|
31
33
|
export interface LogSource {
|
|
@@ -40,6 +42,15 @@ export interface LogSource {
|
|
|
40
42
|
export interface LogFile extends LogSource {
|
|
41
43
|
text: string;
|
|
42
44
|
}
|
|
45
|
+
/** One spec's log text. */
|
|
46
|
+
export interface LogPart {
|
|
47
|
+
specId: string;
|
|
48
|
+
text: string;
|
|
49
|
+
}
|
|
50
|
+
/** The log text of every spec read, kept apart, oldest first. */
|
|
51
|
+
export interface LogParts extends LogSource {
|
|
52
|
+
parts: LogPart[];
|
|
53
|
+
}
|
|
43
54
|
export interface LogSearchResponse {
|
|
44
55
|
/** Matches before `limit` was applied */
|
|
45
56
|
total: number;
|
|
@@ -50,6 +61,45 @@ export interface LogSearchResponse {
|
|
|
50
61
|
entries: EnrichedLogEntry[];
|
|
51
62
|
source: LogSource;
|
|
52
63
|
}
|
|
64
|
+
/** What a followed log reports. */
|
|
65
|
+
export type TailEvent =
|
|
66
|
+
/** New records, oldest first, that pass the filters. */
|
|
67
|
+
{
|
|
68
|
+
type: 'records';
|
|
69
|
+
entries: EnrichedLogEntry[];
|
|
70
|
+
specId: string;
|
|
71
|
+
}
|
|
72
|
+
/** The spec being followed: first announced, then whenever it changes. */
|
|
73
|
+
| {
|
|
74
|
+
type: 'specChange';
|
|
75
|
+
from: string | null;
|
|
76
|
+
to: string;
|
|
77
|
+
fallbackFromSpecId?: string;
|
|
78
|
+
}
|
|
79
|
+
/** Records may have been missed: more arrived between reads than one read covers. */
|
|
80
|
+
| {
|
|
81
|
+
type: 'gap';
|
|
82
|
+
message: string;
|
|
83
|
+
}
|
|
84
|
+
/** A read failed; following continues. */
|
|
85
|
+
| {
|
|
86
|
+
type: 'error';
|
|
87
|
+
message: string;
|
|
88
|
+
}
|
|
89
|
+
/** How the log is read: `incremental` asks only for records after the last one seen; `file` downloads the whole file each time (the incremental endpoint was unavailable). */
|
|
90
|
+
| {
|
|
91
|
+
type: 'transport';
|
|
92
|
+
mode: 'incremental' | 'file';
|
|
93
|
+
reason?: string;
|
|
94
|
+
};
|
|
95
|
+
export interface TailOptions extends Pick<LogFilter, 'level' | 'search' | 'regex' | 'logger'> {
|
|
96
|
+
/** Milliseconds between reads (default 5000). */
|
|
97
|
+
intervalMs?: number;
|
|
98
|
+
/** Follow exactly this spec instead of the current one. */
|
|
99
|
+
specId?: string;
|
|
100
|
+
/** Stops following, including the wait and the request in flight. */
|
|
101
|
+
signal?: AbortSignal;
|
|
102
|
+
}
|
|
53
103
|
/**
|
|
54
104
|
* Parse a log file into entries, oldest first. A file read across several specs holds one
|
|
55
105
|
* block per spec, and replicas of two generations can overlap in time, so entries are sorted.
|
|
@@ -63,7 +113,7 @@ export declare class LogsApi {
|
|
|
63
113
|
* Download the full log file for a CH2 deployment.
|
|
64
114
|
* Returns raw log text.
|
|
65
115
|
*/
|
|
66
|
-
downloadLogFile(orgId: string, envId: string, deploymentId: string, specId: string): Promise<Buffer>;
|
|
116
|
+
downloadLogFile(orgId: string, envId: string, deploymentId: string, specId: string, signal?: AbortSignal): Promise<Buffer>;
|
|
67
117
|
/**
|
|
68
118
|
* Resolve an app name to its deployment and the specs whose logs to read, preferred first:
|
|
69
119
|
* the desired spec, then the last successful one when it differs.
|
|
@@ -76,9 +126,12 @@ export declare class LogsApi {
|
|
|
76
126
|
*/
|
|
77
127
|
getLogFile(orgId: string, envId: string, appName: string, read?: LogReadOptions): Promise<LogFile>;
|
|
78
128
|
/**
|
|
79
|
-
*
|
|
80
|
-
*
|
|
129
|
+
* The same read as {@link getLogFile}, with each spec's text kept apart, for callers that
|
|
130
|
+
* report per spec. With previousSpecs, specs without a log file (never started, or expired)
|
|
131
|
+
* are skipped.
|
|
81
132
|
*/
|
|
133
|
+
getLogParts(orgId: string, envId: string, appName: string, read?: LogReadOptions): Promise<LogParts>;
|
|
134
|
+
/** Read the desired spec and up to `count` specs before it, oldest first. */
|
|
82
135
|
private readSpecs;
|
|
83
136
|
/**
|
|
84
137
|
* Get raw log text for a CH2 application (for analysis pipeline).
|
|
@@ -104,16 +157,39 @@ export declare class LogsApi {
|
|
|
104
157
|
source: LogSource;
|
|
105
158
|
}>;
|
|
106
159
|
/**
|
|
107
|
-
*
|
|
108
|
-
*
|
|
160
|
+
* Follow an app's log as typed events. Polls the log file; each poll yields only records not
|
|
161
|
+
* yielded before. Records that share a millisecond are all kept (and identical lines counted),
|
|
162
|
+
* the position advances past every record read before any filter hides some, and `signal`
|
|
163
|
+
* stops the wait and the request in flight.
|
|
164
|
+
*
|
|
165
|
+
* Without `specId` it follows the current spec (the desired one, or the last successful one
|
|
166
|
+
* with a notice) and says when that changes. With `specId` it follows exactly that spec: one
|
|
167
|
+
* that is not this app's is an error, never replaced by another; so is one with no log file when the
|
|
168
|
+
* log is read from the file. On the incremental endpoint a spec without records yet is simply
|
|
169
|
+
* followed until it has some.
|
|
170
|
+
*/
|
|
171
|
+
tailEvents(orgId: string, envId: string, appName: string, options?: TailOptions): AsyncGenerator<TailEvent, void, undefined>;
|
|
172
|
+
/**
|
|
173
|
+
* Tail logs: a generator that yields new log entries. A view of {@link tailEvents} for callers
|
|
174
|
+
* that want only the records; read errors go to stderr and following continues.
|
|
175
|
+
*/
|
|
176
|
+
tailLogs(orgId: string, envId: string, appName: string, options?: Omit<TailOptions, 'signal' | 'specId'>): AsyncGenerator<LogEntry[], void, unknown>;
|
|
177
|
+
/**
|
|
178
|
+
* The incremental read: records of one spec from `since` on, through the structured log endpoint.
|
|
179
|
+
* It returns 10 records per request, oldest first, with `startTime` inclusive, so the read walks
|
|
180
|
+
* forward by the last record's time and drops repeats by `docId`. At most MAX_INCREMENTAL_PAGES
|
|
181
|
+
* requests per read; when more remain the read says so and the caller reads again at once.
|
|
109
182
|
*/
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
183
|
+
private readStructured;
|
|
184
|
+
/** The incremental read of the current spec: the desired one, or the last successful one while the desired has no records. */
|
|
185
|
+
private readStructuredCurrent;
|
|
186
|
+
private fetchStructuredPage;
|
|
187
|
+
/** The full-file read: download the log file and parse its newest window. */
|
|
188
|
+
private readFileWindow;
|
|
189
|
+
/** The deployment of `appName` and `specId`, once the spec is known to belong to it. */
|
|
190
|
+
private resolvePinnedSpec;
|
|
191
|
+
private readPinnedSpec;
|
|
192
|
+
private readCurrentSpec;
|
|
117
193
|
/**
|
|
118
194
|
* Get all logs for a time range, newest first.
|
|
119
195
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogsApi.d.ts","sourceRoot":"","sources":["../../src/api/LogsApi.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"LogsApi.d.ts","sourceRoot":"","sources":["../../src/api/LogsApi.ts"],"names":[],"mappings":"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"}
|