Running Pipedream Workflows? See Workflow security best practices. Workflows and String are shutting down on March 31, 2027 (learn more).
Store secrets as connected accounts or project secrets
Never store secrets like API keys directly in code. These secrets should be stored in one of two ways:- If Pipedream integrates with the app, use connected accounts to link your apps / APIs.
- If you need to store credentials for an app Pipedream doesn’t support, or you need to store arbitrary configuration data, use project variables and secrets.
Keep your Pipedream credentials server-side
Your OAuth client ID and secret grant access to the resources in your workspace. Store these credentials securely on your server, never allowing them to be exposed in client-side code, and make Connect API calls from your backend. For anything that runs in your end users’ browsers, use a Connect token or a Connect Link. Both are scoped to a single end user, can only initiate the account connection flow, and are short-lived. Let your users connect their own accounts through managed auth instead of collecting their third-party credentials in your application. Pipedream encrypts and stores the credentials, and you reference the account by ID.Deliver data to and from Pipedream securely
Always send data over HTTPS to Pipedream endpoints. When you connect to APIs through the Connect proxy, or receive events at your own endpoints, encrypt that data in transit by using HTTPS endpoints.Validate webhook signatures
Pipedream signs every trigger webhook delivery with HMAC-SHA256. Validate thex-pd-signature header with your signing key before you process an event, compare signatures with a constant-time function, and reject requests with old timestamps to prevent replay attacks. See validating signatures for Node.js and Python examples.
Many third-party apps also pass a signature with event data delivered via webhooks. The signature is an opaque value computed from the incoming event data and a secret that only you and the app know. Signatures are specific to the app sending the data, and the app should provide instructions for signature validation. Not all apps compute signatures, but when they do, you should always verify them. When you deploy a Pipedream trigger, Pipedream verifies the app’s signature for you. You can always audit the code behind the component to confirm this, and suggest further security improvements that you find.

