@platform-mesh/portal-server-lib 0.5.43 → 0.5.45

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.
@@ -1,9 +1,11 @@
1
+ import { KcpKubernetesService } from './services/kcp-k8s.service.js';
1
2
  import { AuthConfigService, DiscoveryService, ServerAuthVariables } from '@openmfp/portal-server-lib';
2
3
  import type { Request } from 'express';
3
4
  export declare class PMAuthConfigProvider implements AuthConfigService {
4
5
  private discoveryService;
5
- private k8sApi;
6
- constructor(discoveryService: DiscoveryService);
6
+ private kcpKubernetesService;
7
+ constructor(discoveryService: DiscoveryService, kcpKubernetesService: KcpKubernetesService);
7
8
  getAuthConfig(request: Request): Promise<ServerAuthVariables>;
8
- private getClientSecret;
9
+ private readClientId;
10
+ private getWelcomeClientSecret;
9
11
  }
@@ -7,24 +7,26 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
+ import { KcpKubernetesService } from './services/kcp-k8s.service.js';
10
11
  import { getDiscoveryEndpoint, getOrganization } from './utils/domain.js';
11
12
  import { CoreV1Api, KubeConfig } from '@kubernetes/client-node';
12
13
  import { HttpException, HttpStatus, Injectable } from '@nestjs/common';
13
14
  import { DiscoveryService, } from '@openmfp/portal-server-lib';
14
15
  let PMAuthConfigProvider = class PMAuthConfigProvider {
15
16
  discoveryService;
16
- k8sApi;
17
- constructor(discoveryService) {
17
+ kcpKubernetesService;
18
+ constructor(discoveryService, kcpKubernetesService) {
18
19
  this.discoveryService = discoveryService;
19
- const kc = new KubeConfig();
20
- kc.loadFromDefault();
21
- this.k8sApi = kc.makeApiClient(CoreV1Api);
20
+ this.kcpKubernetesService = kcpKubernetesService;
22
21
  }
23
22
  async getAuthConfig(request) {
24
23
  const oidcUrl = getDiscoveryEndpoint(request);
25
- const clientId = getOrganization(request);
24
+ const org = getOrganization(request);
25
+ const clientId = org === 'welcome' ? 'welcome' : await this.readClientId(org);
26
+ const clientSecret = org === 'welcome'
27
+ ? await this.getWelcomeClientSecret(org)
28
+ : await this.kcpKubernetesService.getClientSecret(org);
26
29
  const baseDomain = process.env['BASE_DOMAINS_DEFAULT'];
27
- const clientSecret = await this.getClientSecret(clientId);
28
30
  const oidc = await this.discoveryService.getOIDC(oidcUrl);
29
31
  const oauthServerUrl = oidc?.authorization_endpoint ?? process.env['AUTH_SERVER_URL_DEFAULT'];
30
32
  const oauthTokenUrl = oidc?.token_endpoint ?? process.env['TOKEN_URL_DEFAULT'];
@@ -47,11 +49,26 @@ let PMAuthConfigProvider = class PMAuthConfigProvider {
47
49
  endSessionUrl: oidc?.end_session_endpoint,
48
50
  };
49
51
  }
50
- async getClientSecret(orgName) {
52
+ async readClientId(orgName) {
53
+ const k8sResourceDescriptor = {
54
+ group: 'core.platform-mesh.io',
55
+ version: 'v1alpha1',
56
+ plural: 'identityproviderconfigurations',
57
+ name: orgName,
58
+ };
59
+ const result = await this.kcpKubernetesService.listClusterCustomObject(k8sResourceDescriptor, {
60
+ organization: orgName,
61
+ });
62
+ return result.status.managedClients[orgName].clientId;
63
+ }
64
+ async getWelcomeClientSecret(orgName) {
51
65
  const secretName = `portal-client-secret-${orgName}`;
52
66
  const namespace = 'platform-mesh-system';
67
+ const kc = new KubeConfig();
68
+ kc.loadFromDefault();
69
+ const k8sApi = kc.makeApiClient(CoreV1Api);
53
70
  try {
54
- const res = await this.k8sApi.readNamespacedSecret({
71
+ const res = await k8sApi.readNamespacedSecret({
55
72
  namespace,
56
73
  name: secretName,
57
74
  });
@@ -66,7 +83,8 @@ let PMAuthConfigProvider = class PMAuthConfigProvider {
66
83
  };
67
84
  PMAuthConfigProvider = __decorate([
68
85
  Injectable(),
69
- __metadata("design:paramtypes", [DiscoveryService])
86
+ __metadata("design:paramtypes", [DiscoveryService,
87
+ KcpKubernetesService])
70
88
  ], PMAuthConfigProvider);
71
89
  export { PMAuthConfigProvider };
72
90
  //# sourceMappingURL=auth-config-provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-config-provider.js","sourceRoot":"","sources":["../../src/portal-options/auth-config-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-config-provider.js","sourceRoot":"","sources":["../../src/portal-options/auth-config-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export interface K8sResourceDescriptor {
2
+ group: string;
3
+ version: string;
4
+ plural: string;
5
+ name?: string;
6
+ namespace?: string;
7
+ labelSelector?: string;
8
+ }
9
+ export interface K8sRequestContext extends Record<string, any> {
10
+ organization: string;
11
+ 'core_platform-mesh_io_account'?: string;
12
+ }
13
+ export interface IdentityProviderConfiguration {
14
+ status: {
15
+ managedClients: {
16
+ [key: string]: {
17
+ clientId: string;
18
+ secretRef?: {
19
+ name: string;
20
+ namespace: string;
21
+ };
22
+ };
23
+ };
24
+ };
25
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=k8s.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"k8s.js","sourceRoot":"","sources":["../../../src/portal-options/models/k8s.ts"],"names":[],"mappings":""}
@@ -4,5 +4,5 @@ export declare class KubernetesServiceProvidersService implements ServiceProvide
4
4
  private kcpKubernetesService;
5
5
  constructor(kcpKubernetesService: KcpKubernetesService);
6
6
  getServiceProviders(token: string, entities: string[], context: Record<string, any>): Promise<ServiceProviderResponse>;
7
- private getKubernetesResources;
7
+ private listContentConfigurationsForEntity;
8
8
  }
@@ -10,7 +10,6 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  import { KcpKubernetesService } from '../services/kcp-k8s.service.js';
11
11
  import { processContentConfigurationForAccountHierarchy } from '../utils/account-hierarchy-resolver.js';
12
12
  import { welcomeNodeConfig } from './models/welcome-node-config.js';
13
- import { PromiseMiddlewareWrapper } from '@kubernetes/client-node/dist/gen/middleware.js';
14
13
  import { Injectable } from '@nestjs/common';
15
14
  let KubernetesServiceProvidersService = class KubernetesServiceProvidersService {
16
15
  kcpKubernetesService;
@@ -27,19 +26,7 @@ let KubernetesServiceProvidersService = class KubernetesServiceProvidersService
27
26
  if (!context?.organization) {
28
27
  throw new Error('Context with organization is required');
29
28
  }
30
- const entity = !entities || !entities.length ? 'main' : entities[0];
31
- let response;
32
- try {
33
- response = await this.getKubernetesResources(entity, context, token);
34
- }
35
- catch (error) {
36
- console.error(error);
37
- if (error.code == 429 || error.statusCode == 429) {
38
- await new Promise((resolve) => setTimeout(resolve, 1000));
39
- console.log('Retry after 1 second reading kubernetes resources.');
40
- response = await this.getKubernetesResources(entity, context, token);
41
- }
42
- }
29
+ const response = await this.listContentConfigurationsForEntity(token, entities, context);
43
30
  if (!response.items) {
44
31
  return {
45
32
  rawServiceProviders: [],
@@ -69,30 +56,26 @@ let KubernetesServiceProvidersService = class KubernetesServiceProvidersService
69
56
  ],
70
57
  };
71
58
  }
72
- async getKubernetesResources(entity, requestContext, token) {
59
+ async listContentConfigurationsForEntity(token, entities, context) {
60
+ const entity = !entities || !entities.length ? 'main' : entities[0];
73
61
  const gvr = {
74
62
  group: 'ui.platform-mesh.io',
75
63
  version: 'v1alpha1',
76
64
  plural: 'contentconfigurations',
77
65
  labelSelector: `ui.platform-mesh.io/entity=${entity}`,
78
66
  };
79
- const k8sApi = this.kcpKubernetesService.getKcpK8sApiClient();
80
- return await k8sApi.listClusterCustomObject(gvr, {
81
- middleware: [
82
- new PromiseMiddlewareWrapper({
83
- pre: async (context) => {
84
- const accountPath = requestContext?.accountPath ??
85
- requestContext?.['core_platform-mesh_io_account'];
86
- const kcpUrl = this.kcpKubernetesService.getKcpVirtualWorkspaceUrl(requestContext.organization, accountPath);
87
- const path = `${kcpUrl}/apis/${gvr.group}/${gvr.version}/${gvr.plural}`;
88
- context.setUrl(path);
89
- context.setHeaderParam('Authorization', `Bearer ${token}`);
90
- return context;
91
- },
92
- post: async (context) => context,
93
- }),
94
- ],
95
- });
67
+ try {
68
+ return await this.kcpKubernetesService.listClusterCustomObjectInKcpVirtualWorkspace(gvr, context, token);
69
+ }
70
+ catch (error) {
71
+ console.error(error);
72
+ if (error.code == 429 || error.statusCode == 429) {
73
+ await new Promise((resolve) => setTimeout(resolve, 1000));
74
+ console.log('Retry after 1 second reading kubernetes resources.');
75
+ return await this.kcpKubernetesService.listClusterCustomObjectInKcpVirtualWorkspace(gvr, context, token);
76
+ }
77
+ }
78
+ return {};
96
79
  }
97
80
  };
98
81
  KubernetesServiceProvidersService = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"kubernetes-service-providers.service.js","sourceRoot":"","sources":["../../../src/portal-options/service-providers/kubernetes-service-providers.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kubernetes-service-providers.service.js","sourceRoot":"","sources":["../../../src/portal-options/service-providers/kubernetes-service-providers.service.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,26 @@
1
- import { CustomObjectsApi } from '@kubernetes/client-node';
1
+ import { K8sRequestContext, K8sResourceDescriptor } from '../models/k8s.js';
2
+ import { CoreV1Api, CustomObjectsApi } from '@kubernetes/client-node';
2
3
  import type { Request } from 'express';
3
4
  export declare class KcpKubernetesService {
4
- private readonly k8sApi;
5
- private readonly baseUrl;
5
+ private logger;
6
+ private readonly kubeConfigKcp;
7
+ private k8sCustomObjectsApiOIDCUser;
8
+ private k8sCustomObjectsApi;
9
+ private k8sCoreV1Api;
10
+ private baseUrl;
6
11
  constructor();
7
- getKcpK8sApiClient(): CustomObjectsApi;
12
+ private createK8sCustomObjectsApiForOIDCUser;
13
+ private createK8sCustomObjectsApi;
14
+ private createKcpK8sCoreV1Api;
15
+ getKcpK8sCustomObjectsApiOIDCUser(): CustomObjectsApi;
16
+ getKcpK8sCustomObjectsApi(): CustomObjectsApi;
17
+ getKcpK8sCoreV1Api(): CoreV1Api;
8
18
  private buildWorkspacePath;
9
19
  getKcpVirtualWorkspaceUrl(organization: string, account: string): URL;
10
- getKcpWorkspaceUrl(organization: string, account: string): URL;
20
+ getKcpWorkspaceUrl(organization?: string, account?: string): URL;
11
21
  getKcpWorkspacePublicUrl(request: Request): string;
12
22
  private getAppPort;
23
+ listClusterCustomObject(gvr: K8sResourceDescriptor, requestContext: K8sRequestContext): Promise<any>;
24
+ listClusterCustomObjectInKcpVirtualWorkspace(gvr: K8sResourceDescriptor, requestContext: K8sRequestContext, token: string): Promise<any>;
25
+ getClientSecret(orgName: string): Promise<string>;
13
26
  }
@@ -7,16 +7,26 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
+ var KcpKubernetesService_1;
10
11
  import { getOrganization } from '../utils/domain.js';
11
- import { CustomObjectsApi, KubeConfig } from '@kubernetes/client-node';
12
- import { Injectable } from '@nestjs/common';
13
- let KcpKubernetesService = class KcpKubernetesService {
14
- k8sApi;
12
+ import { CoreV1Api, CustomObjectsApi, KubeConfig, } from '@kubernetes/client-node';
13
+ import { PromiseMiddlewareWrapper } from '@kubernetes/client-node/dist/gen/middleware.js';
14
+ import { Injectable, Logger } from '@nestjs/common';
15
+ let KcpKubernetesService = KcpKubernetesService_1 = class KcpKubernetesService {
16
+ logger = new Logger(KcpKubernetesService_1.name);
17
+ kubeConfigKcp = process.env.KUBECONFIG_KCP;
18
+ k8sCustomObjectsApiOIDCUser;
19
+ k8sCustomObjectsApi;
20
+ k8sCoreV1Api;
15
21
  baseUrl;
16
22
  constructor() {
17
- const kubeConfigKcp = process.env.KUBECONFIG_KCP;
23
+ this.createK8sCustomObjectsApiForOIDCUser();
24
+ this.createK8sCustomObjectsApi();
25
+ this.createKcpK8sCoreV1Api();
26
+ }
27
+ createK8sCustomObjectsApiForOIDCUser() {
18
28
  const kc = new KubeConfig();
19
- kc.loadFromFile(kubeConfigKcp);
29
+ kc.loadFromFile(this.kubeConfigKcp);
20
30
  kc.addUser({
21
31
  name: 'oidc',
22
32
  });
@@ -27,13 +37,32 @@ let KcpKubernetesService = class KcpKubernetesService {
27
37
  });
28
38
  kc.setCurrentContext('oidc');
29
39
  this.baseUrl = new URL(kc.getCurrentCluster()?.server || '');
30
- this.k8sApi = kc.makeApiClient(CustomObjectsApi);
40
+ this.k8sCustomObjectsApiOIDCUser = kc.makeApiClient(CustomObjectsApi);
41
+ }
42
+ createK8sCustomObjectsApi() {
43
+ const kc = new KubeConfig();
44
+ kc.loadFromFile(this.kubeConfigKcp);
45
+ this.k8sCustomObjectsApi = kc.makeApiClient(CustomObjectsApi);
46
+ }
47
+ createKcpK8sCoreV1Api() {
48
+ const kc = new KubeConfig();
49
+ kc.loadFromFile(this.kubeConfigKcp);
50
+ this.k8sCoreV1Api = kc.makeApiClient(CoreV1Api);
51
+ }
52
+ getKcpK8sCustomObjectsApiOIDCUser() {
53
+ return this.k8sCustomObjectsApiOIDCUser;
31
54
  }
32
- getKcpK8sApiClient() {
33
- return this.k8sApi;
55
+ getKcpK8sCustomObjectsApi() {
56
+ return this.k8sCustomObjectsApi;
57
+ }
58
+ getKcpK8sCoreV1Api() {
59
+ return this.k8sCoreV1Api;
34
60
  }
35
61
  buildWorkspacePath(organization, account) {
36
- let path = `root:orgs:${organization}`;
62
+ let path = `root:orgs`;
63
+ if (organization) {
64
+ path += `:${organization}`;
65
+ }
37
66
  if (account) {
38
67
  path += `:${account}`;
39
68
  }
@@ -65,8 +94,74 @@ let KcpKubernetesService = class KcpKubernetesService {
65
94
  const isStandardOrEmptyPort = portFromRequest === '80' || portFromRequest === '443' || !portFromRequest;
66
95
  return isStandardOrEmptyPort ? '' : `:${portFromRequest}`;
67
96
  }
97
+ async listClusterCustomObject(gvr, requestContext) {
98
+ return await this.k8sCustomObjectsApi.listClusterCustomObject(gvr, {
99
+ middleware: [
100
+ new PromiseMiddlewareWrapper({
101
+ pre: async (context) => {
102
+ const accountPath = requestContext?.accountPath ??
103
+ requestContext?.['core_platform-mesh_io_account'];
104
+ const kcpUrl = this.getKcpWorkspaceUrl(requestContext.organization, accountPath);
105
+ const path = `${kcpUrl}/apis/${gvr.group}/${gvr.version}/${gvr.plural}/${gvr.name}`;
106
+ this.logger.log(`kcp url: ${path}`);
107
+ context.setUrl(path);
108
+ return context;
109
+ },
110
+ post: async (context) => context,
111
+ }),
112
+ ],
113
+ });
114
+ }
115
+ async listClusterCustomObjectInKcpVirtualWorkspace(gvr, requestContext, token) {
116
+ return await this.k8sCustomObjectsApiOIDCUser.listClusterCustomObject(gvr, {
117
+ middleware: [
118
+ new PromiseMiddlewareWrapper({
119
+ pre: async (context) => {
120
+ const accountPath = requestContext?.accountPath ??
121
+ requestContext?.['core_platform-mesh_io_account'];
122
+ const kcpUrl = this.getKcpVirtualWorkspaceUrl(requestContext.organization, accountPath);
123
+ const path = `${kcpUrl}/apis/${gvr.group}/${gvr.version}/${gvr.plural}`;
124
+ this.logger.log(`kcp url: ${path}`);
125
+ context.setUrl(path);
126
+ context.setHeaderParam('Authorization', `Bearer ${token}`);
127
+ return context;
128
+ },
129
+ post: async (context) => context,
130
+ }),
131
+ ],
132
+ });
133
+ }
134
+ async getClientSecret(orgName) {
135
+ const secretName = `portal-client-secret-${orgName}-${orgName}`;
136
+ const namespace = 'default';
137
+ try {
138
+ const res = await this.k8sCoreV1Api.readNamespacedSecret({
139
+ namespace,
140
+ name: secretName,
141
+ }, {
142
+ middleware: [
143
+ new PromiseMiddlewareWrapper({
144
+ pre: async (context) => {
145
+ const kcpUrl = this.getKcpWorkspaceUrl();
146
+ const path = `${kcpUrl}/api/v1/namespaces/${namespace}/secrets/${secretName}`;
147
+ this.logger.log(`kcp url: ${path}`);
148
+ context.setUrl(path);
149
+ return context;
150
+ },
151
+ post: async (context) => context,
152
+ }),
153
+ ],
154
+ });
155
+ const secretData = res.data;
156
+ return Buffer.from(secretData['client_secret'], 'base64').toString('utf-8');
157
+ }
158
+ catch (err) {
159
+ this.logger.error(`Failed to fetch secret %s:`, secretName, err.response?.body || err);
160
+ throw err;
161
+ }
162
+ }
68
163
  };
69
- KcpKubernetesService = __decorate([
164
+ KcpKubernetesService = KcpKubernetesService_1 = __decorate([
70
165
  Injectable(),
71
166
  __metadata("design:paramtypes", [])
72
167
  ], KcpKubernetesService);
@@ -1 +1 @@
1
- {"version":3,"file":"kcp-k8s.service.js","sourceRoot":"","sources":["../../../src/portal-options/services/kcp-k8s.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kcp-k8s.service.js","sourceRoot":"","sources":["../../../src/portal-options/services/kcp-k8s.service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platform-mesh/portal-server-lib",
3
- "version": "0.5.43",
3
+ "version": "0.5.45",
4
4
  "author": "Platform Mesh",
5
5
  "license": "Apache-2.0",
6
6
  "publishConfig": {
@@ -70,7 +70,7 @@
70
70
  "nodemon": "3.1.11",
71
71
  "prettier": "3.7.4",
72
72
  "rimraf": "6.1.2",
73
- "supertest": "7.1.4",
73
+ "supertest": "7.2.2",
74
74
  "ts-jest": "29.4.6",
75
75
  "ts-loader": "9.5.4",
76
76
  "ts-node": "10.9.2",