@mcp-consultant-tools/powerplatform-core 27.0.0 → 28.0.0-beta.3

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/index.d.ts CHANGED
@@ -11,12 +11,16 @@ export * from './client/types.js';
11
11
  export { createAuthProvider, ServicePrincipalAuth, InteractiveAuth, TokenCache, type AuthProvider, type PowerPlatformAuthConfig, } from './auth/index.js';
12
12
  export { AppService } from './services/AppService.js';
13
13
  export { BusinessRuleService } from './services/BusinessRuleService.js';
14
+ export { ConnectionReferenceService } from './services/ConnectionReferenceService.js';
15
+ export type { ConnectionReference, ConnectionReferencesResult, } from './services/ConnectionReferenceService.js';
14
16
  export { DbmlGenerator } from './services/DbmlGenerator.js';
15
17
  export type { DbmlGeneratorOptions, DbmlResult, } from './services/DbmlGenerator.js';
16
18
  export { FlowService } from './services/FlowService.js';
17
19
  export type { CancelFlowRunResult, ResubmitFlowRunResult, FlowRunFilterOptions, FlowRunSummary, FlowRunsResult, } from './services/FlowService.js';
18
20
  export { MetadataService } from './services/MetadataService.js';
19
21
  export { PluginService } from './services/PluginService.js';
22
+ export { SecurityRoleService } from './services/SecurityRoleService.js';
23
+ export type { SecurityRole, SecurityRolesResult, RolePrivilege, SecurityRolePrivilegesResult, SecurityRoleBySolution, SecurityRolesBySolutionResult, } from './services/SecurityRoleService.js';
20
24
  export { ValidationService } from './services/ValidationService.js';
21
25
  export { WorkflowService } from './services/WorkflowService.js';
22
26
  export { IntegrationAuditService } from './services/IntegrationAuditService.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,KAAK,YAAY,EACjB,KAAK,uBAAuB,GAC7B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AACtF,YAAY,EACV,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,YAAY,EACV,oBAAoB,EACpB,UAAU,GACX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,YAAY,EACV,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,cAAc,GACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,4BAA4B,EAC5B,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,YAAY,EACV,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,EACzB,+BAA+B,EAC/B,mBAAmB,EACnB,iBAAiB,EACjB,0BAA0B,EAC1B,mBAAmB,EACnB,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,uCAAuC,CAAC;AAG/C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAGtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,YAAY,EACV,cAAc,EACd,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,EAC1B,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,0BAA0B,EAC1B,+BAA+B,EAC/B,8BAA8B,EAC9B,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,yCAAyC,CAAC;AAGjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,YAAY,EACV,4BAA4B,EAC5B,4BAA4B,EAC5B,2BAA2B,EAC3B,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EAEL,WAAW,EACX,WAAW,EACX,KAAK,aAAa,EAClB,KAAK,eAAe,EAEpB,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EAErB,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,EAE1B,WAAW,EACX,WAAW,EACX,KAAK,cAAc,EACnB,KAAK,gBAAgB,EAErB,YAAY,EACZ,WAAW,EACX,WAAW,EACX,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,aAAa,EAEb,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,gBAAgB,EAEhB,kBAAkB,EAClB,yBAAyB,EACzB,2BAA2B,EAC3B,eAAe,EACf,oBAAoB,EAEpB,6BAA6B,EAC7B,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAElB,2BAA2B,EAC3B,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC"}
package/build/index.js CHANGED
@@ -14,10 +14,12 @@ export { createAuthProvider, ServicePrincipalAuth, InteractiveAuth, TokenCache,
14
14
  // Read-only services
15
15
  export { AppService } from './services/AppService.js';
16
16
  export { BusinessRuleService } from './services/BusinessRuleService.js';
17
+ export { ConnectionReferenceService } from './services/ConnectionReferenceService.js';
17
18
  export { DbmlGenerator } from './services/DbmlGenerator.js';
18
19
  export { FlowService } from './services/FlowService.js';
19
20
  export { MetadataService } from './services/MetadataService.js';
20
21
  export { PluginService } from './services/PluginService.js';
22
+ export { SecurityRoleService } from './services/SecurityRoleService.js';
21
23
  export { ValidationService } from './services/ValidationService.js';
22
24
  export { WorkflowService } from './services/WorkflowService.js';
23
25
  export { IntegrationAuditService } from './services/IntegrationAuditService.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,SAAS;AACT,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,cAAc,mBAAmB,CAAC;AAElC,iBAAiB;AACjB,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,UAAU,GAGX,MAAM,iBAAiB,CAAC;AAEzB,qBAAqB;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAK5D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAQxD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAoBhF,gBAAgB;AAChB,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,yBAAyB;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,gDAAgD;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAUhF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAepF,8BAA8B;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAS9E,YAAY;AACZ,OAAO;AACL,gBAAgB;AAChB,WAAW,EACX,WAAW;AAGX,iBAAiB;AACjB,cAAc,EACd,sBAAsB,EACtB,sBAAsB;AAGtB,aAAa;AACb,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B;AAC1B,kBAAkB;AAClB,WAAW,EACX,WAAW;AAGX,gBAAgB;AAChB,YAAY,EACZ,WAAW,EACX,WAAW,EAGX,aAAa;AACb,mBAAmB;AACnB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,gBAAgB;AAChB,0BAA0B;AAC1B,kBAAkB,EAClB,yBAAyB,EACzB,2BAA2B,EAC3B,eAAe,EACf,oBAAoB;AACpB,2CAA2C;AAC3C,6BAA6B,EAC7B,sBAAsB;AAGtB,yBAAyB;AACzB,2BAA2B,GAE5B,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,SAAS;AACT,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,cAAc,mBAAmB,CAAC;AAElC,iBAAiB;AACjB,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,UAAU,GAGX,MAAM,iBAAiB,CAAC;AAEzB,qBAAqB;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AAKtF,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAK5D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAQxD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AASxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAoBhF,gBAAgB;AAChB,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,yBAAyB;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,gDAAgD;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAUhF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAepF,8BAA8B;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAS9E,YAAY;AACZ,OAAO;AACL,gBAAgB;AAChB,WAAW,EACX,WAAW;AAGX,iBAAiB;AACjB,cAAc,EACd,sBAAsB,EACtB,sBAAsB;AAGtB,aAAa;AACb,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B;AAC1B,kBAAkB;AAClB,WAAW,EACX,WAAW;AAGX,gBAAgB;AAChB,YAAY,EACZ,WAAW,EACX,WAAW,EAGX,aAAa;AACb,mBAAmB;AACnB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,gBAAgB;AAChB,0BAA0B;AAC1B,kBAAkB,EAClB,yBAAyB,EACzB,2BAA2B,EAC3B,eAAe,EACf,oBAAoB;AACpB,2CAA2C;AAC3C,6BAA6B,EAC7B,sBAAsB;AAGtB,yBAAyB;AACzB,2BAA2B,GAE5B,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * ConnectionReferenceService
3
+ *
4
+ * Read-only service for querying connection references in a Dataverse environment.
5
+ * Connection references define the connector configurations used by Power Automate flows
6
+ * and other components.
7
+ */
8
+ import type { PowerPlatformClient } from '../client/PowerPlatformClient.js';
9
+ export interface ConnectionReference {
10
+ id: string;
11
+ logicalName: string;
12
+ displayName: string;
13
+ connectorId: string;
14
+ stateCode: number;
15
+ statusCode: number;
16
+ isManaged: boolean;
17
+ connectionId: string | null;
18
+ connectionName: string | null;
19
+ }
20
+ export interface ConnectionReferencesResult {
21
+ references: ConnectionReference[];
22
+ summary: {
23
+ total: number;
24
+ byConnector: Record<string, number>;
25
+ withConnection: number;
26
+ withoutConnection: number;
27
+ managed: number;
28
+ unmanaged: number;
29
+ };
30
+ }
31
+ export declare class ConnectionReferenceService {
32
+ private client;
33
+ constructor(client: PowerPlatformClient);
34
+ /**
35
+ * Get all connection references in the environment
36
+ */
37
+ getConnectionReferences(options?: {
38
+ maxRecords?: number;
39
+ managedOnly?: boolean;
40
+ hasConnection?: boolean;
41
+ }): Promise<ConnectionReferencesResult>;
42
+ /**
43
+ * Extract a readable connector name from the connector ID.
44
+ * Connector IDs look like: /providers/Microsoft.PowerApps/apis/shared_commondataserviceforapps
45
+ */
46
+ private extractConnectorName;
47
+ }
48
+ //# sourceMappingURL=ConnectionReferenceService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectionReferenceService.d.ts","sourceRoot":"","sources":["../../src/services/ConnectionReferenceService.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAO5E,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpC,cAAc,EAAE,MAAM,CAAC;QACvB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAiBD,qBAAa,0BAA0B;IACzB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,mBAAmB;IAE/C;;OAEG;IACG,uBAAuB,CAAC,OAAO,CAAC,EAAE;QACtC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IA2EvC;;;OAGG;IACH,OAAO,CAAC,oBAAoB;CAK7B"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * ConnectionReferenceService
3
+ *
4
+ * Read-only service for querying connection references in a Dataverse environment.
5
+ * Connection references define the connector configurations used by Power Automate flows
6
+ * and other components.
7
+ */
8
+ // ============================================================================
9
+ // Service
10
+ // ============================================================================
11
+ export class ConnectionReferenceService {
12
+ client;
13
+ constructor(client) {
14
+ this.client = client;
15
+ }
16
+ /**
17
+ * Get all connection references in the environment
18
+ */
19
+ async getConnectionReferences(options) {
20
+ const maxRecords = options?.maxRecords ?? 100;
21
+ const managedOnly = options?.managedOnly ?? false;
22
+ const hasConnection = options?.hasConnection;
23
+ const filters = [];
24
+ if (managedOnly) {
25
+ filters.push('ismanaged eq true');
26
+ }
27
+ const filterStr = filters.length > 0 ? `&$filter=${filters.join(' and ')}` : '';
28
+ const response = await this.client.makeRequest(`api/data/v9.2/connectionreferences` +
29
+ `?$select=connectionreferenceid,connectionreferencelogicalname,connectionreferencedisplayname,` +
30
+ `connectorid,statecode,statuscode,ismanaged,connectionid` +
31
+ `&$orderby=connectionreferencelogicalname` +
32
+ `&$top=${maxRecords}` +
33
+ filterStr);
34
+ let references = (response.value || []).map((cr) => ({
35
+ id: cr.connectionreferenceid,
36
+ logicalName: cr.connectionreferencelogicalname,
37
+ displayName: cr.connectionreferencedisplayname || cr.connectionreferencelogicalname,
38
+ connectorId: cr.connectorid,
39
+ stateCode: cr.statecode,
40
+ statusCode: cr.statuscode,
41
+ isManaged: cr.ismanaged,
42
+ connectionId: cr.connectionid ?? null,
43
+ connectionName: null,
44
+ }));
45
+ // Client-side filter for hasConnection
46
+ if (hasConnection === true) {
47
+ references = references.filter((r) => r.connectionId !== null);
48
+ }
49
+ else if (hasConnection === false) {
50
+ references = references.filter((r) => r.connectionId === null);
51
+ }
52
+ // Build summary
53
+ const byConnector = {};
54
+ let withConnection = 0;
55
+ let withoutConnection = 0;
56
+ let managed = 0;
57
+ let unmanaged = 0;
58
+ for (const ref of references) {
59
+ const connectorName = this.extractConnectorName(ref.connectorId);
60
+ byConnector[connectorName] = (byConnector[connectorName] || 0) + 1;
61
+ if (ref.connectionId) {
62
+ withConnection++;
63
+ }
64
+ else {
65
+ withoutConnection++;
66
+ }
67
+ if (ref.isManaged) {
68
+ managed++;
69
+ }
70
+ else {
71
+ unmanaged++;
72
+ }
73
+ }
74
+ return {
75
+ references,
76
+ summary: {
77
+ total: references.length,
78
+ byConnector,
79
+ withConnection,
80
+ withoutConnection,
81
+ managed,
82
+ unmanaged,
83
+ },
84
+ };
85
+ }
86
+ /**
87
+ * Extract a readable connector name from the connector ID.
88
+ * Connector IDs look like: /providers/Microsoft.PowerApps/apis/shared_commondataserviceforapps
89
+ */
90
+ extractConnectorName(connectorId) {
91
+ const parts = connectorId.split('/');
92
+ const lastPart = parts[parts.length - 1] || connectorId;
93
+ return lastPart.replace('shared_', '');
94
+ }
95
+ }
96
+ //# sourceMappingURL=ConnectionReferenceService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectionReferenceService.js","sourceRoot":"","sources":["../../src/services/ConnectionReferenceService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * SecurityRoleService
3
+ *
4
+ * Read-only service for querying security roles and their privileges
5
+ * in a Dataverse environment. Supports filtering by solution and
6
+ * detailed privilege inspection.
7
+ */
8
+ import type { PowerPlatformClient } from '../client/PowerPlatformClient.js';
9
+ export interface SecurityRole {
10
+ roleId: string;
11
+ roleIdUnique: string;
12
+ name: string;
13
+ isManaged: boolean;
14
+ isCustomizable: boolean;
15
+ businessUnitId: string;
16
+ }
17
+ export interface SecurityRolesResult {
18
+ roles: SecurityRole[];
19
+ summary: {
20
+ total: number;
21
+ managed: number;
22
+ unmanaged: number;
23
+ systemRolesExcluded: number;
24
+ };
25
+ }
26
+ export interface RolePrivilege {
27
+ privilegeId: string;
28
+ privilegeName: string;
29
+ entityName: string;
30
+ accessRight: string;
31
+ depth: string;
32
+ canBeBasic: boolean;
33
+ canBeLocal: boolean;
34
+ canBeDeep: boolean;
35
+ canBeGlobal: boolean;
36
+ }
37
+ export interface SecurityRolePrivilegesResult {
38
+ roleId: string;
39
+ privileges: RolePrivilege[];
40
+ groupedByEntity: Record<string, RolePrivilege[]>;
41
+ summary: {
42
+ total: number;
43
+ entityCount: number;
44
+ byAccessRight: Record<string, number>;
45
+ };
46
+ }
47
+ export interface SecurityRoleBySolution extends SecurityRole {
48
+ privilegeSummary?: {
49
+ total: number;
50
+ entityCount: number;
51
+ };
52
+ }
53
+ export interface SecurityRolesBySolutionResult {
54
+ solutionUniqueName: string;
55
+ roles: SecurityRoleBySolution[];
56
+ summary: {
57
+ total: number;
58
+ };
59
+ }
60
+ export declare class SecurityRoleService {
61
+ private client;
62
+ private solutionService;
63
+ constructor(client: PowerPlatformClient);
64
+ /**
65
+ * Get security roles, optionally filtered by solution
66
+ */
67
+ getSecurityRoles(options?: {
68
+ solutionUniqueName?: string;
69
+ excludeSystemRoles?: boolean;
70
+ maxRecords?: number;
71
+ }): Promise<SecurityRolesResult>;
72
+ /**
73
+ * Get privileges for a specific security role
74
+ */
75
+ getSecurityRolePrivileges(options: {
76
+ roleId: string;
77
+ entityFilter?: string;
78
+ accessRightFilter?: string;
79
+ }): Promise<SecurityRolePrivilegesResult>;
80
+ /**
81
+ * Get security roles that are components of a specific solution
82
+ */
83
+ getSecurityRolesBySolution(options: {
84
+ solutionUniqueName: string;
85
+ includePrivileges?: boolean;
86
+ }): Promise<SecurityRolesBySolutionResult>;
87
+ /**
88
+ * Extract entity name from privilege name.
89
+ * Privilege names follow pattern: prv{Action}{EntityName}
90
+ * e.g., prvReadAccount, prvCreateContact, prvWriteInvoice
91
+ */
92
+ private extractEntityFromPrivilegeName;
93
+ /**
94
+ * Map access right bit flag to readable string
95
+ */
96
+ private mapAccessRight;
97
+ }
98
+ //# sourceMappingURL=SecurityRoleService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecurityRoleService.d.ts","sourceRoot":"","sources":["../../src/services/SecurityRoleService.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAQ5E,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IACjD,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACvC,CAAC;CACH;AAED,MAAM,WAAW,sBAAuB,SAAQ,YAAY;IAC1D,gBAAgB,CAAC,EAAE;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,6BAA6B;IAC5C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAiFD,qBAAa,mBAAmB;IAGlB,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,eAAe,CAAkB;gBAErB,MAAM,EAAE,mBAAmB;IAI/C;;OAEG;IACG,gBAAgB,CAAC,OAAO,CAAC,EAAE;QAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAuDhC;;OAEG;IACG,yBAAyB,CAAC,OAAO,EAAE;QACvC,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,GAAG,OAAO,CAAC,4BAA4B,CAAC;IA4FzC;;OAEG;IACG,0BAA0B,CAAC,OAAO,EAAE;QACxC,kBAAkB,EAAE,MAAM,CAAC;QAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC7B,GAAG,OAAO,CAAC,6BAA6B,CAAC;IA6D1C;;;;OAIG;IACH,OAAO,CAAC,8BAA8B;IAYtC;;OAEG;IACH,OAAO,CAAC,cAAc;CAGvB"}
@@ -0,0 +1,260 @@
1
+ /**
2
+ * SecurityRoleService
3
+ *
4
+ * Read-only service for querying security roles and their privileges
5
+ * in a Dataverse environment. Supports filtering by solution and
6
+ * detailed privilege inspection.
7
+ */
8
+ import { SolutionService } from './SolutionService.js';
9
+ // Well-known system role names that are typically excluded from audits
10
+ const SYSTEM_ROLE_NAMES = [
11
+ 'System Administrator',
12
+ 'System Customizer',
13
+ 'Environment Maker',
14
+ 'Basic User',
15
+ 'Delegate',
16
+ 'Support User',
17
+ 'Activity Feeds',
18
+ 'Sales, Enterprise app access',
19
+ 'Customer Service Representative',
20
+ 'Customer Service Manager',
21
+ 'Knowledge Manager',
22
+ 'Marketing Manager',
23
+ 'Marketing Professional',
24
+ 'Salesperson',
25
+ 'Sales Manager',
26
+ 'Vice President of Sales',
27
+ 'Vice President of Marketing',
28
+ 'CEO-Business Manager',
29
+ 'CSR Manager',
30
+ 'Schedule Manager',
31
+ ];
32
+ // Access right bit flags
33
+ const ACCESS_RIGHT_MAP = {
34
+ 1: 'Read',
35
+ 2: 'Write',
36
+ 4: 'Append',
37
+ 8: 'AppendTo',
38
+ 16: 'Create',
39
+ 32: 'Delete',
40
+ 64: 'Share',
41
+ 128: 'Assign',
42
+ };
43
+ // Depth string mapping
44
+ const DEPTH_MAP = {
45
+ Basic: 'User',
46
+ Local: 'Business Unit',
47
+ Deep: 'Parent: Child BU',
48
+ Global: 'Organization',
49
+ };
50
+ // ============================================================================
51
+ // Service
52
+ // ============================================================================
53
+ export class SecurityRoleService {
54
+ client;
55
+ solutionService;
56
+ constructor(client) {
57
+ this.client = client;
58
+ this.solutionService = new SolutionService(client);
59
+ }
60
+ /**
61
+ * Get security roles, optionally filtered by solution
62
+ */
63
+ async getSecurityRoles(options) {
64
+ const maxRecords = options?.maxRecords ?? 100;
65
+ const excludeSystemRoles = options?.excludeSystemRoles ?? true;
66
+ // If filtering by solution, use the solution-based approach
67
+ if (options?.solutionUniqueName) {
68
+ const result = await this.getSecurityRolesBySolution({
69
+ solutionUniqueName: options.solutionUniqueName,
70
+ includePrivileges: false,
71
+ });
72
+ return {
73
+ roles: result.roles,
74
+ summary: {
75
+ total: result.roles.length,
76
+ managed: result.roles.filter((r) => r.isManaged).length,
77
+ unmanaged: result.roles.filter((r) => !r.isManaged).length,
78
+ systemRolesExcluded: 0,
79
+ },
80
+ };
81
+ }
82
+ const response = await this.client.makeRequest(`api/data/v9.2/roles` +
83
+ `?$select=roleid,name,roleidunique,ismanaged,iscustomizable,_businessunitid_value` +
84
+ `&$orderby=name` +
85
+ `&$top=${maxRecords}`);
86
+ let roles = (response.value || []).map((r) => ({
87
+ roleId: r.roleid,
88
+ roleIdUnique: r.roleidunique,
89
+ name: r.name,
90
+ isManaged: r.ismanaged,
91
+ isCustomizable: r.iscustomizable?.Value ?? false,
92
+ businessUnitId: r._businessunitid_value,
93
+ }));
94
+ let systemRolesExcluded = 0;
95
+ if (excludeSystemRoles) {
96
+ const beforeCount = roles.length;
97
+ roles = roles.filter((r) => !SYSTEM_ROLE_NAMES.includes(r.name));
98
+ systemRolesExcluded = beforeCount - roles.length;
99
+ }
100
+ return {
101
+ roles,
102
+ summary: {
103
+ total: roles.length,
104
+ managed: roles.filter((r) => r.isManaged).length,
105
+ unmanaged: roles.filter((r) => !r.isManaged).length,
106
+ systemRolesExcluded,
107
+ },
108
+ };
109
+ }
110
+ /**
111
+ * Get privileges for a specific security role
112
+ */
113
+ async getSecurityRolePrivileges(options) {
114
+ const { roleId, entityFilter, accessRightFilter } = options;
115
+ const cleanRoleId = roleId.replace(/[{}]/g, '');
116
+ // Step 1: Get role privileges via RetrieveRolePrivilegesRole
117
+ const rolePrivilegesResponse = await this.client.makeRequest(`api/data/v9.2/RetrieveRolePrivilegesRole(RoleId=@roleId)?@roleId=${cleanRoleId}`);
118
+ const rolePrivileges = rolePrivilegesResponse.RolePrivileges || [];
119
+ if (rolePrivileges.length === 0) {
120
+ return {
121
+ roleId: cleanRoleId,
122
+ privileges: [],
123
+ groupedByEntity: {},
124
+ summary: { total: 0, entityCount: 0, byAccessRight: {} },
125
+ };
126
+ }
127
+ // Step 2: Batch-fetch privilege details (in chunks to avoid URL length limits)
128
+ const privilegeIds = rolePrivileges.map((rp) => rp.PrivilegeId);
129
+ const depthMap = new Map(rolePrivileges.map((rp) => [rp.PrivilegeId, rp.Depth]));
130
+ const allPrivilegeDetails = [];
131
+ const chunkSize = 50;
132
+ for (let i = 0; i < privilegeIds.length; i += chunkSize) {
133
+ const chunk = privilegeIds.slice(i, i + chunkSize);
134
+ const filter = chunk.map((id) => `privilegeid eq ${id}`).join(' or ');
135
+ const privResponse = await this.client.makeRequest(`api/data/v9.2/privileges?$filter=${filter}` +
136
+ `&$select=privilegeid,name,accessright,canbebasic,canbelocal,canbedeep,canbeglobal`);
137
+ allPrivilegeDetails.push(...(privResponse.value || []));
138
+ }
139
+ // Step 3: Map to result type
140
+ let privileges = allPrivilegeDetails.map((p) => {
141
+ const depth = depthMap.get(p.privilegeid) || 'None';
142
+ const entityName = this.extractEntityFromPrivilegeName(p.name);
143
+ const accessRight = this.mapAccessRight(p.accessright);
144
+ return {
145
+ privilegeId: p.privilegeid,
146
+ privilegeName: p.name,
147
+ entityName,
148
+ accessRight,
149
+ depth: DEPTH_MAP[depth] || depth,
150
+ canBeBasic: p.canbebasic,
151
+ canBeLocal: p.canbelocal,
152
+ canBeDeep: p.canbedeep,
153
+ canBeGlobal: p.canbeglobal,
154
+ };
155
+ });
156
+ // Step 4: Apply filters
157
+ if (entityFilter) {
158
+ const lowerFilter = entityFilter.toLowerCase();
159
+ privileges = privileges.filter((p) => p.entityName.toLowerCase().includes(lowerFilter));
160
+ }
161
+ if (accessRightFilter) {
162
+ const lowerFilter = accessRightFilter.toLowerCase();
163
+ privileges = privileges.filter((p) => p.accessRight.toLowerCase() === lowerFilter);
164
+ }
165
+ // Step 5: Group by entity
166
+ const groupedByEntity = {};
167
+ const byAccessRight = {};
168
+ for (const priv of privileges) {
169
+ if (!groupedByEntity[priv.entityName]) {
170
+ groupedByEntity[priv.entityName] = [];
171
+ }
172
+ groupedByEntity[priv.entityName].push(priv);
173
+ byAccessRight[priv.accessRight] = (byAccessRight[priv.accessRight] || 0) + 1;
174
+ }
175
+ return {
176
+ roleId: cleanRoleId,
177
+ privileges,
178
+ groupedByEntity,
179
+ summary: {
180
+ total: privileges.length,
181
+ entityCount: Object.keys(groupedByEntity).length,
182
+ byAccessRight,
183
+ },
184
+ };
185
+ }
186
+ /**
187
+ * Get security roles that are components of a specific solution
188
+ */
189
+ async getSecurityRolesBySolution(options) {
190
+ const { solutionUniqueName, includePrivileges = false } = options;
191
+ // Step 1: Get solution ID
192
+ const solution = await this.solutionService.getSolution(solutionUniqueName);
193
+ if (!solution) {
194
+ throw new Error(`Solution '${solutionUniqueName}' not found`);
195
+ }
196
+ // Step 2: Get solution components with type 20 (Security Role)
197
+ const componentsResponse = await this.client.makeRequest(`api/data/v9.2/solutioncomponents` +
198
+ `?$filter=componenttype eq 20 and _solutionid_value eq ${solution.solutionid}` +
199
+ `&$select=objectid,componenttype,rootcomponentbehavior`);
200
+ const roleObjectIds = (componentsResponse.value || []).map((c) => c.objectid);
201
+ if (roleObjectIds.length === 0) {
202
+ return {
203
+ solutionUniqueName,
204
+ roles: [],
205
+ summary: { total: 0 },
206
+ };
207
+ }
208
+ // Step 3: Fetch role details
209
+ const filter = roleObjectIds.map((id) => `roleid eq ${id}`).join(' or ');
210
+ const rolesResponse = await this.client.makeRequest(`api/data/v9.2/roles?$filter=${filter}` +
211
+ `&$select=roleid,name,roleidunique,ismanaged,iscustomizable,_businessunitid_value` +
212
+ `&$orderby=name`);
213
+ const roles = (rolesResponse.value || []).map((r) => ({
214
+ roleId: r.roleid,
215
+ roleIdUnique: r.roleidunique,
216
+ name: r.name,
217
+ isManaged: r.ismanaged,
218
+ isCustomizable: r.iscustomizable?.Value ?? false,
219
+ businessUnitId: r._businessunitid_value,
220
+ }));
221
+ // Step 4: Optionally fetch privilege summaries
222
+ if (includePrivileges) {
223
+ for (const role of roles) {
224
+ const privResult = await this.getSecurityRolePrivileges({ roleId: role.roleId });
225
+ role.privilegeSummary = {
226
+ total: privResult.summary.total,
227
+ entityCount: privResult.summary.entityCount,
228
+ };
229
+ }
230
+ }
231
+ return {
232
+ solutionUniqueName,
233
+ roles,
234
+ summary: { total: roles.length },
235
+ };
236
+ }
237
+ /**
238
+ * Extract entity name from privilege name.
239
+ * Privilege names follow pattern: prv{Action}{EntityName}
240
+ * e.g., prvReadAccount, prvCreateContact, prvWriteInvoice
241
+ */
242
+ extractEntityFromPrivilegeName(privilegeName) {
243
+ // Remove common prefixes
244
+ const actions = ['Read', 'Write', 'Create', 'Delete', 'Append', 'AppendTo', 'Assign', 'Share'];
245
+ for (const action of actions) {
246
+ if (privilegeName.startsWith(`prv${action}`)) {
247
+ return privilegeName.substring(3 + action.length) || privilegeName;
248
+ }
249
+ }
250
+ // Misc privileges (e.g., prvBulkDelete, prvExportToExcel)
251
+ return privilegeName.startsWith('prv') ? privilegeName.substring(3) : privilegeName;
252
+ }
253
+ /**
254
+ * Map access right bit flag to readable string
255
+ */
256
+ mapAccessRight(accessRight) {
257
+ return ACCESS_RIGHT_MAP[accessRight] || `Unknown(${accessRight})`;
258
+ }
259
+ }
260
+ //# sourceMappingURL=SecurityRoleService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecurityRoleService.js","sourceRoot":"","sources":["../../src/services/SecurityRoleService.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,13 @@
5
5
  */
6
6
  export { AppService } from './AppService.js';
7
7
  export { BusinessRuleService } from './BusinessRuleService.js';
8
+ export { ConnectionReferenceService } from './ConnectionReferenceService.js';
9
+ export type { ConnectionReference, ConnectionReferencesResult, } from './ConnectionReferenceService.js';
8
10
  export { FlowService } from './FlowService.js';
9
11
  export { MetadataService } from './MetadataService.js';
10
12
  export { PluginService } from './PluginService.js';
13
+ export { SecurityRoleService } from './SecurityRoleService.js';
14
+ export type { SecurityRole, SecurityRolesResult, RolePrivilege, SecurityRolePrivilegesResult, SecurityRoleBySolution, SecurityRolesBySolutionResult, } from './SecurityRoleService.js';
11
15
  export { ValidationService } from './ValidationService.js';
12
16
  export { WorkflowService } from './WorkflowService.js';
13
17
  export { DataService } from './DataService.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,YAAY,EACV,cAAc,EACd,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,EAC1B,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,0BAA0B,EAC1B,+BAA+B,EAC/B,8BAA8B,EAC9B,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,YAAY,EACV,4BAA4B,EAC5B,4BAA4B,EAC5B,2BAA2B,EAC3B,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,YAAY,EACV,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,EACzB,+BAA+B,EAC/B,mBAAmB,EACnB,iBAAiB,EACjB,0BAA0B,EAC1B,mBAAmB,EACnB,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,YAAY,EACV,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,4BAA4B,EAC5B,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,YAAY,EACV,cAAc,EACd,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,EAC1B,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,0BAA0B,EAC1B,+BAA+B,EAC/B,8BAA8B,EAC9B,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,YAAY,EACV,4BAA4B,EAC5B,4BAA4B,EAC5B,2BAA2B,EAC3B,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,YAAY,EACV,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,EACzB,+BAA+B,EAC/B,mBAAmB,EACnB,iBAAiB,EACjB,0BAA0B,EAC1B,mBAAmB,EACnB,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,8BAA8B,CAAC"}
@@ -6,9 +6,11 @@
6
6
  // Read-only services
7
7
  export { AppService } from './AppService.js';
8
8
  export { BusinessRuleService } from './BusinessRuleService.js';
9
+ export { ConnectionReferenceService } from './ConnectionReferenceService.js';
9
10
  export { FlowService } from './FlowService.js';
10
11
  export { MetadataService } from './MetadataService.js';
11
12
  export { PluginService } from './PluginService.js';
13
+ export { SecurityRoleService } from './SecurityRoleService.js';
12
14
  export { ValidationService } from './ValidationService.js';
13
15
  export { WorkflowService } from './WorkflowService.js';
14
16
  // Data services (for powerplatform-data package)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,qBAAqB;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,iDAAiD;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,mEAAmE;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,0FAA0F;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAUvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAa3E,wEAAwE;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AASrE,4BAA4B;AAC5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,qBAAqB;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAK7E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAS/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,iDAAiD;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,mEAAmE;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,0FAA0F;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAUvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAa3E,wEAAwE;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AASrE,4BAA4B;AAC5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-consultant-tools/powerplatform-core",
3
- "version": "27.0.0",
3
+ "version": "28.0.0-beta.3",
4
4
  "description": "Shared core infrastructure for PowerPlatform MCP packages - authentication, HTTP client, and modular services",
5
5
  "type": "module",
6
6
  "main": "./build/index.js",