@mcp-consultant-tools/powerplatform-customization 25.0.0-beta.5 → 26.0.0-beta.2

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.
@@ -1,132 +1,75 @@
1
- export interface PowerPlatformConfig {
2
- organizationUrl: string;
3
- clientId: string;
4
- clientSecret: string;
5
- tenantId: string;
6
- }
7
- export interface ApiCollectionResponse<T> {
8
- value: T[];
9
- [key: string]: any;
10
- }
1
+ /**
2
+ * PowerPlatformService - Slim Customization Facade
3
+ *
4
+ * This is a facade that delegates to services in @mcp-consultant-tools/powerplatform-core.
5
+ * It provides CUSTOMIZATION operations for PowerPlatform/Dataverse entities.
6
+ *
7
+ * For read-only operations, use @mcp-consultant-tools/powerplatform.
8
+ * For data CRUD operations, use @mcp-consultant-tools/powerplatform-data.
9
+ */
10
+ import { type PowerPlatformConfig, type ApiCollectionResponse, type RegisterPluginStepOptions, type RegisterPluginImageOptions, type AuthProvider } from '@mcp-consultant-tools/powerplatform-core';
11
+ export type { PowerPlatformConfig, ApiCollectionResponse };
11
12
  export declare class PowerPlatformService {
12
- private config;
13
- private msalClient;
14
- private accessToken;
15
- private tokenExpirationTime;
16
- constructor(config: PowerPlatformConfig);
17
- /**
18
- * Get an access token for the PowerPlatform API
19
- */
20
- private getAccessToken;
21
- /**
22
- * Make an authenticated request to the PowerPlatform API
23
- * Extended to support all HTTP methods for write operations
24
- */
25
- private makeRequest;
26
- /**
27
- * Get metadata about an entity
28
- * @param entityName The logical name of the entity
29
- */
30
- getEntityMetadata(entityName: string): Promise<any>;
31
- /**
32
- * Get metadata about entity attributes/fields
33
- * @param entityName The logical name of the entity
34
- */
35
- getEntityAttributes(entityName: string): Promise<ApiCollectionResponse<any>>;
36
- /**
37
- * Get metadata about a specific entity attribute/field
38
- * @param entityName The logical name of the entity
39
- * @param attributeName The logical name of the attribute
40
- */
41
- getEntityAttribute(entityName: string, attributeName: string): Promise<any>;
42
- /**
43
- * Get one-to-many relationships for an entity
44
- * @param entityName The logical name of the entity
45
- */
46
- getEntityOneToManyRelationships(entityName: string): Promise<ApiCollectionResponse<any>>;
47
- /**
48
- * Get many-to-many relationships for an entity
49
- * @param entityName The logical name of the entity
50
- */
51
- getEntityManyToManyRelationships(entityName: string): Promise<ApiCollectionResponse<any>>;
52
- /**
53
- * Get all relationships (one-to-many and many-to-many) for an entity
54
- * @param entityName The logical name of the entity
55
- */
13
+ private client;
14
+ private metadata;
15
+ private plugin;
16
+ private flow;
17
+ private workflow;
18
+ private businessRule;
19
+ private app;
20
+ private validation;
21
+ private entity;
22
+ private attribute;
23
+ private relationship;
24
+ private optionSet;
25
+ private form;
26
+ private view;
27
+ private webResource;
28
+ private solution;
29
+ private publishing;
30
+ private dependency;
31
+ private pluginDeployment;
32
+ private appManagement;
33
+ private workflowManagement;
34
+ constructor(config: PowerPlatformConfig, authProvider?: AuthProvider);
35
+ getAuthMode(): 'service-principal' | 'interactive';
36
+ getUserInfo(): Promise<{
37
+ name: string;
38
+ email: string;
39
+ oid: string;
40
+ } | null>;
41
+ logout(): Promise<void>;
42
+ getEntityMetadata(entityName: string): Promise<unknown>;
43
+ getEntityAttributes(entityName: string, options?: {
44
+ prefix?: string;
45
+ attributeType?: string;
46
+ maxAttributes?: number;
47
+ }): Promise<{
48
+ value: unknown[];
49
+ hasMore: boolean;
50
+ returnedCount: number;
51
+ totalBeforeFilter?: number;
52
+ }>;
53
+ getEntityAttribute(entityName: string, attributeName: string): Promise<unknown>;
56
54
  getEntityRelationships(entityName: string): Promise<{
57
- oneToMany: ApiCollectionResponse<any>;
58
- manyToMany: ApiCollectionResponse<any>;
55
+ oneToMany: ApiCollectionResponse<unknown>;
56
+ manyToMany: ApiCollectionResponse<unknown>;
59
57
  }>;
60
- /**
61
- * Get a global option set definition by name
62
- * @param optionSetName The name of the global option set
63
- * @returns The global option set definition
64
- */
65
- getGlobalOptionSet(optionSetName: string): Promise<any>;
66
- /**
67
- * Get a specific record by entity name (plural) and ID
68
- * @param entityNamePlural The plural name of the entity (e.g., 'accounts', 'contacts')
69
- * @param recordId The GUID of the record
70
- * @returns The record data
71
- */
72
- getRecord(entityNamePlural: string, recordId: string): Promise<any>;
73
- /**
74
- * Query records using entity name (plural) and a filter expression
75
- * @param entityNamePlural The plural name of the entity (e.g., 'accounts', 'contacts')
76
- * @param filter OData filter expression (e.g., "name eq 'test'")
77
- * @param maxRecords Maximum number of records to retrieve (default: 50)
78
- * @returns Filtered list of records
79
- */
80
- queryRecords(entityNamePlural: string, filter: string, maxRecords?: number): Promise<ApiCollectionResponse<any>>;
81
- /**
82
- * Create a new record in Dataverse
83
- * @param entityNamePlural The plural name of the entity (e.g., 'accounts', 'contacts')
84
- * @param data Record data as JSON object (field names must match logical names)
85
- * @returns Created record with ID and OData context
86
- */
87
- createRecord(entityNamePlural: string, data: Record<string, any>): Promise<any>;
88
- /**
89
- * Update an existing record in Dataverse
90
- * @param entityNamePlural The plural name of the entity (e.g., 'accounts', 'contacts')
91
- * @param recordId The GUID of the record to update
92
- * @param data Partial record data to update (only fields being changed)
93
- * @returns Updated record (if Prefer header used) or void
94
- */
95
- updateRecord(entityNamePlural: string, recordId: string, data: Record<string, any>): Promise<any>;
96
- /**
97
- * Delete a record from Dataverse
98
- * @param entityNamePlural The plural name of the entity (e.g., 'accounts', 'contacts')
99
- * @param recordId The GUID of the record to delete
100
- * @returns Void (successful deletion returns 204 No Content)
101
- */
102
- deleteRecord(entityNamePlural: string, recordId: string): Promise<void>;
103
- /**
104
- * Get all plugin assemblies in the environment
105
- * @param includeManaged Include managed assemblies (default: false)
106
- * @param maxRecords Maximum number of assemblies to return (default: 100)
107
- * @returns List of plugin assemblies with basic information
108
- */
109
- getPluginAssemblies(includeManaged?: boolean, maxRecords?: number): Promise<any>;
110
- /**
111
- * Get a plugin assembly by name with all related plugin types, steps, and images
112
- * @param assemblyName The name of the plugin assembly
113
- * @param includeDisabled Include disabled steps (default: false)
114
- * @returns Complete plugin assembly information with validation
115
- */
116
- getPluginAssemblyComplete(assemblyName: string, includeDisabled?: boolean): Promise<any>;
117
- /**
118
- * Get all plugins that execute on a specific entity, organized by message and execution order
119
- * @param entityName The logical name of the entity
120
- * @param messageFilter Optional filter by message name (e.g., "Create", "Update")
121
- * @param includeDisabled Include disabled steps (default: false)
122
- * @returns Complete plugin pipeline for the entity
123
- */
124
- getEntityPluginPipeline(entityName: string, messageFilter?: string, includeDisabled?: boolean): Promise<any>;
125
- /**
126
- * Get plugin trace logs with filtering
127
- * @param options Filtering options for trace logs
128
- * @returns Filtered trace logs with parsed exception details
129
- */
58
+ getGlobalOptionSet(optionSetName: string): Promise<unknown>;
59
+ getGlobalOptionSets(options?: {
60
+ maxRecords?: number;
61
+ prefix?: string;
62
+ }): Promise<{
63
+ value: unknown[];
64
+ hasMore: boolean;
65
+ totalCount: number;
66
+ }>;
67
+ getPluginAssemblies(includeManaged?: boolean, maxRecords?: number): Promise<{
68
+ totalCount: number;
69
+ assemblies: unknown[];
70
+ }>;
71
+ getPluginAssemblyComplete(assemblyName: string, includeDisabled?: boolean): Promise<unknown>;
72
+ getEntityPluginPipeline(entityName: string, messageFilter?: string, includeDisabled?: boolean): Promise<unknown>;
130
73
  getPluginTraceLogs(options: {
131
74
  entityName?: string;
132
75
  messageName?: string;
@@ -135,596 +78,158 @@ export declare class PowerPlatformService {
135
78
  exceptionOnly?: boolean;
136
79
  hoursBack?: number;
137
80
  maxRecords?: number;
138
- }): Promise<any>;
139
- private getOperationTypeName;
140
- private extractExceptionType;
141
- private extractExceptionMessage;
142
- /**
143
- * Get all Power Automate flows (cloud flows) in the environment
144
- * @param activeOnly Only return activated flows (default: false)
145
- * @param maxRecords Maximum number of flows to return (default: 100)
146
- * @returns List of Power Automate flows with basic information
147
- */
148
- getFlows(activeOnly?: boolean, maxRecords?: number): Promise<any>;
149
- /**
150
- * Get a specific Power Automate flow with its complete definition
151
- * @param flowId The GUID of the flow (workflowid)
152
- * @returns Complete flow information including the flow definition JSON
153
- */
154
- getFlowDefinition(flowId: string): Promise<any>;
155
- /**
156
- * Get flow run history for a specific Power Automate flow
157
- * @param flowId The GUID of the flow (workflowid)
158
- * @param maxRecords Maximum number of runs to return (default: 100)
159
- * @returns List of flow runs with status, start time, duration, and error details
160
- */
161
- getFlowRuns(flowId: string, maxRecords?: number): Promise<any>;
162
- /**
163
- * Get all classic Dynamics workflows in the environment
164
- * @param activeOnly Only return activated workflows (default: false)
165
- * @param maxRecords Maximum number of workflows to return (default: 100)
166
- * @returns List of classic workflows with basic information
167
- */
168
- getWorkflows(activeOnly?: boolean, maxRecords?: number): Promise<any>;
169
- /**
170
- * Get a specific classic workflow with its complete XAML definition
171
- * @param workflowId The GUID of the workflow (workflowid)
172
- * @returns Complete workflow information including the XAML definition
173
- */
174
- getWorkflowDefinition(workflowId: string): Promise<any>;
175
- /**
176
- * Update a workflow's description field
177
- * @param workflowId GUID of the workflow
178
- * @param description New description content
179
- * @returns Previous and new description
180
- */
181
- updateWorkflowDescription(workflowId: string, description: string): Promise<{
182
- success: boolean;
183
- previousDescription: string;
184
- newDescription: string;
185
- }>;
186
- /**
187
- * Generate YAML metadata block for automation documentation
188
- */
189
- private generateAutomationYaml;
190
- /**
191
- * Merge YAML metadata with existing description, preserving manual notes
192
- */
193
- private mergeDescriptionWithYaml;
194
- /**
195
- * Analyze a flow or workflow and document it with YAML metadata
196
- * @param automationId GUID of the flow or workflow
197
- * @param type Type of automation ('flow' or 'workflow'), auto-detected if not provided
198
- * @returns Analysis and description update result
199
- */
200
- documentAutomation(automationId: string, type?: 'flow' | 'workflow'): Promise<{
201
- analysis: {
202
- tablesModified: string[];
203
- trigger: string;
204
- triggerFields: string[];
205
- actions: string[];
206
- };
207
- descriptionUpdated: boolean;
208
- previousDescription: string;
209
- newDescription: string;
81
+ }): Promise<{
82
+ totalCount: number;
83
+ logs: unknown[];
210
84
  }>;
211
- /**
212
- * Update a Power Automate flow's description field
213
- * @param flowId GUID of the flow (workflowid in workflows entity)
214
- * @param description New description content
215
- * @returns Previous and new description
216
- */
217
- updateFlowDescription(flowId: string, description: string): Promise<{
218
- success: boolean;
219
- previousDescription: string;
220
- newDescription: string;
85
+ getFlows(options?: {
86
+ activeOnly?: boolean;
87
+ maxRecords?: number;
88
+ }): Promise<unknown>;
89
+ getFlowDefinition(flowId: string, summary?: boolean): Promise<unknown>;
90
+ getFlowRuns(flowId: string, maxRecords?: number): Promise<unknown>;
91
+ getWorkflows(activeOnly?: boolean, maxRecords?: number): Promise<unknown>;
92
+ getWorkflowDefinition(workflowId: string, summary?: boolean): Promise<unknown>;
93
+ getBusinessRules(activeOnly?: boolean, maxRecords?: number): Promise<{
94
+ totalCount: number;
95
+ businessRules: unknown[];
221
96
  }>;
222
- /**
223
- * Get all business rules in the environment
224
- * @param activeOnly Only return activated business rules (default: false)
225
- * @param maxRecords Maximum number of business rules to return (default: 100)
226
- * @returns List of business rules with basic information
227
- */
228
- getBusinessRules(activeOnly?: boolean, maxRecords?: number): Promise<any>;
229
- /**
230
- * Get a specific business rule with its complete XAML definition
231
- * @param workflowId The GUID of the business rule (workflowid)
232
- * @returns Complete business rule information including the XAML definition
233
- */
234
- getBusinessRule(workflowId: string): Promise<any>;
235
- /**
236
- * Get all model-driven apps in the environment
237
- * @param activeOnly Only return active apps (default: false)
238
- * @param maxRecords Maximum number of apps to return (default: 100)
239
- * @returns List of model-driven apps with basic information
240
- */
241
- getApps(activeOnly?: boolean, maxRecords?: number, includeUnpublished?: boolean, solutionUniqueName?: string): Promise<any>;
242
- /**
243
- * Get a specific model-driven app by ID
244
- * @param appId The GUID of the app (appmoduleid)
245
- * @returns Complete app information including publisher details
246
- */
247
- getApp(appId: string): Promise<any>;
248
- /**
249
- * Get all components (entities, forms, views, sitemaps) associated with an app
250
- * @param appId The GUID of the app (appmoduleid)
251
- * @returns List of app components with type information
252
- */
253
- getAppComponents(appId: string): Promise<any>;
254
- /**
255
- * Get the sitemap for a specific app
256
- * @param appId The GUID of the app (appmoduleid)
257
- * @returns Sitemap information including XML
258
- */
259
- getAppSitemap(appId: string): Promise<any>;
260
- /**
261
- * Create a new model-driven app
262
- * @param appDefinition The app definition object
263
- * @param solutionUniqueName Optional solution to add the app to
264
- * @returns The created app information including ID
265
- */
266
- createApp(appDefinition: any, solutionUniqueName?: string): Promise<any>;
267
- /**
268
- * Create a sitemap from simplified configuration (no XML knowledge required)
269
- * @param config Simplified sitemap configuration
270
- * @param solutionUniqueName Optional solution to add the sitemap to
271
- * @returns The created sitemap information including ID and XML
272
- */
273
- createSimpleSitemap(config: any, solutionUniqueName?: string): Promise<any>;
274
- /**
275
- * Add entities to an app by modifying the sitemap XML
276
- * @param appId The GUID of the app
277
- * @param entityNames Array of entity logical names to add
278
- * @returns Result of the operation
279
- */
280
- addEntitiesToApp(appId: string, entityNames: string[]): Promise<any>;
281
- /**
282
- * Validate an app before publishing
283
- * @param appId The GUID of the app
284
- * @returns Validation result with any issues found
285
- */
286
- validateApp(appId: string): Promise<any>;
287
- /**
288
- * Publish an app to make it available to users
289
- * @param appId The GUID of the app
290
- * @returns Result of the publish operation
291
- */
292
- publishApp(appId: string): Promise<any>;
293
- /**
294
- * Helper to escape XML special characters
295
- */
296
- private escapeXml;
297
- /**
298
- * Create a new custom entity (table)
299
- * @param entityDefinition The entity definition object
300
- * @param solutionUniqueName Optional solution to add the entity to
301
- * @returns The created entity metadata
302
- */
303
- createEntity(entityDefinition: any, solutionUniqueName?: string): Promise<any>;
304
- /**
305
- * Update an existing entity
306
- * @param metadataId The MetadataId of the entity
307
- * @param updates The properties to update
308
- * @param solutionUniqueName Optional solution context
309
- */
310
- updateEntity(metadataId: string, updates: any, solutionUniqueName?: string): Promise<void>;
311
- /**
312
- * Delete a custom entity
313
- * @param metadataId The MetadataId of the entity to delete
314
- */
97
+ getBusinessRule(workflowId: string): Promise<unknown>;
98
+ getApps(activeOnly?: boolean, maxRecords?: number, includeUnpublished?: boolean, solutionUniqueName?: string): Promise<unknown>;
99
+ getApp(appId: string): Promise<unknown>;
100
+ getAppComponents(appId: string): Promise<unknown>;
101
+ getAppSitemap(appId: string): Promise<unknown>;
102
+ createEntity(entityDefinition: unknown, solutionUniqueName?: string): Promise<unknown>;
103
+ updateEntity(metadataId: string, updates: unknown, solutionUniqueName?: string): Promise<void>;
315
104
  deleteEntity(metadataId: string): Promise<void>;
316
- /**
317
- * Update entity icon using Fluent UI System Icon
318
- * @param entityLogicalName The logical name of the entity
319
- * @param iconFileName The Fluent UI icon file name (e.g., 'people_community_24_filled.svg')
320
- * @param solutionUniqueName Optional solution to add the web resource to
321
- * @returns Result with web resource ID and icon vector name
322
- */
323
- updateEntityIcon(entityLogicalName: string, iconFileName: string, solutionUniqueName?: string): Promise<any>;
324
- /**
325
- * Create a new attribute on an entity
326
- * @param entityLogicalName The logical name of the entity
327
- * @param attributeDefinition The attribute definition object
328
- * @param solutionUniqueName Optional solution to add the attribute to
329
- * @returns The created attribute metadata
330
- */
331
- createAttribute(entityLogicalName: string, attributeDefinition: any, solutionUniqueName?: string): Promise<any>;
332
- /**
333
- * Update an existing attribute
334
- * @param entityLogicalName The logical name of the entity
335
- * @param attributeLogicalName The logical name of the attribute
336
- * @param updates The properties to update
337
- * @param solutionUniqueName Optional solution context
338
- */
339
- updateAttribute(entityLogicalName: string, attributeLogicalName: string, updates: any, solutionUniqueName?: string): Promise<void>;
340
- /**
341
- * Delete an attribute
342
- * @param entityLogicalName The logical name of the entity
343
- * @param attributeMetadataId The MetadataId of the attribute to delete
344
- */
105
+ updateEntityIcon(entityLogicalName: string, iconFileName: string, solutionUniqueName?: string): Promise<unknown>;
106
+ createAttribute(entityLogicalName: string, attributeDefinition: unknown, solutionUniqueName?: string): Promise<unknown>;
107
+ updateAttribute(entityLogicalName: string, attributeLogicalName: string, updates: unknown, solutionUniqueName?: string): Promise<void>;
345
108
  deleteAttribute(entityLogicalName: string, attributeMetadataId: string): Promise<void>;
346
- /**
347
- * Create a picklist attribute using a global option set
348
- * @param entityLogicalName The logical name of the entity
349
- * @param attributeDefinition The attribute definition (must reference a global option set)
350
- * @param solutionUniqueName Optional solution to add the attribute to
351
- * @returns The created attribute metadata
352
- */
353
- createGlobalOptionSetAttribute(entityLogicalName: string, attributeDefinition: any, solutionUniqueName?: string): Promise<any>;
354
- /**
355
- * Create a one-to-many relationship
356
- * @param relationshipDefinition The relationship definition
357
- * @param solutionUniqueName Optional solution to add the relationship to
358
- */
359
- createOneToManyRelationship(relationshipDefinition: any, solutionUniqueName?: string): Promise<any>;
360
- /**
361
- * Create a many-to-many relationship
362
- * @param relationshipDefinition The relationship definition
363
- * @param solutionUniqueName Optional solution to add the relationship to
364
- */
365
- createManyToManyRelationship(relationshipDefinition: any, solutionUniqueName?: string): Promise<any>;
366
- /**
367
- * Delete a relationship
368
- * @param metadataId The MetadataId of the relationship to delete
369
- */
109
+ createGlobalOptionSetAttribute(entityLogicalName: string, schemaName: string, displayName: string, globalOptionSetName: string, options?: {
110
+ description?: string;
111
+ requiredLevel?: string;
112
+ solutionUniqueName?: string;
113
+ }): Promise<unknown>;
114
+ createOneToManyRelationship(definition: unknown, solutionUniqueName?: string): Promise<unknown>;
115
+ createManyToManyRelationship(definition: unknown, solutionUniqueName?: string): Promise<unknown>;
370
116
  deleteRelationship(metadataId: string): Promise<void>;
371
- /**
372
- * Update a relationship
373
- * Note: Most relationship properties are immutable, only labels can be updated
374
- * @param metadataId The MetadataId of the relationship
375
- * @param updates The properties to update (typically labels)
376
- */
377
- updateRelationship(metadataId: string, updates: any): Promise<void>;
378
- /**
379
- * Get detailed information about a relationship
380
- * @param metadataId The MetadataId of the relationship
381
- * @returns The relationship metadata
382
- */
383
- getRelationshipDetails(metadataId: string): Promise<any>;
384
- /**
385
- * Publish all customizations
386
- */
387
- publishAllCustomizations(): Promise<void>;
388
- /**
389
- * Publish specific customizations
390
- * @param parameterXml The ParameterXml specifying what to publish
391
- */
392
- publishXml(parameterXml: string): Promise<void>;
393
- /**
394
- * Create a global option set
395
- * @param optionSetDefinition The option set definition
396
- * @param solutionUniqueName Optional solution to add the option set to
397
- */
398
- createGlobalOptionSet(optionSetDefinition: any, solutionUniqueName?: string): Promise<any>;
399
- /**
400
- * Delete a global option set
401
- * @param metadataId The MetadataId of the option set to delete
402
- */
403
- deleteGlobalOptionSet(metadataId: string): Promise<void>;
404
- /**
405
- * Update a global option set
406
- */
407
- updateGlobalOptionSet(metadataId: string, updates: any, solutionUniqueName?: string): Promise<void>;
408
- /**
409
- * Add a value to a global option set
410
- */
411
- addOptionSetValue(optionSetName: string, value: number, label: string, solutionUniqueName?: string): Promise<any>;
412
- /**
413
- * Update an option set value
414
- */
117
+ updateRelationship(metadataId: string, updates: unknown): Promise<void>;
118
+ createGlobalOptionSet(definition: unknown, solutionUniqueName?: string): Promise<unknown>;
119
+ updateGlobalOptionSet(metadataId: string, updates: unknown, solutionUniqueName?: string): Promise<void>;
120
+ addOptionSetValue(optionSetName: string, value: number, label: string, solutionUniqueName?: string): Promise<unknown>;
415
121
  updateOptionSetValue(optionSetName: string, value: number, label: string, solutionUniqueName?: string): Promise<void>;
416
- /**
417
- * Delete an option set value
418
- */
419
122
  deleteOptionSetValue(optionSetName: string, value: number): Promise<void>;
420
- /**
421
- * Reorder option set values
422
- */
423
123
  reorderOptionSetValues(optionSetName: string, values: number[], solutionUniqueName?: string): Promise<void>;
424
- /**
425
- * Create a form (systemform)
426
- */
427
- createForm(form: any, solutionUniqueName?: string): Promise<any>;
428
- /**
429
- * Update a form
430
- */
431
- updateForm(formId: string, updates: any, solutionUniqueName?: string): Promise<void>;
432
- /**
433
- * Delete a form
434
- */
124
+ getForms(entityLogicalName: string): Promise<unknown>;
125
+ createForm(name: string, entityLogicalName: string, formType: string, formXml: string, options?: {
126
+ description?: string;
127
+ solutionUniqueName?: string;
128
+ }): Promise<unknown>;
129
+ private getFormTypeCode;
130
+ updateForm(formId: string, updates: unknown, solutionUniqueName?: string): Promise<void>;
435
131
  deleteForm(formId: string): Promise<void>;
436
- /**
437
- * Get forms for an entity
438
- */
439
- getForms(entityLogicalName: string): Promise<any>;
440
- /**
441
- * Create a view (savedquery)
442
- */
443
- createView(view: any, solutionUniqueName?: string): Promise<any>;
444
- /**
445
- * Update a view
446
- */
447
- updateView(viewId: string, updates: any, solutionUniqueName?: string): Promise<void>;
448
- /**
449
- * Delete a view
450
- */
451
- deleteView(viewId: string): Promise<void>;
452
- /**
453
- * Get views for an entity
454
- */
455
- getViews(entityLogicalName: string): Promise<any>;
456
- /**
457
- * Activate a form (set statecode=1)
458
- * @param formId The systemformid (GUID)
459
- */
460
132
  activateForm(formId: string): Promise<void>;
461
- /**
462
- * Deactivate a form (set statecode=0)
463
- * @param formId The systemformid (GUID)
464
- */
465
133
  deactivateForm(formId: string): Promise<void>;
466
- /**
467
- * Set a view as the default view for its entity
468
- * @param viewId The savedqueryid (GUID)
469
- */
134
+ getViews(entityLogicalName: string): Promise<unknown>;
135
+ getViewFetchXml(viewId: string): Promise<unknown>;
136
+ createView(name: string, entityLogicalName: string, fetchXml: string, layoutXml: string, options?: {
137
+ description?: string;
138
+ isDefault?: boolean;
139
+ queryType?: number;
140
+ solutionUniqueName?: string;
141
+ }): Promise<unknown>;
142
+ updateView(viewId: string, updates: unknown, solutionUniqueName?: string): Promise<void>;
143
+ deleteView(viewId: string): Promise<void>;
470
144
  setDefaultView(viewId: string): Promise<void>;
471
- /**
472
- * Get the FetchXML from a view
473
- * @param viewId The savedqueryid (GUID)
474
- * @returns The view with FetchXML
475
- */
476
- getViewFetchXml(viewId: string): Promise<any>;
477
- /**
478
- * Create a web resource
479
- */
480
- createWebResource(webResource: any, solutionUniqueName?: string): Promise<any>;
481
- /**
482
- * Update a web resource
483
- */
484
- updateWebResource(webResourceId: string, updates: any, solutionUniqueName?: string): Promise<void>;
485
- /**
486
- * Delete a web resource
487
- */
145
+ getWebResource(webResourceId: string): Promise<unknown>;
146
+ getWebResources(nameFilter?: string): Promise<unknown>;
147
+ createWebResource(name: string, displayName: string, webResourceType: number, content: string, options?: {
148
+ description?: string;
149
+ solutionUniqueName?: string;
150
+ }): Promise<unknown>;
151
+ updateWebResource(webResourceId: string, updates: unknown, solutionUniqueName?: string): Promise<void>;
488
152
  deleteWebResource(webResourceId: string): Promise<void>;
489
- /**
490
- * Get web resource
491
- */
492
- getWebResource(webResourceId: string): Promise<any>;
493
- /**
494
- * Get web resources by name pattern
495
- */
496
- getWebResources(nameFilter?: string): Promise<any>;
497
- /**
498
- * Get web resource content (base64 encoded)
499
- * @param webResourceId The webresourceid (GUID)
500
- * @returns The web resource with content field
501
- */
502
- getWebResourceContent(webResourceId: string): Promise<any>;
503
- /**
504
- * Get web resource dependencies
505
- * @param webResourceId The webresourceid (GUID)
506
- * @returns List of dependencies
507
- */
508
- getWebResourceDependencies(webResourceId: string): Promise<any>;
509
- /**
510
- * Create a publisher
511
- */
512
- createPublisher(publisher: any): Promise<any>;
513
- /**
514
- * Get publishers
515
- */
516
- getPublishers(): Promise<any>;
517
- /**
518
- * Create a solution
519
- */
520
- createSolution(solution: any): Promise<any>;
521
- /**
522
- * Get solutions
523
- */
524
- getSolutions(): Promise<any>;
525
- /**
526
- * Get solution by unique name
527
- */
528
- getSolution(uniqueName: string): Promise<any>;
529
- /**
530
- * Add component to solution
531
- */
532
- addComponentToSolution(solutionUniqueName: string, componentId: string, componentType: number, addRequiredComponents?: boolean, includedComponentSettingsValues?: string): Promise<void>;
533
- /**
534
- * Remove component from solution
535
- */
153
+ getPublishers(): Promise<unknown>;
154
+ createPublisher(uniqueName: string, friendlyName: string, customizationPrefix: string, customizationOptionValuePrefix: number, description?: string): Promise<unknown>;
155
+ getSolutions(): Promise<unknown>;
156
+ getSolution(uniqueName: string): Promise<unknown>;
157
+ createSolution(uniqueName: string, friendlyName: string, version: string, publisherId: string, description?: string): Promise<unknown>;
158
+ getSolutionComponents(solutionUniqueName: string): Promise<unknown>;
159
+ addComponentToSolution(solutionUniqueName: string, componentId: string, componentType: number, addRequiredComponents?: boolean): Promise<void>;
536
160
  removeComponentFromSolution(solutionUniqueName: string, componentId: string, componentType: number): Promise<void>;
537
- /**
538
- * Get solution components
539
- */
540
- getSolutionComponents(solutionUniqueName: string): Promise<any>;
541
- /**
542
- * Export solution
543
- */
544
- exportSolution(solutionName: string, managed?: boolean): Promise<any>;
545
- /**
546
- * Import solution
547
- */
548
- importSolution(customizationFile: string, publishWorkflows?: boolean, overwriteUnmanagedCustomizations?: boolean): Promise<any>;
549
- /**
550
- * Delete a solution
551
- */
552
- deleteSolution(solutionId: string): Promise<void>;
553
- /**
554
- * Publish specific entity
555
- */
161
+ exportSolution(solutionName: string, managed?: boolean): Promise<unknown>;
162
+ importSolution(customizationFile: string, overwriteUnmanagedCustomizations?: boolean, publishWorkflows?: boolean): Promise<unknown>;
163
+ publishAllCustomizations(): Promise<void>;
556
164
  publishEntity(entityLogicalName: string): Promise<void>;
557
- /**
558
- * Publish specific component
559
- */
560
- publishComponent(componentId: string, componentType: number): Promise<void>;
561
- /**
562
- * Check for unpublished customizations
563
- */
564
- checkUnpublishedChanges(): Promise<any>;
565
- /**
566
- * Check component dependencies
567
- */
568
- checkDependencies(componentId: string, componentType: number): Promise<any>;
569
- /**
570
- * Check if component can be deleted
571
- */
165
+ checkDependencies(componentId: string, componentType: number): Promise<unknown>;
572
166
  checkDeleteEligibility(componentId: string, componentType: number): Promise<{
573
167
  canDelete: boolean;
574
- dependencies: any[];
168
+ dependencies: unknown[];
575
169
  }>;
576
- /**
577
- * Preview unpublished changes
578
- * Returns all components that have unpublished customizations
579
- */
580
- previewUnpublishedChanges(): Promise<any>;
581
- /**
582
- * Check dependencies for a specific component
583
- * @param componentId The component ID (GUID)
584
- * @param componentType The component type code
585
- * @returns Dependency information
586
- */
587
- checkComponentDependencies(componentId: string, componentType: number): Promise<any>;
588
- /**
589
- * Validate solution integrity
590
- * Checks for missing dependencies and other issues
591
- * @param solutionUniqueName The unique name of the solution
592
- * @returns Validation results
593
- */
594
- validateSolutionIntegrity(solutionUniqueName: string): Promise<any>;
595
- /**
596
- * Validate schema name
597
- */
598
- validateSchemaName(schemaName: string, prefix: string): {
599
- valid: boolean;
600
- errors: string[];
601
- };
602
- /**
603
- * Get entity customization information
604
- */
605
- getEntityCustomizationInfo(entityLogicalName: string): Promise<any>;
606
- /**
607
- * Check if entity has dependencies
608
- */
609
- checkEntityDependencies(entityLogicalName: string): Promise<any>;
610
- /**
611
- * Helper to generate GUID
612
- */
613
- private generateGuid;
614
- /**
615
- * Extract assembly version from .NET DLL using PE header parsing
616
- * @param assemblyPath - Path to the compiled .NET assembly (DLL)
617
- * @returns Version string (e.g., "1.0.0.0")
618
- */
619
170
  extractAssemblyVersion(assemblyPath: string): Promise<string>;
620
- /**
621
- * Query plugin type by typename
622
- * @param typename - Plugin type typename (e.g., "MyNamespace.ContactPlugin")
623
- * @returns Plugin type ID
624
- */
625
171
  queryPluginTypeByTypename(typename: string): Promise<string>;
626
- /**
627
- * Query plugin assembly by name
628
- * @param assemblyName - Assembly name
629
- * @returns Plugin assembly ID or null if not found
630
- */
631
172
  queryPluginAssemblyByName(assemblyName: string): Promise<string | null>;
632
- /**
633
- * Get plugin types for an existing assembly
634
- * Used to retrieve type information after an assembly update
635
- * @param assemblyId - Assembly GUID
636
- * @returns Array of plugin type information
637
- */
638
- getPluginTypesForAssembly(assemblyId: string): Promise<Array<{
639
- pluginTypeId: string;
640
- typeName: string;
641
- friendlyName: string;
642
- }>>;
643
- /**
644
- * Resolve SDK Message and Filter IDs for plugin step registration
645
- * @param messageName - SDK message name (e.g., "Create", "Update", "Delete")
646
- * @param entityName - Entity logical name (e.g., "contact", "account")
647
- * @returns Object containing messageId and filterId
648
- */
649
- resolveSdkMessageAndFilter(messageName: string, entityName: string): Promise<{
650
- messageId: string;
651
- filterId: string;
652
- }>;
653
- /**
654
- * Create a new plugin assembly in Dataverse
655
- * @param options - Assembly creation options
656
- * @returns Created assembly ID and plugin types
657
- */
173
+ getPluginTypesForAssembly(assemblyId: string): Promise<unknown[]>;
174
+ resolveSdkMessageAndFilter(messageName: string, primaryEntity: string): Promise<unknown>;
658
175
  createPluginAssembly(options: {
659
176
  name: string;
660
177
  content: string;
661
178
  version: string;
662
- isolationMode?: number;
663
- sourceType?: number;
664
179
  description?: string;
180
+ isolationMode?: number;
665
181
  solutionUniqueName?: string;
666
- }): Promise<{
667
- pluginAssemblyId: string;
668
- pluginTypes: Array<{
669
- pluginTypeId: string;
670
- typeName: string;
671
- friendlyName: string;
672
- }>;
673
- }>;
182
+ }): Promise<unknown>;
183
+ updatePluginAssembly(assemblyId: string, content: string, version: string, solutionUniqueName?: string): Promise<void>;
184
+ deletePluginAssembly(assemblyId: string): Promise<void>;
185
+ deletePluginStep(stepId: string): Promise<void>;
186
+ registerPluginStep(config: RegisterPluginStepOptions): Promise<unknown>;
187
+ registerPluginImage(config: RegisterPluginImageOptions): Promise<unknown>;
188
+ createSimpleSitemap(config: unknown, solutionUniqueName?: string): Promise<unknown>;
189
+ addEntitiesToApp(appId: string, entityNames: string[]): Promise<unknown>;
190
+ validateApp(appId: string): Promise<unknown>;
191
+ publishApp(appId: string): Promise<unknown>;
192
+ deactivateWorkflow(workflowId: string): Promise<unknown>;
193
+ activateWorkflow(workflowId: string): Promise<unknown>;
194
+ updateWorkflowDescription(workflowId: string, description: string): Promise<unknown>;
195
+ updateFlowDescription(flowId: string, description: string): Promise<unknown>;
674
196
  /**
675
- * Update an existing plugin assembly with new DLL content
676
- * @param assemblyId - Assembly GUID
677
- * @param content - Base64-encoded DLL content
678
- * @param version - New version string
679
- * @param solutionUniqueName - Optional solution context
197
+ * Adapter function to convert FlowService.parseFlowSummary output to expected format
680
198
  */
681
- updatePluginAssembly(assemblyId: string, content: string, version: string, solutionUniqueName?: string): Promise<void>;
199
+ private adaptFlowSummary;
682
200
  /**
683
- * Delete a plugin assembly and all its associated components
684
- * Used for rollback on deployment failure
685
- * @param assemblyId - Assembly GUID to delete
201
+ * Adapter function to convert WorkflowService.parseWorkflowXamlSummary output to expected format
686
202
  */
687
- deletePluginAssembly(assemblyId: string): Promise<void>;
203
+ private adaptWorkflowSummary;
204
+ documentAutomation(automationId: string, type?: 'flow' | 'workflow'): Promise<unknown>;
205
+ documentWorkflowSafe(workflowId: string, type?: 'flow' | 'workflow'): Promise<unknown>;
688
206
  /**
689
- * Delete a plugin step
690
- * Used for rollback on deployment failure
691
- * @param stepId - Step GUID to delete
207
+ * Create a new Power Automate flow from an existing template flow
692
208
  */
693
- deletePluginStep(stepId: string): Promise<void>;
209
+ createFlow(name: string, templateFlowId: string, options?: {
210
+ description?: string;
211
+ state?: 'draft' | 'activated';
212
+ connectionReferenceMappings?: Record<string, string>;
213
+ }): Promise<unknown>;
694
214
  /**
695
- * Register a plugin step on an SDK message
696
- * @param options - Step registration options
697
- * @returns Created step ID
215
+ * Delete a Power Automate flow (permanent operation)
698
216
  */
699
- registerPluginStep(options: {
700
- pluginTypeId: string;
701
- name: string;
702
- messageName: string;
703
- primaryEntityName: string;
704
- stage: number;
705
- executionMode: number;
706
- rank?: number;
707
- filteringAttributes?: string;
708
- configuration?: string;
709
- supportedDeployment?: number;
710
- solutionUniqueName?: string;
711
- }): Promise<{
712
- stepId: string;
713
- }>;
217
+ deleteFlow(flowId: string): Promise<unknown>;
714
218
  /**
715
- * Register a pre/post image for a plugin step
716
- * @param options - Image registration options
717
- * @returns Created image ID
219
+ * Clone an existing flow with a new name
718
220
  */
719
- registerPluginImage(options: {
720
- stepId: string;
721
- name: string;
722
- imageType: number;
723
- entityAlias: string;
724
- attributes?: string;
725
- messagePropertyName?: string;
726
- }): Promise<{
727
- imageId: string;
728
- }>;
221
+ cloneFlow(sourceFlowId: string, newName: string, options?: {
222
+ description?: string;
223
+ updateConnectionReferences?: boolean;
224
+ connectionReferenceMappings?: Record<string, string>;
225
+ }): Promise<unknown>;
226
+ /**
227
+ * Activate a Power Automate flow (alias for activateWorkflow)
228
+ */
229
+ activateFlow(flowId: string): Promise<unknown>;
230
+ /**
231
+ * Deactivate a Power Automate flow (alias for deactivateWorkflow)
232
+ */
233
+ deactivateFlow(flowId: string): Promise<unknown>;
729
234
  }
730
235
  //# sourceMappingURL=PowerPlatformService.d.ts.map