@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,5 +1,6 @@
|
|
|
1
1
|
import { inspect } from 'util';
|
|
2
|
-
import {
|
|
2
|
+
import { authMetricsRecorder, } from '../metrics.js';
|
|
3
|
+
import { ServiceAccount, } from '../service_account/service_account.js';
|
|
3
4
|
import { StaticReader } from '../service_account/static.js';
|
|
4
5
|
import { Bearer, NamedBearer } from '../token.js';
|
|
5
6
|
import { custom, customJson, inspectJson } from '../util/logging.js';
|
|
@@ -8,7 +9,9 @@ import { RenewableBearer } from './renewable.js';
|
|
|
8
9
|
export class ServiceAccountBearer extends Bearer {
|
|
9
10
|
$type = 'nebius.sdk.ServiceAccountBearer';
|
|
10
11
|
_exchangeable;
|
|
12
|
+
_renewable;
|
|
11
13
|
_source;
|
|
14
|
+
metrics;
|
|
12
15
|
constructor(serviceAccount, opts) {
|
|
13
16
|
super();
|
|
14
17
|
let reader = null;
|
|
@@ -50,17 +53,20 @@ export class ServiceAccountBearer extends Bearer {
|
|
|
50
53
|
const saId = serviceAccount.serviceAccountId;
|
|
51
54
|
const publicKeyId = serviceAccount.publicKeyId;
|
|
52
55
|
const maxRetries = opts?.maxRetries ?? 2;
|
|
53
|
-
this.
|
|
54
|
-
|
|
56
|
+
this.metrics = authMetricsRecorder(opts?.metrics, 'service-account');
|
|
57
|
+
this._exchangeable = new ExchangeableBearer(reader, opts?.sdk ?? null, maxRetries, opts?.logger?.child('exchangeable'), this.metrics);
|
|
58
|
+
this._renewable = new RenewableBearer(this._exchangeable, {
|
|
55
59
|
maxRetries,
|
|
56
60
|
lifetimeSafeFraction: opts?.lifetimeSafeFraction,
|
|
57
61
|
initialRetryTimeoutMs: opts?.initialRetryTimeoutMs,
|
|
58
62
|
maxRetryTimeoutMs: opts?.maxRetryTimeoutMs,
|
|
59
63
|
retryTimeoutExponent: opts?.retryTimeoutExponent,
|
|
60
64
|
refreshRequestTimeoutMs: opts?.refreshRequestTimeoutMs,
|
|
65
|
+
metrics: this.metrics,
|
|
66
|
+
provider: 'service-account',
|
|
61
67
|
logger: opts?.logger?.child('renewable'),
|
|
62
68
|
});
|
|
63
|
-
this._source = new NamedBearer(
|
|
69
|
+
this._source = new NamedBearer(this._renewable, `service-account/${saId}/${publicKeyId}`);
|
|
64
70
|
}
|
|
65
71
|
[custom]() {
|
|
66
72
|
return `${this.$type}(${inspect(this._source)})`;
|
|
@@ -74,6 +80,11 @@ export class ServiceAccountBearer extends Bearer {
|
|
|
74
80
|
setSDK(sdk) {
|
|
75
81
|
this._exchangeable.setSDK(sdk);
|
|
76
82
|
}
|
|
83
|
+
setMetrics(metrics) {
|
|
84
|
+
this.metrics.setMetrics(metrics);
|
|
85
|
+
this._exchangeable.setMetrics(this.metrics);
|
|
86
|
+
this._renewable.setMetrics(this.metrics);
|
|
87
|
+
}
|
|
77
88
|
get wrapped() {
|
|
78
89
|
return this._source;
|
|
79
90
|
}
|
|
@@ -81,11 +92,12 @@ export class ServiceAccountBearer extends Bearer {
|
|
|
81
92
|
return this._source.receiver();
|
|
82
93
|
}
|
|
83
94
|
}
|
|
84
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
85
95
|
function isServiceAccountReader(x) {
|
|
86
|
-
return (x &&
|
|
87
|
-
typeof x === 'object' &&
|
|
96
|
+
return (isObject(x) &&
|
|
88
97
|
typeof x.read === 'function' &&
|
|
89
98
|
typeof x.getExchangeTokenRequest === 'function');
|
|
90
99
|
}
|
|
100
|
+
function isObject(value) {
|
|
101
|
+
return typeof value === 'object' && value !== null;
|
|
102
|
+
}
|
|
91
103
|
//# sourceMappingURL=service_account.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service_account.js","sourceRoot":"","sources":["../../../../src/runtime/token/service_account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"service_account.js","sourceRoot":"","sources":["../../../../src/runtime/token/service_account.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,7 +36,8 @@ export declare abstract class Bearer {
|
|
|
36
36
|
abstract receiver(): Receiver;
|
|
37
37
|
get name(): string | undefined;
|
|
38
38
|
get wrapped(): Bearer | undefined;
|
|
39
|
-
|
|
39
|
+
get metricProvider(): string;
|
|
40
|
+
close(graceMs?: number): Promise<void>;
|
|
40
41
|
}
|
|
41
42
|
export declare class NamedBearer extends Bearer {
|
|
42
43
|
[custom]: () => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../src/runtime/token.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAe,MAAM,mBAAmB,CAAC;AAEpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGxE,qBAAa,KAAK;IAUhB,CAAC,MAAM,CAAC,QAAI,MAAM;IATlB,SAAgB,KAAK,EAAE,wBAAwB,CAA4B;IAC3E,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAO;gBAEjB,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI;IAS5C,CAAC,UAAU,CAAC,IAAI,MAAM;IAQtB,QAAQ,IAAI,MAAM;IAYlB,MAAM,CAAC,KAAK,IAAI,KAAK;IAIrB,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,UAAU,IAAI,IAAI,GAAG,SAAS,CAEjC;IAED,OAAO,IAAI,OAAO;IAIlB,SAAS,IAAI,OAAO;IAKpB,MAAM,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;IAOtD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,KAAK;IAO5E,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;CAMhC;AAGD,8BAAsB,QAAQ;IAC5B,kBAAyB,KAAK,EAAE,MAAM,CAAC;IACvC,SAAS,CAAC,OAAO,EAAE,KAAK,GAAG,SAAS,CAAC;IAErC,SAAS,CAAC,QAAQ,CAAC,MAAM,CACvB,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,GACzC,OAAO,CAAC,KAAK,CAAC;IAEjB,IAAI,MAAM,IAAI,KAAK,GAAG,SAAS,CAE9B;IAEK,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;IAM3F,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,GAAG,OAAO;CACrF;AAGD,8BAAsB,MAAM;IAC1B,kBAAyB,KAAK,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,QAAQ,IAAI,QAAQ;IAE7B,IAAI,IAAI,IAAI,MAAM,GAAG,SAAS,CAE7B;IAED,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAEhC;IAEK,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../src/runtime/token.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAe,MAAM,mBAAmB,CAAC;AAEpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGxE,qBAAa,KAAK;IAUhB,CAAC,MAAM,CAAC,QAAI,MAAM;IATlB,SAAgB,KAAK,EAAE,wBAAwB,CAA4B;IAC3E,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAO;gBAEjB,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI;IAS5C,CAAC,UAAU,CAAC,IAAI,MAAM;IAQtB,QAAQ,IAAI,MAAM;IAYlB,MAAM,CAAC,KAAK,IAAI,KAAK;IAIrB,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,UAAU,IAAI,IAAI,GAAG,SAAS,CAEjC;IAED,OAAO,IAAI,OAAO;IAIlB,SAAS,IAAI,OAAO;IAKpB,MAAM,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;IAOtD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,KAAK;IAO5E,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;CAMhC;AAGD,8BAAsB,QAAQ;IAC5B,kBAAyB,KAAK,EAAE,MAAM,CAAC;IACvC,SAAS,CAAC,OAAO,EAAE,KAAK,GAAG,SAAS,CAAC;IAErC,SAAS,CAAC,QAAQ,CAAC,MAAM,CACvB,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,GACzC,OAAO,CAAC,KAAK,CAAC;IAEjB,IAAI,MAAM,IAAI,KAAK,GAAG,SAAS,CAE9B;IAEK,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;IAM3F,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,GAAG,OAAO;CACrF;AAGD,8BAAsB,MAAM;IAC1B,kBAAyB,KAAK,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,QAAQ,IAAI,QAAQ;IAE7B,IAAI,IAAI,IAAI,MAAM,GAAG,SAAS,CAE7B;IAED,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAEhC;IAED,IAAI,cAAc,IAAI,MAAM,CAI3B;IAEK,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG7C;AAGD,qBAAa,WAAY,SAAQ,MAAM;IAQrC,CAAC,MAAM,CAAC,QAAI,MAAM;IALhB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAHxB,SAAgB,KAAK,4BAA4B;gBAE9B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM;IAOhC,CAAC,UAAU,CAAC,IAAI,OAAO;IAQvB,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAEhC;IAED,IAAI,IAAI,IAAI,MAAM,GAAG,SAAS,CAE7B;IAED,QAAQ,IAAI,QAAQ;CAGrB"}
|
|
@@ -89,10 +89,14 @@ export class Bearer {
|
|
|
89
89
|
get wrapped() {
|
|
90
90
|
return undefined;
|
|
91
91
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
92
|
+
get metricProvider() {
|
|
93
|
+
const namedProvider = this.name?.split('/')[0];
|
|
94
|
+
if (namedProvider)
|
|
95
|
+
return namedProvider;
|
|
96
|
+
return this.wrapped?.metricProvider ?? this.$type;
|
|
97
|
+
}
|
|
98
|
+
async close(graceMs) {
|
|
99
|
+
await this.wrapped?.close(graceMs);
|
|
96
100
|
}
|
|
97
101
|
}
|
|
98
102
|
// Helper to label a bearer without changing behavior
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/runtime/token.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/runtime/token.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"golang_parsers.d.ts","sourceRoot":"","sources":["../../../../src/runtime/util/golang_parsers.ts"],"names":[],"mappings":"AAaA,qBAAa,oBAAoB;IAC/B,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;CA4CpD;AAED,qBAAa,gBAAgB;IAC3B,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;CAoBnD"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
const durationUnitsMs = {
|
|
2
|
+
h: 60 * 60 * 1000,
|
|
3
|
+
m: 60 * 1000,
|
|
4
|
+
ms: 1,
|
|
5
|
+
ns: 1 / 1_000_000,
|
|
6
|
+
s: 1000,
|
|
7
|
+
us: 1 / 1000,
|
|
8
|
+
µs: 1 / 1000,
|
|
9
|
+
μs: 1 / 1000,
|
|
10
|
+
};
|
|
11
|
+
export class GolangDurationParser {
|
|
12
|
+
static parseMs(name, value) {
|
|
13
|
+
const trimmed = value.trim();
|
|
14
|
+
if (trimmed === '') {
|
|
15
|
+
throw new Error(`${name} is empty`);
|
|
16
|
+
}
|
|
17
|
+
if (trimmed === '0') {
|
|
18
|
+
return 0;
|
|
19
|
+
}
|
|
20
|
+
let sign = 1;
|
|
21
|
+
let input = trimmed;
|
|
22
|
+
if (input.startsWith('+') || input.startsWith('-')) {
|
|
23
|
+
sign = input.startsWith('-') ? -1 : 1;
|
|
24
|
+
input = input.slice(1);
|
|
25
|
+
}
|
|
26
|
+
if (input === '') {
|
|
27
|
+
throw new Error(`parse ${name}: invalid duration ${JSON.stringify(value)}`);
|
|
28
|
+
}
|
|
29
|
+
let index = 0;
|
|
30
|
+
let totalMs = 0;
|
|
31
|
+
const token = /(\d+(?:\.\d*)?|\.\d+)(ns|us|µs|μs|ms|s|m|h)/y;
|
|
32
|
+
while (index < input.length) {
|
|
33
|
+
token.lastIndex = index;
|
|
34
|
+
const match = token.exec(input);
|
|
35
|
+
if (!match) {
|
|
36
|
+
throw new Error(`parse ${name}: invalid duration ${JSON.stringify(value)}`);
|
|
37
|
+
}
|
|
38
|
+
const amount = Number(match[1]);
|
|
39
|
+
if (!Number.isFinite(amount)) {
|
|
40
|
+
throw new Error(`parse ${name}: invalid duration ${JSON.stringify(value)}`);
|
|
41
|
+
}
|
|
42
|
+
const unit = match[2];
|
|
43
|
+
totalMs += amount * durationUnitsMs[unit];
|
|
44
|
+
index = token.lastIndex;
|
|
45
|
+
}
|
|
46
|
+
totalMs *= sign;
|
|
47
|
+
if (totalMs < 0) {
|
|
48
|
+
throw new Error(`${name} must not be negative`);
|
|
49
|
+
}
|
|
50
|
+
const rounded = Math.round(totalMs);
|
|
51
|
+
return totalMs > 0 && rounded === 0 ? 1 : rounded;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
export class GolangBoolParser {
|
|
55
|
+
static parse(name, value) {
|
|
56
|
+
switch (value.trim()) {
|
|
57
|
+
case '1':
|
|
58
|
+
case 't':
|
|
59
|
+
case 'T':
|
|
60
|
+
case 'TRUE':
|
|
61
|
+
case 'true':
|
|
62
|
+
case 'True':
|
|
63
|
+
return true;
|
|
64
|
+
case '0':
|
|
65
|
+
case 'f':
|
|
66
|
+
case 'F':
|
|
67
|
+
case 'FALSE':
|
|
68
|
+
case 'false':
|
|
69
|
+
case 'False':
|
|
70
|
+
return false;
|
|
71
|
+
default:
|
|
72
|
+
throw new Error(`parse ${name}: invalid boolean ${JSON.stringify(value)}`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=golang_parsers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"golang_parsers.js","sourceRoot":"","sources":["../../../../src/runtime/util/golang_parsers.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG;IACtB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;IACjB,CAAC,EAAE,EAAE,GAAG,IAAI;IACZ,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC,GAAG,SAAS;IACjB,CAAC,EAAE,IAAI;IACP,EAAE,EAAE,CAAC,GAAG,IAAI;IACZ,EAAE,EAAE,CAAC,GAAG,IAAI;IACZ,EAAE,EAAE,CAAC,GAAG,IAAI;CACJ,CAAC;AAIX,MAAM,OAAO,oBAAoB;IAC/B,MAAM,CAAC,OAAO,CAAC,IAAY,EAAE,KAAa;QACxC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;YACpB,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,KAAK,GAAG,OAAO,CAAC;QACpB,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACnD,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,sBAAsB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;QAED,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,MAAM,KAAK,GAAG,8CAA8C,CAAC;QAC7D,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC5B,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;YACxB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,sBAAsB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC9E,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,sBAAsB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC9E,CAAC;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAiB,CAAC;YACtC,OAAO,IAAI,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;YAC1C,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC;QAC1B,CAAC;QAED,OAAO,IAAI,IAAI,CAAC;QAChB,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,uBAAuB,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,OAAO,GAAG,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACpD,CAAC;CACF;AAED,MAAM,OAAO,gBAAgB;IAC3B,MAAM,CAAC,KAAK,CAAC,IAAY,EAAE,KAAa;QACtC,QAAQ,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACrB,KAAK,GAAG,CAAC;YACT,KAAK,GAAG,CAAC;YACT,KAAK,GAAG,CAAC;YACT,KAAK,MAAM,CAAC;YACZ,KAAK,MAAM,CAAC;YACZ,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC;YACd,KAAK,GAAG,CAAC;YACT,KAAK,GAAG,CAAC;YACT,KAAK,GAAG,CAAC;YACT,KAAK,OAAO,CAAC;YACb,KAAK,OAAO,CAAC;YACb,KAAK,OAAO;gBACV,OAAO,KAAK,CAAC;YACf;gBACE,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,qBAAqB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;CACF"}
|
package/dist/esm/sdk.d.ts
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Client, Metadata } from '@grpc/grpc-js';
|
|
2
|
+
import type { CallOptions, ChannelCredentials, ClientOptions, Interceptor } from '@grpc/grpc-js';
|
|
2
3
|
import { GetProfileRequest, type GetProfileResponse } from './api/nebius/iam/v1/index.js';
|
|
4
|
+
import { type KeepaliveOptions } from './runtime/keepalive.js';
|
|
5
|
+
import { type AuthMetricsLike, type MetricsLike } from './runtime/metrics.js';
|
|
6
|
+
import { type Resolver } from './runtime/resolver.js';
|
|
7
|
+
import { ServiceAccount as SA, type Reader as SAReader } from './runtime/service_account/service_account.js';
|
|
8
|
+
import { Handler as SDKHandler, Logger as SDKLogger } from './runtime/util/logging.js';
|
|
3
9
|
import type { Provider as AuthorizationProvider } from './runtime/authorization/provider.js';
|
|
4
10
|
import type { ConfigReaderLike } from './runtime/cli_config_interfaces.js';
|
|
5
11
|
import type { Request, RetryOptions } from './runtime/request.js';
|
|
6
|
-
import { type Resolver } from './runtime/resolver.js';
|
|
7
|
-
import { ServiceAccount as SA, type Reader as SAReader } from './runtime/service_account/service_account.js';
|
|
8
12
|
import type { Token as AccessToken, Bearer as TokenBearer } from './runtime/token.js';
|
|
9
|
-
import { Handler as SDKHandler, Logger as SDKLogger } from './runtime/util/logging.js';
|
|
10
13
|
export interface SDKInterface {
|
|
11
14
|
getClientByAddress(address: string): Client;
|
|
12
15
|
getAddressFromServiceName(serviceName: string, apiServiceName?: string): string;
|
|
@@ -48,6 +51,9 @@ export interface SDKOptions {
|
|
|
48
51
|
federationInvitationNoBrowserOpen?: boolean;
|
|
49
52
|
federationInvitationTimeoutMs?: number;
|
|
50
53
|
userAgentPrefix?: string;
|
|
54
|
+
keepalive?: KeepaliveOptions | false;
|
|
55
|
+
metrics?: MetricsLike;
|
|
56
|
+
authMetrics?: AuthMetricsLike;
|
|
51
57
|
logger?: SDKLogger | SDKHandler | string | number;
|
|
52
58
|
perAddress?: Record<string, {
|
|
53
59
|
credentials?: ChannelCredentials;
|
|
@@ -68,9 +74,14 @@ export declare class SDK implements SDKInterface {
|
|
|
68
74
|
private _perAddress;
|
|
69
75
|
private _tlsRootCAs?;
|
|
70
76
|
private _userAgent;
|
|
77
|
+
private _keepaliveConfig;
|
|
78
|
+
private _metrics;
|
|
79
|
+
private _authMetrics;
|
|
71
80
|
constructor(options?: SDKOptions);
|
|
72
81
|
get logger(): SDKLogger;
|
|
73
82
|
private _initAuthorization;
|
|
83
|
+
private _configureMetricsOnReader;
|
|
84
|
+
private _isConfigMetricsAwareConfigReader;
|
|
74
85
|
private _normalizeCredentials;
|
|
75
86
|
private _mkSABearer;
|
|
76
87
|
private _isAuthProvider;
|
package/dist/esm/sdk.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/sdk.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/sdk.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { Client,
|
|
1
|
+
import { Client, connectivityState, credentials, Metadata, } from '@grpc/grpc-js';
|
|
2
2
|
import { GetProfileRequest, ProfileService as ProfileServiceClient, } from './api/nebius/iam/v1/index.js';
|
|
3
3
|
import { TokenProvider as TokenAuthProvider } from './runtime/authorization/token.js';
|
|
4
4
|
import { domain as DEFAULT_DOMAIN } from './runtime/constants.js';
|
|
5
|
+
import { keepaliveClientOptions, keepaliveConfigFromOptions, } from './runtime/keepalive.js';
|
|
6
|
+
import { instrumentBearer, METRIC_RESULT_ERROR, METRIC_RESULT_SUCCESS, metricDurationMs, metricStart, recordConfigMetric, } from './runtime/metrics.js';
|
|
5
7
|
import { Chain, Conventional, TemplateExpander } from './runtime/resolver.js';
|
|
6
8
|
import { ServiceAccount as SA, } from './runtime/service_account/service_account.js';
|
|
7
9
|
import { getSystemRootCAs, normalizeRootCAs } from './runtime/tls/system_certs.js';
|
|
@@ -9,9 +11,12 @@ import { FederationAccountBearer } from './runtime/token/federation_account.js';
|
|
|
9
11
|
import { FileBearer } from './runtime/token/file.js';
|
|
10
12
|
import { ServiceAccountBearer } from './runtime/token/service_account.js';
|
|
11
13
|
import { StaticBearer } from './runtime/token/static.js';
|
|
12
|
-
import { resolveLogger } from './runtime/util/logging.js';
|
|
14
|
+
import { resolveLogger, } from './runtime/util/logging.js';
|
|
13
15
|
import { VERSION } from './version.js';
|
|
14
16
|
const DEFAULT_CLOSE_TIMEOUT = 20000;
|
|
17
|
+
function isObject(value) {
|
|
18
|
+
return typeof value === 'object' && value !== null;
|
|
19
|
+
}
|
|
15
20
|
export class SDK {
|
|
16
21
|
_resolver;
|
|
17
22
|
_parentId;
|
|
@@ -24,9 +29,22 @@ export class SDK {
|
|
|
24
29
|
_perAddress = new Map();
|
|
25
30
|
_tlsRootCAs;
|
|
26
31
|
_userAgent;
|
|
32
|
+
_keepaliveConfig;
|
|
33
|
+
_metrics;
|
|
34
|
+
_authMetrics;
|
|
27
35
|
constructor(options) {
|
|
28
36
|
this._logger = resolveLogger(options?.logger, 'nebius.sdk');
|
|
29
37
|
this._logger.debug('Initializing Nebius SDK');
|
|
38
|
+
this._metrics = options?.metrics;
|
|
39
|
+
this._authMetrics = options?.metrics ?? options?.authMetrics;
|
|
40
|
+
if (options?.metrics && options?.authMetrics) {
|
|
41
|
+
this._logger.warn('Both metrics and authMetrics provided; using metrics for auth callbacks.');
|
|
42
|
+
}
|
|
43
|
+
this._keepaliveConfig = keepaliveConfigFromOptions(options?.keepalive);
|
|
44
|
+
this._logger.debug('Using gRPC keepalive config', { keepalive: this._keepaliveConfig });
|
|
45
|
+
if (options?.configReader) {
|
|
46
|
+
this._configureMetricsOnReader(options.configReader);
|
|
47
|
+
}
|
|
30
48
|
// Resolve domain
|
|
31
49
|
let domain = options?.domain;
|
|
32
50
|
if (domain && domain.trim() !== '') {
|
|
@@ -176,6 +194,8 @@ export class SDK {
|
|
|
176
194
|
// Finally: pull from configReader if available
|
|
177
195
|
const cr = options.configReader;
|
|
178
196
|
if (cr) {
|
|
197
|
+
const configMetricsAware = this._isConfigMetricsAwareConfigReader(cr);
|
|
198
|
+
const start = metricStart();
|
|
179
199
|
try {
|
|
180
200
|
this._logger.debug('Using config reader for authorization.');
|
|
181
201
|
const cred = cr.getCredentials({
|
|
@@ -185,15 +205,34 @@ export class SDK {
|
|
|
185
205
|
sdk: this,
|
|
186
206
|
logger: this._logger.child('config_reader'),
|
|
187
207
|
});
|
|
208
|
+
if (!configMetricsAware) {
|
|
209
|
+
recordConfigMetric(this._metrics, 'credentialsResolve', 'config-reader', METRIC_RESULT_SUCCESS, metricDurationMs(start));
|
|
210
|
+
}
|
|
188
211
|
const prov2 = this._normalizeCredentials(cred);
|
|
189
212
|
if (prov2)
|
|
190
213
|
this._authorizationProvider = prov2;
|
|
191
214
|
}
|
|
192
215
|
catch (err) {
|
|
216
|
+
if (!configMetricsAware) {
|
|
217
|
+
recordConfigMetric(this._metrics, 'credentialsResolve', 'config-reader', METRIC_RESULT_ERROR, metricDurationMs(start));
|
|
218
|
+
}
|
|
193
219
|
this._logger.warn('Error using config reader for authorization.', { err });
|
|
194
220
|
}
|
|
195
221
|
}
|
|
196
222
|
}
|
|
223
|
+
_configureMetricsOnReader(configReader) {
|
|
224
|
+
const reader = configReader;
|
|
225
|
+
if (this._metrics && typeof reader.setMetrics === 'function') {
|
|
226
|
+
reader.setMetrics(this._metrics);
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
if (this._authMetrics && typeof reader.setAuthMetrics === 'function') {
|
|
230
|
+
reader.setAuthMetrics(this._authMetrics);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
_isConfigMetricsAwareConfigReader(configReader) {
|
|
234
|
+
return Boolean(this._metrics) && configReader.emitsCredentialsResolveMetrics === true;
|
|
235
|
+
}
|
|
197
236
|
_normalizeCredentials(init) {
|
|
198
237
|
if (!init) {
|
|
199
238
|
this._logger.trace('No credentials provided; authorization disabled.');
|
|
@@ -207,49 +246,52 @@ export class SDK {
|
|
|
207
246
|
// Bearer
|
|
208
247
|
if (this._isBearer(init)) {
|
|
209
248
|
this._logger.trace('Using token bearer provider for authorization.');
|
|
210
|
-
return new TokenAuthProvider(init);
|
|
249
|
+
return new TokenAuthProvider(instrumentBearer(init, this._authMetrics));
|
|
211
250
|
}
|
|
212
251
|
// Token
|
|
213
252
|
if (this._isAccessToken(init)) {
|
|
214
253
|
this._logger.trace('Using static token for authorization.', {
|
|
215
254
|
token: init,
|
|
216
255
|
});
|
|
217
|
-
return new TokenAuthProvider(new StaticBearer(init));
|
|
256
|
+
return new TokenAuthProvider(instrumentBearer(new StaticBearer(init), this._authMetrics));
|
|
218
257
|
}
|
|
219
258
|
// token string
|
|
220
259
|
if (typeof init === 'string') {
|
|
221
260
|
this._logger.trace('Using token string for authorization.');
|
|
222
|
-
return new TokenAuthProvider(new StaticBearer(init));
|
|
261
|
+
return new TokenAuthProvider(instrumentBearer(new StaticBearer(init), this._authMetrics));
|
|
223
262
|
}
|
|
224
263
|
// token file
|
|
225
264
|
if (this._isTokenFile(init)) {
|
|
226
265
|
this._logger.trace('Using token file for authorization.', {
|
|
227
266
|
tokenFile: init.tokenFile,
|
|
228
267
|
});
|
|
229
|
-
return new TokenAuthProvider(new FileBearer(init.tokenFile));
|
|
268
|
+
return new TokenAuthProvider(instrumentBearer(new FileBearer(init.tokenFile), this._authMetrics));
|
|
230
269
|
}
|
|
231
270
|
// Federation direct config
|
|
232
271
|
if (this._isFederationInit(init)) {
|
|
233
|
-
const f = init;
|
|
234
272
|
this._logger.trace('Using federation credentials for authorization.', {
|
|
235
|
-
profile:
|
|
236
|
-
clientId:
|
|
237
|
-
federationEndpoint:
|
|
238
|
-
federationId:
|
|
273
|
+
profile: init.profileName,
|
|
274
|
+
clientId: init.clientId,
|
|
275
|
+
federationEndpoint: init.federationEndpoint,
|
|
276
|
+
federationId: init.federationId,
|
|
239
277
|
});
|
|
240
|
-
|
|
241
|
-
writer:
|
|
242
|
-
noBrowserOpen: !!
|
|
243
|
-
timeoutMs:
|
|
278
|
+
const bearer = new FederationAccountBearer(init.profileName, init.clientId, init.federationEndpoint, init.federationId, {
|
|
279
|
+
writer: init.writer,
|
|
280
|
+
noBrowserOpen: !!init.noBrowserOpen,
|
|
281
|
+
timeoutMs: init.timeoutMs,
|
|
244
282
|
ca: this._tlsRootCAs,
|
|
283
|
+
metrics: this._authMetrics,
|
|
245
284
|
logger: this._logger.child('federation_account'),
|
|
246
|
-
})
|
|
285
|
+
});
|
|
286
|
+
return new TokenAuthProvider(instrumentBearer(bearer, this._authMetrics));
|
|
247
287
|
}
|
|
248
288
|
// Service account (reader or concrete or raw params)
|
|
249
289
|
if (this._isSAReader(init) || this._isSA(init) || this._isSAParams(init)) {
|
|
250
290
|
this._logger.trace('Using service account for authorization.');
|
|
251
291
|
const bearer = this._mkSABearer(init);
|
|
252
|
-
return bearer
|
|
292
|
+
return bearer
|
|
293
|
+
? new TokenAuthProvider(instrumentBearer(bearer, this._authMetrics))
|
|
294
|
+
: undefined;
|
|
253
295
|
}
|
|
254
296
|
this._logger.warn('Unrecognized credentials format; authorization disabled.', { init });
|
|
255
297
|
return undefined;
|
|
@@ -262,6 +304,7 @@ export class SDK {
|
|
|
262
304
|
});
|
|
263
305
|
return new ServiceAccountBearer(sa, {
|
|
264
306
|
sdk: this,
|
|
307
|
+
metrics: this._authMetrics,
|
|
265
308
|
logger: this._logger.child('service_account'),
|
|
266
309
|
});
|
|
267
310
|
}
|
|
@@ -269,6 +312,7 @@ export class SDK {
|
|
|
269
312
|
this._logger.trace('Using service account for authorization.', { sa });
|
|
270
313
|
return new ServiceAccountBearer(sa, {
|
|
271
314
|
sdk: this,
|
|
315
|
+
metrics: this._authMetrics,
|
|
272
316
|
logger: this._logger.child('service_account'),
|
|
273
317
|
});
|
|
274
318
|
}
|
|
@@ -277,11 +321,11 @@ export class SDK {
|
|
|
277
321
|
serviceAccountId: sa.serviceAccountId,
|
|
278
322
|
publicKeyId: sa.publicKeyId,
|
|
279
323
|
});
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
privateKeyPem: p.privateKeyPem,
|
|
324
|
+
return new ServiceAccountBearer(sa.serviceAccountId, {
|
|
325
|
+
publicKeyId: sa.publicKeyId,
|
|
326
|
+
privateKeyPem: sa.privateKeyPem,
|
|
284
327
|
sdk: this,
|
|
328
|
+
metrics: this._authMetrics,
|
|
285
329
|
logger: this._logger.child('service_account'),
|
|
286
330
|
});
|
|
287
331
|
}
|
|
@@ -295,50 +339,37 @@ export class SDK {
|
|
|
295
339
|
return undefined;
|
|
296
340
|
}
|
|
297
341
|
}
|
|
298
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
299
342
|
_isAuthProvider(x) {
|
|
300
|
-
return x && typeof x
|
|
343
|
+
return isObject(x) && typeof x.authenticator === 'function';
|
|
301
344
|
}
|
|
302
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
303
345
|
_isBearer(x) {
|
|
304
|
-
return x && typeof x
|
|
346
|
+
return isObject(x) && typeof x.receiver === 'function';
|
|
305
347
|
}
|
|
306
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
307
348
|
_isAccessToken(x) {
|
|
308
|
-
return (x &&
|
|
309
|
-
typeof x === 'object' &&
|
|
349
|
+
return (isObject(x) &&
|
|
310
350
|
typeof x.token === 'string' &&
|
|
311
351
|
x.$type === 'nebius.iam.AccessToken');
|
|
312
352
|
}
|
|
313
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
314
353
|
_isTokenFile(x) {
|
|
315
|
-
return x && typeof x
|
|
354
|
+
return isObject(x) && typeof x.tokenFile === 'string';
|
|
316
355
|
}
|
|
317
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
318
356
|
_isFederationInit(x) {
|
|
319
|
-
return (x &&
|
|
320
|
-
typeof x === 'object' &&
|
|
357
|
+
return (isObject(x) &&
|
|
321
358
|
x.type === 'federation' &&
|
|
322
359
|
typeof x.clientId === 'string' &&
|
|
323
360
|
typeof x.federationEndpoint === 'string' &&
|
|
324
361
|
typeof x.federationId === 'string');
|
|
325
362
|
}
|
|
326
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
327
363
|
_isSAReader(x) {
|
|
328
|
-
return (x &&
|
|
329
|
-
typeof x === 'object' &&
|
|
364
|
+
return (isObject(x) &&
|
|
330
365
|
typeof x.read === 'function' &&
|
|
331
366
|
typeof x.getExchangeTokenRequest === 'function');
|
|
332
367
|
}
|
|
333
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
334
368
|
_isSA(x) {
|
|
335
369
|
return x instanceof SA;
|
|
336
370
|
}
|
|
337
|
-
_isSAParams(
|
|
338
|
-
|
|
339
|
-
x) {
|
|
340
|
-
return (x &&
|
|
341
|
-
typeof x === 'object' &&
|
|
371
|
+
_isSAParams(x) {
|
|
372
|
+
return (isObject(x) &&
|
|
342
373
|
typeof x.serviceAccountId === 'string' &&
|
|
343
374
|
typeof x.publicKeyId === 'string' &&
|
|
344
375
|
typeof x.privateKeyPem === 'string');
|
|
@@ -395,15 +426,12 @@ export class SDK {
|
|
|
395
426
|
const logger = this._logger.withFields({ address });
|
|
396
427
|
logger.trace('Getting gRPC client options by address.');
|
|
397
428
|
const addrCfg = this._perAddress.get(address);
|
|
398
|
-
const combinedInterceptors = [
|
|
399
|
-
...(this._extraInterceptors || []),
|
|
400
|
-
...(addrCfg?.interceptors ?? []),
|
|
401
|
-
];
|
|
429
|
+
const combinedInterceptors = [...this._extraInterceptors, ...(addrCfg?.interceptors ?? [])];
|
|
402
430
|
const hasInts = combinedInterceptors.length > 0;
|
|
403
431
|
if (hasInts) {
|
|
404
432
|
logger.trace('Using combined interceptors.', {
|
|
405
433
|
count: combinedInterceptors.length,
|
|
406
|
-
hasExtraInterceptors:
|
|
434
|
+
hasExtraInterceptors: this._extraInterceptors.length > 0,
|
|
407
435
|
hasPerAddressInterceptors: (addrCfg?.interceptors ?? []).length > 0,
|
|
408
436
|
});
|
|
409
437
|
}
|
|
@@ -420,10 +448,11 @@ export class SDK {
|
|
|
420
448
|
};
|
|
421
449
|
collect(this._clientOptions);
|
|
422
450
|
collect(addrCfg?.clientOptions);
|
|
423
|
-
const primaryUA =
|
|
451
|
+
const primaryUA = [...primaryParts, this._userAgent].join(' ');
|
|
424
452
|
const ret = {
|
|
425
|
-
...(this.
|
|
426
|
-
...(
|
|
453
|
+
...keepaliveClientOptions(this._keepaliveConfig),
|
|
454
|
+
...(this._clientOptions ?? {}),
|
|
455
|
+
...(addrCfg?.clientOptions ?? {}),
|
|
427
456
|
...(hasInts ? { interceptors: combinedInterceptors } : {}),
|
|
428
457
|
'grpc.primary_user_agent': primaryUA,
|
|
429
458
|
};
|
|
@@ -443,7 +472,7 @@ export class SDK {
|
|
|
443
472
|
}
|
|
444
473
|
setTokenBearerAsAuthorization(bearer) {
|
|
445
474
|
this._logger.trace('Setting token bearer as authorization.', { bearer });
|
|
446
|
-
this._authorizationProvider = new TokenAuthProvider(bearer);
|
|
475
|
+
this._authorizationProvider = new TokenAuthProvider(instrumentBearer(bearer, this._authMetrics));
|
|
447
476
|
}
|
|
448
477
|
// Allow adding extra interceptors (idempotency/cleaner analogs)
|
|
449
478
|
addInterceptors(...ints) {
|