@celigo/api-specs 0.2.192 → 0.2.194

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/api.yml CHANGED
@@ -7960,23 +7960,51 @@ components:
7960
7960
  googleProjectId:
7961
7961
  type: string
7962
7962
  description: |-
7963
- Google Cloud project id for Google Cloud Storage connections
7964
- (assistant `googlecloudstorage`, or a `baseURI` pointing at
7965
- `storage.googleapis.com`).
7963
+ Default project ID of a Google Cloud Storage connection (assistant
7964
+ `googlecloudstorage`, or a `baseURI` pointing at
7965
+ `storage.googleapis.com`): the Google Cloud project whose buckets the
7966
+ export and import forms list. It does not limit access — the
7967
+ connection reaches any bucket the authorized Google account or
7968
+ service account may use. Set by the caller on the OAuth 2.0 auth type
7969
+ (Celigo's published Google Cloud Storage iClient or an account-owned
7970
+ `custom_oauth2` iClient). On the Google service account auth type the
7971
+ server stores the key's `project_id` on create and on any save that
7972
+ changes or omits `http.unencrypted`; a save that re-sends the stored
7973
+ `http.unencrypted` unchanged keeps the stored value, even though the
7974
+ response body can echo the key's — read the connection back. Trimmed
7975
+ on save; no format is enforced (the connection form warns on a value
7976
+ outside Google's project-id format and still saves it).
7966
7977
  examples:
7967
7978
  - my-gcs-project
7968
7979
  x-celigo-ai-guidance:
7969
7980
  - |-
7970
7981
  Required when the GCS connection authenticates through an OAuth
7971
- iClient (provider custom_oauth2). Omitting it fails the save
7972
- with 422 project_id_missing on http.unencrypted.googleProjectId
7973
- — "Default project ID is required on OAuth Google Cloud Storage
7974
- connections (http.unencrypted.googleProjectId)." With a
7975
- googleserviceaccount iClient the server fills this from the
7976
- key's project_id. Any other provider fails with 422
7977
- invalid_field on http._iClientId — "IClient provider must be
7982
+ iClient — Celigo's published Google Cloud Storage iClient (the id
7983
+ the connector pre-configures on `http._iClientId` when
7984
+ `http.auth.type` is `oauth`) or an account-owned iClient with
7985
+ provider custom_oauth2. Omitting it, or sending only whitespace,
7986
+ fails the save with 422 project_id_missing on
7987
+ http.unencrypted.googleProjectId — "Default project ID is
7988
+ required on OAuth Google Cloud Storage connections
7989
+ (http.unencrypted.googleProjectId)." — on create and on every
7990
+ later PUT. With a googleserviceaccount iClient the server stores
7991
+ the key's project_id on create (a value sent on create is
7992
+ replaced by it) and on any later save that changes or omits
7993
+ `http.unencrypted` — the next bullet has the PUT that does not
7994
+ re-fill it. Any other provider fails with 422 invalid_field
7995
+ on http._iClientId — "IClient provider must be
7978
7996
  googleserviceaccount or custom_oauth2 for Google Cloud Storage
7979
7997
  connections."
7998
+ - |-
7999
+ When a PUT moves the connection from an OAuth iClient to a
8000
+ googleserviceaccount iClient, drop `http.unencrypted` (or change
8001
+ it) in the same PUT: the server's fill from the key is written
8002
+ only when `http.unencrypted` is absent or changed, so a PUT that
8003
+ re-sends the stored object unchanged keeps the OAuth-era project
8004
+ id beside the service account (the 200 body still echoes the
8005
+ key's — only a GET shows what persisted). Moving the other way
8006
+ (service account → OAuth) needs the project id in the PUT, or it
8007
+ is the 422 above.
7980
8008
  unencryptedFields:
7981
8009
  type: array
7982
8010
  description: |
@@ -8021,13 +8049,20 @@ components:
8021
8049
  description: |-
8022
8050
  iClient that holds the credentials this connection signs with: the OAuth 2.0 client for
8023
8051
  `auth.type` `oauth` (including the `azureserviceprincipal` service principal an Azure
8024
- Data Lake Storage Gen2 connection authenticates with and the `googleserviceaccount` key
8025
- a Google Cloud Storage connection uses), or the `awsIam` role for `auth.type` `awsiam`.
8052
+ Data Lake Storage Gen2 connection authenticates with and, on a Google Cloud Storage
8053
+ connection, either the `googleserviceaccount` key of its Google service account auth
8054
+ type or — its OAuth 2.0 auth type — Celigo's published Google Cloud Storage iClient,
8055
+ which the connector pre-configures, or an account-owned `custom_oauth2` iClient), or
8056
+ the `awsIam` role for `auth.type` `awsiam`.
8026
8057
  Must belong to the same account as the connection — or be the iClient Celigo publishes
8027
8058
  with a pre-built OAuth HTTP connector (pre-configured by the connector; from the
8028
- connecting account `GET /v1/iclients/{_id}` on it is 404 resource_not_found and
8029
- `GET /v1/iclients` does not list it, yet the connection saves with it). Omit for every
8030
- other auth type. On a Shopify connection `settings.appType` says which of the two it
8059
+ connecting account `GET /v1/iclients/{_id}` on it is 404 — resource_not_found or
8060
+ invalid_ref "IClient not found." — and `GET /v1/iclients` does not list it, yet the
8061
+ connection saves with it). Omit for every other auth type. A Google Cloud Storage
8062
+ connection stores `auth.type` `oauth` under both of its auth types; the referenced
8063
+ iClient's provider tells them apart, and switching is a PUT that changes `_iClientId`
8064
+ (see `unencrypted.googleProjectId` for what travels with it). On a Shopify connection
8065
+ `settings.appType` says which of the two it
8031
8066
  is: `public` rides Celigo's published Shopify app (installed from the Shopify App
8032
8067
  Store), `custom` rides the account's own iClient — the Shopify app the customer created
8033
8068
  in the Shopify dev dashboard — with `auth.oauth.scope` chosen on the connection. A
@@ -8042,7 +8077,7 @@ components:
8042
8077
  published app and carry no `settings.appType`.
8043
8078
  examples:
8044
8079
  - 6203a7e4f321d800129a1b8e
8045
- x-celigo-ui-override: 'Required by the connection form for oauth (subForms/httpOAuth.js: required true, iClient filter provider custom_oauth2, or googleserviceaccount / azureserviceprincipal for the GCS and ADLS Gen2 variants) and for awsIam (subForms/httpAwsIam.js: required true, filter provider awsIam). For oauth the API creates the connection without it and the authorization is completed afterward; for awsiam the API also rejects its absence (see the if/then rule on this schema).'
8080
+ x-celigo-ui-override: 'Required by the connection form for oauth (subForms/httpOAuth.js: required true, iClient filter provider custom_oauth2 — on a Google Cloud Storage connection''s OAuth 2.0 auth type too, where Simple view pre-selects Celigo''s published iClient and hides the picker — or googleserviceaccount / azureserviceprincipal for the GCS Google service account and ADLS Gen2 variants) and for awsIam (subForms/httpAwsIam.js: required true, filter provider awsIam). For oauth the API creates the connection without it and the authorization is completed afterward; for awsiam the API also rejects its absence (see the if/then rule on this schema).'
8046
8081
  x-celigo-ai-guidance:
8047
8082
  - |-
8048
8083
  For auth.type "awsiam" the referenced iClient must have provider "awsIam" (any other
@@ -8061,10 +8096,30 @@ components:
8061
8096
  The iClient must belong to the same account as the connection — an iClient id from
8062
8097
  another account fails with 422 invalid_ref "The referenced IClient must belong to the
8063
8098
  same user." The one exception is the iClient a pre-built OAuth HTTP connector
8064
- pre-configures (Celigo's published app — the Shopify Public App's, for one): the
8065
- connection saves with that id from the connecting account even though
8066
- `GET /v1/iclients/{_id}` on it is 404 there, so do not refuse a `public` Shopify
8067
- connection on this rule.
8099
+ pre-configures (Celigo's published app — the Shopify Public App's and the Google Cloud
8100
+ Storage OAuth 2.0 iClient, for two): the connection saves with that id from the
8101
+ connecting account even though `GET /v1/iclients/{_id}` on it is 404 there, so do not
8102
+ refuse a `public` Shopify connection or an OAuth 2.0 Google Cloud Storage connection on
8103
+ this rule. Read the id from the connector's metadata
8104
+ (`GET /v1/httpconnectors/{_id}?returnEverything=true`,
8105
+ `supportedBy.connection.preConfiguredFields` entry for `http._iClientId`), never from
8106
+ a hard-coded value.
8107
+ - |-
8108
+ A Google Cloud Storage connection (assistant "googlecloudstorage", or any http.baseURI
8109
+ containing "storage.googleapis.com") references either a googleserviceaccount iClient
8110
+ of the same account (its Google service account auth type — no authorization step; the
8111
+ server stores the key's project_id in `unencrypted.googleProjectId` on create and
8112
+ whenever `http.unencrypted` changes or is omitted — see that field) or an OAuth iClient
8113
+ with `unencrypted.googleProjectId` set (its OAuth 2.0 auth type — Celigo's published
8114
+ iClient, or an account-owned custom_oauth2 one — authorized afterwards in a browser;
8115
+ until then `POST /v1/connections/{_id}/ping` answers `missing_token`). The server
8116
+ checks the provider only — a custom_oauth2 iClient registered for a different HTTP
8117
+ connector (`_httpConnectorId`) also saves on a GCS connection — so bind an iClient
8118
+ with no connector or the Google Cloud Storage connector's. The connection document
8119
+ keeps `auth.oauth.scope` as sent (a GCS connection saved without it stores none), so
8120
+ send the Cloud Storage scopes on the OAuth 2.0 auth type
8121
+ (https://www.googleapis.com/auth/devstorage.read_write, …read_only or
8122
+ …full_control); a service account connection carries none.
8068
8123
  - |-
8069
8124
  On a Shopify connection keep `settings.appType` and `_iClientId` in step the way the
8070
8125
  form does — `public` with the connector's published iClient, `custom` with an
@@ -709,7 +709,7 @@ paths:
709
709
  code: invalid_field
710
710
  message: IClient provider must be googleserviceaccount or custom_oauth2 for Google Cloud Storage connections.
711
711
  gcsProjectIdMissing:
712
- summary: Google Cloud Storage OAuth connection without a project id
712
+ summary: Google Cloud Storage OAuth 2.0 connection whose project id is absent or only whitespace
713
713
  value:
714
714
  errors:
715
715
  - field: http.unencrypted.googleProjectId
@@ -6594,23 +6594,51 @@ components:
6594
6594
  googleProjectId:
6595
6595
  type: string
6596
6596
  description: |-
6597
- Google Cloud project id for Google Cloud Storage connections
6598
- (assistant `googlecloudstorage`, or a `baseURI` pointing at
6599
- `storage.googleapis.com`).
6597
+ Default project ID of a Google Cloud Storage connection (assistant
6598
+ `googlecloudstorage`, or a `baseURI` pointing at
6599
+ `storage.googleapis.com`): the Google Cloud project whose buckets the
6600
+ export and import forms list. It does not limit access — the
6601
+ connection reaches any bucket the authorized Google account or
6602
+ service account may use. Set by the caller on the OAuth 2.0 auth type
6603
+ (Celigo's published Google Cloud Storage iClient or an account-owned
6604
+ `custom_oauth2` iClient). On the Google service account auth type the
6605
+ server stores the key's `project_id` on create and on any save that
6606
+ changes or omits `http.unencrypted`; a save that re-sends the stored
6607
+ `http.unencrypted` unchanged keeps the stored value, even though the
6608
+ response body can echo the key's — read the connection back. Trimmed
6609
+ on save; no format is enforced (the connection form warns on a value
6610
+ outside Google's project-id format and still saves it).
6600
6611
  examples:
6601
6612
  - my-gcs-project
6602
6613
  x-celigo-ai-guidance:
6603
6614
  - |-
6604
6615
  Required when the GCS connection authenticates through an OAuth
6605
- iClient (provider custom_oauth2). Omitting it fails the save
6606
- with 422 project_id_missing on http.unencrypted.googleProjectId
6607
- — "Default project ID is required on OAuth Google Cloud Storage
6608
- connections (http.unencrypted.googleProjectId)." With a
6609
- googleserviceaccount iClient the server fills this from the
6610
- key's project_id. Any other provider fails with 422
6611
- invalid_field on http._iClientId — "IClient provider must be
6616
+ iClient — Celigo's published Google Cloud Storage iClient (the id
6617
+ the connector pre-configures on `http._iClientId` when
6618
+ `http.auth.type` is `oauth`) or an account-owned iClient with
6619
+ provider custom_oauth2. Omitting it, or sending only whitespace,
6620
+ fails the save with 422 project_id_missing on
6621
+ http.unencrypted.googleProjectId — "Default project ID is
6622
+ required on OAuth Google Cloud Storage connections
6623
+ (http.unencrypted.googleProjectId)." — on create and on every
6624
+ later PUT. With a googleserviceaccount iClient the server stores
6625
+ the key's project_id on create (a value sent on create is
6626
+ replaced by it) and on any later save that changes or omits
6627
+ `http.unencrypted` — the next bullet has the PUT that does not
6628
+ re-fill it. Any other provider fails with 422 invalid_field
6629
+ on http._iClientId — "IClient provider must be
6612
6630
  googleserviceaccount or custom_oauth2 for Google Cloud Storage
6613
6631
  connections."
6632
+ - |-
6633
+ When a PUT moves the connection from an OAuth iClient to a
6634
+ googleserviceaccount iClient, drop `http.unencrypted` (or change
6635
+ it) in the same PUT: the server's fill from the key is written
6636
+ only when `http.unencrypted` is absent or changed, so a PUT that
6637
+ re-sends the stored object unchanged keeps the OAuth-era project
6638
+ id beside the service account (the 200 body still echoes the
6639
+ key's — only a GET shows what persisted). Moving the other way
6640
+ (service account → OAuth) needs the project id in the PUT, or it
6641
+ is the 422 above.
6614
6642
  unencryptedFields:
6615
6643
  type: array
6616
6644
  description: |
@@ -6655,13 +6683,20 @@ components:
6655
6683
  description: |-
6656
6684
  iClient that holds the credentials this connection signs with: the OAuth 2.0 client for
6657
6685
  `auth.type` `oauth` (including the `azureserviceprincipal` service principal an Azure
6658
- Data Lake Storage Gen2 connection authenticates with and the `googleserviceaccount` key
6659
- a Google Cloud Storage connection uses), or the `awsIam` role for `auth.type` `awsiam`.
6686
+ Data Lake Storage Gen2 connection authenticates with and, on a Google Cloud Storage
6687
+ connection, either the `googleserviceaccount` key of its Google service account auth
6688
+ type or — its OAuth 2.0 auth type — Celigo's published Google Cloud Storage iClient,
6689
+ which the connector pre-configures, or an account-owned `custom_oauth2` iClient), or
6690
+ the `awsIam` role for `auth.type` `awsiam`.
6660
6691
  Must belong to the same account as the connection — or be the iClient Celigo publishes
6661
6692
  with a pre-built OAuth HTTP connector (pre-configured by the connector; from the
6662
- connecting account `GET /v1/iclients/{_id}` on it is 404 resource_not_found and
6663
- `GET /v1/iclients` does not list it, yet the connection saves with it). Omit for every
6664
- other auth type. On a Shopify connection `settings.appType` says which of the two it
6693
+ connecting account `GET /v1/iclients/{_id}` on it is 404 — resource_not_found or
6694
+ invalid_ref "IClient not found." — and `GET /v1/iclients` does not list it, yet the
6695
+ connection saves with it). Omit for every other auth type. A Google Cloud Storage
6696
+ connection stores `auth.type` `oauth` under both of its auth types; the referenced
6697
+ iClient's provider tells them apart, and switching is a PUT that changes `_iClientId`
6698
+ (see `unencrypted.googleProjectId` for what travels with it). On a Shopify connection
6699
+ `settings.appType` says which of the two it
6665
6700
  is: `public` rides Celigo's published Shopify app (installed from the Shopify App
6666
6701
  Store), `custom` rides the account's own iClient — the Shopify app the customer created
6667
6702
  in the Shopify dev dashboard — with `auth.oauth.scope` chosen on the connection. A
@@ -6676,7 +6711,7 @@ components:
6676
6711
  published app and carry no `settings.appType`.
6677
6712
  examples:
6678
6713
  - 6203a7e4f321d800129a1b8e
6679
- x-celigo-ui-override: 'Required by the connection form for oauth (subForms/httpOAuth.js: required true, iClient filter provider custom_oauth2, or googleserviceaccount / azureserviceprincipal for the GCS and ADLS Gen2 variants) and for awsIam (subForms/httpAwsIam.js: required true, filter provider awsIam). For oauth the API creates the connection without it and the authorization is completed afterward; for awsiam the API also rejects its absence (see the if/then rule on this schema).'
6714
+ x-celigo-ui-override: 'Required by the connection form for oauth (subForms/httpOAuth.js: required true, iClient filter provider custom_oauth2 — on a Google Cloud Storage connection''s OAuth 2.0 auth type too, where Simple view pre-selects Celigo''s published iClient and hides the picker — or googleserviceaccount / azureserviceprincipal for the GCS Google service account and ADLS Gen2 variants) and for awsIam (subForms/httpAwsIam.js: required true, filter provider awsIam). For oauth the API creates the connection without it and the authorization is completed afterward; for awsiam the API also rejects its absence (see the if/then rule on this schema).'
6680
6715
  x-celigo-ai-guidance:
6681
6716
  - |-
6682
6717
  For auth.type "awsiam" the referenced iClient must have provider "awsIam" (any other
@@ -6695,10 +6730,30 @@ components:
6695
6730
  The iClient must belong to the same account as the connection — an iClient id from
6696
6731
  another account fails with 422 invalid_ref "The referenced IClient must belong to the
6697
6732
  same user." The one exception is the iClient a pre-built OAuth HTTP connector
6698
- pre-configures (Celigo's published app — the Shopify Public App's, for one): the
6699
- connection saves with that id from the connecting account even though
6700
- `GET /v1/iclients/{_id}` on it is 404 there, so do not refuse a `public` Shopify
6701
- connection on this rule.
6733
+ pre-configures (Celigo's published app — the Shopify Public App's and the Google Cloud
6734
+ Storage OAuth 2.0 iClient, for two): the connection saves with that id from the
6735
+ connecting account even though `GET /v1/iclients/{_id}` on it is 404 there, so do not
6736
+ refuse a `public` Shopify connection or an OAuth 2.0 Google Cloud Storage connection on
6737
+ this rule. Read the id from the connector's metadata
6738
+ (`GET /v1/httpconnectors/{_id}?returnEverything=true`,
6739
+ `supportedBy.connection.preConfiguredFields` entry for `http._iClientId`), never from
6740
+ a hard-coded value.
6741
+ - |-
6742
+ A Google Cloud Storage connection (assistant "googlecloudstorage", or any http.baseURI
6743
+ containing "storage.googleapis.com") references either a googleserviceaccount iClient
6744
+ of the same account (its Google service account auth type — no authorization step; the
6745
+ server stores the key's project_id in `unencrypted.googleProjectId` on create and
6746
+ whenever `http.unencrypted` changes or is omitted — see that field) or an OAuth iClient
6747
+ with `unencrypted.googleProjectId` set (its OAuth 2.0 auth type — Celigo's published
6748
+ iClient, or an account-owned custom_oauth2 one — authorized afterwards in a browser;
6749
+ until then `POST /v1/connections/{_id}/ping` answers `missing_token`). The server
6750
+ checks the provider only — a custom_oauth2 iClient registered for a different HTTP
6751
+ connector (`_httpConnectorId`) also saves on a GCS connection — so bind an iClient
6752
+ with no connector or the Google Cloud Storage connector's. The connection document
6753
+ keeps `auth.oauth.scope` as sent (a GCS connection saved without it stores none), so
6754
+ send the Cloud Storage scopes on the OAuth 2.0 auth type
6755
+ (https://www.googleapis.com/auth/devstorage.read_write, …read_only or
6756
+ …full_control); a service account connection carries none.
6702
6757
  - |-
6703
6758
  On a Shopify connection keep `settings.appType` and `_iClientId` in step the way the
6704
6759
  form does — `public` with the connector's published iClient, `custom` with an
package/dist/enduser.yml CHANGED
@@ -4630,23 +4630,51 @@ components:
4630
4630
  googleProjectId:
4631
4631
  type: string
4632
4632
  description: |-
4633
- Google Cloud project id for Google Cloud Storage connections
4634
- (assistant `googlecloudstorage`, or a `baseURI` pointing at
4635
- `storage.googleapis.com`).
4633
+ Default project ID of a Google Cloud Storage connection (assistant
4634
+ `googlecloudstorage`, or a `baseURI` pointing at
4635
+ `storage.googleapis.com`): the Google Cloud project whose buckets the
4636
+ export and import forms list. It does not limit access — the
4637
+ connection reaches any bucket the authorized Google account or
4638
+ service account may use. Set by the caller on the OAuth 2.0 auth type
4639
+ (Celigo's published Google Cloud Storage iClient or an account-owned
4640
+ `custom_oauth2` iClient). On the Google service account auth type the
4641
+ server stores the key's `project_id` on create and on any save that
4642
+ changes or omits `http.unencrypted`; a save that re-sends the stored
4643
+ `http.unencrypted` unchanged keeps the stored value, even though the
4644
+ response body can echo the key's — read the connection back. Trimmed
4645
+ on save; no format is enforced (the connection form warns on a value
4646
+ outside Google's project-id format and still saves it).
4636
4647
  examples:
4637
4648
  - my-gcs-project
4638
4649
  x-celigo-ai-guidance:
4639
4650
  - |-
4640
4651
  Required when the GCS connection authenticates through an OAuth
4641
- iClient (provider custom_oauth2). Omitting it fails the save
4642
- with 422 project_id_missing on http.unencrypted.googleProjectId
4643
- — "Default project ID is required on OAuth Google Cloud Storage
4644
- connections (http.unencrypted.googleProjectId)." With a
4645
- googleserviceaccount iClient the server fills this from the
4646
- key's project_id. Any other provider fails with 422
4647
- invalid_field on http._iClientId — "IClient provider must be
4652
+ iClient — Celigo's published Google Cloud Storage iClient (the id
4653
+ the connector pre-configures on `http._iClientId` when
4654
+ `http.auth.type` is `oauth`) or an account-owned iClient with
4655
+ provider custom_oauth2. Omitting it, or sending only whitespace,
4656
+ fails the save with 422 project_id_missing on
4657
+ http.unencrypted.googleProjectId — "Default project ID is
4658
+ required on OAuth Google Cloud Storage connections
4659
+ (http.unencrypted.googleProjectId)." — on create and on every
4660
+ later PUT. With a googleserviceaccount iClient the server stores
4661
+ the key's project_id on create (a value sent on create is
4662
+ replaced by it) and on any later save that changes or omits
4663
+ `http.unencrypted` — the next bullet has the PUT that does not
4664
+ re-fill it. Any other provider fails with 422 invalid_field
4665
+ on http._iClientId — "IClient provider must be
4648
4666
  googleserviceaccount or custom_oauth2 for Google Cloud Storage
4649
4667
  connections."
4668
+ - |-
4669
+ When a PUT moves the connection from an OAuth iClient to a
4670
+ googleserviceaccount iClient, drop `http.unencrypted` (or change
4671
+ it) in the same PUT: the server's fill from the key is written
4672
+ only when `http.unencrypted` is absent or changed, so a PUT that
4673
+ re-sends the stored object unchanged keeps the OAuth-era project
4674
+ id beside the service account (the 200 body still echoes the
4675
+ key's — only a GET shows what persisted). Moving the other way
4676
+ (service account → OAuth) needs the project id in the PUT, or it
4677
+ is the 422 above.
4650
4678
  unencryptedFields:
4651
4679
  type: array
4652
4680
  description: |
@@ -4691,13 +4719,20 @@ components:
4691
4719
  description: |-
4692
4720
  iClient that holds the credentials this connection signs with: the OAuth 2.0 client for
4693
4721
  `auth.type` `oauth` (including the `azureserviceprincipal` service principal an Azure
4694
- Data Lake Storage Gen2 connection authenticates with and the `googleserviceaccount` key
4695
- a Google Cloud Storage connection uses), or the `awsIam` role for `auth.type` `awsiam`.
4722
+ Data Lake Storage Gen2 connection authenticates with and, on a Google Cloud Storage
4723
+ connection, either the `googleserviceaccount` key of its Google service account auth
4724
+ type or — its OAuth 2.0 auth type — Celigo's published Google Cloud Storage iClient,
4725
+ which the connector pre-configures, or an account-owned `custom_oauth2` iClient), or
4726
+ the `awsIam` role for `auth.type` `awsiam`.
4696
4727
  Must belong to the same account as the connection — or be the iClient Celigo publishes
4697
4728
  with a pre-built OAuth HTTP connector (pre-configured by the connector; from the
4698
- connecting account `GET /v1/iclients/{_id}` on it is 404 resource_not_found and
4699
- `GET /v1/iclients` does not list it, yet the connection saves with it). Omit for every
4700
- other auth type. On a Shopify connection `settings.appType` says which of the two it
4729
+ connecting account `GET /v1/iclients/{_id}` on it is 404 — resource_not_found or
4730
+ invalid_ref "IClient not found." — and `GET /v1/iclients` does not list it, yet the
4731
+ connection saves with it). Omit for every other auth type. A Google Cloud Storage
4732
+ connection stores `auth.type` `oauth` under both of its auth types; the referenced
4733
+ iClient's provider tells them apart, and switching is a PUT that changes `_iClientId`
4734
+ (see `unencrypted.googleProjectId` for what travels with it). On a Shopify connection
4735
+ `settings.appType` says which of the two it
4701
4736
  is: `public` rides Celigo's published Shopify app (installed from the Shopify App
4702
4737
  Store), `custom` rides the account's own iClient — the Shopify app the customer created
4703
4738
  in the Shopify dev dashboard — with `auth.oauth.scope` chosen on the connection. A
@@ -4712,7 +4747,7 @@ components:
4712
4747
  published app and carry no `settings.appType`.
4713
4748
  examples:
4714
4749
  - 6203a7e4f321d800129a1b8e
4715
- x-celigo-ui-override: 'Required by the connection form for oauth (subForms/httpOAuth.js: required true, iClient filter provider custom_oauth2, or googleserviceaccount / azureserviceprincipal for the GCS and ADLS Gen2 variants) and for awsIam (subForms/httpAwsIam.js: required true, filter provider awsIam). For oauth the API creates the connection without it and the authorization is completed afterward; for awsiam the API also rejects its absence (see the if/then rule on this schema).'
4750
+ x-celigo-ui-override: 'Required by the connection form for oauth (subForms/httpOAuth.js: required true, iClient filter provider custom_oauth2 — on a Google Cloud Storage connection''s OAuth 2.0 auth type too, where Simple view pre-selects Celigo''s published iClient and hides the picker — or googleserviceaccount / azureserviceprincipal for the GCS Google service account and ADLS Gen2 variants) and for awsIam (subForms/httpAwsIam.js: required true, filter provider awsIam). For oauth the API creates the connection without it and the authorization is completed afterward; for awsiam the API also rejects its absence (see the if/then rule on this schema).'
4716
4751
  x-celigo-ai-guidance:
4717
4752
  - |-
4718
4753
  For auth.type "awsiam" the referenced iClient must have provider "awsIam" (any other
@@ -4731,10 +4766,30 @@ components:
4731
4766
  The iClient must belong to the same account as the connection — an iClient id from
4732
4767
  another account fails with 422 invalid_ref "The referenced IClient must belong to the
4733
4768
  same user." The one exception is the iClient a pre-built OAuth HTTP connector
4734
- pre-configures (Celigo's published app — the Shopify Public App's, for one): the
4735
- connection saves with that id from the connecting account even though
4736
- `GET /v1/iclients/{_id}` on it is 404 there, so do not refuse a `public` Shopify
4737
- connection on this rule.
4769
+ pre-configures (Celigo's published app — the Shopify Public App's and the Google Cloud
4770
+ Storage OAuth 2.0 iClient, for two): the connection saves with that id from the
4771
+ connecting account even though `GET /v1/iclients/{_id}` on it is 404 there, so do not
4772
+ refuse a `public` Shopify connection or an OAuth 2.0 Google Cloud Storage connection on
4773
+ this rule. Read the id from the connector's metadata
4774
+ (`GET /v1/httpconnectors/{_id}?returnEverything=true`,
4775
+ `supportedBy.connection.preConfiguredFields` entry for `http._iClientId`), never from
4776
+ a hard-coded value.
4777
+ - |-
4778
+ A Google Cloud Storage connection (assistant "googlecloudstorage", or any http.baseURI
4779
+ containing "storage.googleapis.com") references either a googleserviceaccount iClient
4780
+ of the same account (its Google service account auth type — no authorization step; the
4781
+ server stores the key's project_id in `unencrypted.googleProjectId` on create and
4782
+ whenever `http.unencrypted` changes or is omitted — see that field) or an OAuth iClient
4783
+ with `unencrypted.googleProjectId` set (its OAuth 2.0 auth type — Celigo's published
4784
+ iClient, or an account-owned custom_oauth2 one — authorized afterwards in a browser;
4785
+ until then `POST /v1/connections/{_id}/ping` answers `missing_token`). The server
4786
+ checks the provider only — a custom_oauth2 iClient registered for a different HTTP
4787
+ connector (`_httpConnectorId`) also saves on a GCS connection — so bind an iClient
4788
+ with no connector or the Google Cloud Storage connector's. The connection document
4789
+ keeps `auth.oauth.scope` as sent (a GCS connection saved without it stores none), so
4790
+ send the Cloud Storage scopes on the OAuth 2.0 auth type
4791
+ (https://www.googleapis.com/auth/devstorage.read_write, …read_only or
4792
+ …full_control); a service account connection carries none.
4738
4793
  - |-
4739
4794
  On a Shopify connection keep `settings.appType` and `_iClientId` in step the way the
4740
4795
  form does — `public` with the connector's published iClient, `custom` with an