@stack-spot/portal-network 0.209.0 → 0.210.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/dist/api-addresses.d.ts +13 -20
- package/dist/api-addresses.d.ts.map +1 -1
- package/dist/api-addresses.js +59 -17
- package/dist/api-addresses.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/network/NetworkClient.d.ts.map +1 -1
- package/dist/network/NetworkClient.js +11 -2
- package/dist/network/NetworkClient.js.map +1 -1
- package/dist/network/types.d.ts +1 -0
- package/dist/network/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/readme.md +42 -1
- package/src/api-addresses.ts +92 -37
- package/src/index.ts +1 -1
- package/src/network/NetworkClient.ts +12 -3
- package/src/network/types.ts +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.210.0](https://github.com/stack-spot/portal-commons/compare/portal-network@v0.209.0...portal-network@v0.210.0) (2025-12-19)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* change local running ([#1925](https://github.com/stack-spot/portal-commons/issues/1925)) ([5a9c201](https://github.com/stack-spot/portal-commons/commit/5a9c201868de8fdbb835cdb045da74ab222b01dd))
|
|
9
|
+
|
|
3
10
|
## [0.209.0](https://github.com/stack-spot/portal-commons/compare/portal-network@v0.208.3...portal-network@v0.209.0) (2025-12-18)
|
|
4
11
|
|
|
5
12
|
|
package/dist/api-addresses.d.ts
CHANGED
|
@@ -1,26 +1,22 @@
|
|
|
1
|
+
import { APIMap } from '@stack-spot/opa';
|
|
1
2
|
import apisJson from './apis.json';
|
|
2
3
|
import { Env, Tenant } from './network/types.js';
|
|
3
4
|
type ApisKeys = keyof typeof apisJson;
|
|
5
|
+
declare global {
|
|
6
|
+
interface ImportMeta {
|
|
7
|
+
readonly env: {
|
|
8
|
+
VITE_NETWORK_OVERRIDES: string;
|
|
9
|
+
DEV: boolean;
|
|
10
|
+
PROD: boolean;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
}
|
|
4
14
|
type ApiConfig = {
|
|
5
15
|
url: Record<Env, string>;
|
|
6
16
|
docs?: string;
|
|
7
17
|
};
|
|
8
|
-
type PartialApiConfig = {
|
|
9
|
-
url: Partial<Record<Env, string>>;
|
|
10
|
-
docs?: string;
|
|
11
|
-
};
|
|
12
18
|
type Apis = Record<ApisKeys, ApiConfig>;
|
|
13
|
-
type
|
|
14
|
-
type ApiAddress = {
|
|
15
|
-
[api: string]: string;
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* Returns the API catalog for the given tenant.
|
|
19
|
-
*
|
|
20
|
-
* @param tenant The current tenant (e.g., 'stackspot', 'itau').
|
|
21
|
-
* @returns API catalog containing the URLs per environment.
|
|
22
|
-
*/
|
|
23
|
-
export declare function getApisByTenant(tenant: Tenant): Apis;
|
|
19
|
+
type ApiAddress = Record<ApisKeys, string>;
|
|
24
20
|
/**
|
|
25
21
|
* Returns the base URL for the given environment and tenant, applying any overrides if available
|
|
26
22
|
*
|
|
@@ -30,16 +26,13 @@ export declare function getApisByTenant(tenant: Tenant): Apis;
|
|
|
30
26
|
* @returns {string} the base URL for the given environment and tenant, applying any overrides if available.
|
|
31
27
|
*/
|
|
32
28
|
export declare const getBaseUrlByTenantWithOverride: (baseUrl: Record<Env, string>, targetEnv?: Env, tenant?: Tenant) => string;
|
|
33
|
-
|
|
34
|
-
* Sets the APIs addresses for override.
|
|
35
|
-
* @param customApis a JSON object containing APIs address to override.
|
|
36
|
-
*/
|
|
37
|
-
export declare const setApisOverride: (customApis: PartialApis) => void;
|
|
29
|
+
export declare const getApisBaseUrlConfig: (env?: Env, tenant?: Tenant) => ApiAddress;
|
|
38
30
|
/**
|
|
39
31
|
* Sets the default APIs addresses for each environments.
|
|
40
32
|
* @returns {Apis} an object containing APIs URLs grouped by api name and enviroments.
|
|
41
33
|
*/
|
|
42
34
|
export declare const getApiAddresses: () => Apis;
|
|
43
35
|
export declare const apiAddresses: () => ApiAddress;
|
|
36
|
+
export declare function getPermissionsAPIMap(env: Env, tenant?: Tenant): APIMap;
|
|
44
37
|
export {};
|
|
45
38
|
//# sourceMappingURL=api-addresses.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-addresses.d.ts","sourceRoot":"","sources":["../src/api-addresses.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api-addresses.d.ts","sourceRoot":"","sources":["../src/api-addresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAExC,OAAO,QAAQ,MAAM,aAAa,CAAwB;AAE1D,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAE7C,KAAK,QAAQ,GAAG,MAAM,OAAO,QAAQ,CAAC;AAKtC,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,UAAU;QAClB,QAAQ,CAAC,GAAG,EAAE;YACZ,sBAAsB,EAAE,MAAM,CAAC;YAC/B,GAAG,EAAE,OAAO,CAAC;YACb,IAAI,EAAE,OAAO,CAAC;SACf,CAAC;KACH;CACF;AAED,KAAK,SAAS,GAAG;IACf,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAA;AAED,KAAK,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAExC,KAAK,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;AA6D1C;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B,GAAI,SAAS,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,YAAW,GAAW,EACjG,SAAQ,MAAoB,KAAG,MAgBhC,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,MAAK,GAAW,EAAE,SAAQ,MAAoB,KAAG,UAcrF,CAAA;AAGD;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAO,IAAmB,CAAA;AAEtD,eAAO,MAAM,YAAY,kBAGxB,CAAA;AA6BD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,GAAE,MAAoB,GAAG,MAAM,CAGnF"}
|
package/dist/api-addresses.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import apisItauJson from './apis-itau.json' assert { type: 'json' };
|
|
2
2
|
import apisJson from './apis.json' assert { type: 'json' };
|
|
3
3
|
import { NetworkClient } from './network/NetworkClient.js';
|
|
4
|
-
|
|
5
|
-
let overrideApis = {};
|
|
4
|
+
const defaultApis = apisJson;
|
|
6
5
|
const apis = {
|
|
7
6
|
'stackspot': apisJson,
|
|
8
7
|
'itau': apisItauJson,
|
|
@@ -13,7 +12,7 @@ const apis = {
|
|
|
13
12
|
* @param tenant The current tenant (e.g., 'stackspot', 'itau').
|
|
14
13
|
* @returns API catalog containing the URLs per environment.
|
|
15
14
|
*/
|
|
16
|
-
|
|
15
|
+
function getApisByTenant(tenant) {
|
|
17
16
|
return apis[tenant];
|
|
18
17
|
}
|
|
19
18
|
function transformApisToApiAddress(apis, env) {
|
|
@@ -39,6 +38,19 @@ function matchesBaseUrl(baseUrl, candidate) {
|
|
|
39
38
|
return true;
|
|
40
39
|
});
|
|
41
40
|
}
|
|
41
|
+
const getApiOverride = () => {
|
|
42
|
+
const envs = import.meta.env;
|
|
43
|
+
let overrideAPIsURL = {};
|
|
44
|
+
if (envs.PROD)
|
|
45
|
+
return overrideAPIsURL;
|
|
46
|
+
try {
|
|
47
|
+
overrideAPIsURL = JSON.parse(envs.VITE_NETWORK_OVERRIDES);
|
|
48
|
+
return overrideAPIsURL;
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
return overrideAPIsURL;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
42
54
|
/**
|
|
43
55
|
* Returns the base URL for the given environment and tenant, applying any overrides if available
|
|
44
56
|
*
|
|
@@ -57,29 +69,59 @@ export const getBaseUrlByTenantWithOverride = (baseUrl, targetEnv = 'prd', tenan
|
|
|
57
69
|
}
|
|
58
70
|
if (!matchesApiName)
|
|
59
71
|
return '';
|
|
60
|
-
const
|
|
61
|
-
if (overrideUrl) {
|
|
62
|
-
return overrideUrl;
|
|
63
|
-
}
|
|
72
|
+
const overrides = getApiOverride();
|
|
64
73
|
const apis = getApisByTenant(tenant);
|
|
65
|
-
|
|
74
|
+
const api = apis[matchesApiName];
|
|
75
|
+
return overrides?.[matchesApiName] ?? api?.url?.[targetEnv];
|
|
66
76
|
};
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
77
|
+
export const getApisBaseUrlConfig = (env = 'prd', tenant = 'stackspot') => {
|
|
78
|
+
const overrides = getApiOverride();
|
|
79
|
+
const apis = getApisByTenant(tenant);
|
|
80
|
+
const apiMap = {};
|
|
81
|
+
for (const [key, value] of Object.entries(apis)) {
|
|
82
|
+
if (value?.url && value.url?.[env]) {
|
|
83
|
+
const url = value.url[env];
|
|
84
|
+
const api = key;
|
|
85
|
+
apiMap[api] = url;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return { ...apiMap, ...overrides };
|
|
73
89
|
};
|
|
74
90
|
/**
|
|
75
91
|
* Sets the default APIs addresses for each environments.
|
|
76
92
|
* @returns {Apis} an object containing APIs URLs grouped by api name and enviroments.
|
|
77
93
|
*/
|
|
78
|
-
export const getApiAddresses = () =>
|
|
79
|
-
return defaultApis;
|
|
80
|
-
};
|
|
94
|
+
export const getApiAddresses = () => defaultApis;
|
|
81
95
|
export const apiAddresses = () => {
|
|
82
96
|
const env = NetworkClient.getEnv();
|
|
83
97
|
return transformApisToApiAddress(defaultApis, env);
|
|
84
98
|
};
|
|
99
|
+
const networkApiNameToOpaApiName = {
|
|
100
|
+
ai: 'code-buddy',
|
|
101
|
+
dataIntegration: 'data-integration',
|
|
102
|
+
workspaceManager: 'workspace-manager',
|
|
103
|
+
cloudServices: 'cloud-services',
|
|
104
|
+
cloudAccount: 'cloud-account',
|
|
105
|
+
cloudPlatformHorizon: 'cloud-platform-horizon',
|
|
106
|
+
codeShift: 'code-shift',
|
|
107
|
+
genAiInference: 'ai-inference',
|
|
108
|
+
apiRuntime: 'runtime-manager',
|
|
109
|
+
serviceCatalog: 'catalog',
|
|
110
|
+
};
|
|
111
|
+
function resolveApiName(name) {
|
|
112
|
+
return networkApiNameToOpaApiName[name] ?? name;
|
|
113
|
+
}
|
|
114
|
+
function generateApiMap(apis) {
|
|
115
|
+
const apiMap = {};
|
|
116
|
+
for (const [key, url] of Object.entries(apis)) {
|
|
117
|
+
if (url) {
|
|
118
|
+
apiMap[url] = resolveApiName(key);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return apiMap;
|
|
122
|
+
}
|
|
123
|
+
export function getPermissionsAPIMap(env, tenant = 'stackspot') {
|
|
124
|
+
const apis = getApisBaseUrlConfig(env, tenant);
|
|
125
|
+
return generateApiMap(apis);
|
|
126
|
+
}
|
|
85
127
|
//# sourceMappingURL=api-addresses.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-addresses.js","sourceRoot":"","sources":["../src/api-addresses.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api-addresses.js","sourceRoot":"","sources":["../src/api-addresses.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { CancelledError } from '@tanstack/react-query';
|
|
2
|
-
export { apiAddresses, getApiAddresses,
|
|
2
|
+
export { apiAddresses, getApiAddresses, getApisBaseUrlConfig, getBaseUrlByTenantWithOverride } from './api-addresses.js';
|
|
3
3
|
export { accountClient } from './client/account.js';
|
|
4
4
|
export { accountAssetManagerClient } from './client/account-asset-manager.js';
|
|
5
5
|
export { agentClient } from './client/agent.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { CancelledError } from '@tanstack/react-query';
|
|
2
|
-
export { apiAddresses, getApiAddresses,
|
|
2
|
+
export { apiAddresses, getApiAddresses, getApisBaseUrlConfig, getBaseUrlByTenantWithOverride } from './api-addresses.js';
|
|
3
3
|
export { accountClient } from './client/account.js';
|
|
4
4
|
export { accountAssetManagerClient } from './client/account-asset-manager.js';
|
|
5
5
|
export { agentClient } from './client/agent.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAA;AACrH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACjE,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,cAAc,gBAAgB,CAAA;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAG1D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkClient.d.ts","sourceRoot":"","sources":["../../src/network/NetworkClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NetworkClient.d.ts","sourceRoot":"","sources":["../../src/network/NetworkClient.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAEnF;;;;;;;;;;;GAWG;AACH,8BAAsB,aAAa;IACjC,OAAO,CAAC,OAAO,CAAqB;IACpC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/C,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAK;IACxB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAQ;IAE9B;;OAEG;gBACS,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC;IAIxC;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM;IAetE;;;;;;;OAOG;IACH,MAAM,CAAC,MAAM,IAAI,GAAG;IAIpB,OAAO,CAAC,kBAAkB;IAI1B;;;;OAIG;IACH,SAAS,CAAC,UAAU,IAAI,MAAM;IAI9B;;;;OAIG;IACH,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM;IASjC;;;;;;OAMG;cACa,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAW7G,OAAO,CAAC,iBAAiB;IAMzB;;;;;;OAMG;IACH,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;IAgBrF;;;;;;;;;;;;;;OAcG;cACa,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAYpG;;;OAGG;IACH,SAAS,CAAC,UAAU;CAIrB"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { AuthenticationError, SessionExpiredError } from '@stack-spot/auth';
|
|
2
|
-
import { requestPermission } from '@stack-spot/opa';
|
|
2
|
+
import { requestPermission, setup as setupPermissions } from '@stack-spot/opa';
|
|
3
3
|
import { events } from 'fetch-event-stream';
|
|
4
|
-
import { getBaseUrlByTenantWithOverride } from '../api-addresses.js';
|
|
4
|
+
import { getApisBaseUrlConfig, getBaseUrlByTenantWithOverride, getPermissionsAPIMap } from '../api-addresses.js';
|
|
5
5
|
import { StackspotAPIError } from '../error/StackspotAPIError.js';
|
|
6
|
+
import { queryClient } from './react-query-client.js';
|
|
6
7
|
/**
|
|
7
8
|
* A set of methods for performing network requests to an API.
|
|
8
9
|
*
|
|
@@ -39,6 +40,14 @@ export class NetworkClient {
|
|
|
39
40
|
NetworkClient.sessionManager = sessionManager;
|
|
40
41
|
NetworkClient.env = env;
|
|
41
42
|
NetworkClient.tenant = tenant;
|
|
43
|
+
const url = getApisBaseUrlConfig(env, tenant).permissionValidation;
|
|
44
|
+
const apiMap = getPermissionsAPIMap(env, tenant);
|
|
45
|
+
sessionManager.onChange?.((session) => {
|
|
46
|
+
if (session) {
|
|
47
|
+
queryClient.invalidateQueries();
|
|
48
|
+
setupPermissions({ url, session, apiMap });
|
|
49
|
+
}
|
|
50
|
+
});
|
|
42
51
|
}
|
|
43
52
|
/**
|
|
44
53
|
* Retrieves the current environment configuration.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkClient.js","sourceRoot":"","sources":["../../src/network/NetworkClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"NetworkClient.js","sourceRoot":"","sources":["../../src/network/NetworkClient.ts"],"names":[],"mappings":"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"}
|
package/dist/network/types.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export interface SessionManager {
|
|
|
7
7
|
hasSession(): boolean;
|
|
8
8
|
endSession(): void;
|
|
9
9
|
getSession(): Session;
|
|
10
|
+
onChange?: (listener: (session: Session | undefined) => void) => (() => void);
|
|
10
11
|
}
|
|
11
12
|
export type Tenant = 'stackspot' | 'itau';
|
|
12
13
|
export type Env = 'dev' | 'stg' | 'prd';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/network/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC5L,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAE9D,MAAM,WAAW,cAAc;IAC7B,UAAU,IAAI,OAAO,CAAC;IACtB,UAAU,IAAI,IAAI,CAAC;IACnB,UAAU,IAAI,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/network/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -1 +1,42 @@
|
|
|
1
|
-
# Network
|
|
1
|
+
# Network
|
|
2
|
+
|
|
3
|
+
## Running your application with local apis
|
|
4
|
+
1. Create, at the root of your project, a file called `.env.local`.
|
|
5
|
+
2. Open the file and declare the following variable to replace the default urls:
|
|
6
|
+
```text
|
|
7
|
+
VITE_NETWORK_OVERRIDES={
|
|
8
|
+
"ai": "http://localhost:8000",
|
|
9
|
+
"agent-tools": "http://localhost:8001",
|
|
10
|
+
}
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
#### Name of each api supported (to use in the VITE_NETWORK_OVERRIDES variable):
|
|
14
|
+
- ai
|
|
15
|
+
- agent
|
|
16
|
+
- agent-tools
|
|
17
|
+
- dataIntegration
|
|
18
|
+
- workspace
|
|
19
|
+
- account
|
|
20
|
+
- content
|
|
21
|
+
- eventBus
|
|
22
|
+
- serviceCatalog
|
|
23
|
+
- apiRuntime
|
|
24
|
+
- cloudServices
|
|
25
|
+
- cloudAccount
|
|
26
|
+
- dataPlatform
|
|
27
|
+
- insights
|
|
28
|
+
- workflows
|
|
29
|
+
- workspaceManager
|
|
30
|
+
- workspaceSearchEngine
|
|
31
|
+
- permissionValidation
|
|
32
|
+
- apiManagement
|
|
33
|
+
- secrets
|
|
34
|
+
- notification
|
|
35
|
+
- cloudPlatform
|
|
36
|
+
- cloudRuntimes
|
|
37
|
+
- cloudPlatformHorizon
|
|
38
|
+
- codeShift
|
|
39
|
+
- genAiInference
|
|
40
|
+
- discover
|
|
41
|
+
- accountAssetManager
|
|
42
|
+
- edpBfa
|
package/src/api-addresses.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { APIMap } from '@stack-spot/opa'
|
|
1
2
|
import apisItauJson from './apis-itau.json' assert { type: 'json' }
|
|
2
3
|
import apisJson from './apis.json' assert { type: 'json' }
|
|
3
4
|
import { NetworkClient } from './network/NetworkClient'
|
|
@@ -5,26 +6,29 @@ import { Env, Tenant } from './network/types'
|
|
|
5
6
|
|
|
6
7
|
type ApisKeys = keyof typeof apisJson;
|
|
7
8
|
|
|
9
|
+
type APIName = APIMap[string]
|
|
10
|
+
type ExceptionAPIName = Exclude<APIName, keyof Apis>
|
|
11
|
+
|
|
12
|
+
declare global {
|
|
13
|
+
interface ImportMeta {
|
|
14
|
+
readonly env: {
|
|
15
|
+
VITE_NETWORK_OVERRIDES: string,
|
|
16
|
+
DEV: boolean,
|
|
17
|
+
PROD: boolean,
|
|
18
|
+
},
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
8
22
|
type ApiConfig = {
|
|
9
23
|
url: Record<Env, string>,
|
|
10
24
|
docs?: string,
|
|
11
25
|
}
|
|
12
26
|
|
|
13
|
-
type PartialApiConfig = {
|
|
14
|
-
url: Partial<Record<Env, string>>,
|
|
15
|
-
docs?: string
|
|
16
|
-
}
|
|
17
|
-
|
|
18
27
|
type Apis = Record<ApisKeys, ApiConfig>;
|
|
19
28
|
|
|
20
|
-
type
|
|
21
|
-
|
|
22
|
-
type ApiAddress = {
|
|
23
|
-
[api: string]: string,
|
|
24
|
-
}
|
|
29
|
+
type ApiAddress = Record<ApisKeys, string>
|
|
25
30
|
|
|
26
|
-
|
|
27
|
-
let overrideApis: PartialApis = {};
|
|
31
|
+
const defaultApis: Apis = apisJson
|
|
28
32
|
|
|
29
33
|
const apis: Record<Tenant, Apis> = {
|
|
30
34
|
'stackspot': apisJson,
|
|
@@ -37,12 +41,12 @@ const apis: Record<Tenant, Apis> = {
|
|
|
37
41
|
* @param tenant The current tenant (e.g., 'stackspot', 'itau').
|
|
38
42
|
* @returns API catalog containing the URLs per environment.
|
|
39
43
|
*/
|
|
40
|
-
|
|
44
|
+
function getApisByTenant(tenant: Tenant) {
|
|
41
45
|
return apis[tenant]
|
|
42
46
|
}
|
|
43
47
|
|
|
44
48
|
function transformApisToApiAddress(apis: Apis, env: Env): ApiAddress {
|
|
45
|
-
const apiAddress
|
|
49
|
+
const apiAddress = {} as ApiAddress
|
|
46
50
|
|
|
47
51
|
for (const api in apis) {
|
|
48
52
|
const key = api as ApisKeys
|
|
@@ -59,14 +63,28 @@ function transformApisToApiAddress(apis: Apis, env: Env): ApiAddress {
|
|
|
59
63
|
* @returns {boolean} true if the URL is found, otherwise false.
|
|
60
64
|
*/
|
|
61
65
|
function matchesBaseUrl(baseUrl: Record<Env, string>, candidate: Record<Env, string>): boolean {
|
|
62
|
-
const envs: Env[] = ['dev', 'stg', 'prd']
|
|
66
|
+
const envs: Env[] = ['dev', 'stg', 'prd']
|
|
63
67
|
|
|
64
68
|
return envs.every(e => {
|
|
65
69
|
if (candidate[e]) {
|
|
66
|
-
return baseUrl[e] === candidate[e]
|
|
70
|
+
return baseUrl[e] === candidate[e]
|
|
67
71
|
}
|
|
68
|
-
return true
|
|
69
|
-
})
|
|
72
|
+
return true
|
|
73
|
+
})
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
const getApiOverride = () => {
|
|
77
|
+
const envs = import.meta.env
|
|
78
|
+
|
|
79
|
+
let overrideAPIsURL = {} as ApiAddress
|
|
80
|
+
if (envs.PROD) return overrideAPIsURL
|
|
81
|
+
|
|
82
|
+
try {
|
|
83
|
+
overrideAPIsURL= JSON.parse(envs.VITE_NETWORK_OVERRIDES)
|
|
84
|
+
return overrideAPIsURL
|
|
85
|
+
} catch {
|
|
86
|
+
return overrideAPIsURL
|
|
87
|
+
}
|
|
70
88
|
}
|
|
71
89
|
|
|
72
90
|
/**
|
|
@@ -77,44 +95,81 @@ function matchesBaseUrl(baseUrl: Record<Env, string>, candidate: Record<Env, str
|
|
|
77
95
|
* @param tenant the current tenant.
|
|
78
96
|
* @returns {string} the base URL for the given environment and tenant, applying any overrides if available.
|
|
79
97
|
*/
|
|
80
|
-
export const getBaseUrlByTenantWithOverride = (baseUrl: Record<Env, string>, targetEnv: Env = 'prd',
|
|
81
|
-
|
|
98
|
+
export const getBaseUrlByTenantWithOverride = (baseUrl: Record<Env, string>, targetEnv: Env = 'prd',
|
|
99
|
+
tenant: Tenant = 'stackspot'): string => {
|
|
100
|
+
let matchesApiName: ApisKeys | null = null
|
|
82
101
|
|
|
83
102
|
for (const [apiName, config] of Object.entries(defaultApis) as [ApisKeys, ApiConfig][]) {
|
|
84
103
|
if (matchesBaseUrl(baseUrl, config.url)) {
|
|
85
|
-
matchesApiName = apiName
|
|
86
|
-
break
|
|
104
|
+
matchesApiName = apiName
|
|
105
|
+
break
|
|
87
106
|
}
|
|
88
107
|
}
|
|
89
108
|
|
|
90
109
|
if (!matchesApiName) return ''
|
|
91
110
|
|
|
92
|
-
const
|
|
93
|
-
if (overrideUrl) {
|
|
94
|
-
return overrideUrl;
|
|
95
|
-
}
|
|
96
|
-
|
|
111
|
+
const overrides = getApiOverride()
|
|
97
112
|
const apis = getApisByTenant(tenant)
|
|
98
|
-
|
|
113
|
+
const api = apis[matchesApiName]
|
|
114
|
+
return overrides?.[matchesApiName] ?? api?.url?.[targetEnv]
|
|
99
115
|
}
|
|
100
116
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
117
|
+
export const getApisBaseUrlConfig = (env: Env = 'prd', tenant: Tenant = 'stackspot'): ApiAddress => {
|
|
118
|
+
const overrides = getApiOverride()
|
|
119
|
+
const apis = getApisByTenant(tenant)
|
|
120
|
+
const apiMap = {} as ApiAddress
|
|
121
|
+
|
|
122
|
+
for (const [key, value] of Object.entries(apis)) {
|
|
123
|
+
if (value?.url && value.url?.[env]) {
|
|
124
|
+
const url = value.url[env]
|
|
125
|
+
const api = key as ApisKeys
|
|
126
|
+
apiMap[api] = url
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return { ...apiMap, ...overrides }
|
|
107
131
|
}
|
|
108
132
|
|
|
133
|
+
|
|
109
134
|
/**
|
|
110
135
|
* Sets the default APIs addresses for each environments.
|
|
111
136
|
* @returns {Apis} an object containing APIs URLs grouped by api name and enviroments.
|
|
112
137
|
*/
|
|
113
|
-
export const getApiAddresses = (): Apis =>
|
|
114
|
-
return defaultApis;
|
|
115
|
-
}
|
|
138
|
+
export const getApiAddresses = (): Apis => defaultApis
|
|
116
139
|
|
|
117
140
|
export const apiAddresses = () => {
|
|
118
141
|
const env = NetworkClient.getEnv()
|
|
119
142
|
return transformApisToApiAddress(defaultApis, env)
|
|
120
143
|
}
|
|
144
|
+
|
|
145
|
+
const networkApiNameToOpaApiName = {
|
|
146
|
+
ai: 'code-buddy',
|
|
147
|
+
dataIntegration: 'data-integration',
|
|
148
|
+
workspaceManager: 'workspace-manager',
|
|
149
|
+
cloudServices: 'cloud-services',
|
|
150
|
+
cloudAccount: 'cloud-account',
|
|
151
|
+
cloudPlatformHorizon: 'cloud-platform-horizon',
|
|
152
|
+
codeShift: 'code-shift',
|
|
153
|
+
genAiInference: 'ai-inference',
|
|
154
|
+
apiRuntime: 'runtime-manager',
|
|
155
|
+
serviceCatalog: 'catalog',
|
|
156
|
+
} as const satisfies Partial<Record<keyof Apis, ExceptionAPIName>>
|
|
157
|
+
|
|
158
|
+
function resolveApiName(name: keyof Apis): APIName {
|
|
159
|
+
return (networkApiNameToOpaApiName as Record<string, ExceptionAPIName>)[name] ?? name
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
function generateApiMap(apis: ApiAddress) {
|
|
163
|
+
const apiMap: APIMap = {}
|
|
164
|
+
for (const [key, url] of Object.entries(apis)) {
|
|
165
|
+
if (url) {
|
|
166
|
+
apiMap[url] = resolveApiName(key as keyof Apis)
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return apiMap
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
export function getPermissionsAPIMap(env: Env, tenant: Tenant = 'stackspot'): APIMap {
|
|
173
|
+
const apis = getApisBaseUrlConfig(env, tenant)
|
|
174
|
+
return generateApiMap(apis)
|
|
175
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { CancelledError } from '@tanstack/react-query'
|
|
2
|
-
export { apiAddresses, getApiAddresses,
|
|
2
|
+
export { apiAddresses, getApiAddresses, getApisBaseUrlConfig, getBaseUrlByTenantWithOverride } from './api-addresses'
|
|
3
3
|
export { accountClient } from './client/account'
|
|
4
4
|
export { accountAssetManagerClient } from './client/account-asset-manager'
|
|
5
5
|
export { agentClient } from './client/agent'
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { AuthenticationError, SessionExpiredError } from '@stack-spot/auth'
|
|
2
|
-
import { requestPermission } from '@stack-spot/opa'
|
|
2
|
+
import { requestPermission, setup as setupPermissions } from '@stack-spot/opa'
|
|
3
3
|
import { events } from 'fetch-event-stream'
|
|
4
|
-
import { getBaseUrlByTenantWithOverride } from '../api-addresses'
|
|
4
|
+
import { getApisBaseUrlConfig, getBaseUrlByTenantWithOverride, getPermissionsAPIMap } from '../api-addresses'
|
|
5
5
|
import { StackspotAPIError } from '../error/StackspotAPIError'
|
|
6
|
+
import { queryClient } from './react-query-client'
|
|
6
7
|
import { Env, FetchEventStream, HTTPMethod, SessionManager, Tenant } from './types'
|
|
7
8
|
|
|
8
9
|
/**
|
|
@@ -41,6 +42,14 @@ export abstract class NetworkClient {
|
|
|
41
42
|
NetworkClient.sessionManager = sessionManager
|
|
42
43
|
NetworkClient.env = env
|
|
43
44
|
NetworkClient.tenant = tenant
|
|
45
|
+
const url = getApisBaseUrlConfig(env, tenant).permissionValidation
|
|
46
|
+
const apiMap = getPermissionsAPIMap(env, tenant)
|
|
47
|
+
sessionManager.onChange?.((session) => {
|
|
48
|
+
if (session) {
|
|
49
|
+
queryClient.invalidateQueries()
|
|
50
|
+
setupPermissions({ url, session, apiMap })
|
|
51
|
+
}
|
|
52
|
+
})
|
|
44
53
|
}
|
|
45
54
|
|
|
46
55
|
/**
|
|
@@ -65,7 +74,7 @@ export abstract class NetworkClient {
|
|
|
65
74
|
* @returns the final baseURL for the current environment, considering overrides if available.
|
|
66
75
|
*/
|
|
67
76
|
protected getBaseURL(): string {
|
|
68
|
-
return getBaseUrlByTenantWithOverride(this.baseURL, NetworkClient.env, NetworkClient.tenant)
|
|
77
|
+
return getBaseUrlByTenantWithOverride(this.baseURL, NetworkClient.env, NetworkClient.tenant)
|
|
69
78
|
}
|
|
70
79
|
|
|
71
80
|
/**
|
package/src/network/types.ts
CHANGED