@salesforce/b2c-tooling-sdk 1.17.0 → 1.19.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/data/content-schemas/componenttype.json +79 -17
- package/data/content-schemas/pagetype.json +4 -0
- package/data/guides/enrichment.json +11264 -0
- package/data/guides/index.json +15166 -0
- package/data/job-steps/index.json +71 -1
- package/data/job-steps/job-steps.json +1 -1
- package/data/script-api/index.json +2145 -37
- package/data/tooling/index.json +222 -0
- package/data/xsd/index.json +1 -1
- package/dist/esm/auth/client-credentials.d.ts +27 -0
- package/dist/esm/auth/client-credentials.js +60 -0
- package/dist/esm/auth/client-credentials.js.map +1 -0
- package/dist/esm/auth/index.d.ts +1 -0
- package/dist/esm/auth/index.js +2 -0
- package/dist/esm/auth/index.js.map +1 -1
- package/dist/esm/auth/oauth.js +2 -1
- package/dist/esm/auth/oauth.js.map +1 -1
- package/dist/esm/cli/base-command.d.ts +40 -0
- package/dist/esm/cli/base-command.js +66 -5
- package/dist/esm/cli/base-command.js.map +1 -1
- package/dist/esm/cli/index.d.ts +2 -2
- package/dist/esm/cli/index.js +1 -1
- package/dist/esm/cli/index.js.map +1 -1
- package/dist/esm/cli/instance-command.d.ts +1 -1
- package/dist/esm/cli/instance-command.js +5 -3
- package/dist/esm/cli/instance-command.js.map +1 -1
- package/dist/esm/cli/oauth-command.d.ts +1 -1
- package/dist/esm/cli/oauth-command.js +5 -3
- package/dist/esm/cli/oauth-command.js.map +1 -1
- package/dist/esm/cli/ods-command.d.ts +1 -1
- package/dist/esm/cli/webdav-command.d.ts +1 -1
- package/dist/esm/clients/index.d.ts +2 -0
- package/dist/esm/clients/index.js +1 -0
- package/dist/esm/clients/index.js.map +1 -1
- package/dist/esm/clients/metrics.d.ts +123 -0
- package/dist/esm/clients/metrics.generated.d.ts +1016 -0
- package/dist/esm/clients/metrics.generated.js +6 -0
- package/dist/esm/clients/metrics.generated.js.map +1 -0
- package/dist/esm/clients/metrics.js +65 -0
- package/dist/esm/clients/metrics.js.map +1 -0
- package/dist/esm/clients/middleware-registry.d.ts +1 -1
- package/dist/esm/clients/middleware-registry.js.map +1 -1
- package/dist/esm/config/sources/env-source.js +1 -0
- package/dist/esm/config/sources/env-source.js.map +1 -1
- package/dist/esm/discovery/detector.d.ts +0 -5
- package/dist/esm/discovery/detector.js +24 -3
- package/dist/esm/discovery/detector.js.map +1 -1
- package/dist/esm/discovery/index.d.ts +1 -0
- package/dist/esm/discovery/index.js +1 -0
- package/dist/esm/discovery/index.js.map +1 -1
- package/dist/esm/discovery/patterns/index.d.ts +4 -2
- package/dist/esm/discovery/patterns/index.js +9 -3
- package/dist/esm/discovery/patterns/index.js.map +1 -1
- package/dist/esm/discovery/patterns/pwa-kit.d.ts +12 -0
- package/dist/esm/discovery/patterns/pwa-kit.js +18 -7
- package/dist/esm/discovery/patterns/pwa-kit.js.map +1 -1
- package/dist/esm/discovery/patterns/sfra.d.ts +5 -4
- package/dist/esm/discovery/patterns/sfra.js +1 -1
- package/dist/esm/discovery/patterns/sfra.js.map +1 -1
- package/dist/esm/discovery/patterns/storefront-next.js +18 -2
- package/dist/esm/discovery/patterns/storefront-next.js.map +1 -1
- package/dist/esm/discovery/types.d.ts +13 -4
- package/dist/esm/discovery/types.js +11 -1
- package/dist/esm/discovery/types.js.map +1 -1
- package/dist/esm/docs/index.d.ts +3 -3
- package/dist/esm/docs/index.js +1 -1
- package/dist/esm/docs/index.js.map +1 -1
- package/dist/esm/docs/search.d.ts +111 -38
- package/dist/esm/docs/search.js +402 -81
- package/dist/esm/docs/search.js.map +1 -1
- package/dist/esm/docs/types.d.ts +56 -6
- package/dist/esm/docs/types.js +2 -0
- package/dist/esm/docs/types.js.map +1 -1
- package/dist/esm/index.d.ts +4 -2
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/operations/logs/filter.d.ts +6 -1
- package/dist/esm/operations/logs/filter.js +7 -2
- package/dist/esm/operations/logs/filter.js.map +1 -1
- package/dist/esm/operations/metrics/index.d.ts +371 -0
- package/dist/esm/operations/metrics/index.js +478 -0
- package/dist/esm/operations/metrics/index.js.map +1 -0
- package/dist/esm/operations/metrics/tags.d.ts +148 -0
- package/dist/esm/operations/metrics/tags.js +235 -0
- package/dist/esm/operations/metrics/tags.js.map +1 -0
- package/dist/esm/slas/token.d.ts +9 -2
- package/dist/esm/slas/token.js +25 -29
- package/dist/esm/slas/token.js.map +1 -1
- package/dist/esm/telemetry/telemetry.d.ts +1 -0
- package/dist/esm/telemetry/telemetry.js +32 -0
- package/dist/esm/telemetry/telemetry.js.map +1 -1
- package/dist/esm/telemetry/types.d.ts +6 -0
- package/package.json +12 -3
- package/specs/metrics-v1.json +1713 -0
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025, Salesforce, Inc.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2
|
|
4
|
+
* For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { normalizeTenantId } from '../../clients/custom-apis.js';
|
|
7
|
+
import { getLogger } from '../../logging/logger.js';
|
|
8
|
+
/**
|
|
9
|
+
* Maps a {@link MetricsTagContext} filter field to the tag key it authoritatively
|
|
10
|
+
* sets when present. These override any value the string heuristics would infer.
|
|
11
|
+
*/
|
|
12
|
+
const FILTER_TAG_KEYS = [
|
|
13
|
+
['apiFamily', 'apiFamily'],
|
|
14
|
+
['apiName', 'apiName'],
|
|
15
|
+
['ocapiCategory', 'ocapiCategory'],
|
|
16
|
+
['ocapiApi', 'ocapiApi'],
|
|
17
|
+
['thirdPartyServiceId', 'thirdPartyServiceId'],
|
|
18
|
+
];
|
|
19
|
+
/**
|
|
20
|
+
* Splits a normalized tenant id (`bdpx_prd`) into its realm and environment.
|
|
21
|
+
* The environment is the final underscore-delimited segment; everything before
|
|
22
|
+
* it is the realm. Ids without an underscore yield just a realm.
|
|
23
|
+
*/
|
|
24
|
+
function splitRealmEnvironment(tenantId) {
|
|
25
|
+
const normalized = normalizeTenantId(tenantId);
|
|
26
|
+
const lastUnderscore = normalized.lastIndexOf('_');
|
|
27
|
+
if (lastUnderscore <= 0 || lastUnderscore === normalized.length - 1) {
|
|
28
|
+
return { realm: normalized };
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
realm: normalized.slice(0, lastUnderscore),
|
|
32
|
+
environment: normalized.slice(lastUnderscore + 1),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Strips a leading `realm.` or `realm ` prefix from a packed series id, if
|
|
37
|
+
* present. The Metrics API prefixes most ids with the realm using either a `.`
|
|
38
|
+
* or a space; this removes whichever is found so the category rule sees only the
|
|
39
|
+
* dimension remainder. Returns the input unchanged when no realm prefix matches.
|
|
40
|
+
*/
|
|
41
|
+
function stripRealmPrefix(seriesId, realm) {
|
|
42
|
+
if (seriesId.startsWith(`${realm}.`))
|
|
43
|
+
return seriesId.slice(realm.length + 1);
|
|
44
|
+
if (seriesId.startsWith(`${realm} `))
|
|
45
|
+
return seriesId.slice(realm.length + 1);
|
|
46
|
+
return seriesId;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Extractor for series whose remainder is a bare API family (`product`,
|
|
50
|
+
* `custom`, …) — but which may instead be an HTTP status class (`2xx`) or the
|
|
51
|
+
* metric's own fallback id. SCAPI mixes these within a single metric.
|
|
52
|
+
*/
|
|
53
|
+
const scapiFamilyOrStatus = (remainder) => {
|
|
54
|
+
if (/^[1-5]xx$/.test(remainder))
|
|
55
|
+
return { statusClass: remainder };
|
|
56
|
+
return { apiFamily: remainder };
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Per-category, per-metric extraction rules. Keyed by `category` then
|
|
60
|
+
* `metricId`; a category-level `*` entry applies to any metric not explicitly
|
|
61
|
+
* listed. Rules operate on the realm-stripped remainder (see
|
|
62
|
+
* {@link stripRealmPrefix}); returning `{}` means "no extra dimensions, just the
|
|
63
|
+
* context tags."
|
|
64
|
+
*/
|
|
65
|
+
const EXTRACTORS = {
|
|
66
|
+
scapi: {
|
|
67
|
+
// `bdpx.product` → apiFamily=product; `bdpx 2xx`/`bdpx 3xx` → statusClass
|
|
68
|
+
totalCalls: scapiFamilyOrStatus,
|
|
69
|
+
requestLatency: (remainder) => {
|
|
70
|
+
// `Average overall latency` is a rollup, not a per-family series.
|
|
71
|
+
if (/overall/i.test(remainder))
|
|
72
|
+
return { aggregation: 'overall' };
|
|
73
|
+
return { apiFamily: remainder };
|
|
74
|
+
},
|
|
75
|
+
responseCount: scapiFamilyOrStatus,
|
|
76
|
+
errors4xx: (remainder) => ({ apiFamily: remainder }),
|
|
77
|
+
// `bdpx.product HIT` / `bdpx.custom MISS` → apiFamily + cacheStatus
|
|
78
|
+
cacheHitRate: (remainder) => {
|
|
79
|
+
const spaceIdx = remainder.lastIndexOf(' ');
|
|
80
|
+
if (spaceIdx > 0) {
|
|
81
|
+
return { apiFamily: remainder.slice(0, spaceIdx), cacheStatus: remainder.slice(spaceIdx + 1) };
|
|
82
|
+
}
|
|
83
|
+
return { apiFamily: remainder };
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
ocapi: {
|
|
87
|
+
// `bdpx.shop` → ocapiCategory=shop
|
|
88
|
+
totalCalls: (remainder) => ({ ocapiCategory: remainder }),
|
|
89
|
+
callsMean: (remainder) => ({ ocapiCategory: remainder }),
|
|
90
|
+
},
|
|
91
|
+
controller: {
|
|
92
|
+
// `bdpx.Home-Show` → controller=Home-Show (applies to every controller metric)
|
|
93
|
+
'*': (remainder) => ({ controller: remainder }),
|
|
94
|
+
},
|
|
95
|
+
'third-party': {
|
|
96
|
+
// `bdpx.login.salesforce.com` → host; the host itself contains dots, so we
|
|
97
|
+
// treat the whole remainder as the host for call/latency metrics.
|
|
98
|
+
callsCount: (remainder) => ({ host: remainder }),
|
|
99
|
+
callsP95: (remainder) => ({ host: remainder }),
|
|
100
|
+
// `bdpx.host.socketReadTimeout` → host + exceptionType. The exception type is
|
|
101
|
+
// the final dot-segment; everything before it is the (dotted) host. This is
|
|
102
|
+
// only unambiguous because we key on the remoteExceptions metric.
|
|
103
|
+
remoteExceptions: (remainder) => {
|
|
104
|
+
const lastDot = remainder.lastIndexOf('.');
|
|
105
|
+
if (lastDot > 0) {
|
|
106
|
+
return { host: remainder.slice(0, lastDot), exceptionType: remainder.slice(lastDot + 1) };
|
|
107
|
+
}
|
|
108
|
+
return { host: remainder };
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
ecdn: {
|
|
112
|
+
// `2xx bdpx.host` (status class BEFORE the realm) → statusClass + host; other
|
|
113
|
+
// eCDN metrics are just `bdpx.host` → host. Operates on the raw id because
|
|
114
|
+
// the realm is not a leading prefix here.
|
|
115
|
+
successAndError: (_remainder, rawId, realm) => {
|
|
116
|
+
const spaceIdx = rawId.indexOf(' ');
|
|
117
|
+
if (spaceIdx > 0) {
|
|
118
|
+
const statusClass = rawId.slice(0, spaceIdx);
|
|
119
|
+
const host = stripRealmPrefix(rawId.slice(spaceIdx + 1), realm);
|
|
120
|
+
return { statusClass, host };
|
|
121
|
+
}
|
|
122
|
+
return { host: stripRealmPrefix(rawId, realm) };
|
|
123
|
+
},
|
|
124
|
+
'*': (remainder) => ({ host: remainder }),
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
/**
|
|
128
|
+
* Extracts the dimension tags for a single series id.
|
|
129
|
+
*
|
|
130
|
+
* Combines three tiers, most-authoritative last:
|
|
131
|
+
* 1. **Request identity** — `realm`/`environment` from the tenant id (never parsed
|
|
132
|
+
* from the series string).
|
|
133
|
+
* 2. **String heuristics** — category/metric-specific dimensions parsed from the
|
|
134
|
+
* packed id (`apiFamily`, `host`, `cacheStatus`, …), or the raw remainder under
|
|
135
|
+
* `series` when no rule matches.
|
|
136
|
+
* 3. **Applied filters** — any filter that was sent with the request
|
|
137
|
+
* ({@link MetricsTagContext}) is stamped last, overriding a heuristic guess.
|
|
138
|
+
* This corrects drill-down ids: with `apiFamily=shopper` the server returns
|
|
139
|
+
* `bdpx.shopper.auth.v1`, which heuristics would mis-tag as
|
|
140
|
+
* `apiFamily: "shopper.auth.v1"`; the filter restores `apiFamily: "shopper"`.
|
|
141
|
+
*
|
|
142
|
+
* The result is always a superset of the request context and never throws.
|
|
143
|
+
*
|
|
144
|
+
* @param params - The series' category, metric id, series id, and request context
|
|
145
|
+
* @returns The extracted {@link MetricSeriesTags}
|
|
146
|
+
*
|
|
147
|
+
* @example
|
|
148
|
+
* ```typescript
|
|
149
|
+
* parseSeriesTags({
|
|
150
|
+
* category: 'scapi', metricId: 'cacheHitRate',
|
|
151
|
+
* seriesId: 'bdpx.product HIT', context: {tenantId: 'f_ecom_bdpx_prd'},
|
|
152
|
+
* });
|
|
153
|
+
* // → { realm: 'bdpx', environment: 'prd', apiFamily: 'product', cacheStatus: 'HIT' }
|
|
154
|
+
* ```
|
|
155
|
+
*/
|
|
156
|
+
export function parseSeriesTags(params) {
|
|
157
|
+
const { category, metricId, seriesId, context } = params;
|
|
158
|
+
const { realm, environment } = splitRealmEnvironment(context.tenantId);
|
|
159
|
+
const tags = { realm };
|
|
160
|
+
if (environment)
|
|
161
|
+
tags.environment = environment;
|
|
162
|
+
const categoryRules = EXTRACTORS[category];
|
|
163
|
+
const extractor = categoryRules?.[metricId] ?? categoryRules?.['*'];
|
|
164
|
+
const remainder = stripRealmPrefix(seriesId, realm);
|
|
165
|
+
if (extractor) {
|
|
166
|
+
Object.assign(tags, extractor(remainder, seriesId, realm));
|
|
167
|
+
}
|
|
168
|
+
else if (remainder && remainder !== metricId) {
|
|
169
|
+
// No rule for this category/metric. Preserve the (realm-stripped) remainder
|
|
170
|
+
// so nothing is lost, unless it is just the metric id echoed back (a
|
|
171
|
+
// value-less fallback series).
|
|
172
|
+
tags.series = remainder;
|
|
173
|
+
}
|
|
174
|
+
// Applied filters are authoritative — stamp them last so they override any
|
|
175
|
+
// heuristic guess from a drilled-down id.
|
|
176
|
+
for (const [field, key] of FILTER_TAG_KEYS) {
|
|
177
|
+
const value = context[field];
|
|
178
|
+
if (value)
|
|
179
|
+
tags[key] = value;
|
|
180
|
+
}
|
|
181
|
+
return tags;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Enriches a metrics response by adding a structured `tags` map to every series,
|
|
185
|
+
* in place-safe fashion (returns a new response; the input is not mutated).
|
|
186
|
+
*
|
|
187
|
+
* This is the batch counterpart to {@link parseSeriesTags}: it walks every
|
|
188
|
+
* metric and series and attaches `series.tags` derived from the series id, the
|
|
189
|
+
* metric id, the category, and the request context. Existing fields (`id`,
|
|
190
|
+
* `name`, `data`) are preserved exactly, so the enriched response is a
|
|
191
|
+
* structural superset — consumers that ignore `tags` are unaffected. The
|
|
192
|
+
* category must be supplied because a {@link MetricsDataResponse} does not carry
|
|
193
|
+
* it (it is implied by the endpoint that produced the response).
|
|
194
|
+
*
|
|
195
|
+
* @param response - The metrics response to enrich
|
|
196
|
+
* @param category - The metric category the response was fetched for
|
|
197
|
+
* @param context - The request identity used to derive `realm`/`environment`
|
|
198
|
+
* @returns A new response with `tags` added to each series
|
|
199
|
+
*
|
|
200
|
+
* @example
|
|
201
|
+
* ```typescript
|
|
202
|
+
* const raw = await getScapiMetrics(client, tenantId);
|
|
203
|
+
* const enriched = enrichMetricsTags(raw, 'scapi', {tenantId});
|
|
204
|
+
* for (const metric of enriched.data) {
|
|
205
|
+
* for (const series of metric.dataSeries) {
|
|
206
|
+
* console.log(series.tags, series.data);
|
|
207
|
+
* }
|
|
208
|
+
* }
|
|
209
|
+
* ```
|
|
210
|
+
*/
|
|
211
|
+
export function enrichMetricsTags(response, category, context) {
|
|
212
|
+
let unparsed = 0;
|
|
213
|
+
const data = (response.data ?? []).map((metric) => ({
|
|
214
|
+
...metric,
|
|
215
|
+
dataSeries: (metric.dataSeries ?? []).map((series) => {
|
|
216
|
+
const tags = parseSeriesTags({
|
|
217
|
+
category,
|
|
218
|
+
metricId: metric.metricId,
|
|
219
|
+
seriesId: series.id,
|
|
220
|
+
context,
|
|
221
|
+
});
|
|
222
|
+
// Count series where no dimension beyond identity was recovered, to log
|
|
223
|
+
// once about incomplete coverage without failing.
|
|
224
|
+
const hasDimension = Object.keys(tags).some((k) => k !== 'realm' && k !== 'environment');
|
|
225
|
+
if (!hasDimension)
|
|
226
|
+
unparsed++;
|
|
227
|
+
return { ...series, tags };
|
|
228
|
+
}),
|
|
229
|
+
}));
|
|
230
|
+
if (unparsed > 0) {
|
|
231
|
+
getLogger().debug({ unparsed, category, tenantId: context.tenantId }, 'enrichMetricsTags: some series yielded only identity tags (no category dimensions)');
|
|
232
|
+
}
|
|
233
|
+
return { ...response, data };
|
|
234
|
+
}
|
|
235
|
+
//# sourceMappingURL=tags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../../../src/operations/metrics/tags.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/slas/token.d.ts
CHANGED
|
@@ -15,8 +15,15 @@ export declare function getGuestToken(config: SlasTokenConfig): Promise<SlasToke
|
|
|
15
15
|
* Uses the `/oauth2/login` endpoint with shopper credentials, then exchanges
|
|
16
16
|
* the authorization code for an access token.
|
|
17
17
|
*
|
|
18
|
-
* -
|
|
19
|
-
*
|
|
18
|
+
* The registered-customer flow is PKCE-protected for **both** public and
|
|
19
|
+
* private clients: a `code_challenge` is always presented at the
|
|
20
|
+
* `/oauth2/login` step, so the matching `code_verifier` must always be sent at
|
|
21
|
+
* the token exchange with the `authorization_code_pkce` grant.
|
|
22
|
+
*
|
|
23
|
+
* - **Public client**: PKCE token exchange (no client secret).
|
|
24
|
+
* - **Private client**: PKCE token exchange, plus HTTP Basic authentication
|
|
25
|
+
* using the client secret. The client must NOT drop PKCE, or SLAS rejects the
|
|
26
|
+
* exchange with `400 code_verifier is required`.
|
|
20
27
|
*
|
|
21
28
|
* @param config - SLAS token configuration including shopper credentials
|
|
22
29
|
* @returns The token response including access_token and refresh_token
|
package/dist/esm/slas/token.js
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
*
|
|
12
12
|
* @module slas/token
|
|
13
13
|
*/
|
|
14
|
+
import { encodeBasicClientCredentials } from '../auth/client-credentials.js';
|
|
14
15
|
import { wrapNetworkError } from '../errors/network-error.js';
|
|
15
16
|
import { getLogger } from '../logging/logger.js';
|
|
16
17
|
import { generateCodeChallenge, generateCodeVerifier } from './pkce.js';
|
|
@@ -151,7 +152,7 @@ async function getPrivateClientGuestToken(config) {
|
|
|
151
152
|
const logger = getLogger();
|
|
152
153
|
logger.debug({ clientId: config.slasClientId }, '[SLAS] Using private client client_credentials guest flow');
|
|
153
154
|
const baseUrl = buildBaseUrl(config.shortCode, config.organizationId);
|
|
154
|
-
const basicAuth =
|
|
155
|
+
const basicAuth = encodeBasicClientCredentials(config.slasClientId, config.slasClientSecret);
|
|
155
156
|
const tokenBody = new URLSearchParams({
|
|
156
157
|
grant_type: 'client_credentials',
|
|
157
158
|
channel_id: config.siteId,
|
|
@@ -177,8 +178,15 @@ async function getPrivateClientGuestToken(config) {
|
|
|
177
178
|
* Uses the `/oauth2/login` endpoint with shopper credentials, then exchanges
|
|
178
179
|
* the authorization code for an access token.
|
|
179
180
|
*
|
|
180
|
-
* -
|
|
181
|
-
*
|
|
181
|
+
* The registered-customer flow is PKCE-protected for **both** public and
|
|
182
|
+
* private clients: a `code_challenge` is always presented at the
|
|
183
|
+
* `/oauth2/login` step, so the matching `code_verifier` must always be sent at
|
|
184
|
+
* the token exchange with the `authorization_code_pkce` grant.
|
|
185
|
+
*
|
|
186
|
+
* - **Public client**: PKCE token exchange (no client secret).
|
|
187
|
+
* - **Private client**: PKCE token exchange, plus HTTP Basic authentication
|
|
188
|
+
* using the client secret. The client must NOT drop PKCE, or SLAS rejects the
|
|
189
|
+
* exchange with `400 code_verifier is required`.
|
|
182
190
|
*
|
|
183
191
|
* @param config - SLAS token configuration including shopper credentials
|
|
184
192
|
* @returns The token response including access_token and refresh_token
|
|
@@ -220,32 +228,15 @@ export async function getRegisteredToken(config) {
|
|
|
220
228
|
}
|
|
221
229
|
const { code, usid } = parseRedirectCode(location);
|
|
222
230
|
logger.debug({ usid }, '[SLAS] Got authorization code from login');
|
|
223
|
-
// Step 2: Exchange code for token
|
|
231
|
+
// Step 2: Exchange code for token.
|
|
232
|
+
//
|
|
233
|
+
// The login step always presents a `code_challenge`, so the token exchange
|
|
234
|
+
// must always send the matching `code_verifier` with the
|
|
235
|
+
// `authorization_code_pkce` grant — for both public and private clients.
|
|
236
|
+
// A private client additionally authenticates with HTTP Basic using its
|
|
237
|
+
// secret; it must NOT downgrade to the plain `authorization_code` grant or
|
|
238
|
+
// SLAS rejects the exchange with `400 code_verifier is required`.
|
|
224
239
|
const tokenUrl = `${baseUrl}/oauth2/token`;
|
|
225
|
-
if (isPrivate) {
|
|
226
|
-
const basicAuth = Buffer.from(`${config.slasClientId}:${config.slasClientSecret}`).toString('base64');
|
|
227
|
-
const tokenBody = new URLSearchParams({
|
|
228
|
-
grant_type: 'authorization_code',
|
|
229
|
-
code,
|
|
230
|
-
redirect_uri: config.redirectUri,
|
|
231
|
-
channel_id: config.siteId,
|
|
232
|
-
usid,
|
|
233
|
-
});
|
|
234
|
-
const { response: tokenResponse } = await loggedFetch(tokenUrl, {
|
|
235
|
-
method: 'POST',
|
|
236
|
-
headers: {
|
|
237
|
-
'Content-Type': 'application/x-www-form-urlencoded',
|
|
238
|
-
Authorization: `Basic ${basicAuth}`,
|
|
239
|
-
},
|
|
240
|
-
body: tokenBody,
|
|
241
|
-
});
|
|
242
|
-
await checkResponse(tokenResponse, 'token exchange (authorization_code)');
|
|
243
|
-
const data = (await tokenResponse.json());
|
|
244
|
-
const respHeaders = serializeHeaders(tokenResponse);
|
|
245
|
-
logger.trace({ headers: respHeaders, body: data }, `[SLAS RESP BODY] POST ${tokenUrl}`);
|
|
246
|
-
return data;
|
|
247
|
-
}
|
|
248
|
-
// Public client — use PKCE
|
|
249
240
|
const tokenBody = new URLSearchParams({
|
|
250
241
|
grant_type: 'authorization_code_pkce',
|
|
251
242
|
client_id: config.slasClientId,
|
|
@@ -255,9 +246,14 @@ export async function getRegisteredToken(config) {
|
|
|
255
246
|
channel_id: config.siteId,
|
|
256
247
|
usid,
|
|
257
248
|
});
|
|
249
|
+
const tokenHeaders = { 'Content-Type': 'application/x-www-form-urlencoded' };
|
|
250
|
+
if (isPrivate) {
|
|
251
|
+
const basicAuth = encodeBasicClientCredentials(config.slasClientId, config.slasClientSecret);
|
|
252
|
+
tokenHeaders.Authorization = `Basic ${basicAuth}`;
|
|
253
|
+
}
|
|
258
254
|
const { response: tokenResponse } = await loggedFetch(tokenUrl, {
|
|
259
255
|
method: 'POST',
|
|
260
|
-
headers:
|
|
256
|
+
headers: tokenHeaders,
|
|
261
257
|
body: tokenBody,
|
|
262
258
|
});
|
|
263
259
|
await checkResponse(tokenResponse, 'token exchange (authorization_code_pkce)');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/slas/token.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/slas/token.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,7 @@ export declare class Telemetry {
|
|
|
28
28
|
private traceLog;
|
|
29
29
|
private flushIntervalMs;
|
|
30
30
|
private flushTimer;
|
|
31
|
+
private isCI;
|
|
31
32
|
/**
|
|
32
33
|
* Check if telemetry is disabled via environment variables.
|
|
33
34
|
* Supports both SF_DISABLE_TELEMETRY (sf CLI standard) and SFCC_DISABLE_TELEMETRY.
|
|
@@ -9,6 +9,35 @@ import path from 'node:path';
|
|
|
9
9
|
import { AppInsightsClient } from './app-insights-client.js';
|
|
10
10
|
import { getLogger } from '../logging/index.js';
|
|
11
11
|
const generateRandomId = () => randomBytes(20).toString('hex');
|
|
12
|
+
/**
|
|
13
|
+
* Best-effort detection of a CI / non-interactive automation environment.
|
|
14
|
+
*
|
|
15
|
+
* Telemetry analysis showed a small number of automation installs can account
|
|
16
|
+
* for a large share of events, skewing blended KPIs (e.g. error rates). Tagging
|
|
17
|
+
* every event with `isCI` lets analytics separate human-developer traffic from
|
|
18
|
+
* CI without resorting to fragile cliId/IP heuristics after the fact.
|
|
19
|
+
*
|
|
20
|
+
* Recognizes the generic `CI` convention plus common provider-specific vars.
|
|
21
|
+
*/
|
|
22
|
+
function detectCI() {
|
|
23
|
+
const env = process.env;
|
|
24
|
+
// Generic convention honored by most CI providers (GitHub Actions, GitLab,
|
|
25
|
+
// CircleCI, Travis, etc.). `CI=false`/`CI=0`/empty explicitly opt out.
|
|
26
|
+
if (env.CI !== undefined && env.CI !== 'false' && env.CI !== '0' && env.CI !== '') {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
return Boolean(env.CONTINUOUS_INTEGRATION ||
|
|
30
|
+
env.BUILD_NUMBER ||
|
|
31
|
+
env.GITHUB_ACTIONS ||
|
|
32
|
+
env.GITLAB_CI ||
|
|
33
|
+
env.CIRCLECI ||
|
|
34
|
+
env.TRAVIS ||
|
|
35
|
+
env.JENKINS_URL ||
|
|
36
|
+
env.TEAMCITY_VERSION ||
|
|
37
|
+
env.TF_BUILD ||
|
|
38
|
+
env.BITBUCKET_BUILD_NUMBER ||
|
|
39
|
+
env.CODEBUILD_BUILD_ID);
|
|
40
|
+
}
|
|
12
41
|
/**
|
|
13
42
|
* Sanitize attributes to only include string, number, boolean (App Insights–safe).
|
|
14
43
|
* Aligns with sf CLI telemetry record() validation.
|
|
@@ -117,6 +146,7 @@ export class Telemetry {
|
|
|
117
146
|
traceLog;
|
|
118
147
|
flushIntervalMs;
|
|
119
148
|
flushTimer;
|
|
149
|
+
isCI;
|
|
120
150
|
/**
|
|
121
151
|
* Check if telemetry is disabled via environment variables.
|
|
122
152
|
* Supports both SF_DISABLE_TELEMETRY (sf CLI standard) and SFCC_DISABLE_TELEMETRY.
|
|
@@ -144,6 +174,7 @@ export class Telemetry {
|
|
|
144
174
|
this.started = false;
|
|
145
175
|
this.version = options.version ?? '0.0.0';
|
|
146
176
|
this.flushIntervalMs = options.flushIntervalMs;
|
|
177
|
+
this.isCI = detectCI();
|
|
147
178
|
if (process.env.SFCC_TELEMETRY_LOG === 'true') {
|
|
148
179
|
this.traceLog = getLogger().child({ component: 'telemetry' });
|
|
149
180
|
}
|
|
@@ -277,6 +308,7 @@ export class Telemetry {
|
|
|
277
308
|
date: new Date().toUTCString(),
|
|
278
309
|
timestamp: String(Date.now()),
|
|
279
310
|
processUptime: process.uptime() * 1000,
|
|
311
|
+
isCI: this.isCI,
|
|
280
312
|
};
|
|
281
313
|
}
|
|
282
314
|
createClient() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../src/telemetry/telemetry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAC,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAC,SAAS,EAAc,MAAM,qBAAqB,CAAC;AAE3D,MAAM,gBAAgB,GAAG,GAAW,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAEvE;;;GAGG;AACH,SAAS,kBAAkB,CAAC,UAA+B;IACzD,MAAM,GAAG,GAAwB,EAAE,CAAC;IACpC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACtD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YACzF,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,SAAS,8BAA8B,CAAC,UAA+B;IAIrE,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,MAAM,YAAY,GAA2B,EAAE,CAAC;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IACpC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACtD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5D,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC5B,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YACtC,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,EAAC,UAAU,EAAE,YAAY,EAAC,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAiB,EAAE;IACvD,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,iBAAiB,GAAG,CAAC,OAAgB,EAAU,EAAE;IACrD,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC,QAAQ;QAAE,OAAO,gBAAgB,EAAE,CAAC;IAEzC,0BAA0B;IAC1B,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAChD,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;YAC9B,IAAI,OAAO;gBAAE,OAAO,OAAO,CAAC;QAC9B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,6BAA6B;IAC/B,CAAC;IAED,gBAAgB;IAChB,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAC,CAAC,CAAC;QACpD,CAAC;QACD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAC,CAAC,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,qDAAqD;IACvD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,SAAS;IACZ,UAAU,CAAsB;IAChC,KAAK,CAAS;IACd,OAAO,CAAS;IAChB,MAAM,CAAgC;IACtC,SAAS,CAAS;IAClB,OAAO,CAAU;IACjB,OAAO,CAAS;IAChB,cAAc,CAAqB;IACnC,QAAQ,CAAqB;IAC7B,eAAe,CAAqB;IACpC,UAAU,CAA6C;
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../src/telemetry/telemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,6 +30,12 @@ export interface TelemetryEventProperties extends TelemetryAttributes {
|
|
|
30
30
|
timestamp: string;
|
|
31
31
|
/** Process uptime in milliseconds */
|
|
32
32
|
processUptime: number;
|
|
33
|
+
/**
|
|
34
|
+
* Whether the event originated from a CI / automation environment.
|
|
35
|
+
* Allows analytics to separate human-developer traffic from CI runs, which
|
|
36
|
+
* can otherwise dominate volume and skew blended KPIs.
|
|
37
|
+
*/
|
|
38
|
+
isCI: boolean;
|
|
33
39
|
}
|
|
34
40
|
/**
|
|
35
41
|
* Options for creating a Telemetry instance.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/b2c-tooling-sdk",
|
|
3
3
|
"description": "Core tooling library for Salesforce B2C Commerce CLI",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.19.0",
|
|
5
5
|
"author": "Charles Lavery",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"repository": "SalesforceCommerceCloud/b2c-developer-tooling",
|
|
@@ -96,6 +96,10 @@
|
|
|
96
96
|
"types": "./dist/esm/operations/cip/index.d.ts",
|
|
97
97
|
"default": "./dist/esm/operations/cip/index.js"
|
|
98
98
|
},
|
|
99
|
+
"./operations/metrics": {
|
|
100
|
+
"types": "./dist/esm/operations/metrics/index.d.ts",
|
|
101
|
+
"default": "./dist/esm/operations/metrics/index.js"
|
|
102
|
+
},
|
|
99
103
|
"./slas": {
|
|
100
104
|
"types": "./dist/esm/slas/index.d.ts",
|
|
101
105
|
"default": "./dist/esm/slas/index.js"
|
|
@@ -225,6 +229,7 @@
|
|
|
225
229
|
"jsonschema": "1.5.0",
|
|
226
230
|
"jszip": "3.10.1",
|
|
227
231
|
"minimatch": "10.2.4",
|
|
232
|
+
"minisearch": "7.2.0",
|
|
228
233
|
"open": "11.0.0",
|
|
229
234
|
"openapi-fetch": "0.15.0",
|
|
230
235
|
"pino": "10.1.0",
|
|
@@ -235,7 +240,7 @@
|
|
|
235
240
|
"xml2js": "0.6.2"
|
|
236
241
|
},
|
|
237
242
|
"scripts": {
|
|
238
|
-
"generate:types": "openapi-typescript specs/data-api.json -o src/clients/ocapi.generated.ts && openapi-typescript specs/slas-admin-v1.yaml -o src/clients/slas-admin.generated.ts && openapi-typescript specs/ods-api-v1.json -o src/clients/ods.generated.ts && openapi-typescript specs/mrt-api-v1.json -o src/clients/mrt.generated.ts && openapi-typescript specs/mrt-b2c.json -o src/clients/mrt-b2c.generated.ts && openapi-typescript specs/custom-apis-v1.yaml -o src/clients/custom-apis.generated.ts && openapi-typescript specs/scapi-schemas-v1.yaml -o src/clients/scapi-schemas.generated.ts && openapi-typescript specs/cdn-zones-v1.yaml -o src/clients/cdn-zones.generated.ts && openapi-typescript specs/am-users-api-v1.yaml -o src/clients/am-users-api.generated.ts && openapi-typescript specs/am-roles-api-v1.yaml -o src/clients/am-roles-api.generated.ts && openapi-typescript specs/am-apiclients-api-v1.yaml -o src/clients/am-apiclients-api.generated.ts && openapi-typescript specs/granular-replications-v1.yaml -o src/clients/granular-replications.generated.ts",
|
|
243
|
+
"generate:types": "openapi-typescript specs/data-api.json -o src/clients/ocapi.generated.ts && openapi-typescript specs/slas-admin-v1.yaml -o src/clients/slas-admin.generated.ts && openapi-typescript specs/ods-api-v1.json -o src/clients/ods.generated.ts && openapi-typescript specs/mrt-api-v1.json -o src/clients/mrt.generated.ts && openapi-typescript specs/mrt-b2c.json -o src/clients/mrt-b2c.generated.ts && openapi-typescript specs/custom-apis-v1.yaml -o src/clients/custom-apis.generated.ts && openapi-typescript specs/scapi-schemas-v1.yaml -o src/clients/scapi-schemas.generated.ts && openapi-typescript specs/cdn-zones-v1.yaml -o src/clients/cdn-zones.generated.ts && openapi-typescript specs/am-users-api-v1.yaml -o src/clients/am-users-api.generated.ts && openapi-typescript specs/am-roles-api-v1.yaml -o src/clients/am-roles-api.generated.ts && openapi-typescript specs/am-apiclients-api-v1.yaml -o src/clients/am-apiclients-api.generated.ts && openapi-typescript specs/granular-replications-v1.yaml -o src/clients/granular-replications.generated.ts && openapi-typescript specs/metrics-v1.json -o src/clients/metrics.generated.ts",
|
|
239
244
|
"build": "pnpm run generate:types && pnpm run build:esm",
|
|
240
245
|
"build:esm": "tsc -p tsconfig.esm.json",
|
|
241
246
|
"clean": "shx rm -rf dist",
|
|
@@ -255,6 +260,10 @@
|
|
|
255
260
|
"posttest": "pnpm run lint",
|
|
256
261
|
"generate:docs-index": "tsx scripts/generate-docs-index.ts",
|
|
257
262
|
"build:job-steps-dataset": "tsx scripts/build-job-steps-dataset.ts",
|
|
258
|
-
"generate:job-steps-docs": "tsx scripts/generate-job-steps-docs.ts"
|
|
263
|
+
"generate:job-steps-docs": "tsx scripts/generate-job-steps-docs.ts",
|
|
264
|
+
"refresh:docs-data": "tsx scripts/refresh-docs-data.ts",
|
|
265
|
+
"generate:guides-index": "tsx scripts/generate-guides-index.ts",
|
|
266
|
+
"generate:tooling-index": "tsx scripts/generate-tooling-index.ts",
|
|
267
|
+
"enrich:docs": "tsx scripts/enrich-docs.ts"
|
|
259
268
|
}
|
|
260
269
|
}
|