I am a junior Software Engineer venturing into Open Source for the first time. Chainflow is a library inspired by some pain points I experienced in my dev work. When building features for an app, I often encounter situations where I need to set up test data to demonstrate those features to users and check if implementations are working properly. Sometimes, I might have to manually click and type to get past unimportant stages of the app when moving between things I want to test. I wanted to automate these tasks that were irrelevant to the main features I was working on, but I didn't want to do it with SQL/DB scripts. I wanted to use the app's actual service endpoints to ensure important side effects are triggered, and I didn't brute force my way through the app via DB manipulation which can risk missing out on bugs or introducing unusual data into the app.
When searching for solutions, I found Postman Flows (https://learning.postman.com/docs/postman-flows/gs/flows-ove...) which I thought was a pretty solid tool. However, I wanted more control to validate and process data moving in between endpoint calls, plus I wanted something I could easily run from the CLI without needing to open and configure a full GUI application.
Hence, I wrote Chainflow, which is functionally similar to Postman Flows; it helps create and organize sets of API endpoint calls in a series (what I refer to as "API call workflows" or "chainflows" in the library) while helping data flow between the inputs and outputs of different endpoints, except that things are done in code so us engineers have more freedom when working with it. I try to keep Chainflow as ergonomic as developer tools should be, so I focus on composability where common building blocks (e.g., login APIs) can be reused between endpoints and more complex processes can be flexibly built up from simpler ones.
I'm still writing my own scripts with Chainflow, so I'm learning and making adjustments as I go. I'm incredibly excited by this first project of mine, so if you decide to try Chainflow out, I would love to hear what you like about it, what doesn't make sense, or what could be better.
I've written guides on https://edwinlzs.github.io/chainflow-docs/ to help anyone trying Chainflow out. I appreciate you reading this post, and I hope to hear any thoughts and advice you may have!