@orchesty/connector-loki 1.0.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 (36) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/LICENSE +190 -0
  3. package/coverage/clover.xml +106 -0
  4. package/coverage/coverage-final.json +4 -0
  5. package/coverage/lcov-report/base.css +224 -0
  6. package/coverage/lcov-report/block-navigation.js +87 -0
  7. package/coverage/lcov-report/favicon.png +0 -0
  8. package/coverage/lcov-report/index.html +146 -0
  9. package/coverage/lcov-report/prettify.css +1 -0
  10. package/coverage/lcov-report/prettify.js +2 -0
  11. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  12. package/coverage/lcov-report/sorter.js +210 -0
  13. package/coverage/lcov-report/src/Batch/LokiGetQueryListBatch.ts.html +799 -0
  14. package/coverage/lcov-report/src/Batch/index.html +116 -0
  15. package/coverage/lcov-report/src/LokiApplication.ts.html +364 -0
  16. package/coverage/lcov-report/src/index.html +116 -0
  17. package/coverage/lcov-report/test/dataProvider.ts.html +139 -0
  18. package/coverage/lcov-report/test/index.html +116 -0
  19. package/coverage/lcov.info +203 -0
  20. package/dist/Batch/LokiGetQueryListBatch.d.ts +129 -0
  21. package/dist/Batch/LokiGetQueryListBatch.js +68 -0
  22. package/dist/LokiApplication.d.ts +21 -0
  23. package/dist/LokiApplication.js +98 -0
  24. package/dist/package.json +22 -0
  25. package/jest.config.js +13 -0
  26. package/package.json +22 -0
  27. package/src/Batch/LokiGetQueryListBatch.ts +238 -0
  28. package/src/Batch/__tests__/Data/LokiGetQueryListBatch/input.json +8 -0
  29. package/src/Batch/__tests__/Data/LokiGetQueryListBatch/mock.json +259 -0
  30. package/src/Batch/__tests__/Data/LokiGetQueryListBatch/output.json +43 -0
  31. package/src/Batch/__tests__/LokiGetQueryListBatch.ts +17 -0
  32. package/src/LokiApplication.ts +93 -0
  33. package/test/dataProvider.ts +18 -0
  34. package/tsconfig.json +8 -0
  35. package/tsconfig.prod.json +13 -0
  36. package/tsconfig.prod.tsbuildinfo +1 -0
@@ -0,0 +1,259 @@
1
+ {
2
+ "http": "GET http://127.0.0.1:3100/loki/api/v1/query_range?query=%7Bcontainer%3D%22test-container%22%7D",
3
+ "code": 200,
4
+ "body": {
5
+ "status": "success",
6
+ "data": {
7
+ "resultType": "streams",
8
+ "result": [
9
+ {
10
+ "stream": {
11
+ "container": "test-container",
12
+ "detected_level": "unknown",
13
+ "service_name": "test-container"
14
+ },
15
+ "values": [
16
+ [
17
+ "1763718000105421097",
18
+ "{\"level\":50,\"time\":1763718000103,\"pid\":953,\"hostname\":\"3975fa509fa3\",\"previousNodeId\":\"692013fc52d8b25b8607189c\",\"nodeId\":\"692013fc52d8b25b8607189b\",\"correlationId\":\"f814b1a4-e50a-4799-b4e0-e82d3c210eed\",\"topologyId\":\"692013fc52d8b25b86071897\",\"processId\":\"2a4e871b-cdcb-45cc-bc4b-c5cca17ed72c\",\"parentId\":\"35264ef5-90ef-4729-bfd2-342739d3eb18\",\"sequenceId\":\"0\",\"userId\":\"orchesty\",\"timestamp\":1763718000103,\"service\":\"sdk\",\"levelName\":\"error\",\"message\":\"Request process failed. Message: [Error occurred: Service with name [hbpf.custom-node.event-status-filter-messageInTrash] does not exist!]\"}"
19
+ ],
20
+ [
21
+ "1763718000082354870",
22
+ "{\"level\":50,\"time\":1763718000080,\"pid\":953,\"hostname\":\"3975fa509fa3\",\"previousNodeId\":\"692013fc52d8b25b8607189c\",\"nodeId\":\"692013fc52d8b25b8607189a\",\"correlationId\":\"f814b1a4-e50a-4799-b4e0-e82d3c210eed\",\"topologyId\":\"692013fc52d8b25b86071897\",\"processId\":\"178876cb-8de8-4a20-b806-2819dff03a23\",\"parentId\":\"35264ef5-90ef-4729-bfd2-342739d3eb18\",\"sequenceId\":\"0\",\"userId\":\"orchesty\",\"timestamp\":1763718000080,\"service\":\"sdk\",\"levelName\":\"error\",\"message\":\"Request process failed. Message: [Error occurred: Service with name [hbpf.custom-node.event-status-filter-limitOverflow] does not exist!]\"}"
23
+ ],
24
+ [
25
+ "1763718000075690371",
26
+ "{\"level\":50,\"time\":1763718000073,\"pid\":953,\"hostname\":\"3975fa509fa3\",\"previousNodeId\":\"692013fc52d8b25b8607189c\",\"nodeId\":\"692013fc52d8b25b86071899\",\"correlationId\":\"f814b1a4-e50a-4799-b4e0-e82d3c210eed\",\"topologyId\":\"692013fc52d8b25b86071897\",\"processId\":\"08b02c86-ca3e-44a1-ae6a-7aa8adee8e64\",\"parentId\":\"35264ef5-90ef-4729-bfd2-342739d3eb18\",\"sequenceId\":\"0\",\"userId\":\"orchesty\",\"timestamp\":1763718000073,\"service\":\"sdk\",\"levelName\":\"error\",\"message\":\"Request process failed. Message: [Error occurred: Service with name [hbpf.custom-node.event-status-filter-processFailed] does not exist!]\"}"
27
+ ]
28
+ ]
29
+ },
30
+ {
31
+ "stream": {
32
+ "container": "test-container",
33
+ "detected_level": "info",
34
+ "service_name": "test-container"
35
+ },
36
+ "values": [
37
+ [
38
+ "1763716743460138650",
39
+ "{\"level\":30,\"time\":1763716743459,\"pid\":953,\"hostname\":\"3975fa509fa3\",\"previousNodeId\":\"692015f2711ce3b17d0b72f2\",\"nodeId\":\"692015f2711ce3b17d0b72f3\",\"correlationId\":\"56d59e60-4de9-466e-a239-62849f58174f\",\"topologyId\":\"692015dc70454e872a0bc373\",\"processId\":\"a3a8f55a-4931-44da-8fc1-db9f3422ba0a\",\"sequenceId\":\"0\",\"userId\":\"orchesty\",\"applications\":\"loki\",\"timestamp\":1763716743459,\"service\":\"sdk\",\"levelName\":\"info\",\"message\":\"Request successfully processed. Message: [Processed successfully.]\"}"
40
+ ],
41
+ [
42
+ "1763716742150279721",
43
+ "{\"level\":30,\"time\":1763716742142,\"pid\":953,\"hostname\":\"3975fa509fa3\",\"previousNodeId\":\"692015f2711ce3b17d0b72f2\",\"nodeId\":\"692015f2711ce3b17d0b72f3\",\"correlationId\":\"56d59e60-4de9-466e-a239-62849f58174f\",\"topologyId\":\"692015dc70454e872a0bc373\",\"processId\":\"a3a8f55a-4931-44da-8fc1-db9f3422ba0a\",\"sequenceId\":\"0\",\"userId\":\"orchesty\",\"applications\":\"loki\",\"timestamp\":1763716742142,\"service\":\"sdk\",\"levelName\":\"info\",\"message\":\"Request successfully processed. Message: [Message will be used as a iterator with cursor [1763715600133392400]. Data will be send to follower(s).]\"}"
44
+ ],
45
+ [
46
+ "1763716651483968589",
47
+ "{\"level\":30,\"time\":1763716651483,\"pid\":953,\"hostname\":\"3975fa509fa3\",\"previousNodeId\":\"692015f2711ce3b17d0b72f2\",\"nodeId\":\"692015f2711ce3b17d0b72f3\",\"correlationId\":\"d7dfb793-000a-4d72-a385-3f6e2f788ab7\",\"topologyId\":\"692015dc70454e872a0bc373\",\"processId\":\"dcb634b6-1f2b-467d-93a9-618a42c237b1\",\"sequenceId\":\"0\",\"userId\":\"orchesty\",\"applications\":\"loki\",\"timestamp\":1763716651483,\"service\":\"sdk\",\"levelName\":\"info\",\"message\":\"Request successfully processed. Message: [Processed successfully.]\"}"
48
+ ]
49
+ ]
50
+ },
51
+ {
52
+ "stream": {
53
+ "container": "test-container",
54
+ "detected_level": "debug",
55
+ "service_name": "test-container"
56
+ },
57
+ "values": [
58
+ [
59
+ "1763718000105457435",
60
+ "{\"level\":20,\"time\":1763718000104,\"pid\":953,\"hostname\":\"3975fa509fa3\",\"previousNodeId\":\"692013fc52d8b25b8607189c\",\"nodeId\":\"692013fc52d8b25b8607189b\",\"correlationId\":\"f814b1a4-e50a-4799-b4e0-e82d3c210eed\",\"topologyId\":\"692013fc52d8b25b86071897\",\"processId\":\"2a4e871b-cdcb-45cc-bc4b-c5cca17ed72c\",\"parentId\":\"35264ef5-90ef-4729-bfd2-342739d3eb18\",\"sequenceId\":\"0\",\"userId\":\"orchesty\",\"timestamp\":1763718000104,\"service\":\"sdk\",\"levelName\":\"debug\",\"message\":\"Total request duration: 1ms for endpoint POST[/custom-node/event-status-filter-messageInTrash/process]\"}"
61
+ ],
62
+ [
63
+ "1763718000102718589",
64
+ "{\"level\":20,\"time\":1763718000102,\"pid\":953,\"hostname\":\"3975fa509fa3\",\"previousNodeId\":\"692013fc52d8b25b8607189c\",\"nodeId\":\"692013fc52d8b25b8607189b\",\"correlationId\":\"f814b1a4-e50a-4799-b4e0-e82d3c210eed\",\"topologyId\":\"692013fc52d8b25b86071897\",\"processId\":\"2a4e871b-cdcb-45cc-bc4b-c5cca17ed72c\",\"parentId\":\"35264ef5-90ef-4729-bfd2-342739d3eb18\",\"sequenceId\":\"0\",\"userId\":\"orchesty\",\"reqHeaders\":{\"host\":\"worker:8080\",\"user-agent\":\"Go-http-client/1.1\",\"content-length\":\"1011\",\"accept-encoding\":\"gzip\"},\"reqBody\":{\"headers\":{\"applications\":\"\",\"content-type\":\"application/json\",\"correlation-id\":\"f814b1a4-e50a-4799-b4e0-e82d3c210eed\",\"node-id\":\"692013fc52d8b25b8607189b\",\"parent-id\":\"35264ef5-90ef-4729-bfd2-342739d3eb18\",\"previous-node-id\":\"692013fc52d8b25b8607189c\",\"process-id\":\"2a4e871b-cdcb-45cc-bc4b-c5cca17ed72c\",\"process-started\":1763718000047,\"system-event\":\"true\",\"topology-id\":\"692013fc52d8b25b86071897\",\"user\":\"orchesty\",\"worker-followers\":\"[]\"},\"body\":\"{\\\"type\\\":\\\"messageInTrash\\\",\\\"data\\\":{\\\"topologyName\\\":\\\"oauth2-refresh-tokens\\\",\\\"topologyVersion\\\":0,\\\"applications\\\":\\\"\\\",\\\"topologyId\\\":\\\"692013fa52d8b25b86071892\\\",\\\"resultMessage\\\":\\\"result status [400], message: Error occurred: Service with name [hbpf.batch.get-application-for-refresh] does not exist!\\\",\\\"correlationId\\\":\\\"4a83b1fc-5de7-475f-b4cf-8dec88fcbaeb\\\",\\\"processId\\\":\\\"b7cd93cf-03e6-4a0e-a2bb-a7b06b26346f\\\",\\\"user\\\":\\\"orchesty\\\",\\\"timestampMs\\\":1763718000018},\\\"contents\\\":[{\\\"trashId\\\":\\\"69203370ecd9fd9edfd75929\\\",\\\"body\\\":\\\"{}\\\\n\\\"}]}\"},\"timestamp\":1763718000102,\"service\":\"sdk\",\"levelName\":\"debug\",\"message\":\"Incoming request: Method[POST] Url[/custom-node/event-status-filter-messageInTrash/process]\"}"
65
+ ],
66
+ [
67
+ "1763718000082385057",
68
+ "{\"level\":20,\"time\":1763718000081,\"pid\":953,\"hostname\":\"3975fa509fa3\",\"previousNodeId\":\"692013fc52d8b25b8607189c\",\"nodeId\":\"692013fc52d8b25b8607189a\",\"correlationId\":\"f814b1a4-e50a-4799-b4e0-e82d3c210eed\",\"topologyId\":\"692013fc52d8b25b86071897\",\"processId\":\"178876cb-8de8-4a20-b806-2819dff03a23\",\"parentId\":\"35264ef5-90ef-4729-bfd2-342739d3eb18\",\"sequenceId\":\"0\",\"userId\":\"orchesty\",\"timestamp\":1763718000081,\"service\":\"sdk\",\"levelName\":\"debug\",\"message\":\"Total request duration: 2ms for endpoint POST[/custom-node/event-status-filter-limitOverflow/process]\"}"
69
+ ]
70
+ ]
71
+ }
72
+ ],
73
+ "stats": {
74
+ "summary": {
75
+ "bytesProcessedPerSecond": 9164713,
76
+ "linesProcessedPerSecond": 6777,
77
+ "totalBytesProcessed": 164974,
78
+ "totalLinesProcessed": 122,
79
+ "execTime": 0.018001,
80
+ "queueTime": 0.000182,
81
+ "subqueries": 0,
82
+ "totalEntriesReturned": 100,
83
+ "splits": 1,
84
+ "shards": 1,
85
+ "totalPostFilterLines": 122,
86
+ "totalStructuredMetadataBytesProcessed": 3000
87
+ },
88
+ "querier": {
89
+ "store": {
90
+ "totalChunksRef": 0,
91
+ "totalChunksDownloaded": 0,
92
+ "chunksDownloadTime": 0,
93
+ "queryReferencedStructuredMetadata": false,
94
+ "queryUsedV2Engine": false,
95
+ "chunk": {
96
+ "headChunkBytes": 0,
97
+ "headChunkLines": 0,
98
+ "decompressedBytes": 0,
99
+ "decompressedLines": 0,
100
+ "compressedBytes": 0,
101
+ "totalDuplicates": 0,
102
+ "postFilterLines": 0,
103
+ "headChunkStructuredMetadataBytes": 0,
104
+ "decompressedStructuredMetadataBytes": 0
105
+ },
106
+ "chunkRefsFetchTime": 1375760,
107
+ "congestionControlLatency": 0,
108
+ "pipelineWrapperFilteredLines": 0,
109
+ "dataobj": {
110
+ "prePredicateDecompressedRows": 0,
111
+ "prePredicateDecompressedBytes": 0,
112
+ "prePredicateDecompressedStructuredMetadataBytes": 0,
113
+ "postPredicateRows": 0,
114
+ "postPredicateDecompressedBytes": 0,
115
+ "postPredicateStructuredMetadataBytes": 0,
116
+ "postFilterRows": 0,
117
+ "pagesScanned": 0,
118
+ "pagesDownloaded": 0,
119
+ "pagesDownloadedBytes": 0,
120
+ "pageBatches": 0,
121
+ "totalRowsAvailable": 0,
122
+ "totalPageDownloadTime": 0
123
+ }
124
+ }
125
+ },
126
+ "ingester": {
127
+ "totalReached": 1,
128
+ "totalChunksMatched": 2,
129
+ "totalBatches": 1,
130
+ "totalLinesSent": 100,
131
+ "store": {
132
+ "totalChunksRef": 0,
133
+ "totalChunksDownloaded": 0,
134
+ "chunksDownloadTime": 0,
135
+ "queryReferencedStructuredMetadata": false,
136
+ "queryUsedV2Engine": false,
137
+ "chunk": {
138
+ "headChunkBytes": 27194,
139
+ "headChunkLines": 30,
140
+ "decompressedBytes": 137780,
141
+ "decompressedLines": 92,
142
+ "compressedBytes": 65197,
143
+ "totalDuplicates": 0,
144
+ "postFilterLines": 122,
145
+ "headChunkStructuredMetadataBytes": 240,
146
+ "decompressedStructuredMetadataBytes": 2760
147
+ },
148
+ "chunkRefsFetchTime": 0,
149
+ "congestionControlLatency": 0,
150
+ "pipelineWrapperFilteredLines": 0,
151
+ "dataobj": {
152
+ "prePredicateDecompressedRows": 0,
153
+ "prePredicateDecompressedBytes": 0,
154
+ "prePredicateDecompressedStructuredMetadataBytes": 0,
155
+ "postPredicateRows": 0,
156
+ "postPredicateDecompressedBytes": 0,
157
+ "postPredicateStructuredMetadataBytes": 0,
158
+ "postFilterRows": 0,
159
+ "pagesScanned": 0,
160
+ "pagesDownloaded": 0,
161
+ "pagesDownloadedBytes": 0,
162
+ "pageBatches": 0,
163
+ "totalRowsAvailable": 0,
164
+ "totalPageDownloadTime": 0
165
+ }
166
+ }
167
+ },
168
+ "cache": {
169
+ "chunk": {
170
+ "entriesFound": 0,
171
+ "entriesRequested": 0,
172
+ "entriesStored": 0,
173
+ "bytesReceived": 0,
174
+ "bytesSent": 0,
175
+ "requests": 0,
176
+ "downloadTime": 0,
177
+ "queryLengthServed": 0
178
+ },
179
+ "index": {
180
+ "entriesFound": 0,
181
+ "entriesRequested": 0,
182
+ "entriesStored": 0,
183
+ "bytesReceived": 0,
184
+ "bytesSent": 0,
185
+ "requests": 0,
186
+ "downloadTime": 0,
187
+ "queryLengthServed": 0
188
+ },
189
+ "result": {
190
+ "entriesFound": 0,
191
+ "entriesRequested": 0,
192
+ "entriesStored": 0,
193
+ "bytesReceived": 0,
194
+ "bytesSent": 0,
195
+ "requests": 0,
196
+ "downloadTime": 0,
197
+ "queryLengthServed": 0
198
+ },
199
+ "statsResult": {
200
+ "entriesFound": 0,
201
+ "entriesRequested": 0,
202
+ "entriesStored": 0,
203
+ "bytesReceived": 0,
204
+ "bytesSent": 0,
205
+ "requests": 0,
206
+ "downloadTime": 0,
207
+ "queryLengthServed": 0
208
+ },
209
+ "volumeResult": {
210
+ "entriesFound": 0,
211
+ "entriesRequested": 0,
212
+ "entriesStored": 0,
213
+ "bytesReceived": 0,
214
+ "bytesSent": 0,
215
+ "requests": 0,
216
+ "downloadTime": 0,
217
+ "queryLengthServed": 0
218
+ },
219
+ "seriesResult": {
220
+ "entriesFound": 0,
221
+ "entriesRequested": 0,
222
+ "entriesStored": 0,
223
+ "bytesReceived": 0,
224
+ "bytesSent": 0,
225
+ "requests": 0,
226
+ "downloadTime": 0,
227
+ "queryLengthServed": 0
228
+ },
229
+ "labelResult": {
230
+ "entriesFound": 0,
231
+ "entriesRequested": 0,
232
+ "entriesStored": 0,
233
+ "bytesReceived": 0,
234
+ "bytesSent": 0,
235
+ "requests": 0,
236
+ "downloadTime": 0,
237
+ "queryLengthServed": 0
238
+ },
239
+ "instantMetricResult": {
240
+ "entriesFound": 0,
241
+ "entriesRequested": 0,
242
+ "entriesStored": 0,
243
+ "bytesReceived": 0,
244
+ "bytesSent": 0,
245
+ "requests": 0,
246
+ "downloadTime": 0,
247
+ "queryLengthServed": 0
248
+ }
249
+ },
250
+ "index": {
251
+ "totalChunks": 0,
252
+ "postFilterChunks": 0,
253
+ "shardsDuration": 0,
254
+ "usedBloomFilters": false
255
+ }
256
+ }
257
+ }
258
+ }
259
+ }
@@ -0,0 +1,43 @@
1
+ {
2
+ "headers": {
3
+ "user": "TestUser"
4
+ },
5
+ "data": [
6
+ {
7
+ "body": "{\"level\":20,\"time\":1763718000104,\"pid\":953,\"hostname\":\"3975fa509fa3\",\"previousNodeId\":\"692013fc52d8b25b8607189c\",\"nodeId\":\"692013fc52d8b25b8607189b\",\"correlationId\":\"f814b1a4-e50a-4799-b4e0-e82d3c210eed\",\"topologyId\":\"692013fc52d8b25b86071897\",\"processId\":\"2a4e871b-cdcb-45cc-bc4b-c5cca17ed72c\",\"parentId\":\"35264ef5-90ef-4729-bfd2-342739d3eb18\",\"sequenceId\":\"0\",\"userId\":\"orchesty\",\"timestamp\":1763718000104,\"service\":\"sdk\",\"levelName\":\"debug\",\"message\":\"Total request duration: 1ms for endpoint POST[/custom-node/event-status-filter-messageInTrash/process]\"}",
8
+ "headers": {}
9
+ },
10
+ {
11
+ "body": "{\"level\":50,\"time\":1763718000103,\"pid\":953,\"hostname\":\"3975fa509fa3\",\"previousNodeId\":\"692013fc52d8b25b8607189c\",\"nodeId\":\"692013fc52d8b25b8607189b\",\"correlationId\":\"f814b1a4-e50a-4799-b4e0-e82d3c210eed\",\"topologyId\":\"692013fc52d8b25b86071897\",\"processId\":\"2a4e871b-cdcb-45cc-bc4b-c5cca17ed72c\",\"parentId\":\"35264ef5-90ef-4729-bfd2-342739d3eb18\",\"sequenceId\":\"0\",\"userId\":\"orchesty\",\"timestamp\":1763718000103,\"service\":\"sdk\",\"levelName\":\"error\",\"message\":\"Request process failed. Message: [Error occurred: Service with name [hbpf.custom-node.event-status-filter-messageInTrash] does not exist!]\"}",
12
+ "headers": {}
13
+ },
14
+ {
15
+ "body": "{\"level\":20,\"time\":1763718000102,\"pid\":953,\"hostname\":\"3975fa509fa3\",\"previousNodeId\":\"692013fc52d8b25b8607189c\",\"nodeId\":\"692013fc52d8b25b8607189b\",\"correlationId\":\"f814b1a4-e50a-4799-b4e0-e82d3c210eed\",\"topologyId\":\"692013fc52d8b25b86071897\",\"processId\":\"2a4e871b-cdcb-45cc-bc4b-c5cca17ed72c\",\"parentId\":\"35264ef5-90ef-4729-bfd2-342739d3eb18\",\"sequenceId\":\"0\",\"userId\":\"orchesty\",\"reqHeaders\":{\"host\":\"worker:8080\",\"user-agent\":\"Go-http-client/1.1\",\"content-length\":\"1011\",\"accept-encoding\":\"gzip\"},\"reqBody\":{\"headers\":{\"applications\":\"\",\"content-type\":\"application/json\",\"correlation-id\":\"f814b1a4-e50a-4799-b4e0-e82d3c210eed\",\"node-id\":\"692013fc52d8b25b8607189b\",\"parent-id\":\"35264ef5-90ef-4729-bfd2-342739d3eb18\",\"previous-node-id\":\"692013fc52d8b25b8607189c\",\"process-id\":\"2a4e871b-cdcb-45cc-bc4b-c5cca17ed72c\",\"process-started\":1763718000047,\"system-event\":\"true\",\"topology-id\":\"692013fc52d8b25b86071897\",\"user\":\"orchesty\",\"worker-followers\":\"[]\"},\"body\":\"{\\\"type\\\":\\\"messageInTrash\\\",\\\"data\\\":{\\\"topologyName\\\":\\\"oauth2-refresh-tokens\\\",\\\"topologyVersion\\\":0,\\\"applications\\\":\\\"\\\",\\\"topologyId\\\":\\\"692013fa52d8b25b86071892\\\",\\\"resultMessage\\\":\\\"result status [400], message: Error occurred: Service with name [hbpf.batch.get-application-for-refresh] does not exist!\\\",\\\"correlationId\\\":\\\"4a83b1fc-5de7-475f-b4cf-8dec88fcbaeb\\\",\\\"processId\\\":\\\"b7cd93cf-03e6-4a0e-a2bb-a7b06b26346f\\\",\\\"user\\\":\\\"orchesty\\\",\\\"timestampMs\\\":1763718000018},\\\"contents\\\":[{\\\"trashId\\\":\\\"69203370ecd9fd9edfd75929\\\",\\\"body\\\":\\\"{}\\\\n\\\"}]}\"},\"timestamp\":1763718000102,\"service\":\"sdk\",\"levelName\":\"debug\",\"message\":\"Incoming request: Method[POST] Url[/custom-node/event-status-filter-messageInTrash/process]\"}",
16
+ "headers": {}
17
+ },
18
+ {
19
+ "body": "{\"level\":20,\"time\":1763718000081,\"pid\":953,\"hostname\":\"3975fa509fa3\",\"previousNodeId\":\"692013fc52d8b25b8607189c\",\"nodeId\":\"692013fc52d8b25b8607189a\",\"correlationId\":\"f814b1a4-e50a-4799-b4e0-e82d3c210eed\",\"topologyId\":\"692013fc52d8b25b86071897\",\"processId\":\"178876cb-8de8-4a20-b806-2819dff03a23\",\"parentId\":\"35264ef5-90ef-4729-bfd2-342739d3eb18\",\"sequenceId\":\"0\",\"userId\":\"orchesty\",\"timestamp\":1763718000081,\"service\":\"sdk\",\"levelName\":\"debug\",\"message\":\"Total request duration: 2ms for endpoint POST[/custom-node/event-status-filter-limitOverflow/process]\"}",
20
+ "headers": {}
21
+ },
22
+ {
23
+ "body": "{\"level\":50,\"time\":1763718000080,\"pid\":953,\"hostname\":\"3975fa509fa3\",\"previousNodeId\":\"692013fc52d8b25b8607189c\",\"nodeId\":\"692013fc52d8b25b8607189a\",\"correlationId\":\"f814b1a4-e50a-4799-b4e0-e82d3c210eed\",\"topologyId\":\"692013fc52d8b25b86071897\",\"processId\":\"178876cb-8de8-4a20-b806-2819dff03a23\",\"parentId\":\"35264ef5-90ef-4729-bfd2-342739d3eb18\",\"sequenceId\":\"0\",\"userId\":\"orchesty\",\"timestamp\":1763718000080,\"service\":\"sdk\",\"levelName\":\"error\",\"message\":\"Request process failed. Message: [Error occurred: Service with name [hbpf.custom-node.event-status-filter-limitOverflow] does not exist!]\"}",
24
+ "headers": {}
25
+ },
26
+ {
27
+ "body": "{\"level\":50,\"time\":1763718000073,\"pid\":953,\"hostname\":\"3975fa509fa3\",\"previousNodeId\":\"692013fc52d8b25b8607189c\",\"nodeId\":\"692013fc52d8b25b86071899\",\"correlationId\":\"f814b1a4-e50a-4799-b4e0-e82d3c210eed\",\"topologyId\":\"692013fc52d8b25b86071897\",\"processId\":\"08b02c86-ca3e-44a1-ae6a-7aa8adee8e64\",\"parentId\":\"35264ef5-90ef-4729-bfd2-342739d3eb18\",\"sequenceId\":\"0\",\"userId\":\"orchesty\",\"timestamp\":1763718000073,\"service\":\"sdk\",\"levelName\":\"error\",\"message\":\"Request process failed. Message: [Error occurred: Service with name [hbpf.custom-node.event-status-filter-processFailed] does not exist!]\"}",
28
+ "headers": {}
29
+ },
30
+ {
31
+ "body": "{\"level\":30,\"time\":1763716743459,\"pid\":953,\"hostname\":\"3975fa509fa3\",\"previousNodeId\":\"692015f2711ce3b17d0b72f2\",\"nodeId\":\"692015f2711ce3b17d0b72f3\",\"correlationId\":\"56d59e60-4de9-466e-a239-62849f58174f\",\"topologyId\":\"692015dc70454e872a0bc373\",\"processId\":\"a3a8f55a-4931-44da-8fc1-db9f3422ba0a\",\"sequenceId\":\"0\",\"userId\":\"orchesty\",\"applications\":\"loki\",\"timestamp\":1763716743459,\"service\":\"sdk\",\"levelName\":\"info\",\"message\":\"Request successfully processed. Message: [Processed successfully.]\"}",
32
+ "headers": {}
33
+ },
34
+ {
35
+ "body": "{\"level\":30,\"time\":1763716742142,\"pid\":953,\"hostname\":\"3975fa509fa3\",\"previousNodeId\":\"692015f2711ce3b17d0b72f2\",\"nodeId\":\"692015f2711ce3b17d0b72f3\",\"correlationId\":\"56d59e60-4de9-466e-a239-62849f58174f\",\"topologyId\":\"692015dc70454e872a0bc373\",\"processId\":\"a3a8f55a-4931-44da-8fc1-db9f3422ba0a\",\"sequenceId\":\"0\",\"userId\":\"orchesty\",\"applications\":\"loki\",\"timestamp\":1763716742142,\"service\":\"sdk\",\"levelName\":\"info\",\"message\":\"Request successfully processed. Message: [Message will be used as a iterator with cursor [1763715600133392400]. Data will be send to follower(s).]\"}",
36
+ "headers": {}
37
+ },
38
+ {
39
+ "body": "{\"level\":30,\"time\":1763716651483,\"pid\":953,\"hostname\":\"3975fa509fa3\",\"previousNodeId\":\"692015f2711ce3b17d0b72f2\",\"nodeId\":\"692015f2711ce3b17d0b72f3\",\"correlationId\":\"d7dfb793-000a-4d72-a385-3f6e2f788ab7\",\"topologyId\":\"692015dc70454e872a0bc373\",\"processId\":\"dcb634b6-1f2b-467d-93a9-618a42c237b1\",\"sequenceId\":\"0\",\"userId\":\"orchesty\",\"applications\":\"loki\",\"timestamp\":1763716651483,\"service\":\"sdk\",\"levelName\":\"info\",\"message\":\"Request successfully processed. Message: [Processed successfully.]\"}",
40
+ "headers": {}
41
+ }
42
+ ]
43
+ }
@@ -0,0 +1,17 @@
1
+ import { container } from '@orchesty/nodejs-connectors/test/TestAbstract';
2
+ import NodeTester from '@orchesty/nodejs-sdk/dist/test/Testers/NodeTester';
3
+ import init from '../../../test/dataProvider';
4
+ import { NAME as LOKI_GET_QUERY_LIST_BATCH } from '../LokiGetQueryListBatch';
5
+
6
+ let tester: NodeTester;
7
+
8
+ describe('Tests for LokiGetQueryListBatch', () => {
9
+ beforeEach(() => {
10
+ tester = new NodeTester(container, __filename);
11
+ init();
12
+ });
13
+
14
+ it('process - ok', async () => {
15
+ await tester.testBatch(LOKI_GET_QUERY_LIST_BATCH);
16
+ });
17
+ });
@@ -0,0 +1,93 @@
1
+ import CoreFormsEnum, { getFormName } from '@orchesty/nodejs-sdk/dist/lib/Application/Base/CoreFormsEnum';
2
+ import { ApplicationInstall } from '@orchesty/nodejs-sdk/dist/lib/Application/Database/ApplicationInstall';
3
+ import Field from '@orchesty/nodejs-sdk/dist/lib/Application/Model/Form/Field';
4
+ import FieldType from '@orchesty/nodejs-sdk/dist/lib/Application/Model/Form/FieldType';
5
+ import Form from '@orchesty/nodejs-sdk/dist/lib/Application/Model/Form/Form';
6
+ import FormStack from '@orchesty/nodejs-sdk/dist/lib/Application/Model/Form/FormStack';
7
+ import { ABasicApplication, PASSWORD, USER } from '@orchesty/nodejs-sdk/dist/lib/Authorization/Type/Basic/ABasicApplication';
8
+ import RequestDto from '@orchesty/nodejs-sdk/dist/lib/Transport/Curl/RequestDto';
9
+ import { HttpMethods } from '@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods';
10
+ import AProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/AProcessDto';
11
+ import { encode } from '@orchesty/nodejs-sdk/dist/lib/Utils/Base64';
12
+ import { CommonHeaders, JSON_TYPE } from '@orchesty/nodejs-sdk/dist/lib/Utils/Headers';
13
+
14
+ export const NAME = 'loki';
15
+
16
+ export const TENANT_KEY = 'tenant';
17
+ export const URL_KEY = 'url';
18
+
19
+ export enum LokiHeaders {
20
+ TENANT = 'X-Scope-OrgID',
21
+ }
22
+
23
+ export default class LokiApplication extends ABasicApplication {
24
+
25
+ public getName(): string {
26
+ return NAME;
27
+ }
28
+
29
+ public getDescription(): string {
30
+ return 'Grafana Loki is a set of open source components that can be composed into a fully featured logging stack. A small index and highly compressed chunks simplifies the operation and significantly lowers the cost of Loki.';
31
+ }
32
+
33
+ public getPublicName(): string {
34
+ return 'Loki';
35
+ }
36
+
37
+ public getLogo(): string {
38
+ return 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5MCIgaGVpZ2h0PSIxMDQiIHhtbDpzcGFjZT0icHJlc2VydmUiIHZlcnNpb249IjEuMSI+CiA8ZGVmcz4KICA8bGluZWFyR3JhZGllbnQgeTI9Ii0xMC4wMzIyNyIgeDI9Ii0xLjExNjg4IiB5MT0iMy4yMDUxNSIgeDE9IjAuOTIwMTYiIGlkPSJTVkdJRF8xXyI+CiAgIDxzdG9wIHN0b3AtY29sb3I9IiNmYWVkMWUiIG9mZnNldD0iMCIvPgogICA8c3RvcCBzdG9wLWNvbG9yPSIjZjE1YjJiIiBvZmZzZXQ9IjEiLz4KICA8L2xpbmVhckdyYWRpZW50PgogIDxsaW5lYXJHcmFkaWVudCB5Mj0iLTUuODA2NjQiIHgyPSIwLjE0NDEiIHkxPSIzLjI5MTEyIiB4MT0iMC42NTg4OCIgaWQ9IlNWR0lEXzJfIj4KICAgPHN0b3Agc3RvcC1jb2xvcj0iI2ZhZWQxZSIgb2Zmc2V0PSIwIi8+CiAgIDxzdG9wIHN0b3AtY29sb3I9IiNmMTViMmIiIG9mZnNldD0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPGxpbmVhckdyYWRpZW50IHkyPSItOC42NzU2OSIgeDI9Ii0wLjkwODEzIiB5MT0iNC41NjE3MyIgeDE9IjEuMTI4OTEiIGlkPSJTVkdJRF8zXyI+CiAgIDxzdG9wIHN0b3AtY29sb3I9IiNmYWVkMWUiIG9mZnNldD0iMCIvPgogICA8c3RvcCBzdG9wLWNvbG9yPSIjZjE1YjJiIiBvZmZzZXQ9IjEiLz4KICA8L2xpbmVhckdyYWRpZW50PgogIDxsaW5lYXJHcmFkaWVudCB5Mj0iLTEwLjAzMjg2IiB4Mj0iLTEuMTE3MTEiIHkxPSIzLjIwNDU3IiB4MT0iMC45MTk5MyIgaWQ9IlNWR0lEXzRfIj4KICAgPHN0b3Agc3RvcC1jb2xvcj0iI2ZhZWQxZSIgb2Zmc2V0PSIwIi8+CiAgIDxzdG9wIHN0b3AtY29sb3I9IiNmMTViMmIiIG9mZnNldD0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPGxpbmVhckdyYWRpZW50IHkyPSItOC42NzU1OCIgeDI9Ii0wLjkwOTY3IiB5MT0iNC41NjE4NCIgeDE9IjEuMTI5NSIgaWQ9IlNWR0lEXzVfIj4KICAgPHN0b3Agc3RvcC1jb2xvcj0iI2ZhZWQxZSIgb2Zmc2V0PSIwIi8+CiAgIDxzdG9wIHN0b3AtY29sb3I9IiNmMTViMmIiIG9mZnNldD0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPGxpbmVhckdyYWRpZW50IHkyPSItNi43MzkwNyIgeDI9IjAuMDkxNDkiIHkxPSIyLjM1ODY5IiB4MT0iMC42MDYyNyIgaWQ9IlNWR0lEXzZfIj4KICAgPHN0b3Agc3RvcC1jb2xvcj0iI2ZhZWQxZSIgb2Zmc2V0PSIwIi8+CiAgIDxzdG9wIHN0b3AtY29sb3I9IiNmMTViMmIiIG9mZnNldD0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPGxpbmVhckdyYWRpZW50IHkyPSItMTAuMDMyMzkiIHgyPSItMS4xMTg1MSIgeTE9IjMuMjA1MDQiIHgxPSIwLjkyMDY3IiBpZD0iU1ZHSURfN18iPgogICA8c3RvcCBzdG9wLWNvbG9yPSIjZmFlZDFlIiBvZmZzZXQ9IjAiLz4KICAgPHN0b3Agc3RvcC1jb2xvcj0iI2YxNWIyYiIgb2Zmc2V0PSIxIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8bGluZWFyR3JhZGllbnQgeTI9Ii04LjY3NjE2IiB4Mj0iLTAuOTA3OSIgeTE9IjQuNTYxMjYiIHgxPSIxLjEyOTE0IiBpZD0iU1ZHSURfOF8iPgogICA8c3RvcCBzdG9wLWNvbG9yPSIjZmFlZDFlIiBvZmZzZXQ9IjAiLz4KICAgPHN0b3Agc3RvcC1jb2xvcj0iI2YxNWIyYiIgb2Zmc2V0PSIxIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8bGluZWFyR3JhZGllbnQgeTI9Ii0wLjEyMzkyIiB4Mj0iMC4wMzQxMiIgeTE9IjEuNjcyMjciIHgxPSIxLjM4MzI0IiBpZD0iU1ZHSURfOV8iPgogICA8c3RvcCBzdG9wLWNvbG9yPSIjZmFlZDFlIiBvZmZzZXQ9IjAiLz4KICAgPHN0b3Agc3RvcC1jb2xvcj0iI2YxNWIyYiIgb2Zmc2V0PSIxIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8bGluZWFyR3JhZGllbnQgeTI9Ii0wLjEyNDI5IiB4Mj0iMC4wMjU1MiIgeTE9IjEuNjcyOTQiIHgxPSIxLjM5ODc4IiBpZD0iU1ZHSURfMTBfIj4KICAgPHN0b3Agc3RvcC1jb2xvcj0iI2ZhZWQxZSIgb2Zmc2V0PSIwIi8+CiAgIDxzdG9wIHN0b3AtY29sb3I9IiNmMTViMmIiIG9mZnNldD0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPGxpbmVhckdyYWRpZW50IHkyPSItMC4xMjQ2MiIgeDI9IjAuMDE4OCIgeTE9IjEuNjczNjEiIHgxPSIxLjQxMTIiIGlkPSJTVkdJRF8xMV8iPgogICA8c3RvcCBzdG9wLWNvbG9yPSIjZmFlZDFlIiBvZmZzZXQ9IjAiLz4KICAgPHN0b3Agc3RvcC1jb2xvcj0iI2YxNWIyYiIgb2Zmc2V0PSIxIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8bGluZWFyR3JhZGllbnQgeTI9Ii0wLjEyNDEzIiB4Mj0iMC4wMjk5MSIgeTE9IjEuNjcyNzgiIHgxPSIxLjM5MTI5IiBpZD0iU1ZHSURfMTJfIj4KICAgPHN0b3Agc3RvcC1jb2xvcj0iI2ZhZWQxZSIgb2Zmc2V0PSIwIi8+CiAgIDxzdG9wIHN0b3AtY29sb3I9IiNmMTViMmIiIG9mZnNldD0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPGxpbmVhckdyYWRpZW50IHkyPSItMC4xMjM2MSIgeDI9IjAuMDQ0NDciIHkxPSIxLjY3MTUxIiB4MT0iMS4zNjQ0NCIgaWQ9IlNWR0lEXzEzXyI+CiAgIDxzdG9wIHN0b3AtY29sb3I9IiNmYWVkMWUiIG9mZnNldD0iMCIvPgogICA8c3RvcCBzdG9wLWNvbG9yPSIjZjE1YjJiIiBvZmZzZXQ9IjEiLz4KICA8L2xpbmVhckdyYWRpZW50PgogIDxsaW5lYXJHcmFkaWVudCB5Mj0iLTAuMTIzODQiIHgyPSIwLjAzOTciIHkxPSIxLjY3MTkiIHgxPSIxLjM3MzA0IiBpZD0iU1ZHSURfMTRfIj4KICAgPHN0b3Agc3RvcC1jb2xvcj0iI2ZhZWQxZSIgb2Zmc2V0PSIwIi8+CiAgIDxzdG9wIHN0b3AtY29sb3I9IiNmMTViMmIiIG9mZnNldD0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiA8L2RlZnM+CiA8Zz4KICA8dGl0bGU+TGF5ZXIgMTwvdGl0bGU+CiAgPGcgaWQ9InN2Z18xIj4KICAgPGcgaWQ9InN2Z18xNSI+CiAgICA8cG9seWdvbiBpZD0ic3ZnXzE2IiBmaWxsPSJ1cmwoI1NWR0lEXzFfKSIgcG9pbnRzPSIyMS4xODk5OTQ4MTIwMTE3Miw5NC4zNTk5OTc1NzA1MTQ2OCAxMi45MDk5OTYwMzI3MTQ4NDQsOTUuNjM5OTk2MzQ5ODExNTUgMTQuMTg5OTk0ODEyMDExNzE5LDEwMy45MjAwMDI3NTg1MDI5NiAyMi40NzAwMDEyMjA3MDMxMjUsMTAyLjY0OTk5ODQ4NjA0MjAyICIvPgogICAgPHBvbHlnb24gaWQ9InN2Z18xNyIgZmlsbD0idXJsKCNTVkdJRF8yXykiIHBvaW50cz0iNTEuMDkwMDAzOTY3Mjg1MTU2LDg0Ljk2OTk5ODE4MDg2NjI0IDg3LjY1MDAwMTUyNTg3ODksNzkuMzQwMDAwOTI3NDQ4MjcgODYuMzcwMDAyNzQ2NTgyMDMsNzEuMDYwMDAyMTQ4MTUxNCA0OS44MTk5OTk2OTQ4MjQyMiw3Ni42Nzk5OTcyNjUzMzg5ICIvPgogICAgPHBvbHlnb24gaWQ9InN2Z18xOCIgZmlsbD0idXJsKCNTVkdJRF8zXykiIHBvaW50cz0iMzYuODQ5OTk4NDc0MTIxMDk0LDc4LjY3OTk5NzI2NTMzODkgMzguMTE5OTk1MTE3MTg3NSw4Ni45NjAwMDM2NzQwMzAzIDQ2LjQwOTk5NjAzMjcxNDg0NCw4NS42ODk5OTk0MDE1NjkzNyA0NS4xMjk5OTcyNTM0MTc5Nyw3Ny4zOTk5OTg0ODYwNDIwMiAiLz4KICAgIDxwb2x5Z29uIGlkPSJzdmdfMTkiIGZpbGw9InVybCgjU1ZHSURfNF8pIiBwb2ludHM9IjM1LjQzOTk5NDgxMjAxMTcyLDEwMC42NDk5OTg0ODYwNDIwMiAzNC4xNTk5OTYwMzI3MTQ4NDQsOTIuMzY5OTk5NzA2NzQ1MTUgMjUuODc5OTk3MjUzNDE3OTcsOTMuNjM5OTk2MzQ5ODExNTUgMjcuMTUwMDAxNTI1ODc4OTA2LDEwMS45Mjk5OTcyNjUzMzg5ICIvPgogICAgPHBvbHlnb24gaWQ9InN2Z18yMCIgZmlsbD0idXJsKCNTVkdJRF81XykiIHBvaW50cz0iMTIuMTg5OTk0ODEyMDExNzE5LDkwLjk1MDAwMTUzNzc5OTg0IDIwLjQ3MDAwMTIyMDcwMzEyNSw4OS42Nzk5OTcyNjUzMzg5IDE5LjE5OTk5Njk0ODI0MjE4OCw4MS4zODk5OTYzNDk4MTE1NSAxMC45MTk5OTgxNjg5NDUzMTIsODIuNjcwMDAyNzU4NTAyOTYgIi8+CiAgICA8cG9seWdvbiBpZD0ic3ZnXzIxIiBmaWxsPSJ1cmwoI1NWR0lEXzZfKSIgcG9pbnRzPSI4OC4zNzAwMDI3NDY1ODIwMyw4NC4wMzAwMDMzNjg4NTQ1MiA1MS44MTAwMDUxODc5ODgyOCw4OS42NDk5OTg0ODYwNDIwMiA1My4wOTAwMDM5NjcyODUxNTYsOTcuOTM5OTk5NDAxNTY5MzcgODkuNjM5OTkxNzYwMjUzOSw5Mi4zMTAwMDIxNDgxNTE0ICIvPgogICAgPHBvbHlnb24gaWQ9InN2Z18yMiIgZmlsbD0idXJsKCNTVkdJRF83XykiIHBvaW50cz0iMzguODQ5OTk4NDc0MTIxMDk0LDkxLjY0OTk5ODQ4NjA0MjAyIDQwLjExOTk5NTExNzE4NzUsOTkuOTI5OTk3MjY1MzM4OSA0OC40MDAwMDE1MjU4Nzg5MDYsOTguNjYwMDAwNjIyMjcyNDkgNDcuMTI5OTk3MjUzNDE3OTcsOTAuMzY5OTk5NzA2NzQ1MTUgIi8+CiAgICA8cG9seWdvbiBpZD0ic3ZnXzIzIiBmaWxsPSJ1cmwoI1NWR0lEXzhfKSIgcG9pbnRzPSIyNS4xNTk5OTYwMzI3MTQ4NDQsODguOTYwMDAzNjc0MDMwMyAzMy40Mzk5OTQ4MTIwMTE3Miw4Ny42Nzk5OTcyNjUzMzg5IDMyLjE2OTk5ODE2ODk0NTMxLDc5LjM5OTk5ODQ4NjA0MjAyIDIzLjg3OTk5NzI1MzQxNzk3LDgwLjY3MDAwMjc1ODUwMjk2ICIvPgogICAgPHBvbHlnb24gaWQ9InN2Z18yNCIgZmlsbD0idXJsKCNTVkdJRF85XykiIHBvaW50cz0iMTAuMTk5OTk2OTQ4MjQyMTg4LDc3Ljk5MDAwMjQ1MzMyNzE4IDEzLjY4OTk5NDgxMjAxMTcxOSw3Ny40NTAwMDE1Mzc3OTk4NCAzLjUsMTEuMTY5OTk5ODk3NDgwMDExIDAsMTEuNzA5OTk5ODU5MzMzMDM4ICIvPgogICAgPHBvbHlnb24gaWQ9InN2Z18yNSIgZmlsbD0idXJsKCNTVkdJRF8xMF8pIiBwb2ludHM9IjE1LDc3LjI0OTk5Njk2MDE2MzEyIDE4LjUsNzYuNzEwMDAzNjc0MDMwMyA3LjU1OTk5NzU1ODU5Mzc1LDUuNTUwMDAwMDExOTIwOTI5IDQuMDU5OTk3NTU4NTkzNzUsNi4wODk5OTk5NzM3NzM5NTYgIi8+CiAgICA8cG9seWdvbiBpZD0ic3ZnXzI2IiBmaWxsPSJ1cmwoI1NWR0lEXzExXykiIHBvaW50cz0iMjMuMjIwMDAxMjIwNzAzMTI1LDc1Ljk4MDAwMDMxNzA5NjcxIDI2LjcwOTk5OTA4NDQ3MjY1Niw3NS40Mzk5OTk0MDE1NjkzNyAxNS4xMTAwMDA2MTAzNTE1NjIsMCAxMS42MTAwMDA2MTAzNTE1NjIsMC41NDAwMDAwMjE0NTc2NzIxICIvPgogICAgPHBvbHlnb24gaWQ9InN2Z18yNyIgZmlsbD0idXJsKCNTVkdJRF8xMl8pIiBwb2ludHM9IjI4LjAxOTk5NjY0MzA2NjQwNiw3NS4yNDAwMDI0NTMzMjcxOCAzMS41MTk5OTY2NDMwNjY0MDYsNzQuNzAwMDAxNTM3Nzk5ODQgMjAuOTM5OTk0ODEyMDExNzIsNS45MTk5OTk4OTc0ODAwMTEgMTcuNDM5OTk0ODEyMDExNzIsNi40NTk5OTk4NTkzMzMwMzggIi8+CiAgICA8cG9seWdvbiBpZD0ic3ZnXzI4IiBmaWxsPSJ1cmwoI1NWR0lEXzEzXykiIHBvaW50cz0iMzYuMTI5OTk3MjUzNDE3OTcsNzMuOTk5OTk2OTYwMTYzMTIgMzkuNjI5OTk3MjUzNDE3OTcsNzMuNDYwMDAzNjc0MDMwMyAzMC4yMjk5OTU3Mjc1MzkwNjIsMTIuMzYwMDAwNDMxNTM3NjI4IDI2LjcyOTk5NTcyNzUzOTA2MiwxMi44OTAwMDAxNjQ1MDg4MiAiLz4KICAgIDxwb2x5Z29uIGlkPSJzdmdfMjkiIGZpbGw9InVybCgjU1ZHSURfMTRfKSIgcG9pbnRzPSI0MC45Mzk5OTQ4MTIwMTE3Miw3My4yNTk5OTkwOTYzOTM1OSA0NC40Mzk5OTQ4MTIwMTE3Miw3Mi43MTk5OTgxODA4NjYyNCAzNC42ODAwMDAzMDUxNzU3OCw5LjI3OTk5OTU1NDE1NzI1NyAzMS4xODAwMDAzMDUxNzU3OCw5LjgxMDAwMDI0MDgwMjc2NSAiLz4KICAgPC9nPgogIDwvZz4KIDwvZz4KPC9zdmc+';
39
+ }
40
+
41
+ public getFormStack(): FormStack {
42
+ return new FormStack().addForm(
43
+ new Form(CoreFormsEnum.AUTHORIZATION_FORM, getFormName(CoreFormsEnum.AUTHORIZATION_FORM))
44
+ .addField(new Field(FieldType.URL, URL_KEY, 'Url', undefined, true))
45
+ .addField(new Field(FieldType.TEXT, TENANT_KEY, 'Tenant', undefined, false))
46
+ .addField(new Field(FieldType.TEXT, USER, 'User', undefined, false))
47
+ .addField(new Field(FieldType.TEXT, PASSWORD, 'Password', undefined, false)),
48
+ );
49
+ }
50
+
51
+ public getRequestDto(
52
+ dto: AProcessDto,
53
+ applicationInstall: ApplicationInstall,
54
+ method: HttpMethods,
55
+ path?: string,
56
+ data?: unknown,
57
+ ): RequestDto {
58
+ const {
59
+ user,
60
+ password,
61
+ tenant,
62
+ url: lokiURL,
63
+ } = applicationInstall.getSettings()[CoreFormsEnum.AUTHORIZATION_FORM];
64
+
65
+ const url = new URL(path ?? '', lokiURL).href;
66
+
67
+ const headers: Record<string, string> = {
68
+ [CommonHeaders.CONTENT_TYPE]: JSON_TYPE,
69
+ [CommonHeaders.ACCEPT]: JSON_TYPE,
70
+ };
71
+
72
+ if (user && password) {
73
+ headers[CommonHeaders.AUTHORIZATION] = `Basic ${encode(`${user}:${password}`)}`;
74
+ }
75
+
76
+ if (tenant) {
77
+ headers[LokiHeaders.TENANT] = tenant;
78
+ }
79
+
80
+ const requestDto = new RequestDto(url, method, dto, data, headers);
81
+
82
+ return requestDto;
83
+ }
84
+
85
+ public isAuthorized(applicationInstall: ApplicationInstall): boolean {
86
+ const authorizationForm = applicationInstall.getSettings()[CoreFormsEnum.AUTHORIZATION_FORM];
87
+ return (
88
+ authorizationForm?.[URL_KEY]
89
+ ?? (authorizationForm?.[URL_KEY] && authorizationForm?.[USER] && authorizationForm?.[PASSWORD])
90
+ );
91
+ }
92
+
93
+ }
@@ -0,0 +1,18 @@
1
+ import { appInstall, DEFAULT_USER } from '@orchesty/nodejs-connectors/test/DataProvider';
2
+ import { container } from '@orchesty/nodejs-connectors/test/TestAbstract';
3
+ import CoreFormsEnum from '@orchesty/nodejs-sdk/dist/lib/Application/Base/CoreFormsEnum';
4
+ import LokiGetQueryListBatch from '../src/Batch/LokiGetQueryListBatch';
5
+ import LokiApplication, { NAME as LOKI_APPLICATION, URL_KEY } from '../src/LokiApplication';
6
+
7
+ export default function init(): void {
8
+ appInstall(LOKI_APPLICATION, DEFAULT_USER, {
9
+ [CoreFormsEnum.AUTHORIZATION_FORM]: {
10
+ [URL_KEY]: 'http://127.0.0.1:3100',
11
+ },
12
+ });
13
+
14
+ const app = new LokiApplication();
15
+ container.setApplication(app);
16
+
17
+ container.setNode(new LokiGetQueryListBatch(), app);
18
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,8 @@
1
+ {
2
+ "extends": "../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "./dist",
5
+ "composite": true
6
+ },
7
+ "include": ["src", "test", "../../test"]
8
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "rootDir": "./src",
5
+ },
6
+ "include": [
7
+ "src",
8
+ ],
9
+ "exclude": [
10
+ "node_modules",
11
+ "src/**/__tests__",
12
+ ]
13
+ }