Git Product home page Git Product logo

flow's Introduction

Hi there!

flow's People

Contributors

dependabot[bot] avatar jahvon avatar

Stargazers

 avatar

Watchers

 avatar

flow's Issues

Parallel executable type

Enhancement Summary

Execute multiple executables in parallel go routines.

Feature list

  • Any executable type can be configured to run as parallel. Framework should be allow adding new executables with minimal to no setup.
  • CLI command grouped with / included in the start command (e.g. flow start ...)

Additional context

Config mockups

  - type: start/parallel # run executable sub type
    name: setupk8s
    description: open and initialize for Kubernetes development
    spec:
      open: dev:vscode
      run: k8s:initCluster
      start/sequence: run img:build, run img:push
      request: k8s:pollReady

Sequence executable type

Enhancement Summary

Run a list of executables in an ordered sequence.

Feature List

  • Any executable type can be configured to run in sequence. Framework should be allow adding new executables with minimal to no setup.
  • CLI command grouped with / included in the start command (e.g. flow start ...)

Additional context

Config mockups

 - type: start/sequence # start executable sub type
    name: randomResearchSession
    aliases:
      - rrs
    description: prepare desktop for a random research session
    spec:
      start/parallel: open apps:brave, open apps:obsidian
      request: learning:fetchResearchTopic
      run: learning:printResearchSessionGuide

Automatically install / check for workspace dependencies

Enhancement Summary

Allow configuring of workspace dependencies and provide an easy way to install them onto the machine / container.

Additional context

Would need to think through the different types of dependencies that would be expected here. Could range from a system binary -> application plugin.

Automatic workspace switching

Enhancement Summary

Flow workspace setting that will enable an auto workspace switching experience. The current flow workspace will be determined by the current working directory

Additional context

No response

Malformed executables shouldn't break anything

Bug Summary

When syncing fails, the executables from that file should just be ignored. All other executables should be sync'd / ran / listed. Warnings should just be thrown for bad execs

Additional context

No response

Pass arguments into executable

Enhancement Summary

Pass arguments from CLI / config into an executable. This would help with defining "templates" that are reusable

Additional context

No response

Better vault viewer

Enhancement Summary

Consider switching the the collection list view for the vault application views.
This can include running quick actions against vault data (edit, delete, create)

Additional context

No response

Run executables in a container

Enhancement Summary

Run any executable in a container on the machine.

Feature list

  • Pull and run base images
  • Execute flow executables inside of the local machine in the with base image
  • Mount container to local filesystem

Additional context

Capturing script errors

Bug Summary

The application exits when an executable fails. Instead, the application should capture the failure and log it (before exiting or erroring)

Additional context

Test with bash non-zero exits

Params can be passed into executable spec values

Enhancement Summary

Parameters can make executable definitions more dynamic. A param can be referenced with some format and expanded at runtime. This is especially valuable for fields like dir or uri

Additional context

Might not be doable / expected in all value types so the behavior and experience should make that clear.

Add tags and descriptions to workspaces

Enhancement Summary

Add optional tags and descriptions to workspace. List tags and descriptions when getting workspace and allow filtering by tags when listing workspaces.

Additional context

No response

Request executable type

Enhancement Summary

The ability to define REST API request in YAML.

Feature list

  • Accepts HTTP method (GET, POST, DELETE, etc)
  • Accepts request headers
  • Include parameter values in request headers
  • Accepts expected response type; validate response
  • Accepts expected status code
  • Configure pretty json output
  • Configure json -> table output
  • Filter / modify response with jq
  • Save response output to file

Additional context

Config mockups

  - type: request
    name: get-todo
    timeout: 5s
    spec:
      url: https://jsonplaceholder.typicode.com/todos/1
      method: GET
      headers:
        "Content-Type": "application/json"
        "Authorization": "secret:authorization_token"
      print: .title
      save:
        from: .title
        to: title.json

Collapse `type` exec definition field

Enhancement Summary

The type key is kind of unnecessary. An exec defined as:

  - verb: setup
    name: drive-mount
    tags:
      - linux
    description: Mount a drive on the local machine
    spec:
      type:
        exec:
          file: //scripts/mount-drive.sh

Can be simplified to

  - verb: setup
    name: drive-mount
    tags:
      - linux
    description: Mount a drive on the local machine
    spec:
      exec:
        file: //scripts/mount-drive.sh

Better yet, if spec can be dropped, that would simplify things even more

  - verb: setup
    name: drive-mount
    tags:
      - linux
    description: Mount a drive on the local machine
    exec:
      file: //scripts/mount-drive.sh

Additional context

Need to play around with yaml tags and structs

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.