Commit 77cec66
committed
fix(windchill): correct OData query encoding, content download, and cleared-field handling
Validated the integration end to end against PTC Windchill REST Services 2.7
documentation and fixed every divergence found.
Protocol correctness:
- Encode OData query spaces as %20 rather than the form-encoded `+` that
URLSearchParams emits. Every multi-token $filter and $orderby reached
Windchill as a literal `+` and could not match.
- Download content through the documented typed navigation
`<content>/PTC.ApplicationData/Content/URL`, which returns a signed vault
URL, instead of a `$value` segment that WRS does not implement. The
resolved URL is pinned to the configured HTTPS origin.
- Terminate every Stage 2 CacheDescriptor_array entry with `;` to match the
documented grammar.
- Raise the $top bound to Windchill's documented 2000 maximum, keeping 200 as
the default page size.
Cleared-field handling:
- The executor merges raw block inputs before the block's param transform, so
omitting a key could not clear it. A cleared numeric or boolean field
reached the URL builder as '' and threw, and cleared optional strings failed
contract validation. Coercions now emit an explicit undefined, and the
internal-route body strips blanks centrally.
Robustness and contracts:
- Bound the document-structure walk to the depth actually requested.
- Loosen response schemas that re-applied request-side bounds to
provider-returned values, which turned committed mutations into opaque
parse failures.
- Return contract-shaped bodies for oversized, malformed, and unhandled
request failures.
- Normalize downloaded content types and drop charset parameters.
Presentation and docs:
- Square the icon to a centred tile on white.
- Replace WT.Document and PATCH-compatible jargon with plain language.
- Fix canvas sentence noun stutters on the bulk operations.
- Correct the revision skill's unverified working-copy claim to read the OID
back rather than assume it, and add retirement and stale-checkout skills.
- Add a manual intro section to the integration docs page.1 parent 0365309 commit 77cec66
18 files changed
Lines changed: 585 additions & 171 deletions
File tree
- apps
- docs
- components
- content/docs/en/integrations
- sim
- app/api/tools/windchill
- blocks/blocks
- components
- lib
- api/contracts/tools
- integrations
- tools
- generated
- windchill
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2497 | 2497 | | |
2498 | 2498 | | |
2499 | 2499 | | |
2500 | | - | |
2501 | | - | |
| 2500 | + | |
2502 | 2501 | | |
2503 | 2502 | | |
2504 | 2503 | | |
| 2504 | + | |
2505 | 2505 | | |
| 2506 | + | |
2506 | 2507 | | |
2507 | 2508 | | |
2508 | 2509 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
13 | 29 | | |
14 | 30 | | |
15 | | - | |
| 31 | + | |
16 | 32 | | |
17 | 33 | | |
18 | 34 | | |
| |||
295 | 311 | | |
296 | 312 | | |
297 | 313 | | |
298 | | - | |
| 314 | + | |
299 | 315 | | |
300 | 316 | | |
301 | 317 | | |
| |||
366 | 382 | | |
367 | 383 | | |
368 | 384 | | |
369 | | - | |
| 385 | + | |
370 | 386 | | |
371 | 387 | | |
372 | 388 | | |
| |||
767 | 783 | | |
768 | 784 | | |
769 | 785 | | |
770 | | - | |
| 786 | + | |
771 | 787 | | |
772 | 788 | | |
773 | 789 | | |
| |||
816 | 832 | | |
817 | 833 | | |
818 | 834 | | |
819 | | - | |
| 835 | + | |
820 | 836 | | |
821 | 837 | | |
822 | 838 | | |
| |||
835 | 851 | | |
836 | 852 | | |
837 | 853 | | |
| 854 | + | |
838 | 855 | | |
839 | 856 | | |
840 | 857 | | |
| |||
880 | 897 | | |
881 | 898 | | |
882 | 899 | | |
| 900 | + | |
| 901 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| 19 | + | |
19 | 20 | | |
20 | 21 | | |
21 | 22 | | |
| |||
42 | 43 | | |
43 | 44 | | |
44 | 45 | | |
| 46 | + | |
45 | 47 | | |
46 | 48 | | |
47 | 49 | | |
| |||
78 | 80 | | |
79 | 81 | | |
80 | 82 | | |
| 83 | + | |
81 | 84 | | |
82 | 85 | | |
83 | 86 | | |
| |||
302 | 305 | | |
303 | 306 | | |
304 | 307 | | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
305 | 312 | | |
306 | 313 | | |
307 | 314 | | |
| |||
694 | 701 | | |
695 | 702 | | |
696 | 703 | | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
697 | 710 | | |
698 | 711 | | |
699 | | - | |
| 712 | + | |
700 | 713 | | |
701 | 714 | | |
702 | 715 | | |
| |||
722 | 735 | | |
723 | 736 | | |
724 | 737 | | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
725 | 743 | | |
726 | 744 | | |
727 | | - | |
| 745 | + | |
728 | 746 | | |
729 | 747 | | |
730 | 748 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| 38 | + | |
38 | 39 | | |
39 | 40 | | |
40 | 41 | | |
| |||
116 | 117 | | |
117 | 118 | | |
118 | 119 | | |
| 120 | + | |
119 | 121 | | |
120 | | - | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
121 | 126 | | |
122 | 127 | | |
123 | 128 | | |
| |||
506 | 511 | | |
507 | 512 | | |
508 | 513 | | |
509 | | - | |
| 514 | + | |
510 | 515 | | |
511 | | - | |
512 | | - | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
513 | 523 | | |
514 | 524 | | |
515 | 525 | | |
| |||
523 | 533 | | |
524 | 534 | | |
525 | 535 | | |
| 536 | + | |
526 | 537 | | |
527 | 538 | | |
528 | 539 | | |
529 | 540 | | |
530 | | - | |
| 541 | + | |
531 | 542 | | |
532 | 543 | | |
533 | 544 | | |
534 | 545 | | |
535 | 546 | | |
536 | | - | |
| 547 | + | |
537 | 548 | | |
538 | 549 | | |
539 | 550 | | |
540 | | - | |
541 | | - | |
542 | | - | |
543 | | - | |
544 | | - | |
545 | | - | |
546 | | - | |
547 | | - | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
548 | 562 | | |
549 | | - | |
550 | | - | |
551 | 563 | | |
552 | | - | |
553 | | - | |
554 | | - | |
555 | | - | |
556 | | - | |
557 | | - | |
558 | | - | |
559 | | - | |
560 | | - | |
561 | | - | |
562 | | - | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
563 | 578 | | |
564 | | - | |
565 | | - | |
566 | | - | |
567 | | - | |
568 | | - | |
569 | | - | |
570 | | - | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
571 | 586 | | |
572 | | - | |
573 | | - | |
574 | | - | |
575 | | - | |
576 | | - | |
577 | | - | |
578 | | - | |
579 | | - | |
580 | | - | |
581 | | - | |
582 | | - | |
583 | | - | |
584 | | - | |
585 | | - | |
586 | | - | |
587 | | - | |
588 | | - | |
589 | | - | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
590 | 614 | | |
591 | | - | |
592 | | - | |
| 615 | + | |
593 | 616 | | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
594 | 625 | | |
595 | | - | |
596 | | - | |
597 | | - | |
598 | | - | |
599 | | - | |
600 | | - | |
601 | | - | |
602 | | - | |
603 | | - | |
604 | | - | |
605 | | - | |
606 | | - | |
607 | | - | |
608 | | - | |
609 | | - | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
610 | 629 | | |
611 | | - | |
| 630 | + | |
0 commit comments