Skip to content

Commit a911615

Browse files
docs: convert jq examples to JMESPath queries (#515)
* docs: convert jq examples to JMESPath queries Replace piped jq commands with redisctl's built-in -q/--query flag and --raw option throughout documentation. This demonstrates redisctl's native query capabilities and reduces external dependencies. Conversions include: - Field extraction: | jq '.field' → -q 'field' - Array iteration: | jq -r '.[]' → -q '[]' --raw - Filtering: | jq '.[] | select(.x=="y")' → -q '[?x==`y`]' - Projections: | jq '{a,b}' → -q '{a: a, b: b}' jq is intentionally retained for: - CSV output formatting (@csv) - Complex aggregations (group_by, add) - Arithmetic operations (division, percentages) - String manipulation (split, interpolation) - JSON schema validation Closes #514 * docs: use JMESPath extensions for remaining jq conversions Leverage redisctl's extended JMESPath functions to convert additional jq examples that require advanced features: - group_by() for grouping arrays by field value - divide()/multiply() for arithmetic operations - sprintf() for formatted string output - has() for key existence checks - join() for array-to-string conversion Remaining jq usage is limited to: - @csv output formatting (no JMESPath equivalent) - Pretty-printing raw JSON (jq .)
1 parent dcbaf12 commit a911615

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+315
-297
lines changed

docs/src/api-reference/api.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -364,8 +364,9 @@ redisctl api cloud put /subscriptions/123/databases/456 --data '{
364364

365365
### Success Response
366366
```bash
367-
# Pretty print JSON
367+
# Pretty print JSON (jq for formatting, or use -o json which is already formatted)
368368
redisctl api cloud get /subscriptions -o json | jq .
369+
redisctl api cloud get /subscriptions -o json # Already pretty-printed
369370

370371
# Extract specific fields
371372
redisctl api cloud get /subscriptions -q "[].{id: id, name: name}"

docs/src/cloud/access-control/acl.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,12 @@ redisctl cloud acl update-acl-user <subscription_id> <user_id> --data '{"passwor
6565
redisctl cloud acl delete-acl-user <subscription_id> <user_id>
6666
```
6767

68-
## JSON Output
68+
## JMESPath Queries
6969

70-
All commands support `-o json` for structured output:
70+
All commands support `-q` for filtering output:
7171

7272
```bash
73-
redisctl cloud acl list-roles 12345 -o json | jq '.[] | {name, id}'
73+
redisctl cloud acl list-roles 12345 -q '[].{name: name, id: id}'
7474
```
7575

7676
## Common Patterns

docs/src/cloud/access-control/users.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,19 @@ redisctl cloud user update <user_id> --data '{"name": "New Name"}'
4444
redisctl cloud user delete <user_id>
4545
```
4646

47-
## JSON Output
47+
## JMESPath Queries
4848

49-
All commands support structured output for scripting:
49+
All commands support JMESPath queries for filtering and formatting:
5050

5151
```bash
5252
# List all user emails
53-
redisctl cloud user list -o json | jq '.[].email'
53+
redisctl cloud user list -q '[].email'
5454

55-
# Find admin users
56-
redisctl cloud user list -o json | jq '.[] | select(.role == "owner")'
55+
# Find owner users
56+
redisctl cloud user list -q "[?role=='owner']"
57+
58+
# Get specific fields
59+
redisctl cloud user list -q '[].{email: email, role: role}' -o table
5760
```
5861

5962
## User Roles

docs/src/cloud/api.md

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -138,11 +138,8 @@ redisctl api cloud get /tasks/$TASK_ID -q 'response.resourceId'
138138
### Bulk Operations
139139

140140
```bash
141-
# Get all database IDs
142-
DBS=$(redisctl api cloud get /subscriptions/123/databases -q '[].databaseId')
143-
144-
# Process each
145-
for db in $(echo $DBS | jq -r '.[]'); do
141+
# Get all database IDs and process each
142+
for db in $(redisctl api cloud get /subscriptions/123/databases -q '[].databaseId' --raw); do
146143
redisctl api cloud get /subscriptions/123/databases/$db
147144
done
148145
```

docs/src/cloud/commands/databases.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -204,9 +204,8 @@ redisctl cloud database import 123456:789 --data '{
204204
### Get Connection String
205205

206206
```bash
207-
DB=$(redisctl cloud database get 123456:789)
208-
ENDPOINT=$(echo $DB | jq -r '.publicEndpoint')
209-
PASSWORD=$(echo $DB | jq -r '.password')
207+
ENDPOINT=$(redisctl cloud database get 123456:789 -q 'publicEndpoint')
208+
PASSWORD=$(redisctl cloud database get 123456:789 -q 'password')
210209
echo "redis://:$PASSWORD@$ENDPOINT"
211210
```
212211

@@ -222,8 +221,8 @@ redisctl cloud database list \
222221
### Bulk Operations
223222

224223
```bash
225-
# List all database IDs
226-
for db in $(redisctl cloud database list -q "[].databaseId" | jq -r '.[]'); do
224+
# Process all database IDs
225+
for db in $(redisctl cloud database list -q '[].databaseId' --raw); do
227226
echo "Processing $db"
228227
done
229228
```

docs/src/cloud/commands/networking.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ PEERING=$(redisctl cloud vpc-peering create \
128128
}' --wait)
129129

130130
echo "Accept peering request in AWS Console"
131-
echo "Peering ID: $(echo $PEERING | jq -r '.vpcPeeringId')"
131+
echo "Peering ID: $(redisctl cloud vpc-peering list --subscription 123456 -q '[0].vpcPeeringId')"
132132
```
133133

134134
### List All Network Connections

docs/src/cloud/commands/subscriptions.md

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -217,11 +217,8 @@ redisctl cloud fixed-subscription create --data @fixed-subscription.json --wait
217217
### List All Databases Across Subscriptions
218218

219219
```bash
220-
# Get all subscription IDs
221-
SUBS=$(redisctl cloud subscription list -q "[].id" | jq -r '.[]')
222-
223220
# List databases for each subscription
224-
for sub in $SUBS; do
221+
for sub in $(redisctl cloud subscription list -q '[].id' --raw); do
225222
echo "Subscription $sub:"
226223
redisctl cloud database list --subscription $sub
227224
done
@@ -231,8 +228,8 @@ done
231228

232229
```bash
233230
# Get memory usage across all databases
234-
redisctl cloud subscription get 123456 -q "databases[].{name: name, memory: memoryLimitInGb}" | \
235-
jq -r '.[] | "\(.name): \(.memory)GB"'
231+
redisctl cloud subscription get 123456 \
232+
-q "databases[].{name: name, memory: memoryLimitInGb}" -o table
236233
```
237234

238235
## Troubleshooting

docs/src/cloud/core-resources/databases.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -295,25 +295,25 @@ redisctl cloud database create-active-active --subscription-id <ID> --data @crdb
295295
### Get Database Connection String
296296

297297
```bash
298-
# Get Redis URI
299-
DB=$(redisctl cloud database get --subscription-id 123456 --database-id 789)
300-
echo "redis://:$(echo $DB | jq -r .password)@$(echo $DB | jq -r .publicEndpoint)"
298+
# Get Redis URI components
299+
ENDPOINT=$(redisctl cloud database get --subscription-id 123456 --database-id 789 -q 'publicEndpoint')
300+
PASSWORD=$(redisctl cloud database get --subscription-id 123456 --database-id 789 -q 'password')
301+
echo "redis://:$PASSWORD@$ENDPOINT"
301302
```
302303

303304
### Monitor Database Metrics
304305

305306
```bash
306307
# Check memory usage
307308
redisctl cloud database get --subscription-id 123456 --database-id 789 \
308-
-q "{used: usedMemoryInMB, limit: memoryLimitInGB}" | \
309-
jq -r '"Memory: \(.used)MB / \(.limit)GB"'
309+
-q "{used: usedMemoryInMB, limit: memoryLimitInGB}" -o table
310310
```
311311

312312
### Bulk Operations
313313

314314
```bash
315315
# Update all databases in subscription
316-
for db in $(redisctl cloud database list --subscription-id 123456 -q "[].databaseId" | jq -r '.[]'); do
316+
for db in $(redisctl cloud database list --subscription-id 123456 -q '[].databaseId' --raw); do
317317
echo "Updating database $db"
318318
redisctl cloud database update \
319319
--subscription-id 123456 \

docs/src/cloud/core-resources/provider-accounts.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,9 @@ redisctl cloud connectivity vpc-peering create <subscription_id> --data '{...}'
8080

8181
Bring Your Own Key (BYOK) encryption requires a linked cloud provider account to access your KMS keys.
8282

83-
## JSON Output
83+
## JMESPath Queries
8484

8585
```bash
8686
# List all provider accounts with their providers
87-
redisctl cloud provider-account list -o json | jq '.[] | {name, provider, id}'
87+
redisctl cloud provider-account list -q '[].{name: name, provider: provider, id: id}'
8888
```

docs/src/cloud/core-resources/subscriptions.md

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -217,11 +217,8 @@ redisctl cloud fixed-subscription create --data @fixed-subscription.json --wait
217217
### List All Databases Across Subscriptions
218218

219219
```bash
220-
# Get all subscription IDs
221-
SUBS=$(redisctl cloud subscription list -q "[].id" | jq -r '.[]')
222-
223220
# List databases for each subscription
224-
for sub in $SUBS; do
221+
for sub in $(redisctl cloud subscription list -q '[].id' --raw); do
225222
echo "Subscription $sub:"
226223
redisctl cloud database list --subscription-id $sub
227224
done
@@ -231,8 +228,8 @@ done
231228

232229
```bash
233230
# Get memory usage across all databases
234-
redisctl cloud subscription get 123456 -q "databases[].{name: name, memory: memoryLimitInGb}" | \
235-
jq -r '.[] | "\(.name): \(.memory)GB"'
231+
redisctl cloud subscription get 123456 \
232+
-q "databases[].{name: name, memory: memoryLimitInGb}" -o table
236233
```
237234

238235
## Troubleshooting

0 commit comments

Comments
 (0)