@pax8-cta/core 0.1.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/LICENSE +198 -0
- package/dist/auth/device-code-login.d.ts +40 -0
- package/dist/auth/device-code-login.d.ts.map +1 -0
- package/dist/auth/device-code-login.js +59 -0
- package/dist/auth/device-code-login.js.map +1 -0
- package/dist/auth/gdap-client.d.ts +81 -0
- package/dist/auth/gdap-client.d.ts.map +1 -0
- package/dist/auth/gdap-client.js +128 -0
- package/dist/auth/gdap-client.js.map +1 -0
- package/dist/auth/index.d.ts +19 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +19 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/token-manager.d.ts +54 -0
- package/dist/auth/token-manager.d.ts.map +1 -0
- package/dist/auth/token-manager.js +150 -0
- package/dist/auth/token-manager.js.map +1 -0
- package/dist/client.d.ts +27 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +27 -0
- package/dist/client.js.map +1 -0
- package/dist/config/client.d.ts +24 -0
- package/dist/config/client.d.ts.map +1 -0
- package/dist/config/client.js +18 -0
- package/dist/config/client.js.map +1 -0
- package/dist/config/index.d.ts +18 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +18 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +81 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +271 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/schema.d.ts +751 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +556 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/constants.d.ts +116 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +170 -0
- package/dist/constants.js.map +1 -0
- package/dist/dataverse/agent-resolver.d.ts +98 -0
- package/dist/dataverse/agent-resolver.d.ts.map +1 -0
- package/dist/dataverse/agent-resolver.js +185 -0
- package/dist/dataverse/agent-resolver.js.map +1 -0
- package/dist/dataverse/client.d.ts +104 -0
- package/dist/dataverse/client.d.ts.map +1 -0
- package/dist/dataverse/client.js +272 -0
- package/dist/dataverse/client.js.map +1 -0
- package/dist/dataverse/connection-refs.d.ts +115 -0
- package/dist/dataverse/connection-refs.d.ts.map +1 -0
- package/dist/dataverse/connection-refs.js +203 -0
- package/dist/dataverse/connection-refs.js.map +1 -0
- package/dist/dataverse/index.d.ts +20 -0
- package/dist/dataverse/index.d.ts.map +1 -0
- package/dist/dataverse/index.js +20 -0
- package/dist/dataverse/index.js.map +1 -0
- package/dist/dataverse/solution-ops.d.ts +100 -0
- package/dist/dataverse/solution-ops.d.ts.map +1 -0
- package/dist/dataverse/solution-ops.js +288 -0
- package/dist/dataverse/solution-ops.js.map +1 -0
- package/dist/errors.d.ts +171 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +178 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/mock/demo-data.d.ts +213 -0
- package/dist/mock/demo-data.d.ts.map +1 -0
- package/dist/mock/demo-data.js +1096 -0
- package/dist/mock/demo-data.js.map +1 -0
- package/dist/mock/demo-deployment-store.d.ts +77 -0
- package/dist/mock/demo-deployment-store.d.ts.map +1 -0
- package/dist/mock/demo-deployment-store.js +85 -0
- package/dist/mock/demo-deployment-store.js.map +1 -0
- package/dist/powerplatform/admin-client.d.ts +226 -0
- package/dist/powerplatform/admin-client.d.ts.map +1 -0
- package/dist/powerplatform/admin-client.js +315 -0
- package/dist/powerplatform/admin-client.js.map +1 -0
- package/dist/powerplatform/index.d.ts +18 -0
- package/dist/powerplatform/index.d.ts.map +1 -0
- package/dist/powerplatform/index.js +18 -0
- package/dist/powerplatform/index.js.map +1 -0
- package/dist/powerplatform/tenant-discovery.d.ts +100 -0
- package/dist/powerplatform/tenant-discovery.d.ts.map +1 -0
- package/dist/powerplatform/tenant-discovery.js +205 -0
- package/dist/powerplatform/tenant-discovery.js.map +1 -0
- package/dist/preconditions/check.d.ts +41 -0
- package/dist/preconditions/check.d.ts.map +1 -0
- package/dist/preconditions/check.js +173 -0
- package/dist/preconditions/check.js.map +1 -0
- package/dist/preconditions/index.d.ts +20 -0
- package/dist/preconditions/index.d.ts.map +1 -0
- package/dist/preconditions/index.js +20 -0
- package/dist/preconditions/index.js.map +1 -0
- package/dist/preconditions/loader.d.ts +33 -0
- package/dist/preconditions/loader.d.ts.map +1 -0
- package/dist/preconditions/loader.js +65 -0
- package/dist/preconditions/loader.js.map +1 -0
- package/dist/preconditions/schema.d.ts +103 -0
- package/dist/preconditions/schema.d.ts.map +1 -0
- package/dist/preconditions/schema.js +93 -0
- package/dist/preconditions/schema.js.map +1 -0
- package/dist/preconditions/types.d.ts +118 -0
- package/dist/preconditions/types.d.ts.map +1 -0
- package/dist/preconditions/types.js +17 -0
- package/dist/preconditions/types.js.map +1 -0
- package/dist/queue/index.d.ts +17 -0
- package/dist/queue/index.d.ts.map +1 -0
- package/dist/queue/index.js +17 -0
- package/dist/queue/index.js.map +1 -0
- package/dist/queue/memory-queue.d.ts +86 -0
- package/dist/queue/memory-queue.d.ts.map +1 -0
- package/dist/queue/memory-queue.js +221 -0
- package/dist/queue/memory-queue.js.map +1 -0
- package/dist/services/audit-log.d.ts +59 -0
- package/dist/services/audit-log.d.ts.map +1 -0
- package/dist/services/audit-log.js +193 -0
- package/dist/services/audit-log.js.map +1 -0
- package/dist/services/auth-error-parser.d.ts +36 -0
- package/dist/services/auth-error-parser.d.ts.map +1 -0
- package/dist/services/auth-error-parser.js +90 -0
- package/dist/services/auth-error-parser.js.map +1 -0
- package/dist/services/deployment-doctor.d.ts +109 -0
- package/dist/services/deployment-doctor.d.ts.map +1 -0
- package/dist/services/deployment-doctor.js +476 -0
- package/dist/services/deployment-doctor.js.map +1 -0
- package/dist/services/deployment-notifications.d.ts +41 -0
- package/dist/services/deployment-notifications.d.ts.map +1 -0
- package/dist/services/deployment-notifications.js +161 -0
- package/dist/services/deployment-notifications.js.map +1 -0
- package/dist/services/deployment-progress.d.ts +89 -0
- package/dist/services/deployment-progress.d.ts.map +1 -0
- package/dist/services/deployment-progress.js +244 -0
- package/dist/services/deployment-progress.js.map +1 -0
- package/dist/services/deployment-service.d.ts +97 -0
- package/dist/services/deployment-service.d.ts.map +1 -0
- package/dist/services/deployment-service.js +375 -0
- package/dist/services/deployment-service.js.map +1 -0
- package/dist/services/drift-analyzer.d.ts +86 -0
- package/dist/services/drift-analyzer.d.ts.map +1 -0
- package/dist/services/drift-analyzer.js +273 -0
- package/dist/services/drift-analyzer.js.map +1 -0
- package/dist/services/environment-setup.d.ts +97 -0
- package/dist/services/environment-setup.d.ts.map +1 -0
- package/dist/services/environment-setup.js +250 -0
- package/dist/services/environment-setup.js.map +1 -0
- package/dist/services/health-check.d.ts +168 -0
- package/dist/services/health-check.d.ts.map +1 -0
- package/dist/services/health-check.js +705 -0
- package/dist/services/health-check.js.map +1 -0
- package/dist/services/index.d.ts +39 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +39 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/logger.d.ts +139 -0
- package/dist/services/logger.d.ts.map +1 -0
- package/dist/services/logger.js +268 -0
- package/dist/services/logger.js.map +1 -0
- package/dist/services/notification-service.d.ts +55 -0
- package/dist/services/notification-service.d.ts.map +1 -0
- package/dist/services/notification-service.js +184 -0
- package/dist/services/notification-service.js.map +1 -0
- package/dist/services/risk-analyzer.d.ts +252 -0
- package/dist/services/risk-analyzer.d.ts.map +1 -0
- package/dist/services/risk-analyzer.js +866 -0
- package/dist/services/risk-analyzer.js.map +1 -0
- package/dist/services/rollback.d.ts +57 -0
- package/dist/services/rollback.d.ts.map +1 -0
- package/dist/services/rollback.js +270 -0
- package/dist/services/rollback.js.map +1 -0
- package/dist/services/scheduler.d.ts +80 -0
- package/dist/services/scheduler.d.ts.map +1 -0
- package/dist/services/scheduler.js +350 -0
- package/dist/services/scheduler.js.map +1 -0
- package/dist/services/secrets.d.ts +31 -0
- package/dist/services/secrets.d.ts.map +1 -0
- package/dist/services/secrets.js +206 -0
- package/dist/services/secrets.js.map +1 -0
- package/dist/services/settings-service.d.ts +132 -0
- package/dist/services/settings-service.d.ts.map +1 -0
- package/dist/services/settings-service.js +378 -0
- package/dist/services/settings-service.js.map +1 -0
- package/dist/services/solution-diff.d.ts +127 -0
- package/dist/services/solution-diff.d.ts.map +1 -0
- package/dist/services/solution-diff.js +260 -0
- package/dist/services/solution-diff.js.map +1 -0
- package/dist/services/solution-mode-detector.d.ts +35 -0
- package/dist/services/solution-mode-detector.d.ts.map +1 -0
- package/dist/services/solution-mode-detector.js +84 -0
- package/dist/services/solution-mode-detector.js.map +1 -0
- package/dist/services/tenant-resolver.d.ts +55 -0
- package/dist/services/tenant-resolver.d.ts.map +1 -0
- package/dist/services/tenant-resolver.js +126 -0
- package/dist/services/tenant-resolver.js.map +1 -0
- package/dist/services/unmanaged-customizations.d.ts +104 -0
- package/dist/services/unmanaged-customizations.d.ts.map +1 -0
- package/dist/services/unmanaged-customizations.js +521 -0
- package/dist/services/unmanaged-customizations.js.map +1 -0
- package/dist/services/url-templater.d.ts +184 -0
- package/dist/services/url-templater.d.ts.map +1 -0
- package/dist/services/url-templater.js +327 -0
- package/dist/services/url-templater.js.map +1 -0
- package/dist/services/version-checker.d.ts +108 -0
- package/dist/services/version-checker.d.ts.map +1 -0
- package/dist/services/version-checker.js +403 -0
- package/dist/services/version-checker.js.map +1 -0
- package/dist/services/waves.d.ts +90 -0
- package/dist/services/waves.d.ts.map +1 -0
- package/dist/services/waves.js +222 -0
- package/dist/services/waves.js.map +1 -0
- package/dist/services/webhook.d.ts +95 -0
- package/dist/services/webhook.d.ts.map +1 -0
- package/dist/services/webhook.js +244 -0
- package/dist/services/webhook.js.map +1 -0
- package/dist/utils/deployment-tools.d.ts +110 -0
- package/dist/utils/deployment-tools.d.ts.map +1 -0
- package/dist/utils/deployment-tools.js +121 -0
- package/dist/utils/deployment-tools.js.map +1 -0
- package/dist/utils/index.d.ts +17 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +18 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +49 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2024 Pax8, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { z } from "zod";
|
|
17
|
+
import type { PreconditionManifest } from "./types.js";
|
|
18
|
+
/**
|
|
19
|
+
* Zod schemas mirroring `./types.ts`. Used by the manifest loader to
|
|
20
|
+
* surface specific, actionable error messages (e.g.
|
|
21
|
+
* "preconditions[2].matcher.displayName is required") instead of TypeScript's
|
|
22
|
+
* silent "did you check the JSON?" failures.
|
|
23
|
+
*/
|
|
24
|
+
export declare const ComparisonOpSchema: z.ZodEnum<{
|
|
25
|
+
includes: "includes";
|
|
26
|
+
equals: "equals";
|
|
27
|
+
"not-equals": "not-equals";
|
|
28
|
+
"at-least": "at-least";
|
|
29
|
+
"subset-of": "subset-of";
|
|
30
|
+
}>;
|
|
31
|
+
export declare const PreconditionRequirementSchema: z.ZodObject<{
|
|
32
|
+
property: z.ZodString;
|
|
33
|
+
op: z.ZodEnum<{
|
|
34
|
+
includes: "includes";
|
|
35
|
+
equals: "equals";
|
|
36
|
+
"not-equals": "not-equals";
|
|
37
|
+
"at-least": "at-least";
|
|
38
|
+
"subset-of": "subset-of";
|
|
39
|
+
}>;
|
|
40
|
+
value: z.ZodUnknown;
|
|
41
|
+
}, z.core.$strip>;
|
|
42
|
+
export declare const RemediationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
43
|
+
kind: z.ZodLiteral<"link">;
|
|
44
|
+
title: z.ZodString;
|
|
45
|
+
urlTemplate: z.ZodString;
|
|
46
|
+
manualSteps: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
47
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
48
|
+
kind: z.ZodLiteral<"command">;
|
|
49
|
+
title: z.ZodString;
|
|
50
|
+
cmd: z.ZodString;
|
|
51
|
+
description: z.ZodString;
|
|
52
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
53
|
+
kind: z.ZodLiteral<"manual">;
|
|
54
|
+
title: z.ZodString;
|
|
55
|
+
steps: z.ZodArray<z.ZodString>;
|
|
56
|
+
}, z.core.$strip>], "kind">;
|
|
57
|
+
export declare const PreconditionSchema: z.ZodObject<{
|
|
58
|
+
id: z.ZodString;
|
|
59
|
+
description: z.ZodString;
|
|
60
|
+
resourceType: z.ZodString;
|
|
61
|
+
matcher: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
62
|
+
requirements: z.ZodArray<z.ZodObject<{
|
|
63
|
+
property: z.ZodString;
|
|
64
|
+
op: z.ZodEnum<{
|
|
65
|
+
includes: "includes";
|
|
66
|
+
equals: "equals";
|
|
67
|
+
"not-equals": "not-equals";
|
|
68
|
+
"at-least": "at-least";
|
|
69
|
+
"subset-of": "subset-of";
|
|
70
|
+
}>;
|
|
71
|
+
value: z.ZodUnknown;
|
|
72
|
+
}, z.core.$strip>>;
|
|
73
|
+
severity: z.ZodEnum<{
|
|
74
|
+
error: "error";
|
|
75
|
+
warning: "warning";
|
|
76
|
+
}>;
|
|
77
|
+
remediation: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
78
|
+
kind: z.ZodLiteral<"link">;
|
|
79
|
+
title: z.ZodString;
|
|
80
|
+
urlTemplate: z.ZodString;
|
|
81
|
+
manualSteps: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
82
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
83
|
+
kind: z.ZodLiteral<"command">;
|
|
84
|
+
title: z.ZodString;
|
|
85
|
+
cmd: z.ZodString;
|
|
86
|
+
description: z.ZodString;
|
|
87
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
88
|
+
kind: z.ZodLiteral<"manual">;
|
|
89
|
+
title: z.ZodString;
|
|
90
|
+
steps: z.ZodArray<z.ZodString>;
|
|
91
|
+
}, z.core.$strip>], "kind">;
|
|
92
|
+
}, z.core.$strip>;
|
|
93
|
+
export declare const PreconditionManifestSchema: z.ZodType<PreconditionManifest>;
|
|
94
|
+
/**
|
|
95
|
+
* Thrown when a manifest exists on disk but fails schema validation.
|
|
96
|
+
* Carries the path so callers can include it in the user-facing message.
|
|
97
|
+
*/
|
|
98
|
+
export declare class PreconditionManifestValidationError extends Error {
|
|
99
|
+
readonly path: string;
|
|
100
|
+
readonly issues: z.ZodIssue[];
|
|
101
|
+
constructor(path: string, issues: z.ZodIssue[]);
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/preconditions/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD;;;;;GAKG;AAEH,eAAO,MAAM,kBAAkB;;;;;;EAM7B,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;iBAMxC,CAAC;AAsBH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;2BAI5B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQ7B,CAAC;AAEH,eAAO,MAAM,0BAA0B,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAIlC,CAAC;AAEtC;;;GAGG;AACH,qBAAa,mCAAoC,SAAQ,KAAK;aAE1C,IAAI,EAAE,MAAM;aACZ,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;gBADpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAWvC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2024 Pax8, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { z } from "zod";
|
|
17
|
+
/**
|
|
18
|
+
* Zod schemas mirroring `./types.ts`. Used by the manifest loader to
|
|
19
|
+
* surface specific, actionable error messages (e.g.
|
|
20
|
+
* "preconditions[2].matcher.displayName is required") instead of TypeScript's
|
|
21
|
+
* silent "did you check the JSON?" failures.
|
|
22
|
+
*/
|
|
23
|
+
export const ComparisonOpSchema = z.enum([
|
|
24
|
+
"equals",
|
|
25
|
+
"not-equals",
|
|
26
|
+
"at-least",
|
|
27
|
+
"includes",
|
|
28
|
+
"subset-of",
|
|
29
|
+
]);
|
|
30
|
+
export const PreconditionRequirementSchema = z.object({
|
|
31
|
+
property: z.string().min(1, "property is required"),
|
|
32
|
+
op: ComparisonOpSchema,
|
|
33
|
+
// `unknown` here is intentional — Zod has no first-class "any JSON" type
|
|
34
|
+
// and the YAML loader hands us anything from primitives to nested objects.
|
|
35
|
+
value: z.unknown(),
|
|
36
|
+
});
|
|
37
|
+
const RemediationLinkSchema = z.object({
|
|
38
|
+
kind: z.literal("link"),
|
|
39
|
+
title: z.string().min(1),
|
|
40
|
+
urlTemplate: z.string().min(1, "urlTemplate is required for link remediation"),
|
|
41
|
+
manualSteps: z.array(z.string()).default([]),
|
|
42
|
+
});
|
|
43
|
+
const RemediationCommandSchema = z.object({
|
|
44
|
+
kind: z.literal("command"),
|
|
45
|
+
title: z.string().min(1),
|
|
46
|
+
cmd: z.string().min(1, "cmd is required for command remediation"),
|
|
47
|
+
description: z.string().min(1),
|
|
48
|
+
});
|
|
49
|
+
const RemediationManualSchema = z.object({
|
|
50
|
+
kind: z.literal("manual"),
|
|
51
|
+
title: z.string().min(1),
|
|
52
|
+
steps: z.array(z.string()).min(1, "manual remediation requires at least one step"),
|
|
53
|
+
});
|
|
54
|
+
export const RemediationSchema = z.discriminatedUnion("kind", [
|
|
55
|
+
RemediationLinkSchema,
|
|
56
|
+
RemediationCommandSchema,
|
|
57
|
+
RemediationManualSchema,
|
|
58
|
+
]);
|
|
59
|
+
export const PreconditionSchema = z.object({
|
|
60
|
+
id: z.string().min(1, "id is required"),
|
|
61
|
+
description: z.string().min(1, "description is required"),
|
|
62
|
+
resourceType: z.string().min(1, "resourceType is required"),
|
|
63
|
+
matcher: z.record(z.string(), z.string()),
|
|
64
|
+
requirements: z.array(PreconditionRequirementSchema).min(1, "at least one requirement required"),
|
|
65
|
+
severity: z.enum(["error", "warning"]),
|
|
66
|
+
remediation: RemediationSchema,
|
|
67
|
+
});
|
|
68
|
+
export const PreconditionManifestSchema = z.object({
|
|
69
|
+
solution: z.string().min(1, "solution is required"),
|
|
70
|
+
version: z.string().min(1, "version is required"),
|
|
71
|
+
preconditions: z.array(PreconditionSchema),
|
|
72
|
+
});
|
|
73
|
+
/**
|
|
74
|
+
* Thrown when a manifest exists on disk but fails schema validation.
|
|
75
|
+
* Carries the path so callers can include it in the user-facing message.
|
|
76
|
+
*/
|
|
77
|
+
export class PreconditionManifestValidationError extends Error {
|
|
78
|
+
path;
|
|
79
|
+
issues;
|
|
80
|
+
constructor(path, issues) {
|
|
81
|
+
const formatted = issues
|
|
82
|
+
.map((issue) => {
|
|
83
|
+
const where = issue.path.length === 0 ? "<root>" : issue.path.join(".");
|
|
84
|
+
return ` - ${where}: ${issue.message}`;
|
|
85
|
+
})
|
|
86
|
+
.join("\n");
|
|
87
|
+
super(`Invalid precondition manifest at ${path}:\n${formatted}`);
|
|
88
|
+
this.path = path;
|
|
89
|
+
this.issues = issues;
|
|
90
|
+
this.name = "PreconditionManifestValidationError";
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/preconditions/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2024 Pax8, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Preflight (precondition) types — Phase 1.
|
|
18
|
+
*
|
|
19
|
+
* The preflight feature surfaces tenant-config requirements that must be
|
|
20
|
+
* satisfied before a solution can deploy. Phase 1 reads these from a sibling
|
|
21
|
+
* YAML manifest and matches them against synthetic per-tenant state on
|
|
22
|
+
* `DEMO_TENANTS`. Phase 2 will replace the synthetic resolver with real
|
|
23
|
+
* Microsoft Graph TCM calls; the diff engine and types stay the same.
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* Comparison operators supported in a precondition requirement.
|
|
27
|
+
*
|
|
28
|
+
* - `equals` / `not-equals` — strict deep equality.
|
|
29
|
+
* - `at-least` — booleans (true >= true|false), numbers (>= required), arrays
|
|
30
|
+
* (current ⊇ required, i.e. current is a superset of required).
|
|
31
|
+
* - `includes` — current is an array containing the required value.
|
|
32
|
+
* - `subset-of` — current is an array, every element appears in required.
|
|
33
|
+
*/
|
|
34
|
+
export type ComparisonOp = "equals" | "not-equals" | "at-least" | "includes" | "subset-of";
|
|
35
|
+
/**
|
|
36
|
+
* A single property check on a matched resource.
|
|
37
|
+
* `property` is a dot-path within the resource's `currentProperties`.
|
|
38
|
+
*/
|
|
39
|
+
export interface PreconditionRequirement {
|
|
40
|
+
property: string;
|
|
41
|
+
op: ComparisonOp;
|
|
42
|
+
value: unknown;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Structured remediation. Three kinds, mutually exclusive:
|
|
46
|
+
* - `link` — open a deep link to fix in a portal.
|
|
47
|
+
* - `command` — runnable CLI command the user can fire from pax8-cta.
|
|
48
|
+
* - `manual` — list of instructions when no automation exists.
|
|
49
|
+
*
|
|
50
|
+
* `urlTemplate` and any string in `manualSteps` / `cmd` may include `{tenantId}`
|
|
51
|
+
* `{tenantName}` `{resourceId}` `{resourceDisplayName}` placeholders, which the
|
|
52
|
+
* CLI substitutes at render time.
|
|
53
|
+
*/
|
|
54
|
+
export type Remediation = {
|
|
55
|
+
kind: "link";
|
|
56
|
+
title: string;
|
|
57
|
+
urlTemplate: string;
|
|
58
|
+
manualSteps: string[];
|
|
59
|
+
} | {
|
|
60
|
+
kind: "command";
|
|
61
|
+
title: string;
|
|
62
|
+
cmd: string;
|
|
63
|
+
description: string;
|
|
64
|
+
} | {
|
|
65
|
+
kind: "manual";
|
|
66
|
+
title: string;
|
|
67
|
+
steps: string[];
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* One precondition. A resource must match `matcher` (e.g. by `displayName`)
|
|
71
|
+
* and then every entry in `requirements` must hold.
|
|
72
|
+
*/
|
|
73
|
+
export interface Precondition {
|
|
74
|
+
id: string;
|
|
75
|
+
description: string;
|
|
76
|
+
resourceType: string;
|
|
77
|
+
matcher: Record<string, string>;
|
|
78
|
+
requirements: PreconditionRequirement[];
|
|
79
|
+
/** `error` blocks deploy; `warning` is informational. */
|
|
80
|
+
severity: "error" | "warning";
|
|
81
|
+
remediation: Remediation;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* The on-disk manifest format. Lives next to the solution `.zip` as
|
|
85
|
+
* `<solution>.preconditions.yaml`.
|
|
86
|
+
*/
|
|
87
|
+
export interface PreconditionManifest {
|
|
88
|
+
solution: string;
|
|
89
|
+
version: string;
|
|
90
|
+
preconditions: Precondition[];
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* One materialized "this requirement failed" record. Built by the diff
|
|
94
|
+
* engine; rendered by the CLI; flattened into the analyze envelope under
|
|
95
|
+
* `preconditions.failures`.
|
|
96
|
+
*/
|
|
97
|
+
export interface PreconditionFailure {
|
|
98
|
+
tenantId: string;
|
|
99
|
+
tenantName: string;
|
|
100
|
+
preconditionId: string;
|
|
101
|
+
description: string;
|
|
102
|
+
resourceType: string;
|
|
103
|
+
resourceDisplayName: string;
|
|
104
|
+
/**
|
|
105
|
+
* Resource id pulled from `currentProperties.id` when the resolver returned
|
|
106
|
+
* a state object with one. Empty string when unknown (e.g. the resource
|
|
107
|
+
* was missing from this tenant). Used to fill `{resourceId}` placeholders
|
|
108
|
+
* in remediation templates.
|
|
109
|
+
*/
|
|
110
|
+
resourceId: string;
|
|
111
|
+
failedProperty: string;
|
|
112
|
+
currentValue: unknown;
|
|
113
|
+
requiredValue: unknown;
|
|
114
|
+
comparisonOp: ComparisonOp;
|
|
115
|
+
severity: "error" | "warning";
|
|
116
|
+
remediation: Remediation;
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/preconditions/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;;GAQG;AAEH;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;AAE3F;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,GAC3E;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACpE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,YAAY,EAAE,uBAAuB,EAAE,CAAC;IACxC,yDAAyD;IACzD,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC;CAC1B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2024 Pax8, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/preconditions/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2024 Pax8, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
export * from "./memory-queue.js";
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/queue/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2024 Pax8, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
export * from "./memory-queue.js";
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/queue/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
export type JobStatus = "pending" | "active" | "completed" | "failed";
|
|
2
|
+
export interface MemoryJob<T = unknown, R = unknown> {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
data: T;
|
|
6
|
+
status: JobStatus;
|
|
7
|
+
progress: number;
|
|
8
|
+
result?: R;
|
|
9
|
+
error?: string;
|
|
10
|
+
createdAt: Date;
|
|
11
|
+
startedAt?: Date;
|
|
12
|
+
completedAt?: Date;
|
|
13
|
+
attempts: number;
|
|
14
|
+
maxAttempts: number;
|
|
15
|
+
}
|
|
16
|
+
export type JobProcessor<T, R> = (job: MemoryJob<T, R>) => Promise<R>;
|
|
17
|
+
export interface MemoryQueueOptions {
|
|
18
|
+
concurrency?: number;
|
|
19
|
+
maxRetries?: number;
|
|
20
|
+
retryDelay?: number;
|
|
21
|
+
}
|
|
22
|
+
export declare class MemoryQueue<T = unknown, R = unknown> {
|
|
23
|
+
readonly name: string;
|
|
24
|
+
private jobs;
|
|
25
|
+
private queue;
|
|
26
|
+
private processing;
|
|
27
|
+
private processor?;
|
|
28
|
+
private concurrency;
|
|
29
|
+
private maxRetries;
|
|
30
|
+
private retryDelay;
|
|
31
|
+
private isRunning;
|
|
32
|
+
private eventListeners;
|
|
33
|
+
constructor(name: string, options?: MemoryQueueOptions);
|
|
34
|
+
/**
|
|
35
|
+
* Add a job to the queue
|
|
36
|
+
*/
|
|
37
|
+
add(name: string, data: T): Promise<MemoryJob<T, R>>;
|
|
38
|
+
/**
|
|
39
|
+
* Add multiple jobs at once
|
|
40
|
+
*/
|
|
41
|
+
addBulk(jobs: {
|
|
42
|
+
name: string;
|
|
43
|
+
data: T;
|
|
44
|
+
}[]): Promise<MemoryJob<T, R>[]>;
|
|
45
|
+
/**
|
|
46
|
+
* Set the job processor
|
|
47
|
+
*/
|
|
48
|
+
process(processor: JobProcessor<T, R>): void;
|
|
49
|
+
/**
|
|
50
|
+
* Get a job by ID
|
|
51
|
+
*/
|
|
52
|
+
getJob(id: string): MemoryJob<T, R> | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* Get all jobs with optional status filter
|
|
55
|
+
*/
|
|
56
|
+
getJobs(status?: JobStatus): MemoryJob<T, R>[];
|
|
57
|
+
/**
|
|
58
|
+
* Get queue counts
|
|
59
|
+
*/
|
|
60
|
+
getCounts(): {
|
|
61
|
+
pending: number;
|
|
62
|
+
active: number;
|
|
63
|
+
completed: number;
|
|
64
|
+
failed: number;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Update job progress
|
|
68
|
+
*/
|
|
69
|
+
updateProgress(jobId: string, progress: number): void;
|
|
70
|
+
/**
|
|
71
|
+
* Listen to queue events
|
|
72
|
+
*/
|
|
73
|
+
on(event: "waiting" | "active" | "completed" | "failed" | "progress", listener: (job: MemoryJob<T, R>, result?: R, error?: Error) => void): void;
|
|
74
|
+
private emit;
|
|
75
|
+
/**
|
|
76
|
+
* Stop processing
|
|
77
|
+
*/
|
|
78
|
+
close(): void;
|
|
79
|
+
/**
|
|
80
|
+
* Clear all jobs
|
|
81
|
+
*/
|
|
82
|
+
clear(): void;
|
|
83
|
+
private processNext;
|
|
84
|
+
}
|
|
85
|
+
export declare function getMemoryQueue<T = unknown, R = unknown>(name?: string, options?: MemoryQueueOptions): MemoryQueue<T, R>;
|
|
86
|
+
//# sourceMappingURL=memory-queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-queue.d.ts","sourceRoot":"","sources":["../../src/queue/memory-queue.ts"],"names":[],"mappings":"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"}
|