@mcp-consultant-tools/powerplatform-core 30.0.0-beta.5 → 30.0.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -13,7 +13,14 @@ export declare class ViewService {
|
|
|
13
13
|
*/
|
|
14
14
|
createView(view: Record<string, unknown>, solutionUniqueName?: string): Promise<unknown>;
|
|
15
15
|
/**
|
|
16
|
-
* Update a view
|
|
16
|
+
* Update a view.
|
|
17
|
+
*
|
|
18
|
+
* Quick Find views (querytype=4) have platform-enforced Web API restrictions:
|
|
19
|
+
* writes to `fetchxml` hard-fail with 0x80040216, and writes to `name` /
|
|
20
|
+
* `layoutxml` return 204 but are silently discarded. `description` and
|
|
21
|
+
* `isdefault` are the only fields the Web API actually persists. We
|
|
22
|
+
* pre-flight the querytype whenever an unsupported field is in the payload
|
|
23
|
+
* and fail fast so callers don't think a no-op PATCH succeeded.
|
|
17
24
|
*/
|
|
18
25
|
updateView(viewId: string, updates: Record<string, unknown>, solutionUniqueName?: string): Promise<void>;
|
|
19
26
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewService.d.ts","sourceRoot":"","sources":["../../src/services/ViewService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,qBAAa,WAAW;IACV,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,mBAAmB;IAE/C;;OAEG;IACG,UAAU,CACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,OAAO,CAAC;IAanB
|
|
1
|
+
{"version":3,"file":"ViewService.d.ts","sourceRoot":"","sources":["../../src/services/ViewService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,qBAAa,WAAW;IACV,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,mBAAmB;IAE/C;;OAEG;IACG,UAAU,CACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,OAAO,CAAC;IAanB;;;;;;;;;OASG;IACG,UAAU,CACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,IAAI,CAAC;IAiChB;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/C;;OAEG;IACG,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM3D;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnD;;OAEG;IACG,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAKxD"}
|
|
@@ -19,9 +19,31 @@ export class ViewService {
|
|
|
19
19
|
return this.client.makeRequest('api/data/v9.2/savedqueries', 'POST', view, headers);
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
|
-
* Update a view
|
|
22
|
+
* Update a view.
|
|
23
|
+
*
|
|
24
|
+
* Quick Find views (querytype=4) have platform-enforced Web API restrictions:
|
|
25
|
+
* writes to `fetchxml` hard-fail with 0x80040216, and writes to `name` /
|
|
26
|
+
* `layoutxml` return 204 but are silently discarded. `description` and
|
|
27
|
+
* `isdefault` are the only fields the Web API actually persists. We
|
|
28
|
+
* pre-flight the querytype whenever an unsupported field is in the payload
|
|
29
|
+
* and fail fast so callers don't think a no-op PATCH succeeded.
|
|
23
30
|
*/
|
|
24
31
|
async updateView(viewId, updates, solutionUniqueName) {
|
|
32
|
+
const restrictedOnQuickFind = ['fetchxml', 'name', 'layoutxml', 'layoutjson'];
|
|
33
|
+
const touched = restrictedOnQuickFind.filter((f) => Object.prototype.hasOwnProperty.call(updates, f));
|
|
34
|
+
if (touched.length > 0) {
|
|
35
|
+
const existing = await this.client.makeRequest(`api/data/v9.2/savedqueries(${viewId})?$select=querytype,returnedtypecode`);
|
|
36
|
+
if (existing?.querytype === 4) {
|
|
37
|
+
const fields = touched.join(', ');
|
|
38
|
+
const entity = existing.returnedtypecode ? ` for entity '${existing.returnedtypecode}'` : '';
|
|
39
|
+
throw new Error(`Quick Find views (querytype=4) cannot be updated via the Dataverse Web API — ` +
|
|
40
|
+
`fetchxml PATCH hard-fails with 0x80040216, and name/layoutxml PATCH return 204 but are silently discarded. ` +
|
|
41
|
+
`Rejected fields in this update: ${fields}. ` +
|
|
42
|
+
`Allowed fields on a Quick Find view: description, isdefault. ` +
|
|
43
|
+
`Workaround: edit the Quick Find view${entity} in the maker portal (Solutions → your solution → the table → Views → "Quick Find Active ..."), then Save & Publish. ` +
|
|
44
|
+
`This is a Dataverse platform limitation, not an MCP-side issue — same 400 occurs on any direct savedqueries PATCH.`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
25
47
|
const headers = solutionUniqueName
|
|
26
48
|
? { 'MSCRM.SolutionUniqueName': solutionUniqueName }
|
|
27
49
|
: undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewService.js","sourceRoot":"","sources":["../../src/services/ViewService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,OAAO,WAAW;IACF;IAApB,YAAoB,MAA2B;QAA3B,WAAM,GAAN,MAAM,CAAqB;IAAG,CAAC;IAEnD;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,IAA6B,EAC7B,kBAA2B;QAE3B,MAAM,OAAO,GAAuC,kBAAkB;YACpE,CAAC,CAAC,EAAE,0BAA0B,EAAE,kBAAkB,EAAE;YACpD,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAC5B,4BAA4B,EAC5B,MAAM,EACN,IAAI,EACJ,OAAO,CACR,CAAC;IACJ,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"ViewService.js","sourceRoot":"","sources":["../../src/services/ViewService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,OAAO,WAAW;IACF;IAApB,YAAoB,MAA2B;QAA3B,WAAM,GAAN,MAAM,CAAqB;IAAG,CAAC;IAEnD;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,IAA6B,EAC7B,kBAA2B;QAE3B,MAAM,OAAO,GAAuC,kBAAkB;YACpE,CAAC,CAAC,EAAE,0BAA0B,EAAE,kBAAkB,EAAE;YACpD,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAC5B,4BAA4B,EAC5B,MAAM,EACN,IAAI,EACJ,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,UAAU,CACd,MAAc,EACd,OAAgC,EAChC,kBAA2B;QAE3B,MAAM,qBAAqB,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,CAAU,CAAC;QACvF,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QACtG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAC5C,8BAA8B,MAAM,sCAAsC,CAC3E,CAAC;YACF,IAAI,QAAQ,EAAE,SAAS,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,QAAQ,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7F,MAAM,IAAI,KAAK,CACb,+EAA+E;oBAC/E,6GAA6G;oBAC7G,mCAAmC,MAAM,IAAI;oBAC7C,+DAA+D;oBAC/D,uCAAuC,MAAM,uHAAuH;oBACpK,oHAAoH,CACrH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAuC,kBAAkB;YACpE,CAAC,CAAC,EAAE,0BAA0B,EAAE,kBAAkB,EAAE;YACpD,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAC3B,8BAA8B,MAAM,GAAG,EACvC,OAAO,EACP,OAAO,EACP,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAC3B,8BAA8B,MAAM,GAAG,EACvC,QAAQ,CACT,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,iBAAyB;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAC5B,2DAA2D,iBAAiB,sBAAsB,CACnG,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,MAAc;QACjC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAC3B,8BAA8B,MAAM,GAAG,EACvC,OAAO,EACP,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,MAAc;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAC5B,8BAA8B,MAAM,oDAAoD,CACzF,CAAC;IACJ,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mcp-consultant-tools/powerplatform-core",
|
|
3
|
-
"version": "30.0.0-beta.
|
|
3
|
+
"version": "30.0.0-beta.6",
|
|
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",
|