@pptb/types 1.2.6-beta.2 → 1.2.7-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +76 -50
  2. package/dataverseAPI.d.ts +101 -37
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -3,56 +3,57 @@
3
3
  TypeScript type definitions for Power Platform ToolBox APIs, plus a built-in CLI validator that checks your tool's `package.json` against the official review criteria before you publish to npm.
4
4
 
5
5
  - [@pptb/types](#pptbtypes)
6
- - [Installation](#installation)
7
- - [Tool Validation](#tool-validation)
8
- - [Quick start](#quick-start)
9
- - [CLI options](#cli-options)
10
- - [What is validated](#what-is-validated)
11
- - [pptb.config.json (optional)](#pptbconfigjson-optional)
12
- - [Overview](#overview)
13
- - [Usage](#usage)
14
- - [Include all type definitions](#include-all-type-definitions)
15
- - [Include specific API types](#include-specific-api-types)
16
- - [ToolBox API Examples](#toolbox-api-examples)
17
- - [Connections](#connections)
18
- - [Utilities](#utilities)
19
- - [Terminal Operations](#terminal-operations)
20
- - [Events](#events)
21
- - [Inter-Tool Invocation](#inter-tool-invocation)
22
- - [Caller: launching another tool with prefill data](#caller-launching-another-tool-with-prefill-data)
23
- - [Caller: tag-based capability discovery](#caller-tag-based-capability-discovery)
24
- - [Caller: tag-based capability discovery](#caller-tag-based-capability-discovery-1)
25
- - [Callee: reading prefill data and returning a result](#callee-reading-prefill-data-and-returning-a-result)
26
- - [Declaring your invocation contract](#declaring-your-invocation-contract)
27
- - [Dataverse API Examples](#dataverse-api-examples)
28
- - [CRUD Operations](#crud-operations)
29
- - [FetchXML Queries](#fetchxml-queries)
30
- - [Metadata Operations](#metadata-operations)
31
- - [Execute Actions/Functions](#execute-actionsfunctions)
32
- - [Deploy Solutions](#deploy-solutions)
33
- - [Power Platform API Examples](#power-platform-api-examples)
34
- - [Using Power Apps API](#using-power-apps-api)
35
- - [Using Power Automate API](#using-power-automate-api)
36
- - [Using Environment Management API](#using-environment-management-api)
37
- - [Using Governance API](#using-governance-api)
38
- - [Available Categories](#available-categories)
39
- - [API Reference](#api-reference)
40
- - [ToolBox API (`window.toolboxAPI`)](#toolbox-api-windowtoolboxapi)
41
- - [Connections](#connections-1)
42
- - [Utils](#utils)
43
- - [Terminal](#terminal)
44
- - [Events](#events-1)
45
- - [Invocation](#invocation)
46
- - [Dataverse API (`window.dataverseAPI`)](#dataverse-api-windowdataverseapi)
47
- - [CRUD Operations](#crud-operations-1)
48
- - [Query Operations](#query-operations)
49
- - [Metadata Operations](#metadata-operations-1)
50
- - [Advanced Operations](#advanced-operations)
51
- - [Power Platform API (`window.powerplatformAPI`)](#power-platform-api-windowpowerplatformapi)
52
- - [Category Methods](#category-methods)
53
- - [Security Notes](#security-notes)
54
- - [Publishing the package to npm](#publishing-the-package-to-npm)
55
- - [License](#license)
6
+ - [Installation](#installation)
7
+ - [Tool Validation](#tool-validation)
8
+ - [Quick start](#quick-start)
9
+ - [CLI options](#cli-options)
10
+ - [What is validated](#what-is-validated)
11
+ - [pptb.config.json (optional)](#pptbconfigjson-optional)
12
+ - [Additional Headers and Batch Operations](#additional-headers-and-batch-operations)
13
+ - [Overview](#overview)
14
+ - [Usage](#usage)
15
+ - [Include all type definitions](#include-all-type-definitions)
16
+ - [Include specific API types](#include-specific-api-types)
17
+ - [ToolBox API Examples](#toolbox-api-examples)
18
+ - [Connections](#connections)
19
+ - [Utilities](#utilities)
20
+ - [Terminal Operations](#terminal-operations)
21
+ - [Events](#events)
22
+ - [Inter-Tool Invocation](#inter-tool-invocation)
23
+ - [Caller: launching another tool with prefill data](#caller-launching-another-tool-with-prefill-data)
24
+ - [Caller: tag-based capability discovery](#caller-tag-based-capability-discovery)
25
+ - [Caller: tag-based capability discovery](#caller-tag-based-capability-discovery-1)
26
+ - [Callee: reading prefill data and returning a result](#callee-reading-prefill-data-and-returning-a-result)
27
+ - [Declaring your invocation contract](#declaring-your-invocation-contract)
28
+ - [Dataverse API Examples](#dataverse-api-examples)
29
+ - [CRUD Operations](#crud-operations)
30
+ - [FetchXML Queries](#fetchxml-queries)
31
+ - [Metadata Operations](#metadata-operations)
32
+ - [Execute Actions/Functions](#execute-actionsfunctions)
33
+ - [Deploy Solutions](#deploy-solutions)
34
+ - [Power Platform API Examples](#power-platform-api-examples)
35
+ - [Using Power Apps API](#using-power-apps-api)
36
+ - [Using Power Automate API](#using-power-automate-api)
37
+ - [Using Environment Management API](#using-environment-management-api)
38
+ - [Using Governance API](#using-governance-api)
39
+ - [Available Categories](#available-categories)
40
+ - [API Reference](#api-reference)
41
+ - [ToolBox API (`window.toolboxAPI`)](#toolbox-api-windowtoolboxapi)
42
+ - [Connections](#connections-1)
43
+ - [Utils](#utils)
44
+ - [Terminal](#terminal)
45
+ - [Events](#events-1)
46
+ - [Invocation](#invocation)
47
+ - [Dataverse API (`window.dataverseAPI`)](#dataverse-api-windowdataverseapi)
48
+ - [CRUD Operations](#crud-operations-1)
49
+ - [Query Operations](#query-operations)
50
+ - [Metadata Operations](#metadata-operations-1)
51
+ - [Advanced Operations](#advanced-operations)
52
+ - [Power Platform API (`window.powerplatformAPI`)](#power-platform-api-windowpowerplatformapi)
53
+ - [Category Methods](#category-methods)
54
+ - [Security Notes](#security-notes)
55
+ - [Publishing the package to npm](#publishing-the-package-to-npm)
56
+ - [License](#license)
56
57
 
57
58
  ## Installation
58
59
 
@@ -177,6 +178,31 @@ In addition to `package.json`, the validator automatically checks a `pptb.config
177
178
  }
178
179
  ```
179
180
 
181
+ ## Additional Headers and Batch Operations
182
+
183
+ Network-backed `dataverseAPI` methods accept optional additional headers as their final argument. The desktop app shows the exact header names and values for user consent before sending the first request. Users can allow the request once, allow all future Dataverse headers for that tool, or reject it.
184
+
185
+ ```typescript
186
+ await dataverseAPI.update("account", accountId, { name: "Contoso" }, "primary", {
187
+ "If-Match": "*",
188
+ Prefer: "return=minimal",
189
+ });
190
+
191
+ const results = await dataverseAPI.executeBatch([
192
+ { method: "GET", url: "accounts?$select=name&$top=5" },
193
+ { method: "DELETE", url: `contacts(${contactId})`, headers: { "If-Match": "*" } },
194
+ ]);
195
+
196
+ await dataverseAPI.executeTransaction([
197
+ { method: "POST", url: "accounts", body: { name: "Contoso" } },
198
+ { method: "POST", url: "contacts", body: { firstname: "Ada" } },
199
+ ]);
200
+ ```
201
+
202
+ `executeBatch` returns an ordered result for every operation, including status, response headers, and an optional body. `executeTransaction` uses one atomic changeset and accepts write operations only. Batch URLs must be relative to the assigned Dataverse connection.
203
+
204
+ Headless tools can use additional headers only after the user has granted persistent access during a windowed request.
205
+
180
206
  ## Overview
181
207
 
182
208
  The `@pptb/types` package provides TypeScript definitions for three main APIs:
package/dataverseAPI.d.ts CHANGED
@@ -5,6 +5,25 @@
5
5
  */
6
6
 
7
7
  declare namespace DataverseAPI {
8
+ export type AdditionalHeaders = Record<string, string>;
9
+ export type ConnectionTarget = "primary" | "secondary";
10
+ export type BatchMethod = "GET" | "POST" | "PATCH" | "PUT" | "DELETE";
11
+
12
+ export interface BatchRequest {
13
+ method: BatchMethod;
14
+ url: string;
15
+ headers?: AdditionalHeaders;
16
+ body?: unknown;
17
+ contentId?: string;
18
+ }
19
+
20
+ export interface BatchResult {
21
+ contentId?: string;
22
+ status: number;
23
+ statusText?: string;
24
+ headers: Record<string, string>;
25
+ body?: unknown;
26
+ }
8
27
  /**
9
28
  * FetchXML query result
10
29
  */
@@ -336,7 +355,7 @@ declare namespace DataverseAPI {
336
355
  * name: 'Contoso Ltd'
337
356
  * }, 'secondary');
338
357
  */
339
- create: (entityLogicalName: string, record: Record<string, unknown>, connectionTarget?: "primary" | "secondary") => Promise<CreateResult>;
358
+ create: (entityLogicalName: string, record: Record<string, unknown>, connectionTarget?: ConnectionTarget, additionalHeaders?: AdditionalHeaders) => Promise<CreateResult>;
340
359
 
341
360
  /**
342
361
  * Retrieve a single record by ID
@@ -359,7 +378,7 @@ declare namespace DataverseAPI {
359
378
  * // Multi-connection tool using secondary connection
360
379
  * const account = await dataverseAPI.retrieve('account', 'guid-here', ['name'], 'secondary');
361
380
  */
362
- retrieve: (entityLogicalName: string, id: string, columns?: string[], connectionTarget?: "primary" | "secondary") => Promise<Record<string, unknown>>;
381
+ retrieve: (entityLogicalName: string, id: string, columns?: string[], connectionTarget?: ConnectionTarget, additionalHeaders?: AdditionalHeaders) => Promise<Record<string, unknown>>;
363
382
 
364
383
  /**
365
384
  * Update an existing record
@@ -379,7 +398,7 @@ declare namespace DataverseAPI {
379
398
  * // Multi-connection tool using secondary connection
380
399
  * await dataverseAPI.update('account', 'guid-here', { name: 'Updated' }, 'secondary');
381
400
  */
382
- update: (entityLogicalName: string, id: string, record: Record<string, unknown>, connectionTarget?: "primary" | "secondary") => Promise<void>;
401
+ update: (entityLogicalName: string, id: string, record: Record<string, unknown>, connectionTarget?: ConnectionTarget, additionalHeaders?: AdditionalHeaders) => Promise<void>;
383
402
 
384
403
  /**
385
404
  * Delete a record
@@ -395,7 +414,7 @@ declare namespace DataverseAPI {
395
414
  * // Multi-connection tool using secondary connection
396
415
  * await dataverseAPI.delete('account', 'guid-here', 'secondary');
397
416
  */
398
- delete: (entityLogicalName: string, id: string, connectionTarget?: "primary" | "secondary") => Promise<void>;
417
+ delete: (entityLogicalName: string, id: string, connectionTarget?: ConnectionTarget, additionalHeaders?: AdditionalHeaders) => Promise<void>;
399
418
 
400
419
  /**
401
420
  * Execute a FetchXML query
@@ -428,7 +447,7 @@ declare namespace DataverseAPI {
428
447
  * // Multi-connection tool using secondary connection
429
448
  * const result = await dataverseAPI.fetchXmlQuery(fetchXml, 'secondary');
430
449
  */
431
- fetchXmlQuery: (fetchXml: string, connectionTarget?: "primary" | "secondary") => Promise<FetchXmlResult>;
450
+ fetchXmlQuery: (fetchXml: string, connectionTarget?: ConnectionTarget, additionalHeaders?: AdditionalHeaders) => Promise<FetchXmlResult>;
432
451
 
433
452
  /**
434
453
  * Retrieve multiple records (alias for fetchXmlQuery for backward compatibility)
@@ -437,7 +456,7 @@ declare namespace DataverseAPI {
437
456
  * @param connectionTarget - Optional connection target for multi-connection tools ('primary' or 'secondary'). Defaults to 'primary'.
438
457
  * @returns Object with value array containing matching records
439
458
  */
440
- retrieveMultiple: (fetchXml: string, connectionTarget?: "primary" | "secondary") => Promise<FetchXmlResult>;
459
+ retrieveMultiple: (fetchXml: string, connectionTarget?: ConnectionTarget, additionalHeaders?: AdditionalHeaders) => Promise<FetchXmlResult>;
441
460
 
442
461
  /**
443
462
  * Execute a Dataverse Web API action or function
@@ -473,7 +492,7 @@ declare namespace DataverseAPI {
473
492
  * operationType: 'function'
474
493
  * }, 'secondary');
475
494
  */
476
- execute: (request: ExecuteRequest, connectionTarget?: "primary" | "secondary") => Promise<Record<string, unknown>>;
495
+ execute: (request: ExecuteRequest, connectionTarget?: ConnectionTarget, additionalHeaders?: AdditionalHeaders) => Promise<Record<string, unknown>>;
477
496
 
478
497
  /**
479
498
  * Get metadata for a specific entity
@@ -500,7 +519,13 @@ declare namespace DataverseAPI {
500
519
  * // Multi-connection tool using secondary connection
501
520
  * const metadata = await dataverseAPI.getEntityMetadata('account', true, ['LogicalName'], 'secondary');
502
521
  */
503
- getEntityMetadata: (entityLogicalName: string, searchByLogicalName: boolean, entityProperties?: string[], connectionTarget?: "primary" | "secondary") => Promise<EntityMetadata>;
522
+ getEntityMetadata: (
523
+ entityLogicalName: string,
524
+ searchByLogicalName: boolean,
525
+ entityProperties?: string[],
526
+ connectionTarget?: ConnectionTarget,
527
+ additionalHeaders?: AdditionalHeaders,
528
+ ) => Promise<EntityMetadata>;
504
529
 
505
530
  /**
506
531
  * Get metadata for all entities
@@ -519,7 +544,7 @@ declare namespace DataverseAPI {
519
544
  * // Multi-connection tool using secondary connection
520
545
  * const allEntities = await dataverseAPI.getAllEntitiesMetadata(['LogicalName'], 'secondary');
521
546
  */
522
- getAllEntitiesMetadata: (entityProperties?: string[], connectionTarget?: "primary" | "secondary") => Promise<EntityMetadataCollection>;
547
+ getAllEntitiesMetadata: (entityProperties?: string[], connectionTarget?: ConnectionTarget, additionalHeaders?: AdditionalHeaders) => Promise<EntityMetadataCollection>;
523
548
 
524
549
  /**
525
550
  * Get related metadata for a specific entity (attributes, relationships, etc.)
@@ -601,7 +626,8 @@ declare namespace DataverseAPI {
601
626
  entityLogicalName: string,
602
627
  relatedPath: P,
603
628
  relatedProperties?: string[],
604
- connectionTarget?: "primary" | "secondary",
629
+ connectionTarget?: ConnectionTarget,
630
+ additionalHeaders?: AdditionalHeaders,
605
631
  ) => Promise<EntityRelatedMetadataResponse<P>>;
606
632
 
607
633
  /**
@@ -628,7 +654,7 @@ declare namespace DataverseAPI {
628
654
  * // Multi-connection tool using secondary connection
629
655
  * const solutions = await dataverseAPI.getSolutions(['uniquename'], 'secondary');
630
656
  */
631
- getSolutions: (selectColumns: string[], connectionTarget?: "primary" | "secondary") => Promise<{ value: Record<string, unknown>[] }>;
657
+ getSolutions: (selectColumns: string[], connectionTarget?: ConnectionTarget, additionalHeaders?: AdditionalHeaders) => Promise<{ value: Record<string, unknown>[] }>;
632
658
 
633
659
  /**
634
660
  * Query data from Dataverse using OData query parameters
@@ -663,7 +689,7 @@ declare namespace DataverseAPI {
663
689
  * // Multi-connection tool using secondary connection
664
690
  * const result = await dataverseAPI.queryData('contacts?$filter=statecode eq 0', 'secondary');
665
691
  */
666
- queryData: (odataQuery: string, connectionTarget?: "primary" | "secondary") => Promise<{ value: Record<string, unknown>[] }>;
692
+ queryData: (odataQuery: string, connectionTarget?: ConnectionTarget, additionalHeaders?: AdditionalHeaders) => Promise<{ value: Record<string, unknown>[] }>;
667
693
 
668
694
  /**
669
695
  * Publish customizations for the current environment.
@@ -682,7 +708,7 @@ declare namespace DataverseAPI {
682
708
  * // Publish only the account table
683
709
  * await dataverseAPI.publishCustomizations('account');
684
710
  */
685
- publishCustomizations: (tableLogicalName?: string, connectionTarget?: "primary" | "secondary") => Promise<void>;
711
+ publishCustomizations: (tableLogicalName?: string, connectionTarget?: ConnectionTarget, additionalHeaders?: AdditionalHeaders) => Promise<void>;
686
712
 
687
713
  /**
688
714
  * Create multiple records in Dataverse
@@ -698,7 +724,7 @@ declare namespace DataverseAPI {
698
724
  * { name: 'Fabrikam Inc', "@odata.type": "Microsoft.Dynamics.CRM.account" }
699
725
  * ]);
700
726
  */
701
- createMultiple: (entityLogicalName: string, records: Record<string, unknown>[], connectionTarget?: "primary" | "secondary") => Promise<string[]>;
727
+ createMultiple: (entityLogicalName: string, records: Record<string, unknown>[], connectionTarget?: ConnectionTarget, additionalHeaders?: AdditionalHeaders) => Promise<string[]>;
702
728
 
703
729
  /**
704
730
  * Update multiple records in Dataverse
@@ -712,7 +738,10 @@ declare namespace DataverseAPI {
712
738
  * { accountid: 'guid-2', name: 'Updated Name 2', "@odata.type": "Microsoft.Dynamics.CRM.account" }
713
739
  * ]);
714
740
  */
715
- updateMultiple: (entityLogicalName: string, records: Record<string, unknown>[], connectionTarget?: "primary" | "secondary") => Promise<void>;
741
+ updateMultiple: (entityLogicalName: string, records: Record<string, unknown>[], connectionTarget?: ConnectionTarget, additionalHeaders?: AdditionalHeaders) => Promise<void>;
742
+
743
+ executeBatch: (requests: BatchRequest[], connectionTarget?: ConnectionTarget, additionalHeaders?: AdditionalHeaders) => Promise<BatchResult[]>;
744
+ executeTransaction: (requests: BatchRequest[], connectionTarget?: ConnectionTarget, additionalHeaders?: AdditionalHeaders) => Promise<BatchResult[]>;
716
745
 
717
746
  /**
718
747
  * Gets the Dataverse entity set (collection) name for the specified table.
@@ -783,7 +812,8 @@ declare namespace DataverseAPI {
783
812
  relationshipName: string,
784
813
  relatedEntityName: string,
785
814
  relatedEntityId: string,
786
- connectionTarget?: "primary" | "secondary",
815
+ connectionTarget?: ConnectionTarget,
816
+ additionalHeaders?: AdditionalHeaders,
787
817
  ) => Promise<void>;
788
818
 
789
819
  /**
@@ -823,7 +853,14 @@ declare namespace DataverseAPI {
823
853
  * 'secondary'
824
854
  * );
825
855
  */
826
- disassociate: (primaryEntityName: string, primaryEntityId: string, relationshipName: string, relatedEntityId: string, connectionTarget?: "primary" | "secondary") => Promise<void>;
856
+ disassociate: (
857
+ primaryEntityName: string,
858
+ primaryEntityId: string,
859
+ relationshipName: string,
860
+ relatedEntityId: string,
861
+ connectionTarget?: ConnectionTarget,
862
+ additionalHeaders?: AdditionalHeaders,
863
+ ) => Promise<void>;
827
864
 
828
865
  /**
829
866
  * Deploy (import) a solution to the Dataverse environment
@@ -889,7 +926,8 @@ declare namespace DataverseAPI {
889
926
  */
890
927
  convertToManaged?: boolean;
891
928
  },
892
- connectionTarget?: "primary" | "secondary",
929
+ connectionTarget?: ConnectionTarget,
930
+ additionalHeaders?: AdditionalHeaders,
893
931
  ) => Promise<{ ImportJobId: string }>;
894
932
 
895
933
  /**
@@ -934,7 +972,7 @@ declare namespace DataverseAPI {
934
972
  * // Multi-connection tool using secondary connection
935
973
  * const status = await dataverseAPI.getImportJobStatus(importJobId, 'secondary');
936
974
  */
937
- getImportJobStatus: (importJobId: string, connectionTarget?: "primary" | "secondary") => Promise<Record<string, unknown>>;
975
+ getImportJobStatus: (importJobId: string, connectionTarget?: ConnectionTarget, additionalHeaders?: AdditionalHeaders) => Promise<Record<string, unknown>>;
938
976
 
939
977
  // ========================================
940
978
  // Metadata Helper Utilities
@@ -977,7 +1015,7 @@ declare namespace DataverseAPI {
977
1015
  * @param connectionTarget - Optional connection target for multi-connection tools
978
1016
  * @returns Raw CSDL/EDMX XML document as string (typically 1-5MB)
979
1017
  */
980
- getCSDLDocument: (connectionTarget?: "primary" | "secondary") => Promise<string>;
1018
+ getCSDLDocument: (connectionTarget?: ConnectionTarget, additionalHeaders?: AdditionalHeaders) => Promise<string>;
981
1019
 
982
1020
  /**
983
1021
  * Get the OData type string for an attribute metadata type
@@ -1043,7 +1081,12 @@ declare namespace DataverseAPI {
1043
1081
  * // IMPORTANT: Publish customizations to make changes active
1044
1082
  * await dataverseAPI.publishCustomizations("new_project");
1045
1083
  */
1046
- createEntityDefinition: (entityDefinition: Record<string, unknown>, options?: MetadataOperationOptions, connectionTarget?: "primary" | "secondary") => Promise<{ id: string }>;
1084
+ createEntityDefinition: (
1085
+ entityDefinition: Record<string, unknown>,
1086
+ options?: MetadataOperationOptions,
1087
+ connectionTarget?: ConnectionTarget,
1088
+ additionalHeaders?: AdditionalHeaders,
1089
+ ) => Promise<{ id: string }>;
1047
1090
 
1048
1091
  /**
1049
1092
  * Update an entity (table) definition
@@ -1082,7 +1125,13 @@ declare namespace DataverseAPI {
1082
1125
  * { mergeLabels: true }
1083
1126
  * );
1084
1127
  */
1085
- updateEntityDefinition: (entityIdentifier: string, entityDefinition: Record<string, unknown>, options?: MetadataOperationOptions, connectionTarget?: "primary" | "secondary") => Promise<void>;
1128
+ updateEntityDefinition: (
1129
+ entityIdentifier: string,
1130
+ entityDefinition: Record<string, unknown>,
1131
+ options?: MetadataOperationOptions,
1132
+ connectionTarget?: ConnectionTarget,
1133
+ additionalHeaders?: AdditionalHeaders,
1134
+ ) => Promise<void>;
1086
1135
 
1087
1136
  /**
1088
1137
  * Delete an entity (table) definition
@@ -1099,7 +1148,7 @@ declare namespace DataverseAPI {
1099
1148
  * // Delete using MetadataId
1100
1149
  * await dataverseAPI.deleteEntityDefinition("70816501-edb9-4740-a16c-6a5efbc05d84");
1101
1150
  */
1102
- deleteEntityDefinition: (entityIdentifier: string, connectionTarget?: "primary" | "secondary") => Promise<void>;
1151
+ deleteEntityDefinition: (entityIdentifier: string, connectionTarget?: ConnectionTarget, additionalHeaders?: AdditionalHeaders) => Promise<void>;
1103
1152
 
1104
1153
  // ========================================
1105
1154
  // Attribute (Column) Metadata CRUD Operations
@@ -1167,7 +1216,8 @@ declare namespace DataverseAPI {
1167
1216
  entityLogicalName: string,
1168
1217
  attributeDefinition: Record<string, unknown>,
1169
1218
  options?: MetadataOperationOptions,
1170
- connectionTarget?: "primary" | "secondary",
1219
+ connectionTarget?: ConnectionTarget,
1220
+ additionalHeaders?: AdditionalHeaders,
1171
1221
  ) => Promise<{ id: string }>;
1172
1222
 
1173
1223
  /**
@@ -1210,7 +1260,8 @@ declare namespace DataverseAPI {
1210
1260
  attributeIdentifier: string,
1211
1261
  attributeDefinition: Record<string, unknown>,
1212
1262
  options?: MetadataOperationOptions,
1213
- connectionTarget?: "primary" | "secondary",
1263
+ connectionTarget?: ConnectionTarget,
1264
+ additionalHeaders?: AdditionalHeaders,
1214
1265
  ) => Promise<void>;
1215
1266
 
1216
1267
  /**
@@ -1228,7 +1279,7 @@ declare namespace DataverseAPI {
1228
1279
  * // Delete using MetadataId
1229
1280
  * await dataverseAPI.deleteAttribute("new_project", "00aa00aa-bb11-cc22-dd33-44ee44ee44ee");
1230
1281
  */
1231
- deleteAttribute: (entityLogicalName: string, attributeIdentifier: string, connectionTarget?: "primary" | "secondary") => Promise<void>;
1282
+ deleteAttribute: (entityLogicalName: string, attributeIdentifier: string, connectionTarget?: ConnectionTarget, additionalHeaders?: AdditionalHeaders) => Promise<void>;
1232
1283
 
1233
1284
  /**
1234
1285
  * Create a polymorphic lookup attribute (Customer/Regarding field)
@@ -1260,7 +1311,8 @@ declare namespace DataverseAPI {
1260
1311
  entityLogicalName: string,
1261
1312
  attributeDefinition: Record<string, unknown>,
1262
1313
  options?: Record<string, unknown>,
1263
- connectionTarget?: "primary" | "secondary",
1314
+ connectionTarget?: ConnectionTarget,
1315
+ additionalHeaders?: AdditionalHeaders,
1264
1316
  ) => Promise<{ AttributeId: string }>;
1265
1317
 
1266
1318
  // ========================================
@@ -1315,7 +1367,12 @@ declare namespace DataverseAPI {
1315
1367
  * });
1316
1368
  * await dataverseAPI.publishCustomizations();
1317
1369
  */
1318
- createRelationship: (relationshipDefinition: Record<string, unknown>, options?: MetadataOperationOptions, connectionTarget?: "primary" | "secondary") => Promise<{ id: string }>;
1370
+ createRelationship: (
1371
+ relationshipDefinition: Record<string, unknown>,
1372
+ options?: MetadataOperationOptions,
1373
+ connectionTarget?: ConnectionTarget,
1374
+ additionalHeaders?: AdditionalHeaders,
1375
+ ) => Promise<{ id: string }>;
1319
1376
 
1320
1377
  /**
1321
1378
  * Update a relationship definition
@@ -1331,7 +1388,8 @@ declare namespace DataverseAPI {
1331
1388
  relationshipIdentifier: string,
1332
1389
  relationshipDefinition: Record<string, unknown>,
1333
1390
  options?: MetadataOperationOptions,
1334
- connectionTarget?: "primary" | "secondary",
1391
+ connectionTarget?: ConnectionTarget,
1392
+ additionalHeaders?: AdditionalHeaders,
1335
1393
  ) => Promise<void>;
1336
1394
 
1337
1395
  /**
@@ -1344,7 +1402,7 @@ declare namespace DataverseAPI {
1344
1402
  * @example
1345
1403
  * await dataverseAPI.deleteRelationship("new_project_tasks");
1346
1404
  */
1347
- deleteRelationship: (relationshipIdentifier: string, connectionTarget?: "primary" | "secondary") => Promise<void>;
1405
+ deleteRelationship: (relationshipIdentifier: string, connectionTarget?: ConnectionTarget, additionalHeaders?: AdditionalHeaders) => Promise<void>;
1348
1406
 
1349
1407
  // ========================================
1350
1408
  // Global Option Set (Choice) CRUD Operations
@@ -1379,7 +1437,12 @@ declare namespace DataverseAPI {
1379
1437
  *
1380
1438
  * await dataverseAPI.publishCustomizations();
1381
1439
  */
1382
- createGlobalOptionSet: (optionSetDefinition: Record<string, unknown>, options?: MetadataOperationOptions, connectionTarget?: "primary" | "secondary") => Promise<{ id: string }>;
1440
+ createGlobalOptionSet: (
1441
+ optionSetDefinition: Record<string, unknown>,
1442
+ options?: MetadataOperationOptions,
1443
+ connectionTarget?: ConnectionTarget,
1444
+ additionalHeaders?: AdditionalHeaders,
1445
+ ) => Promise<{ id: string }>;
1383
1446
 
1384
1447
  /**
1385
1448
  * Update a global option set definition
@@ -1395,7 +1458,8 @@ declare namespace DataverseAPI {
1395
1458
  optionSetIdentifier: string,
1396
1459
  optionSetDefinition: Record<string, unknown>,
1397
1460
  options?: MetadataOperationOptions,
1398
- connectionTarget?: "primary" | "secondary",
1461
+ connectionTarget?: ConnectionTarget,
1462
+ additionalHeaders?: AdditionalHeaders,
1399
1463
  ) => Promise<void>;
1400
1464
 
1401
1465
  /**
@@ -1408,7 +1472,7 @@ declare namespace DataverseAPI {
1408
1472
  * @example
1409
1473
  * await dataverseAPI.deleteGlobalOptionSet("new_projectstatus");
1410
1474
  */
1411
- deleteGlobalOptionSet: (optionSetIdentifier: string, connectionTarget?: "primary" | "secondary") => Promise<void>;
1475
+ deleteGlobalOptionSet: (optionSetIdentifier: string, connectionTarget?: ConnectionTarget, additionalHeaders?: AdditionalHeaders) => Promise<void>;
1412
1476
 
1413
1477
  // ========================================
1414
1478
  // Option Value Modification Actions
@@ -1445,7 +1509,7 @@ declare namespace DataverseAPI {
1445
1509
  * });
1446
1510
  * await dataverseAPI.publishCustomizations();
1447
1511
  */
1448
- insertOptionValue: (params: Record<string, unknown>, connectionTarget?: "primary" | "secondary") => Promise<Record<string, unknown>>;
1512
+ insertOptionValue: (params: Record<string, unknown>, connectionTarget?: ConnectionTarget, additionalHeaders?: AdditionalHeaders) => Promise<Record<string, unknown>>;
1449
1513
 
1450
1514
  /**
1451
1515
  * Update an existing option value in a local or global option set
@@ -1476,7 +1540,7 @@ declare namespace DataverseAPI {
1476
1540
  * });
1477
1541
  * await dataverseAPI.publishCustomizations();
1478
1542
  */
1479
- updateOptionValue: (params: Record<string, unknown>, connectionTarget?: "primary" | "secondary") => Promise<Record<string, unknown>>;
1543
+ updateOptionValue: (params: Record<string, unknown>, connectionTarget?: ConnectionTarget, additionalHeaders?: AdditionalHeaders) => Promise<Record<string, unknown>>;
1480
1544
 
1481
1545
  /**
1482
1546
  * Delete an option value from a local or global option set
@@ -1503,7 +1567,7 @@ declare namespace DataverseAPI {
1503
1567
  * });
1504
1568
  * await dataverseAPI.publishCustomizations();
1505
1569
  */
1506
- deleteOptionValue: (params: Record<string, unknown>, connectionTarget?: "primary" | "secondary") => Promise<Record<string, unknown>>;
1570
+ deleteOptionValue: (params: Record<string, unknown>, connectionTarget?: ConnectionTarget, additionalHeaders?: AdditionalHeaders) => Promise<Record<string, unknown>>;
1507
1571
 
1508
1572
  /**
1509
1573
  * Reorder options in a local or global option set
@@ -1530,7 +1594,7 @@ declare namespace DataverseAPI {
1530
1594
  * });
1531
1595
  * await dataverseAPI.publishCustomizations();
1532
1596
  */
1533
- orderOption: (params: Record<string, unknown>, connectionTarget?: "primary" | "secondary") => Promise<Record<string, unknown>>;
1597
+ orderOption: (params: Record<string, unknown>, connectionTarget?: ConnectionTarget, additionalHeaders?: AdditionalHeaders) => Promise<Record<string, unknown>>;
1534
1598
  }
1535
1599
  }
1536
1600
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pptb/types",
3
- "version": "1.2.6-beta.2",
3
+ "version": "1.2.7-beta.0",
4
4
  "description": "Type definitions for Power Platform ToolBox APIs and validity checks for tool packages",
5
5
  "main": "index.d.ts",
6
6
  "types": "index.d.ts",