diff --git a/docs-v2/pages/connect/api.mdx b/docs-v2/pages/connect/api.mdx
index 33e17a3f8d040..28622afc0f609 100644
--- a/docs-v2/pages/connect/api.mdx
+++ b/docs-v2/pages/connect/api.mdx
@@ -701,7 +701,7 @@ curl -X GET \
#### Delete connected account
-Delete a specific connected account for an end user
+Delete a specific connected account for an end user, and any deployed triggers.
```
DELETE /{project_id}/accounts/{account_id}
@@ -867,7 +867,7 @@ Pipedream returns a `204 No Content` response on successful account deletion
#### Delete an end user
-Delete an end user and all their connected accounts
+Delete an end user, all their connected accounts, and any deployed triggers.
```
DELETE /{project_id}/users/{external_user_id}
@@ -1879,7 +1879,7 @@ const pd = createBackendClient({
});
// Deploy the "New Issue (Instant)" trigger for the Gitlab app
-const { data: deployedTrigger } = await pd.runAction({
+const { data: deployedTrigger } = await pd.deployTrigger({
triggerId: {
key: "gitlab-new-issue",
},
@@ -1917,7 +1917,7 @@ const pd = createBackendClient({
});
// Deploy the "New Issue (Instant)" trigger for the Gitlab app
-const { data: deployedTrigger } = await pd.runAction({
+const { data: deployedTrigger } = await pd.deployTrigger({
triggerId: {
key: "gitlab-new-issue",
},
@@ -2015,7 +2015,7 @@ curl -X POST "https://api.pipedream.com/v1/connect/{your_project_id}/triggers/de
"type": "$.service.db"
},
"http": {
- "endpoint_url": "https://39643dc2c8ff98a019f3fdc9078d6db9.m.pipedream.net"
+ "endpoint_url": "https://xxxxxxxxxx.m.pipedream.net"
},
"projectId": 45672541
},
@@ -2027,3 +2027,357 @@ curl -X POST "https://api.pipedream.com/v1/connect/{your_project_id}/triggers/de
}
}
```
+
+#### List deployed triggers
+
+List all of the deployed triggers for a given user.
+
+```text
+GET /deployed-triggers/
+```
+
+##### Query parameters
+
+`external_user_id` **string**
+
+[The external user ID](/connect/api/#external-users) in your system on behalf of
+which you want to deploy the trigger.
+
+
+##### Examples
+
+```bash
+# First, obtain an OAuth access token
+curl -X POST https://api.pipedream.com/v1/oauth/token \
+ -H "Content-Type: application/json" \
+ -d '{
+ "grant_type": "client_credentials",
+ "client_id": "{oauth_client_id}",
+ "client_secret": "{oauth_client_secret}"
+ }'
+
+# The response will include an access_token. Use it in the Authorization header below.
+# This request will list all deployed triggers for the specified user.
+
+curl -X GET \
+ -G \
+ "https://api.pipedream.com/v1/connect/{your_project_id}/deployed-triggers" \
+ -H "Authorization: Bearer {access_token}" \
+ -H "Content-Type: application/json" \
+ -H "x-pd-environment: development" \
+ -d "external_user_id={external_user_id}"
+```
+
+##### Example response
+
+```json
+{
+ "page_info": {
+ "total_count": 2,
+ "count": 2,
+ "start_cursor": "ZGNfZ3p1bUsyZQ",
+ "end_cursor": "ZGNfdjN1QllYZw"
+ },
+ "data": [
+ {
+ "id": "dc_gzumK2e",
+ "owner_id": "exu_2LniLm",
+ "component_id": "sc_r1ixBpL",
+ "configurable_props": [
+ {
+ "name": "googleDrive",
+ "type": "app",
+ "app": "google_drive"
+ },
+ {
+ "name": "db",
+ "type": "$.service.db"
+ },
+ {
+ "name": "http",
+ "type": "$.interface.http"
+ },
+ {
+ "name": "drive",
+ "type": "string",
+ "label": "Drive",
+ "description": "Defaults to My Drive. To select a [Shared Drive](https://support.google.com/a/users/answer/9310351) instead, select it from this list.",
+ "optional": false,
+ "default": "My Drive",
+ "remoteOptions": true
+ },
+ {
+ "name": "timer",
+ "label": "Push notification renewal schedule",
+ "description": "The Google Drive API requires occasional renewal of push notification subscriptions. **This runs in the background, so you should not need to modify this schedule**.",
+ "type": "$.interface.timer",
+ "static": {
+ "intervalSeconds": 82080
+ }
+ },
+ {
+ "name": "folders",
+ "type": "string[]",
+ "label": "Folders",
+ "description": "(Optional) The folders you want to watch. Leave blank to watch for any new file in the Drive.",
+ "optional": true,
+ "default": [],
+ "remoteOptions": true
+ }
+ ],
+ "configured_props": {
+ "googleDrive": {
+ "authProvisionId": "apn_V1hMeLM"
+ },
+ "db": {
+ "type": "$.service.db"
+ },
+ "http": {
+ "endpoint_url": "https://xxxxxxxxxx.m.pipedream.net"
+ },
+ "drive": "My Drive",
+ "timer": {
+ "cron": null,
+ "interval_seconds": 82080
+ }
+ },
+ "active": true,
+ "created_at": 1733512889,
+ "updated_at": 1733512889,
+ "name": "Danny Connect - exu_2LniLm",
+ "name_slug": "danny-connect---exu-2-lni-lm-3"
+ },
+ {
+ "id": "dc_K0u2OEQ",
+ "owner_id": "exu_2LniLm",
+ "component_id": "sc_ogiRveN",
+ "configurable_props": [
+ {
+ "name": "app",
+ "type": "app",
+ "app": "basecamp"
+ },
+ {
+ "name": "db",
+ "type": "$.service.db"
+ },
+ {
+ "name": "accountId",
+ "type": "string",
+ "label": "Account Id",
+ "description": "The ID of the account.",
+ "remoteOptions": true
+ },
+ {
+ "name": "projectId",
+ "type": "string",
+ "label": "Project Id",
+ "description": "The ID of the project.",
+ "remoteOptions": true
+ },
+ {
+ "name": "http",
+ "type": "$.interface.http"
+ }
+ ],
+ "configured_props": {
+ "app": {
+ "authProvisionId": "apn_EOh4dP0"
+ },
+ "db": {
+ "type": "$.service.db"
+ },
+ "accountId": {
+ "__lv": {
+ "label": "Pipedream",
+ "value": 5871996
+ }
+ },
+ "projectId": {
+ "__lv": {
+ "label": "Getting Started",
+ "value": 39996142
+ }
+ },
+ "http": {
+ "endpoint_url": "https://xxxxxxxxxx.m.pipedream.net"
+ }
+ },
+ "active": true,
+ "created_at": 1733198039,
+ "updated_at": 1733198039,
+ "name": "Danny Connect - exu_2LniLm",
+ "name_slug": "danny-connect---exu-2-lni-lm-1"
+ }
+ ]
+}
+```
+
+#### Retrieve a deployed trigger
+
+Retrieve a single deployed trigger for a given user.
+
+```text
+GET /deployed-triggers/{deployed_component_id}/
+```
+
+##### Path parameters
+
+`dcid` **string**
+
+The deployed component ID for the trigger you'd like to retrieve.
+
+##### Query parameters
+
+`external_user_id` **string**
+
+[The external user ID](/connect/api/#external-users) in your system on behalf of
+which you want to deploy the trigger.
+
+
+##### Examples
+
+```bash
+# First, obtain an OAuth access token
+curl -X POST https://api.pipedream.com/v1/oauth/token \
+ -H "Content-Type: application/json" \
+ -d '{
+ "grant_type": "client_credentials",
+ "client_id": "{oauth_client_id}",
+ "client_secret": "{oauth_client_secret}"
+ }'
+
+# The response will include an access_token. Use it in the Authorization header below.
+# This request will list all deployed triggers for the specified user.
+
+curl -X GET \
+ -G \
+ "https://api.pipedream.com/v1/connect/{your_project_id}/deployed-triggers/{dcid}/" \
+ -H "Authorization: Bearer {access_token}" \
+ -H "Content-Type: application/json" \
+ -H "x-pd-environment: development" \
+ -d "external_user_id={external_user_id}"
+```
+
+##### Example response
+
+```json
+{
+ "id": "dc_gzumK2e",
+ "owner_id": "exu_2LniLm",
+ "component_id": "sc_r1ixBpL",
+ "configurable_props": [
+ {
+ "name": "googleDrive",
+ "type": "app",
+ "app": "google_drive"
+ },
+ {
+ "name": "db",
+ "type": "$.service.db"
+ },
+ {
+ "name": "http",
+ "type": "$.interface.http"
+ },
+ {
+ "name": "drive",
+ "type": "string",
+ "label": "Drive",
+ "description": "Defaults to My Drive. To select a [Shared Drive](https://support.google.com/a/users/answer/9310351) instead, select it from this list.",
+ "optional": false,
+ "default": "My Drive",
+ "remoteOptions": true
+ },
+ {
+ "name": "timer",
+ "label": "Push notification renewal schedule",
+ "description": "The Google Drive API requires occasional renewal of push notification subscriptions. **This runs in the background, so you should not need to modify this schedule**.",
+ "type": "$.interface.timer",
+ "static": {
+ "intervalSeconds": 82080
+ }
+ },
+ {
+ "name": "folders",
+ "type": "string[]",
+ "label": "Folders",
+ "description": "(Optional) The folders you want to watch. Leave blank to watch for any new file in the Drive.",
+ "optional": true,
+ "default": [],
+ "remoteOptions": true
+ }
+ ],
+ "configured_props": {
+ "googleDrive": {
+ "authProvisionId": "apn_V1hMeLM"
+ },
+ "db": {
+ "type": "$.service.db"
+ },
+ "http": {
+ "endpoint_url": "https://xxxxxxxxxx.m.pipedream.net"
+ },
+ "drive": "My Drive",
+ "timer": {
+ "cron": null,
+ "interval_seconds": 82080
+ }
+ },
+ "active": true,
+ "created_at": 1733512889,
+ "updated_at": 1733512889,
+ "name": "Danny Connect - exu_2LniLm",
+ "name_slug": "danny-connect---exu-2-lni-lm-3"
+}
+```
+
+#### Delete a deployed trigger
+
+Delete deployed trigger for a given user.
+
+```text
+DELETE /deployed-triggers/{deployed_component_id}/
+```
+
+##### Path parameters
+
+`dcid` **string**
+
+The deployed component ID for the trigger you'd like to retrieve.
+
+##### Query parameters
+
+`external_user_id` **string**
+
+[The external user ID](/connect/api/#external-users) in your system on behalf of
+which you want to deploy the trigger.
+
+
+##### Examples
+
+```bash
+# First, obtain an OAuth access token
+curl -X POST https://api.pipedream.com/v1/oauth/token \
+ -H "Content-Type: application/json" \
+ -d '{
+ "grant_type": "client_credentials",
+ "client_id": "{oauth_client_id}",
+ "client_secret": "{oauth_client_secret}"
+ }'
+
+# The response will include an access_token. Use it in the Authorization header below.
+# This request will list all deployed triggers for the specified user.
+
+curl -X DELETE \
+ -G \
+ "https://api.pipedream.com/v1/connect/{your_project_id}/deployed-triggers/{dcid}/" \
+ -H "Authorization: Bearer {access_token}" \
+ -H "Content-Type: application/json" \
+ -H "x-pd-environment: development" \
+ -d "external_user_id={external_user_id}"
+```
+
+##### Response
+
+Pipedream returns a `204 No Content` response on successful deletion
\ No newline at end of file
diff --git a/docs-v2/pages/connect/components.mdx b/docs-v2/pages/connect/components.mdx
index 02b9a239c853e..efe46f3c1b243 100644
--- a/docs-v2/pages/connect/components.mdx
+++ b/docs-v2/pages/connect/components.mdx
@@ -26,19 +26,133 @@ Running components for your end users via Pipedream Connect is in **beta**, and
## How to run components for your end users
+
+Refer to the [Connect API docs](/connect/api) for the full API reference. Below is a quickstart with a few specific examples.
+
+
-### Retrieving a component's definition
+### Find the app you want to use
+
+
+You can also skip steps 1 and 2 if you already know the component you want to use or if you'd prefer to [pass a natural language prompt to Pipedream's component search API](/rest-api#search-for-registry-components).
+
+
+In order to find the right trigger or action to configure and run, you first need to find the app. For this example, we'll search for `gitlab`.
+
+```text
+GET /v1/connect/apps?q=gitlab
+```
+
+Here's the response:
+
+```json
+{
+ "page_info": {
+ "total_count": 1,
+ "count": 1,
+ "start_cursor": "Z2l0bGFi",
+ "end_cursor": "Z2l0bGFi"
+ },
+ "data": [
+ {
+ "id": "app_1Z2hw1",
+ "name_slug": "gitlab",
+ "name": "GitLab",
+ "auth_type": "oauth",
+ "description": "GitLab is the most comprehensive AI-powered DevSecOps Platform.",
+ "img_src": "https://assets.pipedream.net/s.v0/app_1Z2hw1/logo/orig",
+ "custom_fields_json": "[{\"name\":\"base_api_url\",\"label\":\"Base API URL\",\"description\":\"The Base API URL defaults to `gitlab.com`. If you are using self-hosted Gitlab, enter your base url here, e.g. `gitlab.example.com`\",\"default\":\"gitlab.com\",\"optional\":null}]",
+ "categories": [
+ "Developer Tools"
+ ]
+ }
+ ]
+}
+```
+
+### List the available components for the app
+
+Once you have the app you want to use, now you can list the triggers and/or actions for that app. We'll list the actions for Gitlab and we'll pass the `name_slug` `gitlab` as the `app`.
+
+```text
+GET /actions?app=gitlab
+```
+
+Here's the response:
+
+```json
+{
+ "page_info": {
+ "total_count": 20,
+ "count": 10,
+ "start_cursor": "c2NfbHlpRThkQQ",
+ "end_cursor": "c2NfQjVpTkJBTA"
+ },
+ "data": [
+ {
+ "name": "List Commits",
+ "version": "0.0.2",
+ "key": "gitlab_developer_app-list-commits"
+ },
+ {
+ "name": "Update Issue",
+ "version": "0.0.1",
+ "key": "gitlab_developer_app-update-issue"
+ },
+ {
+ "name": "Update Epic",
+ "version": "0.0.1",
+ "key": "gitlab_developer_app-update-epic"
+ },
+ {
+ "name": "Search Issues",
+ "version": "0.0.1",
+ "key": "gitlab_developer_app-search-issues"
+ },
+ {
+ "name": "List Repo Branches",
+ "version": "0.0.1",
+ "key": "gitlab_developer_app-list-repo-branches"
+ },
+ {
+ "name": "Get Repo Branch",
+ "version": "0.0.1",
+ "key": "gitlab_developer_app-get-repo-branch"
+ },
+ {
+ "name": "Get Issue",
+ "version": "0.0.1",
+ "key": "gitlab_developer_app-get-issue"
+ },
+ {
+ "name": "Create issue",
+ "version": "0.0.1",
+ "key": "gitlab_developer_app-create-issue"
+ },
+ {
+ "name": "Create Epic",
+ "version": "0.0.1",
+ "key": "gitlab_developer_app-create-epic"
+ },
+ {
+ "name": "Create Branch",
+ "version": "0.0.1",
+ "key": "gitlab_developer_app-create-branch"
+ }
+ ]
+}
+```
+### Retrieve the component's definition
-The first thing to do in order to run a component for your end users is to know
-about the component itself. To start with, you need to know the component's
-unique key. Using that key, you can retrieve the component's structure from the
-Pipedream API. See the [component
+In order to run a component for your end users, you need to understand
+the component's definition. Now that you have the component's key from the previous step,
+you can retrieve its structure from the Pipedream API. See the [component
structure](/components/api#component-structure) section in our docs for more
details.
As an example, the following API call will return the structure of the **List
-Commits** component for Gitlab:
+Commits** action for Gitlab:
```text
GET /v1/connect/components/gitlab-list-commits
@@ -93,7 +207,7 @@ example above:
Using this information, you can now drive the configuration of the component for
your end users, as described in the next section.
-### Configuration
+### Configure the component
Component execution on behalf of your end users requires a few preliminary
steps, focused on getting the right input parameters (aka
@@ -228,7 +342,7 @@ For example, to retrieve the configuration options for the `refName` prop:
}
```
-#### Dynamic props (optional)
+### Configure dynamic props (optional)
The set of props that a component can accept might not be static, and can change
depending on the values of prior props. Props that behave this way are called
@@ -337,7 +451,7 @@ supports two types of components: [actions](/components#actions) and
[sources](/components#sources) (aka triggers).
Actions are components that perform a task by taking an input either during
-[configuration](#configuration) and/or during invocation (usually both), and
+[configuration](#configure-the-component) and/or during invocation (usually both), and
produce a result. Sources are very similar, but the difference is that they are
not invoked directly by Pipedream users, but rather by events that happen on a
third-party service. For example, the "New File" source for Google Drive will be
diff --git a/docs-v2/pages/rest-api/index.mdx b/docs-v2/pages/rest-api/index.mdx
index 3876eda90849a..4141edad1e8b6 100644
--- a/docs-v2/pages/rest-api/index.mdx
+++ b/docs-v2/pages/rest-api/index.mdx
@@ -163,6 +163,10 @@ failure of an API request:
## Accounts
+
+These docs discuss connected accounts **for Pipedream users**. To retrieve accounts for your end users via Connect, refer to the [Connect API docs](/connect/api#accounts).
+
+
[Connected accounts](/connected-accounts/) let you manage credentials for integrated APIs.
### List accounts
@@ -345,6 +349,24 @@ GET /apps
A query string to filter the list of apps. For example, to search for apps that **contain** the string "Slack", pass `q=Slack`.
+---
+
+`has_components` **string** (_optional_)
+
+Pass `1` to filter the list of apps to only those with public triggers or actions.
+
+---
+
+`has_actions` **string** (_optional_)
+
+Pass `1` to filter the list of apps to only those with public actions.
+
+---
+
+`has_triggers` **string** (_optional_)
+
+Pass `1` to filter the list of apps to only those with public triggers.
+
#### Example Request
```shell
@@ -439,6 +461,10 @@ curl https://api.pipedream.com/v1/apps/app_OkrhR1 \
## Components
+
+These docs discuss the management of Pipedream components. To run components on behalf of your end users in your application, refer to the [Connect API docs](/connect/api#components).
+
+
Components are objects that represent the code for an [event source](#sources).
### Create a component
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 2d4595a5cce24..94d317e529b42 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1239,8 +1239,7 @@ importers:
specifier: ^1.6.0
version: 1.6.6
- components/boldsign:
- specifiers: {}
+ components/boldsign: {}
components/boloforms:
dependencies: