@opentdf/sdk 0.4.0-beta.39 → 0.4.0-beta.40
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/src/platform.js +3 -1
- package/dist/cjs/src/policy/api.js +27 -1
- package/dist/types/src/policy/api.d.ts +2 -0
- package/dist/types/src/policy/api.d.ts.map +1 -1
- package/dist/web/src/platform.js +3 -1
- package/dist/web/src/policy/api.js +26 -1
- package/package.json +1 -1
- package/src/platform.ts +2 -0
- package/src/policy/api.ts +37 -0
package/dist/cjs/src/platform.js
CHANGED
|
@@ -121,7 +121,9 @@ function createAuthInterceptor(authProvider) {
|
|
|
121
121
|
const token = await authProvider.withCreds({
|
|
122
122
|
url: pathOnly,
|
|
123
123
|
method: 'POST',
|
|
124
|
+
// Start with any headers Connect already has
|
|
124
125
|
headers: {
|
|
126
|
+
...Object.fromEntries(req.header.entries()),
|
|
125
127
|
'Content-Type': 'application/json',
|
|
126
128
|
},
|
|
127
129
|
});
|
|
@@ -132,4 +134,4 @@ function createAuthInterceptor(authProvider) {
|
|
|
132
134
|
};
|
|
133
135
|
return authInterceptor;
|
|
134
136
|
}
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGxhdGZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLDhFQUE4RDtBQUM5RCx1RUFBdUQ7QUFFdkQseURBQWlFO0FBR2pFLGlEQUF3RTtBQUN4RSxtSEFBbUc7QUFDbkcsc0ZBQW9GO0FBQ3BGLGlHQUE4RjtBQUM5Rix3REFBeUQ7QUFDekQsMkVBQXdFO0FBQ3hFLG9GQUFrRjtBQUNsRixxSEFBZ0g7QUFDaEgsb0ZBQWlGO0FBQ2pGLHFHQUFrRztBQUNsRyxrR0FBK0Y7QUFDL0Ysd0VBQXNFO0FBeUJ0RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFFSCxNQUFhLGNBQWM7SUFHekIsWUFBWSxPQUE4QjtRQUN4QyxNQUFNLFlBQVksR0FBa0IsRUFBRSxDQUFDO1FBRXZDLElBQUksT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3pCLE1BQU0sZUFBZSxHQUFHLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNwRSxZQUFZLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDakMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBQSxvQ0FBc0IsRUFBQztZQUN2QyxPQUFPLEVBQUUsT0FBTyxDQUFDLFdBQVc7WUFDNUIsWUFBWTtTQUNiLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxFQUFFLEdBQUc7WUFDUixhQUFhLEVBQUUsSUFBQSxzQkFBWSxFQUFDLDBDQUFvQixFQUFFLFNBQVMsQ0FBQztZQUM1RCxnQkFBZ0IsRUFBRSxJQUFBLHNCQUFZLEVBQUMsaURBQXVCLEVBQUUsU0FBUyxDQUFDO1lBQ2xFLE1BQU0sRUFBRSxJQUFBLHNCQUFZLEVBQUMseUJBQWEsRUFBRSxTQUFTLENBQUM7WUFDOUMsTUFBTSxFQUFFLElBQUEsc0JBQVksRUFBQyw2QkFBYSxFQUFFLFNBQVMsQ0FBQztZQUM5QyxVQUFVLEVBQUUsSUFBQSxzQkFBWSxFQUFDLG9DQUFpQixFQUFFLFNBQVMsQ0FBQztZQUN0RCx1QkFBdUIsRUFBRSxJQUFBLHNCQUFZLEVBQUMsaUVBQThCLEVBQUUsU0FBUyxDQUFDO1lBQ2hGLFNBQVMsRUFBRSxJQUFBLHNCQUFZLEVBQUMsbUNBQWdCLEVBQUUsU0FBUyxDQUFDO1lBQ3BELGVBQWUsRUFBRSxJQUFBLHNCQUFZLEVBQUMsK0NBQXNCLEVBQUUsU0FBUyxDQUFDO1lBQ2hFLGNBQWMsRUFBRSxJQUFBLHNCQUFZLEVBQUMsNkNBQXFCLEVBQUUsU0FBUyxDQUFDO1lBQzlELE1BQU0sRUFBRSxJQUFBLHNCQUFZLEVBQUMsNEJBQWEsRUFBRSxTQUFTLENBQUM7WUFDOUMsU0FBUyxFQUFFLElBQUEsc0JBQVksRUFBQyxnREFBZ0IsRUFBRSxTQUFTLENBQUM7U0FDckQsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWxDRCx3Q0FrQ0M7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMscUJBQXFCLENBQUMsWUFBMEI7SUFDdkQsTUFBTSxlQUFlLEdBQWdCLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDM0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDOUIsZ0RBQWdEO1FBQ2hELE1BQU0sS0FBSyxHQUFHLE1BQU0sWUFBWSxDQUFDLFNBQVMsQ0FBQztZQUN6QyxHQUFHLEVBQUUsUUFBUTtZQUNiLE1BQU0sRUFBRSxNQUFNO1lBQ2QsNkNBQTZDO1lBQzdDLE9BQU8sRUFBRTtnQkFDUCxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDM0MsY0FBYyxFQUFFLGtCQUFrQjthQUNuQztTQUNGLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDckQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDLENBQUM7SUFDRixPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDIn0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.attributeFQNsAsValues = attributeFQNsAsValues;
|
|
4
|
+
exports.getRootCertsFromNamespace = getRootCertsFromNamespace;
|
|
4
5
|
const errors_js_1 = require("../errors.js");
|
|
5
6
|
const utils_js_1 = require("../utils.js");
|
|
6
7
|
const platform_js_1 = require("../platform.js");
|
|
@@ -31,4 +32,29 @@ async function attributeFQNsAsValues(platformUrl, authProvider, ...fqns) {
|
|
|
31
32
|
}
|
|
32
33
|
return values;
|
|
33
34
|
}
|
|
34
|
-
|
|
35
|
+
// Get root certificates from a namespace
|
|
36
|
+
async function getRootCertsFromNamespace(platformUrl, authProvider, namespaceId, fqn) {
|
|
37
|
+
platformUrl = (0, utils_js_1.getPlatformUrlFromKasEndpoint)(platformUrl);
|
|
38
|
+
// Ensure at least one identifier is provided to avoid guaranteed API failure
|
|
39
|
+
if (!namespaceId && !fqn) {
|
|
40
|
+
throw new Error('Either namespaceId or fqn must be provided');
|
|
41
|
+
}
|
|
42
|
+
const platform = new platform_js_1.PlatformClient({ authProvider, platformUrl });
|
|
43
|
+
let response;
|
|
44
|
+
try {
|
|
45
|
+
response = await platform.v1.namespace.getNamespace({
|
|
46
|
+
id: '', // deprecated field, but required
|
|
47
|
+
identifier: namespaceId
|
|
48
|
+
? { case: 'namespaceId', value: namespaceId }
|
|
49
|
+
: { case: 'fqn', value: fqn },
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
throw new errors_js_1.NetworkError(`[${platformUrl}] [GetNamespace] ${(0, utils_js_1.extractRpcErrorMessage)(e)}`);
|
|
54
|
+
}
|
|
55
|
+
if (!response.namespace) {
|
|
56
|
+
throw new errors_js_1.NetworkError(`[${platformUrl}] [GetNamespace] Namespace not found`);
|
|
57
|
+
}
|
|
58
|
+
return response.namespace.rootCerts || [];
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BvbGljeS9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFVQSxzREFpQ0M7QUFHRCw4REFnQ0M7QUE5RUQsNENBQTRDO0FBRTVDLDBDQUFvRjtBQUNwRixnREFBZ0Q7QUFNaEQsMkZBQTJGO0FBQ3BGLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsV0FBbUIsRUFDbkIsWUFBMEIsRUFDMUIsR0FBRyxJQUFjO0lBRWpCLFdBQVcsR0FBRyxJQUFBLHdDQUE2QixFQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pELE1BQU0sUUFBUSxHQUFHLElBQUksNEJBQWMsQ0FBQyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBRW5FLElBQUksUUFBMEMsQ0FBQztJQUMvQyxJQUFJLENBQUM7UUFDSCxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQztZQUMvRCxJQUFJO1NBQ0wsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksd0JBQVksQ0FDcEIsSUFBSSxXQUFXLGdDQUFnQyxJQUFBLGlDQUFzQixFQUFDLENBQUMsQ0FBQyxFQUFFLENBQzNFLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQVksRUFBRSxDQUFDO0lBQzNCLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7UUFDcEUsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLGlDQUFpQyxHQUFHLCtCQUErQixDQUFDLENBQUM7WUFDakYsU0FBUztRQUNYLENBQUM7UUFDRCxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUMsU0FBUyxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDO1lBQy9DLEtBQUssQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQztRQUNqQyxDQUFDO1FBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELHlDQUF5QztBQUNsQyxLQUFLLFVBQVUseUJBQXlCLENBQzdDLFdBQW1CLEVBQ25CLFlBQTJCLEVBQzNCLFdBQW9CLEVBQ3BCLEdBQVk7SUFFWixXQUFXLEdBQUcsSUFBQSx3Q0FBNkIsRUFBQyxXQUFXLENBQUMsQ0FBQztJQUV6RCw2RUFBNkU7SUFDN0UsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSw0QkFBYyxDQUFDLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFFbkUsSUFBSSxRQUE4QixDQUFDO0lBQ25DLElBQUksQ0FBQztRQUNILFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQztZQUNsRCxFQUFFLEVBQUUsRUFBRSxFQUFFLGlDQUFpQztZQUN6QyxVQUFVLEVBQUUsV0FBVztnQkFDckIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO2dCQUM3QyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFJLEVBQUU7U0FDakMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksd0JBQVksQ0FBQyxJQUFJLFdBQVcsb0JBQW9CLElBQUEsaUNBQXNCLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sSUFBSSx3QkFBWSxDQUFDLElBQUksV0FBVyxzQ0FBc0MsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxPQUFPLFFBQVEsQ0FBQyxTQUFTLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztBQUM1QyxDQUFDIn0=
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { AuthProvider } from '../auth/auth.js';
|
|
2
2
|
import { Value } from './attributes.js';
|
|
3
|
+
import { Certificate } from '../platform/policy/objects_pb.js';
|
|
3
4
|
export declare function attributeFQNsAsValues(platformUrl: string, authProvider: AuthProvider, ...fqns: string[]): Promise<Value[]>;
|
|
5
|
+
export declare function getRootCertsFromNamespace(platformUrl: string, authProvider?: AuthProvider, namespaceId?: string, fqn?: string): Promise<Certificate[]>;
|
|
4
6
|
//# sourceMappingURL=api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/policy/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/policy/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGxC,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAG/D,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,YAAY,EAC1B,GAAG,IAAI,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,KAAK,EAAE,CAAC,CA6BlB;AAGD,wBAAsB,yBAAyB,CAC7C,WAAW,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,YAAY,EAC3B,WAAW,CAAC,EAAE,MAAM,EACpB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,WAAW,EAAE,CAAC,CA2BxB"}
|
package/dist/web/src/platform.js
CHANGED
|
@@ -84,7 +84,9 @@ function createAuthInterceptor(authProvider) {
|
|
|
84
84
|
const token = await authProvider.withCreds({
|
|
85
85
|
url: pathOnly,
|
|
86
86
|
method: 'POST',
|
|
87
|
+
// Start with any headers Connect already has
|
|
87
88
|
headers: {
|
|
89
|
+
...Object.fromEntries(req.header.entries()),
|
|
88
90
|
'Content-Type': 'application/json',
|
|
89
91
|
},
|
|
90
92
|
});
|
|
@@ -95,4 +97,4 @@ function createAuthInterceptor(authProvider) {
|
|
|
95
97
|
};
|
|
96
98
|
return authInterceptor;
|
|
97
99
|
}
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGxhdGZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sS0FBSyxrQkFBa0IsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEtBQUssZUFBZSxNQUFNLHFCQUFxQixDQUFDO0FBRXZELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR2pFLE9BQU8sRUFBVSxZQUFZLEVBQWUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQXlCdEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBRUgsTUFBTSxPQUFPLGNBQWM7SUFHekIsWUFBWSxPQUE4QjtRQUN4QyxNQUFNLFlBQVksR0FBa0IsRUFBRSxDQUFDO1FBRXZDLElBQUksT0FBTyxD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
|
|
@@ -28,4 +28,29 @@ export async function attributeFQNsAsValues(platformUrl, authProvider, ...fqns)
|
|
|
28
28
|
}
|
|
29
29
|
return values;
|
|
30
30
|
}
|
|
31
|
-
|
|
31
|
+
// Get root certificates from a namespace
|
|
32
|
+
export async function getRootCertsFromNamespace(platformUrl, authProvider, namespaceId, fqn) {
|
|
33
|
+
platformUrl = getPlatformUrlFromKasEndpoint(platformUrl);
|
|
34
|
+
// Ensure at least one identifier is provided to avoid guaranteed API failure
|
|
35
|
+
if (!namespaceId && !fqn) {
|
|
36
|
+
throw new Error('Either namespaceId or fqn must be provided');
|
|
37
|
+
}
|
|
38
|
+
const platform = new PlatformClient({ authProvider, platformUrl });
|
|
39
|
+
let response;
|
|
40
|
+
try {
|
|
41
|
+
response = await platform.v1.namespace.getNamespace({
|
|
42
|
+
id: '', // deprecated field, but required
|
|
43
|
+
identifier: namespaceId
|
|
44
|
+
? { case: 'namespaceId', value: namespaceId }
|
|
45
|
+
: { case: 'fqn', value: fqn },
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
catch (e) {
|
|
49
|
+
throw new NetworkError(`[${platformUrl}] [GetNamespace] ${extractRpcErrorMessage(e)}`);
|
|
50
|
+
}
|
|
51
|
+
if (!response.namespace) {
|
|
52
|
+
throw new NetworkError(`[${platformUrl}] [GetNamespace] Namespace not found`);
|
|
53
|
+
}
|
|
54
|
+
return response.namespace.rootCerts || [];
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BvbGljeS9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU1QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTWhELDJGQUEyRjtBQUMzRixNQUFNLENBQUMsS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxXQUFtQixFQUNuQixZQUEwQixFQUMxQixHQUFHLElBQWM7SUFFakIsV0FBVyxHQUFHLDZCQUE2QixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pELE1BQU0sUUFBUSxHQUFHLElBQUksY0FBYyxDQUFDLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFFbkUsSUFBSSxRQUEwQyxDQUFDO0lBQy9DLElBQUksQ0FBQztRQUNILFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDO1lBQy9ELElBQUk7U0FDTCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE1BQU0sSUFBSSxZQUFZLENBQ3BCLElBQUksV0FBVyxnQ0FBZ0Msc0JBQXNCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDM0UsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBWSxFQUFFLENBQUM7SUFDM0IsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztRQUNwRSxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUNBQWlDLEdBQUcsK0JBQStCLENBQUMsQ0FBQztZQUNqRixTQUFTO1FBQ1gsQ0FBQztRQUNELElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQyxTQUFTLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUM7WUFDL0MsS0FBSyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQseUNBQXlDO0FBQ3pDLE1BQU0sQ0FBQyxLQUFLLFVBQVUseUJBQXlCLENBQzdDLFdBQW1CLEVBQ25CLFlBQTJCLEVBQzNCLFdBQW9CLEVBQ3BCLEdBQVk7SUFFWixXQUFXLEdBQUcsNkJBQTZCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFekQsNkVBQTZFO0lBQzdFLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLElBQUksY0FBYyxDQUFDLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFFbkUsSUFBSSxRQUE4QixDQUFDO0lBQ25DLElBQUksQ0FBQztRQUNILFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQztZQUNsRCxFQUFFLEVBQUUsRUFBRSxFQUFFLGlDQUFpQztZQUN6QyxVQUFVLEVBQUUsV0FBVztnQkFDckIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO2dCQUM3QyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFJLEVBQUU7U0FDakMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksWUFBWSxDQUFDLElBQUksV0FBVyxvQkFBb0Isc0JBQXNCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sSUFBSSxZQUFZLENBQUMsSUFBSSxXQUFXLHNDQUFzQyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFDLFNBQVMsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO0FBQzVDLENBQUMifQ==
|
package/package.json
CHANGED
package/src/platform.ts
CHANGED
|
@@ -119,7 +119,9 @@ function createAuthInterceptor(authProvider: AuthProvider): Interceptor {
|
|
|
119
119
|
const token = await authProvider.withCreds({
|
|
120
120
|
url: pathOnly,
|
|
121
121
|
method: 'POST',
|
|
122
|
+
// Start with any headers Connect already has
|
|
122
123
|
headers: {
|
|
124
|
+
...Object.fromEntries(req.header.entries()),
|
|
123
125
|
'Content-Type': 'application/json',
|
|
124
126
|
},
|
|
125
127
|
});
|
package/src/policy/api.ts
CHANGED
|
@@ -4,6 +4,8 @@ import { extractRpcErrorMessage, getPlatformUrlFromKasEndpoint } from '../utils.
|
|
|
4
4
|
import { PlatformClient } from '../platform.js';
|
|
5
5
|
import { Value } from './attributes.js';
|
|
6
6
|
import { GetAttributeValuesByFqnsResponse } from '../platform/policy/attributes/attributes_pb.js';
|
|
7
|
+
import { GetNamespaceResponse } from '../platform/policy/namespaces/namespaces_pb.js';
|
|
8
|
+
import { Certificate } from '../platform/policy/objects_pb.js';
|
|
7
9
|
|
|
8
10
|
// TODO KAS: go over web-sdk and remove policyEndpoint that is only defined to be used here
|
|
9
11
|
export async function attributeFQNsAsValues(
|
|
@@ -40,3 +42,38 @@ export async function attributeFQNsAsValues(
|
|
|
40
42
|
}
|
|
41
43
|
return values;
|
|
42
44
|
}
|
|
45
|
+
|
|
46
|
+
// Get root certificates from a namespace
|
|
47
|
+
export async function getRootCertsFromNamespace(
|
|
48
|
+
platformUrl: string,
|
|
49
|
+
authProvider?: AuthProvider,
|
|
50
|
+
namespaceId?: string,
|
|
51
|
+
fqn?: string
|
|
52
|
+
): Promise<Certificate[]> {
|
|
53
|
+
platformUrl = getPlatformUrlFromKasEndpoint(platformUrl);
|
|
54
|
+
|
|
55
|
+
// Ensure at least one identifier is provided to avoid guaranteed API failure
|
|
56
|
+
if (!namespaceId && !fqn) {
|
|
57
|
+
throw new Error('Either namespaceId or fqn must be provided');
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const platform = new PlatformClient({ authProvider, platformUrl });
|
|
61
|
+
|
|
62
|
+
let response: GetNamespaceResponse;
|
|
63
|
+
try {
|
|
64
|
+
response = await platform.v1.namespace.getNamespace({
|
|
65
|
+
id: '', // deprecated field, but required
|
|
66
|
+
identifier: namespaceId
|
|
67
|
+
? { case: 'namespaceId', value: namespaceId }
|
|
68
|
+
: { case: 'fqn', value: fqn! },
|
|
69
|
+
});
|
|
70
|
+
} catch (e) {
|
|
71
|
+
throw new NetworkError(`[${platformUrl}] [GetNamespace] ${extractRpcErrorMessage(e)}`);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (!response.namespace) {
|
|
75
|
+
throw new NetworkError(`[${platformUrl}] [GetNamespace] Namespace not found`);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return response.namespace.rootCerts || [];
|
|
79
|
+
}
|