Skip to content

Commit 272aca0

Browse files
committed
docs: update presentation materials with first-class parameters feature
Update presentation content to highlight the recent UX improvements from v0.6.6 (PRs #448 and #449). Changes to PRESENTATION_OUTLINE.md: - Add new Section 5: Recent UX Improvements (3 min) - Showcase before/after examples of first-class parameters - Highlight 70% reduction in typing and elimination of JSON syntax errors - Add Q&A entry explaining the rationale for first-class parameters - Update section numbering (5→6, 6→7, etc.) - Update metrics: 225 comprehensive CLI tests (+217% coverage) - Update version references: v0.6.5 → v0.6.6 - Update Key Takeaways with clean UX point Changes to DEMO.md: - Add Section 11: First-Class Parameters demonstration - Show before/after examples for database creation - Include Cloud and Enterprise examples - Add note to highlight this feature during demo Changes to 03-demo-workflow.sh: - Add Feature 8: First-Class Parameters with live demonstration - Include dry-run example showing the new interface - Update Feature numbering (8→9 for Library Architecture) - Update Key Takeaways to include first-class parameters - Add test count (225 tests) to production-ready point These updates ensure the presentation showcases the significant UX improvements that make redisctl more accessible to the solution architect group while maintaining technical accuracy about recent development work.
1 parent 00609ea commit 272aca0

File tree

3 files changed

+161
-19
lines changed

3 files changed

+161
-19
lines changed

examples/presentation/03-demo-workflow.sh

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,31 @@ echo "$ redisctl api enterprise get /v1/cluster -q 'name'"
6565
redisctl api enterprise get /v1/cluster -q 'name'
6666
echo ""
6767

68-
# Feature 8: Library Usage Example
69-
echo "Feature 8: Library-First Architecture"
68+
# Feature 8: First-Class Parameters (NEW)
69+
echo "Feature 8: First-Class Parameters (NEW in v0.6.6)"
70+
echo "-------------------------------------------------"
71+
echo "Creating databases is now simple and intuitive:"
72+
echo ""
73+
echo "OLD WAY (requires JSON):"
74+
echo ' redisctl enterprise database create --data '"'"'{"name":"demo","memory_size":1073741824}'"'"
75+
echo ""
76+
echo "NEW WAY (clean CLI flags):"
77+
echo " redisctl enterprise database create --name demo --memory 1073741824"
78+
echo ""
79+
echo "Benefits:"
80+
echo " - 70% less typing for common operations"
81+
echo " - No JSON syntax errors"
82+
echo " - Tab completion works"
83+
echo " - Clear validation errors"
84+
echo " - Still supports --data for complex configs"
85+
echo ""
86+
echo "Example with dry-run:"
87+
echo "$ redisctl enterprise database create --name demo-simple --memory 1073741824 --replication --dry-run"
88+
redisctl enterprise database create --name demo-simple --memory 1073741824 --replication --dry-run -o json | jq -r 'if .error then "Error: " + .error else "Success! Database would be created with: " + .name end'
89+
echo ""
90+
91+
# Feature 9: Library Usage Example
92+
echo "Feature 9: Library-First Architecture"
7093
echo "-------------------------------------"
7194
echo "redisctl is built as reusable libraries:"
7295
echo ""
@@ -93,9 +116,10 @@ echo ""
93116
echo "Key Takeaways:"
94117
echo " 1. FIRST CLI tool for Redis Cloud and Enterprise"
95118
echo " 2. Eliminates fragile bash + curl + jq scripts"
96-
echo " 3. Type-safe, tested, production-ready"
97-
echo " 4. Library-first enables ecosystem growth"
98-
echo " 5. Cross-platform, secure, user-friendly"
119+
echo " 3. Clean UX with first-class parameters (NEW!)"
120+
echo " 4. Type-safe, tested, production-ready (225 tests)"
121+
echo " 5. Library-first enables ecosystem growth"
122+
echo " 6. Cross-platform, secure, user-friendly"
99123
echo ""
100124
echo "Questions?"
101125
echo ""

examples/presentation/DEMO.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,8 +154,42 @@ redisctl enterprise cluster stats -o json
154154

155155
---
156156

157+
## 11. First-Class Parameters (NEW Feature)
158+
159+
```bash
160+
# OLD WAY - JSON required (easy to mess up!)
161+
redisctl enterprise database create \
162+
--data '{"name":"demo","memory_size":1073741824,"replication":true}'
163+
164+
# NEW WAY - clean CLI flags
165+
redisctl enterprise database create \
166+
--name demo --memory 1073741824 --replication --dry-run
167+
168+
# Works for Cloud too
169+
redisctl cloud database create --subscription 123 \
170+
--name mydb --memory 5 --replication \
171+
--data-persistence aof --eviction-policy allkeys-lru
172+
173+
# Cloud subscription creation
174+
redisctl cloud subscription create \
175+
--name prod-subscription \
176+
--payment-method marketplace \
177+
--memory-storage ram-and-flash \
178+
--data @subscription.json # For complex nested config
179+
```
180+
181+
**Benefits:**
182+
- No JSON syntax errors
183+
- Clear parameter names
184+
- Built-in validation
185+
- Tab completion works!
186+
- Still supports `--data` for advanced configs
187+
188+
---
189+
157190
## Notes
158191
- Commands ready to copy/paste
159192
- Fill in real IDs during demo
160193
- Keep it moving - don't wait for long operations
161194
- Docker Compose shows complete working examples with all commands
195+
- Highlight the new first-class parameters - it's a major UX win!

examples/presentation/PRESENTATION_OUTLINE.md

Lines changed: 98 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,78 @@ ls -lh demo-package*.tar.gz
231231

232232
---
233233

234-
## 5. Advanced Features (3 min)
234+
## 5. Recent UX Improvements (3 min)
235+
236+
### First-Class Parameters (NEW in v0.6.6)
237+
238+
**The Problem with JSON strings:**
239+
- Easy to make syntax errors (missing quotes, commas, braces)
240+
- No tab completion
241+
- Hard to remember exact field names
242+
- Verbose for simple operations
243+
244+
**Before: Complex JSON Required**
245+
246+
```bash
247+
# Cloud database - the old way
248+
redisctl cloud database create --subscription 123 \
249+
--data '{"name":"mydb","memoryLimitInGb":1,"protocol":"redis","replication":true,"dataPersistence":"aof","dataEvictionPolicy":"volatile-lru"}'
250+
251+
# Enterprise database - the old way
252+
redisctl enterprise database create \
253+
--data '{"name":"prod-db","memory_size":2147483648,"replication":true,"persistence":"aof","eviction_policy":"volatile-lru"}'
254+
```
255+
256+
**After: Clean CLI Parameters**
257+
258+
```bash
259+
# Cloud database - the new way (70% less typing!)
260+
redisctl cloud database create --subscription 123 \
261+
--name mydb --memory 1 --replication \
262+
--data-persistence aof --eviction-policy volatile-lru
263+
264+
# Enterprise database - the new way
265+
redisctl enterprise database create \
266+
--name prod-db --memory 2147483648 --replication \
267+
--persistence aof --eviction-policy volatile-lru
268+
269+
# Cloud subscription with smart defaults
270+
redisctl cloud subscription create \
271+
--name prod-subscription \
272+
--payment-method marketplace \
273+
--memory-storage ram-and-flash \
274+
--data @subscription.json # Still supports complex nested config
275+
```
276+
277+
**Key Improvements:**
278+
-**70% less typing** for common operations
279+
-**No JSON syntax errors** - CLI validates parameters
280+
-**Tab completion** for parameter names
281+
-**Clear error messages** - "unknown flag --nmae" vs silent JSON typo
282+
-**Smart defaults** - protocol=redis, eviction-policy=volatile-lru
283+
-**Backwards compatible** - `--data` still works for advanced configs
284+
-**Parameter override** - Mix `--data` with flags for flexibility
285+
286+
**Live Demo:**
287+
```bash
288+
# Show help with all new parameters
289+
redisctl enterprise database create --help
290+
291+
# Create a simple database - no JSON needed!
292+
redisctl enterprise database create \
293+
--name demo-db \
294+
--memory 1073741824 \
295+
--replication \
296+
--dry-run
297+
298+
# Compare to the old way
299+
echo '{"name":"demo-db","memory_size":1073741824,"replication":true}' | \
300+
redisctl enterprise database create --data @- --dry-run
301+
```
302+
303+
---
304+
305+
## 6. Advanced Features (3 min)
235306

236307
### JMESPath Query Support
237308

@@ -288,7 +359,7 @@ redisctl enterprise license set --key "license-string"
288359

289360
---
290361

291-
## 6. rladmin Comparison (2 min)
362+
## 7. rladmin Comparison (2 min)
292363

293364
**Quick comparison:** (Show `RLADMIN_COMPARISON.md`)
294365

@@ -309,7 +380,7 @@ redisctl enterprise license set --key "license-string"
309380

310381
---
311382

312-
## 7. Library Architecture (2 min)
383+
## 8. Library Architecture (2 min)
313384

314385
**redisctl isn't just a CLI - it's a platform**
315386

@@ -356,26 +427,28 @@ let client = Client::from_profile(&profile)?;
356427

357428
---
358429

359-
## 8. Metrics & Status (1 min)
430+
## 9. Metrics & Status (1 min)
360431

361432
### Current State
362433

363434
-**50+ API handlers** (21 Cloud + 29 Enterprise)
435+
-**225 comprehensive CLI tests** (+217% coverage increase)
364436
-**85%+ test coverage** (production quality)
437+
-**First-class parameters** for common operations (NEW)
365438
-**4 crates published** to crates.io
366439
-**Cross-platform** (macOS, Linux, Windows)
367440
-**Docker images** on ghcr.io
368441
-**Homebrew tap** for easy installation
369442

370443
### Release Status
371444

372-
- **Current version:** v0.6.5
445+
- **Current version:** v0.6.6
373446
- **Automated releases:** GitHub Actions + cargo-dist
374447
- **Distribution:** crates.io, GitHub releases, Docker Hub, Homebrew
375448

376449
---
377450

378-
## 9. Demo Time (3 min)
451+
## 10. Demo Time (3 min)
379452

380453
**Run:** `examples/presentation/03-demo-workflow.sh`
381454

@@ -389,7 +462,7 @@ Showcases:
389462

390463
---
391464

392-
## 10. Roadmap & Future (2 min)
465+
## 11. Roadmap & Future (2 min)
393466

394467
### Near Term
395468
- Additional workflows (see issues #263-#268)
@@ -404,7 +477,7 @@ Showcases:
404477

405478
---
406479

407-
## 11. Call to Action (1 min)
480+
## 12. Call to Action (1 min)
408481

409482
### Try It
410483

@@ -455,7 +528,7 @@ redisctl --help
455528
- Keyring works on all platforms
456529

457530
**Q: How stable is it?**
458-
- v0.6.5, used in production
531+
- v0.6.6, used in production
459532
- 85%+ test coverage
460533
- Comprehensive wiremock tests
461534
- Breaking changes follow semver
@@ -472,14 +545,25 @@ redisctl --help
472545

473546
---
474547

548+
**Q: Why first-class parameters instead of just JSON?**
549+
- 70% reduction in typing for common operations
550+
- No JSON syntax errors (closing braces, quotes, commas)
551+
- Tab completion and shell history work better
552+
- Better error messages (typo in --name vs typo in JSON key)
553+
- Still supports --data for complex configs (backwards compatible)
554+
- Follows industry best practices (kubectl, gh, aws cli all use flags)
555+
556+
---
557+
475558
## Key Takeaways (Summary Slide)
476559

477560
1. **First CLI tool** for Redis Cloud and Enterprise
478561
2. **Eliminates fragile scripts** - One command vs 50 lines of bash
479-
3. **Four-layer architecture** - Raw API → Human-friendly → Workflows → Tools
480-
4. **Production ready** - 85%+ coverage, cross-platform, v0.6.5
481-
5. **Library-first** - Foundation for Redis Rust ecosystem
482-
6. **Automation-friendly** - JSON output, JMESPath, profiles
483-
7. **Support tools** - 30-second support packages vs 10+ minutes
562+
3. **Clean UX** - First-class parameters, no JSON required for common ops
563+
4. **Four-layer architecture** - Raw API → Human-friendly → Workflows → Tools
564+
5. **Production ready** - 225 tests, 85%+ coverage, cross-platform, v0.6.6
565+
6. **Library-first** - Foundation for Redis Rust ecosystem
566+
7. **Automation-friendly** - JSON output, JMESPath, profiles
567+
8. **Support tools** - 30-second support packages vs 10+ minutes
484568

485569
**redisctl: Making Redis operations scriptable, automatable, and enjoyable** 🚀

0 commit comments

Comments
 (0)