@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.
- package/build/PowerPlatformService.d.ts +138 -1
- package/build/PowerPlatformService.d.ts.map +1 -1
- package/build/PowerPlatformService.js +316 -3
- package/build/PowerPlatformService.js.map +1 -1
- package/build/cli/commands/field-security-commands.d.ts +7 -0
- package/build/cli/commands/field-security-commands.d.ts.map +1 -0
- package/build/cli/commands/field-security-commands.js +232 -0
- package/build/cli/commands/field-security-commands.js.map +1 -0
- package/build/cli/commands/form-commands.d.ts.map +1 -1
- package/build/cli/commands/form-commands.js +61 -0
- package/build/cli/commands/form-commands.js.map +1 -1
- package/build/cli/commands/index.d.ts +1 -0
- package/build/cli/commands/index.d.ts.map +1 -1
- package/build/cli/commands/index.js +3 -0
- package/build/cli/commands/index.js.map +1 -1
- package/build/tool-examples.d.ts +12 -0
- package/build/tool-examples.d.ts.map +1 -1
- package/build/tool-examples.js +17 -0
- package/build/tool-examples.js.map +1 -1
- package/build/tools/field-security-tools.d.ts +3 -0
- package/build/tools/field-security-tools.d.ts.map +1 -0
- package/build/tools/field-security-tools.js +322 -0
- package/build/tools/field-security-tools.js.map +1 -0
- package/build/tools/form-file-tools.d.ts +3 -0
- package/build/tools/form-file-tools.d.ts.map +1 -0
- package/build/tools/form-file-tools.js +110 -0
- package/build/tools/form-file-tools.js.map +1 -0
- package/build/tools/index.d.ts +2 -0
- package/build/tools/index.d.ts.map +1 -1
- package/build/tools/index.js +10 -3
- package/build/tools/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -7,8 +7,50 @@
|
|
|
7
7
|
* For read-only operations, use @mcp-consultant-tools/powerplatform.
|
|
8
8
|
* For data CRUD operations, use @mcp-consultant-tools/powerplatform-data.
|
|
9
9
|
*/
|
|
10
|
-
import { type PowerPlatformConfig, type ApiCollectionResponse, type FlowRunFilterOptions, type FlowRunsResult, type RegisterPluginStepOptions, type RegisterPluginImageOptions, type CreateServiceEndpointOptions, type UpdateServiceEndpointOptions, type ServiceEndpointCreateResult, type RegisterWebhookOptions, type RegisterWebhookResult, type AuthProvider } from '@mcp-consultant-tools/powerplatform-core';
|
|
10
|
+
import { type PowerPlatformConfig, type ApiCollectionResponse, type FlowRunFilterOptions, type FlowRunsResult, type FieldPermissionValue, type FieldSecurityProfileSummary, type FieldSecurityProfileDetail, type FieldPermissionRecord, type SecuredColumnInfo, type RegisterPluginStepOptions, type RegisterPluginImageOptions, type CreateServiceEndpointOptions, type UpdateServiceEndpointOptions, type ServiceEndpointCreateResult, type RegisterWebhookOptions, type RegisterWebhookResult, type AuthProvider } from '@mcp-consultant-tools/powerplatform-core';
|
|
11
11
|
export type { PowerPlatformConfig, ApiCollectionResponse };
|
|
12
|
+
export type FormTypeName = 'Main' | 'QuickCreate' | 'QuickView' | 'Card';
|
|
13
|
+
export interface FormFileSidecarMeta {
|
|
14
|
+
formId: string;
|
|
15
|
+
entityLogicalName: string;
|
|
16
|
+
formType: FormTypeName;
|
|
17
|
+
name: string;
|
|
18
|
+
versionNumber: string;
|
|
19
|
+
downloadedAt: string;
|
|
20
|
+
lastUploaded?: {
|
|
21
|
+
at: string;
|
|
22
|
+
previousVersionNumber: string;
|
|
23
|
+
versionNumber: string;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export interface DownloadFormResult {
|
|
27
|
+
filePath: string;
|
|
28
|
+
metaPath: string;
|
|
29
|
+
historyPath: string;
|
|
30
|
+
formId: string;
|
|
31
|
+
entityLogicalName: string;
|
|
32
|
+
formType: FormTypeName;
|
|
33
|
+
name: string;
|
|
34
|
+
versionNumber: string;
|
|
35
|
+
byteCount: number;
|
|
36
|
+
}
|
|
37
|
+
export interface DeployFormResult {
|
|
38
|
+
filePath: string;
|
|
39
|
+
formId: string;
|
|
40
|
+
action: 'updated';
|
|
41
|
+
previousVersionNumber: string;
|
|
42
|
+
newVersionNumber: string;
|
|
43
|
+
byteCount: number;
|
|
44
|
+
historyPath: string;
|
|
45
|
+
}
|
|
46
|
+
export interface DiffFormResult {
|
|
47
|
+
formId: string;
|
|
48
|
+
identical: boolean;
|
|
49
|
+
localSize: number;
|
|
50
|
+
remoteSize: number;
|
|
51
|
+
localVersion?: string;
|
|
52
|
+
remoteVersion: string;
|
|
53
|
+
}
|
|
12
54
|
export declare class PowerPlatformService {
|
|
13
55
|
private client;
|
|
14
56
|
private metadata;
|
|
@@ -32,6 +74,7 @@ export declare class PowerPlatformService {
|
|
|
32
74
|
private appManagement;
|
|
33
75
|
private workflowManagement;
|
|
34
76
|
private serviceEndpoint;
|
|
77
|
+
private fieldSecurity;
|
|
35
78
|
constructor(config: PowerPlatformConfig, authProvider?: AuthProvider);
|
|
36
79
|
getAuthMode(): 'service-principal' | 'interactive';
|
|
37
80
|
getUserInfo(): Promise<{
|
|
@@ -132,6 +175,45 @@ export declare class PowerPlatformService {
|
|
|
132
175
|
deleteForm(formId: string): Promise<void>;
|
|
133
176
|
activateForm(formId: string): Promise<void>;
|
|
134
177
|
deactivateForm(formId: string): Promise<void>;
|
|
178
|
+
/**
|
|
179
|
+
* Fetch a single systemform by id (returns formid, objecttypecode, name, type, formxml, versionnumber).
|
|
180
|
+
*/
|
|
181
|
+
private fetchSystemFormById;
|
|
182
|
+
/**
|
|
183
|
+
* Resolve a form by (entity + name + formType) to a single systemform record.
|
|
184
|
+
* Throws if zero or multiple matches.
|
|
185
|
+
*/
|
|
186
|
+
private resolveFormByName;
|
|
187
|
+
private getFormTypeName;
|
|
188
|
+
/**
|
|
189
|
+
* Download a form's XML to a local file, writing a sidecar .meta.json and a history snapshot.
|
|
190
|
+
* Overwrites the target file — Dataverse is the source of truth.
|
|
191
|
+
*
|
|
192
|
+
* Resolution: provide either `formId`, or (`entityLogicalName` + `formName` + optional `formType`),
|
|
193
|
+
* or (`entityLogicalName` + `formType`) when exactly one form of that type exists on the entity.
|
|
194
|
+
*/
|
|
195
|
+
downloadFormToFile(filePath: string, options: {
|
|
196
|
+
formId?: string;
|
|
197
|
+
entityLogicalName?: string;
|
|
198
|
+
formName?: string;
|
|
199
|
+
formType?: FormTypeName;
|
|
200
|
+
}): Promise<DownloadFormResult>;
|
|
201
|
+
/**
|
|
202
|
+
* Read a local form XML file and PATCH it to Dataverse. Preserves bytes verbatim — never re-parses.
|
|
203
|
+
* Resolves the target formId from the sidecar .meta.json unless overridden.
|
|
204
|
+
*/
|
|
205
|
+
deployFormFromFile(filePath: string, options: {
|
|
206
|
+
formId?: string;
|
|
207
|
+
expectedVersionNumber?: string;
|
|
208
|
+
solutionUniqueName?: string;
|
|
209
|
+
}): Promise<DeployFormResult>;
|
|
210
|
+
/**
|
|
211
|
+
* Compare a local form file to the current remote form. Returns whether they're identical
|
|
212
|
+
* and basic metrics — does NOT modify anything.
|
|
213
|
+
*/
|
|
214
|
+
diffFormWithFile(filePath: string, options: {
|
|
215
|
+
formId?: string;
|
|
216
|
+
}): Promise<DiffFormResult>;
|
|
135
217
|
getViews(entityLogicalName: string): Promise<unknown>;
|
|
136
218
|
getViewFetchXml(viewId: string): Promise<unknown>;
|
|
137
219
|
createView(name: string, entityLogicalName: string, fetchXml: string, layoutXml: string, options?: {
|
|
@@ -285,5 +367,60 @@ export declare class PowerPlatformService {
|
|
|
285
367
|
updateServiceEndpoint(options: UpdateServiceEndpointOptions): Promise<void>;
|
|
286
368
|
deleteServiceEndpoint(serviceEndpointId: string): Promise<void>;
|
|
287
369
|
registerWebhook(options: RegisterWebhookOptions): Promise<RegisterWebhookResult>;
|
|
370
|
+
/**
|
|
371
|
+
* Set the IsSecured flag on a column. Reuses AttributeService.updateAttribute
|
|
372
|
+
* (which fetches the current attribute to recover the correct @odata.type)
|
|
373
|
+
* and PublishingService.publishEntity for the post-update publish.
|
|
374
|
+
*/
|
|
375
|
+
setColumnSecured(entityLogicalName: string, attributeLogicalName: string, isSecured: boolean, publishAfter?: boolean): Promise<{
|
|
376
|
+
entityLogicalName: string;
|
|
377
|
+
attributeLogicalName: string;
|
|
378
|
+
isSecured: boolean;
|
|
379
|
+
previousValue: boolean;
|
|
380
|
+
}>;
|
|
381
|
+
/**
|
|
382
|
+
* Batch wrapper — secure or unsecure multiple columns on the same entity in
|
|
383
|
+
* one logical operation, with a single publish at the end.
|
|
384
|
+
*/
|
|
385
|
+
setColumnsSecured(entityLogicalName: string, attributeLogicalNames: string[], isSecured: boolean, publishAfter?: boolean): Promise<Array<{
|
|
386
|
+
attributeLogicalName: string;
|
|
387
|
+
isSecured: boolean;
|
|
388
|
+
previousValue: boolean;
|
|
389
|
+
changed: boolean;
|
|
390
|
+
}>>;
|
|
391
|
+
createFieldSecurityProfile(name: string, description?: string, solutionUniqueName?: string): Promise<FieldSecurityProfileSummary>;
|
|
392
|
+
updateFieldSecurityProfile(fieldSecurityProfileId: string, updates: {
|
|
393
|
+
name?: string;
|
|
394
|
+
description?: string;
|
|
395
|
+
}): Promise<void>;
|
|
396
|
+
deleteFieldSecurityProfile(fieldSecurityProfileId: string): Promise<void>;
|
|
397
|
+
listFieldSecurityProfiles(namePattern?: string): Promise<FieldSecurityProfileSummary[]>;
|
|
398
|
+
getFieldSecurityProfile(fieldSecurityProfileId: string): Promise<FieldSecurityProfileDetail>;
|
|
399
|
+
addFieldPermission(options: {
|
|
400
|
+
fieldSecurityProfileId: string;
|
|
401
|
+
entityLogicalName: string;
|
|
402
|
+
attributeLogicalName: string;
|
|
403
|
+
canCreate: FieldPermissionValue;
|
|
404
|
+
canRead: FieldPermissionValue;
|
|
405
|
+
canUpdate: FieldPermissionValue;
|
|
406
|
+
upsert?: boolean;
|
|
407
|
+
}): Promise<FieldPermissionRecord>;
|
|
408
|
+
addFieldPermissions(fieldSecurityProfileId: string, permissions: Array<{
|
|
409
|
+
entityLogicalName: string;
|
|
410
|
+
attributeLogicalName: string;
|
|
411
|
+
canCreate: FieldPermissionValue;
|
|
412
|
+
canRead: FieldPermissionValue;
|
|
413
|
+
canUpdate: FieldPermissionValue;
|
|
414
|
+
}>, upsert?: boolean): Promise<FieldPermissionRecord[]>;
|
|
415
|
+
removeFieldPermission(fieldPermissionId: string): Promise<void>;
|
|
416
|
+
assignFspToTeam(fieldSecurityProfileId: string, teamId: string): Promise<{
|
|
417
|
+
alreadyAssigned: boolean;
|
|
418
|
+
}>;
|
|
419
|
+
unassignFspFromTeam(fieldSecurityProfileId: string, teamId: string): Promise<void>;
|
|
420
|
+
assignFspToUser(fieldSecurityProfileId: string, systemUserId: string): Promise<{
|
|
421
|
+
alreadyAssigned: boolean;
|
|
422
|
+
}>;
|
|
423
|
+
unassignFspFromUser(fieldSecurityProfileId: string, systemUserId: string): Promise<void>;
|
|
424
|
+
getSecuredColumns(entityLogicalName: string): Promise<SecuredColumnInfo[]>;
|
|
288
425
|
}
|
|
289
426
|
//# sourceMappingURL=PowerPlatformService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PowerPlatformService.d.ts","sourceRoot":"","sources":["../src/PowerPlatformService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PowerPlatformService.d.ts","sourceRoot":"","sources":["../src/PowerPlatformService.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,9 +13,9 @@ PowerPlatformClient,
|
|
|
13
13
|
// Read-only services (needed for inspecting before customizing)
|
|
14
14
|
MetadataService, PluginService, FlowService, WorkflowService, BusinessRuleService, AppService, ValidationService,
|
|
15
15
|
// Customization services
|
|
16
|
-
EntityService, AttributeService, RelationshipService, OptionSetService, FormService, ViewService, WebResourceService, SolutionService, PublishingService, DependencyService, PluginDeploymentService, AppManagementService, WorkflowManagementService, ServiceEndpointService, createAuthProvider, } from '@mcp-consultant-tools/powerplatform-core';
|
|
17
|
-
import { readFile } from 'node:fs/promises';
|
|
18
|
-
import { resolve, basename, extname } from 'node:path';
|
|
16
|
+
EntityService, AttributeService, RelationshipService, OptionSetService, FormService, ViewService, WebResourceService, SolutionService, PublishingService, DependencyService, PluginDeploymentService, AppManagementService, WorkflowManagementService, ServiceEndpointService, FieldSecurityService, createAuthProvider, } from '@mcp-consultant-tools/powerplatform-core';
|
|
17
|
+
import { readFile, writeFile, mkdir } from 'node:fs/promises';
|
|
18
|
+
import { resolve, basename, extname, dirname, join } from 'node:path';
|
|
19
19
|
export class PowerPlatformService {
|
|
20
20
|
client;
|
|
21
21
|
// Read-only services
|
|
@@ -41,6 +41,7 @@ export class PowerPlatformService {
|
|
|
41
41
|
appManagement;
|
|
42
42
|
workflowManagement;
|
|
43
43
|
serviceEndpoint;
|
|
44
|
+
fieldSecurity;
|
|
44
45
|
constructor(config, authProvider) {
|
|
45
46
|
const auth = authProvider ||
|
|
46
47
|
createAuthProvider({
|
|
@@ -74,6 +75,7 @@ export class PowerPlatformService {
|
|
|
74
75
|
this.appManagement = new AppManagementService(this.client, async (appId) => this.app.getAppSitemap(appId));
|
|
75
76
|
this.workflowManagement = new WorkflowManagementService(this.client);
|
|
76
77
|
this.serviceEndpoint = new ServiceEndpointService(this.client, (solutionUniqueName, componentId, componentType) => this.solution.addComponentToSolution(solutionUniqueName, componentId, componentType), (messageName, entityName) => this.pluginDeployment.resolveSdkMessageAndFilter(messageName, entityName));
|
|
78
|
+
this.fieldSecurity = new FieldSecurityService(this.client);
|
|
77
79
|
}
|
|
78
80
|
// =====================================================
|
|
79
81
|
// AUTH METHODS
|
|
@@ -312,6 +314,230 @@ export class PowerPlatformService {
|
|
|
312
314
|
return this.form.deactivateForm(formId);
|
|
313
315
|
}
|
|
314
316
|
// =====================================================
|
|
317
|
+
// FORM FILE WORKFLOW METHODS (download / deploy / diff)
|
|
318
|
+
// =====================================================
|
|
319
|
+
/**
|
|
320
|
+
* Fetch a single systemform by id (returns formid, objecttypecode, name, type, formxml, versionnumber).
|
|
321
|
+
*/
|
|
322
|
+
async fetchSystemFormById(formId) {
|
|
323
|
+
return this.client.makeRequest(`api/data/v9.2/systemforms(${formId})?$select=formid,objecttypecode,name,type,formxml,versionnumber,description`);
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Resolve a form by (entity + name + formType) to a single systemform record.
|
|
327
|
+
* Throws if zero or multiple matches.
|
|
328
|
+
*/
|
|
329
|
+
async resolveFormByName(entityLogicalName, formName, formType) {
|
|
330
|
+
const filters = [`objecttypecode eq '${entityLogicalName}'`];
|
|
331
|
+
if (formName) {
|
|
332
|
+
filters.push(`name eq '${formName.replace(/'/g, "''")}'`);
|
|
333
|
+
}
|
|
334
|
+
if (formType) {
|
|
335
|
+
filters.push(`type eq ${this.getFormTypeCode(formType)}`);
|
|
336
|
+
}
|
|
337
|
+
const url = `api/data/v9.2/systemforms?$filter=${encodeURIComponent(filters.join(' and '))}&$select=formid,objecttypecode,name,type,formxml,versionnumber,description`;
|
|
338
|
+
const response = await this.client.makeRequest(url);
|
|
339
|
+
const matches = response.value || [];
|
|
340
|
+
if (matches.length === 0) {
|
|
341
|
+
const criteria = `entity='${entityLogicalName}'${formName ? `, name='${formName}'` : ''}${formType ? `, type='${formType}'` : ''}`;
|
|
342
|
+
throw new Error(`No form found for ${criteria}. Verify entity, name, and type (Main/QuickCreate/QuickView/Card).`);
|
|
343
|
+
}
|
|
344
|
+
if (matches.length > 1) {
|
|
345
|
+
const listed = matches
|
|
346
|
+
.map((m) => ` - ${m.name} (${this.getFormTypeName(m.type)}, id=${m.formid})`)
|
|
347
|
+
.join('\n');
|
|
348
|
+
throw new Error(`Multiple forms match the criteria. Provide formId or narrow by formType/formName:\n${listed}`);
|
|
349
|
+
}
|
|
350
|
+
return matches[0];
|
|
351
|
+
}
|
|
352
|
+
getFormTypeName(typeCode) {
|
|
353
|
+
const map = { 2: 'Main', 7: 'QuickCreate', 6: 'QuickView', 11: 'Card' };
|
|
354
|
+
return map[typeCode] || 'Main';
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Download a form's XML to a local file, writing a sidecar .meta.json and a history snapshot.
|
|
358
|
+
* Overwrites the target file — Dataverse is the source of truth.
|
|
359
|
+
*
|
|
360
|
+
* Resolution: provide either `formId`, or (`entityLogicalName` + `formName` + optional `formType`),
|
|
361
|
+
* or (`entityLogicalName` + `formType`) when exactly one form of that type exists on the entity.
|
|
362
|
+
*/
|
|
363
|
+
async downloadFormToFile(filePath, options) {
|
|
364
|
+
const resolvedPath = resolve(filePath.replace(/\\/g, '/'));
|
|
365
|
+
let form;
|
|
366
|
+
if (options.formId) {
|
|
367
|
+
form = await this.fetchSystemFormById(options.formId);
|
|
368
|
+
}
|
|
369
|
+
else {
|
|
370
|
+
if (!options.entityLogicalName) {
|
|
371
|
+
throw new Error("Provide 'formId', or 'entityLogicalName' with 'formName' and/or 'formType'.");
|
|
372
|
+
}
|
|
373
|
+
form = await this.resolveFormByName(options.entityLogicalName, options.formName, options.formType);
|
|
374
|
+
}
|
|
375
|
+
const formXml = form.formxml ?? '';
|
|
376
|
+
if (!formXml) {
|
|
377
|
+
throw new Error(`Form '${form.formid}' has empty formxml — nothing to download.`);
|
|
378
|
+
}
|
|
379
|
+
const byteCount = Buffer.byteLength(formXml, 'utf8');
|
|
380
|
+
const formTypeName = this.getFormTypeName(form.type);
|
|
381
|
+
const entityLogicalName = form.objecttypecode;
|
|
382
|
+
const formName = form.name;
|
|
383
|
+
const formId = form.formid;
|
|
384
|
+
const versionNumber = String(form.versionnumber ?? '');
|
|
385
|
+
// Ensure target directory exists
|
|
386
|
+
await mkdir(dirname(resolvedPath), { recursive: true });
|
|
387
|
+
// Write formxml verbatim — NEVER re-serialize
|
|
388
|
+
await writeFile(resolvedPath, formXml, { encoding: 'utf8' });
|
|
389
|
+
// Sidecar meta
|
|
390
|
+
const metaPath = `${resolvedPath}.meta.json`;
|
|
391
|
+
const downloadedAt = new Date().toISOString();
|
|
392
|
+
const meta = {
|
|
393
|
+
formId,
|
|
394
|
+
entityLogicalName,
|
|
395
|
+
formType: formTypeName,
|
|
396
|
+
name: formName,
|
|
397
|
+
versionNumber,
|
|
398
|
+
downloadedAt,
|
|
399
|
+
};
|
|
400
|
+
await writeFile(metaPath, JSON.stringify(meta, null, 2) + '\n', { encoding: 'utf8' });
|
|
401
|
+
// History snapshot
|
|
402
|
+
const historyDir = `${resolvedPath}.history`;
|
|
403
|
+
await mkdir(historyDir, { recursive: true });
|
|
404
|
+
const stamp = downloadedAt.replace(/[:.]/g, '-');
|
|
405
|
+
const historyXmlPath = join(historyDir, `${stamp}-download.xml`);
|
|
406
|
+
const historyMetaPath = join(historyDir, `${stamp}-download.meta.json`);
|
|
407
|
+
await writeFile(historyXmlPath, formXml, { encoding: 'utf8' });
|
|
408
|
+
await writeFile(historyMetaPath, JSON.stringify(meta, null, 2) + '\n', { encoding: 'utf8' });
|
|
409
|
+
return {
|
|
410
|
+
filePath: resolvedPath,
|
|
411
|
+
metaPath,
|
|
412
|
+
historyPath: historyXmlPath,
|
|
413
|
+
formId,
|
|
414
|
+
entityLogicalName,
|
|
415
|
+
formType: formTypeName,
|
|
416
|
+
name: formName,
|
|
417
|
+
versionNumber,
|
|
418
|
+
byteCount,
|
|
419
|
+
};
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Read a local form XML file and PATCH it to Dataverse. Preserves bytes verbatim — never re-parses.
|
|
423
|
+
* Resolves the target formId from the sidecar .meta.json unless overridden.
|
|
424
|
+
*/
|
|
425
|
+
async deployFormFromFile(filePath, options) {
|
|
426
|
+
const resolvedPath = resolve(filePath.replace(/\\/g, '/'));
|
|
427
|
+
const metaPath = `${resolvedPath}.meta.json`;
|
|
428
|
+
// Read file bytes
|
|
429
|
+
let fileContent;
|
|
430
|
+
try {
|
|
431
|
+
fileContent = await readFile(resolvedPath, { encoding: 'utf8' });
|
|
432
|
+
}
|
|
433
|
+
catch (error) {
|
|
434
|
+
if (error.code === 'ENOENT') {
|
|
435
|
+
throw new Error(`File not found: '${resolvedPath}'`);
|
|
436
|
+
}
|
|
437
|
+
throw new Error(`Failed to read file '${resolvedPath}': ${error.message}`);
|
|
438
|
+
}
|
|
439
|
+
if (!fileContent || fileContent.trim().length === 0) {
|
|
440
|
+
throw new Error(`File is empty: '${resolvedPath}'`);
|
|
441
|
+
}
|
|
442
|
+
// Minimal sanity check — must contain a <form> element. Deep well-formedness
|
|
443
|
+
// is enforced by Dataverse on PATCH; local check keeps changes observable.
|
|
444
|
+
if (!/<form(\s|>)/.test(fileContent)) {
|
|
445
|
+
throw new Error(`File '${resolvedPath}' does not appear to contain a <form> element. Aborting before upload.`);
|
|
446
|
+
}
|
|
447
|
+
// Load sidecar meta (if any)
|
|
448
|
+
let sidecarMeta;
|
|
449
|
+
try {
|
|
450
|
+
const metaRaw = await readFile(metaPath, { encoding: 'utf8' });
|
|
451
|
+
sidecarMeta = JSON.parse(metaRaw);
|
|
452
|
+
}
|
|
453
|
+
catch (error) {
|
|
454
|
+
if (error.code !== 'ENOENT') {
|
|
455
|
+
throw new Error(`Failed to read sidecar '${metaPath}': ${error.message}`);
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
const targetFormId = options.formId || sidecarMeta?.formId;
|
|
459
|
+
if (!targetFormId) {
|
|
460
|
+
throw new Error(`No formId provided and no sidecar at '${metaPath}'. Run download-form-to-file first, or pass --form-id.`);
|
|
461
|
+
}
|
|
462
|
+
// Fetch current remote form to capture the pre-upload version
|
|
463
|
+
const remoteBefore = await this.fetchSystemFormById(targetFormId);
|
|
464
|
+
const remoteVersionBefore = String(remoteBefore.versionnumber ?? '');
|
|
465
|
+
// Optimistic concurrency check
|
|
466
|
+
if (options.expectedVersionNumber && remoteVersionBefore !== options.expectedVersionNumber) {
|
|
467
|
+
throw new Error(`Remote form has moved since expected version. expected=${options.expectedVersionNumber}, actual=${remoteVersionBefore}. Re-download before deploying.`);
|
|
468
|
+
}
|
|
469
|
+
// PATCH formxml
|
|
470
|
+
await this.form.updateForm(targetFormId, { formxml: fileContent }, options.solutionUniqueName);
|
|
471
|
+
// Fetch again to capture the new version
|
|
472
|
+
const remoteAfter = await this.fetchSystemFormById(targetFormId);
|
|
473
|
+
const remoteVersionAfter = String(remoteAfter.versionnumber ?? '');
|
|
474
|
+
// Update sidecar
|
|
475
|
+
const uploadedAt = new Date().toISOString();
|
|
476
|
+
const newMeta = {
|
|
477
|
+
formId: targetFormId,
|
|
478
|
+
entityLogicalName: remoteAfter.objecttypecode ?? sidecarMeta?.entityLogicalName ?? '',
|
|
479
|
+
formType: this.getFormTypeName(remoteAfter.type),
|
|
480
|
+
name: remoteAfter.name ?? sidecarMeta?.name ?? '',
|
|
481
|
+
versionNumber: remoteVersionAfter,
|
|
482
|
+
downloadedAt: sidecarMeta?.downloadedAt ?? uploadedAt,
|
|
483
|
+
lastUploaded: {
|
|
484
|
+
at: uploadedAt,
|
|
485
|
+
previousVersionNumber: remoteVersionBefore,
|
|
486
|
+
versionNumber: remoteVersionAfter,
|
|
487
|
+
},
|
|
488
|
+
};
|
|
489
|
+
await writeFile(metaPath, JSON.stringify(newMeta, null, 2) + '\n', { encoding: 'utf8' });
|
|
490
|
+
// History snapshot of what was uploaded
|
|
491
|
+
const historyDir = `${resolvedPath}.history`;
|
|
492
|
+
await mkdir(historyDir, { recursive: true });
|
|
493
|
+
const stamp = uploadedAt.replace(/[:.]/g, '-');
|
|
494
|
+
const historyXmlPath = join(historyDir, `${stamp}-upload.xml`);
|
|
495
|
+
const historyMetaPath = join(historyDir, `${stamp}-upload.meta.json`);
|
|
496
|
+
await writeFile(historyXmlPath, fileContent, { encoding: 'utf8' });
|
|
497
|
+
await writeFile(historyMetaPath, JSON.stringify(newMeta, null, 2) + '\n', { encoding: 'utf8' });
|
|
498
|
+
return {
|
|
499
|
+
filePath: resolvedPath,
|
|
500
|
+
formId: targetFormId,
|
|
501
|
+
action: 'updated',
|
|
502
|
+
previousVersionNumber: remoteVersionBefore,
|
|
503
|
+
newVersionNumber: remoteVersionAfter,
|
|
504
|
+
byteCount: Buffer.byteLength(fileContent, 'utf8'),
|
|
505
|
+
historyPath: historyXmlPath,
|
|
506
|
+
};
|
|
507
|
+
}
|
|
508
|
+
/**
|
|
509
|
+
* Compare a local form file to the current remote form. Returns whether they're identical
|
|
510
|
+
* and basic metrics — does NOT modify anything.
|
|
511
|
+
*/
|
|
512
|
+
async diffFormWithFile(filePath, options) {
|
|
513
|
+
const resolvedPath = resolve(filePath.replace(/\\/g, '/'));
|
|
514
|
+
const metaPath = `${resolvedPath}.meta.json`;
|
|
515
|
+
const localContent = await readFile(resolvedPath, { encoding: 'utf8' });
|
|
516
|
+
let sidecarMeta;
|
|
517
|
+
try {
|
|
518
|
+
const metaRaw = await readFile(metaPath, { encoding: 'utf8' });
|
|
519
|
+
sidecarMeta = JSON.parse(metaRaw);
|
|
520
|
+
}
|
|
521
|
+
catch (error) {
|
|
522
|
+
if (error.code !== 'ENOENT')
|
|
523
|
+
throw error;
|
|
524
|
+
}
|
|
525
|
+
const targetFormId = options.formId || sidecarMeta?.formId;
|
|
526
|
+
if (!targetFormId) {
|
|
527
|
+
throw new Error(`No formId provided and no sidecar at '${metaPath}'.`);
|
|
528
|
+
}
|
|
529
|
+
const remote = await this.fetchSystemFormById(targetFormId);
|
|
530
|
+
const remoteXml = remote.formxml ?? '';
|
|
531
|
+
return {
|
|
532
|
+
formId: targetFormId,
|
|
533
|
+
identical: localContent === remoteXml,
|
|
534
|
+
localSize: Buffer.byteLength(localContent, 'utf8'),
|
|
535
|
+
remoteSize: Buffer.byteLength(remoteXml, 'utf8'),
|
|
536
|
+
localVersion: sidecarMeta?.versionNumber,
|
|
537
|
+
remoteVersion: String(remote.versionnumber ?? ''),
|
|
538
|
+
};
|
|
539
|
+
}
|
|
540
|
+
// =====================================================
|
|
315
541
|
// VIEW CUSTOMIZATION METHODS
|
|
316
542
|
// =====================================================
|
|
317
543
|
async getViews(entityLogicalName) {
|
|
@@ -698,5 +924,92 @@ export class PowerPlatformService {
|
|
|
698
924
|
async registerWebhook(options) {
|
|
699
925
|
return this.serviceEndpoint.registerWebhook(options);
|
|
700
926
|
}
|
|
927
|
+
// =====================================================
|
|
928
|
+
// FIELD SECURITY METHODS
|
|
929
|
+
// =====================================================
|
|
930
|
+
/**
|
|
931
|
+
* Set the IsSecured flag on a column. Reuses AttributeService.updateAttribute
|
|
932
|
+
* (which fetches the current attribute to recover the correct @odata.type)
|
|
933
|
+
* and PublishingService.publishEntity for the post-update publish.
|
|
934
|
+
*/
|
|
935
|
+
async setColumnSecured(entityLogicalName, attributeLogicalName, isSecured, publishAfter = true) {
|
|
936
|
+
const existing = (await this.metadata.getEntityAttribute(entityLogicalName, attributeLogicalName));
|
|
937
|
+
const previousValue = Boolean(existing.IsSecured);
|
|
938
|
+
if (previousValue === isSecured) {
|
|
939
|
+
return { entityLogicalName, attributeLogicalName, isSecured, previousValue };
|
|
940
|
+
}
|
|
941
|
+
await this.attribute.updateAttribute(entityLogicalName, attributeLogicalName, { IsSecured: isSecured }, (entityName, attrName) => this.metadata.getEntityAttribute(entityName, attrName));
|
|
942
|
+
if (publishAfter) {
|
|
943
|
+
await this.publishing.publishEntity(entityLogicalName);
|
|
944
|
+
}
|
|
945
|
+
return { entityLogicalName, attributeLogicalName, isSecured, previousValue };
|
|
946
|
+
}
|
|
947
|
+
/**
|
|
948
|
+
* Batch wrapper — secure or unsecure multiple columns on the same entity in
|
|
949
|
+
* one logical operation, with a single publish at the end.
|
|
950
|
+
*/
|
|
951
|
+
async setColumnsSecured(entityLogicalName, attributeLogicalNames, isSecured, publishAfter = true) {
|
|
952
|
+
const results = [];
|
|
953
|
+
for (const attr of attributeLogicalNames) {
|
|
954
|
+
const r = await this.setColumnSecured(entityLogicalName, attr, isSecured, false);
|
|
955
|
+
results.push({
|
|
956
|
+
attributeLogicalName: attr,
|
|
957
|
+
isSecured: r.isSecured,
|
|
958
|
+
previousValue: r.previousValue,
|
|
959
|
+
changed: r.previousValue !== r.isSecured,
|
|
960
|
+
});
|
|
961
|
+
}
|
|
962
|
+
if (publishAfter && results.some((r) => r.changed)) {
|
|
963
|
+
await this.publishing.publishEntity(entityLogicalName);
|
|
964
|
+
}
|
|
965
|
+
return results;
|
|
966
|
+
}
|
|
967
|
+
async createFieldSecurityProfile(name, description, solutionUniqueName) {
|
|
968
|
+
return this.fieldSecurity.createFieldSecurityProfile(name, description, solutionUniqueName);
|
|
969
|
+
}
|
|
970
|
+
async updateFieldSecurityProfile(fieldSecurityProfileId, updates) {
|
|
971
|
+
return this.fieldSecurity.updateFieldSecurityProfile(fieldSecurityProfileId, updates);
|
|
972
|
+
}
|
|
973
|
+
async deleteFieldSecurityProfile(fieldSecurityProfileId) {
|
|
974
|
+
return this.fieldSecurity.deleteFieldSecurityProfile(fieldSecurityProfileId);
|
|
975
|
+
}
|
|
976
|
+
async listFieldSecurityProfiles(namePattern) {
|
|
977
|
+
return this.fieldSecurity.listFieldSecurityProfiles(namePattern);
|
|
978
|
+
}
|
|
979
|
+
async getFieldSecurityProfile(fieldSecurityProfileId) {
|
|
980
|
+
return this.fieldSecurity.getFieldSecurityProfile(fieldSecurityProfileId);
|
|
981
|
+
}
|
|
982
|
+
async addFieldPermission(options) {
|
|
983
|
+
return this.fieldSecurity.addFieldPermission(options);
|
|
984
|
+
}
|
|
985
|
+
async addFieldPermissions(fieldSecurityProfileId, permissions, upsert = true) {
|
|
986
|
+
const results = [];
|
|
987
|
+
for (const p of permissions) {
|
|
988
|
+
results.push(await this.fieldSecurity.addFieldPermission({
|
|
989
|
+
fieldSecurityProfileId,
|
|
990
|
+
...p,
|
|
991
|
+
upsert,
|
|
992
|
+
}));
|
|
993
|
+
}
|
|
994
|
+
return results;
|
|
995
|
+
}
|
|
996
|
+
async removeFieldPermission(fieldPermissionId) {
|
|
997
|
+
return this.fieldSecurity.removeFieldPermission(fieldPermissionId);
|
|
998
|
+
}
|
|
999
|
+
async assignFspToTeam(fieldSecurityProfileId, teamId) {
|
|
1000
|
+
return this.fieldSecurity.assignProfileToTeam(fieldSecurityProfileId, teamId);
|
|
1001
|
+
}
|
|
1002
|
+
async unassignFspFromTeam(fieldSecurityProfileId, teamId) {
|
|
1003
|
+
return this.fieldSecurity.unassignProfileFromTeam(fieldSecurityProfileId, teamId);
|
|
1004
|
+
}
|
|
1005
|
+
async assignFspToUser(fieldSecurityProfileId, systemUserId) {
|
|
1006
|
+
return this.fieldSecurity.assignProfileToUser(fieldSecurityProfileId, systemUserId);
|
|
1007
|
+
}
|
|
1008
|
+
async unassignFspFromUser(fieldSecurityProfileId, systemUserId) {
|
|
1009
|
+
return this.fieldSecurity.unassignProfileFromUser(fieldSecurityProfileId, systemUserId);
|
|
1010
|
+
}
|
|
1011
|
+
async getSecuredColumns(entityLogicalName) {
|
|
1012
|
+
return this.fieldSecurity.getSecuredColumns(entityLogicalName);
|
|
1013
|
+
}
|
|
701
1014
|
}
|
|
702
1015
|
//# sourceMappingURL=PowerPlatformService.js.map
|