@sfdxy/anypoint-connect 0.16.2 → 0.17.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 +38 -5
- package/dist/api/LogsApi.d.ts.map +1 -1
- package/dist/api/LogsApi.js +70 -13
- package/dist/api/LogsApi.js.map +1 -1
- package/dist/cli.js +5 -1
- package/dist/cli.js.map +1 -1
- package/dist/client/AnypointClient.d.ts +2 -0
- package/dist/client/AnypointClient.d.ts.map +1 -1
- package/dist/client/AnypointClient.js +3 -0
- package/dist/client/AnypointClient.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 +358 -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 +26 -21
- package/dist/commands/apps.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 +3 -2
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +65 -4
- package/dist/commands/logs.js.map +1 -1
- package/dist/config/profiles.d.ts +10 -2
- package/dist/config/profiles.d.ts.map +1 -1
- package/dist/config/profiles.js +52 -21
- package/dist/config/profiles.js.map +1 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +3 -2
- 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 +409 -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 +4 -2
- package/dist/mcp/tools/app-inputs.d.ts.map +1 -1
- package/dist/mcp/tools/app-inputs.js +14 -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 +48 -12
- 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 +27 -12
- package/dist/mcp/tools/apps-lifecycle.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 +4 -1
- 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 +5 -3
- package/dist/mcp/tools/logs.d.ts.map +1 -1
- package/dist/mcp/tools/logs.js +60 -11
- package/dist/mcp/tools/logs.js.map +1 -1
- 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 +22 -2
- package/dist/mcp/tools/shared.d.ts.map +1 -1
- package/dist/mcp/tools/shared.js +29 -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/deployment.d.ts.map +1 -1
- package/dist/safety/deployment.js +9 -8
- package/dist/safety/deployment.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/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/workflows/alerts.d.ts +299 -0
- package/dist/workflows/alerts.d.ts.map +1 -0
- package/dist/workflows/alerts.js +595 -0
- package/dist/workflows/alerts.js.map +1 -0
- package/dist/workflows/app-change.d.ts +25 -1
- package/dist/workflows/app-change.d.ts.map +1 -1
- package/dist/workflows/app-change.js +22 -1
- 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 +36 -10
- package/dist/workflows/jar-deployment.d.ts.map +1 -1
- package/dist/workflows/jar-deployment.js +40 -12
- 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
|
@@ -18,6 +18,15 @@ export interface LogEntry {
|
|
|
18
18
|
instanceId?: string;
|
|
19
19
|
deploymentId?: string;
|
|
20
20
|
}
|
|
21
|
+
/** Most earlier specs one read may include. */
|
|
22
|
+
export declare const MAX_PREVIOUS_SPECS = 10;
|
|
23
|
+
export interface LogReadOptions {
|
|
24
|
+
/**
|
|
25
|
+
* Also read this many specs before the desired one (0 to MAX_PREVIOUS_SPECS), so the generation
|
|
26
|
+
* replaced by an update stays visible. Default 0: the desired spec, or the last successful one.
|
|
27
|
+
*/
|
|
28
|
+
previousSpecs?: number;
|
|
29
|
+
}
|
|
21
30
|
/** Where a log file came from. */
|
|
22
31
|
export interface LogSource {
|
|
23
32
|
deploymentId: string;
|
|
@@ -25,10 +34,21 @@ export interface LogSource {
|
|
|
25
34
|
specId: string;
|
|
26
35
|
/** Set when the desired spec had no log file or an empty one, and the last successful spec was read instead */
|
|
27
36
|
fallbackFromSpecId?: string;
|
|
37
|
+
/** With previousSpecs: every spec whose log file was read, oldest first */
|
|
38
|
+
specIds?: string[];
|
|
28
39
|
}
|
|
29
40
|
export interface LogFile extends LogSource {
|
|
30
41
|
text: string;
|
|
31
42
|
}
|
|
43
|
+
/** One spec's log text. */
|
|
44
|
+
export interface LogPart {
|
|
45
|
+
specId: string;
|
|
46
|
+
text: string;
|
|
47
|
+
}
|
|
48
|
+
/** The log text of every spec read, kept apart, oldest first. */
|
|
49
|
+
export interface LogParts extends LogSource {
|
|
50
|
+
parts: LogPart[];
|
|
51
|
+
}
|
|
32
52
|
export interface LogSearchResponse {
|
|
33
53
|
/** Matches before `limit` was applied */
|
|
34
54
|
total: number;
|
|
@@ -39,6 +59,11 @@ export interface LogSearchResponse {
|
|
|
39
59
|
entries: EnrichedLogEntry[];
|
|
40
60
|
source: LogSource;
|
|
41
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Parse a log file into entries, oldest first. A file read across several specs holds one
|
|
64
|
+
* block per spec, and replicas of two generations can overlap in time, so entries are sorted.
|
|
65
|
+
*/
|
|
66
|
+
export declare function parseLogFile(file: LogFile): EnrichedLogEntry[];
|
|
42
67
|
export declare class LogsApi {
|
|
43
68
|
private readonly http;
|
|
44
69
|
private readonly ch2?;
|
|
@@ -58,27 +83,35 @@ export declare class LogsApi {
|
|
|
58
83
|
* file can be missing or empty while the platform starts the new replicas, so the last
|
|
59
84
|
* successful spec's file is read instead and `fallbackFromSpecId` says so.
|
|
60
85
|
*/
|
|
61
|
-
getLogFile(orgId: string, envId: string, appName: string): Promise<LogFile>;
|
|
86
|
+
getLogFile(orgId: string, envId: string, appName: string, read?: LogReadOptions): Promise<LogFile>;
|
|
87
|
+
/**
|
|
88
|
+
* The same read as {@link getLogFile}, with each spec's text kept apart, for callers that
|
|
89
|
+
* report per spec. With previousSpecs, specs without a log file (never started, or expired)
|
|
90
|
+
* are skipped.
|
|
91
|
+
*/
|
|
92
|
+
getLogParts(orgId: string, envId: string, appName: string, read?: LogReadOptions): Promise<LogParts>;
|
|
93
|
+
/** Read the desired spec and up to `count` specs before it, oldest first. */
|
|
94
|
+
private readSpecs;
|
|
62
95
|
/**
|
|
63
96
|
* Get raw log text for a CH2 application (for analysis pipeline).
|
|
64
97
|
* Returns the full log file as a string without parsing.
|
|
65
98
|
*/
|
|
66
|
-
getRawText(orgId: string, envId: string, appName: string): Promise<string>;
|
|
99
|
+
getRawText(orgId: string, envId: string, appName: string, read?: LogReadOptions): Promise<string>;
|
|
67
100
|
/**
|
|
68
101
|
* Search an app's log file. Multi-line entries (stack traces, error reports, JSON Logger
|
|
69
102
|
* bodies) are joined to the line that starts them and keep its timestamp and level.
|
|
70
103
|
* Returns the newest `limit` matches (default 100, at most MAX_LOG_LINES) and the full match count.
|
|
71
104
|
*/
|
|
72
|
-
searchLogs(orgId: string, envId: string, appName: string, options?: LogSearchOptions): Promise<LogSearchResponse>;
|
|
105
|
+
searchLogs(orgId: string, envId: string, appName: string, options?: LogSearchOptions & LogReadOptions): Promise<LogSearchResponse>;
|
|
73
106
|
/**
|
|
74
107
|
* Get parsed log entries for a CH2 application, newest first.
|
|
75
108
|
* See `searchLogs` for the counts and the source spec.
|
|
76
109
|
*/
|
|
77
|
-
getLogs(orgId: string, envId: string, appName: string, options?: LogSearchOptions): Promise<EnrichedLogEntry[]>;
|
|
110
|
+
getLogs(orgId: string, envId: string, appName: string, options?: LogSearchOptions & LogReadOptions): Promise<EnrichedLogEntry[]>;
|
|
78
111
|
/**
|
|
79
112
|
* Every entry that passes a filter, oldest first, with no line cap.
|
|
80
113
|
*/
|
|
81
|
-
queryLogs(orgId: string, envId: string, appName: string, filter?: LogFilter): Promise<{
|
|
114
|
+
queryLogs(orgId: string, envId: string, appName: string, filter?: LogFilter, read?: LogReadOptions): Promise<{
|
|
82
115
|
entries: EnrichedLogEntry[];
|
|
83
116
|
source: LogSource;
|
|
84
117
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogsApi.d.ts","sourceRoot":"","sources":["../../src/api/LogsApi.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAA8B,KAAK,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG1G,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzE,MAAM,WAAW,QAAQ;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,kCAAkC;AAClC,MAAM,WAAW,SAAS;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,+GAA+G;IAC/G,kBAAkB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"LogsApi.d.ts","sourceRoot":"","sources":["../../src/api/LogsApi.ts"],"names":[],"mappings":"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"}
|
package/dist/api/LogsApi.js
CHANGED
|
@@ -7,16 +7,31 @@ import { parseRawLogs } from '../analysis/parser.js';
|
|
|
7
7
|
import { buildFilter, searchEntries } from '../analysis/filter.js';
|
|
8
8
|
import { errorMessage } from '../utils/errors.js';
|
|
9
9
|
export { MAX_LOG_LINES } from '../analysis/filter.js';
|
|
10
|
+
/** Most earlier specs one read may include. */
|
|
11
|
+
export const MAX_PREVIOUS_SPECS = 10;
|
|
10
12
|
const AMC_BASE = '/amc/application-manager/api/v2';
|
|
11
13
|
function httpStatus(error) {
|
|
12
14
|
return error?.response?.status;
|
|
13
15
|
}
|
|
14
16
|
function sourceOf(file) {
|
|
15
|
-
const
|
|
16
|
-
if (file.fallbackFromSpecId)
|
|
17
|
-
source.fallbackFromSpecId = file.fallbackFromSpecId;
|
|
17
|
+
const { text: _text, ...source } = file;
|
|
18
18
|
return source;
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Parse a log file into entries, oldest first. A file read across several specs holds one
|
|
22
|
+
* block per spec, and replicas of two generations can overlap in time, so entries are sorted.
|
|
23
|
+
*/
|
|
24
|
+
export function parseLogFile(file) {
|
|
25
|
+
const entries = parseRawLogs(file.text);
|
|
26
|
+
// Stable sort: entries that share a timestamp keep their file order.
|
|
27
|
+
return (file.specIds?.length ?? 0) > 1 ? entries.sort((a, b) => a.timestamp - b.timestamp) : entries;
|
|
28
|
+
}
|
|
29
|
+
function checkPreviousSpecs(count) {
|
|
30
|
+
if (!Number.isInteger(count) || count < 0 || count > MAX_PREVIOUS_SPECS) {
|
|
31
|
+
throw new Error(`previousSpecs must be a whole number from 0 to ${MAX_PREVIOUS_SPECS}`);
|
|
32
|
+
}
|
|
33
|
+
return count;
|
|
34
|
+
}
|
|
20
35
|
export class LogsApi {
|
|
21
36
|
http;
|
|
22
37
|
ch2;
|
|
@@ -60,9 +75,25 @@ export class LogsApi {
|
|
|
60
75
|
* file can be missing or empty while the platform starts the new replicas, so the last
|
|
61
76
|
* successful spec's file is read instead and `fallbackFromSpecId` says so.
|
|
62
77
|
*/
|
|
63
|
-
async getLogFile(orgId, envId, appName) {
|
|
78
|
+
async getLogFile(orgId, envId, appName, read = {}) {
|
|
79
|
+
const { parts, ...source } = await this.getLogParts(orgId, envId, appName, read);
|
|
80
|
+
if (!source.specIds)
|
|
81
|
+
return { ...source, text: parts[0]?.text ?? '' };
|
|
82
|
+
const blocks = parts.filter((p) => p.text.trim()).map((p) => (p.text.endsWith('\n') ? p.text : `${p.text}\n`));
|
|
83
|
+
return { ...source, text: blocks.join('') };
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* The same read as {@link getLogFile}, with each spec's text kept apart, for callers that
|
|
87
|
+
* report per spec. With previousSpecs, specs without a log file (never started, or expired)
|
|
88
|
+
* are skipped.
|
|
89
|
+
*/
|
|
90
|
+
async getLogParts(orgId, envId, appName, read = {}) {
|
|
91
|
+
const previousSpecs = checkPreviousSpecs(read.previousSpecs ?? 0);
|
|
64
92
|
const { deploymentId, specIds } = await this.resolveDeployment(orgId, envId, appName);
|
|
65
93
|
const [desired, previous] = specIds;
|
|
94
|
+
if (previousSpecs > 0) {
|
|
95
|
+
return this.readSpecs(orgId, envId, deploymentId, desired, previousSpecs);
|
|
96
|
+
}
|
|
66
97
|
let text = '';
|
|
67
98
|
try {
|
|
68
99
|
text = (await this.downloadLogFile(orgId, envId, deploymentId, desired)).toString('utf-8');
|
|
@@ -72,17 +103,43 @@ export class LogsApi {
|
|
|
72
103
|
throw error;
|
|
73
104
|
}
|
|
74
105
|
if (text.trim() || !previous) {
|
|
75
|
-
return { deploymentId, specId: desired, text };
|
|
106
|
+
return { deploymentId, specId: desired, parts: [{ specId: desired, text }] };
|
|
76
107
|
}
|
|
77
108
|
const fallback = (await this.downloadLogFile(orgId, envId, deploymentId, previous)).toString('utf-8');
|
|
78
|
-
return {
|
|
109
|
+
return {
|
|
110
|
+
deploymentId,
|
|
111
|
+
specId: previous,
|
|
112
|
+
fallbackFromSpecId: desired,
|
|
113
|
+
parts: [{ specId: previous, text: fallback }],
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/** Read the desired spec and up to `count` specs before it, oldest first. */
|
|
117
|
+
async readSpecs(orgId, envId, deploymentId, desired, count) {
|
|
118
|
+
if (!this.ch2)
|
|
119
|
+
throw new Error('CloudHub2Api required for log operations');
|
|
120
|
+
// The specs API lists newest first; start at the desired spec so a newer, unapplied one is not read.
|
|
121
|
+
const all = (await this.ch2.getDeploymentSpecs(orgId, envId, deploymentId)).map((s) => s.version);
|
|
122
|
+
const start = Math.max(all.indexOf(desired), 0);
|
|
123
|
+
const chosen = [desired, ...all.slice(start).filter((id) => id !== desired)].slice(0, count + 1).reverse();
|
|
124
|
+
const parts = [];
|
|
125
|
+
for (const specId of chosen) {
|
|
126
|
+
try {
|
|
127
|
+
const text = (await this.downloadLogFile(orgId, envId, deploymentId, specId)).toString('utf-8');
|
|
128
|
+
parts.push({ specId, text });
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
if (httpStatus(error) !== 404)
|
|
132
|
+
throw error;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return { deploymentId, specId: desired, specIds: parts.map((p) => p.specId), parts };
|
|
79
136
|
}
|
|
80
137
|
/**
|
|
81
138
|
* Get raw log text for a CH2 application (for analysis pipeline).
|
|
82
139
|
* Returns the full log file as a string without parsing.
|
|
83
140
|
*/
|
|
84
|
-
async getRawText(orgId, envId, appName) {
|
|
85
|
-
return (await this.getLogFile(orgId, envId, appName)).text;
|
|
141
|
+
async getRawText(orgId, envId, appName, read = {}) {
|
|
142
|
+
return (await this.getLogFile(orgId, envId, appName, read)).text;
|
|
86
143
|
}
|
|
87
144
|
/**
|
|
88
145
|
* Search an app's log file. Multi-line entries (stack traces, error reports, JSON Logger
|
|
@@ -90,8 +147,8 @@ export class LogsApi {
|
|
|
90
147
|
* Returns the newest `limit` matches (default 100, at most MAX_LOG_LINES) and the full match count.
|
|
91
148
|
*/
|
|
92
149
|
async searchLogs(orgId, envId, appName, options = {}) {
|
|
93
|
-
const file = await this.getLogFile(orgId, envId, appName);
|
|
94
|
-
return { ...searchEntries(
|
|
150
|
+
const file = await this.getLogFile(orgId, envId, appName, options);
|
|
151
|
+
return { ...searchEntries(parseLogFile(file), options), source: sourceOf(file) };
|
|
95
152
|
}
|
|
96
153
|
/**
|
|
97
154
|
* Get parsed log entries for a CH2 application, newest first.
|
|
@@ -103,9 +160,9 @@ export class LogsApi {
|
|
|
103
160
|
/**
|
|
104
161
|
* Every entry that passes a filter, oldest first, with no line cap.
|
|
105
162
|
*/
|
|
106
|
-
async queryLogs(orgId, envId, appName, filter = {}) {
|
|
107
|
-
const file = await this.getLogFile(orgId, envId, appName);
|
|
108
|
-
return { entries:
|
|
163
|
+
async queryLogs(orgId, envId, appName, filter = {}, read = {}) {
|
|
164
|
+
const file = await this.getLogFile(orgId, envId, appName, read);
|
|
165
|
+
return { entries: parseLogFile(file).filter(buildFilter(filter)), source: sourceOf(file) };
|
|
109
166
|
}
|
|
110
167
|
/**
|
|
111
168
|
* Tail logs: a generator that yields new log entries.
|
package/dist/api/LogsApi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogsApi.js","sourceRoot":"","sources":["../../src/api/LogsApi.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAyC,MAAM,uBAAuB,CAAC;AAC1G,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"LogsApi.js","sourceRoot":"","sources":["../../src/api/LogsApi.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -14,6 +14,7 @@ import { createExchangeCommand } from './commands/exchange.js';
|
|
|
14
14
|
import { createApiCommand } from './commands/api.js';
|
|
15
15
|
import { createDesignCenterCommand } from './commands/design-center.js';
|
|
16
16
|
import { createRuntimesCommand } from './commands/runtimes.js';
|
|
17
|
+
import { createAlertsCommand } from './commands/alerts.js';
|
|
17
18
|
import { VERSION } from './version.js';
|
|
18
19
|
import { migrateIfNeeded } from './config/profiles.js';
|
|
19
20
|
// Auto-migrate legacy config to profiles/default/ if needed
|
|
@@ -22,7 +23,9 @@ const program = new Command();
|
|
|
22
23
|
program
|
|
23
24
|
.name('anc')
|
|
24
25
|
.description('Anypoint Connect — CLI for Anypoint Platform\n\nSupports named profiles for multi-org workflows. Use --profile on auth/config commands\nor place .anypoint-connect.json in your project to auto-select a profile.')
|
|
25
|
-
.version(VERSION)
|
|
26
|
+
.version(VERSION)
|
|
27
|
+
// Program options only before the subcommand, so `apps update --version 1.2.0` reaches the subcommand
|
|
28
|
+
.enablePositionalOptions();
|
|
26
29
|
program.addCommand(createConfigCommand());
|
|
27
30
|
program.addCommand(createAuthCommand());
|
|
28
31
|
program.addCommand(createAppsCommand());
|
|
@@ -33,6 +36,7 @@ program.addCommand(createExchangeCommand());
|
|
|
33
36
|
program.addCommand(createApiCommand());
|
|
34
37
|
program.addCommand(createDesignCenterCommand());
|
|
35
38
|
program.addCommand(createRuntimesCommand());
|
|
39
|
+
program.addCommand(createAlertsCommand());
|
|
36
40
|
program
|
|
37
41
|
.command('mcp')
|
|
38
42
|
.description('Start the MCP (Model Context Protocol) server over stdio')
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,4DAA4D;AAC5D,eAAe,EAAE,CAAC;AAElB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACF,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CACR,mNAAmN,CACtN;KACA,OAAO,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,4DAA4D;AAC5D,eAAe,EAAE,CAAC;AAElB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACF,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CACR,mNAAmN,CACtN;KACA,OAAO,CAAC,OAAO,CAAC;IACjB,sGAAsG;KACrG,uBAAuB,EAAE,CAAC;AAE/B,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAC5C,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC;AAChD,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAC5C,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAE1C,OAAO;KACF,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,0DAA0D,CAAC;KACvE,MAAM,CAAC,KAAK,IAAI,EAAE;IACf,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;IAC9C,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACzB,CAAC,CAAC,CAAC;AAEP,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -17,6 +17,7 @@ import { AuditLogApi } from '../api/AuditLogApi.js';
|
|
|
17
17
|
import { AnypointMQApi } from '../api/AnypointMQApi.js';
|
|
18
18
|
import { ObjectStoreApi } from '../api/ObjectStoreApi.js';
|
|
19
19
|
import { RuntimesApi } from '../api/RuntimesApi.js';
|
|
20
|
+
import { AlertsApi } from '../api/AlertsApi.js';
|
|
20
21
|
export interface AnypointClientConfig {
|
|
21
22
|
clientId: string;
|
|
22
23
|
clientSecret: string;
|
|
@@ -42,6 +43,7 @@ export declare class AnypointClient {
|
|
|
42
43
|
readonly anypointMQ: AnypointMQApi;
|
|
43
44
|
readonly objectStore: ObjectStoreApi;
|
|
44
45
|
readonly runtimes: RuntimesApi;
|
|
46
|
+
readonly alerts: AlertsApi;
|
|
45
47
|
constructor(config: AnypointClientConfig);
|
|
46
48
|
getAuthStatus(): Promise<AuthStatus>;
|
|
47
49
|
getAuthorizeUrl(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnypointClient.d.ts","sourceRoot":"","sources":["../../src/client/AnypointClient.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,KAAK,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"AnypointClient.d.ts","sourceRoot":"","sources":["../../src/client/AnypointClient.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,KAAK,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,cAAc;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAG9B,SAAgB,gBAAgB,EAAE,mBAAmB,CAAC;IACtD,SAAgB,SAAS,EAAE,YAAY,CAAC;IACxC,SAAgB,IAAI,EAAE,OAAO,CAAC;IAC9B,SAAgB,UAAU,EAAE,aAAa,CAAC;IAC1C,SAAgB,QAAQ,EAAE,WAAW,CAAC;IACtC,SAAgB,UAAU,EAAE,aAAa,CAAC;IAC1C,SAAgB,YAAY,EAAE,eAAe,CAAC;IAC9C,SAAgB,oBAAoB,EAAE,oBAAoB,CAAC;IAC3D,SAAgB,UAAU,EAAE,aAAa,CAAC;IAC1C,SAAgB,QAAQ,EAAE,WAAW,CAAC;IACtC,SAAgB,UAAU,EAAE,aAAa,CAAC;IAC1C,SAAgB,WAAW,EAAE,cAAc,CAAC;IAC5C,SAAgB,QAAQ,EAAE,WAAW,CAAC;IACtC,SAAgB,MAAM,EAAE,SAAS,CAAC;gBAEtB,MAAM,EAAE,oBAAoB;IAkClC,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAI1C,eAAe,IAAI,MAAM;IAInB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAOvB,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC;IAI9B,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAKxC,UAAU,IAAI,IAAI;IAIlB,8DAA8D;IAC9D,QAAQ,IAAI,KAAK;CAGpB"}
|
|
@@ -18,6 +18,7 @@ import { AuditLogApi } from '../api/AuditLogApi.js';
|
|
|
18
18
|
import { AnypointMQApi } from '../api/AnypointMQApi.js';
|
|
19
19
|
import { ObjectStoreApi } from '../api/ObjectStoreApi.js';
|
|
20
20
|
import { RuntimesApi } from '../api/RuntimesApi.js';
|
|
21
|
+
import { AlertsApi } from '../api/AlertsApi.js';
|
|
21
22
|
import { DEFAULT_CALLBACK_URL } from '../config/profiles.js';
|
|
22
23
|
export class AnypointClient {
|
|
23
24
|
tokenManager;
|
|
@@ -37,6 +38,7 @@ export class AnypointClient {
|
|
|
37
38
|
anypointMQ;
|
|
38
39
|
objectStore;
|
|
39
40
|
runtimes;
|
|
41
|
+
alerts;
|
|
40
42
|
constructor(config) {
|
|
41
43
|
this.tokenManager = new TokenManager({
|
|
42
44
|
clientId: config.clientId,
|
|
@@ -63,6 +65,7 @@ export class AnypointClient {
|
|
|
63
65
|
this.anypointMQ = new AnypointMQApi(this.httpClient, this.cache);
|
|
64
66
|
this.objectStore = new ObjectStoreApi(this.httpClient, this.cache);
|
|
65
67
|
this.runtimes = new RuntimesApi(this.httpClient, this.cache);
|
|
68
|
+
this.alerts = new AlertsApi(this.httpClient);
|
|
66
69
|
}
|
|
67
70
|
// ── Auth ──────────────────────────────────────────
|
|
68
71
|
async getAuthStatus() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnypointClient.js","sourceRoot":"","sources":["../../src/client/AnypointClient.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAmB,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAoB,MAAM,+BAA+B,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAW7D,MAAM,OAAO,cAAc;IACN,YAAY,CAAe;IAC3B,UAAU,CAAa;IACvB,KAAK,CAAQ;IAE9B,cAAc;IACE,gBAAgB,CAAsB;IACtC,SAAS,CAAe;IACxB,IAAI,CAAU;IACd,UAAU,CAAgB;IAC1B,QAAQ,CAAc;IACtB,UAAU,CAAgB;IAC1B,YAAY,CAAkB;IAC9B,oBAAoB,CAAuB;IAC3C,UAAU,CAAgB;IAC1B,QAAQ,CAAc;IACtB,UAAU,CAAgB;IAC1B,WAAW,CAAiB;IAC5B,QAAQ,CAAc;
|
|
1
|
+
{"version":3,"file":"AnypointClient.js","sourceRoot":"","sources":["../../src/client/AnypointClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Alerts CLI Commands
|
|
3
|
+
* anc alerts list [--env <name>] [--app <name>] [--api-instance <id>] [--name <text>] [--status <s>] [--source <s>] [--reveal] [--json]
|
|
4
|
+
* anc alerts get <id> [--reveal] [--json]
|
|
5
|
+
* anc alerts create --env <name> --name <name> (--app <name> | --api-instance <id>) --metric <id> --operator <op>
|
|
6
|
+
* --threshold <n> --duration <minutes> --severity <0-2> (--email <addr>... --subject <s> | --slack-channel <id>)
|
|
7
|
+
* --message <text> [--enabled] [--allow-duplicate] [--dry-run] [--force]
|
|
8
|
+
* anc alerts update <id> [--name] [--severity] [--operator] [--threshold] [--duration] [--dry-run] [--force]
|
|
9
|
+
* anc alerts enable|disable <id> [--dry-run] [--force]
|
|
10
|
+
* anc alerts delete <id> [--confirm <name>] [--allow-production]
|
|
11
|
+
*
|
|
12
|
+
* Same workflows as the MCP alert tools (src/workflows/alerts.ts). Uses an undocumented API.
|
|
13
|
+
*/
|
|
14
|
+
import { Command } from 'commander';
|
|
15
|
+
export declare function createAlertsCommand(): Command;
|
|
16
|
+
//# sourceMappingURL=alerts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alerts.d.ts","sourceRoot":"","sources":["../../src/commands/alerts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgHpC,wBAAgB,mBAAmB,IAAI,OAAO,CAwS7C"}
|