@nebius/js-sdk 0.2.9 → 0.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/api/nebius/iam/v1/index.d.ts +4 -0
- package/dist/cjs/api/nebius/iam/v1/index.d.ts.map +1 -1
- package/dist/cjs/api/nebius/iam/v1/index.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/runtime/cli_config.d.ts +12 -1
- package/dist/cjs/runtime/cli_config.d.ts.map +1 -1
- package/dist/cjs/runtime/cli_config.js +243 -135
- package/dist/cjs/runtime/cli_config.js.map +1 -1
- package/dist/cjs/runtime/cli_config_interfaces.d.ts +11 -2
- package/dist/cjs/runtime/cli_config_interfaces.d.ts.map +1 -1
- package/dist/cjs/runtime/error.d.ts.map +1 -1
- package/dist/cjs/runtime/error.js.map +1 -1
- package/dist/cjs/runtime/keepalive.d.ts +29 -0
- package/dist/cjs/runtime/keepalive.d.ts.map +1 -0
- package/dist/cjs/runtime/keepalive.js +112 -0
- package/dist/cjs/runtime/keepalive.js.map +1 -0
- package/dist/cjs/runtime/metrics.d.ts +85 -0
- package/dist/cjs/runtime/metrics.d.ts.map +1 -0
- package/dist/cjs/runtime/metrics.js +241 -0
- package/dist/cjs/runtime/metrics.js.map +1 -0
- package/dist/cjs/runtime/protos/wkt.d.ts.map +1 -1
- package/dist/cjs/runtime/protos/wkt.js.map +1 -1
- package/dist/cjs/runtime/token/exchangeable.d.ts +5 -2
- package/dist/cjs/runtime/token/exchangeable.d.ts.map +1 -1
- package/dist/cjs/runtime/token/exchangeable.js +52 -34
- package/dist/cjs/runtime/token/exchangeable.js.map +1 -1
- package/dist/cjs/runtime/token/federated_credentials.d.ts +7 -3
- package/dist/cjs/runtime/token/federated_credentials.d.ts.map +1 -1
- package/dist/cjs/runtime/token/federated_credentials.js +14 -3
- package/dist/cjs/runtime/token/federated_credentials.js.map +1 -1
- package/dist/cjs/runtime/token/federation_account.d.ts +4 -0
- package/dist/cjs/runtime/token/federation_account.d.ts.map +1 -1
- package/dist/cjs/runtime/token/federation_account.js +10 -1
- package/dist/cjs/runtime/token/federation_account.js.map +1 -1
- package/dist/cjs/runtime/token/federation_bearer/index.d.ts +4 -1
- package/dist/cjs/runtime/token/federation_bearer/index.d.ts.map +1 -1
- package/dist/cjs/runtime/token/federation_bearer/index.js +42 -25
- package/dist/cjs/runtime/token/federation_bearer/index.js.map +1 -1
- package/dist/cjs/runtime/token/file.d.ts +6 -2
- package/dist/cjs/runtime/token/file.d.ts.map +1 -1
- package/dist/cjs/runtime/token/file.js +33 -11
- package/dist/cjs/runtime/token/file.js.map +1 -1
- package/dist/cjs/runtime/token/file_cache/async_renewable_bearer.d.ts +8 -3
- package/dist/cjs/runtime/token/file_cache/async_renewable_bearer.d.ts.map +1 -1
- package/dist/cjs/runtime/token/file_cache/async_renewable_bearer.js +110 -56
- package/dist/cjs/runtime/token/file_cache/async_renewable_bearer.js.map +1 -1
- package/dist/cjs/runtime/token/file_cache/file_bearer.d.ts +4 -1
- package/dist/cjs/runtime/token/file_cache/file_bearer.d.ts.map +1 -1
- package/dist/cjs/runtime/token/file_cache/file_bearer.js +25 -4
- package/dist/cjs/runtime/token/file_cache/file_bearer.js.map +1 -1
- package/dist/cjs/runtime/token/file_cache/renewable_bearer.d.ts +5 -2
- package/dist/cjs/runtime/token/file_cache/renewable_bearer.d.ts.map +1 -1
- package/dist/cjs/runtime/token/file_cache/renewable_bearer.js +47 -7
- package/dist/cjs/runtime/token/file_cache/renewable_bearer.js.map +1 -1
- package/dist/cjs/runtime/token/renewable.d.ts +8 -3
- package/dist/cjs/runtime/token/renewable.d.ts.map +1 -1
- package/dist/cjs/runtime/token/renewable.js +101 -54
- package/dist/cjs/runtime/token/renewable.js.map +1 -1
- package/dist/cjs/runtime/token/service_account.d.ts +7 -3
- package/dist/cjs/runtime/token/service_account.d.ts.map +1 -1
- package/dist/cjs/runtime/token/service_account.js +18 -6
- package/dist/cjs/runtime/token/service_account.js.map +1 -1
- package/dist/cjs/runtime/token.d.ts +2 -1
- package/dist/cjs/runtime/token.d.ts.map +1 -1
- package/dist/cjs/runtime/token.js +8 -4
- package/dist/cjs/runtime/token.js.map +1 -1
- package/dist/cjs/runtime/util/golang_parsers.d.ts +7 -0
- package/dist/cjs/runtime/util/golang_parsers.d.ts.map +1 -0
- package/dist/cjs/runtime/util/golang_parsers.js +81 -0
- package/dist/cjs/runtime/util/golang_parsers.js.map +1 -0
- package/dist/cjs/sdk.d.ts +15 -4
- package/dist/cjs/sdk.d.ts.map +1 -1
- package/dist/cjs/sdk.js +78 -49
- package/dist/cjs/sdk.js.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.d.ts.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/esm/api/nebius/iam/v1/index.d.ts +4 -0
- package/dist/esm/api/nebius/iam/v1/index.d.ts.map +1 -1
- package/dist/esm/api/nebius/iam/v1/index.js.map +1 -1
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/runtime/cli_config.d.ts +12 -1
- package/dist/esm/runtime/cli_config.d.ts.map +1 -1
- package/dist/esm/runtime/cli_config.js +243 -135
- package/dist/esm/runtime/cli_config.js.map +1 -1
- package/dist/esm/runtime/cli_config_interfaces.d.ts +11 -2
- package/dist/esm/runtime/cli_config_interfaces.d.ts.map +1 -1
- package/dist/esm/runtime/error.d.ts.map +1 -1
- package/dist/esm/runtime/error.js +1 -1
- package/dist/esm/runtime/error.js.map +1 -1
- package/dist/esm/runtime/keepalive.d.ts +29 -0
- package/dist/esm/runtime/keepalive.d.ts.map +1 -0
- package/dist/esm/runtime/keepalive.js +105 -0
- package/dist/esm/runtime/keepalive.js.map +1 -0
- package/dist/esm/runtime/metrics.d.ts +85 -0
- package/dist/esm/runtime/metrics.d.ts.map +1 -0
- package/dist/esm/runtime/metrics.js +228 -0
- package/dist/esm/runtime/metrics.js.map +1 -0
- package/dist/esm/runtime/protos/wkt.d.ts.map +1 -1
- package/dist/esm/runtime/protos/wkt.js +1 -1
- package/dist/esm/runtime/protos/wkt.js.map +1 -1
- package/dist/esm/runtime/token/exchangeable.d.ts +5 -2
- package/dist/esm/runtime/token/exchangeable.d.ts.map +1 -1
- package/dist/esm/runtime/token/exchangeable.js +52 -34
- package/dist/esm/runtime/token/exchangeable.js.map +1 -1
- package/dist/esm/runtime/token/federated_credentials.d.ts +7 -3
- package/dist/esm/runtime/token/federated_credentials.d.ts.map +1 -1
- package/dist/esm/runtime/token/federated_credentials.js +14 -3
- package/dist/esm/runtime/token/federated_credentials.js.map +1 -1
- package/dist/esm/runtime/token/federation_account.d.ts +4 -0
- package/dist/esm/runtime/token/federation_account.d.ts.map +1 -1
- package/dist/esm/runtime/token/federation_account.js +10 -1
- package/dist/esm/runtime/token/federation_account.js.map +1 -1
- package/dist/esm/runtime/token/federation_bearer/index.d.ts +4 -1
- package/dist/esm/runtime/token/federation_bearer/index.d.ts.map +1 -1
- package/dist/esm/runtime/token/federation_bearer/index.js +42 -25
- package/dist/esm/runtime/token/federation_bearer/index.js.map +1 -1
- package/dist/esm/runtime/token/file.d.ts +6 -2
- package/dist/esm/runtime/token/file.d.ts.map +1 -1
- package/dist/esm/runtime/token/file.js +33 -11
- package/dist/esm/runtime/token/file.js.map +1 -1
- package/dist/esm/runtime/token/file_cache/async_renewable_bearer.d.ts +8 -3
- package/dist/esm/runtime/token/file_cache/async_renewable_bearer.d.ts.map +1 -1
- package/dist/esm/runtime/token/file_cache/async_renewable_bearer.js +110 -56
- package/dist/esm/runtime/token/file_cache/async_renewable_bearer.js.map +1 -1
- package/dist/esm/runtime/token/file_cache/file_bearer.d.ts +4 -1
- package/dist/esm/runtime/token/file_cache/file_bearer.d.ts.map +1 -1
- package/dist/esm/runtime/token/file_cache/file_bearer.js +25 -4
- package/dist/esm/runtime/token/file_cache/file_bearer.js.map +1 -1
- package/dist/esm/runtime/token/file_cache/renewable_bearer.d.ts +5 -2
- package/dist/esm/runtime/token/file_cache/renewable_bearer.d.ts.map +1 -1
- package/dist/esm/runtime/token/file_cache/renewable_bearer.js +47 -7
- package/dist/esm/runtime/token/file_cache/renewable_bearer.js.map +1 -1
- package/dist/esm/runtime/token/renewable.d.ts +8 -3
- package/dist/esm/runtime/token/renewable.d.ts.map +1 -1
- package/dist/esm/runtime/token/renewable.js +101 -54
- package/dist/esm/runtime/token/renewable.js.map +1 -1
- package/dist/esm/runtime/token/service_account.d.ts +7 -3
- package/dist/esm/runtime/token/service_account.d.ts.map +1 -1
- package/dist/esm/runtime/token/service_account.js +19 -7
- package/dist/esm/runtime/token/service_account.js.map +1 -1
- package/dist/esm/runtime/token.d.ts +2 -1
- package/dist/esm/runtime/token.d.ts.map +1 -1
- package/dist/esm/runtime/token.js +8 -4
- package/dist/esm/runtime/token.js.map +1 -1
- package/dist/esm/runtime/util/golang_parsers.d.ts +7 -0
- package/dist/esm/runtime/util/golang_parsers.d.ts.map +1 -0
- package/dist/esm/runtime/util/golang_parsers.js +76 -0
- package/dist/esm/runtime/util/golang_parsers.js.map +1 -0
- package/dist/esm/sdk.d.ts +15 -4
- package/dist/esm/sdk.d.ts.map +1 -1
- package/dist/esm/sdk.js +80 -51
- package/dist/esm/sdk.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.d.ts.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exchangeable.d.ts","sourceRoot":"","sources":["../../../../src/runtime/token/exchangeable.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"exchangeable.d.ts","sourceRoot":"","sources":["../../../../src/runtime/token/exchangeable.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,oBAAoB,EACrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,KAAK,gBAAgB,EAOtB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAS,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAe,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO;CAI3C;AAED,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,SAAS,EAAE,MAAM;CAI9B;AA0GD,qBAAa,kBAAmB,SAAQ,MAAM;IAqB5C,CAAC,MAAM,CAAC,QAAI,MAAM;IAfhB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAE1B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAR1B,SAAgB,KAAK,mCAAmC;IACxD,OAAO,CAAC,GAAG,CAAmD;IAC9D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;gBAG3B,SAAS,EAAE,cAAc,EAC1C,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,EAC/B,UAAU,GAAE,MAAU,EACtB,MAAM,CAAC,EAAE,MAAM,YAAA,EAChC,OAAO,CAAC,EAAE,gBAAgB;IAO5B,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAO3C,CAAC,UAAU,CAAC,IAAI,OAAO;IAQvB,MAAM,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,GAAG,IAAI;IAmB9D,QAAQ,IAAI,QAAQ;CAUrB;AAED,MAAM,WAAW,cAAc;IAC7B,uBAAuB,IAAI,oBAAoB,CAAC;CACjD"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { inspect } from 'util';
|
|
2
2
|
import { Metadata as GrpcMetadata } from '@grpc/grpc-js';
|
|
3
3
|
import { TokenExchangeService as ExchangeSvc, } from '../../api/nebius/iam/v1/index.js';
|
|
4
|
+
import { authMetricsRecorder, METRIC_RESULT_ERROR, METRIC_RESULT_SUCCESS, metricDurationMs, metricStart, } from '../metrics.js';
|
|
4
5
|
import { Bearer, Receiver, Token } from '../token.js';
|
|
5
6
|
import { TokenSanitizer } from '../token_sanitizer.js';
|
|
6
7
|
import { custom, customJson, inspectJson } from '../util/logging.js';
|
|
@@ -21,14 +22,16 @@ class ExchangeableReceiver extends Receiver {
|
|
|
21
22
|
svcOrPromise;
|
|
22
23
|
defaultMaxRetries;
|
|
23
24
|
logger;
|
|
25
|
+
metrics;
|
|
24
26
|
$type = 'nebius.sdk.ExchangeableReceiver';
|
|
25
27
|
trial = 0;
|
|
26
|
-
constructor(requester, svcOrPromise, defaultMaxRetries = 2, logger) {
|
|
28
|
+
constructor(requester, svcOrPromise, defaultMaxRetries = 2, logger, metrics = authMetricsRecorder(undefined, 'token-exchange')) {
|
|
27
29
|
super();
|
|
28
30
|
this.requester = requester;
|
|
29
31
|
this.svcOrPromise = svcOrPromise;
|
|
30
32
|
this.defaultMaxRetries = defaultMaxRetries;
|
|
31
33
|
this.logger = logger;
|
|
34
|
+
this.metrics = metrics;
|
|
32
35
|
this.logger =
|
|
33
36
|
this.logger?.withFields({ trial: this.trial, defaultMaxRetries: this.defaultMaxRetries }) ??
|
|
34
37
|
undefined;
|
|
@@ -49,41 +52,51 @@ class ExchangeableReceiver extends Receiver {
|
|
|
49
52
|
}
|
|
50
53
|
async _fetch(timeoutMs, _options) {
|
|
51
54
|
this.trial += 1;
|
|
52
|
-
const
|
|
55
|
+
const start = metricStart();
|
|
53
56
|
const now = Date.now();
|
|
54
57
|
this.logger = this.logger?.withFields({ trial: this.trial, start: now }) ?? undefined;
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
58
|
+
try {
|
|
59
|
+
const req = this.requester.getExchangeTokenRequest();
|
|
60
|
+
const md = new GrpcMetadata();
|
|
61
|
+
// Disable SDK-side authorization for this call
|
|
62
|
+
const options = {
|
|
63
|
+
authorizationDisable: true,
|
|
64
|
+
};
|
|
65
|
+
if (typeof timeoutMs === 'number' && Number.isFinite(timeoutMs)) {
|
|
66
|
+
this.logger = this.logger?.withFields({ timeoutMs }) ?? undefined;
|
|
67
|
+
this.logger?.trace('setting deadline for exchange call');
|
|
68
|
+
options.deadline = new Date(now + Math.max(0, timeoutMs));
|
|
69
|
+
}
|
|
70
|
+
this.logger?.trace('fetching service client');
|
|
71
|
+
const svc = await this.getSvc();
|
|
72
|
+
this.logger?.trace('making exchange call');
|
|
73
|
+
const res = await svc.exchange(req, md, options).result;
|
|
74
|
+
if (!res || typeof res !== 'object') {
|
|
75
|
+
throw new UnsupportedResponseError('CreateTokenResponse', res);
|
|
76
|
+
}
|
|
77
|
+
if (res.tokenType !== 'Bearer') {
|
|
78
|
+
throw new UnsupportedTokenTypeError(res.tokenType ?? String(res.tokenType));
|
|
79
|
+
}
|
|
80
|
+
const expSec = typeof res.expiresIn === 'object' &&
|
|
81
|
+
res.expiresIn !== null &&
|
|
82
|
+
typeof res.expiresIn.toString === 'function'
|
|
83
|
+
? Number(res.expiresIn.toString())
|
|
84
|
+
: Number(res.expiresIn ?? 0);
|
|
85
|
+
this.logger?.debug('token fetched', {
|
|
86
|
+
expires_in: res.expiresIn,
|
|
87
|
+
expiresInSec: expSec,
|
|
88
|
+
access_token: TokenSanitizer.accessTokenSanitizer().sanitize(res.accessToken),
|
|
89
|
+
});
|
|
90
|
+
const expiration = isFinite(expSec) && expSec > 0 ? new Date(now + expSec * 1000) : undefined;
|
|
91
|
+
const token = new Token(res.accessToken, expiration);
|
|
92
|
+
this.metrics.tokenAcquire(METRIC_RESULT_SUCCESS, metricDurationMs(start), this.trial);
|
|
93
|
+
this.metrics.tokenLifetime(token);
|
|
94
|
+
return token;
|
|
71
95
|
}
|
|
72
|
-
|
|
73
|
-
|
|
96
|
+
catch (err) {
|
|
97
|
+
this.metrics.tokenAcquire(METRIC_RESULT_ERROR, metricDurationMs(start), this.trial);
|
|
98
|
+
throw err;
|
|
74
99
|
}
|
|
75
|
-
const expSec = typeof res.expiresIn === 'object' &&
|
|
76
|
-
res.expiresIn !== null &&
|
|
77
|
-
typeof res.expiresIn.toString === 'function'
|
|
78
|
-
? Number(res.expiresIn.toString())
|
|
79
|
-
: Number(res.expiresIn ?? 0);
|
|
80
|
-
this.logger?.debug('token fetched', {
|
|
81
|
-
expires_in: res.expiresIn,
|
|
82
|
-
expiresInSec: expSec,
|
|
83
|
-
access_token: TokenSanitizer.accessTokenSanitizer().sanitize(res.accessToken),
|
|
84
|
-
});
|
|
85
|
-
const expiration = isFinite(expSec) && expSec > 0 ? new Date(now + expSec * 1000) : undefined;
|
|
86
|
-
return new Token(res.accessToken, expiration);
|
|
87
100
|
}
|
|
88
101
|
canRetry(_err, options) {
|
|
89
102
|
this.logger?.trace('canRetry check', { options });
|
|
@@ -102,13 +115,18 @@ export class ExchangeableBearer extends Bearer {
|
|
|
102
115
|
logger;
|
|
103
116
|
$type = 'nebius.sdk.ExchangeableBearer';
|
|
104
117
|
svc = null;
|
|
105
|
-
|
|
118
|
+
metrics;
|
|
119
|
+
constructor(requester, sdk, maxRetries = 2, logger, metrics) {
|
|
106
120
|
super();
|
|
107
121
|
this.requester = requester;
|
|
108
122
|
this.maxRetries = maxRetries;
|
|
109
123
|
this.logger = logger;
|
|
124
|
+
this.metrics = authMetricsRecorder(metrics, 'token-exchange');
|
|
110
125
|
this.setSDK(sdk);
|
|
111
126
|
}
|
|
127
|
+
setMetrics(metrics) {
|
|
128
|
+
this.metrics.setMetrics(metrics);
|
|
129
|
+
}
|
|
112
130
|
[custom]() {
|
|
113
131
|
return `${this.$type}(requester=${inspect(this.requester)})`;
|
|
114
132
|
}
|
|
@@ -139,7 +157,7 @@ export class ExchangeableBearer extends Bearer {
|
|
|
139
157
|
receiver() {
|
|
140
158
|
if (!this.svc)
|
|
141
159
|
throw new Error('SDK is not set for the bearer.');
|
|
142
|
-
return new ExchangeableReceiver(this.requester, this.svc, this.maxRetries, this.logger);
|
|
160
|
+
return new ExchangeableReceiver(this.requester, this.svc, this.maxRetries, this.logger, this.metrics);
|
|
143
161
|
}
|
|
144
162
|
}
|
|
145
163
|
//# sourceMappingURL=exchangeable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exchangeable.js","sourceRoot":"","sources":["../../../../src/runtime/token/exchangeable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"exchangeable.js","sourceRoot":"","sources":["../../../../src/runtime/token/exchangeable.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type
|
|
3
|
-
import { FederatedCredentialsTokenRequester } from '../service_account/federated_credentials.js';
|
|
1
|
+
import { type AuthMetricsInput } from '../metrics.js';
|
|
2
|
+
import { type FederatedCredentialsReader, FederatedCredentialsTokenRequester } from '../service_account/federated_credentials.js';
|
|
4
3
|
import { Bearer, Receiver } from '../token.js';
|
|
5
4
|
import { custom, customJson, Logger } from '../util/logging.js';
|
|
5
|
+
import type { SDKInterface } from '../../sdk.js';
|
|
6
6
|
export declare class FederatedCredentialsBearer extends Bearer {
|
|
7
7
|
[custom]: () => string;
|
|
8
8
|
readonly $type = "nebius.sdk.FederatedCredentialsBearer";
|
|
9
9
|
private _exchangeable;
|
|
10
|
+
private _renewable;
|
|
10
11
|
private _source;
|
|
12
|
+
private readonly metrics;
|
|
11
13
|
constructor(federatedCredentials: FederatedCredentialsTokenRequester | FederatedCredentialsReader | string, opts?: {
|
|
12
14
|
sdk?: SDKInterface | Promise<SDKInterface> | null;
|
|
13
15
|
maxRetries?: number;
|
|
@@ -17,10 +19,12 @@ export declare class FederatedCredentialsBearer extends Bearer {
|
|
|
17
19
|
retryTimeoutExponent?: number;
|
|
18
20
|
refreshRequestTimeoutMs?: number;
|
|
19
21
|
serviceAccountId?: string | null;
|
|
22
|
+
metrics?: AuthMetricsInput;
|
|
20
23
|
logger?: Logger;
|
|
21
24
|
});
|
|
22
25
|
[customJson](): unknown;
|
|
23
26
|
setSDK(sdk: SDKInterface | Promise<SDKInterface> | null): void;
|
|
27
|
+
setMetrics(metrics: AuthMetricsInput): void;
|
|
24
28
|
get wrapped(): Bearer | undefined;
|
|
25
29
|
receiver(): Receiver;
|
|
26
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"federated_credentials.d.ts","sourceRoot":"","sources":["../../../../src/runtime/token/federated_credentials.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"federated_credentials.d.ts","sourceRoot":"","sources":["../../../../src/runtime/token/federated_credentials.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,gBAAgB,EAGtB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,KAAK,0BAA0B,EAC/B,kCAAkC,EAEnC,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,MAAM,EAAe,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,UAAU,EAAe,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAI7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,qBAAa,0BAA2B,SAAQ,MAAM;IA+FpD,CAAC,MAAM,CAAC,QAAI,MAAM;IA9FlB,SAAgB,KAAK,2CAA2C;IAChE,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;gBAG5C,oBAAoB,EAAE,kCAAkC,GAAG,0BAA0B,GAAG,MAAM,EAC9F,IAAI,CAAC,EAAE;QACL,GAAG,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;QAClD,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,OAAO,CAAC,EAAE,gBAAgB,CAAC;QAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;IA8EH,CAAC,UAAU,CAAC,IAAI,OAAO;IAOvB,MAAM,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,GAAG,IAAI;IAI9D,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAM3C,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAEhC;IAED,QAAQ,IAAI,QAAQ;CAGrB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { inspect } from 'util';
|
|
2
|
+
import { authMetricsRecorder, } from '../metrics.js';
|
|
2
3
|
import { FederatedCredentialsTokenRequester, FileFederatedCredentials, } from '../service_account/federated_credentials.js';
|
|
3
4
|
import { Bearer, NamedBearer } from '../token.js';
|
|
4
5
|
import { custom, customJson, inspectJson } from '../util/logging.js';
|
|
@@ -7,7 +8,9 @@ import { RenewableBearer } from './renewable.js';
|
|
|
7
8
|
export class FederatedCredentialsBearer extends Bearer {
|
|
8
9
|
$type = 'nebius.sdk.FederatedCredentialsBearer';
|
|
9
10
|
_exchangeable;
|
|
11
|
+
_renewable;
|
|
10
12
|
_source;
|
|
13
|
+
metrics;
|
|
11
14
|
constructor(federatedCredentials, opts) {
|
|
12
15
|
super();
|
|
13
16
|
let fc = null;
|
|
@@ -30,17 +33,20 @@ export class FederatedCredentialsBearer extends Bearer {
|
|
|
30
33
|
throw new TypeError(`federatedCredentials must be FederatedCredentialsTokenRequester, FederatedCredentialsReader or string, got ${typeof federatedCredentials}`);
|
|
31
34
|
}
|
|
32
35
|
const maxRetries = opts?.maxRetries ?? 2;
|
|
33
|
-
this.
|
|
34
|
-
|
|
36
|
+
this.metrics = authMetricsRecorder(opts?.metrics, 'federated-credentials');
|
|
37
|
+
this._exchangeable = new ExchangeableBearer(fc, opts?.sdk ?? null, maxRetries, opts?.logger?.child('exchangeable'), this.metrics);
|
|
38
|
+
this._renewable = new RenewableBearer(this._exchangeable, {
|
|
35
39
|
maxRetries,
|
|
36
40
|
lifetimeSafeFraction: opts?.lifetimeSafeFraction,
|
|
37
41
|
initialRetryTimeoutMs: opts?.initialRetryTimeoutMs,
|
|
38
42
|
maxRetryTimeoutMs: opts?.maxRetryTimeoutMs,
|
|
39
43
|
retryTimeoutExponent: opts?.retryTimeoutExponent,
|
|
40
44
|
refreshRequestTimeoutMs: opts?.refreshRequestTimeoutMs,
|
|
45
|
+
metrics: this.metrics,
|
|
46
|
+
provider: 'federated-credentials',
|
|
41
47
|
logger: opts?.logger?.child('renewable'),
|
|
42
48
|
});
|
|
43
|
-
this._source =
|
|
49
|
+
this._source = this._renewable;
|
|
44
50
|
if (fc instanceof FederatedCredentialsTokenRequester &&
|
|
45
51
|
fc.credentials instanceof FileFederatedCredentials) {
|
|
46
52
|
opts?.logger?.debug('wrapping with NamedBearer as the credentials are file-based', {
|
|
@@ -62,6 +68,11 @@ export class FederatedCredentialsBearer extends Bearer {
|
|
|
62
68
|
setSDK(sdk) {
|
|
63
69
|
this._exchangeable.setSDK(sdk);
|
|
64
70
|
}
|
|
71
|
+
setMetrics(metrics) {
|
|
72
|
+
this.metrics.setMetrics(metrics);
|
|
73
|
+
this._exchangeable.setMetrics(this.metrics);
|
|
74
|
+
this._renewable.setMetrics(this.metrics);
|
|
75
|
+
}
|
|
65
76
|
get wrapped() {
|
|
66
77
|
return this._source;
|
|
67
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"federated_credentials.js","sourceRoot":"","sources":["../../../../src/runtime/token/federated_credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"federated_credentials.js","sourceRoot":"","sources":["../../../../src/runtime/token/federated_credentials.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import { type AuthMetricsInput } from '../metrics.js';
|
|
1
2
|
import { Bearer, Receiver } from '../token.js';
|
|
2
3
|
import { custom, customJson, Logger } from '../util/logging.js';
|
|
3
4
|
export declare class FederationAccountBearer extends Bearer {
|
|
4
5
|
[custom]: () => string;
|
|
5
6
|
readonly $type = "nebius.sdk.FederationAccountBearer";
|
|
6
7
|
private _source;
|
|
8
|
+
private readonly metrics;
|
|
7
9
|
constructor(profileName: string, clientId: string, federationEndpoint: string, federationId: string, opts?: {
|
|
8
10
|
writer?: (s: string) => void;
|
|
9
11
|
logger?: Logger;
|
|
@@ -19,9 +21,11 @@ export declare class FederationAccountBearer extends Bearer {
|
|
|
19
21
|
fileCacheThrottleMs?: number;
|
|
20
22
|
cacheFilePath?: string;
|
|
21
23
|
ca?: Buffer | string | string[];
|
|
24
|
+
metrics?: AuthMetricsInput;
|
|
22
25
|
});
|
|
23
26
|
[customJson](): unknown;
|
|
24
27
|
get wrapped(): Bearer | undefined;
|
|
28
|
+
setMetrics(metrics: AuthMetricsInput): void;
|
|
25
29
|
receiver(): Receiver;
|
|
26
30
|
}
|
|
27
31
|
//# sourceMappingURL=federation_account.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"federation_account.d.ts","sourceRoot":"","sources":["../../../../src/runtime/token/federation_account.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAe,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"federation_account.d.ts","sourceRoot":"","sources":["../../../../src/runtime/token/federation_account.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,gBAAgB,EAGtB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAe,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAI7E,qBAAa,uBAAwB,SAAQ,MAAM;IA6DjD,CAAC,MAAM,CAAC,QAAI,MAAM;IA5DlB,SAAgB,KAAK,wCAAwC;IAC7D,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;gBAG5C,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,kBAAkB,EAAE,MAAM,EAC1B,YAAY,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;QAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtC,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;QAChC,OAAO,CAAC,EAAE,gBAAgB,CAAC;KAC5B;IAsCH,CAAC,UAAU,CAAC,IAAI,OAAO;IAOvB,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAEhC;IAED,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAK3C,QAAQ,IAAI,QAAQ;CAGrB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { inspect } from 'util';
|
|
2
|
+
import { authMetricsRecorder, } from '../metrics.js';
|
|
2
3
|
import { Bearer } from '../token.js';
|
|
3
4
|
import { custom, customJson, inspectJson } from '../util/logging.js';
|
|
4
5
|
import { FederationBearer as FederationAuthBearer } from './federation_bearer/index.js';
|
|
@@ -6,9 +7,11 @@ import { AsyncRenewableBearer } from './file_cache/async_renewable_bearer.js';
|
|
|
6
7
|
export class FederationAccountBearer extends Bearer {
|
|
7
8
|
$type = 'nebius.sdk.FederationAccountBearer';
|
|
8
9
|
_source;
|
|
10
|
+
metrics;
|
|
9
11
|
constructor(profileName, clientId, federationEndpoint, federationId, opts) {
|
|
10
12
|
super();
|
|
11
|
-
|
|
13
|
+
this.metrics = authMetricsRecorder(opts?.metrics, 'federation');
|
|
14
|
+
const auth = new FederationAuthBearer(profileName, clientId, federationEndpoint, federationId, opts?.writer, opts?.noBrowserOpen ?? false, opts?.ca instanceof Buffer ? opts.ca : undefined, opts?.logger?.child('federation_auth'), this.metrics);
|
|
12
15
|
const renewable = new AsyncRenewableBearer(auth, {
|
|
13
16
|
maxRetries: opts?.maxRetries ?? 2,
|
|
14
17
|
initialSafetyMarginMs: opts?.initialSafetyMarginMs ?? 2 * 60 * 60 * 1000,
|
|
@@ -20,6 +23,8 @@ export class FederationAccountBearer extends Bearer {
|
|
|
20
23
|
refreshRequestTimeoutMs: opts?.timeoutMs ?? 5 * 60 * 1000,
|
|
21
24
|
fileCacheThrottleMs: opts?.fileCacheThrottleMs ?? 5 * 60 * 1000,
|
|
22
25
|
cacheFilePath: opts?.cacheFilePath,
|
|
26
|
+
metrics: this.metrics,
|
|
27
|
+
provider: 'federation',
|
|
23
28
|
logger: opts?.logger?.child('renewable'),
|
|
24
29
|
});
|
|
25
30
|
this._source = renewable;
|
|
@@ -36,6 +41,10 @@ export class FederationAccountBearer extends Bearer {
|
|
|
36
41
|
get wrapped() {
|
|
37
42
|
return this._source;
|
|
38
43
|
}
|
|
44
|
+
setMetrics(metrics) {
|
|
45
|
+
this.metrics.setMetrics(metrics);
|
|
46
|
+
this._source.setMetrics(this.metrics);
|
|
47
|
+
}
|
|
39
48
|
receiver() {
|
|
40
49
|
return this._source.receiver();
|
|
41
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"federation_account.js","sourceRoot":"","sources":["../../../../src/runtime/token/federation_account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,OAAO,EAAE,MAAM,EAAY,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAU,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"federation_account.js","sourceRoot":"","sources":["../../../../src/runtime/token/federation_account.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type AuthMetricsInput } from '../../metrics.js';
|
|
1
2
|
import { Bearer, Receiver } from '../../token.js';
|
|
2
3
|
import { custom, customJson, Logger } from '../../util/logging.js';
|
|
3
4
|
export declare class FederationBearer extends Bearer {
|
|
@@ -11,7 +12,9 @@ export declare class FederationBearer extends Bearer {
|
|
|
11
12
|
private readonly ca?;
|
|
12
13
|
readonly $type = "nebius.sdk.FederationBearer";
|
|
13
14
|
private readonly logger?;
|
|
14
|
-
|
|
15
|
+
private readonly metrics;
|
|
16
|
+
constructor(profileName: string, clientId: string, federationEndpoint: string, federationId: string, writer?: ((s: string) => void) | undefined, noBrowserOpen?: boolean, ca?: Buffer | undefined, logger?: Logger, metrics?: AuthMetricsInput);
|
|
17
|
+
setMetrics(metrics: AuthMetricsInput): void;
|
|
15
18
|
[customJson](): unknown;
|
|
16
19
|
get name(): string | undefined;
|
|
17
20
|
receiver(): Receiver;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/token/federation_bearer/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/token/federation_bearer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EAOtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAS,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AA+EnE,qBAAa,gBAAiB,SAAQ,MAAM;IA6B1C,CAAC,MAAM,CAAC,QAAI,MAAM;IAxBhB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;IAVtB,SAAgB,KAAK,iCAAiC;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;gBAE3B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,kBAAkB,EAAE,MAAM,EAC1B,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,GAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,aAAA,EAC5B,aAAa,GAAE,OAAe,EAC9B,EAAE,CAAC,EAAE,MAAM,YAAA,EAC5B,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,gBAAgB;IAa5B,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAM3C,CAAC,UAAU,CAAC,IAAI,OAAO;IAWvB,IAAI,IAAI,IAAI,MAAM,GAAG,SAAS,CAE7B;IAED,QAAQ,IAAI,QAAQ;CAarB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { authMetricsRecorder, METRIC_RESULT_ERROR, METRIC_RESULT_SUCCESS, metricDurationMs, metricStart, } from '../../metrics.js';
|
|
1
2
|
import { Bearer, Receiver, Token } from '../../token.js';
|
|
2
3
|
import { TokenSanitizer } from '../../token_sanitizer.js';
|
|
3
4
|
import { custom, customJson } from '../../util/logging.js';
|
|
@@ -10,8 +11,9 @@ class FederationReceiver extends Receiver {
|
|
|
10
11
|
noBrowserOpen;
|
|
11
12
|
ca;
|
|
12
13
|
logger;
|
|
14
|
+
metrics;
|
|
13
15
|
$type = 'nebius.sdk.FederationReceiver';
|
|
14
|
-
constructor(clientId, federationEndpoint, federationId, writer, noBrowserOpen = false, ca, logger) {
|
|
16
|
+
constructor(clientId, federationEndpoint, federationId, writer, noBrowserOpen = false, ca, logger, metrics = authMetricsRecorder(undefined, 'federation')) {
|
|
15
17
|
super();
|
|
16
18
|
this.clientId = clientId;
|
|
17
19
|
this.federationEndpoint = federationEndpoint;
|
|
@@ -20,6 +22,7 @@ class FederationReceiver extends Receiver {
|
|
|
20
22
|
this.noBrowserOpen = noBrowserOpen;
|
|
21
23
|
this.ca = ca;
|
|
22
24
|
this.logger = logger;
|
|
25
|
+
this.metrics = metrics;
|
|
23
26
|
}
|
|
24
27
|
[custom]() {
|
|
25
28
|
return `${this.$type}(clientId=${this.clientId}, federationEndpoint=${this.federationEndpoint}, federationId=${this.federationId}, noBrowserOpen=${this.noBrowserOpen})`;
|
|
@@ -36,29 +39,38 @@ class FederationReceiver extends Receiver {
|
|
|
36
39
|
};
|
|
37
40
|
}
|
|
38
41
|
async _fetch(timeoutMs, _options) {
|
|
39
|
-
const start =
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
42
|
+
const start = metricStart();
|
|
43
|
+
const startWallMs = Date.now();
|
|
44
|
+
this.logger?.debug('receiver._fetch: start', { timeoutMs, start: startWallMs });
|
|
45
|
+
try {
|
|
46
|
+
const res = await authorize({
|
|
47
|
+
clientId: this.clientId,
|
|
48
|
+
federationEndpoint: this.federationEndpoint,
|
|
49
|
+
federationId: this.federationId,
|
|
50
|
+
writer: this.writer,
|
|
51
|
+
noBrowserOpen: this.noBrowserOpen,
|
|
52
|
+
timeoutMs: timeoutMs === undefined ? undefined : Math.max(0, timeoutMs - (Date.now() - startWallMs)),
|
|
53
|
+
ca: this.ca,
|
|
54
|
+
logger: this.logger?.child('auth'),
|
|
55
|
+
});
|
|
56
|
+
this.logger?.trace('receiver._fetch: authorize result', {
|
|
57
|
+
expires_in: res?.expires_in,
|
|
58
|
+
access_token: TokenSanitizer.accessTokenSanitizer().sanitize(res?.access_token),
|
|
59
|
+
});
|
|
60
|
+
if (!res || typeof res.access_token !== 'string' || typeof res.expires_in !== 'number') {
|
|
61
|
+
throw new Error('invalid token response');
|
|
62
|
+
}
|
|
63
|
+
const expiration = res.expires_in > 0 ? new Date(Date.now() + res.expires_in * 1000) : undefined;
|
|
64
|
+
const tok = new Token(res.access_token, expiration);
|
|
65
|
+
this.metrics.tokenAcquire(METRIC_RESULT_SUCCESS, metricDurationMs(start), 1);
|
|
66
|
+
this.metrics.tokenLifetime(tok);
|
|
67
|
+
this.logger?.debug('receiver._fetch: received token', { token: tok });
|
|
68
|
+
return tok;
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
this.metrics.tokenAcquire(METRIC_RESULT_ERROR, metricDurationMs(start), 1);
|
|
72
|
+
throw err;
|
|
57
73
|
}
|
|
58
|
-
const expiration = res.expires_in > 0 ? new Date(Date.now() + res.expires_in * 1000) : undefined;
|
|
59
|
-
const tok = new Token(res.access_token, expiration);
|
|
60
|
-
this.logger?.debug('receiver._fetch: received token', { token: tok });
|
|
61
|
-
return tok;
|
|
62
74
|
}
|
|
63
75
|
canRetry(_err, _options) {
|
|
64
76
|
this.logger?.debug('receiver.canRetry -> false');
|
|
@@ -75,7 +87,8 @@ export class FederationBearer extends Bearer {
|
|
|
75
87
|
ca;
|
|
76
88
|
$type = 'nebius.sdk.FederationBearer';
|
|
77
89
|
logger;
|
|
78
|
-
|
|
90
|
+
metrics;
|
|
91
|
+
constructor(profileName, clientId, federationEndpoint, federationId, writer, noBrowserOpen = false, ca, logger, metrics) {
|
|
79
92
|
super();
|
|
80
93
|
this.profileName = profileName;
|
|
81
94
|
this.clientId = clientId;
|
|
@@ -84,6 +97,7 @@ export class FederationBearer extends Bearer {
|
|
|
84
97
|
this.writer = writer;
|
|
85
98
|
this.noBrowserOpen = noBrowserOpen;
|
|
86
99
|
this.ca = ca;
|
|
100
|
+
this.metrics = authMetricsRecorder(metrics, 'federation');
|
|
87
101
|
this.logger = logger?.withFields({
|
|
88
102
|
profile: profileName,
|
|
89
103
|
federationEndpoint,
|
|
@@ -92,6 +106,9 @@ export class FederationBearer extends Bearer {
|
|
|
92
106
|
});
|
|
93
107
|
this.logger?.trace('bearer: created');
|
|
94
108
|
}
|
|
109
|
+
setMetrics(metrics) {
|
|
110
|
+
this.metrics.setMetrics(metrics);
|
|
111
|
+
}
|
|
95
112
|
[custom]() {
|
|
96
113
|
return `${this.$type}(profileName=${this.profileName}, clientId=${this.clientId}, federationEndpoint=${this.federationEndpoint}, federationId=${this.federationId}, noBrowserOpen=${this.noBrowserOpen})`;
|
|
97
114
|
}
|
|
@@ -110,7 +127,7 @@ export class FederationBearer extends Bearer {
|
|
|
110
127
|
}
|
|
111
128
|
receiver() {
|
|
112
129
|
this.logger?.trace('bearer.receiver');
|
|
113
|
-
return new FederationReceiver(this.clientId, this.federationEndpoint, this.federationId, this.writer, this.noBrowserOpen, this.ca, this.logger);
|
|
130
|
+
return new FederationReceiver(this.clientId, this.federationEndpoint, this.federationId, this.writer, this.noBrowserOpen, this.ca, this.logger, this.metrics);
|
|
114
131
|
}
|
|
115
132
|
}
|
|
116
133
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/runtime/token/federation_bearer/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/runtime/token/federation_bearer/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { type AuthMetricsInput } from '../metrics.js';
|
|
2
|
+
import { Bearer, Receiver, Token } from '../token.js';
|
|
2
3
|
import { custom, customJson } from '../util/logging.js';
|
|
3
4
|
export declare class FileBearer extends Bearer {
|
|
4
5
|
[custom]: () => string;
|
|
5
6
|
readonly $type = "nebius.sdk.FileBearer";
|
|
6
7
|
private readonly filePath;
|
|
7
|
-
|
|
8
|
+
private readonly metrics;
|
|
9
|
+
constructor(filePath: string, metrics?: AuthMetricsInput);
|
|
8
10
|
[customJson](): unknown;
|
|
9
11
|
receiver(): Receiver;
|
|
12
|
+
fetchToken(): Promise<Token>;
|
|
13
|
+
setMetrics(metrics: AuthMetricsInput): void;
|
|
10
14
|
}
|
|
11
15
|
//# sourceMappingURL=file.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../../src/runtime/token/file.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../../src/runtime/token/file.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,gBAAgB,EAOtB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAgCxD,qBAAa,UAAW,SAAQ,MAAM;IAUpC,CAAC,MAAM,CAAC,QAAI,MAAM;IATlB,SAAgB,KAAK,2BAA2B;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;gBAElC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAQxD,CAAC,UAAU,CAAC,IAAI,OAAO;IAOvB,QAAQ,IAAI,QAAQ;IAId,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC;IAkBlC,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;CAG5C"}
|