@almadar/std 14.8.0 → 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 (57) 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-twilio.orb +315 -393
  28. package/behaviors/registry/service/atoms/std-service-youtube.orb +266 -547
  29. package/dist/behaviors/registry/app/organisms/std-api-gateway.orb +1167 -4114
  30. package/dist/behaviors/registry/app/organisms/std-booking-system.orb +2627 -4281
  31. package/dist/behaviors/registry/app/organisms/std-cicd-pipeline.orb +1313 -3724
  32. package/dist/behaviors/registry/app/organisms/std-cms.orb +1658 -4903
  33. package/dist/behaviors/registry/app/organisms/std-coding-academy.orb +686 -1238
  34. package/dist/behaviors/registry/app/organisms/std-crm.orb +1778 -5995
  35. package/dist/behaviors/registry/app/organisms/std-devops-dashboard.orb +1918 -5539
  36. package/dist/behaviors/registry/app/organisms/std-finance-tracker.orb +1064 -3721
  37. package/dist/behaviors/registry/app/organisms/std-healthcare.orb +2810 -7215
  38. package/dist/behaviors/registry/app/organisms/std-helpdesk.orb +1065 -4161
  39. package/dist/behaviors/registry/app/organisms/std-hr-portal.orb +2300 -6322
  40. package/dist/behaviors/registry/app/organisms/std-iot-dashboard.orb +1582 -3721
  41. package/dist/behaviors/registry/app/organisms/std-lms.orb +1885 -3952
  42. package/dist/behaviors/registry/app/organisms/std-project-manager.orb +1226 -5123
  43. package/dist/behaviors/registry/app/organisms/std-realtime-chat.orb +1147 -3794
  44. package/dist/behaviors/registry/app/organisms/std-social-feed.orb +1044 -1728
  45. package/dist/behaviors/registry/app/organisms/std-trading-dashboard.orb +1208 -3186
  46. package/dist/behaviors/registry/core/atoms/std-graphs.orb +40 -41
  47. package/dist/behaviors/registry/core/atoms/std-stats.orb +131 -110
  48. package/dist/behaviors/registry/service/atoms/std-service-custom-bearer.orb +351 -345
  49. package/dist/behaviors/registry/service/atoms/std-service-email.orb +334 -328
  50. package/dist/behaviors/registry/service/atoms/std-service-github.orb +308 -365
  51. package/dist/behaviors/registry/service/atoms/std-service-llm.orb +329 -437
  52. package/dist/behaviors/registry/service/atoms/std-service-oauth.orb +261 -564
  53. package/dist/behaviors/registry/service/atoms/std-service-redis.orb +299 -405
  54. package/dist/behaviors/registry/service/atoms/std-service-storage.orb +293 -505
  55. package/dist/behaviors/registry/service/atoms/std-service-twilio.orb +315 -393
  56. package/dist/behaviors/registry/service/atoms/std-service-youtube.orb +266 -547
  57. 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
  ],