forked from pinkycollie/pinkflow
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathIDE
More file actions
429 lines (309 loc) Β· 8.42 KB
/
Copy pathIDE
File metadata and controls
429 lines (309 loc) Β· 8.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
# π― PinkFlow CLI/IDE Overview
A modern, simple command-line interface and integrated development environment for the PinkFlow Workflow System. Build, test, and deploy workflows with ease.
## π¦ Installation
```bash
# Install PinkFlow CLI
pip install pinkflow-cli
# Verify installation
pinkflow --version
# Initialize a new project
pinkflow init my-workflow-project
cd my-workflow-project
```
## π Quick Start with CLI
### Create a New Workflow
```bash
# Create a new workflow interactively
pinkflow create workflow my-first-workflow
# Or use a template
pinkflow create workflow --template cicd my-cicd-pipeline
```
### Build and Validate
```bash
# Validate workflow syntax
pinkflow validate my-workflow.py
# Build workflow
pinkflow build my-workflow.py
# Dry run (simulate execution)
pinkflow run my-workflow.py --dry-run
```
### Execute Workflows
```bash
# Execute in development environment
pinkflow run my-workflow.py --env development
# Execute with custom context
pinkflow run my-workflow.py --context '{"user": "admin", "priority": "high"}'
# Watch mode (auto-reload on changes)
pinkflow run my-workflow.py --watch
```
## π» IDE Features
### Visual Workflow Editor
```bash
# Launch visual editor
pinkflow editor
# Open specific workflow
pinkflow editor my-workflow.py
```
The visual editor provides:
- π¨ Drag-and-drop node creation
- π Visual connection builder
- π Real-time execution visualization
- π Interactive debugging
- π IntelliSense and code completion
### Interactive Shell
```bash
# Start interactive shell
pinkflow shell
# In the shell:
>>> workflow = load_workflow('my-workflow.py')
>>> workflow.validate()
>>> result = workflow.execute()
>>> print(result)
```
## π οΈ CLI Commands Reference
### Project Management
```bash
# Initialize new project
pinkflow init [project-name] [--template TEMPLATE]
# List all workflows in project
pinkflow list
# Show workflow details
pinkflow info my-workflow.py
# Generate documentation
pinkflow docs --output ./docs
```
### Workflow Operations
```bash
# Create new workflow
pinkflow create workflow NAME [--template TEMPLATE]
# Validate workflow
pinkflow validate WORKFLOW [--strict]
# Test workflow
pinkflow test WORKFLOW [--coverage]
# Execute workflow
pinkflow run WORKFLOW [--env ENV] [--context JSON]
# Export workflow
pinkflow export WORKFLOW --format [json|yaml|graphviz]
```
### Environment Management
```bash
# List environments
pinkflow env list
# Create environment
pinkflow env create NAME --config CONFIG_FILE
# Switch environment
pinkflow env use NAME
# Show current environment
pinkflow env current
```
### Monitoring & Debugging
```bash
# Show execution history
pinkflow history [WORKFLOW_ID]
# Get execution statistics
pinkflow stats [--workflow WORKFLOW_ID]
# Debug workflow
pinkflow debug WORKFLOW [--breakpoint NODE_ID]
# Watch logs
pinkflow logs [--follow] [--workflow WORKFLOW_ID]
```
## π¨ IDE Configuration
### Create .pinkflow.yaml
```yaml
project:
name: my-workflow-project
version: 1.0.0
editor:
theme: dark
auto_save: true
show_minimap: true
execution:
default_env: development
max_iterations: 1000
timeout: 300
environments:
development:
auto_rollback: true
max_iterations: 100
staging:
auto_rollback: true
max_iterations: 500
production:
auto_rollback: false
max_iterations: 2000
integrations:
deafauth:
enabled: true
endpoint: https://auth.pinkflow.io
pinksync:
enabled: true
websocket: wss://sync.pinkflow.io
```
## π IDE Extensions
### Install Extensions
```bash
# List available extensions
pinkflow extensions list
# Install extension
pinkflow extensions install git-integration
pinkflow extensions install ai-autocomplete
pinkflow extensions install workflow-linter
# Enable extension
pinkflow extensions enable git-integration
```
### Available Extensions
- **git-integration**: Version control integration
- **ai-autocomplete**: AI-powered code completion
- **workflow-linter**: Advanced workflow validation
- **visual-debugger**: Step-through debugging
- **performance-profiler**: Execution profiling
- **slack-notifier**: Workflow notifications
## π Workflow Templates
### Built-in Templates
```bash
# List available templates
pinkflow templates list
# Use a template
pinkflow create workflow my-etl --template etl
pinkflow create workflow my-api --template api-pipeline
pinkflow create workflow my-deploy --template deployment
```
### Template Categories
- **cicd**: CI/CD pipeline with testing and deployment
- **etl**: Extract, Transform, Load data pipeline
- **api-pipeline**: API request orchestration
- **deployment**: Multi-environment deployment
- **data-processing**: Batch data processing
- **approval**: Multi-stage approval workflow
- **monitoring**: Health check and alerting
## π Example: Complete Workflow Development
### Step 1: Create Project
```bash
# Initialize project
pinkflow init my-deployment-system
cd my-deployment-system
# Create workflow from template
pinkflow create workflow deploy --template deployment
```
### Step 2: Edit in IDE
```bash
# Open in visual editor
pinkflow editor deploy.py
```
### Step 3: Validate and Test
```bash
# Validate syntax
pinkflow validate deploy.py
# Run tests
pinkflow test deploy.py --coverage
# Dry run
pinkflow run deploy.py --dry-run --env staging
```
### Step 4: Execute
```bash
# Execute in staging
pinkflow run deploy.py --env staging
# Monitor execution
pinkflow logs --follow --workflow deploy
# Check results
pinkflow history deploy
```
## π Advanced IDE Features
### Hot Reload
```bash
# Enable hot reload during development
pinkflow run my-workflow.py --watch --reload
```
### Multi-Workflow Execution
```bash
# Execute multiple workflows
pinkflow run workflow1.py workflow2.py workflow3.py --parallel
# Chain workflows
pinkflow chain workflow1.py workflow2.py workflow3.py
```
### Workflow Composition
```python
# In IDE, compose workflows
from pinkflow.cli import WorkflowComposer
composer = WorkflowComposer()
composed = composer.compose([
'data-ingestion.py',
'data-processing.py',
'data-export.py'
])
composed.execute()
```
## π Performance Monitoring
### Real-time Dashboard
```bash
# Launch performance dashboard
pinkflow dashboard
# Monitor specific workflow
pinkflow dashboard --workflow deploy
```
### Generate Reports
```bash
# Generate execution report
pinkflow report --workflow deploy --format html
# Export metrics
pinkflow metrics export --format csv --output metrics.csv
```
## π Security Features
### Workflow Signing
```bash
# Sign workflow
pinkflow sign my-workflow.py --key ~/.pinkflow/key.pem
# Verify signature
pinkflow verify my-workflow.py
```
### Secret Management
```bash
# Add secret
pinkflow secrets add API_KEY --value "secret-value"
# List secrets
pinkflow secrets list
# Use in workflow
pinkflow run my-workflow.py --secrets-from-vault
```
## π Remote Execution
### Deploy to Remote Environment
```bash
# Configure remote
pinkflow remote add production https://prod.pinkflow.io
# Deploy workflow
pinkflow deploy my-workflow.py --remote production
# Execute remotely
pinkflow remote exec production my-workflow.py
```
## π― Best Practices
- **Use version control**: Always commit workflows to git
- **Test thoroughly**: Run tests before deploying to production
- **Use templates**: Start with proven templates for common patterns
- **Monitor executions**: Set up dashboards for production workflows
- **Document workflows**: Use inline comments and generate docs
- **Leverage extensions**: Install extensions for enhanced productivity
- **Use hot reload**: Enable watch mode during development
- **Secure secrets**: Never hardcode credentials in workflows
## π CLI Help
```bash
# Get help for any command
pinkflow --help
pinkflow run --help
pinkflow create --help
# Show version and system info
pinkflow version --verbose
# Check for updates
pinkflow update check
pinkflow update install
```
## π Getting Started Checklist
- [ ] Install PinkFlow CLI: `pip install pinkflow-cli`
- [ ] Initialize project: `pinkflow init my-project`
- [ ] Create first workflow: `pinkflow create workflow hello`
- [ ] Open in IDE: `pinkflow editor hello.py`
- [ ] Validate workflow: `pinkflow validate hello.py`
- [ ] Run workflow: `pinkflow run hello.py`
- [ ] Check execution history: `pinkflow history`
- [ ] Explore templates: `pinkflow templates list`
- [ ] Install extensions: `pinkflow extensions install ai-autocomplete`
- [ ] Launch dashboard: `pinkflow dashboard`