@solidxai/core 0.1.12-beta.2 → 0.1.12-beta.4

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 (162) hide show
  1. package/.claude/settings.local.json +16 -0
  2. package/CLAUDE.md +26 -0
  3. package/dist/commands/seed.command.d.ts.map +1 -1
  4. package/dist/commands/seed.command.js +15 -2
  5. package/dist/commands/seed.command.js.map +1 -1
  6. package/dist/constants/media-file-types.d.ts +5 -0
  7. package/dist/constants/media-file-types.d.ts.map +1 -0
  8. package/dist/constants/media-file-types.js +27 -0
  9. package/dist/constants/media-file-types.js.map +1 -0
  10. package/dist/controllers/media.controller.d.ts +14 -11
  11. package/dist/controllers/media.controller.d.ts.map +1 -1
  12. package/dist/controllers/media.controller.js +72 -33
  13. package/dist/controllers/media.controller.js.map +1 -1
  14. package/dist/dtos/create-media.dto.d.ts +1 -0
  15. package/dist/dtos/create-media.dto.d.ts.map +1 -1
  16. package/dist/dtos/create-media.dto.js +7 -1
  17. package/dist/dtos/create-media.dto.js.map +1 -1
  18. package/dist/dtos/create-role-metadata.dto.d.ts +2 -0
  19. package/dist/dtos/create-role-metadata.dto.d.ts.map +1 -1
  20. package/dist/dtos/create-role-metadata.dto.js +3 -1
  21. package/dist/dtos/create-role-metadata.dto.js.map +1 -1
  22. package/dist/dtos/update-media.dto.d.ts +1 -0
  23. package/dist/dtos/update-media.dto.d.ts.map +1 -1
  24. package/dist/dtos/update-media.dto.js +7 -1
  25. package/dist/dtos/update-media.dto.js.map +1 -1
  26. package/dist/entities/media.entity.d.ts +1 -0
  27. package/dist/entities/media.entity.d.ts.map +1 -1
  28. package/dist/entities/media.entity.js +9 -1
  29. package/dist/entities/media.entity.js.map +1 -1
  30. package/dist/enums/auth-type.enum.d.ts +2 -1
  31. package/dist/enums/auth-type.enum.d.ts.map +1 -1
  32. package/dist/enums/auth-type.enum.js +1 -0
  33. package/dist/enums/auth-type.enum.js.map +1 -1
  34. package/dist/guards/authentication.guard.d.ts +3 -1
  35. package/dist/guards/authentication.guard.d.ts.map +1 -1
  36. package/dist/guards/authentication.guard.js +5 -1
  37. package/dist/guards/authentication.guard.js.map +1 -1
  38. package/dist/guards/media-signed-url.guard.d.ts +9 -0
  39. package/dist/guards/media-signed-url.guard.d.ts.map +1 -0
  40. package/dist/guards/media-signed-url.guard.js +49 -0
  41. package/dist/guards/media-signed-url.guard.js.map +1 -0
  42. package/dist/helpers/field-crud-managers/MediaFieldCrudManager.d.ts.map +1 -1
  43. package/dist/helpers/field-crud-managers/MediaFieldCrudManager.js +10 -13
  44. package/dist/helpers/field-crud-managers/MediaFieldCrudManager.js.map +1 -1
  45. package/dist/interfaces.d.ts +19 -1
  46. package/dist/interfaces.d.ts.map +1 -1
  47. package/dist/interfaces.js +2 -0
  48. package/dist/interfaces.js.map +1 -1
  49. package/dist/repository/media.repository.d.ts.map +1 -1
  50. package/dist/repository/media.repository.js +2 -0
  51. package/dist/repository/media.repository.js.map +1 -1
  52. package/dist/seeders/module-metadata-seeder.service.d.ts +7 -1
  53. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  54. package/dist/seeders/module-metadata-seeder.service.js +87 -3
  55. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  56. package/dist/seeders/permission-metadata-seeder.service.d.ts +1 -0
  57. package/dist/seeders/permission-metadata-seeder.service.d.ts.map +1 -1
  58. package/dist/seeders/permission-metadata-seeder.service.js +6 -1
  59. package/dist/seeders/permission-metadata-seeder.service.js.map +1 -1
  60. package/dist/seeders/seed-data/solid-core-metadata.json +114 -13
  61. package/dist/services/authentication.service.d.ts +1 -0
  62. package/dist/services/authentication.service.d.ts.map +1 -1
  63. package/dist/services/authentication.service.js +19 -1
  64. package/dist/services/authentication.service.js.map +1 -1
  65. package/dist/services/media-download-url.service.d.ts +21 -0
  66. package/dist/services/media-download-url.service.d.ts.map +1 -0
  67. package/dist/services/media-download-url.service.js +67 -0
  68. package/dist/services/media-download-url.service.js.map +1 -0
  69. package/dist/services/media-storage.utils.d.ts +27 -0
  70. package/dist/services/media-storage.utils.d.ts.map +1 -0
  71. package/dist/services/media-storage.utils.js +82 -0
  72. package/dist/services/media-storage.utils.js.map +1 -0
  73. package/dist/services/media.service.d.ts +20 -4
  74. package/dist/services/media.service.d.ts.map +1 -1
  75. package/dist/services/media.service.js +157 -55
  76. package/dist/services/media.service.js.map +1 -1
  77. package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts +4 -4
  78. package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts.map +1 -1
  79. package/dist/services/mediaStorageProviders/file-s3-storage-provider.js +37 -63
  80. package/dist/services/mediaStorageProviders/file-s3-storage-provider.js.map +1 -1
  81. package/dist/services/mediaStorageProviders/file-storage-provider.d.ts +5 -5
  82. package/dist/services/mediaStorageProviders/file-storage-provider.d.ts.map +1 -1
  83. package/dist/services/mediaStorageProviders/file-storage-provider.js +37 -38
  84. package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
  85. package/dist/services/role-metadata.service.d.ts +1 -0
  86. package/dist/services/role-metadata.service.d.ts.map +1 -1
  87. package/dist/services/role-metadata.service.js +8 -5
  88. package/dist/services/role-metadata.service.js.map +1 -1
  89. package/dist/solid-core.module.d.ts.map +1 -1
  90. package/dist/solid-core.module.js +11 -1
  91. package/dist/solid-core.module.js.map +1 -1
  92. package/dist/subscribers/audit.subscriber.js +1 -1
  93. package/dist/subscribers/audit.subscriber.js.map +1 -1
  94. package/package.json +1 -1
  95. package/src/commands/seed.command.ts +17 -3
  96. package/src/constants/media-file-types.ts +44 -0
  97. package/src/controllers/media.controller.ts +44 -24
  98. package/src/dtos/create-media.dto.ts +8 -3
  99. package/src/dtos/create-role-metadata.dto.ts +2 -0
  100. package/src/dtos/update-media.dto.ts +8 -3
  101. package/src/entities/media.entity.ts +4 -1
  102. package/src/enums/auth-type.enum.ts +1 -0
  103. package/src/guards/authentication.guard.ts +3 -0
  104. package/src/guards/media-signed-url.guard.ts +41 -0
  105. package/src/helpers/field-crud-managers/MediaFieldCrudManager.ts +12 -24
  106. package/src/interfaces.ts +20 -0
  107. package/src/repository/media.repository.ts +2 -0
  108. package/src/seeders/module-metadata-seeder.service.ts +109 -3
  109. package/src/seeders/permission-metadata-seeder.service.ts +6 -1
  110. package/src/seeders/seed-data/solid-core-metadata.json +114 -13
  111. package/src/services/1.js +6 -0
  112. package/src/services/authentication.service.ts +24 -1
  113. package/src/services/media-download-url.service.ts +67 -0
  114. package/src/services/media-storage.utils.ts +79 -0
  115. package/src/services/media.service.ts +189 -59
  116. package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +52 -76
  117. package/src/services/mediaStorageProviders/file-storage-provider.ts +44 -48
  118. package/src/services/role-metadata.service.ts +17 -5
  119. package/src/solid-core.module.ts +21 -2
  120. package/src/subscribers/audit.subscriber.ts +1 -1
  121. package/dist-tests/api/authenticate.spec.js +0 -119
  122. package/dist-tests/api/authenticate.spec.js.map +0 -1
  123. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js +0 -97
  124. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js.map +0 -1
  125. package/dist-tests/api/ping.spec.js +0 -21
  126. package/dist-tests/api/ping.spec.js.map +0 -1
  127. package/dist-tests/helpers/auth.js +0 -41
  128. package/dist-tests/helpers/auth.js.map +0 -1
  129. package/dist-tests/helpers/env.js +0 -11
  130. package/dist-tests/helpers/env.js.map +0 -1
  131. package/docs/agent-builder/notebook-lm-prompt-for-agent-builder.md +0 -136
  132. package/docs/agent-builder/team-ready-note-agent-builder.md +0 -305
  133. package/docs/agent-hub-grooming.md +0 -301
  134. package/docs/dashboards/AGENTIC_DASHBOARD_IMPLEMENTATION_PLAN.md +0 -438
  135. package/docs/dashboards/dashboard-curl-smoke-tests.txt +0 -146
  136. package/docs/dashboards/delete-legacy-dashboard-metadata.sql +0 -172
  137. package/docs/datasource-introspection-ddl-analysis.md +0 -326
  138. package/docs/datasource-introspection-implementation-plan.md +0 -306
  139. package/docs/grouping-enhancements.md +0 -89
  140. package/docs/java-spring/README.md +0 -3
  141. package/docs/java-spring/solid-core-module-deep-dive-report.md +0 -1317
  142. package/docs/module-package-import-handoff.md +0 -691
  143. package/docs/seed-changes.md +0 -65
  144. package/docs/test-data-workflow.md +0 -200
  145. package/docs/type-declaration-import-issue.md +0 -24
  146. package/docs/workflow/business-automation-example-notes.md +0 -309
  147. package/docs/workflow/data-engineering-pipeline-example-notes.md +0 -330
  148. package/docs/workflow/foreach-example-notes.md +0 -187
  149. package/docs/workflow/hello-world-example-notes.md +0 -271
  150. package/docs/workflow/kestra-concepts-plugins-blueprints.md +0 -315
  151. package/docs/workflow/loop-until-example-notes.md +0 -198
  152. package/docs/workflow/microservices-and-apis-example-notes.md +0 -264
  153. package/docs/workflow/samples.md +0 -25
  154. package/docs/workflow/what-is-kestra.md +0 -79
  155. package/docs/workflow/workflow-core-module-handoff-summary.md +0 -191
  156. package/docs/workflow/workflow-module-brd.md +0 -185
  157. package/docs/workflow/workflow-module-domain-model.md +0 -252
  158. package/docs/workflow/workflow-module-metadata-dsl.md +0 -302
  159. package/docs/workflow/workflow-module-technical-spec.md +0 -293
  160. package/docs/workflow/workflow-node-type-contracts.md +0 -635
  161. package/docs/workflow/workflow-node-ui-metadata-contract.md +0 -1262
  162. package/docs/workflow/workflow-solidx-model-field-spec.md +0 -284
@@ -1,198 +0,0 @@
1
- # LoopUntil Example Notes
2
-
3
- ## Purpose
4
-
5
- This document captures a reference workflow for `LoopUntil`. It complements the `ForEach` example by showing a different kind of loop: repeat-until-success rather than iterate-over-values.
6
-
7
- ---
8
-
9
- ## Example Workflow YAML
10
-
11
- ```yaml
12
- id: loop_until_health_check
13
- namespace: company.team
14
-
15
- tasks:
16
- - id: loop
17
- type: io.kestra.plugin.core.flow.LoopUntil
18
- condition: "{{ outputs.healthCheck.code == 200 }}"
19
- checkFrequency:
20
- interval: PT30S
21
- maxIterations: 50
22
- tasks:
23
- - id: healthCheck
24
- type: io.kestra.plugin.core.http.Request
25
- method: GET
26
- uri: https://kestra.io/
27
- ```
28
-
29
- ---
30
-
31
- ## What This Example Adds
32
-
33
- This example is useful because it shows:
34
-
35
- - condition-based looping
36
- - repeated polling / health-check behavior
37
- - loop frequency metadata
38
- - max-iteration safeguards
39
- - a loop container with a small loop body
40
-
41
- It is the clearest reference for workflows that keep trying until a condition becomes true.
42
-
43
- ---
44
-
45
- ## High-Level Structure
46
-
47
- ```text
48
- Start
49
- |
50
- v
51
- loop
52
- |
53
- v
54
- healthCheck
55
- |
56
- v
57
- repeat until outputs.healthCheck.code == 200
58
- |
59
- v
60
- End
61
- ```
62
-
63
- Conceptually:
64
-
65
- ```text
66
- Workflow
67
- └── loop
68
- └── healthCheck
69
- ```
70
-
71
- Runtime interpretation:
72
-
73
- ```text
74
- Repeat:
75
- run healthCheck
76
- Until:
77
- outputs.healthCheck.code == 200
78
-
79
- With:
80
- interval = PT30S
81
- maxIterations = 50
82
- ```
83
-
84
- ---
85
-
86
- ## Main Note
87
-
88
- ### Example With `LoopUntil`
89
-
90
- This is the key purpose of the example.
91
-
92
- It shows that not all loops are collection-based like `ForEach`.
93
-
94
- `LoopUntil` is driven by:
95
-
96
- - a stop condition
97
- - a repeated body
98
- - retry/check timing configuration
99
- - a max-iteration limit
100
-
101
- So the UI must distinguish between:
102
-
103
- - looping over values
104
- - looping until a condition is met
105
-
106
- ---
107
-
108
- ## Topology Notes
109
-
110
- The screenshot suggests:
111
-
112
- - `LoopUntil` is rendered as a grouped/container region
113
- - the loop node appears at the top of that region
114
- - the loop body task appears within the same grouped area
115
- - the visual sequence remains vertical and directional
116
-
117
- This is similar to `ForEach` structurally, but the semantics are different enough that the node metadata and docs must explain the difference clearly.
118
-
119
- ---
120
-
121
- ## Loop Semantics Notes
122
-
123
- This example introduces loop control metadata that is especially important for docs and forms:
124
-
125
- - `condition`
126
- - `checkFrequency.interval`
127
- - `checkFrequency.maxIterations`
128
-
129
- That means the schema-driven editor should eventually support:
130
-
131
- - expression-aware editing for the stop condition
132
- - structured editing for timing/frequency settings
133
- - clear validation for required loop settings
134
-
135
- ---
136
-
137
- ## Implications For SolidX Flow Modeling
138
-
139
- This example implies the loop category should likely have meaningful subtypes:
140
-
141
- - `ForEach`
142
- - `LoopUntil`
143
-
144
- Both may be rendered as loop containers, but their configuration UX differs:
145
-
146
- - `ForEach` needs collection/value configuration
147
- - `LoopUntil` needs condition and frequency configuration
148
-
149
- So the generic metadata contract should preserve enough node-specific structure to power a richer modal form.
150
-
151
- ---
152
-
153
- ## Editor Notes
154
-
155
- This example fits the current editor direction well:
156
-
157
- - code remains the source of truth
158
- - flow visualizes the loop container and body
159
- - node editing should be modal and schema-driven
160
- - docs should explain loop semantics and available configuration
161
-
162
- This is also a good candidate for future validation because it contains:
163
-
164
- - expressions
165
- - loop structure
166
- - nested tasks
167
- - timing configuration
168
-
169
- ---
170
-
171
- ## Future UX Notes
172
-
173
- This example points to a few future needs:
174
-
175
- - loop-type specific modal forms
176
- - duration / interval input UX
177
- - expression assistance for loop conditions
178
- - better visualization of “repeat until” semantics in the docs panel
179
-
180
- ---
181
-
182
- ## Screenshot References
183
-
184
- This screenshot informed the notes above:
185
-
186
- - `/var/folders/z_/h0rqj1693gs4cxm3k_vks86c0000gn/T/TemporaryItems/NSIRD_screencaptureui_hm7Us9/Screenshot 2026-07-10 at 17.18.11.png`
187
-
188
- ---
189
-
190
- ## Recommended Follow-On Use
191
-
192
- This example should be used as a reference for:
193
-
194
- 1. `LoopUntil` node rendering
195
- 2. condition-based loop semantics
196
- 3. interval / max-iteration configuration UX
197
- 4. differentiating loop subtypes in docs and forms
198
- 5. future expression-aware validation for looping constructs
@@ -1,264 +0,0 @@
1
- # Microservices and APIs Example Notes
2
-
3
- ## Purpose
4
-
5
- This document captures a third reference workflow focused on conditional branching and triggers. It is especially useful for the SolidX workflow UI because it shows how an `if / then / else` structure should appear in topology and how triggers can be visualized as a separate grouped area.
6
-
7
- ---
8
-
9
- ## Example Workflow YAML
10
-
11
- ```yaml
12
- id: microservices-and-apis
13
- namespace: tutorial
14
- labels:
15
- name: Microservices and APIs
16
-
17
- inputs:
18
- - id: server_uri
19
- type: URI
20
- defaults: https://kestra.io
21
-
22
- - id: slack_webhook_uri
23
- type: URI
24
- defaults: https://kestra.io/api/mock
25
-
26
- tasks:
27
- - id: http_request
28
- type: io.kestra.plugin.core.http.Request
29
- description: Check the target server endpoint for an HTTP response.
30
- uri: "{{ inputs.server_uri }}"
31
- options:
32
- allowFailed: true
33
-
34
- - id: check_status
35
- type: io.kestra.plugin.core.flow.If
36
- description: Branch based on the HTTP status to alert or confirm health.
37
- condition: "{{ outputs.http_request.code != 200 }}"
38
- then:
39
- - id: server_unreachable_alert
40
- type: io.kestra.plugin.slack.notifications.SlackIncomingWebhook
41
- description: Send a Slack alert if the server cannot be reached.
42
- url: "{{ inputs.slack_webhook_uri }}"
43
- messageText: "The server {{ inputs.server_uri }} is down!"
44
- else:
45
- - id: healthy
46
- type: io.kestra.plugin.core.log.Log
47
- description: Log that the server is responding normally.
48
- message: Everything is fine!
49
-
50
- triggers:
51
- - id: daily
52
- type: io.kestra.plugin.core.trigger.Schedule
53
- disabled: true
54
- cron: 0 9 * * *
55
-
56
- description: |
57
- **Use case:** Simple microservice health check with conditional alerting.
58
- **Schedule:** Disabled daily run at 09:00 to show how to automate recurring checks.
59
- **Highlights:**
60
- - Probe the target server and capture the HTTP response code.
61
- - Branch on non-200 results to send a Slack webhook alert; otherwise log success.
62
- - Parameterize the target URL and webhook for easy reuse across environments.
63
- ```
64
-
65
- ---
66
-
67
- ## What This Example Adds
68
-
69
- This example is the clearest reference so far for:
70
-
71
- - `if / then / else` branching
72
- - visual trigger grouping
73
- - workflow inputs at the top level
74
- - branch child tasks inside a control-flow node
75
- - separate success and failure paths converging back into the main sequence
76
-
77
- ---
78
-
79
- ## High-Level Structure
80
-
81
- The workflow shape is:
82
-
83
- ```text
84
- Triggers
85
- └── daily
86
-
87
- Main Flow
88
- http_request
89
- |
90
- v
91
- check_status
92
- ├── then: server_unreachable_alert
93
- └── else: healthy
94
- ```
95
-
96
- Another useful representation is:
97
-
98
- ```text
99
- Start
100
- |
101
- v
102
- [trigger group: daily]
103
- |
104
- v
105
- http_request
106
- |
107
- v
108
- check_status (If)
109
- |-- then --> server_unreachable_alert
110
- |-- else --> healthy
111
- |
112
- v
113
- End
114
- ```
115
-
116
- ---
117
-
118
- ## Main New Note
119
-
120
- ### Example With `if / then / else` Branching
121
-
122
- This is the key purpose of this example.
123
-
124
- It shows that a workflow topology renderer must support:
125
-
126
- - a control-flow node such as `If`
127
- - visually grouped child branches
128
- - separate `then` and `else` lanes
129
- - branch child nodes rendered inside the control-flow region
130
- - a visual merge back into the primary downstream flow
131
-
132
- This is not just nested sequencing. It is explicit branching.
133
-
134
- ---
135
-
136
- ## Trigger Visualization Notes
137
-
138
- This example also shows that triggers can be represented as a separate visual group from the main task sequence.
139
-
140
- Important implications:
141
-
142
- - triggers should not be treated as ordinary sequential tasks
143
- - trigger nodes should be rendered in their own grouped zone
144
- - the trigger group can visually connect into the main workflow start
145
- - disabled triggers should still be shown, likely with a muted or status-aware treatment
146
-
147
- For SolidX, this strongly suggests:
148
-
149
- - trigger rendering belongs in topology and editor views
150
- - trigger editing can still be delayed, but trigger visualization should be part of the long-term flow model
151
-
152
- ---
153
-
154
- ## Inputs Notes
155
-
156
- This example highlights workflow-level inputs:
157
-
158
- - `server_uri`
159
- - `slack_webhook_uri`
160
-
161
- That means the workflow-definition editor will eventually need a clean workflow-level configuration surface, not just task-level editing.
162
-
163
- Good future implications:
164
-
165
- - workflow metadata and inputs belong in code
166
- - later, they may also deserve a dedicated schema-driven modal or side panel
167
-
168
- ---
169
-
170
- ## Topology Notes
171
-
172
- The reference topology demonstrates three distinct visual concepts together:
173
-
174
- 1. trigger group
175
- 2. sequential task node
176
- 3. branching control-flow group
177
-
178
- That makes this example especially valuable for validating the canvas contract.
179
-
180
- ### Visual Behaviors Observed
181
-
182
- - the trigger sits inside a green grouped region
183
- - the `If` task sits inside a blue grouped region
184
- - the branch children appear inside that `If` region
185
- - the children are positioned as left and right alternatives
186
- - dashed directional connectors preserve the sense of control flow
187
- - the branch appears to rejoin the main vertical sequence
188
-
189
- ---
190
-
191
- ## Implications For SolidX Flow Modeling
192
-
193
- This example implies the React Flow layer must eventually support at least these structural categories:
194
-
195
- - simple task node
196
- - trigger node
197
- - trigger group container
198
- - control-flow node
199
- - branch container
200
- - branch child node
201
-
202
- Even if the first pass simplifies some of this, the metadata and transformation layer should be designed with these categories in mind.
203
-
204
- ---
205
-
206
- ## Edit-Screen Notes
207
-
208
- The edit screenshots again reinforce the desired authoring shell:
209
-
210
- - left: code
211
- - right: topology / flow
212
- - docs may be opened contextually when needed
213
-
214
- This example also shows the code and flow surfaces staying aligned while a structurally richer workflow is displayed.
215
-
216
- That is useful because it proves the editor cannot assume every workflow is purely linear.
217
-
218
- ---
219
-
220
- ## Control-Flow Contract Notes
221
-
222
- This example is a good reminder that the DSL remains the source of truth.
223
-
224
- For this workflow:
225
-
226
- - branch semantics come from the `If` node contract
227
- - branch children are defined by `then` and `else`
228
- - the canvas should reflect those semantics, not invent new ones
229
-
230
- So the flow renderer should be a structured projection of the DSL, not a freeform graph authoring tool.
231
-
232
- ---
233
-
234
- ## Pending Feature Notes
235
-
236
- This example highlights future needs:
237
-
238
- - dedicated trigger authoring UI
239
- - branch-aware flow rendering
240
- - grouped region handling for control-flow nodes
241
- - workflow-level input editing UX
242
- - branch-aware validation feedback in the editor
243
-
244
- ---
245
-
246
- ## Screenshot References
247
-
248
- These screenshots informed the notes above:
249
-
250
- - `/Users/harishpatel/Desktop/Screenshot 2026-07-10 at 17.11.11.png`
251
- - `/Users/harishpatel/Desktop/Screenshot 2026-07-10 at 17.11.22.png`
252
- - `/Users/harishpatel/Desktop/Screenshot 2026-07-10 at 17.11.43.png`
253
-
254
- ---
255
-
256
- ## Recommended Follow-On Use
257
-
258
- This example should be used as a reference for:
259
-
260
- 1. `If` node rendering rules
261
- 2. `then` / `else` lane visualization
262
- 3. trigger-group rendering
263
- 4. branch-aware layout logic
264
- 5. future trigger and workflow-input editing UX
@@ -1,25 +0,0 @@
1
- curl -X POST "http://localhost:3000/api/workflow-definition/by-key/sample-workflow-builder-smoke-test/execute" \
2
- -H "Content-Type: application/json" \
3
- -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOjEsInVzZXJuYW1lIjoic2EiLCJlbWFpbCI6InNhQHNvbGlkeGFpLmNvbSIsInJvbGVzIjpbIkFkbWluIiwiSW50ZXJuYWwgVXNlciJdLCJpYXQiOjE3ODM2MTk0NzgsImV4cCI6MTc4MzcwNTg3OCwiYXVkIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwIiwiaXNzIjoid29ya2Zsb3ctbWFuYWdlbWVudCJ9.58AqoXRkJkCE_U2nJVdhSrz_m-PrG47EnVOYpp3VGMY" \
4
- -d '{
5
- "triggerType": "manual",
6
- "input": {
7
- "name": "Harish",
8
- "runHttp": true,
9
- "url": "https://solidxai.com",
10
- "items": ["alpha", "beta", "gamma"]
11
- }
12
- }'
13
-
14
- curl -X POST "http://localhost:3000/api/workflow-definition/by-key/sample-workflow-builder-smoke-test/execute" \
15
- -H "Content-Type: application/json" \
16
- -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOjEsInVzZXJuYW1lIjoic2EiLCJlbWFpbCI6InNhQHNvbGlkeGFpLmNvbSIsInJvbGVzIjpbIkFkbWluIiwiSW50ZXJuYWwgVXNlciJdLCJpYXQiOjE3ODM2MTk0NzgsImV4cCI6MTc4MzcwNTg3OCwiYXVkIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwIiwiaXNzIjoid29ya2Zsb3ctbWFuYWdlbWVudCJ9.58AqoXRkJkCE_U2nJVdhSrz_m-PrG47EnVOYpp3VGMY" \
17
- -d '{
18
- "triggerType": "manual",
19
- "input": {
20
- "name": "Bhoomi",
21
- "runHttp": true,
22
- "url": "https://solidxai.com",
23
- "items": ["item 1", "item 2", "item 3"]
24
- }
25
- }'
@@ -1,79 +0,0 @@
1
- # What Is Kestra
2
-
3
- This note summarizes the Kestra Academy introduction lessons you shared so we have a common baseline before defining the workflow-management module for SolidX.
4
-
5
- ## Summary
6
-
7
- Kestra presents workflow orchestration using the metaphor of an orchestra conductor. In the same way a conductor coordinates many musicians, a workflow orchestrator coordinates many systems, tools, and steps so work happens in the right order and at the right time.
8
-
9
- At a practical level, workflow orchestration is about:
10
-
11
- - Running multi-step processes in the correct sequence
12
- - Handling failures and retries in a controlled way
13
- - Triggering work from schedules or events
14
- - Giving operators visibility into execution progress and problems
15
-
16
- Kestra positions itself as an open-source orchestration platform that can support everything from small automations to large distributed pipelines. Its core framing is flexibility:
17
-
18
- - Workflows can be authored as code
19
- - Workflows can also be built visually
20
- - The platform is API-first and event-driven
21
- - It is language-agnostic, so each step can use the most suitable runtime
22
- - It is integration-heavy, with a broad plugin ecosystem for external systems
23
-
24
- The main idea is that Kestra is not limited to a single narrow use case. It is meant to be a general orchestration foundation for workflows that span systems, teams, and execution environments.
25
-
26
- ## Key Characteristics Of Kestra
27
-
28
- ### 1. Orchestration, not just scripting
29
-
30
- Kestra is not simply about writing a script with several commands. The orchestration layer is responsible for sequencing, triggering, error handling, observability, and operational control.
31
-
32
- ### 2. Multiple authoring modes
33
-
34
- Kestra supports code-first and visual/no-code workflow creation. That is important for adoption because different users prefer different levels of abstraction.
35
-
36
- ### 3. Event-driven and API-first
37
-
38
- This suggests workflows are not only scheduled jobs. They can also react to external events and be controlled programmatically.
39
-
40
- ### 4. Language-agnostic execution
41
-
42
- A workflow step should not be tightly coupled to one programming language or runtime. The platform should coordinate heterogeneous tasks rather than force everything into a single stack.
43
-
44
- ### 5. Integration as a first-class concern
45
-
46
- Kestra emphasizes connecting to databases, cloud services, APIs, storage, messaging systems, and operational tools. That means orchestration value comes from connecting existing systems reliably, not from replacing them.
47
-
48
- ## Use Cases
49
-
50
- The linked Academy use-cases lesson is mostly a visual overview, but its message is clear: Kestra is intended to support a broad range of workflow patterns rather than one single domain.
51
-
52
- Reasonable use-case categories implied by the introduction are:
53
-
54
- - Data movement and transformation pipelines
55
- - Scheduled operational jobs and batch processing
56
- - API and system-to-system orchestration
57
- - Notifications, alerts, and downstream actions
58
- - Business process automation with dependent steps
59
-
60
- ## What This Means For Our SolidX Module
61
-
62
- If we are building a reusable workflow-management module inspired by Kestra, this summary suggests a few important design principles:
63
-
64
- - We should treat workflow definition and workflow execution as separate but connected concerns.
65
- - We should support both technical and less-technical authoring experiences over time.
66
- - Triggers, retries, failure handling, and execution visibility should be part of the module’s foundation, not afterthoughts.
67
- - The module should orchestrate external systems cleanly instead of assuming all logic lives inside one runtime.
68
- - Reusability will depend on a strong plugin/action model and clean metadata boundaries.
69
-
70
- ## Sources
71
-
72
- - [What is Workflow Orchestration?](https://academy.kestra.io/p/courses/kestra-fundamentals/3492611-introduction/11404069-what-is-workflow-orchestration)
73
- - [What is Kestra?](https://academy.kestra.io/p/courses/kestra-fundamentals/3492611-introduction/11404080-what-is-kestra)
74
- - [Use Cases](https://academy.kestra.io/p/courses/kestra-fundamentals/3492611-introduction/11404082-use-cases)
75
-
76
- ## Notes
77
-
78
- - The first two lessons contained direct explanatory text.
79
- - The use-cases lesson was mostly image-based in the retrieved page, so the use-case categories above are a light inference from the lesson framing plus the surrounding Kestra introduction context.