@almadar/std 14.8.0 → 14.10.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 +1303 -4002
  2. package/behaviors/registry/app/organisms/std-booking-system.orb +2131 -3645
  3. package/behaviors/registry/app/organisms/std-cicd-pipeline.orb +1449 -3612
  4. package/behaviors/registry/app/organisms/std-cms.orb +1833 -4943
  5. package/behaviors/registry/app/organisms/std-coding-academy.orb +686 -1238
  6. package/behaviors/registry/app/organisms/std-crm.orb +1872 -5949
  7. package/behaviors/registry/app/organisms/std-devops-dashboard.orb +2046 -5532
  8. package/behaviors/registry/app/organisms/std-finance-tracker.orb +1141 -3716
  9. package/behaviors/registry/app/organisms/std-healthcare.orb +3281 -7478
  10. package/behaviors/registry/app/organisms/std-helpdesk.orb +1046 -4062
  11. package/behaviors/registry/app/organisms/std-hr-portal.orb +2560 -6447
  12. package/behaviors/registry/app/organisms/std-iot-dashboard.orb +1657 -3716
  13. package/behaviors/registry/app/organisms/std-lms.orb +1933 -3916
  14. package/behaviors/registry/app/organisms/std-project-manager.orb +1417 -5232
  15. package/behaviors/registry/app/organisms/std-realtime-chat.orb +1308 -3873
  16. package/behaviors/registry/app/organisms/std-social-feed.orb +1135 -1700
  17. package/behaviors/registry/app/organisms/std-trading-dashboard.orb +1333 -3187
  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/core/molecules/std-app-layout.orb +90 -21
  21. package/behaviors/registry/service/atoms/std-service-custom-bearer.orb +351 -345
  22. package/behaviors/registry/service/atoms/std-service-email.orb +334 -328
  23. package/behaviors/registry/service/atoms/std-service-github.orb +308 -365
  24. package/behaviors/registry/service/atoms/std-service-llm.orb +329 -437
  25. package/behaviors/registry/service/atoms/std-service-oauth.orb +261 -564
  26. package/behaviors/registry/service/atoms/std-service-redis.orb +299 -405
  27. package/behaviors/registry/service/atoms/std-service-storage.orb +293 -505
  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 +1303 -4002
  31. package/dist/behaviors/registry/app/organisms/std-booking-system.orb +2131 -3645
  32. package/dist/behaviors/registry/app/organisms/std-cicd-pipeline.orb +1449 -3612
  33. package/dist/behaviors/registry/app/organisms/std-cms.orb +1833 -4943
  34. package/dist/behaviors/registry/app/organisms/std-coding-academy.orb +686 -1238
  35. package/dist/behaviors/registry/app/organisms/std-crm.orb +1872 -5949
  36. package/dist/behaviors/registry/app/organisms/std-devops-dashboard.orb +2046 -5532
  37. package/dist/behaviors/registry/app/organisms/std-finance-tracker.orb +1141 -3716
  38. package/dist/behaviors/registry/app/organisms/std-healthcare.orb +3281 -7478
  39. package/dist/behaviors/registry/app/organisms/std-helpdesk.orb +1046 -4062
  40. package/dist/behaviors/registry/app/organisms/std-hr-portal.orb +2560 -6447
  41. package/dist/behaviors/registry/app/organisms/std-iot-dashboard.orb +1657 -3716
  42. package/dist/behaviors/registry/app/organisms/std-lms.orb +1933 -3916
  43. package/dist/behaviors/registry/app/organisms/std-project-manager.orb +1417 -5232
  44. package/dist/behaviors/registry/app/organisms/std-realtime-chat.orb +1308 -3873
  45. package/dist/behaviors/registry/app/organisms/std-social-feed.orb +1135 -1700
  46. package/dist/behaviors/registry/app/organisms/std-trading-dashboard.orb +1333 -3187
  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/core/molecules/std-app-layout.orb +90 -21
  50. package/dist/behaviors/registry/service/atoms/std-service-custom-bearer.orb +351 -345
  51. package/dist/behaviors/registry/service/atoms/std-service-email.orb +334 -328
  52. package/dist/behaviors/registry/service/atoms/std-service-github.orb +308 -365
  53. package/dist/behaviors/registry/service/atoms/std-service-llm.orb +329 -437
  54. package/dist/behaviors/registry/service/atoms/std-service-oauth.orb +261 -564
  55. package/dist/behaviors/registry/service/atoms/std-service-redis.orb +299 -405
  56. package/dist/behaviors/registry/service/atoms/std-service-storage.orb +293 -505
  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
  ],