@celigo/api-specs 0.2.33 → 0.2.35

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/dist/export.yml CHANGED
@@ -7600,16 +7600,16 @@ components:
7600
7600
  description: |-
7601
7601
  Pins the export to a version of the published HTTP connector its connection is bound to
7602
7602
  (`connection.http._httpConnectorId`), so the UI renders that connector's endpoint form instead
7603
- of a hand-authored request. Persisted as sent on create and update; the value is not checked
7604
- against the connection's connector.
7603
+ of a hand-authored request. Linked on save together with `_httpConnectorResourceId` and
7604
+ `_httpConnectorEndpointId` — see that field for the rule.
7605
7605
  _httpConnectorResourceId:
7606
7606
  type: string
7607
7607
  format: objectId
7608
7608
  x-celigo-refModel: httpconnectorresources
7609
7609
  description: |-
7610
7610
  The connector resource (a group of related endpoints, such as Orders) that this export's
7611
- endpoint belongs to. Persisted as sent; take it from the same connector blueprint as
7612
- `_httpConnectorVersionId`.
7611
+ endpoint belongs to. Linked on save together with `_httpConnectorEndpointId` — see that field
7612
+ for the rule.
7613
7613
  sendAuthForFileDownloads:
7614
7614
  type: boolean
7615
7615
  description: When true, includes authentication headers when downloading files.
@@ -7618,24 +7618,28 @@ components:
7618
7618
  format: objectId
7619
7619
  x-celigo-refModel: httpconnectorendpoints
7620
7620
  description: |-
7621
- The connector endpoint this export calls, shown in the UI as the selected endpoint;
7622
- `relativeURI` and `method` should match that endpoint's definition. Persisted as sent on create
7623
- and update — the server does not verify that the endpoint belongs to the connection's connector,
7624
- so a mismatched id pins the export to the wrong endpoint form.
7621
+ The connector endpoint this export calls, shown in the UI as the selected endpoint. On save the
7622
+ platform derives it (with the version and resource ids) from `relativeURI` and `method` when
7623
+ they match an endpoint of the connector the connection is bound to — path parameters, literal
7624
+ ids and query strings still match — and replaces ids that belong to another connector. An id for
7625
+ the connection's own connector is kept as sent even when the URI names a different endpoint;
7626
+ when nothing matches, or the connection has no connector, whatever was sent is kept and nothing
7627
+ is derived.
7625
7628
  x-celigo-ai-guidance:
7626
7629
  - |-
7627
- To build an export on a prebuilt connector instead of a hand-rolled HTTP request: find the
7628
- connector in `GET /v1/httpconnectors` (match `name` or `legacyId`); read
7629
- `GET /v1/httpconnectors/{_id}` for its `versions` (under `apis[]` for multi-API connectors);
7630
- list resources with `GET /v1/httpconnectors/{_id}/httpconnectorresources`, then that resource's
7631
- endpoints with `GET /v1/httpconnectors/{_id}/{_httpConnectorResourceId}/httpconnectorendpoints`
7632
- and one endpoint's `method` and `relativeURI` with
7633
- `GET /v1/httpconnectors/{_id}/{_httpConnectorResourceId}/{_id}`; copy that `relativeURI` and
7634
- `method` and set `_httpConnectorVersionId`, `_httpConnectorResourceId`, and
7635
- `_httpConnectorEndpointId` together. The export's connection must carry `http._httpConnectorId`
7636
- for the same connector; a top-level `_httpConnectorId` on the export itself is dropped. Omit all
7637
- three only when no published connector exists for the application. Verified against the live
7638
- API 2026-09-21.
7630
+ To build an export on a prebuilt connector instead of a hand-rolled HTTP request, bind the
7631
+ CONNECTION (`http._httpConnectorId` — find the connector in `GET /v1/httpconnectors` by `name`
7632
+ or `legacyId`) and write the endpoint's `relativeURI` and `method`; the platform links the
7633
+ export to that endpoint on save, so the three pointer fields may be omitted. Read the saved
7634
+ export back: no pointers means the URI matched no endpoint of the connection's connector. Set
7635
+ `_httpConnectorVersionId`, `_httpConnectorResourceId` and `_httpConnectorEndpointId` together
7636
+ only to pin a same-connector endpoint the URI would not match. Endpoint discovery through the
7637
+ published operations: `GET /v1/httpconnectors/{_id}` (`versions`, under `apis[]` for
7638
+ multi-API connectors), `GET /v1/httpconnectors/{_id}/httpconnectorresources`,
7639
+ `GET /v1/httpconnectors/{_id}/{_httpConnectorResourceId}/httpconnectorendpoints`, and
7640
+ `GET /v1/httpconnectors/{_id}/{_httpConnectorResourceId}/{_id}` for an endpoint's `method` and
7641
+ `relativeURI`. A top-level `_httpConnectorId` on the export itself is dropped. Verified against
7642
+ the live API 2026-09-21.
7639
7643
  if:
7640
7644
  properties:
7641
7645
  type:
package/dist/import.yml CHANGED
@@ -1667,21 +1667,24 @@ components:
1667
1667
  x-celigo-refModel: httpconnectorendpoints
1668
1668
  description: |-
1669
1669
  The connector endpoints this import calls, one per entry of `relativeURI` / `method` (for
1670
- example a CREATE and an UPDATE endpoint), shown in the UI as the selected endpoints. Persisted
1671
- as sent on create and update; the server does not verify that they belong to the connection's
1672
- connector.
1670
+ example a CREATE and an UPDATE endpoint), shown in the UI as the selected endpoints. On save the
1671
+ platform derives them (with the version and resource ids) from each `relativeURI` / `method`
1672
+ pair that matches an endpoint of the connector the connection is bound to, and replaces ids
1673
+ that belong to another connector; ids for the connection's own connector are kept as sent, and
1674
+ when nothing matches, or the connection has no connector, whatever was sent is kept.
1673
1675
  x-celigo-ai-guidance:
1674
1676
  - |-
1675
- To build an import on a prebuilt connector: find the connector in `GET /v1/httpconnectors`; read
1676
- `GET /v1/httpconnectors/{_id}` for its `versions` (under `apis[]` for multi-API connectors); list
1677
- resources with `GET /v1/httpconnectors/{_id}/httpconnectorresources` and a resource's endpoints
1678
- with `GET /v1/httpconnectors/{_id}/{_httpConnectorResourceId}/httpconnectorendpoints`; read each
1679
- chosen endpoint's `method` and `relativeURI` with
1680
- `GET /v1/httpconnectors/{_id}/{_httpConnectorResourceId}/{_id}` and copy them into the positional
1681
- arrays, one endpoint per operation; set `_httpConnectorVersionId`, `_httpConnectorResourceId`, and
1682
- `_httpConnectorEndpointIds` together. Imports use this plural field; the singular
1683
- `_httpConnectorEndpointId` is dropped on write. The import's connection must carry
1684
- `http._httpConnectorId` for the same connector. Verified against the live API 2026-09-21.
1677
+ To build an import on a prebuilt connector, bind the CONNECTION (`http._httpConnectorId`) and
1678
+ write each operation's `relativeURI` and `method` into the positional arrays; the platform links
1679
+ the import to those endpoints on save, so the pointer fields may be omitted. Read the saved
1680
+ import back: missing entries mean a URI matched no endpoint of the connection's connector. Set
1681
+ `_httpConnectorVersionId`, `_httpConnectorResourceId` and `_httpConnectorEndpointIds` together
1682
+ only to pin same-connector endpoints the URIs would not match. Imports use this plural field;
1683
+ the singular `_httpConnectorEndpointId` is dropped on write. Endpoint discovery through the
1684
+ published operations: `GET /v1/httpconnectors/{_id}`, `…/{_id}/httpconnectorresources`,
1685
+ `…/{_id}/{_httpConnectorResourceId}/httpconnectorendpoints`, and
1686
+ `…/{_id}/{_httpConnectorResourceId}/{_id}` for an endpoint's `method` and `relativeURI`.
1687
+ Verified against the live API 2026-09-21.
1685
1688
  blobFormat:
1686
1689
  type: string
1687
1690
  enum:
@@ -1870,16 +1873,17 @@ components:
1870
1873
  // shape; do not emit it deliberately.
1871
1874
  "relativeURI": ["[\"/customers/{{{data.0.id}}}\",\"/customers\"]"]
1872
1875
  ```
1873
- ⚠️ The API does NOT cross-check ``relativeURI`` / ``method`` against
1874
- the connector pointer fields (``_httpConnectorVersionId`` /
1875
- ``_httpConnectorResourceId`` / ``_httpConnectorEndpointIds``):
1876
- a save whose URI does not match the pinned endpoint keeps the
1877
- pointers exactly as sent (verified 2026-09-21 on create, on PUT,
1878
- after 60 s, and after a no-op re-save). The consistency is yours
1879
- to keep — copy each pinned endpoint's ``relativeURI`` and
1880
- ``method`` into these arrays position by position, so the
1881
- endpoint the pointers name and the request the runtime sends
1882
- are the same one. Get the URI shape right.
1876
+ ⚠️ On save the platform derives the connector pointer fields
1877
+ (``_httpConnectorVersionId`` / ``_httpConnectorResourceId`` /
1878
+ ``_httpConnectorEndpointIds``) from each ``relativeURI`` /
1879
+ ``method`` pair that matches an endpoint of the connector the
1880
+ connection is bound to (path parameters and query strings still
1881
+ match); pointers you send for that connector are kept, pointers
1882
+ from another connector are replaced, and a URI that matches
1883
+ nothing leaves whatever you sent in place — nothing is unset
1884
+ (verified 2026-09-21 on create, on PUT, and after a re-save). Keep
1885
+ each entry equal to the endpoint you mean so the pointer and the
1886
+ request agree. Get the URI shape right.
1883
1887
  examples:
1884
1888
  - - /api/v1/customers
1885
1889
  - - /customers/{{{data.0.shopifyCustomerId}}}.json
@@ -1918,16 +1922,16 @@ components:
1918
1922
  description: |-
1919
1923
  Pins the import to a version of the published HTTP connector its connection is bound to
1920
1924
  (`connection.http._httpConnectorId`), so the UI renders that connector's endpoint forms instead
1921
- of hand-authored requests. Persisted as sent on create and update; not checked against the
1922
- connection's connector.
1925
+ of hand-authored requests. Linked on save together with `_httpConnectorResourceId` and
1926
+ `_httpConnectorEndpointIds` — see that field for the rule.
1923
1927
  _httpConnectorResourceId:
1924
1928
  type: string
1925
1929
  format: objectId
1926
1930
  x-celigo-refModel: httpconnectorresources
1927
1931
  description: |-
1928
1932
  The connector resource (a group of related endpoints, such as Orders) that this import's
1929
- endpoints belong to. Persisted as sent; take it from the same connector blueprint as
1930
- `_httpConnectorVersionId`.
1933
+ endpoints belong to. Linked on save together with `_httpConnectorEndpointIds` — see that field
1934
+ for the rule.
1931
1935
  _httpConnectorEndpointId:
1932
1936
  type: string
1933
1937
  format: objectId
@@ -502,6 +502,269 @@ paths:
502
502
  $ref: '#/components/responses/401-unauthorized'
503
503
  '404':
504
504
  $ref: '#/components/responses/404-not-found'
505
+ /v1/mcpservers/template/{_templateId}:
506
+ post:
507
+ x-internal: false
508
+ operationId: installMcpServerTemplate
509
+ tags:
510
+ - MCP Servers
511
+ summary: Install a published MCP server template
512
+ description: |-
513
+ Installs a published MCP-server marketplace template (a template whose
514
+ `type` is `mcpserver`). The request takes no parameters — the published
515
+ template ZIP is the source of truth for everything the install creates,
516
+ and there is no `connectionMap` (unlike the integration-template
517
+ install).
518
+
519
+ What the install creates depends on the template's contents, reported by
520
+ the response's `destination` envelope:
521
+
522
+ - **Prompt-only templates** (no tools) create the MCP server
523
+ immediately, disabled. `destination.resourceType` is `mcpservers`.
524
+ - **Tool-bearing templates** hand off to the Integration installer:
525
+ `destination.resourceType` is `integrations` and names an Integration
526
+ in install mode, where connection mapping and the remaining install
527
+ steps continue. The MCP server is created — disabled — by the
528
+ Integration's terminal install step, after the tools are cloned.
529
+
530
+ Integration templates do not install through this path — they use
531
+ `POST /v1/integrations/template/{_id}`. Each path rejects the other
532
+ class: this one returns 404 for a template that is not a published
533
+ MCP-server template, and the integration path rejects MCP-server
534
+ templates with a 400 `invalid_template` error.
535
+
536
+ Every request that reaches the platform starts a new install — there is
537
+ no idempotency key, so retrying after a timeout or ambiguous failure
538
+ creates a duplicate server or install-mode Integration. Duplicates are
539
+ kept apart by URI suffixing: each new server's `relativeURI` gets `-2`
540
+ through `-100` appended when the un-suffixed value is taken; once all
541
+ 100 are in use the install fails with a 422 `invalid_value` error.
542
+
543
+ Requires the `install:published:template` permission.
544
+ x-celigo-ai-guidance:
545
+ - Send an empty JSON object as the body. Connection mapping for tool-bearing templates happens later, in the created Integration's install steps — never invent a connectionMap for this endpoint.
546
+ - Never retry this POST after a timeout or an ambiguous failure — a request that reached the platform already started an install, and a second request installs a duplicate.
547
+ - Branch the follow-up on destination.resourceType — "integrations" means install steps continue on the created Integration (its setup page); "mcpservers" means the disabled MCP server already exists and needs enabling and access before clients can use it.
548
+ parameters:
549
+ - name: _templateId
550
+ in: path
551
+ required: true
552
+ description: The published MCP-server template to install.
553
+ schema:
554
+ type: string
555
+ format: objectId
556
+ x-celigo-refModel: templates
557
+ examples:
558
+ - 6ab129aeb9e4547494c0667f
559
+ requestBody:
560
+ required: false
561
+ content:
562
+ application/json:
563
+ schema:
564
+ type: object
565
+ description: Empty object — the install takes no parameters.
566
+ examples:
567
+ empty:
568
+ summary: The install takes no parameters
569
+ value: {}
570
+ responses:
571
+ '201':
572
+ description: Installation started.
573
+ content:
574
+ application/json:
575
+ schema:
576
+ type: object
577
+ required:
578
+ - destination
579
+ properties:
580
+ destination:
581
+ type: object
582
+ description: The resource the install created first.
583
+ required:
584
+ - resourceType
585
+ - resourceId
586
+ properties:
587
+ resourceType:
588
+ type: string
589
+ enum:
590
+ - mcpservers
591
+ - integrations
592
+ x-enumDescriptions:
593
+ mcpservers: The disabled MCP server created directly from a prompt-only template
594
+ integrations: The install-mode Integration created for a tool-bearing template
595
+ description: |-
596
+ Which resource type the install created — determines
597
+ where the caller continues the setup.
598
+ resourceId:
599
+ type: string
600
+ format: objectId
601
+ description: |-
602
+ The created resource's ID, in the collection named by
603
+ `resourceType`.
604
+ examples:
605
+ toolBearing:
606
+ summary: Tool-bearing template — Integration in install mode
607
+ value:
608
+ destination:
609
+ resourceType: integrations
610
+ resourceId: 6ab130000000000000000d01
611
+ promptOnly:
612
+ summary: Prompt-only template — disabled MCP server
613
+ value:
614
+ destination:
615
+ resourceType: mcpservers
616
+ resourceId: 6ab130000000000000000d02
617
+ '401':
618
+ $ref: '#/components/responses/401-unauthorized'
619
+ '403':
620
+ $ref: '#/components/responses/403-forbidden'
621
+ '404':
622
+ description: |-
623
+ No published MCP-server template with this ID. Integration templates
624
+ return 404 here too — they install via
625
+ `POST /v1/integrations/template/{_id}`.
626
+ content:
627
+ application/json:
628
+ schema:
629
+ $ref: '#/components/schemas/Error'
630
+ examples:
631
+ notFound:
632
+ value:
633
+ errors:
634
+ - code: invalid_ref
635
+ message: Template not found.
636
+ '422':
637
+ description: |-
638
+ The install was rejected before anything was created. As-built
639
+ cases: the template packages capabilities an MCP-server template
640
+ cannot carry (`invalid_template` — only tools and inline prompts
641
+ are portable), a packaged tool is missing or inaccessible
642
+ (`invalid_template`), or `relativeURI` de-duplication exhausted its
643
+ `-2`…`-100` suffixes (`invalid_value` — the account already holds
644
+ 100 servers on that URI; delete or rename some before installing
645
+ again). None of these are retryable unchanged — and never retry
646
+ the POST blindly, since a request that reached the platform may
647
+ already have installed something.
648
+ content:
649
+ application/json:
650
+ schema:
651
+ $ref: '#/components/schemas/Error'
652
+ examples:
653
+ uriSuffixesExhausted:
654
+ summary: relativeURI de-duplication exhausted
655
+ value:
656
+ errors:
657
+ - code: invalid_value
658
+ message: Unable to generate a unique relative URI for the MCP server from /installed-mcp-server.
659
+ unsupportedCapability:
660
+ summary: Template packages non-portable capabilities
661
+ value:
662
+ errors:
663
+ - code: invalid_template
664
+ message: 'Installing an MCP server supports only tools and prompts. Unsupported: apis, resources.'
665
+ /v1/mcpservers/{_id}/template:
666
+ get:
667
+ x-internal: false
668
+ operationId: exportMcpServerTemplate
669
+ tags:
670
+ - MCP Servers
671
+ summary: Export an MCP server as a template ZIP
672
+ description: |-
673
+ Generates a template ZIP from the MCP server and returns a temporary
674
+ signed URL for downloading it. The ZIP contains the server document,
675
+ its inline prompts, its tools, and the resources those tools depend on
676
+ (exports, imports, connections, scripts) — a prompt-only server (no
677
+ tools) exports successfully. The ZIP is the artifact a publisher
678
+ uploads when authoring an MCP-server marketplace template; installing
679
+ that template recreates the server via
680
+ `POST /v1/mcpservers/template/{_templateId}`.
681
+
682
+ Only tools and inline prompts are portable. A server that publishes
683
+ APIs (`apis[]`) or file resources (`resources[]`) fails the export up
684
+ front with a 400 `invalid_template` error — no ZIP is generated;
685
+ nothing is stripped to make it succeed.
686
+
687
+ The signed URL expires after about 60 seconds — download promptly, and
688
+ call the endpoint again for a fresh URL rather than storing this one.
689
+
690
+ Requires the `create:mcpserver:template` permission.
691
+ parameters:
692
+ - name: _id
693
+ in: path
694
+ required: true
695
+ description: The MCP server to export.
696
+ schema:
697
+ type: string
698
+ format: objectId
699
+ x-celigo-refModel: mcpservers
700
+ examples:
701
+ - 69eb9fb5b4fc023618e490b8
702
+ responses:
703
+ '200':
704
+ description: Temporary signed URL for the generated ZIP.
705
+ content:
706
+ application/json:
707
+ schema:
708
+ type: object
709
+ required:
710
+ - signedURL
711
+ - key
712
+ properties:
713
+ signedURL:
714
+ type: string
715
+ format: uri
716
+ description: |-
717
+ Time-limited download URL for the generated template ZIP —
718
+ expires after about 60 seconds.
719
+ key:
720
+ type: string
721
+ description: |-
722
+ Storage key of the generated ZIP object — stable across
723
+ the URL's expiry, useful for correlating repeated exports.
724
+ examples:
725
+ exported:
726
+ summary: Signed URL for the generated ZIP
727
+ value:
728
+ signedURL: https://s3.amazonaws.com/templates/mcp-export/69eb9fb5b4fc023618e490b8.zip?X-Amz-Expires=60
729
+ key: mcp-export/69eb9fb5b4fc023618e490b8.zip
730
+ '400':
731
+ description: |-
732
+ The server publishes capabilities a template cannot carry — only
733
+ tools and inline prompts are portable. Remove the APIs / file
734
+ resources (or export a server without them); retrying unchanged
735
+ fails identically.
736
+ content:
737
+ application/json:
738
+ schema:
739
+ $ref: '#/components/schemas/Error'
740
+ examples:
741
+ unsupportedCapability:
742
+ summary: Server publishes APIs or file resources
743
+ value:
744
+ errors:
745
+ - code: invalid_template
746
+ message: 'Installing an MCP server supports only tools and prompts. Unsupported: apis, resources.'
747
+ '401':
748
+ $ref: '#/components/responses/401-unauthorized'
749
+ '403':
750
+ $ref: '#/components/responses/403-forbidden'
751
+ '404':
752
+ $ref: '#/components/responses/404-not-found'
753
+ '422':
754
+ description: |-
755
+ The export could not assemble a complete ZIP — a tool or its
756
+ backing integration is missing or not accessible to the caller.
757
+ content:
758
+ application/json:
759
+ schema:
760
+ $ref: '#/components/schemas/Error'
761
+ examples:
762
+ dependencyInvalid:
763
+ summary: A tool dependency is missing or inaccessible
764
+ value:
765
+ errors:
766
+ - code: invalid_template
767
+ message: The MCP server template contains a missing or inaccessible tool dependency.
505
768
  /v1/mcpservers/{_id}/dependencies:
506
769
  get:
507
770
  x-internal: false
package/dist/tool.yml CHANGED
@@ -10886,21 +10886,24 @@ components:
10886
10886
  x-celigo-refModel: httpconnectorendpoints
10887
10887
  description: |-
10888
10888
  The connector endpoints this import calls, one per entry of `relativeURI` / `method` (for
10889
- example a CREATE and an UPDATE endpoint), shown in the UI as the selected endpoints. Persisted
10890
- as sent on create and update; the server does not verify that they belong to the connection's
10891
- connector.
10889
+ example a CREATE and an UPDATE endpoint), shown in the UI as the selected endpoints. On save the
10890
+ platform derives them (with the version and resource ids) from each `relativeURI` / `method`
10891
+ pair that matches an endpoint of the connector the connection is bound to, and replaces ids
10892
+ that belong to another connector; ids for the connection's own connector are kept as sent, and
10893
+ when nothing matches, or the connection has no connector, whatever was sent is kept.
10892
10894
  x-celigo-ai-guidance:
10893
10895
  - |-
10894
- To build an import on a prebuilt connector: find the connector in `GET /v1/httpconnectors`; read
10895
- `GET /v1/httpconnectors/{_id}` for its `versions` (under `apis[]` for multi-API connectors); list
10896
- resources with `GET /v1/httpconnectors/{_id}/httpconnectorresources` and a resource's endpoints
10897
- with `GET /v1/httpconnectors/{_id}/{_httpConnectorResourceId}/httpconnectorendpoints`; read each
10898
- chosen endpoint's `method` and `relativeURI` with
10899
- `GET /v1/httpconnectors/{_id}/{_httpConnectorResourceId}/{_id}` and copy them into the positional
10900
- arrays, one endpoint per operation; set `_httpConnectorVersionId`, `_httpConnectorResourceId`, and
10901
- `_httpConnectorEndpointIds` together. Imports use this plural field; the singular
10902
- `_httpConnectorEndpointId` is dropped on write. The import's connection must carry
10903
- `http._httpConnectorId` for the same connector. Verified against the live API 2026-09-21.
10896
+ To build an import on a prebuilt connector, bind the CONNECTION (`http._httpConnectorId`) and
10897
+ write each operation's `relativeURI` and `method` into the positional arrays; the platform links
10898
+ the import to those endpoints on save, so the pointer fields may be omitted. Read the saved
10899
+ import back: missing entries mean a URI matched no endpoint of the connection's connector. Set
10900
+ `_httpConnectorVersionId`, `_httpConnectorResourceId` and `_httpConnectorEndpointIds` together
10901
+ only to pin same-connector endpoints the URIs would not match. Imports use this plural field;
10902
+ the singular `_httpConnectorEndpointId` is dropped on write. Endpoint discovery through the
10903
+ published operations: `GET /v1/httpconnectors/{_id}`, `…/{_id}/httpconnectorresources`,
10904
+ `…/{_id}/{_httpConnectorResourceId}/httpconnectorendpoints`, and
10905
+ `…/{_id}/{_httpConnectorResourceId}/{_id}` for an endpoint's `method` and `relativeURI`.
10906
+ Verified against the live API 2026-09-21.
10904
10907
  blobFormat:
10905
10908
  type: string
10906
10909
  enum:
@@ -11089,16 +11092,17 @@ components:
11089
11092
  // shape; do not emit it deliberately.
11090
11093
  "relativeURI": ["[\"/customers/{{{data.0.id}}}\",\"/customers\"]"]
11091
11094
  ```
11092
- ⚠️ The API does NOT cross-check ``relativeURI`` / ``method`` against
11093
- the connector pointer fields (``_httpConnectorVersionId`` /
11094
- ``_httpConnectorResourceId`` / ``_httpConnectorEndpointIds``):
11095
- a save whose URI does not match the pinned endpoint keeps the
11096
- pointers exactly as sent (verified 2026-09-21 on create, on PUT,
11097
- after 60 s, and after a no-op re-save). The consistency is yours
11098
- to keep — copy each pinned endpoint's ``relativeURI`` and
11099
- ``method`` into these arrays position by position, so the
11100
- endpoint the pointers name and the request the runtime sends
11101
- are the same one. Get the URI shape right.
11095
+ ⚠️ On save the platform derives the connector pointer fields
11096
+ (``_httpConnectorVersionId`` / ``_httpConnectorResourceId`` /
11097
+ ``_httpConnectorEndpointIds``) from each ``relativeURI`` /
11098
+ ``method`` pair that matches an endpoint of the connector the
11099
+ connection is bound to (path parameters and query strings still
11100
+ match); pointers you send for that connector are kept, pointers
11101
+ from another connector are replaced, and a URI that matches
11102
+ nothing leaves whatever you sent in place — nothing is unset
11103
+ (verified 2026-09-21 on create, on PUT, and after a re-save). Keep
11104
+ each entry equal to the endpoint you mean so the pointer and the
11105
+ request agree. Get the URI shape right.
11102
11106
  examples:
11103
11107
  - - /api/v1/customers
11104
11108
  - - /customers/{{{data.0.shopifyCustomerId}}}.json
@@ -11137,16 +11141,16 @@ components:
11137
11141
  description: |-
11138
11142
  Pins the import to a version of the published HTTP connector its connection is bound to
11139
11143
  (`connection.http._httpConnectorId`), so the UI renders that connector's endpoint forms instead
11140
- of hand-authored requests. Persisted as sent on create and update; not checked against the
11141
- connection's connector.
11144
+ of hand-authored requests. Linked on save together with `_httpConnectorResourceId` and
11145
+ `_httpConnectorEndpointIds` — see that field for the rule.
11142
11146
  _httpConnectorResourceId:
11143
11147
  type: string
11144
11148
  format: objectId
11145
11149
  x-celigo-refModel: httpconnectorresources
11146
11150
  description: |-
11147
11151
  The connector resource (a group of related endpoints, such as Orders) that this import's
11148
- endpoints belong to. Persisted as sent; take it from the same connector blueprint as
11149
- `_httpConnectorVersionId`.
11152
+ endpoints belong to. Linked on save together with `_httpConnectorEndpointIds` — see that field
11153
+ for the rule.
11150
11154
  _httpConnectorEndpointId:
11151
11155
  type: string
11152
11156
  format: objectId
@@ -28159,16 +28163,16 @@ components:
28159
28163
  description: |-
28160
28164
  Pins the export to a version of the published HTTP connector its connection is bound to
28161
28165
  (`connection.http._httpConnectorId`), so the UI renders that connector's endpoint form instead
28162
- of a hand-authored request. Persisted as sent on create and update; the value is not checked
28163
- against the connection's connector.
28166
+ of a hand-authored request. Linked on save together with `_httpConnectorResourceId` and
28167
+ `_httpConnectorEndpointId` — see that field for the rule.
28164
28168
  _httpConnectorResourceId:
28165
28169
  type: string
28166
28170
  format: objectId
28167
28171
  x-celigo-refModel: httpconnectorresources
28168
28172
  description: |-
28169
28173
  The connector resource (a group of related endpoints, such as Orders) that this export's
28170
- endpoint belongs to. Persisted as sent; take it from the same connector blueprint as
28171
- `_httpConnectorVersionId`.
28174
+ endpoint belongs to. Linked on save together with `_httpConnectorEndpointId` — see that field
28175
+ for the rule.
28172
28176
  sendAuthForFileDownloads:
28173
28177
  type: boolean
28174
28178
  description: When true, includes authentication headers when downloading files.
@@ -28177,24 +28181,28 @@ components:
28177
28181
  format: objectId
28178
28182
  x-celigo-refModel: httpconnectorendpoints
28179
28183
  description: |-
28180
- The connector endpoint this export calls, shown in the UI as the selected endpoint;
28181
- `relativeURI` and `method` should match that endpoint's definition. Persisted as sent on create
28182
- and update — the server does not verify that the endpoint belongs to the connection's connector,
28183
- so a mismatched id pins the export to the wrong endpoint form.
28184
+ The connector endpoint this export calls, shown in the UI as the selected endpoint. On save the
28185
+ platform derives it (with the version and resource ids) from `relativeURI` and `method` when
28186
+ they match an endpoint of the connector the connection is bound to — path parameters, literal
28187
+ ids and query strings still match — and replaces ids that belong to another connector. An id for
28188
+ the connection's own connector is kept as sent even when the URI names a different endpoint;
28189
+ when nothing matches, or the connection has no connector, whatever was sent is kept and nothing
28190
+ is derived.
28184
28191
  x-celigo-ai-guidance:
28185
28192
  - |-
28186
- To build an export on a prebuilt connector instead of a hand-rolled HTTP request: find the
28187
- connector in `GET /v1/httpconnectors` (match `name` or `legacyId`); read
28188
- `GET /v1/httpconnectors/{_id}` for its `versions` (under `apis[]` for multi-API connectors);
28189
- list resources with `GET /v1/httpconnectors/{_id}/httpconnectorresources`, then that resource's
28190
- endpoints with `GET /v1/httpconnectors/{_id}/{_httpConnectorResourceId}/httpconnectorendpoints`
28191
- and one endpoint's `method` and `relativeURI` with
28192
- `GET /v1/httpconnectors/{_id}/{_httpConnectorResourceId}/{_id}`; copy that `relativeURI` and
28193
- `method` and set `_httpConnectorVersionId`, `_httpConnectorResourceId`, and
28194
- `_httpConnectorEndpointId` together. The export's connection must carry `http._httpConnectorId`
28195
- for the same connector; a top-level `_httpConnectorId` on the export itself is dropped. Omit all
28196
- three only when no published connector exists for the application. Verified against the live
28197
- API 2026-09-21.
28193
+ To build an export on a prebuilt connector instead of a hand-rolled HTTP request, bind the
28194
+ CONNECTION (`http._httpConnectorId` — find the connector in `GET /v1/httpconnectors` by `name`
28195
+ or `legacyId`) and write the endpoint's `relativeURI` and `method`; the platform links the
28196
+ export to that endpoint on save, so the three pointer fields may be omitted. Read the saved
28197
+ export back: no pointers means the URI matched no endpoint of the connection's connector. Set
28198
+ `_httpConnectorVersionId`, `_httpConnectorResourceId` and `_httpConnectorEndpointId` together
28199
+ only to pin a same-connector endpoint the URI would not match. Endpoint discovery through the
28200
+ published operations: `GET /v1/httpconnectors/{_id}` (`versions`, under `apis[]` for
28201
+ multi-API connectors), `GET /v1/httpconnectors/{_id}/httpconnectorresources`,
28202
+ `GET /v1/httpconnectors/{_id}/{_httpConnectorResourceId}/httpconnectorendpoints`, and
28203
+ `GET /v1/httpconnectors/{_id}/{_httpConnectorResourceId}/{_id}` for an endpoint's `method` and
28204
+ `relativeURI`. A top-level `_httpConnectorId` on the export itself is dropped. Verified against
28205
+ the live API 2026-09-21.
28198
28206
  if:
28199
28207
  properties:
28200
28208
  type:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celigo/api-specs",
3
- "version": "0.2.33",
3
+ "version": "0.2.35",
4
4
  "private": false,
5
5
  "description": "Public OpenAPI bundles (dist/) and the celigo-cli lint schema pack (schemas.json).",
6
6
  "keywords": [
package/schemas.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "provenance": {
3
3
  "repo": "celigo/integrator-api-specs",
4
- "iasCommit": "99c0989",
4
+ "iasCommit": "1b6c8d6",
5
5
  "generatedAt": "2026-09-21"
6
6
  },
7
7
  "roots": {