Skip to content

Commit 39dfa72

Browse files
vsilentCopilot
andcommitted
docs: update all references with local pipe mode features
- CHANGELOG.md: add [Unreleased] section with all local mode additions - README.md: add pipe deploy, history, replay, and target commands - PIPING.md: update architecture diagram, templates vs instances, API table - DAG_PIPES_DEVELOPER_MANUAL.md: add local mode callout to guide overview - DAG_PIPES_PART2_WEB_EDITOR.md: note local mode CLI alternative - STACKER_YML_REFERENCE.md: document pipe mode implications of deploy.target Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent adb741e commit 39dfa72

File tree

6 files changed

+40
-3
lines changed

6 files changed

+40
-3
lines changed

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,18 @@ All notable changes to this project will be documented in this file.
44

55
## [Unreleased]
66

7+
### Added — Local Pipe Mode
8+
9+
- **`stacker target [local|cloud|server]`** — switch deployment target mode; persists in `.stacker/active-target`
10+
- **Local pipe creation**`stacker pipe create` works without a cloud deployment (`deployment_hash` is now optional, `is_local` flag on PipeInstance/PipeExecution)
11+
- **Local scanning**`stacker pipe scan` discovers containers via `docker ps` in local mode
12+
- **Local triggering**`stacker pipe trigger` executes via `docker exec` / HTTP against local containers
13+
- **`stacker pipe deploy <id> --deployment <hash>`** — promote a local pipe to a remote deployment (clones config to new remote instance)
14+
- **`GET /api/v1/pipes/instances/local`** — list local pipe instances for the authenticated user
15+
- **`POST /api/v1/pipes/instances/{id}/deploy`** — deploy (promote) local pipe to remote
16+
- **`stacker init --target local`** — initialize project in local mode directly
17+
- Database migration: `deployment_hash` nullable, `is_local BOOLEAN DEFAULT FALSE`, partial index on local instances
18+
719
## [0.2.7] — 2026-04-10
820

921
### Security — IDOR Hardening & Test Coverage

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,10 @@ The end-user tool. No server required for local deploys.
166166
| `stacker pipe activate <id>` | Activate a pipe (start listening for triggers) |
167167
| `stacker pipe deactivate <id>` | Pause an active pipe |
168168
| `stacker pipe trigger <id>` | One-shot pipe execution with optional input data |
169+
| `stacker pipe deploy <id>` | Promote a local pipe to a remote deployment |
170+
| `stacker pipe history <id>` | View execution history for a pipe |
171+
| `stacker pipe replay <exec-id>` | Re-run a previous pipe execution |
172+
| `stacker target [local\|cloud\|server]` | Switch deployment target mode (affects all pipe commands) |
169173
| `stacker submit` | Package current stack and submit to marketplace for review |
170174
| `stacker marketplace status` | Check submission status for your marketplace templates |
171175
| `stacker marketplace logs <name>` | Show review comments and history for a submission |

docs/DAG_PIPES_DEVELOPER_MANUAL.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,12 @@ Build and run data pipelines that connect your deployed services. Route contact
66

77
| Part | For | What you'll learn |
88
|------|-----|------------------|
9-
| **[Part 1: CLI Guide](./DAG_PIPES_PART1_CLI_GUIDE.md)** | Getting started | Create and run pipes using `stacker pipe` commands |
9+
| **[Part 1: CLI Guide](./DAG_PIPES_PART1_CLI_GUIDE.md)** | Getting started | Create and run pipes using `stacker pipe` commands (includes local mode) |
1010
| **[Part 2: Visual Editor](./DAG_PIPES_PART2_WEB_EDITOR.md)** | Visual builders | Drag-and-drop pipeline builder in your browser |
1111
| **[Part 3: REST API Deep Dive](./DAG_PIPES_PART3_API_DEEP_DIVE.md)** | Automation & scripting | Full API reference, curl scripts, gRPC streaming |
1212

13+
> **💡 Local mode**: You can build and test pipes against local Docker containers without a cloud deployment. See the [Local Mode section in Part 1](./DAG_PIPES_PART1_CLI_GUIDE.md#local-mode-experimental) for setup and workflow.
14+
1315
## Examples in All Three Guides
1416

1517
Each guide walks through the same practical examples:

docs/DAG_PIPES_PART2_WEB_EDITOR.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,8 @@ Click **"Execute"** to run the pipeline with test data.
179179

180180
Demo mode is great for learning the interface. Sign in to actually run pipelines.
181181

182+
> **💡 Local mode (CLI)**: For local experimentation with _real_ execution, use `stacker target local` and the CLI pipe commands (see [Part 1: Local Mode](./DAG_PIPES_PART1_CLI_GUIDE.md#local-mode-experimental)). Local pipes can later be promoted to remote via `stacker pipe deploy`.
183+
182184
---
183185

184186
## What's Next?

docs/PIPING.md

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,16 @@ Data piping connects containerized apps in a deployment, routing data from one s
1212
| pipe create | | validate params | | curl endpoints |
1313
| pipe trigger | | store results | | capture samples |
1414
| pipe history | | persist history | | execute pipes |
15+
| pipe deploy | | promote local→ | | |
1516
+------------------+ +------------------+ +------------------+
17+
|
18+
| (local mode — no agent needed)
19+
v
20+
+------------------+
21+
| Local Docker |
22+
| docker ps |
23+
| docker exec |
24+
+------------------+
1625
```
1726

1827
**Three components work together:**
@@ -21,6 +30,8 @@ Data piping connects containerized apps in a deployment, routing data from one s
2130
2. **Server** (`/api/v1/pipes`) - REST API, validation, persistence
2231
3. **Agent** (status-panel) - runs on the deployment, probes containers, executes pipe triggers
2332

33+
> **Local mode**: When `stacker target local` is active, scan uses `docker ps` and trigger uses `docker exec` — no agent required. Pipes are stored with `is_local=true` and no `deployment_hash`.
34+
2435
## Quick Start
2536

2637
### 1. Scan for connectable endpoints
@@ -138,7 +149,9 @@ stacker pipe deactivate <pipe-id>
138149
### Templates vs Instances
139150

140151
- **Template** - reusable pipe definition: source app type, target app type, endpoint paths, field mapping. Can be shared publicly.
141-
- **Instance** - deployment-specific activation of a template: ties to a `deployment_hash`, tracks status, trigger counts, errors.
152+
- **Instance** - activation of a template tied to a deployment or local context:
153+
- **Remote instance** — bound to a `deployment_hash`, executed via the status agent on the cloud server.
154+
- **Local instance** — no `deployment_hash`, `is_local=true`, executed via `docker exec` against local containers. Created when `stacker target local` is active.
142155

143156
### Field Mapping
144157

@@ -257,10 +270,12 @@ All endpoints require authentication. Pipe instance access is verified through d
257270

258271
| Method | Path | Description |
259272
|--------|------|-------------|
260-
| POST | `/api/v1/pipes/instances` | Create instance |
273+
| POST | `/api/v1/pipes/instances` | Create instance (`deployment_hash` optional for local) |
261274
| GET | `/api/v1/pipes/instances/{deployment_hash}` | List instances for deployment |
275+
| GET | `/api/v1/pipes/instances/local` | List local instances for current user |
262276
| GET | `/api/v1/pipes/instances/detail/{id}` | Get instance |
263277
| PUT | `/api/v1/pipes/instances/{id}/status` | Update status (draft/active/paused/error) |
278+
| POST | `/api/v1/pipes/instances/{id}/deploy` | Promote local instance to remote deployment |
264279
| DELETE | `/api/v1/pipes/instances/{id}` | Delete instance |
265280

266281
### Executions

docs/STACKER_YML_REFERENCE.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -501,6 +501,8 @@ deploy:
501501
target: local
502502
```
503503

504+
> **Pipe mode**: The `deploy.target` value also affects how `stacker pipe` commands behave. When target is `local`, pipes are created without a `deployment_hash` and execute against local Docker containers (`docker exec`). Use `stacker target` to switch modes at runtime without editing `stacker.yml`. See the [DAG Pipes CLI Guide — Local Mode](./DAG_PIPES_PART1_CLI_GUIDE.md#local-mode-experimental) for details.
505+
504506
### `deploy.compose_file`
505507

506508
*Optional* · `string` (path) · Default: none

0 commit comments

Comments
 (0)