Skip to content

Commit 1ffb06d

Browse files
authored
docs: revamp all documentation for v1 (#270)
1 parent 92d8cb4 commit 1ffb06d

27 files changed

+2559
-1290
lines changed

.github/FUNDING.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
github: jahvon

README.md

Lines changed: 85 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,95 @@
11
<p align="center"><a href="https://flowexec.io"><img src="docs/_media/logo.png" alt="flow" width="200"/></a></p>
22

3-
<br>
4-
53
<p align="center">
64
<a href="https://img.shields.io/github/v/release/flowexec/flow"><img src="https://img.shields.io/github/v/release/flowexec/flow" alt="GitHub release"></a>
75
<a href="https://pkg.go.dev/github.com/flowexec/flow"><img src="https://pkg.go.dev/badge/github.com/flowexec/flow.svg" alt="Go Reference"></a>
6+
<a href="https://discord.gg/CtByNKNMxM"><img src="https://img.shields.io/badge/discord-join%20community-7289da?logo=discord&logoColor=white" alt="Join Discord"></a>
7+
<a href="https://github.com/flowexec/flow"><img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/flowexec/flow"></a>
88
</p>
99

1010
<p align="center">
11-
<b>flow</b> is a customizable and interactive CLI automation tool designed to streamline how you manage and run local
12-
development and operations workflows. It uses executable YAML configurations, organized across workspaces and namespaces,
13-
for tasks like running scripts, transforming APIs, or generating file systems from templates. <i>Charming</i>, interactive TUI included!
11+
<b>flow</b> is your personal workflow hub - organize automation across all your projects with built-in secrets, templates, and cross-project composition.
12+
Define workflows in YAML, discover them visually, and run them anywhere.
1413
</p>
1514

16-
<p align="center"><b>Learn more at <a href="https://flowexec.io">flowexec.io</a></b></p>
15+
---
16+
17+
## Quick Start
18+
19+
```bash
20+
# Install
21+
curl -sSL https://raw.githubusercontent.com/flowexec/flow/main/scripts/install.sh | bash
22+
23+
# Create your first workflow
24+
flow workspace add my-project . --set
25+
echo 'executables:
26+
- verb: run
27+
name: hello
28+
exec:
29+
cmd: echo "Hello from flow!"' > hello.flow
30+
31+
# Run it
32+
flow sync
33+
flow run hello
34+
```
35+
36+
## Key Features
37+
38+
flow complements existing CLI tools by adding multi-project organization, built-in security, and visual discovery to your automation toolkit.
39+
40+
- **Workspace organization** - Group and manage workflows across multiple projects
41+
- **Encrypted secret vaults** - Multiple backends (AES, Age, external tools)
42+
- **Interactive discovery** - Browse, search, and filter workflows visually
43+
- **Flexible execution** - Serial, parallel, conditional, and interactive workflows
44+
- **Workflow generation** - Create projects and workflows from reusable templates
45+
- **Composable workflows** - Reference and chain workflows within and across projects
46+
47+
<p align="center"><img src="docs/_media/demo.gif" alt="flow" width="1600"/></p>
48+
49+
## Example Workflows
50+
51+
```yaml
52+
# api.flow
53+
executables:
54+
- verb: deploy
55+
name: staging
56+
serial:
57+
execs:
58+
- cmd: npm run build
59+
- cmd: docker build -t api:staging .
60+
- ref: shared-tools/k8s:deploy-staging
61+
- cmd: curl -f https://api-staging.example.com/health
62+
63+
- verb: backup
64+
name: database
65+
exec:
66+
params:
67+
- secretRef: database-url
68+
envKey: DATABASE_URL
69+
cmd: pg_dump $DATABASE_URL > backup-$(date +%Y%m%d).sql
70+
```
71+
72+
```bash
73+
# Run workflows
74+
flow deploy staging
75+
flow backup database
76+
77+
# Visual discovery
78+
flow browse
79+
```
80+
81+
## Documentation
82+
83+
**Complete documentation at [flowexec.io](https://flowexec.io)**
84+
85+
- [Installation](https://flowexec.io/#/installation) - Multiple installation methods
86+
- [Quick Start](https://flowexec.io/#/quickstart) - Get up and running in 5 minutes
87+
- [Core Concepts](https://flowexec.io/#/guide/concepts) - Understand workspaces, executables, and vaults
88+
- [User Guides](https://flowexec.io/#/guide/README) - Comprehensive guides for all features
89+
90+
## Community
91+
92+
- [Discord Community](https://discord.gg/CtByNKNMxM) - Get help and share workflows
93+
- [Issue Tracker](https://github.com/flowexec/flow/issues) - Report bugs and request features
94+
- [Examples Repository](https://github.com/flowexec/examples) - Real-world workflow patterns
95+
- [Contributing Guide](https://flowexec.io/#/development) - Help make flow better

docs/README.md

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,34 @@
33
<p align="center">
44
<a href="https://img.shields.io/github/v/release/flowexec/flow"><img src="https://img.shields.io/github/v/release/flowexec/flow" alt="GitHub release"></a>
55
<a href="https://pkg.go.dev/github.com/flowexec/flow"><img src="https://pkg.go.dev/badge/github.com/flowexec/flow.svg" alt="Go Reference"></a>
6+
<a href="https://discord.gg/CtByNKNMxM"><img src="https://img.shields.io/badge/discord-join%20community-7289da?logo=discord&logoColor=white" alt="Join Discord"></a>
7+
<a href="https://github.com/flowexec/flow"><img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/flowexec/flow"></a>
68
</p>
79

8-
flow is a customizable and interactive CLI tool designed to streamline how you manage and run local development and
9-
operations workflows.
10+
flow is your personal **workflow hub** - organize automation across all your projects with built-in secrets, templates,
11+
and cross-project composition. Go beyond task running to workflow management that scales with your development ecosystem.
1012

11-
**This project is currently in beta and documentation is a work in progress.** Contributions and feedback are welcome.
13+
#### _Why flow?_ <!-- {docsify-ignore} -->
1214

13-
#### _Features_ <!-- {docsify-ignore} -->
15+
- **Unified automation hub**: Organize workflows across all your projects in one place
16+
- **Built-in security**: Encrypted vaults keep your secrets safe and shareable
17+
- **Cross-project power**: Reference workflows from other projects and share common tools
18+
- **Template-driven**: Generate new projects and workflows from reusable templates
19+
- **Visual discovery**: Browse and search workflows across your entire development ecosystem
1420

15-
- **Task Runner**: Easily define, manage, and run your tasks (called [executables](guide/executable.md)) from the command line.
16-
- **Secret Vault**: Store sensitive secrets in a secure local [vault](guide/secret.md#vault-setup).
17-
- **Template Generator**: Generate executables and workspace scaffolding with [flow file templates](guide/templating.md).
18-
- **TUI Library**: Explore and run executables from the interactive and searchable TUI [library](cli/flow_browse.md).
19-
- **Executable Organizer**: Group, reference, and search for executables by workspace, namespace, verbs, and tags.
20-
- **Input Handler**: Pass values into executables with environment variables defined by secrets, command-line args, or interactive prompts.
21-
- **Customizable TUI**: Personalize your [TUI experience](guide/interactive.md) with settings for log formatting, log archiving, and execution notifications, and more.
21+
#### _Core Capabilities_ <!-- {docsify-ignore} -->
22+
23+
- **Workflow Management**: Define, organize, and run workflows across multiple projects
24+
- **Secure Secret Storage**: Built-in encrypted vaults with multiple backend options
25+
- **Project Generation**: Create new projects and workflows from customizable templates
26+
- **Cross-Project Composition**: Reference and share workflows between different projects
27+
- **Visual Workflow Browser**: Discover and run workflows with powerful filtering and search
28+
- **Flexible Configuration**: YAML-based definitions with arguments, secrets, and conditional logic
29+
30+
**Ready to organize your automation?**[Install flow](installation.md)[Quick start guide](quickstart.md)
2231

2332
---
2433

2534
<p align="center"><img src="_media/demo.gif" width="1600"></p>
2635

36+
Browse examples in the [examples repo](https://github.com/flowexec/examples) and [flow project](https://github.com/flowexec/flow/tree/main/.execs)

docs/_coverpage.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
<img src="_media/icon.png" alt="flow"/>
22

3-
# flow <small>beta</small>
3+
# flow
44

55
> _Interactive CLI automation that flows with you._
66
77
- Define your _executables_ in YAML
8-
- Run and manage them from the TUI
8+
- Browse and execute with ease
99

1010
[GitHub](https://github.com/flowexec/flow)
1111
[Get Started](README.md)

docs/_sidebar.md

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,6 @@
1-
- [Home](README.md "flow documentation")
21
- [Install](installation.md "Installation guide")
3-
4-
- Getting Started
5-
- [Quick start](quickstart.md "Quick start guide")
6-
- [Workspaces](guide/workspace.md "Managing workspaces")
7-
- [Executables](guide/executable.md "Managing executables")
8-
- [Secrets vault](guide/secret.md "Using the secrets vault")
9-
10-
- Advanced Features
11-
- [Templating](guide/templating.md "Using flowfile templates")
12-
- [Managing state](guide/state.md "Managing executable state")
13-
- [Conditional execution](guide/conditional.md "Conditional execution")
14-
- [Customizing the TUI](guide/interactive.md "Customizing the interactive UI")
15-
- [Integrations](guide/integrations.md "Integration")
16-
17-
- Reference
18-
19-
- [CLI Commands](cli/README.md "Command line interface reference")
20-
- [Configuration Files](types/README.md "Configuration file reference")
21-
2+
- [Quick Start](quickstart.md "Quick start guide")
3+
- [User Guides](guide/README.md "Complete guides for mastering flow automation")
4+
- [CLI Reference](cli/README.md "Command line interface reference")
5+
- [Configuration Reference](types/README.md "YAML configuration file reference")
226
- [Contributing](development.md "Development guide")

docs/cli/_sidebar.md

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
1-
- [Home](../README.md "flow documentation")
2-
- [Install](../installation.md "Installation guide")
3-
- [Quick Start](../quickstart.md "Quick start guide")
1+
- [← Back to Home](../README.md "flow documentation")
42

5-
- Reference
6-
- [CLI commands](README.md "Command line interface reference")
3+
- CLI Reference
4+
- [flow](README.md "Command line interface reference")
75
- [flow exec](flow_exec.md)
8-
- [flow library](flow_library.md)
6+
- [flow browse](flow_browse.md)
97
- [flow template](flow_template.md)
108
- [flow config](flow_config.md)
119
- [flow workspace](flow_workspace.md)
1210
- [flow secret](flow_secret.md)
11+
- [flow vault](flow_vault.md)
1312
- [flow sync](flow_sync.md)
1413
- [flow logs](flow_logs.md)
15-
- [Configuration files](../types/README.md "Configuration file reference")

docs/development.md

Lines changed: 100 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,135 @@
1-
# flow Development
1+
# Contributing to flow
22

33
[![Go Report Card](https://goreportcard.com/badge/github.com/flowexec/flow)](https://goreportcard.com/report/github.com/flowexec/flow)
44
[![Go Reference](https://pkg.go.dev/badge/github.com/flowexec/flow.svg)](https://pkg.go.dev/github.com/flowexec/flow)
5-
[![GitHub branch status](https://img.shields.io/github/checks-status/flowexec/flow/main)](https://github.com/flowexec/flow/actions?query=branch%3Amain)
5+
[![GitHub branch check runs](https://img.shields.io/github/check-runs/flowexec/flow/main)](https://github.com/flowexec/flow/actions?query=branch%3Amain)
66
[![Codecov](https://img.shields.io/codecov/c/github/flowexec/flow)](https://app.codecov.io/gh/flowexec/flow)
77

8-
Before getting started, please read the [Code of Conduct](../.github/CODE_OF_CONDUCT.md) and [Contributing Guidelines](../.github/CONTRIBUTING.md).
8+
This document provides an overview of how to contribute to the flow project, including setting up your development environment, understanding the project structure, and running tests.
99

10-
flow is written in [Go](https://golang.org/). See the [go.mod](../go.mod) file for the current Go version used in
11-
building the project.
10+
Before getting started, please read our [Code of Conduct](https://github.com/flowexec/flow/blob/main/.github/CODE_OF_CONDUCT.md) and [Contributing Guidelines](https://github.com/flowexec/flow/blob/main/.github/CONTRIBUTING.md).
1211

13-
## Getting Started
12+
**Ways to Contribute**
1413

15-
Before developing on this project, you will need to make sure you have the latest `flow` version installed.
16-
Refer to the [Installation](installation.md) section for more information.
14+
- **Report bugs** - [Open an issue](https://github.com/flowexec/flow/issues/new) with reproduction steps
15+
- **Suggest features** - Share ideas for new functionality
16+
- **Improve documentation** - Fix typos, add examples, or clarify explanations
17+
- **Write code** - Fix bugs, implement features, or optimize performance
18+
- **Share examples** - Contribute to the [examples repository](https://github.com/flowexec/examples)
1719

18-
After cloning the repository, you can start using the below commands after registering the repo workspace:
20+
## Quick Start
21+
22+
**Prerequisites**
23+
24+
- **Go** - See [go.mod](https://github.com/flowexec/flow/blob/main/go.mod) for the required version
25+
- **flow CLI** - Install the [latest version](installation.md) before developing
1926

2027
```sh
21-
flow workspace create flow <repo-path>
28+
# Clone and set up the repository
29+
git clone https://github.com/flowexec/flow.git
30+
cd flow
31+
32+
# Register the repo as a flow workspace
33+
flow workspace add flow . --set
34+
35+
# Install development dependencies
36+
flow install tools
37+
38+
# Verify everything works
39+
flow validate
2240
```
2341

24-
### Development Executables
42+
## Development Executables
2543

26-
The `flow` project contains a few development executables that can be run locally. After registering the repo
27-
workspace, you can run the following commands:
44+
The flow project uses flow itself for development! Here are the key commands:
2845

2946
```sh
30-
# Install Go tool dependencies
31-
flow install tools
32-
3347
# Build the CLI binary
34-
flow build binary <output-path>
48+
flow build binary ./bin/flow
3549

36-
# Validate code changes (runs tests, linters, codegen, etc)
50+
# Run all validation (tests, linting, code generation)
3751
flow validate
3852

39-
# Only generate code
40-
flow generate
53+
# Run specific checks
54+
flow test all # All tests
55+
flow generate # Code generation
56+
flow run lint # Linting only
4157

42-
# Only run tests
43-
flow test all
58+
# Install/update Go tools
59+
flow install tools
4460
```
4561

46-
### Working with generated types
62+
## Project Structure
4763

48-
The `flow` project uses [go-jsonschema](github.com/atombender/go-jsonschema) with [go generate](https://blog.golang.org/generate)
49-
to generate Go types from JSON schema files (defined in YAML). If you need to make changes to the generated types
50-
(found in the `types` package), you should update the associated `*schema.yaml` file and run the flow `run generate` executable
51-
or go generate directly.
64+
```
65+
flow/
66+
├── .execs/ # Development workflows
67+
├── cmd/ # CLI entry point
68+
├── docs/ # Documentation
69+
├── internal/ # Core application logic
70+
│ ├── cache/ # Executable and workspace caching logic
71+
│ ├── context/ # Global application context
72+
│ ├── io/ # Terminal user interface and I/O
73+
│ ├── runner/ # Executable execution engine
74+
│ ├── services/ # Business logic services
75+
│ ├── templates/ # Templating system for workflows
76+
│ └── vault/ # Secret management
77+
├── tests/ # CLI end-to-end test suite
78+
└── types/ # Generated types from schemas
79+
```
5280

53-
Note that go generate alone does not update generated documentation.
54-
Be sure to regenerate the JSON schema files and markdown documentation before submitting a PR.
81+
_Some directories are omitted for brevity._
5582

56-
### Working with tuikit
83+
## Working with Generated Code
5784

58-
The `flow` project uses the [tuikit](tuikit.md) framework for building the terminal UI.
59-
Contributions to the components and helpers in `tuikit` are welcome.
85+
flow uses code generation extensively:
86+
87+
### Go CLI Type Generation <!-- {docsify-ignore} -->
88+
89+
Types are generated from YAML schemas using [go-jsonschema](https://github.com/atombender/go-jsonschema):
6090

61-
_You should test all tuikit changes with a local flow build before submitting a PR._
62-
6391
```sh
64-
go mod edit -replace github.com/flowexec/tuikit=../tuikit
92+
# Regenerate types after schema changes
93+
flow generate cli
94+
```
95+
96+
**Important**: When modifying types, edit the `schemas/*.yaml` files, not the generated Go files in `types/`.
97+
98+
### Documentation Generation <!-- {docsify-ignore} -->
99+
100+
CLI and type documentation is generated automatically:
101+
102+
```sh
103+
# Updates both CLI docs and type reference docs
104+
flow generate docs
105+
```
106+
107+
## TUI Development
108+
109+
flow uses [tuikit](tuikit.md) for terminal interface development:
110+
111+
**Local Development**
112+
113+
```sh
114+
# Link to local tuikit for development
115+
go mod edit -replace github.com/flowexec/tuikit=../tuikit
116+
117+
# Test TUI changes
118+
flow build binary ./bin/flow-dev
119+
./bin/flow-dev browse
65120
```
66121

67122
## Development Tools
68123

69-
Required tools for development:
124+
### Required Tools <!-- {docsify-ignore} -->
125+
126+
These are installed automatically by `flow install tools`:
127+
128+
- [mockgen](https://github.com/uber-go/mock) - Generate test mocks
129+
- [golangci-lint](https://golangci-lint.run/) - Code linting
130+
- [go-jsonschema](https://github.com/atombender/go-jsonschema) - Generate Go types from YAML schemas
70131

71-
- [mockgen](https://github.com/uber-go/mock) for generating test mocks
72-
- [golangci-lint](https://golangci-lint.run/) for linting
132+
### Additional Tools <!-- {docsify-ignore} -->
73133

74-
Other tools used in the project:
75-
- [goreleaser](https://goreleaser.com/) for releasing the project
76-
- [ginkgo](https://onsi.github.io/ginkgo/) and [gomega](https://onsi.github.io/gomega/) for testing
134+
- [goreleaser](https://goreleaser.com/) - Release automation
135+
- [ginkgo](https://onsi.github.io/ginkgo/) - BDD testing framework

0 commit comments

Comments
 (0)