# Overview
# What are Components?
Components are Node.js modules that run on Pipedream's serverless infrastructure. They can use Pipedream managed auth for 1,700+ apps (opens new window) (for both OAuth and key-based APIs) and use most npm packages with no npm install
or package.json
required.
Components are most commonly used as the building blocks of Pipedream workflows, but they can also be used like typical serverless functions. You can explore curated components for popular apps in Pipedream's Marketplace (opens new window) and GitHub repo (opens new window) or you can author and share your own.
TIP
Our TypeScript component API is in beta. If you're interested in developing TypeScript components and providing feedback, see our TypeScript docs.
# Component Types
Pipedream supports two types of components — sources and actions.
# Sources
Sources must be instantiated and they run as independent resources on Pipedream. They are commonly used as workflow triggers (but can also be used as standalone serverless functions).
Capabilities
- Accept user input on deploy via
props
- Trigger on HTTP requests, timers, cron schedules, or manually
- Emit events that can be inspected, trigger Pipedream workflows and that can be consumed in your own app via API
- Store and retrieve state using the built-in key-value store
- Use any of Pipedream's built-in deduping strategies
- Deploy via Pipedream's UI, CLI or API
Example
The New Files (Instant) (opens new window) source for Google Drive is a prebuilt component in Pipedream's registry that can be deployed in seconds and emits an event every time a new file is added to the user's Google Drive, and can also be configured to watch for changes to a specific folder within that drive. Each new event that is emitted can be used to trigger a workflow.
# Actions
Actions are components that may be used as steps in a workflow. Unlike sources, actions cannot run independently (outside of a workflow).
Capabilities
- Accept user input via
props
- May
return
JSON serializable data
Example
The Add Single Row action for Google Sheets is a prebuilt component in Pipedream's registry that can be added to a workflow and configured in seconds. Users can configure it in seconds and send workflow data to Google Sheets without having to learn the Google Sheets API.
# Using Components
Components may be instantiated or added to workflows via Pipedream's UI.
- Sources may be instantiated and consumed via UI (opens new window), CLI or API
- Actions may be added to workflows (opens new window)
# Using Private Actions
Private action components published from the CLI or from a Node.js Code Step are available for use across your workflows.
To use a published action, add a new step to your workflow and click My Actions. Your privately published action components will appear in this list.
# Using Private Sources
Private source components deployed from your account via the CLI will automatically create a new Source in your account with the prop configuration you specified.
You can also deploy new instances of a source from the Components dashboard (opens new window). To deploy a new instance of a source, click the menu on the right hand side and select Create source.
# Developing Components
Develop components locally using your preferred code editor (and maintain your code in your own GitHub repo) and deploy or publish using Pipedream's CLI.
- Sources may be deployed directly from local code or published to your account and instantiated via Pipedream's UI
- Actions may only be published — published actions may be added to workflows via Pipedream's UI
Published components are only available to your own account by default. If published to a team account, the component (source or action) may be discovered and selected by any member of the team.
# Prerequisites
- A free Pipedream (opens new window) account
- A free GitHub (opens new window) account
- Basic proficiency with Node.js or Javascript
- Pipedream CLI
Finally, the target app must be integrated with Pipedream. You can explore all apps supported by Pipedream in the marketplace (opens new window). If your app is not listed, please create a GitHub issue (opens new window) to request it and reach out (opens new window) to our team to let us know that you're blocked on source or action development.
# Quickstart Guides
# Component API Reference
After getting familiar with source/action development using the quickstart guides, check out the Component API Reference and examples on GitHub (opens new window) to learn more.
# Managing Privately Published Components
Components published to your workspace are available in the Components (opens new window) section of the dashboard.
Your private components published from the CLI or from Node.js code steps are listed here.
# Unpublishing Privately Published Components
To unpublish components belonging to your workspace, open the menu on the right hand side of the component details and select Unpublish Component.
A prompt will open to confirm the action, click Confirm to unpublish your action.
WARNING
Unpublishing a component is a permanent action, please be careful to ensure you still have access to the source code.
# Sharing Components
Contribute to the Pipedream community by publishing and sharing new components, and contributing to the maintenance of existing components.
# Verified Components
Pipedream maintains a source-available registry of components (sources and actions) that have been curated for the community. Registered components are verified by Pipedream through the GitHub PR process and:
- Can be trusted by end users
- Follow consistent patterns for usability
- Are supported by Pipedream if issues arise
Registered components also appear in the Pipedream marketplace and are listed in Pipedream's UI when building workflows.
# Community Components
Developers may create, deploy and share components that do not conform to these guidelines, but they will not be eligible to be listed in the curated registry (e.g., they may be hosted in a Github repo). If you develop a component that does not adhere to these guidelines, but you believe there is value to the broader community, please reach out in our community forum (opens new window).