pax8-cta 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 +200 -0
- package/README.md +659 -0
- package/demo-data/solutions/ProductQADemo_1_0_0_2_managed.zip +0 -0
- package/dist/commands/analyze.d.ts +28 -0
- package/dist/commands/analyze.d.ts.map +1 -0
- package/dist/commands/analyze.js +571 -0
- package/dist/commands/analyze.js.map +1 -0
- package/dist/commands/auth.d.ts +18 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +171 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/config.d.ts +34 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +299 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/demo.d.ts +33 -0
- package/dist/commands/demo.d.ts.map +1 -0
- package/dist/commands/demo.js +362 -0
- package/dist/commands/demo.js.map +1 -0
- package/dist/commands/deploy.d.ts +18 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +1186 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/deployments/helpers.d.ts +68 -0
- package/dist/commands/deployments/helpers.d.ts.map +1 -0
- package/dist/commands/deployments/helpers.js +414 -0
- package/dist/commands/deployments/helpers.js.map +1 -0
- package/dist/commands/deployments/index.d.ts +24 -0
- package/dist/commands/deployments/index.d.ts.map +1 -0
- package/dist/commands/deployments/index.js +47 -0
- package/dist/commands/deployments/index.js.map +1 -0
- package/dist/commands/deployments/list.d.ts +18 -0
- package/dist/commands/deployments/list.d.ts.map +1 -0
- package/dist/commands/deployments/list.js +97 -0
- package/dist/commands/deployments/list.js.map +1 -0
- package/dist/commands/deployments/show.d.ts +18 -0
- package/dist/commands/deployments/show.d.ts.map +1 -0
- package/dist/commands/deployments/show.js +81 -0
- package/dist/commands/deployments/show.js.map +1 -0
- package/dist/commands/deployments/undo.d.ts +18 -0
- package/dist/commands/deployments/undo.d.ts.map +1 -0
- package/dist/commands/deployments/undo.js +295 -0
- package/dist/commands/deployments/undo.js.map +1 -0
- package/dist/commands/export.d.ts +18 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +133 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/import.d.ts +18 -0
- package/dist/commands/import.d.ts.map +1 -0
- package/dist/commands/import.js +129 -0
- package/dist/commands/import.js.map +1 -0
- package/dist/commands/init-config.d.ts +26 -0
- package/dist/commands/init-config.d.ts.map +1 -0
- package/dist/commands/init-config.js +123 -0
- package/dist/commands/init-config.js.map +1 -0
- package/dist/commands/init-validation.d.ts +47 -0
- package/dist/commands/init-validation.d.ts.map +1 -0
- package/dist/commands/init-validation.js +339 -0
- package/dist/commands/init-validation.js.map +1 -0
- package/dist/commands/init-wizard.d.ts +25 -0
- package/dist/commands/init-wizard.d.ts.map +1 -0
- package/dist/commands/init-wizard.js +433 -0
- package/dist/commands/init-wizard.js.map +1 -0
- package/dist/commands/init.d.ts +18 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +46 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/resolve-url.d.ts +18 -0
- package/dist/commands/resolve-url.d.ts.map +1 -0
- package/dist/commands/resolve-url.js +126 -0
- package/dist/commands/resolve-url.js.map +1 -0
- package/dist/commands/setup.d.ts +18 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +239 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/solutions/drift-analysis.d.ts +73 -0
- package/dist/commands/solutions/drift-analysis.d.ts.map +1 -0
- package/dist/commands/solutions/drift-analysis.js +416 -0
- package/dist/commands/solutions/drift-analysis.js.map +1 -0
- package/dist/commands/solutions/drift.d.ts +32 -0
- package/dist/commands/solutions/drift.d.ts.map +1 -0
- package/dist/commands/solutions/drift.js +641 -0
- package/dist/commands/solutions/drift.js.map +1 -0
- package/dist/commands/solutions/fix-planner.d.ts +48 -0
- package/dist/commands/solutions/fix-planner.d.ts.map +1 -0
- package/dist/commands/solutions/fix-planner.js +43 -0
- package/dist/commands/solutions/fix-planner.js.map +1 -0
- package/dist/commands/solutions/helpers.d.ts +35 -0
- package/dist/commands/solutions/helpers.d.ts.map +1 -0
- package/dist/commands/solutions/helpers.js +54 -0
- package/dist/commands/solutions/helpers.js.map +1 -0
- package/dist/commands/solutions/index.d.ts +18 -0
- package/dist/commands/solutions/index.d.ts.map +1 -0
- package/dist/commands/solutions/index.js +30 -0
- package/dist/commands/solutions/index.js.map +1 -0
- package/dist/commands/solutions/list.d.ts +18 -0
- package/dist/commands/solutions/list.d.ts.map +1 -0
- package/dist/commands/solutions/list.js +174 -0
- package/dist/commands/solutions/list.js.map +1 -0
- package/dist/commands/solutions/remove.d.ts +18 -0
- package/dist/commands/solutions/remove.d.ts.map +1 -0
- package/dist/commands/solutions/remove.js +137 -0
- package/dist/commands/solutions/remove.js.map +1 -0
- package/dist/commands/solutions/risk-calculator.d.ts +33 -0
- package/dist/commands/solutions/risk-calculator.d.ts.map +1 -0
- package/dist/commands/solutions/risk-calculator.js +79 -0
- package/dist/commands/solutions/risk-calculator.js.map +1 -0
- package/dist/commands/solutions/show.d.ts +18 -0
- package/dist/commands/solutions/show.d.ts.map +1 -0
- package/dist/commands/solutions/show.js +165 -0
- package/dist/commands/solutions/show.js.map +1 -0
- package/dist/commands/status.d.ts +18 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +573 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/telemetry.d.ts +18 -0
- package/dist/commands/telemetry.d.ts.map +1 -0
- package/dist/commands/telemetry.js +85 -0
- package/dist/commands/telemetry.js.map +1 -0
- package/dist/commands/tenants/health.d.ts +18 -0
- package/dist/commands/tenants/health.d.ts.map +1 -0
- package/dist/commands/tenants/health.js +172 -0
- package/dist/commands/tenants/health.js.map +1 -0
- package/dist/commands/tenants/helpers.d.ts +44 -0
- package/dist/commands/tenants/helpers.d.ts.map +1 -0
- package/dist/commands/tenants/helpers.js +72 -0
- package/dist/commands/tenants/helpers.js.map +1 -0
- package/dist/commands/tenants/index.d.ts +19 -0
- package/dist/commands/tenants/index.d.ts.map +1 -0
- package/dist/commands/tenants/index.js +39 -0
- package/dist/commands/tenants/index.js.map +1 -0
- package/dist/commands/tenants/inspect.d.ts +18 -0
- package/dist/commands/tenants/inspect.d.ts.map +1 -0
- package/dist/commands/tenants/inspect.js +176 -0
- package/dist/commands/tenants/inspect.js.map +1 -0
- package/dist/commands/tenants/list.d.ts +18 -0
- package/dist/commands/tenants/list.d.ts.map +1 -0
- package/dist/commands/tenants/list.js +144 -0
- package/dist/commands/tenants/list.js.map +1 -0
- package/dist/commands/tenants/manage.d.ts +20 -0
- package/dist/commands/tenants/manage.d.ts.map +1 -0
- package/dist/commands/tenants/manage.js +206 -0
- package/dist/commands/tenants/manage.js.map +1 -0
- package/dist/commands/tenants/show.d.ts +18 -0
- package/dist/commands/tenants/show.d.ts.map +1 -0
- package/dist/commands/tenants/show.js +191 -0
- package/dist/commands/tenants/show.js.map +1 -0
- package/dist/commands/validate.d.ts +18 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +536 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +258 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/auth.d.ts +51 -0
- package/dist/lib/auth.d.ts.map +1 -0
- package/dist/lib/auth.js +153 -0
- package/dist/lib/auth.js.map +1 -0
- package/dist/lib/banner.d.ts +19 -0
- package/dist/lib/banner.d.ts.map +1 -0
- package/dist/lib/banner.js +78 -0
- package/dist/lib/banner.js.map +1 -0
- package/dist/lib/command-wrapper.d.ts +56 -0
- package/dist/lib/command-wrapper.d.ts.map +1 -0
- package/dist/lib/command-wrapper.js +71 -0
- package/dist/lib/command-wrapper.js.map +1 -0
- package/dist/lib/credentials.d.ts +56 -0
- package/dist/lib/credentials.d.ts.map +1 -0
- package/dist/lib/credentials.js +146 -0
- package/dist/lib/credentials.js.map +1 -0
- package/dist/lib/demo-banner.d.ts +15 -0
- package/dist/lib/demo-banner.d.ts.map +1 -0
- package/dist/lib/demo-banner.js +33 -0
- package/dist/lib/demo-banner.js.map +1 -0
- package/dist/lib/error-handler.d.ts +51 -0
- package/dist/lib/error-handler.d.ts.map +1 -0
- package/dist/lib/error-handler.js +458 -0
- package/dist/lib/error-handler.js.map +1 -0
- package/dist/lib/errors.d.ts +61 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +168 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/formatters.d.ts +55 -0
- package/dist/lib/formatters.d.ts.map +1 -0
- package/dist/lib/formatters.js +163 -0
- package/dist/lib/formatters.js.map +1 -0
- package/dist/lib/graph-client.d.ts +74 -0
- package/dist/lib/graph-client.d.ts.map +1 -0
- package/dist/lib/graph-client.js +231 -0
- package/dist/lib/graph-client.js.map +1 -0
- package/dist/lib/input.d.ts +22 -0
- package/dist/lib/input.d.ts.map +1 -0
- package/dist/lib/input.js +120 -0
- package/dist/lib/input.js.map +1 -0
- package/dist/lib/interactive-wizard.d.ts +26 -0
- package/dist/lib/interactive-wizard.d.ts.map +1 -0
- package/dist/lib/interactive-wizard.js +550 -0
- package/dist/lib/interactive-wizard.js.map +1 -0
- package/dist/lib/oss-surface.d.ts +21 -0
- package/dist/lib/oss-surface.d.ts.map +1 -0
- package/dist/lib/oss-surface.js +29 -0
- package/dist/lib/oss-surface.js.map +1 -0
- package/dist/lib/output.d.ts +74 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +156 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/picker.d.ts +75 -0
- package/dist/lib/picker.d.ts.map +1 -0
- package/dist/lib/picker.js +115 -0
- package/dist/lib/picker.js.map +1 -0
- package/dist/lib/repl.d.ts +19 -0
- package/dist/lib/repl.d.ts.map +1 -0
- package/dist/lib/repl.js +158 -0
- package/dist/lib/repl.js.map +1 -0
- package/dist/lib/spinner.d.ts +41 -0
- package/dist/lib/spinner.d.ts.map +1 -0
- package/dist/lib/spinner.js +126 -0
- package/dist/lib/spinner.js.map +1 -0
- package/dist/lib/telemetry.d.ts +96 -0
- package/dist/lib/telemetry.d.ts.map +1 -0
- package/dist/lib/telemetry.js +367 -0
- package/dist/lib/telemetry.js.map +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1,339 @@
|
|
|
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 chalk from "chalk";
|
|
17
|
+
/**
|
|
18
|
+
* Show a live summary of the user's environment after init completes.
|
|
19
|
+
* Queries source for solutions, checks tenant health, and shows drift status.
|
|
20
|
+
*/
|
|
21
|
+
export async function showEnvironmentSummary(partnerTenantId, partnerClientId, clientSecret, sourceEnvironmentUrl, tenants) {
|
|
22
|
+
console.log(chalk.cyan.bold("━".repeat(60)));
|
|
23
|
+
console.log(chalk.cyan.bold(" Your Environment"));
|
|
24
|
+
console.log(chalk.cyan.bold("━".repeat(60)));
|
|
25
|
+
console.log();
|
|
26
|
+
try {
|
|
27
|
+
const { TokenManager, DataverseClient, VersionChecker, DriftAnalyzer } = await import("@pax8-cta/core");
|
|
28
|
+
// Query source environment for solutions
|
|
29
|
+
if (sourceEnvironmentUrl) {
|
|
30
|
+
try {
|
|
31
|
+
const sourceTokenManager = new TokenManager({
|
|
32
|
+
tenantId: partnerTenantId,
|
|
33
|
+
clientId: partnerClientId,
|
|
34
|
+
clientSecret,
|
|
35
|
+
});
|
|
36
|
+
const sourceClient = new DataverseClient({
|
|
37
|
+
environmentUrl: sourceEnvironmentUrl,
|
|
38
|
+
tokenManager: sourceTokenManager,
|
|
39
|
+
clientId: partnerClientId,
|
|
40
|
+
});
|
|
41
|
+
const solutions = await sourceClient.querySolutions();
|
|
42
|
+
const customSolutions = solutions.filter((s) => s.uniquename !== "Default" &&
|
|
43
|
+
s.uniquename !== "Active" &&
|
|
44
|
+
!s.uniquename.startsWith("msdyn_") &&
|
|
45
|
+
!s.uniquename.startsWith("msft_") &&
|
|
46
|
+
!s.uniquename.startsWith("mspcat_"));
|
|
47
|
+
console.log(chalk.white(" Source Environment"));
|
|
48
|
+
console.log(chalk.gray(` ${sourceEnvironmentUrl}`));
|
|
49
|
+
console.log(chalk.green(` ✓ ${customSolutions.length} deployable solution(s) found`));
|
|
50
|
+
if (customSolutions.length > 0) {
|
|
51
|
+
for (const sol of customSolutions.slice(0, 5)) {
|
|
52
|
+
console.log(chalk.gray(` • ${sol.friendlyname} v${sol.version}`));
|
|
53
|
+
}
|
|
54
|
+
if (customSolutions.length > 5) {
|
|
55
|
+
console.log(chalk.gray(` ... and ${customSolutions.length - 5} more`));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
console.log();
|
|
59
|
+
// Check tenant health and drift if we have tenants
|
|
60
|
+
if (tenants.length > 0) {
|
|
61
|
+
console.log(chalk.white(` Target Tenants (${tenants.length})`));
|
|
62
|
+
const checker = new VersionChecker();
|
|
63
|
+
const analyzer = new DriftAnalyzer();
|
|
64
|
+
const expectedSolutions = customSolutions.map((s) => ({
|
|
65
|
+
uniqueName: s.uniquename,
|
|
66
|
+
friendlyName: s.friendlyname,
|
|
67
|
+
version: s.version,
|
|
68
|
+
}));
|
|
69
|
+
for (const tenant of tenants) {
|
|
70
|
+
try {
|
|
71
|
+
const tm = new TokenManager({
|
|
72
|
+
tenantId: tenant.tenantId,
|
|
73
|
+
clientId: partnerClientId,
|
|
74
|
+
clientSecret,
|
|
75
|
+
});
|
|
76
|
+
const tenantConfig = {
|
|
77
|
+
name: tenant.name,
|
|
78
|
+
tenantId: tenant.tenantId,
|
|
79
|
+
environmentUrl: tenant.environmentUrl,
|
|
80
|
+
tags: [],
|
|
81
|
+
enabled: true,
|
|
82
|
+
autoSetup: true,
|
|
83
|
+
};
|
|
84
|
+
const versionStatus = await checker.checkTenantVersions(tenantConfig, expectedSolutions, tm, true);
|
|
85
|
+
const analysis = analyzer.analyzeTenant(tenantConfig, versionStatus);
|
|
86
|
+
const statusIcon = versionStatus.overallStatus === "current"
|
|
87
|
+
? chalk.green("✓")
|
|
88
|
+
: versionStatus.overallStatus === "outdated"
|
|
89
|
+
? chalk.yellow("⚠")
|
|
90
|
+
: chalk.gray("?");
|
|
91
|
+
const outdatedCount = versionStatus.solutions.filter((s) => s.status === "outdated").length;
|
|
92
|
+
const driftInfo = outdatedCount > 0
|
|
93
|
+
? chalk.yellow(` (${outdatedCount} outdated)`)
|
|
94
|
+
: chalk.green(" (all current)");
|
|
95
|
+
console.log(` ${statusIcon} ${tenant.name}${driftInfo}`);
|
|
96
|
+
if (analysis.riskScore > 0) {
|
|
97
|
+
const riskColor = analysis.riskLevel === "high" ? chalk.red : chalk.yellow;
|
|
98
|
+
console.log(chalk.gray(` Risk: `) +
|
|
99
|
+
riskColor(`${analysis.riskScore}/100 ${analysis.riskLevel}`));
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
console.log(` ${chalk.red("✖")} ${tenant.name} ${chalk.gray("(connection failed)")}`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
console.log();
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
catch (sourceError) {
|
|
110
|
+
console.log(chalk.yellow(" ⚠ Could not query source environment"));
|
|
111
|
+
console.log(chalk.gray(` ${sourceError instanceof Error ? sourceError.message.slice(0, 60) : "Unknown error"}`));
|
|
112
|
+
console.log();
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
// Show quick start commands
|
|
116
|
+
console.log(chalk.white(" Quick Start"));
|
|
117
|
+
console.log(chalk.gray(" ─".repeat(28)));
|
|
118
|
+
if (tenants.length > 0) {
|
|
119
|
+
console.log(chalk.gray(" solutions list ") + chalk.dim("# See your solutions"));
|
|
120
|
+
console.log(chalk.gray(" solutions drift --risk") + chalk.dim("# Check drift & risk"));
|
|
121
|
+
console.log(chalk.gray(" deploy <name> --all ") + chalk.dim("# Deploy to all tenants"));
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
console.log(chalk.gray(" solutions list ") + chalk.dim("# See your solutions"));
|
|
125
|
+
console.log(chalk.gray(" validate ") + chalk.dim("# Verify configuration"));
|
|
126
|
+
}
|
|
127
|
+
console.log();
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
// If anything fails, just show static next steps
|
|
131
|
+
console.log(chalk.cyan("Next steps:"));
|
|
132
|
+
console.log(chalk.gray(" validate ") + chalk.dim("# Verify configuration"));
|
|
133
|
+
console.log(chalk.gray(" solutions list ") + chalk.dim("# See your solutions"));
|
|
134
|
+
console.log();
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Test credentials and optionally discover GDAP relationships
|
|
139
|
+
*/
|
|
140
|
+
export async function testCredentialsAndGdap(partnerTenantId, partnerClientId, clientSecret, configuredTenants) {
|
|
141
|
+
console.log();
|
|
142
|
+
// Try to get a token to verify credentials work
|
|
143
|
+
console.log(chalk.cyan(" Testing credentials..."));
|
|
144
|
+
try {
|
|
145
|
+
const { TokenManager } = await import("@pax8-cta/core");
|
|
146
|
+
const tokenManager = new TokenManager({
|
|
147
|
+
tenantId: partnerTenantId,
|
|
148
|
+
clientId: partnerClientId,
|
|
149
|
+
clientSecret,
|
|
150
|
+
});
|
|
151
|
+
// Test getting a Graph token
|
|
152
|
+
await tokenManager.getGraphToken();
|
|
153
|
+
console.log(chalk.green(" ✓ Credentials valid - authentication successful"));
|
|
154
|
+
// Try to discover GDAP relationships
|
|
155
|
+
console.log(chalk.cyan(" Checking GDAP relationships..."));
|
|
156
|
+
try {
|
|
157
|
+
const { GdapClient } = await import("@pax8-cta/core");
|
|
158
|
+
const gdapClient = new GdapClient({
|
|
159
|
+
tenantId: partnerTenantId,
|
|
160
|
+
clientId: partnerClientId,
|
|
161
|
+
clientSecret,
|
|
162
|
+
});
|
|
163
|
+
const relationships = await gdapClient.listDelegatedAdminRelationships();
|
|
164
|
+
if (relationships.length === 0) {
|
|
165
|
+
console.log(chalk.yellow(" ⚠ No active GDAP relationships found"));
|
|
166
|
+
console.log(chalk.gray(" You may need to set up GDAP relationships with your customers."));
|
|
167
|
+
console.log(chalk.gray(" See: https://learn.microsoft.com/en-us/partner-center/gdap-introduction"));
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
console.log(chalk.green(` ✓ Found ${relationships.length} active GDAP relationship(s)`));
|
|
171
|
+
console.log();
|
|
172
|
+
// Show discovered tenants
|
|
173
|
+
console.log(chalk.cyan(" Your GDAP customers:"));
|
|
174
|
+
for (const rel of relationships) {
|
|
175
|
+
const isConfigured = configuredTenants.some((t) => t.tenantId === rel.customer.tenantId);
|
|
176
|
+
const status = isConfigured ? chalk.green("✓ configured") : chalk.yellow("not in config");
|
|
177
|
+
console.log(chalk.white(` • ${rel.customer.displayName}`) + chalk.gray(` (${status})`));
|
|
178
|
+
}
|
|
179
|
+
// Count unconfigured
|
|
180
|
+
const unconfigured = relationships.filter((rel) => !configuredTenants.some((t) => t.tenantId === rel.customer.tenantId));
|
|
181
|
+
if (unconfigured.length > 0) {
|
|
182
|
+
console.log();
|
|
183
|
+
console.log(chalk.yellow(` ${unconfigured.length} customer(s) not yet in your config. Re-run 'init' to add them.`));
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
catch (gdapError) {
|
|
188
|
+
// GDAP discovery failed - might not have Graph permissions
|
|
189
|
+
console.log(chalk.yellow(" ⚠ Could not check GDAP relationships"));
|
|
190
|
+
const errMsg = gdapError instanceof Error ? gdapError.message : String(gdapError);
|
|
191
|
+
if (errMsg.includes("403") || errMsg.includes("Authorization")) {
|
|
192
|
+
console.log(chalk.gray(" Your app may need Directory.Read.All or similar permissions for GDAP discovery."));
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
console.log(chalk.gray(` ${errMsg.slice(0, 80)}`));
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
// Test connectivity to configured tenants
|
|
199
|
+
if (configuredTenants.length > 0) {
|
|
200
|
+
console.log();
|
|
201
|
+
console.log(chalk.cyan("Testing tenant connectivity..."));
|
|
202
|
+
for (const tenant of configuredTenants) {
|
|
203
|
+
console.log(chalk.cyan(` Testing ${tenant.name}...`));
|
|
204
|
+
try {
|
|
205
|
+
const tenantTokenManager = new TokenManager({
|
|
206
|
+
tenantId: tenant.tenantId,
|
|
207
|
+
clientId: partnerClientId,
|
|
208
|
+
clientSecret,
|
|
209
|
+
});
|
|
210
|
+
const { DataverseClient } = await import("@pax8-cta/core");
|
|
211
|
+
const client = new DataverseClient({
|
|
212
|
+
environmentUrl: tenant.environmentUrl,
|
|
213
|
+
tokenManager: tenantTokenManager,
|
|
214
|
+
});
|
|
215
|
+
// Try to query to verify connectivity
|
|
216
|
+
await client.get("/WhoAmI");
|
|
217
|
+
console.log(chalk.green(` ✓ ${tenant.name}: Connected`));
|
|
218
|
+
}
|
|
219
|
+
catch (tenantError) {
|
|
220
|
+
const errMsg = tenantError instanceof Error ? tenantError.message : String(tenantError);
|
|
221
|
+
if (errMsg.includes("not a member") || errMsg.includes("AADSTS50020")) {
|
|
222
|
+
console.log(chalk.red(` ✖ ${tenant.name}: App user not registered`));
|
|
223
|
+
console.log(chalk.gray(` Run: setup --tenant "${tenant.name}"`));
|
|
224
|
+
}
|
|
225
|
+
else if (errMsg.includes("403") || errMsg.includes("privilege")) {
|
|
226
|
+
console.log(chalk.red(` ✖ ${tenant.name}: Missing permissions`));
|
|
227
|
+
console.log(chalk.gray(" App user needs System Administrator role"));
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
console.log(chalk.red(` ✖ ${tenant.name}: Connection failed`));
|
|
231
|
+
console.log(chalk.gray(` ${errMsg.slice(0, 60)}`));
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
catch (error) {
|
|
238
|
+
const errMsg = error instanceof Error ? error.message : String(error);
|
|
239
|
+
console.log(chalk.red(" ✖ Credential test failed"));
|
|
240
|
+
if (errMsg.includes("AADSTS7000215") || errMsg.includes("Invalid client secret")) {
|
|
241
|
+
console.log(chalk.red(" Invalid client secret"));
|
|
242
|
+
console.log(chalk.gray(" Make sure you copied the secret Value, not the Secret ID"));
|
|
243
|
+
}
|
|
244
|
+
else if (errMsg.includes("AADSTS700016")) {
|
|
245
|
+
console.log(chalk.red(" Application not found"));
|
|
246
|
+
console.log(chalk.gray(" Verify the Client ID is correct"));
|
|
247
|
+
}
|
|
248
|
+
else if (errMsg.includes("AADSTS90002")) {
|
|
249
|
+
console.log(chalk.red(" Tenant not found"));
|
|
250
|
+
console.log(chalk.gray(" Verify the Tenant ID is correct"));
|
|
251
|
+
}
|
|
252
|
+
else {
|
|
253
|
+
console.log(chalk.red(` ${errMsg.slice(0, 80)}`));
|
|
254
|
+
}
|
|
255
|
+
console.log();
|
|
256
|
+
console.log(chalk.yellow("You can fix these issues and run 'validate' later."));
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Discover customer tenants via GDAP and their Power Platform environments
|
|
261
|
+
*/
|
|
262
|
+
export async function discoverGdapTenantsWithEnvironments(partnerTenantId, partnerClientId, clientSecret) {
|
|
263
|
+
console.log(chalk.cyan(" Discovering GDAP customers..."));
|
|
264
|
+
try {
|
|
265
|
+
const { GdapClient, TokenManager, PowerPlatformAdminClient } = await import("@pax8-cta/core");
|
|
266
|
+
const gdapClient = new GdapClient({
|
|
267
|
+
tenantId: partnerTenantId,
|
|
268
|
+
clientId: partnerClientId,
|
|
269
|
+
clientSecret,
|
|
270
|
+
});
|
|
271
|
+
const relationships = await gdapClient.listDelegatedAdminRelationships();
|
|
272
|
+
if (relationships.length === 0) {
|
|
273
|
+
console.log(chalk.yellow(" ⚠ No active GDAP relationships found"));
|
|
274
|
+
console.log(chalk.gray(" You can add tenants manually or set up GDAP relationships later."));
|
|
275
|
+
return [];
|
|
276
|
+
}
|
|
277
|
+
console.log(chalk.green(` ✓ Found ${relationships.length} GDAP customer(s)`));
|
|
278
|
+
// Now discover environments for each tenant
|
|
279
|
+
const results = [];
|
|
280
|
+
for (const rel of relationships) {
|
|
281
|
+
console.log(chalk.cyan(` Discovering environments for ${rel.customer.displayName}...`));
|
|
282
|
+
try {
|
|
283
|
+
// Create token manager for the customer tenant (using GDAP delegation)
|
|
284
|
+
const customerTokenManager = new TokenManager({
|
|
285
|
+
tenantId: rel.customer.tenantId,
|
|
286
|
+
clientId: partnerClientId,
|
|
287
|
+
clientSecret,
|
|
288
|
+
});
|
|
289
|
+
const adminClient = new PowerPlatformAdminClient({
|
|
290
|
+
tokenManager: customerTokenManager,
|
|
291
|
+
});
|
|
292
|
+
const environments = await adminClient.listEnvironmentSummaries();
|
|
293
|
+
// Filter to production/sandbox environments with Dataverse
|
|
294
|
+
const dataverseEnvs = environments.filter((env) => env.instanceUrl &&
|
|
295
|
+
(env.type === "Production" || env.type === "Sandbox" || env.type === "Default"));
|
|
296
|
+
results.push({
|
|
297
|
+
tenantId: rel.customer.tenantId,
|
|
298
|
+
name: rel.customer.displayName,
|
|
299
|
+
environments: dataverseEnvs.map((env) => ({
|
|
300
|
+
displayName: env.displayName,
|
|
301
|
+
type: env.type,
|
|
302
|
+
instanceUrl: env.instanceUrl,
|
|
303
|
+
})),
|
|
304
|
+
});
|
|
305
|
+
if (dataverseEnvs.length > 0) {
|
|
306
|
+
console.log(chalk.green(` ✓ ${rel.customer.displayName}: ${dataverseEnvs.length} environment(s)`));
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
console.log(chalk.yellow(` ⚠ ${rel.customer.displayName}: No Dataverse environments`));
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
catch {
|
|
313
|
+
// Couldn't discover environments for this tenant
|
|
314
|
+
console.log(chalk.yellow(` ⚠ ${rel.customer.displayName}: Could not discover environments`));
|
|
315
|
+
results.push({
|
|
316
|
+
tenantId: rel.customer.tenantId,
|
|
317
|
+
name: rel.customer.displayName,
|
|
318
|
+
environments: [],
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
return results;
|
|
323
|
+
}
|
|
324
|
+
catch (error) {
|
|
325
|
+
const errMsg = error instanceof Error ? error.message : String(error);
|
|
326
|
+
console.log(chalk.yellow(" ⚠ Could not discover GDAP customers"));
|
|
327
|
+
if (errMsg.includes("AADSTS") || errMsg.includes("Invalid client")) {
|
|
328
|
+
console.log(chalk.gray(" Credentials may be invalid. You can add tenants manually."));
|
|
329
|
+
}
|
|
330
|
+
else if (errMsg.includes("403") || errMsg.includes("Authorization")) {
|
|
331
|
+
console.log(chalk.gray(" App may need permissions for GDAP discovery."));
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
console.log(chalk.gray(` ${errMsg.slice(0, 60)}`));
|
|
335
|
+
}
|
|
336
|
+
return [];
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
//# sourceMappingURL=init-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init-validation.js","sourceRoot":"","sources":["../../src/commands/init-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
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 interface InitWizardOptions {
|
|
17
|
+
config: string;
|
|
18
|
+
demo?: boolean;
|
|
19
|
+
gdap?: boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Run the standard (non-interactive) init wizard flow.
|
|
23
|
+
*/
|
|
24
|
+
export declare function runInitWizard(options: InitWizardOptions): Promise<void>;
|
|
25
|
+
//# sourceMappingURL=init-wizard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init-wizard.d.ts","sourceRoot":"","sources":["../../src/commands/init-wizard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAoBH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AASD;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2hB7E"}
|