@mcp-consultant-tools/powerplatform 28.0.0-beta.7 → 28.0.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/build/cli/commands/app-commands.d.ts +7 -0
- package/build/cli/commands/app-commands.d.ts.map +1 -0
- package/build/cli/commands/app-commands.js +65 -0
- package/build/cli/commands/app-commands.js.map +1 -0
- package/build/cli/commands/flow-commands.d.ts +7 -0
- package/build/cli/commands/flow-commands.d.ts.map +1 -0
- package/build/cli/commands/flow-commands.js +170 -0
- package/build/cli/commands/flow-commands.js.map +1 -0
- package/build/cli/commands/form-commands.d.ts +7 -0
- package/build/cli/commands/form-commands.d.ts.map +1 -0
- package/build/cli/commands/form-commands.js +104 -0
- package/build/cli/commands/form-commands.js.map +1 -0
- package/build/cli/commands/index.d.ts +15 -0
- package/build/cli/commands/index.d.ts.map +1 -0
- package/build/cli/commands/index.js +30 -0
- package/build/cli/commands/index.js.map +1 -0
- package/build/cli/commands/integration-commands.d.ts +7 -0
- package/build/cli/commands/integration-commands.d.ts.map +1 -0
- package/build/cli/commands/integration-commands.js +97 -0
- package/build/cli/commands/integration-commands.js.map +1 -0
- package/build/cli/commands/metadata-commands.d.ts +7 -0
- package/build/cli/commands/metadata-commands.d.ts.map +1 -0
- package/build/cli/commands/metadata-commands.js +83 -0
- package/build/cli/commands/metadata-commands.js.map +1 -0
- package/build/cli/commands/plugin-commands.d.ts +7 -0
- package/build/cli/commands/plugin-commands.d.ts.map +1 -0
- package/build/cli/commands/plugin-commands.js +79 -0
- package/build/cli/commands/plugin-commands.js.map +1 -0
- package/build/cli/commands/security-commands.d.ts +7 -0
- package/build/cli/commands/security-commands.d.ts.map +1 -0
- package/build/cli/commands/security-commands.js +89 -0
- package/build/cli/commands/security-commands.js.map +1 -0
- package/build/cli/commands/solution-commands.d.ts +7 -0
- package/build/cli/commands/solution-commands.d.ts.map +1 -0
- package/build/cli/commands/solution-commands.js +146 -0
- package/build/cli/commands/solution-commands.js.map +1 -0
- package/build/cli/output.d.ts +11 -0
- package/build/cli/output.d.ts.map +1 -0
- package/build/cli/output.js +10 -0
- package/build/cli/output.js.map +1 -0
- package/build/cli.d.ts +9 -0
- package/build/cli.d.ts.map +1 -0
- package/build/cli.js +30 -0
- package/build/cli.js.map +1 -0
- package/build/context-factory.d.ts +11 -0
- package/build/context-factory.d.ts.map +1 -0
- package/build/context-factory.js +39 -0
- package/build/context-factory.js.map +1 -0
- package/package.json +6 -4
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* App CLI Commands - 4 commands for model-driven app inspection
|
|
3
|
+
*/
|
|
4
|
+
import type { Command } from 'commander';
|
|
5
|
+
import type { ServiceContext } from '../../types.js';
|
|
6
|
+
export declare function registerAppCommands(program: Command, ctx: ServiceContext): void;
|
|
7
|
+
//# sourceMappingURL=app-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/app-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAmE/E"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* App CLI Commands - 4 commands for model-driven app inspection
|
|
3
|
+
*/
|
|
4
|
+
import { getGlobalFlags, handleCliError } from '@mcp-consultant-tools/core';
|
|
5
|
+
import { outputResult } from '../output.js';
|
|
6
|
+
export function registerAppCommands(program, ctx) {
|
|
7
|
+
const app = program.command('app').description('Model-driven app inspection');
|
|
8
|
+
app
|
|
9
|
+
.command('list')
|
|
10
|
+
.description('List all model-driven apps')
|
|
11
|
+
.option('--active-only', 'Only return active apps', false)
|
|
12
|
+
.option('-m, --max <n>', 'Maximum number of apps to return', '100')
|
|
13
|
+
.option('--no-unpublished', 'Exclude unpublished/draft apps')
|
|
14
|
+
.option('-s, --solution <name>', 'Filter apps by solution unique name')
|
|
15
|
+
.action(async (opts) => {
|
|
16
|
+
try {
|
|
17
|
+
const result = await ctx.pp.getApps(opts.activeOnly, parseInt(opts.max), opts.unpublished !== false, opts.solution);
|
|
18
|
+
outputResult({ fileName: 'apps', data: result, summary: `Found ${result.totalCount} model-driven app(s)` }, getGlobalFlags(program));
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
handleCliError(error, 'list apps');
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
app
|
|
25
|
+
.command('get')
|
|
26
|
+
.description('Get detailed information about a model-driven app')
|
|
27
|
+
.argument('<appId>', 'App GUID (appmoduleid)')
|
|
28
|
+
.action(async (appId) => {
|
|
29
|
+
try {
|
|
30
|
+
const result = await ctx.pp.getApp(appId);
|
|
31
|
+
const name = result?.name || appId;
|
|
32
|
+
outputResult({ fileName: `app-${appId}`, data: result, summary: `Model-driven app '${name}'` }, getGlobalFlags(program));
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
handleCliError(error, 'get app');
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
app
|
|
39
|
+
.command('components')
|
|
40
|
+
.description('Get all components in a model-driven app')
|
|
41
|
+
.argument('<appId>', 'App GUID (appmoduleid)')
|
|
42
|
+
.action(async (appId) => {
|
|
43
|
+
try {
|
|
44
|
+
const result = await ctx.pp.getAppComponents(appId);
|
|
45
|
+
outputResult({ fileName: `app-components-${appId}`, data: result, summary: `App components (found ${result.totalCount})` }, getGlobalFlags(program));
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
handleCliError(error, 'get app components');
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
app
|
|
52
|
+
.command('sitemap')
|
|
53
|
+
.description('Get the sitemap (navigation) for a model-driven app')
|
|
54
|
+
.argument('<appId>', 'App GUID (appmoduleid)')
|
|
55
|
+
.action(async (appId) => {
|
|
56
|
+
try {
|
|
57
|
+
const result = await ctx.pp.getAppSitemap(appId);
|
|
58
|
+
outputResult({ fileName: `app-sitemap-${appId}`, data: result, summary: `App sitemap for '${appId}'` }, getGlobalFlags(program));
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
handleCliError(error, 'get app sitemap');
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=app-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-commands.js","sourceRoot":"","sources":["../../../src/cli/commands/app-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flow CLI Commands - 9 commands for flow/workflow/business rule inspection
|
|
3
|
+
*/
|
|
4
|
+
import type { Command } from 'commander';
|
|
5
|
+
import type { ServiceContext } from '../../types.js';
|
|
6
|
+
export declare function registerFlowCommands(program: Command, ctx: ServiceContext): void;
|
|
7
|
+
//# sourceMappingURL=flow-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/flow-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CA4KhF"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flow CLI Commands - 9 commands for flow/workflow/business rule inspection
|
|
3
|
+
*/
|
|
4
|
+
import { getGlobalFlags, handleCliError } from '@mcp-consultant-tools/core';
|
|
5
|
+
import { outputResult } from '../output.js';
|
|
6
|
+
export function registerFlowCommands(program, ctx) {
|
|
7
|
+
const flow = program.command('flow').description('Power Automate flow and workflow operations');
|
|
8
|
+
flow
|
|
9
|
+
.command('list')
|
|
10
|
+
.description('List Power Automate cloud flows')
|
|
11
|
+
.option('--active-only', 'Only return activated flows', false)
|
|
12
|
+
.option('-m, --max <n>', 'Maximum number of flows to return', '25')
|
|
13
|
+
.option('--include-customer-insights', 'Include Customer Insights flows (CXP_ prefix)', false)
|
|
14
|
+
.option('--include-system', 'Include SYSTEM-modified flows', false)
|
|
15
|
+
.option('--include-copilot-sales', 'Include Copilot for Sales flows', false)
|
|
16
|
+
.option('-n, --name <text>', 'Filter flows by name (case-insensitive contains)')
|
|
17
|
+
.action(async (opts) => {
|
|
18
|
+
try {
|
|
19
|
+
const result = await ctx.pp.getFlows({
|
|
20
|
+
activeOnly: opts.activeOnly,
|
|
21
|
+
maxRecords: parseInt(opts.max),
|
|
22
|
+
excludeCustomerInsights: !opts.includeCustomerInsights,
|
|
23
|
+
excludeSystem: !opts.includeSystem,
|
|
24
|
+
excludeCopilotSales: !opts.includeCopilotSales,
|
|
25
|
+
nameContains: opts.name,
|
|
26
|
+
});
|
|
27
|
+
outputResult({ fileName: 'flows', data: result, summary: `Found ${result.totalCount} Power Automate flows${result.hasMore ? ' (more available)' : ''}` }, getGlobalFlags(program));
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
handleCliError(error, 'list flows');
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
flow
|
|
34
|
+
.command('search')
|
|
35
|
+
.description('Search workflows (classic workflows and Power Automate flows)')
|
|
36
|
+
.option('-n, --name <text>', 'Filter by workflow name (partial match)')
|
|
37
|
+
.option('-e, --entity <name>', 'Filter by primary entity logical name')
|
|
38
|
+
.option('-d, --description <text>', 'Search in description field')
|
|
39
|
+
.option('-c, --category <n>', 'Filter by category (0=Workflow, 5=ModernFlow)')
|
|
40
|
+
.option('-s, --state <n>', 'Filter by state (0=Draft, 1=Activated)')
|
|
41
|
+
.option('--no-description', 'Exclude description from results')
|
|
42
|
+
.option('-m, --max <n>', 'Maximum results', '50')
|
|
43
|
+
.action(async (opts) => {
|
|
44
|
+
try {
|
|
45
|
+
const result = await ctx.pp.searchWorkflows({
|
|
46
|
+
name: opts.name,
|
|
47
|
+
primaryEntity: opts.entity,
|
|
48
|
+
description: opts.description,
|
|
49
|
+
category: opts.category !== undefined ? parseInt(opts.category) : undefined,
|
|
50
|
+
statecode: opts.state !== undefined ? parseInt(opts.state) : undefined,
|
|
51
|
+
includeDescription: opts.description !== false,
|
|
52
|
+
maxResults: parseInt(opts.max),
|
|
53
|
+
});
|
|
54
|
+
outputResult({ fileName: 'workflow-search', data: result, summary: `Found ${result.totalCount} workflow(s)${result.hasMore ? ' (more available)' : ''}` }, getGlobalFlags(program));
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
handleCliError(error, 'search workflows');
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
flow
|
|
61
|
+
.command('definition')
|
|
62
|
+
.description('Get the definition of a Power Automate flow')
|
|
63
|
+
.argument('<flowId>', 'Flow GUID (workflowid)')
|
|
64
|
+
.option('--summary', 'Return parsed summary instead of full definition', false)
|
|
65
|
+
.action(async (flowId, opts) => {
|
|
66
|
+
try {
|
|
67
|
+
const result = await ctx.pp.getFlowDefinition(flowId, opts.summary);
|
|
68
|
+
const name = result?.name || flowId;
|
|
69
|
+
outputResult({ fileName: `flow-def-${flowId}`, data: result, summary: `Flow definition for '${name}'${opts.summary ? ' (summary)' : ''}` }, getGlobalFlags(program));
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
handleCliError(error, 'get flow definition');
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
flow
|
|
76
|
+
.command('runs')
|
|
77
|
+
.description('Get run history for a Power Automate flow')
|
|
78
|
+
.argument('<flowId>', 'Flow GUID (workflowid)')
|
|
79
|
+
.option('-s, --status <status>', 'Filter by run status (Succeeded, Failed, Running, Cancelled)')
|
|
80
|
+
.option('--started-after <date>', 'Only runs started after this date (ISO 8601)')
|
|
81
|
+
.option('--started-before <date>', 'Only runs started before this date (ISO 8601)')
|
|
82
|
+
.option('-m, --max <n>', 'Maximum number of runs to return', '50')
|
|
83
|
+
.action(async (flowId, opts) => {
|
|
84
|
+
try {
|
|
85
|
+
const result = await ctx.pp.getFlowRuns(flowId, {
|
|
86
|
+
status: opts.status,
|
|
87
|
+
startedAfter: opts.startedAfter,
|
|
88
|
+
startedBefore: opts.startedBefore,
|
|
89
|
+
maxRecords: parseInt(opts.max),
|
|
90
|
+
});
|
|
91
|
+
outputResult({ fileName: `flow-runs-${flowId}`, data: result, summary: `Found ${result.totalCount} flow runs for ${flowId}${result.hasMore ? ' (more available)' : ''}` }, getGlobalFlags(program));
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
handleCliError(error, 'get flow runs');
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
flow
|
|
98
|
+
.command('run-details')
|
|
99
|
+
.description('Get detailed action-level execution info for a flow run')
|
|
100
|
+
.argument('<flowId>', 'Flow GUID (workflowid)')
|
|
101
|
+
.argument('<runId>', 'Flow run GUID (from flow runs)')
|
|
102
|
+
.action(async (flowId, runId) => {
|
|
103
|
+
try {
|
|
104
|
+
const result = await ctx.pp.getFlowRunDetails(flowId, runId);
|
|
105
|
+
const status = result?.status || 'unknown';
|
|
106
|
+
outputResult({ fileName: `flow-run-${flowId}-${runId}`, data: result, summary: `Flow run details: status=${status}` }, getGlobalFlags(program));
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
handleCliError(error, 'get flow run details');
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
flow
|
|
113
|
+
.command('workflows')
|
|
114
|
+
.description('List classic Dynamics workflows')
|
|
115
|
+
.option('--active-only', 'Only return activated workflows', false)
|
|
116
|
+
.option('-m, --max <n>', 'Maximum number of workflows to return', '25')
|
|
117
|
+
.action(async (opts) => {
|
|
118
|
+
try {
|
|
119
|
+
const result = await ctx.pp.getWorkflows(opts.activeOnly, parseInt(opts.max));
|
|
120
|
+
outputResult({ fileName: 'classic-workflows', data: result, summary: `Found ${result.totalCount} classic Dynamics workflows${result.hasMore ? ' (more available)' : ''}` }, getGlobalFlags(program));
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
handleCliError(error, 'list workflows');
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
flow
|
|
127
|
+
.command('workflow-def')
|
|
128
|
+
.description('Get the definition of a classic Dynamics workflow')
|
|
129
|
+
.argument('<workflowId>', 'Workflow GUID (workflowid)')
|
|
130
|
+
.option('--summary', 'Return parsed summary instead of full XAML', false)
|
|
131
|
+
.action(async (workflowId, opts) => {
|
|
132
|
+
try {
|
|
133
|
+
const result = await ctx.pp.getWorkflowDefinition(workflowId, opts.summary);
|
|
134
|
+
const name = result?.name || workflowId;
|
|
135
|
+
outputResult({ fileName: `workflow-def-${workflowId}`, data: result, summary: `Workflow definition for '${name}'${opts.summary ? ' (summary)' : ''}` }, getGlobalFlags(program));
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
handleCliError(error, 'get workflow definition');
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
flow
|
|
142
|
+
.command('business-rules')
|
|
143
|
+
.description('List all business rules in the environment')
|
|
144
|
+
.option('--active-only', 'Only return activated business rules', false)
|
|
145
|
+
.option('-m, --max <n>', 'Maximum number of business rules to return', '100')
|
|
146
|
+
.action(async (opts) => {
|
|
147
|
+
try {
|
|
148
|
+
const result = await ctx.pp.getBusinessRules(opts.activeOnly, parseInt(opts.max));
|
|
149
|
+
outputResult({ fileName: 'business-rules', data: result, summary: `Found ${result.totalCount} business rules` }, getGlobalFlags(program));
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
handleCliError(error, 'list business rules');
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
flow
|
|
156
|
+
.command('business-rule')
|
|
157
|
+
.description('Get the definition of a specific business rule')
|
|
158
|
+
.argument('<workflowId>', 'Business rule GUID (workflowid)')
|
|
159
|
+
.action(async (workflowId) => {
|
|
160
|
+
try {
|
|
161
|
+
const result = await ctx.pp.getBusinessRule(workflowId);
|
|
162
|
+
const name = result?.name || workflowId;
|
|
163
|
+
outputResult({ fileName: `business-rule-${workflowId}`, data: result, summary: `Business rule '${name}'` }, getGlobalFlags(program));
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
handleCliError(error, 'get business rule');
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=flow-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-commands.js","sourceRoot":"","sources":["../../../src/cli/commands/flow-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Form/View CLI Commands - 7 commands for forms, views, and web resources
|
|
3
|
+
*/
|
|
4
|
+
import type { Command } from 'commander';
|
|
5
|
+
import type { ServiceContext } from '../../types.js';
|
|
6
|
+
export declare function registerFormCommands(program: Command, ctx: ServiceContext): void;
|
|
7
|
+
//# sourceMappingURL=form-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/form-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAwGhF"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Form/View CLI Commands - 7 commands for forms, views, and web resources
|
|
3
|
+
*/
|
|
4
|
+
import { getGlobalFlags, handleCliError } from '@mcp-consultant-tools/core';
|
|
5
|
+
import { outputResult } from '../output.js';
|
|
6
|
+
export function registerFormCommands(program, ctx) {
|
|
7
|
+
const form = program.command('form').description('Forms, views, and web resource operations');
|
|
8
|
+
form
|
|
9
|
+
.command('list')
|
|
10
|
+
.description('Get all forms for a Dataverse entity')
|
|
11
|
+
.argument('<entityName>', 'Entity logical name')
|
|
12
|
+
.action(async (entityName) => {
|
|
13
|
+
try {
|
|
14
|
+
const result = await ctx.pp.getForms(entityName);
|
|
15
|
+
const forms = result?.value || [];
|
|
16
|
+
outputResult({ fileName: `forms-${entityName}`, data: result, summary: `Found ${forms.length} form(s) for '${entityName}'` }, getGlobalFlags(program));
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
handleCliError(error, 'list forms');
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
form
|
|
23
|
+
.command('views')
|
|
24
|
+
.description('Get all saved views for a Dataverse entity')
|
|
25
|
+
.argument('<entityName>', 'Entity logical name')
|
|
26
|
+
.action(async (entityName) => {
|
|
27
|
+
try {
|
|
28
|
+
const result = await ctx.pp.getViews(entityName);
|
|
29
|
+
const views = result?.value || [];
|
|
30
|
+
outputResult({ fileName: `views-${entityName}`, data: result, summary: `Found ${views.length} view(s) for '${entityName}'` }, getGlobalFlags(program));
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
handleCliError(error, 'list views');
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
form
|
|
37
|
+
.command('view-fetchxml')
|
|
38
|
+
.description('Get the FetchXML query from a view')
|
|
39
|
+
.argument('<viewId>', 'View ID (GUID)')
|
|
40
|
+
.action(async (viewId) => {
|
|
41
|
+
try {
|
|
42
|
+
const result = await ctx.pp.getViewFetchXml(viewId);
|
|
43
|
+
const name = result?.name || viewId;
|
|
44
|
+
outputResult({ fileName: `view-fetchxml-${viewId}`, data: result, summary: `FetchXML for view '${name}'` }, getGlobalFlags(program));
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
handleCliError(error, 'get view FetchXML');
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
form
|
|
51
|
+
.command('web-resource')
|
|
52
|
+
.description('Get a web resource by ID')
|
|
53
|
+
.argument('<webResourceId>', 'Web resource ID (GUID)')
|
|
54
|
+
.action(async (webResourceId) => {
|
|
55
|
+
try {
|
|
56
|
+
const result = await ctx.pp.getWebResource(webResourceId);
|
|
57
|
+
const name = result?.name || webResourceId;
|
|
58
|
+
outputResult({ fileName: `webresource-${webResourceId}`, data: result, summary: `Web resource '${name}'` }, getGlobalFlags(program));
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
handleCliError(error, 'get web resource');
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
form
|
|
65
|
+
.command('web-resources')
|
|
66
|
+
.description('Get web resources by name pattern')
|
|
67
|
+
.option('-n, --name <filter>', 'Name filter (contains)')
|
|
68
|
+
.action(async (opts) => {
|
|
69
|
+
try {
|
|
70
|
+
const result = await ctx.pp.getWebResources(opts.name);
|
|
71
|
+
const webResources = result?.value || [];
|
|
72
|
+
outputResult({ fileName: 'web-resources', data: result, summary: `Found ${webResources.length} web resource(s)${opts.name ? ` matching '${opts.name}'` : ''}` }, getGlobalFlags(program));
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
handleCliError(error, 'list web resources');
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
form
|
|
79
|
+
.command('web-resource-deps')
|
|
80
|
+
.description('Get all dependencies for a web resource')
|
|
81
|
+
.argument('<webResourceId>', 'Web resource ID (GUID)')
|
|
82
|
+
.action(async (webResourceId) => {
|
|
83
|
+
try {
|
|
84
|
+
const result = await ctx.pp.getWebResourceDependencies(webResourceId);
|
|
85
|
+
outputResult({ fileName: `webresource-deps-${webResourceId}`, data: result, summary: `Dependencies for web resource '${webResourceId}'` }, getGlobalFlags(program));
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
handleCliError(error, 'get web resource dependencies');
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
form
|
|
92
|
+
.command('unpublished')
|
|
93
|
+
.description('Preview all components with unpublished customizations')
|
|
94
|
+
.action(async () => {
|
|
95
|
+
try {
|
|
96
|
+
const result = await ctx.pp.previewUnpublishedChanges();
|
|
97
|
+
outputResult({ fileName: 'unpublished-changes', data: result, summary: 'Unpublished customization changes' }, getGlobalFlags(program));
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
handleCliError(error, 'preview unpublished changes');
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=form-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-commands.js","sourceRoot":"","sources":["../../../src/cli/commands/form-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Commands barrel export + combined registration
|
|
3
|
+
*/
|
|
4
|
+
import type { Command } from 'commander';
|
|
5
|
+
import type { ServiceContext } from '../../types.js';
|
|
6
|
+
export declare function registerAllCommands(program: Command, ctx: ServiceContext): void;
|
|
7
|
+
export { registerMetadataCommands } from './metadata-commands.js';
|
|
8
|
+
export { registerPluginCommands } from './plugin-commands.js';
|
|
9
|
+
export { registerFlowCommands } from './flow-commands.js';
|
|
10
|
+
export { registerAppCommands } from './app-commands.js';
|
|
11
|
+
export { registerFormCommands } from './form-commands.js';
|
|
12
|
+
export { registerSolutionCommands } from './solution-commands.js';
|
|
13
|
+
export { registerIntegrationCommands } from './integration-commands.js';
|
|
14
|
+
export { registerSecurityCommands } from './security-commands.js';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAUrD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAS/E;AAED,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Commands barrel export + combined registration
|
|
3
|
+
*/
|
|
4
|
+
import { registerMetadataCommands } from './metadata-commands.js';
|
|
5
|
+
import { registerPluginCommands } from './plugin-commands.js';
|
|
6
|
+
import { registerFlowCommands } from './flow-commands.js';
|
|
7
|
+
import { registerAppCommands } from './app-commands.js';
|
|
8
|
+
import { registerFormCommands } from './form-commands.js';
|
|
9
|
+
import { registerSolutionCommands } from './solution-commands.js';
|
|
10
|
+
import { registerIntegrationCommands } from './integration-commands.js';
|
|
11
|
+
import { registerSecurityCommands } from './security-commands.js';
|
|
12
|
+
export function registerAllCommands(program, ctx) {
|
|
13
|
+
registerMetadataCommands(program, ctx);
|
|
14
|
+
registerPluginCommands(program, ctx);
|
|
15
|
+
registerFlowCommands(program, ctx);
|
|
16
|
+
registerAppCommands(program, ctx);
|
|
17
|
+
registerFormCommands(program, ctx);
|
|
18
|
+
registerSolutionCommands(program, ctx);
|
|
19
|
+
registerIntegrationCommands(program, ctx);
|
|
20
|
+
registerSecurityCommands(program, ctx);
|
|
21
|
+
}
|
|
22
|
+
export { registerMetadataCommands } from './metadata-commands.js';
|
|
23
|
+
export { registerPluginCommands } from './plugin-commands.js';
|
|
24
|
+
export { registerFlowCommands } from './flow-commands.js';
|
|
25
|
+
export { registerAppCommands } from './app-commands.js';
|
|
26
|
+
export { registerFormCommands } from './form-commands.js';
|
|
27
|
+
export { registerSolutionCommands } from './solution-commands.js';
|
|
28
|
+
export { registerIntegrationCommands } from './integration-commands.js';
|
|
29
|
+
export { registerSecurityCommands } from './security-commands.js';
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,UAAU,mBAAmB,CAAC,OAAgB,EAAE,GAAmB;IACvE,wBAAwB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACvC,sBAAsB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACrC,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACnC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAClC,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACnC,wBAAwB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACvC,2BAA2B,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC1C,wBAAwB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Integration CLI Commands - 5 commands for integration audit and environment variables
|
|
3
|
+
*/
|
|
4
|
+
import type { Command } from 'commander';
|
|
5
|
+
import type { ServiceContext } from '../../types.js';
|
|
6
|
+
export declare function registerIntegrationCommands(program: Command, ctx: ServiceContext): void;
|
|
7
|
+
//# sourceMappingURL=integration-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integration-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/integration-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAgHvF"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Integration CLI Commands - 5 commands for integration audit and environment variables
|
|
3
|
+
*/
|
|
4
|
+
import { getGlobalFlags, handleCliError } from '@mcp-consultant-tools/core';
|
|
5
|
+
import { outputResult } from '../output.js';
|
|
6
|
+
export function registerIntegrationCommands(program, ctx) {
|
|
7
|
+
const integration = program.command('integration').description('Integration audit and environment variables');
|
|
8
|
+
integration
|
|
9
|
+
.command('endpoints')
|
|
10
|
+
.description('Get all service endpoints (webhooks, Azure Service Bus, REST)')
|
|
11
|
+
.option('-m, --max <n>', 'Maximum endpoints to return', '100')
|
|
12
|
+
.option('--required-urls <patterns...>', 'URL patterns to validate against (flags non-matching)')
|
|
13
|
+
.option('-f, --format <fmt>', 'Output format: summary or full', 'full')
|
|
14
|
+
.option('--include-ootb', 'Include Microsoft OOTB components', false)
|
|
15
|
+
.action(async (opts) => {
|
|
16
|
+
try {
|
|
17
|
+
const excludeOotb = !opts.includeOotb;
|
|
18
|
+
const maxRecords = parseInt(opts.max);
|
|
19
|
+
if (opts.requiredUrls && opts.requiredUrls.length > 0) {
|
|
20
|
+
const result = await ctx.pp.getServiceEndpointsValidated(maxRecords, opts.requiredUrls, excludeOotb);
|
|
21
|
+
outputResult({ fileName: 'service-endpoints-validated', data: result, summary: `Service endpoints: ${result.summary.total} found, ${result.summary.flagged} flagged` }, getGlobalFlags(program));
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
const result = await ctx.pp.getServiceEndpoints(maxRecords, excludeOotb);
|
|
25
|
+
outputResult({ fileName: 'service-endpoints', data: result, summary: `Service endpoints: ${result.summary.total} found` }, getGlobalFlags(program));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
handleCliError(error, 'get service endpoints');
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
integration
|
|
33
|
+
.command('webhooks')
|
|
34
|
+
.description('Get all webhook-type SDK message processing steps')
|
|
35
|
+
.option('-m, --max <n>', 'Maximum webhooks to return', '100')
|
|
36
|
+
.option('--include-ootb', 'Include Microsoft OOTB components', false)
|
|
37
|
+
.action(async (opts) => {
|
|
38
|
+
try {
|
|
39
|
+
const result = await ctx.pp.getWebhookRegistrations(parseInt(opts.max), !opts.includeOotb);
|
|
40
|
+
outputResult({ fileName: 'webhook-registrations', data: result, summary: `Webhook registrations: ${result.summary.total} found, ${result.summary.enabledCount} enabled` }, getGlobalFlags(program));
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
handleCliError(error, 'get webhook registrations');
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
integration
|
|
47
|
+
.command('flow-complexity')
|
|
48
|
+
.description('Analyze Power Automate flow complexity and risk scores')
|
|
49
|
+
.option('--flow-id <guid>', 'Specific flow ID to analyze (omit for all)')
|
|
50
|
+
.option('-m, --max-flows <n>', 'Maximum flows to analyze (0=unlimited)', '0')
|
|
51
|
+
.option('-f, --format <fmt>', 'Output format: summary or full', 'full')
|
|
52
|
+
.option('--include-ootb', 'Include OOTB/managed flows', false)
|
|
53
|
+
.action(async (opts) => {
|
|
54
|
+
try {
|
|
55
|
+
const result = await ctx.pp.analyzeFlowComplexity(opts.flowId, parseInt(opts.maxFlows), !opts.includeOotb);
|
|
56
|
+
const summary = result.summary;
|
|
57
|
+
outputResult({ fileName: 'flow-complexity', data: result, summary: `Flow complexity: ${summary.total} flows analyzed, avg score ${summary.averageComplexity}, High/Critical: ${summary.byRiskLevel.High + summary.byRiskLevel.Critical}` }, getGlobalFlags(program));
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
handleCliError(error, 'analyze flow complexity');
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
integration
|
|
64
|
+
.command('audit')
|
|
65
|
+
.description('Generate comprehensive integration audit report')
|
|
66
|
+
.option('--max-flows <n>', 'Maximum flows to analyze (0=unlimited)', '0')
|
|
67
|
+
.option('--max-records <n>', 'Maximum records for endpoints/webhooks/plugins', '100')
|
|
68
|
+
.option('--required-urls <patterns...>', 'URL patterns to validate against')
|
|
69
|
+
.option('-f, --format <fmt>', 'Output format: summary or full', 'full')
|
|
70
|
+
.option('--include-ootb', 'Include OOTB components', false)
|
|
71
|
+
.action(async (opts) => {
|
|
72
|
+
try {
|
|
73
|
+
const result = await ctx.pp.generateIntegrationAuditReport(parseInt(opts.maxFlows), opts.requiredUrls, opts.format, !opts.includeOotb, parseInt(opts.maxRecords));
|
|
74
|
+
outputResult({ fileName: 'integration-audit', data: result, summary: `Integration audit complete - ${result.summary.flowCount} flows, ${result.summary.webhookCount} webhooks, ${result.summary.serviceEndpointCount} endpoints, ${result.summary.pluginCount} plugins` }, getGlobalFlags(program));
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
handleCliError(error, 'generate integration audit');
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
integration
|
|
81
|
+
.command('env-vars')
|
|
82
|
+
.description('Get all environment variable definitions')
|
|
83
|
+
.option('-m, --max <n>', 'Maximum variables to return', '500')
|
|
84
|
+
.option('--required-urls <patterns...>', 'URL patterns to validate against (flags non-matching)')
|
|
85
|
+
.option('-f, --format <fmt>', 'Output format: summary or full', 'full')
|
|
86
|
+
.option('--include-ootb', 'Include OOTB components', false)
|
|
87
|
+
.action(async (opts) => {
|
|
88
|
+
try {
|
|
89
|
+
const result = await ctx.pp.getEnvironmentVariables(parseInt(opts.max), opts.requiredUrls, !opts.includeOotb);
|
|
90
|
+
outputResult({ fileName: 'env-variables', data: result, summary: `Environment variables: ${result.summary.total} found${result.divergingVariables.length > 0 ? `, ${result.divergingVariables.length} diverging` : ''}` }, getGlobalFlags(program));
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
handleCliError(error, 'get environment variables');
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=integration-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integration-commands.js","sourceRoot":"","sources":["../../../src/cli/commands/integration-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metadata CLI Commands - 5 commands for entity metadata inspection
|
|
3
|
+
*/
|
|
4
|
+
import type { Command } from 'commander';
|
|
5
|
+
import type { ServiceContext } from '../../types.js';
|
|
6
|
+
export declare function registerMetadataCommands(program: Command, ctx: ServiceContext): void;
|
|
7
|
+
//# sourceMappingURL=metadata-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/metadata-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAiFpF"}
|