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.
Files changed (224) hide show
  1. package/LICENSE +200 -0
  2. package/README.md +659 -0
  3. package/demo-data/solutions/ProductQADemo_1_0_0_2_managed.zip +0 -0
  4. package/dist/commands/analyze.d.ts +28 -0
  5. package/dist/commands/analyze.d.ts.map +1 -0
  6. package/dist/commands/analyze.js +571 -0
  7. package/dist/commands/analyze.js.map +1 -0
  8. package/dist/commands/auth.d.ts +18 -0
  9. package/dist/commands/auth.d.ts.map +1 -0
  10. package/dist/commands/auth.js +171 -0
  11. package/dist/commands/auth.js.map +1 -0
  12. package/dist/commands/config.d.ts +34 -0
  13. package/dist/commands/config.d.ts.map +1 -0
  14. package/dist/commands/config.js +299 -0
  15. package/dist/commands/config.js.map +1 -0
  16. package/dist/commands/demo.d.ts +33 -0
  17. package/dist/commands/demo.d.ts.map +1 -0
  18. package/dist/commands/demo.js +362 -0
  19. package/dist/commands/demo.js.map +1 -0
  20. package/dist/commands/deploy.d.ts +18 -0
  21. package/dist/commands/deploy.d.ts.map +1 -0
  22. package/dist/commands/deploy.js +1186 -0
  23. package/dist/commands/deploy.js.map +1 -0
  24. package/dist/commands/deployments/helpers.d.ts +68 -0
  25. package/dist/commands/deployments/helpers.d.ts.map +1 -0
  26. package/dist/commands/deployments/helpers.js +414 -0
  27. package/dist/commands/deployments/helpers.js.map +1 -0
  28. package/dist/commands/deployments/index.d.ts +24 -0
  29. package/dist/commands/deployments/index.d.ts.map +1 -0
  30. package/dist/commands/deployments/index.js +47 -0
  31. package/dist/commands/deployments/index.js.map +1 -0
  32. package/dist/commands/deployments/list.d.ts +18 -0
  33. package/dist/commands/deployments/list.d.ts.map +1 -0
  34. package/dist/commands/deployments/list.js +97 -0
  35. package/dist/commands/deployments/list.js.map +1 -0
  36. package/dist/commands/deployments/show.d.ts +18 -0
  37. package/dist/commands/deployments/show.d.ts.map +1 -0
  38. package/dist/commands/deployments/show.js +81 -0
  39. package/dist/commands/deployments/show.js.map +1 -0
  40. package/dist/commands/deployments/undo.d.ts +18 -0
  41. package/dist/commands/deployments/undo.d.ts.map +1 -0
  42. package/dist/commands/deployments/undo.js +295 -0
  43. package/dist/commands/deployments/undo.js.map +1 -0
  44. package/dist/commands/export.d.ts +18 -0
  45. package/dist/commands/export.d.ts.map +1 -0
  46. package/dist/commands/export.js +133 -0
  47. package/dist/commands/export.js.map +1 -0
  48. package/dist/commands/import.d.ts +18 -0
  49. package/dist/commands/import.d.ts.map +1 -0
  50. package/dist/commands/import.js +129 -0
  51. package/dist/commands/import.js.map +1 -0
  52. package/dist/commands/init-config.d.ts +26 -0
  53. package/dist/commands/init-config.d.ts.map +1 -0
  54. package/dist/commands/init-config.js +123 -0
  55. package/dist/commands/init-config.js.map +1 -0
  56. package/dist/commands/init-validation.d.ts +47 -0
  57. package/dist/commands/init-validation.d.ts.map +1 -0
  58. package/dist/commands/init-validation.js +339 -0
  59. package/dist/commands/init-validation.js.map +1 -0
  60. package/dist/commands/init-wizard.d.ts +25 -0
  61. package/dist/commands/init-wizard.d.ts.map +1 -0
  62. package/dist/commands/init-wizard.js +433 -0
  63. package/dist/commands/init-wizard.js.map +1 -0
  64. package/dist/commands/init.d.ts +18 -0
  65. package/dist/commands/init.d.ts.map +1 -0
  66. package/dist/commands/init.js +46 -0
  67. package/dist/commands/init.js.map +1 -0
  68. package/dist/commands/resolve-url.d.ts +18 -0
  69. package/dist/commands/resolve-url.d.ts.map +1 -0
  70. package/dist/commands/resolve-url.js +126 -0
  71. package/dist/commands/resolve-url.js.map +1 -0
  72. package/dist/commands/setup.d.ts +18 -0
  73. package/dist/commands/setup.d.ts.map +1 -0
  74. package/dist/commands/setup.js +239 -0
  75. package/dist/commands/setup.js.map +1 -0
  76. package/dist/commands/solutions/drift-analysis.d.ts +73 -0
  77. package/dist/commands/solutions/drift-analysis.d.ts.map +1 -0
  78. package/dist/commands/solutions/drift-analysis.js +416 -0
  79. package/dist/commands/solutions/drift-analysis.js.map +1 -0
  80. package/dist/commands/solutions/drift.d.ts +32 -0
  81. package/dist/commands/solutions/drift.d.ts.map +1 -0
  82. package/dist/commands/solutions/drift.js +641 -0
  83. package/dist/commands/solutions/drift.js.map +1 -0
  84. package/dist/commands/solutions/fix-planner.d.ts +48 -0
  85. package/dist/commands/solutions/fix-planner.d.ts.map +1 -0
  86. package/dist/commands/solutions/fix-planner.js +43 -0
  87. package/dist/commands/solutions/fix-planner.js.map +1 -0
  88. package/dist/commands/solutions/helpers.d.ts +35 -0
  89. package/dist/commands/solutions/helpers.d.ts.map +1 -0
  90. package/dist/commands/solutions/helpers.js +54 -0
  91. package/dist/commands/solutions/helpers.js.map +1 -0
  92. package/dist/commands/solutions/index.d.ts +18 -0
  93. package/dist/commands/solutions/index.d.ts.map +1 -0
  94. package/dist/commands/solutions/index.js +30 -0
  95. package/dist/commands/solutions/index.js.map +1 -0
  96. package/dist/commands/solutions/list.d.ts +18 -0
  97. package/dist/commands/solutions/list.d.ts.map +1 -0
  98. package/dist/commands/solutions/list.js +174 -0
  99. package/dist/commands/solutions/list.js.map +1 -0
  100. package/dist/commands/solutions/remove.d.ts +18 -0
  101. package/dist/commands/solutions/remove.d.ts.map +1 -0
  102. package/dist/commands/solutions/remove.js +137 -0
  103. package/dist/commands/solutions/remove.js.map +1 -0
  104. package/dist/commands/solutions/risk-calculator.d.ts +33 -0
  105. package/dist/commands/solutions/risk-calculator.d.ts.map +1 -0
  106. package/dist/commands/solutions/risk-calculator.js +79 -0
  107. package/dist/commands/solutions/risk-calculator.js.map +1 -0
  108. package/dist/commands/solutions/show.d.ts +18 -0
  109. package/dist/commands/solutions/show.d.ts.map +1 -0
  110. package/dist/commands/solutions/show.js +165 -0
  111. package/dist/commands/solutions/show.js.map +1 -0
  112. package/dist/commands/status.d.ts +18 -0
  113. package/dist/commands/status.d.ts.map +1 -0
  114. package/dist/commands/status.js +573 -0
  115. package/dist/commands/status.js.map +1 -0
  116. package/dist/commands/telemetry.d.ts +18 -0
  117. package/dist/commands/telemetry.d.ts.map +1 -0
  118. package/dist/commands/telemetry.js +85 -0
  119. package/dist/commands/telemetry.js.map +1 -0
  120. package/dist/commands/tenants/health.d.ts +18 -0
  121. package/dist/commands/tenants/health.d.ts.map +1 -0
  122. package/dist/commands/tenants/health.js +172 -0
  123. package/dist/commands/tenants/health.js.map +1 -0
  124. package/dist/commands/tenants/helpers.d.ts +44 -0
  125. package/dist/commands/tenants/helpers.d.ts.map +1 -0
  126. package/dist/commands/tenants/helpers.js +72 -0
  127. package/dist/commands/tenants/helpers.js.map +1 -0
  128. package/dist/commands/tenants/index.d.ts +19 -0
  129. package/dist/commands/tenants/index.d.ts.map +1 -0
  130. package/dist/commands/tenants/index.js +39 -0
  131. package/dist/commands/tenants/index.js.map +1 -0
  132. package/dist/commands/tenants/inspect.d.ts +18 -0
  133. package/dist/commands/tenants/inspect.d.ts.map +1 -0
  134. package/dist/commands/tenants/inspect.js +176 -0
  135. package/dist/commands/tenants/inspect.js.map +1 -0
  136. package/dist/commands/tenants/list.d.ts +18 -0
  137. package/dist/commands/tenants/list.d.ts.map +1 -0
  138. package/dist/commands/tenants/list.js +144 -0
  139. package/dist/commands/tenants/list.js.map +1 -0
  140. package/dist/commands/tenants/manage.d.ts +20 -0
  141. package/dist/commands/tenants/manage.d.ts.map +1 -0
  142. package/dist/commands/tenants/manage.js +206 -0
  143. package/dist/commands/tenants/manage.js.map +1 -0
  144. package/dist/commands/tenants/show.d.ts +18 -0
  145. package/dist/commands/tenants/show.d.ts.map +1 -0
  146. package/dist/commands/tenants/show.js +191 -0
  147. package/dist/commands/tenants/show.js.map +1 -0
  148. package/dist/commands/validate.d.ts +18 -0
  149. package/dist/commands/validate.d.ts.map +1 -0
  150. package/dist/commands/validate.js +536 -0
  151. package/dist/commands/validate.js.map +1 -0
  152. package/dist/index.d.ts +19 -0
  153. package/dist/index.d.ts.map +1 -0
  154. package/dist/index.js +258 -0
  155. package/dist/index.js.map +1 -0
  156. package/dist/lib/auth.d.ts +51 -0
  157. package/dist/lib/auth.d.ts.map +1 -0
  158. package/dist/lib/auth.js +153 -0
  159. package/dist/lib/auth.js.map +1 -0
  160. package/dist/lib/banner.d.ts +19 -0
  161. package/dist/lib/banner.d.ts.map +1 -0
  162. package/dist/lib/banner.js +78 -0
  163. package/dist/lib/banner.js.map +1 -0
  164. package/dist/lib/command-wrapper.d.ts +56 -0
  165. package/dist/lib/command-wrapper.d.ts.map +1 -0
  166. package/dist/lib/command-wrapper.js +71 -0
  167. package/dist/lib/command-wrapper.js.map +1 -0
  168. package/dist/lib/credentials.d.ts +56 -0
  169. package/dist/lib/credentials.d.ts.map +1 -0
  170. package/dist/lib/credentials.js +146 -0
  171. package/dist/lib/credentials.js.map +1 -0
  172. package/dist/lib/demo-banner.d.ts +15 -0
  173. package/dist/lib/demo-banner.d.ts.map +1 -0
  174. package/dist/lib/demo-banner.js +33 -0
  175. package/dist/lib/demo-banner.js.map +1 -0
  176. package/dist/lib/error-handler.d.ts +51 -0
  177. package/dist/lib/error-handler.d.ts.map +1 -0
  178. package/dist/lib/error-handler.js +458 -0
  179. package/dist/lib/error-handler.js.map +1 -0
  180. package/dist/lib/errors.d.ts +61 -0
  181. package/dist/lib/errors.d.ts.map +1 -0
  182. package/dist/lib/errors.js +168 -0
  183. package/dist/lib/errors.js.map +1 -0
  184. package/dist/lib/formatters.d.ts +55 -0
  185. package/dist/lib/formatters.d.ts.map +1 -0
  186. package/dist/lib/formatters.js +163 -0
  187. package/dist/lib/formatters.js.map +1 -0
  188. package/dist/lib/graph-client.d.ts +74 -0
  189. package/dist/lib/graph-client.d.ts.map +1 -0
  190. package/dist/lib/graph-client.js +231 -0
  191. package/dist/lib/graph-client.js.map +1 -0
  192. package/dist/lib/input.d.ts +22 -0
  193. package/dist/lib/input.d.ts.map +1 -0
  194. package/dist/lib/input.js +120 -0
  195. package/dist/lib/input.js.map +1 -0
  196. package/dist/lib/interactive-wizard.d.ts +26 -0
  197. package/dist/lib/interactive-wizard.d.ts.map +1 -0
  198. package/dist/lib/interactive-wizard.js +550 -0
  199. package/dist/lib/interactive-wizard.js.map +1 -0
  200. package/dist/lib/oss-surface.d.ts +21 -0
  201. package/dist/lib/oss-surface.d.ts.map +1 -0
  202. package/dist/lib/oss-surface.js +29 -0
  203. package/dist/lib/oss-surface.js.map +1 -0
  204. package/dist/lib/output.d.ts +74 -0
  205. package/dist/lib/output.d.ts.map +1 -0
  206. package/dist/lib/output.js +156 -0
  207. package/dist/lib/output.js.map +1 -0
  208. package/dist/lib/picker.d.ts +75 -0
  209. package/dist/lib/picker.d.ts.map +1 -0
  210. package/dist/lib/picker.js +115 -0
  211. package/dist/lib/picker.js.map +1 -0
  212. package/dist/lib/repl.d.ts +19 -0
  213. package/dist/lib/repl.d.ts.map +1 -0
  214. package/dist/lib/repl.js +158 -0
  215. package/dist/lib/repl.js.map +1 -0
  216. package/dist/lib/spinner.d.ts +41 -0
  217. package/dist/lib/spinner.d.ts.map +1 -0
  218. package/dist/lib/spinner.js +126 -0
  219. package/dist/lib/spinner.js.map +1 -0
  220. package/dist/lib/telemetry.d.ts +96 -0
  221. package/dist/lib/telemetry.d.ts.map +1 -0
  222. package/dist/lib/telemetry.js +367 -0
  223. package/dist/lib/telemetry.js.map +1 -0
  224. 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"}