@almadar/std 14.7.2 → 14.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/behaviors/registry/app/organisms/std-api-gateway.orb +1167 -4114
  2. package/behaviors/registry/app/organisms/std-booking-system.orb +2627 -4281
  3. package/behaviors/registry/app/organisms/std-cicd-pipeline.orb +1313 -3724
  4. package/behaviors/registry/app/organisms/std-cms.orb +1658 -4903
  5. package/behaviors/registry/app/organisms/std-coding-academy.orb +686 -1238
  6. package/behaviors/registry/app/organisms/std-crm.orb +1778 -5995
  7. package/behaviors/registry/app/organisms/std-devops-dashboard.orb +1918 -5539
  8. package/behaviors/registry/app/organisms/std-finance-tracker.orb +1064 -3721
  9. package/behaviors/registry/app/organisms/std-healthcare.orb +2810 -7215
  10. package/behaviors/registry/app/organisms/std-helpdesk.orb +1065 -4161
  11. package/behaviors/registry/app/organisms/std-hr-portal.orb +2300 -6322
  12. package/behaviors/registry/app/organisms/std-iot-dashboard.orb +1582 -3721
  13. package/behaviors/registry/app/organisms/std-lms.orb +1885 -3952
  14. package/behaviors/registry/app/organisms/std-project-manager.orb +1226 -5123
  15. package/behaviors/registry/app/organisms/std-realtime-chat.orb +1147 -3794
  16. package/behaviors/registry/app/organisms/std-social-feed.orb +1044 -1728
  17. package/behaviors/registry/app/organisms/std-trading-dashboard.orb +1208 -3186
  18. package/behaviors/registry/core/atoms/std-graphs.orb +40 -41
  19. package/behaviors/registry/core/atoms/std-stats.orb +131 -110
  20. package/behaviors/registry/service/atoms/std-service-custom-bearer.orb +351 -345
  21. package/behaviors/registry/service/atoms/std-service-email.orb +334 -328
  22. package/behaviors/registry/service/atoms/std-service-github.orb +308 -365
  23. package/behaviors/registry/service/atoms/std-service-llm.orb +329 -437
  24. package/behaviors/registry/service/atoms/std-service-oauth.orb +261 -564
  25. package/behaviors/registry/service/atoms/std-service-redis.orb +299 -405
  26. package/behaviors/registry/service/atoms/std-service-storage.orb +293 -505
  27. package/behaviors/registry/service/atoms/std-service-stripe.orb +121 -95
  28. package/behaviors/registry/service/atoms/std-service-twilio.orb +315 -393
  29. package/behaviors/registry/service/atoms/std-service-youtube.orb +266 -547
  30. package/dist/behaviors/registry/app/organisms/std-api-gateway.orb +1167 -4114
  31. package/dist/behaviors/registry/app/organisms/std-booking-system.orb +2627 -4281
  32. package/dist/behaviors/registry/app/organisms/std-cicd-pipeline.orb +1313 -3724
  33. package/dist/behaviors/registry/app/organisms/std-cms.orb +1658 -4903
  34. package/dist/behaviors/registry/app/organisms/std-coding-academy.orb +686 -1238
  35. package/dist/behaviors/registry/app/organisms/std-crm.orb +1778 -5995
  36. package/dist/behaviors/registry/app/organisms/std-devops-dashboard.orb +1918 -5539
  37. package/dist/behaviors/registry/app/organisms/std-finance-tracker.orb +1064 -3721
  38. package/dist/behaviors/registry/app/organisms/std-healthcare.orb +2810 -7215
  39. package/dist/behaviors/registry/app/organisms/std-helpdesk.orb +1065 -4161
  40. package/dist/behaviors/registry/app/organisms/std-hr-portal.orb +2300 -6322
  41. package/dist/behaviors/registry/app/organisms/std-iot-dashboard.orb +1582 -3721
  42. package/dist/behaviors/registry/app/organisms/std-lms.orb +1885 -3952
  43. package/dist/behaviors/registry/app/organisms/std-project-manager.orb +1226 -5123
  44. package/dist/behaviors/registry/app/organisms/std-realtime-chat.orb +1147 -3794
  45. package/dist/behaviors/registry/app/organisms/std-social-feed.orb +1044 -1728
  46. package/dist/behaviors/registry/app/organisms/std-trading-dashboard.orb +1208 -3186
  47. package/dist/behaviors/registry/core/atoms/std-graphs.orb +40 -41
  48. package/dist/behaviors/registry/core/atoms/std-stats.orb +131 -110
  49. package/dist/behaviors/registry/service/atoms/std-service-custom-bearer.orb +351 -345
  50. package/dist/behaviors/registry/service/atoms/std-service-email.orb +334 -328
  51. package/dist/behaviors/registry/service/atoms/std-service-github.orb +308 -365
  52. package/dist/behaviors/registry/service/atoms/std-service-llm.orb +329 -437
  53. package/dist/behaviors/registry/service/atoms/std-service-oauth.orb +261 -564
  54. package/dist/behaviors/registry/service/atoms/std-service-redis.orb +299 -405
  55. package/dist/behaviors/registry/service/atoms/std-service-storage.orb +293 -505
  56. package/dist/behaviors/registry/service/atoms/std-service-stripe.orb +121 -95
  57. package/dist/behaviors/registry/service/atoms/std-service-twilio.orb +315 -393
  58. package/dist/behaviors/registry/service/atoms/std-service-youtube.orb +266 -547
  59. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "std-service-redis",
3
- "version": "1.0.0",
4
- "description": "std-service-redis as a Function",
3
+ "version": "2.0.0",
4
+ "description": "std-service-redis Redis cache service. Bind via `uses Redis from \"std/behaviors/std-service-redis\"` and configure `op` / `key` / `value` / `ttl` at the call site. Pass `uiTrait: \"@trait.YourRedisForm\"` to inject your own form; leave unset to render the atom's default form (standalone surface).",
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "ServiceRedisOrbital",
@@ -11,59 +11,194 @@
11
11
  "fields": [
12
12
  {
13
13
  "name": "id",
14
- "type": "string"
14
+ "type": "string",
15
+ "required": true
15
16
  },
16
17
  {
17
- "name": "name",
18
- "type": "string"
18
+ "name": "key",
19
+ "type": "string",
20
+ "default": ""
19
21
  },
20
22
  {
21
- "name": "description",
22
- "type": "string"
23
+ "name": "value",
24
+ "type": "string",
25
+ "default": ""
23
26
  },
24
27
  {
25
- "name": "status",
28
+ "name": "ttl",
29
+ "type": "number",
30
+ "default": 0.0
31
+ },
32
+ {
33
+ "name": "op",
26
34
  "type": "string",
27
- "default": "active",
35
+ "default": "get",
28
36
  "values": [
29
- "active",
30
- "inactive",
31
- "pending"
37
+ "get",
38
+ "set",
39
+ "del"
32
40
  ]
33
41
  },
34
42
  {
35
- "name": "createdAt",
36
- "type": "string"
43
+ "name": "result",
44
+ "type": "object",
45
+ "default": {}
37
46
  },
38
47
  {
39
- "name": "key",
40
- "type": "string"
48
+ "name": "redisStatus",
49
+ "type": "string",
50
+ "default": "idle"
41
51
  },
42
52
  {
43
- "name": "value",
44
- "type": "string"
53
+ "name": "error",
54
+ "type": "string",
55
+ "default": ""
45
56
  },
46
57
  {
47
- "name": "ttl",
48
- "type": "number",
49
- "default": 3600.0
58
+ "name": "name",
59
+ "type": "string"
50
60
  },
51
61
  {
52
- "name": "result",
62
+ "name": "description",
53
63
  "type": "string"
54
64
  },
55
65
  {
56
- "name": "redisStatus",
66
+ "name": "status",
57
67
  "type": "string",
58
- "default": "idle"
68
+ "default": "active",
69
+ "values": [
70
+ "active",
71
+ "inactive",
72
+ "pending"
73
+ ]
59
74
  },
60
75
  {
61
- "name": "error",
76
+ "name": "createdAt",
62
77
  "type": "string"
63
78
  }
64
79
  ]
65
80
  },
66
81
  "traits": [
82
+ {
83
+ "name": "ServiceRedisDefaultForm",
84
+ "category": "interaction",
85
+ "emits": [
86
+ {
87
+ "event": "EXEC",
88
+ "scope": "external",
89
+ "payloadSchema": [
90
+ {
91
+ "name": "source",
92
+ "type": "string"
93
+ }
94
+ ]
95
+ }
96
+ ],
97
+ "stateMachine": {
98
+ "states": [
99
+ {
100
+ "name": "ready",
101
+ "isInitial": true
102
+ }
103
+ ],
104
+ "events": [
105
+ {
106
+ "key": "INIT",
107
+ "name": "Initialize"
108
+ },
109
+ {
110
+ "key": "EXEC",
111
+ "name": "Exec"
112
+ }
113
+ ],
114
+ "transitions": [
115
+ {
116
+ "from": "ready",
117
+ "to": "ready",
118
+ "event": "INIT",
119
+ "effects": [
120
+ [
121
+ "render-ui",
122
+ "main",
123
+ {
124
+ "direction": "vertical",
125
+ "gap": "lg",
126
+ "type": "stack",
127
+ "children": [
128
+ {
129
+ "children": [
130
+ {
131
+ "type": "icon",
132
+ "name": "database"
133
+ },
134
+ {
135
+ "type": "typography",
136
+ "variant": "h2",
137
+ "content": "Redis Cache"
138
+ }
139
+ ],
140
+ "type": "stack",
141
+ "gap": "md",
142
+ "align": "center",
143
+ "direction": "horizontal"
144
+ },
145
+ {
146
+ "type": "divider"
147
+ },
148
+ {
149
+ "type": "stack",
150
+ "direction": "vertical",
151
+ "gap": "md",
152
+ "children": [
153
+ {
154
+ "options": [
155
+ {
156
+ "label": "Get",
157
+ "value": "get"
158
+ },
159
+ {
160
+ "label": "Set",
161
+ "value": "set"
162
+ },
163
+ {
164
+ "value": "del",
165
+ "label": "Delete"
166
+ }
167
+ ],
168
+ "type": "select"
169
+ },
170
+ {
171
+ "type": "input",
172
+ "placeholder": "cache-key"
173
+ },
174
+ {
175
+ "placeholder": "cache-value",
176
+ "type": "input"
177
+ },
178
+ {
179
+ "type": "input",
180
+ "placeholder": "ttl seconds",
181
+ "inputType": "number"
182
+ }
183
+ ]
184
+ },
185
+ {
186
+ "type": "button",
187
+ "icon": "play",
188
+ "label": "Execute",
189
+ "variant": "primary",
190
+ "action": "EXEC"
191
+ }
192
+ ],
193
+ "align": "center"
194
+ }
195
+ ]
196
+ ]
197
+ }
198
+ ]
199
+ },
200
+ "scope": "instance"
201
+ },
67
202
  {
68
203
  "name": "ServiceRedisRedis",
69
204
  "category": "interaction",
@@ -90,7 +225,7 @@
90
225
  ]
91
226
  },
92
227
  {
93
- "event": "ServiceRedisRedisCompleted",
228
+ "event": "RedisDone",
94
229
  "scope": "external",
95
230
  "payloadSchema": [
96
231
  {
@@ -112,6 +247,26 @@
112
247
  "type": "string"
113
248
  }
114
249
  ]
250
+ },
251
+ {
252
+ "event": "FAILED",
253
+ "payloadSchema": [
254
+ {
255
+ "name": "error",
256
+ "type": "string",
257
+ "required": true
258
+ }
259
+ ]
260
+ }
261
+ ],
262
+ "listens": [
263
+ {
264
+ "event": "EXEC",
265
+ "triggers": "EXEC",
266
+ "source": {
267
+ "kind": "trait",
268
+ "trait": "ServiceRedisDefaultForm"
269
+ }
115
270
  }
116
271
  ],
117
272
  "stateMachine": {
@@ -136,42 +291,8 @@
136
291
  "name": "Initialize"
137
292
  },
138
293
  {
139
- "key": "GET_KEY",
140
- "name": "Get Key"
141
- },
142
- {
143
- "key": "SET_KEY",
144
- "name": "Set Key"
145
- },
146
- {
147
- "key": "DELETE_KEY",
148
- "name": "Delete Key"
149
- },
150
- {
151
- "key": "EXECUTED",
152
- "name": "Executed",
153
- "payloadSchema": [
154
- {
155
- "name": "data",
156
- "type": "string",
157
- "required": true
158
- }
159
- ]
160
- },
161
- {
162
- "key": "FAILED",
163
- "name": "Failed",
164
- "payloadSchema": [
165
- {
166
- "name": "error",
167
- "type": "string",
168
- "required": true
169
- }
170
- ]
171
- },
172
- {
173
- "key": "RESET",
174
- "name": "Reset"
294
+ "key": "EXEC",
295
+ "name": "Exec"
175
296
  },
176
297
  {
177
298
  "key": "ServiceRedisLoaded",
@@ -180,46 +301,6 @@
180
301
  {
181
302
  "name": "id",
182
303
  "type": "string"
183
- },
184
- {
185
- "name": "name",
186
- "type": "string"
187
- },
188
- {
189
- "name": "description",
190
- "type": "string"
191
- },
192
- {
193
- "name": "status",
194
- "type": "string"
195
- },
196
- {
197
- "name": "createdAt",
198
- "type": "string"
199
- },
200
- {
201
- "name": "key",
202
- "type": "string"
203
- },
204
- {
205
- "name": "value",
206
- "type": "string"
207
- },
208
- {
209
- "name": "ttl",
210
- "type": "number"
211
- },
212
- {
213
- "name": "result",
214
- "type": "string"
215
- },
216
- {
217
- "name": "redisStatus",
218
- "type": "string"
219
- },
220
- {
221
- "name": "error",
222
- "type": "string"
223
304
  }
224
305
  ]
225
306
  },
@@ -234,8 +315,8 @@
234
315
  ]
235
316
  },
236
317
  {
237
- "key": "ServiceRedisRedisCompleted",
238
- "name": "ServiceRedis redis completed",
318
+ "key": "RedisDone",
319
+ "name": "Redis done",
239
320
  "payloadSchema": [
240
321
  {
241
322
  "name": "result",
@@ -243,6 +324,21 @@
243
324
  }
244
325
  ]
245
326
  },
327
+ {
328
+ "key": "FAILED",
329
+ "name": "Failed",
330
+ "payloadSchema": [
331
+ {
332
+ "name": "error",
333
+ "type": "string",
334
+ "required": true
335
+ }
336
+ ]
337
+ },
338
+ {
339
+ "key": "RESET",
340
+ "name": "Reset"
341
+ },
246
342
  {
247
343
  "key": "ServiceRedisRedisFailed",
248
344
  "name": "ServiceRedis redis failed",
@@ -267,25 +363,30 @@
267
363
  [
268
364
  "set",
269
365
  "@entity.key",
270
- ""
366
+ "@config.key"
367
+ ],
368
+ [
369
+ "set",
370
+ "@entity.value",
371
+ "@config.value"
271
372
  ],
272
373
  [
273
374
  "set",
274
375
  "@entity.ttl",
275
- 3600.0
376
+ "@config.ttl"
276
377
  ],
277
378
  [
278
379
  "set",
279
- "@entity.value",
280
- ""
380
+ "@entity.op",
381
+ "@config.op"
281
382
  ],
282
383
  [
283
384
  "fetch",
284
385
  "ServiceRedis",
285
386
  {
286
387
  "emit": {
287
- "failure": "ServiceRedisLoadFailed",
288
- "success": "ServiceRedisLoaded"
388
+ "success": "ServiceRedisLoaded",
389
+ "failure": "ServiceRedisLoadFailed"
289
390
  }
290
391
  }
291
392
  ],
@@ -293,81 +394,12 @@
293
394
  "render-ui",
294
395
  "main",
295
396
  {
296
- "type": "stack",
297
- "direction": "vertical",
298
- "align": "center",
299
- "gap": "lg",
300
397
  "children": [
301
- {
302
- "align": "center",
303
- "gap": "md",
304
- "children": [
305
- {
306
- "name": "database",
307
- "type": "icon"
308
- },
309
- {
310
- "content": "Redis Cache",
311
- "variant": "h2",
312
- "type": "typography"
313
- }
314
- ],
315
- "direction": "horizontal",
316
- "type": "stack"
317
- },
318
- {
319
- "type": "divider"
320
- },
321
- {
322
- "type": "stack",
323
- "gap": "md",
324
- "direction": "vertical",
325
- "children": [
326
- {
327
- "placeholder": "cache-key",
328
- "type": "input"
329
- },
330
- {
331
- "type": "input",
332
- "placeholder": "cache-value"
333
- },
334
- {
335
- "type": "input",
336
- "inputType": "number",
337
- "placeholder": "3600"
338
- }
339
- ]
340
- },
341
- {
342
- "gap": "sm",
343
- "children": [
344
- {
345
- "icon": "download",
346
- "action": "GET_KEY",
347
- "type": "button",
348
- "variant": "primary",
349
- "label": "Get"
350
- },
351
- {
352
- "variant": "primary",
353
- "label": "Set",
354
- "icon": "upload",
355
- "type": "button",
356
- "action": "SET_KEY"
357
- },
358
- {
359
- "icon": "trash-2",
360
- "action": "DELETE_KEY",
361
- "label": "Delete",
362
- "type": "button",
363
- "variant": "danger"
364
- }
365
- ],
366
- "type": "stack",
367
- "direction": "horizontal",
368
- "justify": "center"
369
- }
370
- ]
398
+ "@config.uiTrait"
399
+ ],
400
+ "direction": "vertical",
401
+ "gap": "md",
402
+ "type": "stack"
371
403
  }
372
404
  ]
373
405
  ]
@@ -375,28 +407,30 @@
375
407
  {
376
408
  "from": "idle",
377
409
  "to": "executing",
378
- "event": "GET_KEY",
410
+ "event": "EXEC",
379
411
  "effects": [
380
412
  [
381
413
  "render-ui",
382
414
  "main",
383
415
  {
384
- "title": "Executing...",
385
416
  "message": "Running redis operation...",
417
+ "title": "Executing...",
386
418
  "type": "loading-state"
387
419
  }
388
420
  ],
389
421
  [
390
422
  "call-service",
391
423
  "redis",
392
- "get",
424
+ "@config.op",
393
425
  {
394
- "key": "@entity.key"
426
+ "ttl": "@config.ttl",
427
+ "key": "@config.key",
428
+ "value": "@config.value"
395
429
  },
396
430
  {
397
431
  "emit": {
398
- "success": "ServiceRedisRedisCompleted",
399
- "failure": "ServiceRedisRedisFailed"
432
+ "failure": "FAILED",
433
+ "success": "RedisDone"
400
434
  }
401
435
  }
402
436
  ]
@@ -404,108 +438,61 @@
404
438
  },
405
439
  {
406
440
  "from": "idle",
407
- "to": "executing",
408
- "event": "SET_KEY",
409
- "effects": [
410
- [
411
- "render-ui",
412
- "main",
413
- {
414
- "type": "loading-state",
415
- "title": "Executing...",
416
- "message": "Running redis operation..."
417
- }
418
- ],
419
- [
420
- "call-service",
421
- "redis",
422
- "set",
423
- {
424
- "key": "@entity.key",
425
- "ttl": "@entity.ttl",
426
- "value": "@entity.value"
427
- },
428
- {
429
- "emit": {
430
- "failure": "ServiceRedisRedisFailed",
431
- "success": "ServiceRedisRedisCompleted"
432
- }
433
- }
434
- ]
435
- ]
441
+ "to": "idle",
442
+ "event": "ServiceRedisLoaded"
436
443
  },
437
444
  {
438
445
  "from": "idle",
439
- "to": "executing",
440
- "event": "DELETE_KEY",
441
- "effects": [
442
- [
443
- "render-ui",
444
- "main",
445
- {
446
- "type": "loading-state",
447
- "title": "Executing...",
448
- "message": "Running redis operation..."
449
- }
450
- ],
451
- [
452
- "call-service",
453
- "redis",
454
- "delete",
455
- {
456
- "key": "@entity.key"
457
- },
458
- {
459
- "emit": {
460
- "failure": "ServiceRedisRedisFailed",
461
- "success": "ServiceRedisRedisCompleted"
462
- }
463
- }
464
- ]
465
- ]
446
+ "to": "idle",
447
+ "event": "ServiceRedisLoadFailed"
466
448
  },
467
449
  {
468
450
  "from": "executing",
469
451
  "to": "complete",
470
- "event": "EXECUTED",
452
+ "event": "RedisDone",
471
453
  "effects": [
472
454
  [
473
455
  "set",
474
456
  "@entity.result",
475
- "@payload.data"
457
+ "@payload.result"
458
+ ],
459
+ [
460
+ "set",
461
+ "@entity.redisStatus",
462
+ "succeeded"
476
463
  ],
477
464
  [
478
465
  "render-ui",
479
466
  "main",
480
467
  {
481
468
  "direction": "vertical",
482
- "align": "center",
469
+ "type": "stack",
483
470
  "gap": "lg",
471
+ "align": "center",
484
472
  "children": [
485
473
  {
486
- "type": "icon",
487
- "name": "check-circle"
474
+ "name": "check-circle",
475
+ "type": "icon"
488
476
  },
489
477
  {
478
+ "variant": "success",
490
479
  "type": "alert",
491
- "message": "Operation complete",
492
- "variant": "success"
480
+ "message": "Operation complete"
493
481
  },
494
482
  {
495
- "variant": "body",
496
- "content": "@entity.result",
483
+ "color": "muted",
497
484
  "type": "typography",
498
- "color": "muted"
485
+ "content": "@entity.result",
486
+ "variant": "body"
499
487
  },
500
488
  {
501
- "icon": "rotate-ccw",
489
+ "variant": "ghost",
502
490
  "label": "Reset",
503
491
  "action": "RESET",
504
- "variant": "ghost",
492
+ "icon": "rotate-ccw",
505
493
  "type": "button"
506
494
  }
507
- ],
508
- "type": "stack"
495
+ ]
509
496
  }
510
497
  ]
511
498
  ]
@@ -520,14 +507,22 @@
520
507
  "@entity.error",
521
508
  "@payload.error"
522
509
  ],
510
+ [
511
+ "emit",
512
+ "ServiceRedisRedisFailed",
513
+ {
514
+ "error": "@entity.error",
515
+ "code": "redis_op_failed"
516
+ }
517
+ ],
523
518
  [
524
519
  "render-ui",
525
520
  "main",
526
521
  {
527
- "type": "error-state",
522
+ "message": "@entity.error",
528
523
  "onRetry": "RESET",
529
524
  "title": "Redis Error",
530
- "message": "@entity.error"
525
+ "type": "error-state"
531
526
  }
532
527
  ]
533
528
  ]
@@ -541,85 +536,26 @@
541
536
  "render-ui",
542
537
  "main",
543
538
  {
544
- "align": "center",
545
539
  "direction": "vertical",
546
540
  "type": "stack",
547
541
  "children": [
548
- {
549
- "children": [
550
- {
551
- "type": "icon",
552
- "name": "database"
553
- },
554
- {
555
- "variant": "h2",
556
- "content": "Redis Cache",
557
- "type": "typography"
558
- }
559
- ],
560
- "gap": "md",
561
- "align": "center",
562
- "direction": "horizontal",
563
- "type": "stack"
564
- },
565
- {
566
- "type": "divider"
567
- },
568
- {
569
- "type": "stack",
570
- "direction": "vertical",
571
- "gap": "md",
572
- "children": [
573
- {
574
- "placeholder": "cache-key",
575
- "type": "input"
576
- },
577
- {
578
- "type": "input",
579
- "placeholder": "cache-value"
580
- },
581
- {
582
- "inputType": "number",
583
- "placeholder": "3600",
584
- "type": "input"
585
- }
586
- ]
587
- },
588
- {
589
- "children": [
590
- {
591
- "action": "GET_KEY",
592
- "icon": "download",
593
- "type": "button",
594
- "label": "Get",
595
- "variant": "primary"
596
- },
597
- {
598
- "label": "Set",
599
- "type": "button",
600
- "icon": "upload",
601
- "action": "SET_KEY",
602
- "variant": "primary"
603
- },
604
- {
605
- "icon": "trash-2",
606
- "type": "button",
607
- "label": "Delete",
608
- "action": "DELETE_KEY",
609
- "variant": "danger"
610
- }
611
- ],
612
- "direction": "horizontal",
613
- "justify": "center",
614
- "type": "stack",
615
- "gap": "sm"
616
- }
542
+ "@config.uiTrait"
617
543
  ],
618
- "gap": "lg"
544
+ "gap": "md"
619
545
  }
620
546
  ]
621
547
  ]
622
548
  },
549
+ {
550
+ "from": "complete",
551
+ "to": "complete",
552
+ "event": "RedisDone"
553
+ },
554
+ {
555
+ "from": "error",
556
+ "to": "error",
557
+ "event": "ServiceRedisRedisFailed"
558
+ },
623
559
  {
624
560
  "from": "error",
625
561
  "to": "idle",
@@ -629,80 +565,11 @@
629
565
  "render-ui",
630
566
  "main",
631
567
  {
632
- "direction": "vertical",
633
- "align": "center",
634
- "gap": "lg",
635
568
  "children": [
636
- {
637
- "gap": "md",
638
- "children": [
639
- {
640
- "type": "icon",
641
- "name": "database"
642
- },
643
- {
644
- "type": "typography",
645
- "content": "Redis Cache",
646
- "variant": "h2"
647
- }
648
- ],
649
- "direction": "horizontal",
650
- "align": "center",
651
- "type": "stack"
652
- },
653
- {
654
- "type": "divider"
655
- },
656
- {
657
- "children": [
658
- {
659
- "type": "input",
660
- "placeholder": "cache-key"
661
- },
662
- {
663
- "placeholder": "cache-value",
664
- "type": "input"
665
- },
666
- {
667
- "type": "input",
668
- "inputType": "number",
669
- "placeholder": "3600"
670
- }
671
- ],
672
- "type": "stack",
673
- "direction": "vertical",
674
- "gap": "md"
675
- },
676
- {
677
- "direction": "horizontal",
678
- "justify": "center",
679
- "type": "stack",
680
- "children": [
681
- {
682
- "icon": "download",
683
- "type": "button",
684
- "action": "GET_KEY",
685
- "label": "Get",
686
- "variant": "primary"
687
- },
688
- {
689
- "action": "SET_KEY",
690
- "variant": "primary",
691
- "type": "button",
692
- "icon": "upload",
693
- "label": "Set"
694
- },
695
- {
696
- "action": "DELETE_KEY",
697
- "variant": "danger",
698
- "icon": "trash-2",
699
- "type": "button",
700
- "label": "Delete"
701
- }
702
- ],
703
- "gap": "sm"
704
- }
569
+ "@config.uiTrait"
705
570
  ],
571
+ "gap": "md",
572
+ "direction": "vertical",
706
573
  "type": "stack"
707
574
  }
708
575
  ]
@@ -710,6 +577,33 @@
710
577
  }
711
578
  ]
712
579
  },
580
+ "config": {
581
+ "key": {
582
+ "type": "string",
583
+ "default": ""
584
+ },
585
+ "op": {
586
+ "type": "string",
587
+ "default": "get",
588
+ "values": [
589
+ "get",
590
+ "set",
591
+ "del"
592
+ ]
593
+ },
594
+ "value": {
595
+ "type": "string",
596
+ "default": ""
597
+ },
598
+ "uiTrait": {
599
+ "type": "trait",
600
+ "default": "@trait.ServiceRedisDefaultForm"
601
+ },
602
+ "ttl": {
603
+ "type": "number",
604
+ "default": 0.0
605
+ }
606
+ },
713
607
  "scope": "instance"
714
608
  }
715
609
  ],