@hed-hog/core 0.0.365 → 0.0.367

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/dist/integration/services/outbox-polling.coordinator.d.ts +2 -0
  2. package/dist/integration/services/outbox-polling.coordinator.d.ts.map +1 -1
  3. package/dist/integration/services/outbox-polling.coordinator.js +14 -4
  4. package/dist/integration/services/outbox-polling.coordinator.js.map +1 -1
  5. package/dist/integration/services/outbox.processor.d.ts.map +1 -1
  6. package/dist/integration/services/outbox.processor.js +4 -3
  7. package/dist/integration/services/outbox.processor.js.map +1 -1
  8. package/dist/integration-profile/integration-profile.service.d.ts.map +1 -1
  9. package/dist/integration-profile/integration-profile.service.js +1 -10
  10. package/dist/integration-profile/integration-profile.service.js.map +1 -1
  11. package/dist/locale/locale.controller.d.ts +1 -1
  12. package/dist/locale/locale.controller.d.ts.map +1 -1
  13. package/dist/locale/locale.controller.js +4 -3
  14. package/dist/locale/locale.controller.js.map +1 -1
  15. package/dist/locale/locale.service.d.ts +1 -1
  16. package/dist/locale/locale.service.d.ts.map +1 -1
  17. package/dist/locale/locale.service.js +6 -6
  18. package/dist/locale/locale.service.js.map +1 -1
  19. package/dist/webhook-integration/webhook-integration.service.js +2 -3
  20. package/dist/webhook-integration/webhook-integration.service.js.map +1 -1
  21. package/hedhog/data/integration_event_catalog.yaml +118 -118
  22. package/hedhog/data/integration_provider.yaml +25 -0
  23. package/hedhog/data/integration_type.yaml +6 -0
  24. package/hedhog/data/locale.yaml +5 -1
  25. package/hedhog/data/setting_group.yaml +102 -106
  26. package/hedhog/data/setting_subgroup.yaml +32 -0
  27. package/hedhog/frontend/app/integration/profiles/page.tsx.ejs +56 -0
  28. package/hedhog/frontend/messages/en.json +4 -0
  29. package/hedhog/frontend/messages/pt.json +4 -0
  30. package/hedhog/table/ai_instruction.yaml +1 -1
  31. package/hedhog/table/event_webhook.yaml +55 -55
  32. package/hedhog/table/event_webhook_delivery_log.yaml +66 -66
  33. package/hedhog/table/event_webhook_event.yaml +26 -26
  34. package/hedhog/table/integration_event_catalog.yaml +41 -41
  35. package/hedhog/table/mcp_conversation.yaml +12 -12
  36. package/hedhog/table/mcp_conversation_message.yaml +23 -23
  37. package/hedhog/table/mcp_tool_call_log.yaml +22 -22
  38. package/hedhog/table/route.yaml +33 -33
  39. package/hedhog/table/webhook_call_log.yaml +46 -46
  40. package/hedhog/table/webhook_integration.yaml +43 -43
  41. package/package.json +4 -4
  42. package/src/integration/services/outbox-polling.coordinator.ts +16 -4
  43. package/src/integration/services/outbox.processor.ts +14 -8
  44. package/src/integration/types/event.types.ts +4 -4
  45. package/src/integration-profile/integration-profile.service.ts +1 -10
  46. package/src/locale/locale.controller.ts +2 -1
  47. package/src/locale/locale.service.ts +7 -6
  48. package/src/mcp/decorators/mcp-tool.decorator.ts +7 -7
  49. package/src/mcp/guards/mcp-permission.guard.ts +51 -51
  50. package/src/mcp/interfaces/mcp-tool-definition.interface.ts +6 -6
  51. package/src/mcp/mcp-server.service.ts +87 -87
  52. package/src/mcp/types/mcp-context.type.ts +6 -6
  53. package/src/mcp-chat/dto/create-conversation.dto.ts +7 -7
  54. package/src/mcp-chat/dto/send-message.dto.ts +7 -7
  55. package/src/route/dto/create.dto.ts +32 -32
  56. package/src/route/dto/update.dto.ts +31 -31
  57. package/src/webhook-integration/integration-event-catalog.controller.ts +50 -50
  58. package/src/webhook-integration/integration-event-catalog.service.ts +117 -117
  59. package/src/webhook-integration/webhook-integration.service.ts +2 -2
@@ -19,6 +19,9 @@
19
19
  pt: Por quanto tempo os navegadores armazenam em cache as imagens de avatar de usuários (em segundos).
20
20
  value: 3600
21
21
  user_override: false
22
+ subgroup_id:
23
+ where:
24
+ slug: general-system
22
25
  - slug: api-body-size-limit
23
26
  type: number
24
27
  component: input-number
@@ -30,6 +33,9 @@
30
33
  pt: Tamanho máximo em megabytes para corpos de requisição recebidos pela API. Aplica-se dinamicamente sem reiniciar (50 = 50 MB)
31
34
  value: 50
32
35
  user_override: false
36
+ subgroup_id:
37
+ where:
38
+ slug: general-system
33
39
  - slug: url
34
40
  type: string
35
41
  name:
@@ -40,6 +46,9 @@
40
46
  pt: A URL base acessível publicamente do sistema para requisições e redirecionamentos de clientes
41
47
  value: http://localhost:3200
42
48
  user_override: false
49
+ subgroup_id:
50
+ where:
51
+ slug: general-system
43
52
  - slug: api-url
44
53
  type: string
45
54
  name:
@@ -50,6 +59,9 @@
50
59
  pt: A URL do endpoint onde o servidor da API está acessível
51
60
  value: http://localhost:3100
52
61
  user_override: false
62
+ subgroup_id:
63
+ where:
64
+ slug: general-system
53
65
  - slug: installed
54
66
  type: boolean
55
67
  component: switch
@@ -61,6 +73,9 @@
61
73
  pt: Indica se o sistema completou os procedimentos de instalação e configuração inicial
62
74
  value: false
63
75
  user_override: false
76
+ subgroup_id:
77
+ where:
78
+ slug: general-system
64
79
  - slug: pagination-page-sizes
65
80
  type: array
66
81
  component: checkbox
@@ -72,6 +87,9 @@
72
87
  pt: Opções de tamanho de página exibidas no seletor de itens por página nas telas paginadas de todo o sistema
73
88
  value: '["6","12","24","48","96"]'
74
89
  user_override: false
90
+ subgroup_id:
91
+ where:
92
+ slug: general-system
75
93
  relations:
76
94
  setting_list:
77
95
  - value: '6'
@@ -84,16 +102,6 @@
84
102
  order: 3
85
103
  - value: '96'
86
104
  order: 4
87
- - slug: maintenance
88
- icon: database-cog
89
- name:
90
- en: Maintenance
91
- pt: Manutenção
92
- description:
93
- en: Database maintenance, cleanup operations, and retention policies for long-term system health
94
- pt: Manutenção do banco de dados, operações de limpeza e políticas de retenção para a saúde do sistema a longo prazo
95
- relations:
96
- setting:
97
105
  - slug: maintenance-mode-enabled
98
106
  type: boolean
99
107
  component: switch
@@ -178,7 +186,6 @@
178
186
  subgroup_id:
179
187
  where:
180
188
  slug: access-log-retention
181
-
182
189
  - slug: queue-worker-offline-cleanup-hours
183
190
  type: number
184
191
  component: input-number
@@ -193,6 +200,90 @@
193
200
  subgroup_id:
194
201
  where:
195
202
  slug: worker-retention
203
+ - slug: configured-mail
204
+ type: boolean
205
+ name:
206
+ en: Email Configured
207
+ pt: Email Configurado
208
+ description:
209
+ en: Indicates whether email notifications are fully configured and operational
210
+ pt: Indica se as notificações de email estão totalmente configuradas e operacionais
211
+ value: false
212
+ user_override: false
213
+ component: switch
214
+ subgroup_id:
215
+ where:
216
+ slug: mail-configuration
217
+ - slug: mail-integration-profile-id
218
+ type: number
219
+ component: entity-picker
220
+ name:
221
+ en: Mail Profile
222
+ pt: Perfil de Email
223
+ description:
224
+ en: Select the mail profile to use for sending system notifications
225
+ pt: Selecione o perfil de email a usar para enviar notificações do sistema
226
+ value: '1'
227
+ user_override: false
228
+ subgroup_id:
229
+ where:
230
+ slug: mail-configuration
231
+ - slug: ai-openai-profile-id
232
+ type: number
233
+ component: entity-picker
234
+ name:
235
+ en: OpenAI Profile
236
+ pt: Perfil OpenAI
237
+ description:
238
+ en: Integration profile (type AI / OpenAI) to use for OpenAI features
239
+ pt: Perfil de integração (tipo IA / OpenAI) a usar para recursos de OpenAI
240
+ value: ''
241
+ user_override: false
242
+ subgroup_id:
243
+ where:
244
+ slug: ai-configuration
245
+ - slug: ai-gemini-profile-id
246
+ type: number
247
+ component: entity-picker
248
+ name:
249
+ en: Gemini Profile
250
+ pt: Perfil Gemini
251
+ description:
252
+ en: Integration profile (type AI / Gemini) to use for Gemini features
253
+ pt: Perfil de integração (tipo IA / Gemini) a usar para recursos de Gemini
254
+ value: ''
255
+ user_override: false
256
+ subgroup_id:
257
+ where:
258
+ slug: ai-configuration
259
+ - slug: mcp-enabled
260
+ type: boolean
261
+ component: switch
262
+ name:
263
+ en: Enable MCP Server
264
+ pt: Habilitar Servidor MCP
265
+ description:
266
+ en: Enable or disable the MCP server and AI chat feature
267
+ pt: Habilitar ou desabilitar o servidor MCP e o recurso de chat de IA
268
+ value: true
269
+ user_override: false
270
+ subgroup_id:
271
+ where:
272
+ slug: mcp-configuration
273
+ - slug: mcp-ai-profile-id
274
+ type: number
275
+ component: entity-picker
276
+ name:
277
+ en: AI Profile
278
+ pt: Perfil de IA
279
+ description:
280
+ en: Integration profile (type AI) to use for MCP chat
281
+ pt: Perfil de integração (tipo IA) a usar no chat MCP
282
+ value: ''
283
+ user_override: false
284
+ subgroup_id:
285
+ where:
286
+ slug: mcp-configuration
196
287
  - slug: authentication
197
288
  icon: lock-password
198
289
  name:
@@ -1662,69 +1753,6 @@
1662
1753
  order: 3
1663
1754
  - value: image/tiff
1664
1755
  order: 4
1665
- - slug: 'mail'
1666
- icon: mail
1667
- name:
1668
- en: Mail
1669
- pt: Email
1670
- description:
1671
- en: Configure email service provider, sender address, and credentials for system notifications
1672
- pt: Configure provedor de serviço de email, endereço do remetente e credenciais para notificações do sistema
1673
- relations:
1674
- setting:
1675
- - slug: configured-mail
1676
- type: boolean
1677
- name:
1678
- en: Email Configured
1679
- pt: Email Configurado
1680
- description:
1681
- en: Indicates whether email notifications are fully configured and operational
1682
- pt: Indica se as notificações de email estão totalmente configuradas e operacionais
1683
- value: false
1684
- user_override: false
1685
- component: switch
1686
- - slug: mail-integration-profile-id
1687
- type: number
1688
- component: entity-picker
1689
- name:
1690
- en: Mail Profile
1691
- pt: Perfil de Email
1692
- description:
1693
- en: Select the mail profile to use for sending system notifications
1694
- pt: Selecione o perfil de email a usar para enviar notificações do sistema
1695
- value: '1'
1696
- - slug: ai
1697
- icon: brain
1698
- name:
1699
- en: AI
1700
- pt: IA
1701
- description:
1702
- en: Configure AI service providers and API credentials for intelligent system features
1703
- pt: Configure provedores de serviço de IA e credenciais de API para recursos inteligentes do sistema
1704
- relations:
1705
- setting:
1706
- - slug: ai-openai-profile-id
1707
- type: number
1708
- component: entity-picker
1709
- name:
1710
- en: OpenAI Profile
1711
- pt: Perfil OpenAI
1712
- description:
1713
- en: Integration profile (type AI / OpenAI) to use for OpenAI features
1714
- pt: Perfil de integração (tipo IA / OpenAI) a usar para recursos de OpenAI
1715
- value: ''
1716
- user_override: false
1717
- - slug: ai-gemini-profile-id
1718
- type: number
1719
- component: entity-picker
1720
- name:
1721
- en: Gemini Profile
1722
- pt: Perfil Gemini
1723
- description:
1724
- en: Integration profile (type AI / Gemini) to use for Gemini features
1725
- pt: Perfil de integração (tipo IA / Gemini) a usar para recursos de Gemini
1726
- value: ''
1727
- user_override: false
1728
1756
  - slug: integration
1729
1757
  icon: webhook
1730
1758
  name:
@@ -1890,38 +1918,6 @@
1890
1918
  where:
1891
1919
  slug: retry-config
1892
1920
 
1893
- - slug: mcp
1894
- icon: terminal
1895
- name:
1896
- en: MCP
1897
- pt: MCP
1898
- description:
1899
- en: Model Context Protocol server and AI chat settings
1900
- pt: Configurações do servidor MCP e chat de IA
1901
- relations:
1902
- setting:
1903
- - slug: mcp-enabled
1904
- type: boolean
1905
- component: switch
1906
- name:
1907
- en: Enable MCP Server
1908
- pt: Habilitar Servidor MCP
1909
- description:
1910
- en: Enable or disable the MCP server and AI chat feature
1911
- pt: Habilitar ou desabilitar o servidor MCP e o recurso de chat de IA
1912
- value: true
1913
- user_override: false
1914
- - slug: mcp-ai-profile-id
1915
- type: number
1916
- component: entity-picker
1917
- name:
1918
- en: AI Profile
1919
- pt: Perfil de IA
1920
- description:
1921
- en: Integration profile (type AI) to use for MCP chat
1922
- pt: Perfil de integração (tipo IA) a usar no chat MCP
1923
- value: ''
1924
- user_override: false
1925
1921
  - slug: pdf
1926
1922
  icon: file-text
1927
1923
  name:
@@ -325,3 +325,35 @@
325
325
  description:
326
326
  en: Rules for retaining and automatically removing offline workers
327
327
  pt: Regras para retenção e remoção automática de workers offline
328
+
329
+ - slug: general-system
330
+ name:
331
+ en: System
332
+ pt: Sistema
333
+ description:
334
+ en: General system configuration settings
335
+ pt: Configurações gerais do sistema
336
+
337
+ - slug: mail-configuration
338
+ name:
339
+ en: Email
340
+ pt: Email
341
+ description:
342
+ en: Email service configuration
343
+ pt: Configuração do serviço de email
344
+
345
+ - slug: ai-configuration
346
+ name:
347
+ en: AI
348
+ pt: IA
349
+ description:
350
+ en: AI provider configuration
351
+ pt: Configuração de provedores de IA
352
+
353
+ - slug: mcp-configuration
354
+ name:
355
+ en: MCP
356
+ pt: MCP
357
+ description:
358
+ en: Model Context Protocol configuration
359
+ pt: Configuração do servidor MCP
@@ -597,6 +597,62 @@ const PROVIDER_FIELDS: Record<string, FieldDef[]> = {
597
597
  ],
598
598
  },
599
599
  ],
600
+ recaptcha: [
601
+ {
602
+ key: 'site_key',
603
+ labelKey: 'fieldSiteKey',
604
+ type: 'text',
605
+ required: true,
606
+ colSpan: true,
607
+ },
608
+ {
609
+ key: 'secret_key',
610
+ labelKey: 'fieldSecretKey',
611
+ type: 'password',
612
+ required: true,
613
+ colSpan: true,
614
+ },
615
+ {
616
+ key: 'score_threshold',
617
+ labelKey: 'fieldScoreThreshold',
618
+ type: 'number',
619
+ required: false,
620
+ placeholder: '0.5',
621
+ },
622
+ ],
623
+ 'cloudflare-turnstile': [
624
+ {
625
+ key: 'site_key',
626
+ labelKey: 'fieldSiteKey',
627
+ type: 'text',
628
+ required: true,
629
+ colSpan: true,
630
+ },
631
+ {
632
+ key: 'secret_key',
633
+ labelKey: 'fieldSecretKey',
634
+ type: 'password',
635
+ required: true,
636
+ colSpan: true,
637
+ },
638
+ ],
639
+ altcha: [
640
+ {
641
+ key: 'hmac_key',
642
+ labelKey: 'fieldHmacKey',
643
+ type: 'password',
644
+ required: true,
645
+ colSpan: true,
646
+ },
647
+ {
648
+ key: 'api_url',
649
+ labelKey: 'fieldApiUrl',
650
+ type: 'url',
651
+ required: false,
652
+ colSpan: true,
653
+ placeholder: 'https://eu.altcha.org/api/v1',
654
+ },
655
+ ],
600
656
  };
601
657
 
602
658
  // ─── Helpers ─────────────────────────────────────────────────────────────────
@@ -2355,6 +2355,10 @@
2355
2355
  "fieldMode": "Mode",
2356
2356
  "fieldModeSandbox": "Sandbox",
2357
2357
  "fieldModeProduction": "Production",
2358
+ "fieldSiteKey": "Site Key",
2359
+ "fieldHmacKey": "HMAC Key",
2360
+ "fieldScoreThreshold": "Score Threshold",
2361
+ "fieldApiUrl": "API URL",
2358
2362
  "callbackUrlsSectionTitle": "Callback URLs",
2359
2363
  "callbackUrlsDescription": "Register these URLs in your OAuth application settings.",
2360
2364
  "addCallbackUrl": "Add URL",
@@ -2410,6 +2410,10 @@
2410
2410
  "fieldMode": "Modo",
2411
2411
  "fieldModeSandbox": "Sandbox",
2412
2412
  "fieldModeProduction": "Produção",
2413
+ "fieldSiteKey": "Chave do Site",
2414
+ "fieldHmacKey": "Chave HMAC",
2415
+ "fieldScoreThreshold": "Limiar de Pontuação",
2416
+ "fieldApiUrl": "URL da API",
2413
2417
  "callbackUrlsSectionTitle": "URLs de Callback",
2414
2418
  "callbackUrlsDescription": "Registre estas URLs nas configurações do seu aplicativo OAuth.",
2415
2419
  "addCallbackUrl": "Adicionar URL",
@@ -20,7 +20,7 @@ columns:
20
20
  isNullable: true
21
21
  - name: locale
22
22
  length: 10
23
- default: "'en'"
23
+ default: en
24
24
  - name: module_slug
25
25
  isNullable: true
26
26
  - name: is_active
@@ -1,55 +1,55 @@
1
- columns:
2
- - type: pk
3
- - type: slug
4
- - name: name
5
- type: varchar
6
- length: 127
7
- - name: description
8
- type: text
9
- isNullable: true
10
- - name: status
11
- type: enum
12
- enum:
13
- - active
14
- - inactive
15
- default: active
16
- - name: priority
17
- type: int
18
- default: 0
19
- - name: url
20
- type: text
21
- - name: method
22
- type: enum
23
- enum:
24
- - GET
25
- - POST
26
- - PUT
27
- - PATCH
28
- - DELETE
29
- default: POST
30
- - name: headers
31
- type: json
32
- isNullable: true
33
- - name: query
34
- type: json
35
- isNullable: true
36
- - name: payload
37
- type: json
38
- isNullable: true
39
- - name: timeout_ms
40
- type: int
41
- default: 10000
42
- - name: retry_count
43
- type: int
44
- default: 0
45
- - type: created_at
46
- - type: updated_at
47
- indices:
48
- - columns:
49
- - slug
50
- isUnique: true
51
- - columns:
52
- - status
53
- - columns:
54
- - priority
55
-
1
+ columns:
2
+ - type: pk
3
+ - type: slug
4
+ - name: name
5
+ type: varchar
6
+ length: 127
7
+ - name: description
8
+ type: text
9
+ isNullable: true
10
+ - name: status
11
+ type: enum
12
+ enum:
13
+ - active
14
+ - inactive
15
+ default: active
16
+ - name: priority
17
+ type: int
18
+ default: 0
19
+ - name: url
20
+ type: text
21
+ - name: method
22
+ type: enum
23
+ enum:
24
+ - GET
25
+ - POST
26
+ - PUT
27
+ - PATCH
28
+ - DELETE
29
+ default: POST
30
+ - name: headers
31
+ type: json
32
+ isNullable: true
33
+ - name: query
34
+ type: json
35
+ isNullable: true
36
+ - name: payload
37
+ type: json
38
+ isNullable: true
39
+ - name: timeout_ms
40
+ type: int
41
+ default: 10000
42
+ - name: retry_count
43
+ type: int
44
+ default: 0
45
+ - type: created_at
46
+ - type: updated_at
47
+ indices:
48
+ - columns:
49
+ - slug
50
+ isUnique: true
51
+ - columns:
52
+ - status
53
+ - columns:
54
+ - priority
55
+
@@ -1,66 +1,66 @@
1
- columns:
2
- - type: pk
3
- - type: fk
4
- name: event_webhook_id
5
- isNullable: true
6
- references:
7
- table: event_webhook
8
- column: id
9
- onDelete: set null
10
- onUpdate: cascade
11
- - type: fk
12
- name: integration_event_catalog_id
13
- isNullable: true
14
- references:
15
- table: integration_event_catalog
16
- column: id
17
- onDelete: set null
18
- onUpdate: cascade
19
- - name: outbox_event_id
20
- type: int
21
- isNullable: true
22
- - name: event_name
23
- type: varchar
24
- length: 255
25
- - name: method
26
- type: varchar
27
- length: 15
28
- - name: url
29
- type: text
30
- - name: status
31
- type: enum
32
- enum:
33
- - success
34
- - failed
35
- - name: http_status
36
- type: int
37
- isNullable: true
38
- - name: duration_ms
39
- type: int
40
- default: 0
41
- - name: attempt_count
42
- type: int
43
- default: 1
44
- - name: error_message
45
- type: text
46
- isNullable: true
47
- - name: request_summary
48
- type: json
49
- isNullable: true
50
- - name: response_summary
51
- type: json
52
- isNullable: true
53
- - type: created_at
54
- - type: updated_at
55
- indices:
56
- - columns:
57
- - event_webhook_id
58
- - columns:
59
- - integration_event_catalog_id
60
- - columns:
61
- - event_name
62
- - columns:
63
- - status
64
- - columns:
65
- - created_at
66
-
1
+ columns:
2
+ - type: pk
3
+ - type: fk
4
+ name: event_webhook_id
5
+ isNullable: true
6
+ references:
7
+ table: event_webhook
8
+ column: id
9
+ onDelete: set null
10
+ onUpdate: cascade
11
+ - type: fk
12
+ name: integration_event_catalog_id
13
+ isNullable: true
14
+ references:
15
+ table: integration_event_catalog
16
+ column: id
17
+ onDelete: set null
18
+ onUpdate: cascade
19
+ - name: outbox_event_id
20
+ type: int
21
+ isNullable: true
22
+ - name: event_name
23
+ type: varchar
24
+ length: 255
25
+ - name: method
26
+ type: varchar
27
+ length: 15
28
+ - name: url
29
+ type: text
30
+ - name: status
31
+ type: enum
32
+ enum:
33
+ - success
34
+ - failed
35
+ - name: http_status
36
+ type: int
37
+ isNullable: true
38
+ - name: duration_ms
39
+ type: int
40
+ default: 0
41
+ - name: attempt_count
42
+ type: int
43
+ default: 1
44
+ - name: error_message
45
+ type: text
46
+ isNullable: true
47
+ - name: request_summary
48
+ type: json
49
+ isNullable: true
50
+ - name: response_summary
51
+ type: json
52
+ isNullable: true
53
+ - type: created_at
54
+ - type: updated_at
55
+ indices:
56
+ - columns:
57
+ - event_webhook_id
58
+ - columns:
59
+ - integration_event_catalog_id
60
+ - columns:
61
+ - event_name
62
+ - columns:
63
+ - status
64
+ - columns:
65
+ - created_at
66
+