3 ms·
All great points, and just goes to show we need to be updating the website and docs more actively. So for starters here’s where we are: we're in week 7 of beta
by jayjohnson 12y ago
All great points, and just goes to show we need to be updating the website and docs more actively. So for starters here’s where we are: we're in week 7 of beta where the core focus is giving developers a free public sandbox for two hosted Endpoints + a single database per deployment all for free. We have two tools for using FlowStacks:
1) The Developer Dashboard (https://flowstacks.com/developer/ https://flowstacks.com/developer/) is for testing new code, managing all endpoints, deployments, database schema (coming this week), and account details from a browser.
2) The command line interface (https://github.com/FlowStacks/cli/blob/master/fs.py https://github.com/FlowStacks/cli/blob/master/fs.py) for full API capabilities, scripting, and the latest error handling. We are a command line shop, so we use this to find bugs, and it already reports things like bad JSON syntax, API Validation, Python syntax, Exceptions, and as many other silly errors that really annoyed us.
We’re still building the advanced deployment and database management into the website, but all of the tools are already working from the command line. We are also close to releasing a working Django webserver that uses any Endpoint-level API file (https://github.com/FlowStacks/hello-world/blob/master/api/workflow_api.json https://github.com/FlowStacks/hello-world/blob/master/api/wo...) for quickly mapping Javascript strings through Django into a working Job[1] hosted on any FlowStacks REST API. This factory style approach to building Jobs extends beyond Django, but since we’re a Python shop we went with it first. We planned on knocking out Rails next, but we are flexible.
Why FlowStacks? As developers, we wanted to have a Job hosted on a REST API where the API Inputs/Outputs can be Job-specific, and we did not care where the Job executed. For us, this API standardization has made us able to quickly build our own dashboard using and testing FlowStacks Jobs like any developer. We want the Dashboard arming developers just like .Net for debugging where streamlined testing drives features out faster, and it has to be simple to use (no Jenkins/Travis it’s all JSON black box testing similar to Postman). We built the command line interface for handling build regressions and showing how to use the FlowStacks User API and REST APIs from the command line. We also built the cli and dashboard for deploying your own GitHub repository into a REST API where your Job code defines the hosted API(dashboard build is coming this week). Jobs are easy to write. There’s only three parts to a Job: inputs[2], outputs[3], and tasks to perform (states)[4]. This allowed us to build some of the first Jobs like our Twitter Poster Job[5] because we did not want to login to Twitter. We also include Redis integration for any Jobs[6] out of the box already, and we use redis extensively for caching and publisher/subscribe patterns.
Our data policy is very open based off feedback we hear. Right now, we use Python’s ORM SQLAlchemy for any schema integration into your REST API’s database instance (https://github.com/FlowStacks/hello-world/blob/master/schema/demo_database_schema.py https://github.com/FlowStacks/hello-world/blob/master/schema...) and Jobs can also use your new/legacy database(s) outside of FlowStacks. We just need a network connection. Here’s our example included in the Hello World for setting up a REST API Job to establish a connection to any database outside of FlowStacks:
https://github.com/FlowStacks/hello-world/blob/master/src/ra_db_flowstacks_create_new_record.py#L80-L91 https://github.com/FlowStacks/hello-world/blob/master/src/ra...
Post Beta we plan on launching the on premise offering for Enterprise solution development and deployments on site. We can support these if needed, but for now we have it as a lower priority for us just trying to build a larger developer audience. Lastly, we are looking to build something with this, and we always want to hear some more great feedback like above.
Email me and let’s set a time to discuss this.
Cheers,
Jay
More References:
1 – API Job fields:
https://github.com/FlowStacks/hello-world/blob/master/api/workflow_api.json#L111 https://github.com/FlowStacks/hello-world/blob/master/api/wo...
https://github.com/FlowStacks/hello-world/blob/master/api/workflow_api.json#L84 https://github.com/FlowStacks/hello-world/blob/master/api/wo...
2 – Example Job Inputs:
https://github.com/FlowStacks/hello-world/blob/master/src/ra_send_email_template_to_user.py#L14-L21 https://github.com/FlowStacks/hello-world/blob/master/src/ra...
3 – Outputs:
https://github.com/FlowStacks/hello-world/blob/master/src/ra_send_email_template_to_user.py#L23-L24 https://github.com/FlowStacks/hello-world/blob/master/src/ra...
4 – Example Job Tasks to Perform (States)
https://github.com/FlowStacks/hello-world/blob/master/src/ra_db_flowstacks_create_new_record.py#L209-L225 https://github.com/FlowStacks/hello-world/blob/master/src/ra...
5 – Sample Twitter Job:
https://github.com/FlowStacks/social-workflow/blob/master/src/ra_post_to_twitter.py https://github.com/FlowStacks/social-workflow/blob/master/sr...
6 – Redis Job Integration
https://github.com/FlowStacks/hello-world/blob/master/src/ra_store_simple_user_value.py#L57-L62 https://github.com/FlowStacks/hello-world/blob/master/src/ra...
7 – Postman
https://news.ycombinator.com/item?id=7615365 https://news.ycombinator.com/item?id=7615365