Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deploy / Update Workflows via Git, API, CLI #220

Closed
dylburger opened this issue Oct 23, 2019 · 58 comments
Closed

Deploy / Update Workflows via Git, API, CLI #220

dylburger opened this issue Oct 23, 2019 · 58 comments
Labels
enhancement New feature or request triaged For maintainers: This issue has been triaged by a Pipedream employee

Comments

@dylburger
Copy link
Contributor

dylburger commented Oct 23, 2019

I want to write and test workflows on my local machine, storing the workflow's code in my existing version control system.

I also want to programmatically deploy workflows using a CLI, for example using a command like pipedream deploy. This way, I can deploy workflows locally or as part of my CI/CD pipeline.

Related: #1139

@dylburger
Copy link
Contributor Author

We've launched the first version of the Pipedream CLI: https://docs.pipedream.com/cli/reference/

The CLI supports managing Event Sources for now (not yet workflows), so I updated the title of this ticket to reflect the need for managing workflows via CLI, and am keeping it open to track that request.

@dylburger dylburger changed the title Pipedream CLI / Writing Workflows Locally CLI: Deploy / Update Workflows Mar 12, 2020
@dylburger dylburger transferred this issue from PipedreamHQ/roadmap Jun 19, 2020
@dylburger dylburger added the enhancement New feature or request label Jun 19, 2020
@morganism
Copy link

@dylburger Thank you! I am finding Pipedream really useful, Workflow management via CLI would be great. I'm pretty new to this service, but picking up the concept and how to get real utility out of it is not a chore. I'll DM you if I can.

@dylburger dylburger changed the title CLI: Deploy / Update Workflows API / CLI: Deploy / Update Workflows Nov 16, 2020
@dylburger
Copy link
Contributor Author

Adding a comment from #857 here. When we support an API / CLI for deploying workflows, we plan to also let you serialize workflows to plaintext (e.g. JavaScript code with some config locally), which means you'd be able to store them in Git. That feature would enable the request below.

"For testing my workflow with a real case, I need to deploy my code, so everytime I test something I create a new version of the workflow. My workflow ends up with lots of versions. Most of them have bugs or are here for testing/debugging
Sometimes I want to go back to a specific version but I can't remember which one it was, it can be 10 versions back or more, it's hard to identify versions and difference between them

Describe the solution you'd like
Something closer to real code versioning, so more like git commits:

being able to add a comment to a version. This would be a "quick win", as I could just tag a revision that I know is working before creating more revisions, So I can easily come back to it even if I created many revisions after.
Nice to have: being able to compare 2 versions of a workflow"

@illusoryio
Copy link

This would be very useful.

@moltar
Copy link

moltar commented Apr 5, 2021

Would love to get this supported, this way we can migrate our processes from unstable Zapier zaps and Integromat scenarios to proper code solution with some tests.

@sjn001tvh
Copy link

Geetings. I'm a newby to Pipedream, but after several weeks of working with workflows between Dropbox and ClickUp etc., I've been able to accomplish a lot processing information from phone to the ClickUp app. However, as I have developed these routines, there have been instances where I have deleted a step... I know, I know, even though it warns me about the delete, I just needed it to get out of the way so I could try another option, and of course when I did... I lost the routine. I only had to do that once, and fortunately it wasn't filled with a lot of functions, etc. I've looked and asked about a utility that will allow me to save a step, maybe as an archive, so it suggested I follow this issue.

At this point, my only option is to cut and paste the code between the async(events, steps, auths) {...} and place them in a .js files defined as functions. Does anyone have a better method? Then, I can test the code, and if it works, cut and paste the new version back into my .js functions file. Thanks.

@cakemountain
Copy link

👍 for this, right now it's the only thing preventing my team from using your service!

@dylburger
Copy link
Contributor Author

dylburger commented Oct 29, 2021

@cakemountain I hear you and we are working on an early version of this now! We’ll be sharing details on that here. We’d love y’all and anyone else watching this issue to test the beta when it’s ready.

@cakemountain
Copy link

@dylburger love hearing it. Do you have an approximate release timeline for the beta?

@dylburger
Copy link
Contributor Author

I don’t, but I’ll let you know as soon as we have clarity on that.

@cakemountain
Copy link

@dylburger okay gotcha. if you're taking applicants for early access or beta testing we're highly motivated. Reach out to me on LinkedIn if you want to connect.

@ak--47
Copy link

ak--47 commented Nov 1, 2021

this is my local workflow for writing tests inside of VSCode and constantly redeploying changes to pipeDream:

one file, 4 shells:

workflow

essentially:

  • pd dev (watch for changes)
  • pd logs (so i don’t need the web browser)
  • jest tests on my code
  • a scratchpad for doing random stuff

community post: https://pipedream.com/community/t/developing-code-steps-in-a-workflow-locally/1489

@doronlh
Copy link

doronlh commented Mar 7, 2022

+1

@mmmoli
Copy link

mmmoli commented May 9, 2022

Would LOVE ❤️ this feature.

We manage code in a monorepo and storing workflows would be 👌 👌 👌

@jondkinney
Copy link

This would be great! Looking forward to hearing some updates, hopefully.

@charlie-s
Copy link

@sjn001tvh and anyone else that needs it, you can hit https://api.pipedream.com/v1/users/me/workflows (use the Authorization: Bearer ... header from the settings page) to download a JSON array of your workflows, including custom code in any components.

@The-TT-Hacker
Copy link

The-TT-Hacker commented Apr 23, 2023

I think pipedream would see much more adoption if this workflows API existed.
It would allow workflows to be managed using version control and IaC (e.g. a terraform module).
They should really be deployed by CI/CD pipelines.

@EricWu91
Copy link

EricWu91 commented Apr 23, 2023 via email

@mroy-seedbox
Copy link
Contributor

This is 100% required in order to scale out Pipedream to hundreds of workflows, especially when many of them are very similar, or even identical (but running on different schedules or triggers, or with different parameters). Ex: run job A (via external API call), and wait for it to complete, then retrieve the results, and send them to Slack -- and do the same for job B, C, D, E, and so on...

Reusable actions/components are nice, but they only apply to one step. And then it is tedious to manually apply the new version in a multitude of workflows.

Manually managing hundreds of similar workflows is a no-go. It's kinda like copy pasting the same code all over the place: no one wants to maintain that mess (which version of the code/workflow is the most up-to-date, etc.). At least if we could look at all our workflows "at once" in an IDE, it would help to manage the repetitions, and make simultaneous updates/apply refactorings. I dream of editing Pipedream workflows directly in VS Code, and then using an awesome VS Code extension with all kind of cool features to interface directly with Pipedream from VS Code.

Also, with workflow management via API/Git/CLI, we could add a layer of abstraction on top of Pipedream, allowing us to define a generic/reusable/configurable workflow once, and then deploy it multiple times (with different parameters, schedules, or triggers).

Of course, reusable workflows or multi-step actions/components would also be very helpful, and could accomplish similar goals. Zapier has something similar, called "Sub-Zaps".

@peteratticusberg
Copy link

+1

@EricWu91
Copy link

Would love to hear updates from the team!

@n0vakovic
Copy link

+1

@danhstevens
Copy link

+1

@EricWu91
Copy link

First and foremost:
Is this the feature we've all been waiting for?

image

If it is, it looks amazing.

But this is slightly more disheartening.

image

I understand your business model, and I know you guys also need to make a buck. But 99/month for a single dev, in slightly larger projects is prohibitive. That's five times as expensive as the previous pricing tag!

@mroy-seedbox
Copy link
Contributor

Maybe they could make the feature usage-based for lower plans. Just charge an extra credit per invoke for workflows that are synced to GitHub.

@EricWu91
Copy link

For context, I'm a single developer working on a few personal projects. I've replaced some of my backend code with Pipedream workflows, because it is so much easier to have an app calling a fixed URL than having to worry about all that infrastructure.

That being said, my workflows are amounting to almost 800 lines each, and editing, testing, developing online becomes a big nuisance very fast. Monaco is fine for a few hundred lines tops, and shouldn't be used for slightly larger codebases!

So... how am I supposed to keep working on my PD workflows if the alternative to wasting hours working with a feature-less IDE is paying 100 dollars a month (1200 upfront)?

@Stvad
Copy link

Stvad commented Sep 21, 2023

Seems like it's indeed the feature we've been waiting for. I'm very surprised to see it gated behind paywall it's such a foundational thing 🤔

@EricWu91
Copy link

@dylburger can you please provide updates on this? Even if it means to answer dryly "Yes, we heard your requests, we developed them, and we'll paywall them. Live with it.". At least we will have an answer.

@dylburger
Copy link
Contributor Author

dylburger commented Oct 30, 2023

First, I really appreciate all the feedback! We have a small team for the size of the business we're operating, so it can take us longer than we'd like to groom GitHub issues.

We recently reduced the base price of all of our plans for new customers (see our pricing page), and are considering further expansion of GitHub support to lower tiers (e.g. for personal vs. organizational use). Like some of y'all have mentioned, since we operate a business, we think carefully about the value we're providing at each tier, gating some features at different tiers accordingly. But we hear the feedback, and I'm sharing all of this with the broader team so they see it.

Since this issue also operated as a catch-all for Git serialization and a workflow API + CLI, I'm closing this master ticket and opening separate tickets for the remaining work:

@EricWu91
Copy link

EricWu91 commented Oct 31, 2023

@dylburger , Thanks for the answer.
I noticed that you created two issues - one for CLI, one for API - but not for GIT.
Should we assume that the latter won't be receiving further considerations given that Github Sync is already out?

Furthermore, can we (and if so, where should we) follow up on this?

are considering further expansion of GitHub support to lower tiers (e.g. for personal vs. organizational use)

@mroy-seedbox
Copy link
Contributor

The CLI & API features will effectively allow users to roll up their own GitHub integration anyway (or use any other version control provider), by creating a very simple CI/CD pipeline/workflow.

Which kinda defeats the purpose of paywalling this feature. 🤷‍♂️

@dylburger
Copy link
Contributor Author

@EricWu91 We aren't planning on adding a GitHub issue to track that. We generally use GitHub only for new features, bugs, and integration requests, but not requests to transition features to different plans. I did share all this feedback with the team, though.

@EricWu91
Copy link

@dylburger, sorry for the confusion.

What I meant by - one for CLI, one for API - but not for GIT. was that I expected that all three topics in this issue ("Deploy / Update Workflows via Git, API, CLI") would have a different Github issue. Since you ommited a GIT-related issue, I thought it was being disregarded in favor of (the product) Github Sync.

As for a Github issue to track internal matters (i.e. pricing tiers), that makes all sense and I didn't expect otherwise :).

The CLI & API features will effectively allow users to roll up their own GitHub integration anyway (or use any other version control provider), by creating a very simple CI/CD pipeline/workflow.

@mroy-seedbox I would still pay for the ease of not having to deal with it, though. Just (still) not as much.

@dylburger
Copy link
Contributor Author

Got it, so the CLI / API work will allow you to develop locally and serialize any workflow code to Git automatically (or any other VCS). In that model you’d push the code to Pipedream via your CI tool. Does that help or are you talking about something else?

@EricWu91
Copy link

EricWu91 commented Oct 31, 2023

My needs (and hopefully the ones of others in this issue) are just as you pointed out: Being able to develop locally, automatically versioning in a VCS (Git preferred, but not mandatory), and being able to still use Pipedream's infrastructure to run workflows.

If an API/CLI integration is made available, and it accomplishes the points above without an inherent need for a Git integration, I'm fine with it :).

@mroy-seedbox
Copy link
Contributor

A well built VS Code extension for Pipedream might one day become a superior development environment than the Pipedream builder itself (due to its configurability & the wide availability of extensions, which is not feasible to add to the builder).

And that would allow users to use whatever form of version control they prefer (as @EricWu91 mentioned).

@AICrafterZheng
Copy link

+1

@jcable
Copy link

jcable commented Nov 19, 2023

FYI I moved all my workflows out of Pipedream and re-implemented them with AWS lambda. Partly to bring the source under source code control and partly as part of a wider project that moved our graphql APIs out of Hasura on Heroku.
Julian (ogauk)

So I'm not really an interested party any longer.

@dylburger
Copy link
Contributor Author

Since this issue is closed, I'm going to go ahead and lock this conversation so we make sure feedback about missing features is added to the relevant tickets:

@PipedreamHQ PipedreamHQ locked as resolved and limited conversation to collaborators Nov 19, 2023
@ctrlaltdylan
Copy link
Contributor

We have released the ability to programmatically create and update workflows by REST API.

Read this end to end guide on how to create workflows programmatically using the REST API: https://pipedream.com/docs/rest-api/workflows

API Documentation: https://pipedream.com/docs/rest-api#workflows

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request triaged For maintainers: This issue has been triaged by a Pipedream employee
Projects
None yet
Development

No branches or pull requests