@bluealba/pae-bootstrap-lib 2.0.0 → 2.0.1-develop-1297
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/src/bootstrap/bootstrap-platform.d.ts +5 -2
- package/dist/src/bootstrap/bootstrap-platform.d.ts.map +1 -1
- package/dist/src/bootstrap/bootstrap-platform.js +60 -45
- package/dist/src/bootstrap/bootstrap-platform.js.map +1 -1
- package/dist/src/bootstrap/domain/bootstrap-sync-metadata.interface.d.ts +12 -0
- package/dist/src/bootstrap/domain/bootstrap-sync-metadata.interface.d.ts.map +1 -1
- package/dist/src/bootstrap/domain/domain-validation.test.js +500 -244
- package/dist/src/bootstrap/domain/domain-validation.test.js.map +1 -1
- package/dist/src/bootstrap/domain/index.d.ts +2 -0
- package/dist/src/bootstrap/domain/index.d.ts.map +1 -0
- package/dist/src/bootstrap/domain/index.js +18 -0
- package/dist/src/bootstrap/domain/index.js.map +1 -0
- package/dist/src/bootstrap/read-bootstrap-applications.d.ts.map +1 -1
- package/dist/src/bootstrap/read-bootstrap-applications.js +98 -3
- package/dist/src/bootstrap/read-bootstrap-applications.js.map +1 -1
- package/dist/src/bootstrap/run-bootstrap-sync.service.d.ts.map +1 -1
- package/dist/src/bootstrap/run-bootstrap-sync.service.js +3 -1
- package/dist/src/bootstrap/run-bootstrap-sync.service.js.map +1 -1
- package/dist/src/bootstrap/synchronizers/sync-feature-flags.d.ts +8 -0
- package/dist/src/bootstrap/synchronizers/sync-feature-flags.d.ts.map +1 -0
- package/dist/src/bootstrap/synchronizers/sync-feature-flags.js +67 -0
- package/dist/src/bootstrap/synchronizers/sync-feature-flags.js.map +1 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -25,8 +25,11 @@ export type BootstrapOptions = {
|
|
|
25
25
|
};
|
|
26
26
|
/**
|
|
27
27
|
* Reads the current application src/data folder assembles all the platform definitions
|
|
28
|
-
* and
|
|
29
|
-
*
|
|
28
|
+
* and sends them to the gateway's /bootstrap/sync endpoint for synchronization.
|
|
29
|
+
*
|
|
30
|
+
* @deprecated The synchronization logic has been moved to the gateway service for centralization.
|
|
31
|
+
* This function now acts as a client that delegates to the gateway endpoint.
|
|
32
|
+
* The function signature remains unchanged for backward compatibility.
|
|
30
33
|
*/
|
|
31
34
|
export declare const bootstrapPlatform: (options: BootstrapOptions) => Promise<void>;
|
|
32
35
|
//# sourceMappingURL=bootstrap-platform.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap-platform.d.ts","sourceRoot":"","sources":["../../../src/bootstrap/bootstrap-platform.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bootstrap-platform.d.ts","sourceRoot":"","sources":["../../../src/bootstrap/bootstrap-platform.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAG7E;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,CAAC;CACtE,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAAU,SAAS,gBAAgB,kBAuEhE,CAAC"}
|
|
@@ -8,68 +8,83 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
12
|
-
var t = {};
|
|
13
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
14
|
-
t[p] = s[p];
|
|
15
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
16
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
17
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
18
|
-
t[p[i]] = s[p[i]];
|
|
19
|
-
}
|
|
20
|
-
return t;
|
|
21
|
-
};
|
|
22
11
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
23
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
13
|
};
|
|
25
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
15
|
exports.bootstrapPlatform = void 0;
|
|
27
16
|
const read_bootstrap_applications_1 = require("./read-bootstrap-applications");
|
|
28
|
-
const initialize_pae_client_1 = __importDefault(require("./initialize-pae-client"));
|
|
29
|
-
const ramda_1 = require("ramda");
|
|
30
|
-
const run_bootstrap_sync_service_1 = require("./run-bootstrap-sync.service");
|
|
31
17
|
const pae_core_1 = require("@bluealba/pae-core");
|
|
32
|
-
const
|
|
18
|
+
const initialize_pae_client_1 = __importDefault(require("./initialize-pae-client"));
|
|
33
19
|
/**
|
|
34
20
|
* Reads the current application src/data folder assembles all the platform definitions
|
|
35
|
-
* and
|
|
36
|
-
*
|
|
21
|
+
* and sends them to the gateway's /bootstrap/sync endpoint for synchronization.
|
|
22
|
+
*
|
|
23
|
+
* @deprecated The synchronization logic has been moved to the gateway service for centralization.
|
|
24
|
+
* This function now acts as a client that delegates to the gateway endpoint.
|
|
25
|
+
* The function signature remains unchanged for backward compatibility.
|
|
37
26
|
*/
|
|
38
27
|
const bootstrapPlatform = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
39
|
-
var _a, _b;
|
|
28
|
+
var _a, _b, _c;
|
|
40
29
|
if (!options.scopedTo) {
|
|
41
30
|
throw new Error('No options.scopedTo was provider neither the env var SERVICE_ACCESS_NAME is present ! Set one to identify the bootstrap as author for creating/updating entities in the platform');
|
|
42
31
|
}
|
|
32
|
+
console.log('[Bootstrap] Reading platform data from:', (_a = options.path) !== null && _a !== void 0 ? _a : process.cwd());
|
|
43
33
|
// init PAE
|
|
44
34
|
const pae = yield (0, initialize_pae_client_1.default)();
|
|
45
|
-
//
|
|
46
|
-
const platform = (0, read_bootstrap_applications_1.readPlatformBootstrapFolder)((
|
|
35
|
+
// Read all files from filesystem (maintains current logic)
|
|
36
|
+
const platform = (0, read_bootstrap_applications_1.readPlatformBootstrapFolder)((_b = options.path) !== null && _b !== void 0 ? _b : process.cwd(), options);
|
|
47
37
|
const applications = Object.values(platform.applications);
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
})
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
38
|
+
console.log(`[Bootstrap] Found ${applications.length} applications`);
|
|
39
|
+
console.log(`[Bootstrap] Found ${(_c = platform.sharedLibraries) === null || _c === void 0 ? void 0 : _c.length} shared libraries`);
|
|
40
|
+
// Handle transformModules option if provided (backward compatibility)
|
|
41
|
+
if (options.transformModules) {
|
|
42
|
+
console.warn('[DEPRECATED] transformModules option is deprecated and will be removed in a future version.');
|
|
43
|
+
const transformedModules = options.transformModules(applications.flatMap(app => app.modules));
|
|
44
|
+
// Rebuild applications with transformed modules
|
|
45
|
+
// Group modules by application name
|
|
46
|
+
const modulesByApp = new Map();
|
|
47
|
+
transformedModules.forEach(module => {
|
|
48
|
+
const appName = module.application || pae_core_1.GLOBAL_APPLICATION_NAME;
|
|
49
|
+
if (!modulesByApp.has(appName)) {
|
|
50
|
+
modulesByApp.set(appName, []);
|
|
51
|
+
}
|
|
52
|
+
modulesByApp.get(appName).push(module);
|
|
53
|
+
});
|
|
54
|
+
// Update platform.applications with transformed modules
|
|
55
|
+
modulesByApp.forEach((modules, appName) => {
|
|
56
|
+
if (platform.applications[appName]) {
|
|
57
|
+
platform.applications[appName].modules = modules;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
// Get gateway URL from environment
|
|
62
|
+
const gatewayUrl = (0, pae_core_1.fromEnv)('GATEWAY_SERVICE_URL');
|
|
63
|
+
const url = `${gatewayUrl}/bootstrap/sync`;
|
|
64
|
+
console.log(`[Bootstrap] Sending data to gateway: ${url}`);
|
|
65
|
+
console.log(`[Bootstrap] Scoped to: ${options.scopedTo}`);
|
|
66
|
+
try {
|
|
67
|
+
const response = yield pae.invoke("/bootstrap/sync", {
|
|
68
|
+
method: 'POST',
|
|
69
|
+
headers: {
|
|
70
|
+
'Content-Type': 'application/json',
|
|
71
|
+
'x-bootstrap-scoped-to': options.scopedTo,
|
|
72
|
+
},
|
|
73
|
+
body: JSON.stringify(platform),
|
|
74
|
+
});
|
|
75
|
+
if (!response.ok) {
|
|
76
|
+
const errorText = yield response.text();
|
|
77
|
+
throw new Error(`Bootstrap sync failed with status ${response.status}: ${errorText}`);
|
|
78
|
+
}
|
|
79
|
+
console.log('[Bootstrap] Sync completed successfully');
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
if (error instanceof Error) {
|
|
83
|
+
console.error('[Bootstrap] Sync failed:', error.message);
|
|
84
|
+
throw error;
|
|
85
|
+
}
|
|
86
|
+
throw new Error('Bootstrap sync failed with unknown error');
|
|
87
|
+
}
|
|
73
88
|
});
|
|
74
89
|
exports.bootstrapPlatform = bootstrapPlatform;
|
|
75
90
|
//# sourceMappingURL=bootstrap-platform.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap-platform.js","sourceRoot":"","sources":["../../../src/bootstrap/bootstrap-platform.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bootstrap-platform.js","sourceRoot":"","sources":["../../../src/bootstrap/bootstrap-platform.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,16 @@ import { CreateApplicationDTO } from "@bluealba/pae-core/dist/src/authorization/
|
|
|
5
5
|
import { CreateRoleDTO } from "@bluealba/pae-core/dist/src/authorization/dto/create-role.dto";
|
|
6
6
|
import { UpdateModuleUIConfigDTO } from "@bluealba/pae-core/dist/src/catalog/dto/update-module-ui-config.dto";
|
|
7
7
|
import { BootstrapOptions } from "../bootstrap-platform";
|
|
8
|
+
export interface BootstrapFeatureFlag {
|
|
9
|
+
name: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
enabled?: boolean;
|
|
12
|
+
constraints?: Array<{
|
|
13
|
+
contextName: string;
|
|
14
|
+
operator: string;
|
|
15
|
+
values?: string[];
|
|
16
|
+
}>;
|
|
17
|
+
}
|
|
8
18
|
export interface OperationAuthzBootstrap extends Omit<CreateOperationDTO, 'applicationName'>, Partial<Pick<CreateOperationDTO, 'applicationName'>> {
|
|
9
19
|
roles?: string[];
|
|
10
20
|
}
|
|
@@ -17,6 +27,7 @@ export interface BootstrapSyncMetadata {
|
|
|
17
27
|
scopedTo: BootstrapOptions['scopedTo'];
|
|
18
28
|
};
|
|
19
29
|
sharedLibraries?: CreateSharedLibraryDTO[];
|
|
30
|
+
featureFlags?: BootstrapFeatureFlag[];
|
|
20
31
|
catalog?: BootstrapModule[];
|
|
21
32
|
applicationsAuthz?: CreateApplicationDTO[];
|
|
22
33
|
rolesAuthz?: CreateRoleDTO[];
|
|
@@ -32,6 +43,7 @@ export type BootstrapApplication = CreateApplicationDTO & {
|
|
|
32
43
|
};
|
|
33
44
|
export type BootstrapPlatform = {
|
|
34
45
|
sharedLibraries: CreateSharedLibraryDTO[];
|
|
46
|
+
featureFlags?: BootstrapFeatureFlag[];
|
|
35
47
|
applications: Record<string, BootstrapApplication>;
|
|
36
48
|
};
|
|
37
49
|
//# sourceMappingURL=bootstrap-sync-metadata.interface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap-sync-metadata.interface.d.ts","sourceRoot":"","sources":["../../../../src/bootstrap/domain/bootstrap-sync-metadata.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oEAAoE,CAAC;AACxG,OAAO,EAAE,sBAAsB,EAAE,MAAM,wEAAwE,CAAC;AAChH,OAAO,EAAE,oBAAoB,EAAkB,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sEAAsE,CAAC;AAC5G,OAAO,EAAE,aAAa,EAAE,MAAM,+DAA+D,CAAC;AAC9F,OAAO,EAAE,uBAAuB,EAAE,MAAM,qEAAqE,CAAC;AAC9G,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,uBAAwB,SACvC,IAAI,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EAC3C,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;IACpD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE;QACV,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;KACxC,CAAC;IACF,eAAe,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAC3C,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,iBAAiB,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAC3C,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,eAAe,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAC5C,aAAa,CAAC,EAAE,uBAAuB,EAAE,CAAC;CAC3C;AAED,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAA;AAElD,MAAM,MAAM,oBAAoB,GAAG,oBAAoB,GAAG;IACxD,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,eAAe,EAAE,sBAAsB,EAAE,CAAC;IAC1C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;CACpD,CAAA"}
|
|
1
|
+
{"version":3,"file":"bootstrap-sync-metadata.interface.d.ts","sourceRoot":"","sources":["../../../../src/bootstrap/domain/bootstrap-sync-metadata.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oEAAoE,CAAC;AACxG,OAAO,EAAE,sBAAsB,EAAE,MAAM,wEAAwE,CAAC;AAChH,OAAO,EAAE,oBAAoB,EAAkB,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sEAAsE,CAAC;AAC5G,OAAO,EAAE,aAAa,EAAE,MAAM,+DAA+D,CAAC;AAC9F,OAAO,EAAE,uBAAuB,EAAE,MAAM,qEAAqE,CAAC;AAC9G,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,KAAK,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,uBAAwB,SACvC,IAAI,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EAC3C,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;IACpD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE;QACV,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;KACxC,CAAC;IACF,eAAe,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAC3C,YAAY,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACtC,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,iBAAiB,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAC3C,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,eAAe,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAC5C,aAAa,CAAC,EAAE,uBAAuB,EAAE,CAAC;CAC3C;AAED,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAA;AAElD,MAAM,MAAM,oBAAoB,GAAG,oBAAoB,GAAG;IACxD,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,eAAe,EAAE,sBAAsB,EAAE,CAAC;IAC1C,YAAY,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;CACpD,CAAA"}
|