@mcp-consultant-tools/powerplatform-customization 30.0.0-beta.4 → 30.0.0-beta.6

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 (32) hide show
  1. package/build/PowerPlatformService.d.ts +138 -1
  2. package/build/PowerPlatformService.d.ts.map +1 -1
  3. package/build/PowerPlatformService.js +316 -3
  4. package/build/PowerPlatformService.js.map +1 -1
  5. package/build/cli/commands/field-security-commands.d.ts +7 -0
  6. package/build/cli/commands/field-security-commands.d.ts.map +1 -0
  7. package/build/cli/commands/field-security-commands.js +232 -0
  8. package/build/cli/commands/field-security-commands.js.map +1 -0
  9. package/build/cli/commands/form-commands.d.ts.map +1 -1
  10. package/build/cli/commands/form-commands.js +61 -0
  11. package/build/cli/commands/form-commands.js.map +1 -1
  12. package/build/cli/commands/index.d.ts +1 -0
  13. package/build/cli/commands/index.d.ts.map +1 -1
  14. package/build/cli/commands/index.js +3 -0
  15. package/build/cli/commands/index.js.map +1 -1
  16. package/build/tool-examples.d.ts +12 -0
  17. package/build/tool-examples.d.ts.map +1 -1
  18. package/build/tool-examples.js +17 -0
  19. package/build/tool-examples.js.map +1 -1
  20. package/build/tools/field-security-tools.d.ts +3 -0
  21. package/build/tools/field-security-tools.d.ts.map +1 -0
  22. package/build/tools/field-security-tools.js +322 -0
  23. package/build/tools/field-security-tools.js.map +1 -0
  24. package/build/tools/form-file-tools.d.ts +3 -0
  25. package/build/tools/form-file-tools.d.ts.map +1 -0
  26. package/build/tools/form-file-tools.js +110 -0
  27. package/build/tools/form-file-tools.js.map +1 -0
  28. package/build/tools/index.d.ts +2 -0
  29. package/build/tools/index.d.ts.map +1 -1
  30. package/build/tools/index.js +10 -3
  31. package/build/tools/index.js.map +1 -1
  32. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"tool-examples.js","sourceRoot":"","sources":["../src/tool-examples.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-examples.js","sourceRoot":"","sources":["../src/tool-examples.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ServiceContext } from '../types.js';
2
+ export declare function registerFieldSecurityTools(server: any, ctx: ServiceContext): void;
3
+ //# sourceMappingURL=field-security-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-security-tools.d.ts","sourceRoot":"","sources":["../../src/tools/field-security-tools.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAsBlD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAmcjF"}
@@ -0,0 +1,322 @@
1
+ /**
2
+ * Field Security Tools - Field Security Profiles (FSP) management
3
+ *
4
+ * Tools: set-column-secured, set-columns-secured,
5
+ * create-field-security-profile, update-field-security-profile,
6
+ * delete-field-security-profile, list-field-security-profiles,
7
+ * get-field-security-profile,
8
+ * add-field-permission, add-field-permissions, remove-field-permission,
9
+ * assign-fsp-to-team, unassign-fsp-from-team,
10
+ * assign-fsp-to-user, unassign-fsp-from-user
11
+ *
12
+ * Note on roles: Dataverse does NOT support assigning FSPs directly to security
13
+ * roles. The supported pattern is: create a team for the role, assign the FSP
14
+ * to the team, add users to the team. Tool descriptions reflect this.
15
+ */
16
+ import { z } from 'zod';
17
+ import { descWithExamples, ENTITY_NAME_EXAMPLES, SOLUTION_NAME_EXAMPLES, FSP_NAME_EXAMPLES, FSP_PERMISSION_EXAMPLES, } from '../tool-examples.js';
18
+ const PermissionEnum = z.enum(['Allowed', 'NotAllowed']);
19
+ function ok(text) {
20
+ return { content: [{ type: 'text', text }] };
21
+ }
22
+ function err(message) {
23
+ return { content: [{ type: 'text', text: message }], isError: true };
24
+ }
25
+ export function registerFieldSecurityTools(server, ctx) {
26
+ // ===== SECURED COLUMN FLAG =====
27
+ server.tool('set-column-secured', 'Toggle the IsSecured flag on a column. This is the prerequisite for any Field Security Profile (FSP) work — until a column is marked Secured, fieldpermission records for it are ignored. Reuses update-attribute internally and publishes the entity afterwards by default. Some OOTB system columns (e.g., name, primary id) cannot be secured and will return AttributeIsNotSecurable.', {
28
+ entityLogicalName: z
29
+ .string()
30
+ .describe(descWithExamples('Entity logical name', ENTITY_NAME_EXAMPLES)),
31
+ attributeLogicalName: z
32
+ .string()
33
+ .describe('Attribute (column) logical name to secure or unsecure'),
34
+ isSecured: z
35
+ .boolean()
36
+ .describe('true to secure the column, false to unsecure it'),
37
+ publishAfter: z
38
+ .boolean()
39
+ .optional()
40
+ .describe('Publish the entity after the change (default: true)'),
41
+ }, async (params) => {
42
+ try {
43
+ const result = await ctx.pp.setColumnSecured(params.entityLogicalName, params.attributeLogicalName, params.isSecured, params.publishAfter !== false);
44
+ const changed = result.previousValue !== result.isSecured;
45
+ return ok(`${changed ? 'Updated' : 'No change'}: ${result.entityLogicalName}.${result.attributeLogicalName} IsSecured = ${result.isSecured} (was ${result.previousValue})`);
46
+ }
47
+ catch (error) {
48
+ console.error('Error in set-column-secured:', error);
49
+ return err(`Failed to set column secured: ${error.message}`);
50
+ }
51
+ });
52
+ server.tool('set-columns-secured', 'Batch wrapper for set-column-secured. Secure or unsecure multiple columns on the same entity in one operation, with a single publish at the end. Useful when applying field security to a group of related columns (e.g., all EDI fields on Contact).', {
53
+ entityLogicalName: z
54
+ .string()
55
+ .describe(descWithExamples('Entity logical name', ENTITY_NAME_EXAMPLES)),
56
+ attributeLogicalNames: z
57
+ .array(z.string())
58
+ .min(1)
59
+ .describe('Array of attribute logical names to secure or unsecure'),
60
+ isSecured: z
61
+ .boolean()
62
+ .describe('true to secure all columns, false to unsecure all'),
63
+ publishAfter: z
64
+ .boolean()
65
+ .optional()
66
+ .describe('Publish the entity after the changes (default: true)'),
67
+ }, async (params) => {
68
+ try {
69
+ const results = await ctx.pp.setColumnsSecured(params.entityLogicalName, params.attributeLogicalNames, params.isSecured, params.publishAfter !== false);
70
+ const summary = results
71
+ .map((r) => ` ${r.changed ? '✓' : '–'} ${r.attributeLogicalName} (was ${r.previousValue}, now ${r.isSecured})`)
72
+ .join('\n');
73
+ const changedCount = results.filter((r) => r.changed).length;
74
+ return ok(`Set ${results.length} columns on ${params.entityLogicalName} (${changedCount} changed):\n${summary}`);
75
+ }
76
+ catch (error) {
77
+ console.error('Error in set-columns-secured:', error);
78
+ return err(`Failed to set columns secured: ${error.message}`);
79
+ }
80
+ });
81
+ // ===== FSP LIFECYCLE =====
82
+ server.tool('create-field-security-profile', 'Create a new Field Security Profile (FSP). An FSP is a container for field permissions and is assigned to teams or users. By itself it grants nothing — you must add field-permission records and assign principals.', {
83
+ name: z
84
+ .string()
85
+ .describe(descWithExamples('Display name of the profile', FSP_NAME_EXAMPLES)),
86
+ description: z.string().optional().describe('Purpose of the profile'),
87
+ solutionUniqueName: z
88
+ .string()
89
+ .optional()
90
+ .describe(descWithExamples('Add the FSP as a component of this solution', SOLUTION_NAME_EXAMPLES)),
91
+ }, async (params) => {
92
+ try {
93
+ const r = await ctx.pp.createFieldSecurityProfile(params.name, params.description, params.solutionUniqueName);
94
+ return ok(`Created FSP "${r.name}" (id: ${r.fieldSecurityProfileId})${params.solutionUniqueName ? ` in solution ${params.solutionUniqueName}` : ''}`);
95
+ }
96
+ catch (error) {
97
+ console.error('Error in create-field-security-profile:', error);
98
+ return err(`Failed to create FSP: ${error.message}`);
99
+ }
100
+ });
101
+ server.tool('update-field-security-profile', 'Update the name and/or description of an existing FSP. Cannot edit FSPs that are part of a managed solution.', {
102
+ fieldSecurityProfileId: z
103
+ .string()
104
+ .describe('GUID of the field security profile to update'),
105
+ name: z.string().optional().describe('New display name'),
106
+ description: z.string().optional().describe('New description'),
107
+ }, async (params) => {
108
+ try {
109
+ await ctx.pp.updateFieldSecurityProfile(params.fieldSecurityProfileId, {
110
+ name: params.name,
111
+ description: params.description,
112
+ });
113
+ return ok(`Updated FSP ${params.fieldSecurityProfileId}`);
114
+ }
115
+ catch (error) {
116
+ console.error('Error in update-field-security-profile:', error);
117
+ return err(`Failed to update FSP: ${error.message}`);
118
+ }
119
+ });
120
+ server.tool('delete-field-security-profile', 'Delete a Field Security Profile. Refuses if the profile is part of a managed solution. Associated fieldpermission records are deleted as well by Dataverse.', {
121
+ fieldSecurityProfileId: z
122
+ .string()
123
+ .describe('GUID of the field security profile to delete'),
124
+ }, async (params) => {
125
+ try {
126
+ await ctx.pp.deleteFieldSecurityProfile(params.fieldSecurityProfileId);
127
+ return ok(`Deleted FSP ${params.fieldSecurityProfileId}`);
128
+ }
129
+ catch (error) {
130
+ console.error('Error in delete-field-security-profile:', error);
131
+ return err(`Failed to delete FSP: ${error.message}`);
132
+ }
133
+ });
134
+ server.tool('list-field-security-profiles', 'List all Field Security Profiles in the environment, with optional name substring filter.', {
135
+ namePattern: z
136
+ .string()
137
+ .optional()
138
+ .describe('Case-insensitive substring filter on FSP name'),
139
+ }, async (params) => {
140
+ try {
141
+ const results = await ctx.pp.listFieldSecurityProfiles(params.namePattern);
142
+ if (results.length === 0)
143
+ return ok('No field security profiles found.');
144
+ const lines = results.map((r) => `- ${r.name}${r.isManaged ? ' [managed]' : ''} (${r.fieldSecurityProfileId})${r.description ? ` — ${r.description}` : ''}`);
145
+ return ok(`Found ${results.length} field security profile(s):\n${lines.join('\n')}`);
146
+ }
147
+ catch (error) {
148
+ console.error('Error in list-field-security-profiles:', error);
149
+ return err(`Failed to list FSPs: ${error.message}`);
150
+ }
151
+ });
152
+ server.tool('get-field-security-profile', 'Get a single Field Security Profile with all its field permissions and team/user assignments — a one-call snapshot.', {
153
+ fieldSecurityProfileId: z
154
+ .string()
155
+ .describe('GUID of the field security profile'),
156
+ }, async (params) => {
157
+ try {
158
+ const r = await ctx.pp.getFieldSecurityProfile(params.fieldSecurityProfileId);
159
+ const permLines = r.permissions.length
160
+ ? r.permissions
161
+ .map((p) => ` - ${p.entityName}.${p.attributeLogicalName}: C=${p.canCreate} R=${p.canRead} U=${p.canUpdate}`)
162
+ .join('\n')
163
+ : ' (none)';
164
+ const teamLines = r.teams.length
165
+ ? r.teams.map((t) => ` - ${t.name} (${t.teamId})`).join('\n')
166
+ : ' (none)';
167
+ const userLines = r.users.length
168
+ ? r.users.map((u) => ` - ${u.fullName} (${u.systemUserId})`).join('\n')
169
+ : ' (none)';
170
+ return ok(`FSP "${r.name}"${r.isManaged ? ' [managed]' : ''}\nId: ${r.fieldSecurityProfileId}\n${r.description ? `Description: ${r.description}\n` : ''}\nPermissions (${r.permissions.length}):\n${permLines}\n\nTeams (${r.teams.length}):\n${teamLines}\n\nUsers (${r.users.length}):\n${userLines}`);
171
+ }
172
+ catch (error) {
173
+ console.error('Error in get-field-security-profile:', error);
174
+ return err(`Failed to get FSP: ${error.message}`);
175
+ }
176
+ });
177
+ // ===== FIELD PERMISSIONS =====
178
+ server.tool('add-field-permission', 'Add (or upsert) a field permission on an FSP for a specific secured column. The target column must already have IsSecured = true. By default, if a permission for this column already exists on this FSP, it is updated rather than duplicated.', {
179
+ fieldSecurityProfileId: z
180
+ .string()
181
+ .describe('GUID of the field security profile'),
182
+ entityLogicalName: z
183
+ .string()
184
+ .describe(descWithExamples('Entity logical name', ENTITY_NAME_EXAMPLES)),
185
+ attributeLogicalName: z
186
+ .string()
187
+ .describe('Attribute logical name (must be a secured column)'),
188
+ canCreate: PermissionEnum.describe(descWithExamples('Create permission', FSP_PERMISSION_EXAMPLES)),
189
+ canRead: PermissionEnum.describe(descWithExamples('Read permission', FSP_PERMISSION_EXAMPLES)),
190
+ canUpdate: PermissionEnum.describe(descWithExamples('Update permission', FSP_PERMISSION_EXAMPLES)),
191
+ upsert: z
192
+ .boolean()
193
+ .optional()
194
+ .describe('If true (default), update an existing permission for this column rather than creating a duplicate'),
195
+ }, async (params) => {
196
+ try {
197
+ const r = await ctx.pp.addFieldPermission({
198
+ fieldSecurityProfileId: params.fieldSecurityProfileId,
199
+ entityLogicalName: params.entityLogicalName,
200
+ attributeLogicalName: params.attributeLogicalName,
201
+ canCreate: params.canCreate,
202
+ canRead: params.canRead,
203
+ canUpdate: params.canUpdate,
204
+ upsert: params.upsert,
205
+ });
206
+ return ok(`Permission set on ${r.entityName}.${r.attributeLogicalName}: C=${r.canCreate} R=${r.canRead} U=${r.canUpdate} (id: ${r.fieldPermissionId})`);
207
+ }
208
+ catch (error) {
209
+ console.error('Error in add-field-permission:', error);
210
+ return err(`Failed to add field permission: ${error.message}`);
211
+ }
212
+ });
213
+ server.tool('add-field-permissions', 'Batch wrapper for add-field-permission. Add permissions for multiple columns to the same FSP in one call. Each entry is upserted by default.', {
214
+ fieldSecurityProfileId: z
215
+ .string()
216
+ .describe('GUID of the field security profile'),
217
+ permissions: z
218
+ .array(z.object({
219
+ entityLogicalName: z.string(),
220
+ attributeLogicalName: z.string(),
221
+ canCreate: PermissionEnum,
222
+ canRead: PermissionEnum,
223
+ canUpdate: PermissionEnum,
224
+ }))
225
+ .min(1)
226
+ .describe('Array of permission entries to add or update'),
227
+ upsert: z
228
+ .boolean()
229
+ .optional()
230
+ .describe('If true (default), update existing permissions rather than duplicating'),
231
+ }, async (params) => {
232
+ try {
233
+ const r = await ctx.pp.addFieldPermissions(params.fieldSecurityProfileId, params.permissions, params.upsert !== false);
234
+ const lines = r.map((p) => ` - ${p.entityName}.${p.attributeLogicalName}: C=${p.canCreate} R=${p.canRead} U=${p.canUpdate}`);
235
+ return ok(`Set ${r.length} field permission(s):\n${lines.join('\n')}`);
236
+ }
237
+ catch (error) {
238
+ console.error('Error in add-field-permissions:', error);
239
+ return err(`Failed to add field permissions: ${error.message}`);
240
+ }
241
+ });
242
+ server.tool('remove-field-permission', 'Remove a single field permission from an FSP by its fieldpermission record id.', {
243
+ fieldPermissionId: z
244
+ .string()
245
+ .describe('GUID of the fieldpermission record to delete'),
246
+ }, async (params) => {
247
+ try {
248
+ await ctx.pp.removeFieldPermission(params.fieldPermissionId);
249
+ return ok(`Removed field permission ${params.fieldPermissionId}`);
250
+ }
251
+ catch (error) {
252
+ console.error('Error in remove-field-permission:', error);
253
+ return err(`Failed to remove field permission: ${error.message}`);
254
+ }
255
+ });
256
+ // ===== ASSIGNMENTS =====
257
+ server.tool('assign-fsp-to-team', 'Assign a Field Security Profile to a team. Idempotent — returns alreadyAssigned=true if the team already has the profile. NOTE: Dataverse does not support direct role-to-FSP assignment; use a team to bridge.', {
258
+ fieldSecurityProfileId: z
259
+ .string()
260
+ .describe('GUID of the field security profile'),
261
+ teamId: z.string().describe('GUID of the team'),
262
+ }, async (params) => {
263
+ try {
264
+ const r = await ctx.pp.assignFspToTeam(params.fieldSecurityProfileId, params.teamId);
265
+ return ok(r.alreadyAssigned
266
+ ? `Team ${params.teamId} already has FSP ${params.fieldSecurityProfileId}`
267
+ : `Assigned FSP ${params.fieldSecurityProfileId} to team ${params.teamId}`);
268
+ }
269
+ catch (error) {
270
+ console.error('Error in assign-fsp-to-team:', error);
271
+ return err(`Failed to assign FSP to team: ${error.message}`);
272
+ }
273
+ });
274
+ server.tool('unassign-fsp-from-team', 'Remove a Field Security Profile from a team.', {
275
+ fieldSecurityProfileId: z
276
+ .string()
277
+ .describe('GUID of the field security profile'),
278
+ teamId: z.string().describe('GUID of the team'),
279
+ }, async (params) => {
280
+ try {
281
+ await ctx.pp.unassignFspFromTeam(params.fieldSecurityProfileId, params.teamId);
282
+ return ok(`Unassigned FSP ${params.fieldSecurityProfileId} from team ${params.teamId}`);
283
+ }
284
+ catch (error) {
285
+ console.error('Error in unassign-fsp-from-team:', error);
286
+ return err(`Failed to unassign FSP from team: ${error.message}`);
287
+ }
288
+ });
289
+ server.tool('assign-fsp-to-user', 'Assign a Field Security Profile directly to a user. Idempotent — returns alreadyAssigned=true if the user already has the profile.', {
290
+ fieldSecurityProfileId: z
291
+ .string()
292
+ .describe('GUID of the field security profile'),
293
+ systemUserId: z.string().describe('GUID of the system user'),
294
+ }, async (params) => {
295
+ try {
296
+ const r = await ctx.pp.assignFspToUser(params.fieldSecurityProfileId, params.systemUserId);
297
+ return ok(r.alreadyAssigned
298
+ ? `User ${params.systemUserId} already has FSP ${params.fieldSecurityProfileId}`
299
+ : `Assigned FSP ${params.fieldSecurityProfileId} to user ${params.systemUserId}`);
300
+ }
301
+ catch (error) {
302
+ console.error('Error in assign-fsp-to-user:', error);
303
+ return err(`Failed to assign FSP to user: ${error.message}`);
304
+ }
305
+ });
306
+ server.tool('unassign-fsp-from-user', 'Remove a Field Security Profile from a user.', {
307
+ fieldSecurityProfileId: z
308
+ .string()
309
+ .describe('GUID of the field security profile'),
310
+ systemUserId: z.string().describe('GUID of the system user'),
311
+ }, async (params) => {
312
+ try {
313
+ await ctx.pp.unassignFspFromUser(params.fieldSecurityProfileId, params.systemUserId);
314
+ return ok(`Unassigned FSP ${params.fieldSecurityProfileId} from user ${params.systemUserId}`);
315
+ }
316
+ catch (error) {
317
+ console.error('Error in unassign-fsp-from-user:', error);
318
+ return err(`Failed to unassign FSP from user: ${error.message}`);
319
+ }
320
+ });
321
+ }
322
+ //# sourceMappingURL=field-security-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-security-tools.js","sourceRoot":"","sources":["../../src/tools/field-security-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ServiceContext } from '../types.js';
2
+ export declare function registerFormFileTools(server: any, ctx: ServiceContext): void;
3
+ //# sourceMappingURL=form-file-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-file-tools.d.ts","sourceRoot":"","sources":["../../src/tools/form-file-tools.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CA4H5E"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Form File Workflow Tools - 3 tools for download/deploy/diff of form XML via local files.
3
+ *
4
+ * Mirrors the deploy-web-resource-file pattern so form edits can live in source control,
5
+ * be diffable, and deploy deterministically across environments.
6
+ *
7
+ * Tools: download-form-to-file, deploy-form-file, diff-form-file
8
+ */
9
+ import { z } from 'zod';
10
+ import { descWithExamples, ENTITY_NAME_EXAMPLES, FORM_FILE_PATH_EXAMPLES, SOLUTION_NAME_EXAMPLES } from '../tool-examples.js';
11
+ export function registerFormFileTools(server, ctx) {
12
+ server.tool("download-form-to-file", "Download a form's XML to a local file for source-controlled editing. Writes the formxml verbatim (no re-serialisation — whitespace preserved), plus a sidecar <filePath>.meta.json with formId/versionNumber/etc., plus a timestamped snapshot under <filePath>.history/. " +
13
+ "Resolve the form by `formId`, or by `entityLogicalName` + `formName` (+ optional `formType`), or by `entityLogicalName` + `formType` when exactly one form of that type exists. " +
14
+ "Overwrites the target file — Dataverse is the source of truth. Pair with `deploy-form-file` to upload changes.", {
15
+ filePath: z.string().describe(descWithExamples("Local file path to write the form XML to. Parent directories are created as needed.", FORM_FILE_PATH_EXAMPLES)),
16
+ formId: z.string().optional().describe("Form ID (GUID). If provided, overrides entity/name/type lookup."),
17
+ entityLogicalName: z.string().optional().describe(descWithExamples("Entity logical name (required when formId not provided)", ENTITY_NAME_EXAMPLES)),
18
+ formName: z.string().optional().describe("Form display name (e.g., 'Contact', 'Information'). Combined with entityLogicalName and optional formType."),
19
+ formType: z.enum(["Main", "QuickCreate", "QuickView", "Card"]).optional().describe("Form type filter. Useful when the same name exists across types, or to pick the only form of a given type on the entity."),
20
+ }, async ({ filePath, formId, entityLogicalName, formName, formType }) => {
21
+ try {
22
+ const service = ctx.pp;
23
+ const result = await service.downloadFormToFile(filePath, {
24
+ formId, entityLogicalName, formName, formType,
25
+ });
26
+ return {
27
+ content: [{
28
+ type: "text",
29
+ text: `Downloaded form '${result.name}' (${result.formType}) from entity '${result.entityLogicalName}'.\n` +
30
+ `File: ${result.filePath}\n` +
31
+ `Sidecar: ${result.metaPath}\n` +
32
+ `History: ${result.historyPath}\n` +
33
+ `Form ID: ${result.formId}\n` +
34
+ `Version: ${result.versionNumber}\n` +
35
+ `Size: ${result.byteCount} bytes`,
36
+ }],
37
+ };
38
+ }
39
+ catch (error) {
40
+ console.error("Error downloading form to file:", error);
41
+ return { content: [{ type: "text", text: `Failed to download form: ${error.message}` }], isError: true };
42
+ }
43
+ });
44
+ server.tool("deploy-form-file", "Deploy a local form XML file to Dataverse — PATCH the systemform's formxml with the file's bytes verbatim. " +
45
+ "Reads the target formId from the sidecar <filePath>.meta.json unless overridden. " +
46
+ "Use `expectedVersionNumber` for optimistic concurrency (rejects if the remote has changed since download). " +
47
+ "Writes a timestamped snapshot under <filePath>.history/ so every upload is audit-loggable. " +
48
+ "Requires publish-customizations afterwards.", {
49
+ filePath: z.string().describe(descWithExamples("Local file path of the form XML to deploy.", FORM_FILE_PATH_EXAMPLES)),
50
+ formId: z.string().optional().describe("Override the target form ID (defaults to the value in the sidecar .meta.json)."),
51
+ expectedVersionNumber: z.string().optional().describe("Optimistic concurrency check — reject if remote's versionnumber doesn't match. Pass the value from the sidecar .meta.json."),
52
+ solutionUniqueName: z.string().optional().describe(descWithExamples("Solution to add the form to (MSCRM.SolutionUniqueName header).", SOLUTION_NAME_EXAMPLES)),
53
+ }, async ({ filePath, formId, expectedVersionNumber, solutionUniqueName }) => {
54
+ try {
55
+ const service = ctx.pp;
56
+ const POWERPLATFORM_DEFAULT_SOLUTION = process.env.POWERPLATFORM_DEFAULT_SOLUTION || "";
57
+ const solution = solutionUniqueName || POWERPLATFORM_DEFAULT_SOLUTION || undefined;
58
+ const result = await service.deployFormFromFile(filePath, {
59
+ formId, expectedVersionNumber, solutionUniqueName: solution,
60
+ });
61
+ return {
62
+ content: [{
63
+ type: "text",
64
+ text: `Deployed form file '${result.filePath}'.\n` +
65
+ `Form ID: ${result.formId}\n` +
66
+ `Previous version: ${result.previousVersionNumber}\n` +
67
+ `New version: ${result.newVersionNumber}\n` +
68
+ `Size: ${result.byteCount} bytes\n` +
69
+ `History snapshot: ${result.historyPath}\n\n` +
70
+ `IMPORTANT: You must publish this customization using the 'publish-customizations' tool before it becomes active.`,
71
+ }],
72
+ };
73
+ }
74
+ catch (error) {
75
+ console.error("Error deploying form file:", error);
76
+ return { content: [{ type: "text", text: `Failed to deploy form file: ${error.message}` }], isError: true };
77
+ }
78
+ });
79
+ server.tool("diff-form-file", "Compare a local form XML file to the current remote form — does NOT modify anything. " +
80
+ "Use before `deploy-form-file` to sanity-check scope of change, or to detect that the remote has drifted since download. " +
81
+ "Returns whether files are byte-identical and both sizes/versions.", {
82
+ filePath: z.string().describe(descWithExamples("Local file path of the form XML to compare.", FORM_FILE_PATH_EXAMPLES)),
83
+ formId: z.string().optional().describe("Override the target form ID (defaults to the value in the sidecar .meta.json)."),
84
+ }, async ({ filePath, formId }) => {
85
+ try {
86
+ const service = ctx.pp;
87
+ const result = await service.diffFormWithFile(filePath, { formId });
88
+ const verdict = result.identical ? 'IDENTICAL' : 'DIFFERENT';
89
+ const versionNote = result.localVersion && result.localVersion !== result.remoteVersion
90
+ ? ` — WARNING: remote version (${result.remoteVersion}) moved since download (${result.localVersion})`
91
+ : '';
92
+ return {
93
+ content: [{
94
+ type: "text",
95
+ text: `Diff verdict: ${verdict}${versionNote}\n` +
96
+ `Form ID: ${result.formId}\n` +
97
+ `Local size: ${result.localSize} bytes\n` +
98
+ `Remote size: ${result.remoteSize} bytes\n` +
99
+ `Local version: ${result.localVersion ?? 'n/a'}\n` +
100
+ `Remote version: ${result.remoteVersion}`,
101
+ }],
102
+ };
103
+ }
104
+ catch (error) {
105
+ console.error("Error diffing form file:", error);
106
+ return { content: [{ type: "text", text: `Failed to diff form file: ${error.message}` }], isError: true };
107
+ }
108
+ });
109
+ }
110
+ //# sourceMappingURL=form-file-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-file-tools.js","sourceRoot":"","sources":["../../src/tools/form-file-tools.ts"],"names":[],"mappings":"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"}
@@ -8,10 +8,12 @@ export { registerAttributeTools } from './attribute-tools.js';
8
8
  export { registerRelationshipTools } from './relationship-tools.js';
9
9
  export { registerOptionSetTools } from './optionset-tools.js';
10
10
  export { registerFormViewTools } from './form-view-tools.js';
11
+ export { registerFormFileTools } from './form-file-tools.js';
11
12
  export { registerWebResourceTools } from './web-resource-tools.js';
12
13
  export { registerSolutionTools } from './solution-tools.js';
13
14
  export { registerPluginTools } from './plugin-tools.js';
14
15
  export { registerWorkflowTools } from './workflow-tools.js';
15
16
  export { registerFlowTools } from './flow-tools.js';
16
17
  export { registerAppEndpointTools } from './app-endpoint-tools.js';
18
+ export { registerFieldSecurityTools } from './field-security-tools.js';
17
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAalD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAgBvE;AAED,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAelD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAmBvE;AAED,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC"}
@@ -3,37 +3,44 @@ import { registerAttributeTools } from './attribute-tools.js';
3
3
  import { registerRelationshipTools } from './relationship-tools.js';
4
4
  import { registerOptionSetTools } from './optionset-tools.js';
5
5
  import { registerFormViewTools } from './form-view-tools.js';
6
+ import { registerFormFileTools } from './form-file-tools.js';
6
7
  import { registerWebResourceTools } from './web-resource-tools.js';
7
8
  import { registerSolutionTools } from './solution-tools.js';
8
9
  import { registerPluginTools } from './plugin-tools.js';
9
10
  import { registerWorkflowTools } from './workflow-tools.js';
10
11
  import { registerFlowTools } from './flow-tools.js';
11
12
  import { registerAppEndpointTools } from './app-endpoint-tools.js';
13
+ import { registerFieldSecurityTools } from './field-security-tools.js';
12
14
  export function registerAllTools(server, ctx) {
13
15
  registerEntityTools(server, ctx);
14
16
  registerAttributeTools(server, ctx);
15
17
  registerRelationshipTools(server, ctx);
16
18
  registerOptionSetTools(server, ctx);
17
19
  registerFormViewTools(server, ctx);
20
+ registerFormFileTools(server, ctx);
18
21
  registerWebResourceTools(server, ctx);
19
22
  registerSolutionTools(server, ctx);
20
23
  registerPluginTools(server, ctx);
21
24
  registerWorkflowTools(server, ctx);
22
25
  registerFlowTools(server, ctx);
23
26
  registerAppEndpointTools(server, ctx);
24
- // 4 entity + 4 attribute + 4 relationship + 6 optionset + 9 form-view + 4 web-resource
25
- // + 8 solution + 8 plugin + 6 workflow + 11 flow + 7 app-endpoint = 71
26
- console.error(`powerplatform-customization tools registered: 71 tools`);
27
+ registerFieldSecurityTools(server, ctx);
28
+ // 4 entity + 4 attribute + 4 relationship + 6 optionset + 9 form-view + 3 form-file
29
+ // + 4 web-resource + 8 solution + 8 plugin + 6 workflow + 11 flow + 7 app-endpoint
30
+ // + 14 field-security = 88
31
+ console.error(`powerplatform-customization tools registered: 88 tools`);
27
32
  }
28
33
  export { registerEntityTools } from './entity-tools.js';
29
34
  export { registerAttributeTools } from './attribute-tools.js';
30
35
  export { registerRelationshipTools } from './relationship-tools.js';
31
36
  export { registerOptionSetTools } from './optionset-tools.js';
32
37
  export { registerFormViewTools } from './form-view-tools.js';
38
+ export { registerFormFileTools } from './form-file-tools.js';
33
39
  export { registerWebResourceTools } from './web-resource-tools.js';
34
40
  export { registerSolutionTools } from './solution-tools.js';
35
41
  export { registerPluginTools } from './plugin-tools.js';
36
42
  export { registerWorkflowTools } from './workflow-tools.js';
37
43
  export { registerFlowTools } from './flow-tools.js';
38
44
  export { registerAppEndpointTools } from './app-endpoint-tools.js';
45
+ export { registerFieldSecurityTools } from './field-security-tools.js';
39
46
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,MAAM,UAAU,gBAAgB,CAAC,MAAW,EAAE,GAAmB;IAC/D,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,yBAAyB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACvC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEtC,uFAAuF;IACvF,uEAAuE;IACvE,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;AAC1E,CAAC;AAED,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,MAAM,UAAU,gBAAgB,CAAC,MAAW,EAAE,GAAmB;IAC/D,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,yBAAyB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACvC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,0BAA0B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAExC,oFAAoF;IACpF,mFAAmF;IACnF,2BAA2B;IAC3B,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;AAC1E,CAAC;AAED,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-consultant-tools/powerplatform-customization",
3
- "version": "30.0.0-beta.4",
3
+ "version": "30.0.0-beta.6",
4
4
  "description": "MCP server for PowerPlatform schema/metadata customizations (dev/config environments)",
5
5
  "type": "module",
6
6
  "main": "./build/index.js",
@@ -40,7 +40,7 @@
40
40
  },
41
41
  "dependencies": {
42
42
  "@mcp-consultant-tools/core": "30.0.0-beta.1",
43
- "@mcp-consultant-tools/powerplatform-core": "30.0.0-beta.1",
43
+ "@mcp-consultant-tools/powerplatform-core": "30.0.0-beta.5",
44
44
  "@modelcontextprotocol/sdk": "^1.0.4",
45
45
  "commander": "^14.0.3",
46
46
  "zod": "^3.24.1"