@hed-hog/core 0.0.349 → 0.0.351

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 (350) hide show
  1. package/dist/access-log/access-log.controller.d.ts +16 -0
  2. package/dist/access-log/access-log.controller.d.ts.map +1 -0
  3. package/dist/access-log/access-log.controller.js +44 -0
  4. package/dist/access-log/access-log.controller.js.map +1 -0
  5. package/dist/access-log/access-log.interceptor.d.ts +9 -0
  6. package/dist/access-log/access-log.interceptor.d.ts.map +1 -0
  7. package/dist/access-log/access-log.interceptor.js +46 -0
  8. package/dist/access-log/access-log.interceptor.js.map +1 -0
  9. package/dist/access-log/access-log.module.d.ts +3 -0
  10. package/dist/access-log/access-log.module.d.ts.map +1 -0
  11. package/dist/access-log/access-log.module.js +29 -0
  12. package/dist/access-log/access-log.module.js.map +1 -0
  13. package/dist/access-log/access-log.service.d.ts +47 -0
  14. package/dist/access-log/access-log.service.d.ts.map +1 -0
  15. package/dist/access-log/access-log.service.js +113 -0
  16. package/dist/access-log/access-log.service.js.map +1 -0
  17. package/dist/access-log/dto/query-access-log.dto.d.ts +8 -0
  18. package/dist/access-log/dto/query-access-log.dto.d.ts.map +1 -0
  19. package/dist/access-log/dto/query-access-log.dto.js +42 -0
  20. package/dist/access-log/dto/query-access-log.dto.js.map +1 -0
  21. package/dist/auth/auth.controller.d.ts +12 -12
  22. package/dist/auth/auth.service.d.ts +27 -27
  23. package/dist/auth/auth.service.d.ts.map +1 -1
  24. package/dist/auth/auth.service.js +0 -4
  25. package/dist/auth/auth.service.js.map +1 -1
  26. package/dist/challenge/challenge.service.d.ts +2 -2
  27. package/dist/challenge/challenge.service.d.ts.map +1 -1
  28. package/dist/challenge/challenge.service.js +0 -1
  29. package/dist/challenge/challenge.service.js.map +1 -1
  30. package/dist/core/system.module.d.ts.map +1 -1
  31. package/dist/core/system.module.js +1 -0
  32. package/dist/core/system.module.js.map +1 -1
  33. package/dist/core.module.d.ts.map +1 -1
  34. package/dist/core.module.js +15 -0
  35. package/dist/core.module.js.map +1 -1
  36. package/dist/dashboard/dashboard-user/dashboard-user.controller.d.ts +3 -3
  37. package/dist/dashboard/dashboard-user/dashboard-user.service.d.ts +3 -3
  38. package/dist/dashboard/dashboard.module.d.ts.map +1 -1
  39. package/dist/dashboard/dashboard.module.js +4 -1
  40. package/dist/dashboard/dashboard.module.js.map +1 -1
  41. package/dist/file/file.controller.js +0 -1
  42. package/dist/file/file.controller.js.map +1 -1
  43. package/dist/file/file.service.d.ts +65 -0
  44. package/dist/file/file.service.d.ts.map +1 -1
  45. package/dist/file/file.service.js +151 -3
  46. package/dist/file/file.service.js.map +1 -1
  47. package/dist/file/provider/abstract.provider.d.ts +8 -0
  48. package/dist/file/provider/abstract.provider.d.ts.map +1 -1
  49. package/dist/file/provider/abstract.provider.js.map +1 -1
  50. package/dist/file/provider/azure.provider.d.ts +4 -0
  51. package/dist/file/provider/azure.provider.d.ts.map +1 -1
  52. package/dist/file/provider/azure.provider.js +14 -0
  53. package/dist/file/provider/azure.provider.js.map +1 -1
  54. package/dist/file/provider/gcs.provider.d.ts +4 -0
  55. package/dist/file/provider/gcs.provider.d.ts.map +1 -1
  56. package/dist/file/provider/gcs.provider.js +14 -0
  57. package/dist/file/provider/gcs.provider.js.map +1 -1
  58. package/dist/file/provider/local.provider.d.ts +4 -0
  59. package/dist/file/provider/local.provider.d.ts.map +1 -1
  60. package/dist/file/provider/local.provider.js +19 -0
  61. package/dist/file/provider/local.provider.js.map +1 -1
  62. package/dist/file/provider/provider.factory.d.ts.map +1 -1
  63. package/dist/file/provider/provider.factory.js +3 -0
  64. package/dist/file/provider/provider.factory.js.map +1 -1
  65. package/dist/file/provider/s3.provider.d.ts +4 -0
  66. package/dist/file/provider/s3.provider.d.ts.map +1 -1
  67. package/dist/file/provider/s3.provider.js +17 -0
  68. package/dist/file/provider/s3.provider.js.map +1 -1
  69. package/dist/index.d.ts +3 -0
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +4 -0
  72. package/dist/index.js.map +1 -1
  73. package/dist/mcp/guards/mcp-auth.guard.d.ts +6 -1
  74. package/dist/mcp/guards/mcp-auth.guard.d.ts.map +1 -1
  75. package/dist/mcp/guards/mcp-auth.guard.js +29 -2
  76. package/dist/mcp/guards/mcp-auth.guard.js.map +1 -1
  77. package/dist/mcp/mcp-api-key.controller.d.ts +32 -0
  78. package/dist/mcp/mcp-api-key.controller.d.ts.map +1 -0
  79. package/dist/mcp/mcp-api-key.controller.js +64 -0
  80. package/dist/mcp/mcp-api-key.controller.js.map +1 -0
  81. package/dist/mcp/mcp-api-key.service.d.ts +27 -0
  82. package/dist/mcp/mcp-api-key.service.d.ts.map +1 -0
  83. package/dist/mcp/mcp-api-key.service.js +74 -0
  84. package/dist/mcp/mcp-api-key.service.js.map +1 -0
  85. package/dist/mcp/mcp-audit.service.d.ts +3 -1
  86. package/dist/mcp/mcp-audit.service.d.ts.map +1 -1
  87. package/dist/mcp/mcp-audit.service.js +14 -2
  88. package/dist/mcp/mcp-audit.service.js.map +1 -1
  89. package/dist/mcp/mcp-registry.service.d.ts +1 -2
  90. package/dist/mcp/mcp-registry.service.d.ts.map +1 -1
  91. package/dist/mcp/mcp-registry.service.js +6 -2
  92. package/dist/mcp/mcp-registry.service.js.map +1 -1
  93. package/dist/mcp/mcp.controller.d.ts +3 -1
  94. package/dist/mcp/mcp.controller.d.ts.map +1 -1
  95. package/dist/mcp/mcp.controller.js +10 -2
  96. package/dist/mcp/mcp.controller.js.map +1 -1
  97. package/dist/mcp/mcp.module.d.ts.map +1 -1
  98. package/dist/mcp/mcp.module.js +80 -1
  99. package/dist/mcp/mcp.module.js.map +1 -1
  100. package/dist/mcp/tools/core-ai.mcp-tools.d.ts +45 -0
  101. package/dist/mcp/tools/core-ai.mcp-tools.d.ts.map +1 -0
  102. package/dist/mcp/tools/core-ai.mcp-tools.js +214 -0
  103. package/dist/mcp/tools/core-ai.mcp-tools.js.map +1 -0
  104. package/dist/mcp/tools/core-dashboard-items.mcp-tools.d.ts +21 -0
  105. package/dist/mcp/tools/core-dashboard-items.mcp-tools.d.ts.map +1 -0
  106. package/dist/mcp/tools/core-dashboard-items.mcp-tools.js +89 -0
  107. package/dist/mcp/tools/core-dashboard-items.mcp-tools.js.map +1 -0
  108. package/dist/mcp/tools/core-dashboard.mcp-tools.d.ts +29 -0
  109. package/dist/mcp/tools/core-dashboard.mcp-tools.d.ts.map +1 -0
  110. package/dist/mcp/tools/core-dashboard.mcp-tools.js +149 -0
  111. package/dist/mcp/tools/core-dashboard.mcp-tools.js.map +1 -0
  112. package/dist/mcp/tools/core-event-webhooks.mcp-tools.d.ts +30 -0
  113. package/dist/mcp/tools/core-event-webhooks.mcp-tools.d.ts.map +1 -0
  114. package/dist/mcp/tools/core-event-webhooks.mcp-tools.js +185 -0
  115. package/dist/mcp/tools/core-event-webhooks.mcp-tools.js.map +1 -0
  116. package/dist/mcp/tools/core-files.mcp-tools.d.ts +26 -0
  117. package/dist/mcp/tools/core-files.mcp-tools.d.ts.map +1 -0
  118. package/dist/mcp/tools/core-files.mcp-tools.js +140 -0
  119. package/dist/mcp/tools/core-files.mcp-tools.js.map +1 -0
  120. package/dist/mcp/tools/core-integration-events.mcp-tools.d.ts +26 -0
  121. package/dist/mcp/tools/core-integration-events.mcp-tools.d.ts.map +1 -0
  122. package/dist/mcp/tools/core-integration-events.mcp-tools.js +168 -0
  123. package/dist/mcp/tools/core-integration-events.mcp-tools.js.map +1 -0
  124. package/dist/mcp/tools/core-mail-profile.mcp-tools.d.ts +32 -0
  125. package/dist/mcp/tools/core-mail-profile.mcp-tools.d.ts.map +1 -0
  126. package/dist/mcp/tools/core-mail-profile.mcp-tools.js +178 -0
  127. package/dist/mcp/tools/core-mail-profile.mcp-tools.js.map +1 -0
  128. package/dist/mcp/tools/core-mail-sent.mcp-tools.d.ts +14 -0
  129. package/dist/mcp/tools/core-mail-sent.mcp-tools.d.ts.map +1 -0
  130. package/dist/mcp/tools/core-mail-sent.mcp-tools.js +106 -0
  131. package/dist/mcp/tools/core-mail-sent.mcp-tools.js.map +1 -0
  132. package/dist/mcp/tools/core-mail.mcp-tools.d.ts +36 -0
  133. package/dist/mcp/tools/core-mail.mcp-tools.d.ts.map +1 -0
  134. package/dist/mcp/tools/core-mail.mcp-tools.js +184 -0
  135. package/dist/mcp/tools/core-mail.mcp-tools.js.map +1 -0
  136. package/dist/mcp/tools/core-mcp-chat.mcp-tools.d.ts +21 -0
  137. package/dist/mcp/tools/core-mcp-chat.mcp-tools.d.ts.map +1 -0
  138. package/dist/mcp/tools/core-mcp-chat.mcp-tools.js +118 -0
  139. package/dist/mcp/tools/core-mcp-chat.mcp-tools.js.map +1 -0
  140. package/dist/mcp/tools/core-menus.mcp-tools.d.ts +40 -0
  141. package/dist/mcp/tools/core-menus.mcp-tools.d.ts.map +1 -0
  142. package/dist/mcp/tools/core-menus.mcp-tools.js +268 -0
  143. package/dist/mcp/tools/core-menus.mcp-tools.js.map +1 -0
  144. package/dist/mcp/tools/core-notifications.mcp-tools.d.ts +31 -0
  145. package/dist/mcp/tools/core-notifications.mcp-tools.d.ts.map +1 -0
  146. package/dist/mcp/tools/core-notifications.mcp-tools.js +178 -0
  147. package/dist/mcp/tools/core-notifications.mcp-tools.js.map +1 -0
  148. package/dist/mcp/tools/core-profile.mcp-tools.d.ts +20 -0
  149. package/dist/mcp/tools/core-profile.mcp-tools.d.ts.map +1 -0
  150. package/dist/mcp/tools/core-profile.mcp-tools.js +111 -0
  151. package/dist/mcp/tools/core-profile.mcp-tools.js.map +1 -0
  152. package/dist/mcp/tools/core-roles.mcp-tools.d.ts +70 -0
  153. package/dist/mcp/tools/core-roles.mcp-tools.d.ts.map +1 -0
  154. package/dist/mcp/tools/core-roles.mcp-tools.js +355 -0
  155. package/dist/mcp/tools/core-roles.mcp-tools.js.map +1 -0
  156. package/dist/mcp/tools/core-routes.mcp-tools.d.ts +52 -0
  157. package/dist/mcp/tools/core-routes.mcp-tools.d.ts.map +1 -0
  158. package/dist/mcp/tools/core-routes.mcp-tools.js +254 -0
  159. package/dist/mcp/tools/core-routes.mcp-tools.js.map +1 -0
  160. package/dist/mcp/tools/core-screens.mcp-tools.d.ts +47 -0
  161. package/dist/mcp/tools/core-screens.mcp-tools.d.ts.map +1 -0
  162. package/dist/mcp/tools/core-screens.mcp-tools.js +250 -0
  163. package/dist/mcp/tools/core-screens.mcp-tools.js.map +1 -0
  164. package/dist/mcp/tools/core-sessions.mcp-tools.d.ts +20 -0
  165. package/dist/mcp/tools/core-sessions.mcp-tools.d.ts.map +1 -0
  166. package/dist/mcp/tools/core-sessions.mcp-tools.js +128 -0
  167. package/dist/mcp/tools/core-sessions.mcp-tools.js.map +1 -0
  168. package/dist/mcp/tools/core-settings.mcp-tools.d.ts +25 -0
  169. package/dist/mcp/tools/core-settings.mcp-tools.d.ts.map +1 -1
  170. package/dist/mcp/tools/core-settings.mcp-tools.js +138 -0
  171. package/dist/mcp/tools/core-settings.mcp-tools.js.map +1 -1
  172. package/dist/mcp/tools/core-system.mcp-tools.d.ts +8 -0
  173. package/dist/mcp/tools/core-system.mcp-tools.d.ts.map +1 -0
  174. package/dist/mcp/tools/core-system.mcp-tools.js +40 -0
  175. package/dist/mcp/tools/core-system.mcp-tools.js.map +1 -0
  176. package/dist/mcp/tools/core-webhooks.mcp-tools.d.ts +46 -0
  177. package/dist/mcp/tools/core-webhooks.mcp-tools.d.ts.map +1 -0
  178. package/dist/mcp/tools/core-webhooks.mcp-tools.js +266 -0
  179. package/dist/mcp/tools/core-webhooks.mcp-tools.js.map +1 -0
  180. package/dist/mcp-chat/mcp-chat.controller.d.ts +5 -1
  181. package/dist/mcp-chat/mcp-chat.controller.d.ts.map +1 -1
  182. package/dist/mcp-chat/mcp-chat.controller.js +46 -0
  183. package/dist/mcp-chat/mcp-chat.controller.js.map +1 -1
  184. package/dist/mcp-chat/mcp-chat.service.d.ts +31 -3
  185. package/dist/mcp-chat/mcp-chat.service.d.ts.map +1 -1
  186. package/dist/mcp-chat/mcp-chat.service.js +776 -38
  187. package/dist/mcp-chat/mcp-chat.service.js.map +1 -1
  188. package/dist/notification/dto/create-notification.dto.d.ts +26 -0
  189. package/dist/notification/dto/create-notification.dto.d.ts.map +1 -0
  190. package/dist/notification/dto/create-notification.dto.js +86 -0
  191. package/dist/notification/dto/create-notification.dto.js.map +1 -0
  192. package/dist/notification/dto/update-progress.dto.d.ts +6 -0
  193. package/dist/notification/dto/update-progress.dto.d.ts.map +1 -0
  194. package/dist/notification/dto/update-progress.dto.js +33 -0
  195. package/dist/notification/dto/update-progress.dto.js.map +1 -0
  196. package/dist/notification/notification.controller.d.ts +112 -0
  197. package/dist/notification/notification.controller.d.ts.map +1 -0
  198. package/dist/notification/notification.controller.js +130 -0
  199. package/dist/notification/notification.controller.js.map +1 -0
  200. package/dist/notification/notification.module.d.ts +3 -0
  201. package/dist/notification/notification.module.d.ts.map +1 -0
  202. package/dist/notification/notification.module.js +29 -0
  203. package/dist/notification/notification.module.js.map +1 -0
  204. package/dist/notification/notification.service.d.ts +112 -0
  205. package/dist/notification/notification.service.d.ts.map +1 -0
  206. package/dist/notification/notification.service.js +269 -0
  207. package/dist/notification/notification.service.js.map +1 -0
  208. package/dist/pdf/pdf.service.js +1 -1
  209. package/dist/pdf/pdf.service.js.map +1 -1
  210. package/dist/profile/profile.controller.d.ts +4 -4
  211. package/dist/profile/profile.controller.js +0 -1
  212. package/dist/profile/profile.controller.js.map +1 -1
  213. package/dist/profile/profile.module.d.ts.map +1 -1
  214. package/dist/profile/profile.module.js +1 -0
  215. package/dist/profile/profile.module.js.map +1 -1
  216. package/dist/profile/profile.service.d.ts +4 -4
  217. package/dist/session/session.controller.d.ts +3 -3
  218. package/dist/session/session.service.d.ts +9 -9
  219. package/dist/setting/dto/update-setting-list.dto.d.ts +9 -0
  220. package/dist/setting/dto/update-setting-list.dto.d.ts.map +1 -0
  221. package/dist/setting/dto/update-setting-list.dto.js +44 -0
  222. package/dist/setting/dto/update-setting-list.dto.js.map +1 -0
  223. package/dist/setting/setting.controller.d.ts +20 -1
  224. package/dist/setting/setting.controller.d.ts.map +1 -1
  225. package/dist/setting/setting.controller.js +12 -0
  226. package/dist/setting/setting.controller.js.map +1 -1
  227. package/dist/setting/setting.service.d.ts +20 -1
  228. package/dist/setting/setting.service.d.ts.map +1 -1
  229. package/dist/setting/setting.service.js +80 -4
  230. package/dist/setting/setting.service.js.map +1 -1
  231. package/dist/task/task.service.d.ts +13 -0
  232. package/dist/task/task.service.d.ts.map +1 -1
  233. package/dist/task/task.service.js +85 -0
  234. package/dist/task/task.service.js.map +1 -1
  235. package/dist/token/token.service.d.ts.map +1 -1
  236. package/dist/token/token.service.js +0 -1
  237. package/dist/token/token.service.js.map +1 -1
  238. package/dist/user/user.controller.d.ts +11 -11
  239. package/dist/user/user.service.d.ts +27 -27
  240. package/dist/webhook-integration/dto/webhook-action.dto.d.ts +22 -0
  241. package/dist/webhook-integration/dto/webhook-action.dto.d.ts.map +1 -0
  242. package/dist/webhook-integration/dto/webhook-action.dto.js +120 -0
  243. package/dist/webhook-integration/dto/webhook-action.dto.js.map +1 -0
  244. package/dist/webhook-integration/webhook-integration.controller.d.ts +7 -5
  245. package/dist/webhook-integration/webhook-integration.controller.d.ts.map +1 -1
  246. package/dist/webhook-integration/webhook-integration.controller.js +18 -5
  247. package/dist/webhook-integration/webhook-integration.controller.js.map +1 -1
  248. package/dist/webhook-integration/webhook-integration.service.d.ts +18 -5
  249. package/dist/webhook-integration/webhook-integration.service.d.ts.map +1 -1
  250. package/dist/webhook-integration/webhook-integration.service.js +342 -59
  251. package/dist/webhook-integration/webhook-integration.service.js.map +1 -1
  252. package/dist/webhook-integration/webhook-utils.d.ts +1 -0
  253. package/dist/webhook-integration/webhook-utils.d.ts.map +1 -1
  254. package/dist/webhook-integration/webhook-utils.js +38 -0
  255. package/dist/webhook-integration/webhook-utils.js.map +1 -1
  256. package/hedhog/data/menu.yaml +63 -4
  257. package/hedhog/data/route.yaml +1437 -0
  258. package/hedhog/data/setting_group.yaml +112 -0
  259. package/hedhog/data/setting_subgroup.yaml +32 -0
  260. package/hedhog/frontend/app/access-log/page.tsx.ejs +772 -0
  261. package/hedhog/frontend/app/account/components/mcp-tokens.tsx.ejs +285 -0
  262. package/hedhog/frontend/app/account/layout.tsx.ejs +32 -55
  263. package/hedhog/frontend/app/account/mcp-tokens/page.tsx.ejs +5 -0
  264. package/hedhog/frontend/app/ai_agent/page.tsx.ejs +10 -3
  265. package/hedhog/frontend/app/dashboard/dashboard-home-tabs.tsx.ejs +33 -13
  266. package/hedhog/frontend/app/dashboard/management/tabs/components-tab.tsx.ejs +12 -5
  267. package/hedhog/frontend/app/dashboard/management/tabs/dashboards-tab.tsx.ejs +12 -5
  268. package/hedhog/frontend/app/integrations-webhooks/page.tsx.ejs +3559 -1835
  269. package/hedhog/frontend/app/mcp_chat/chat-components.tsx.ejs +633 -0
  270. package/hedhog/frontend/app/mcp_chat/chat-types.ts.ejs +16 -0
  271. package/hedhog/frontend/app/mcp_chat/page.tsx.ejs +583 -384
  272. package/hedhog/frontend/app/menu/page.tsx.ejs +9 -3
  273. package/hedhog/frontend/app/roles/page.tsx.ejs +18 -6
  274. package/hedhog/frontend/app/routes/page.tsx.ejs +9 -3
  275. package/hedhog/frontend/app/setting-list/page.tsx.ejs +822 -0
  276. package/hedhog/frontend/app/users/page.tsx.ejs +445 -203
  277. package/hedhog/frontend/app/users/user-access-sheet.tsx.ejs +310 -304
  278. package/hedhog/frontend/app/users/user-sheet.tsx.ejs +41 -44
  279. package/hedhog/frontend/messages/en.json +343 -3
  280. package/hedhog/frontend/messages/pt.json +343 -3
  281. package/hedhog/table/access_log.yaml +31 -0
  282. package/hedhog/table/mcp_api_key.yaml +30 -0
  283. package/hedhog/table/notification.yaml +72 -0
  284. package/hedhog/table/webhook_action_log.yaml +49 -0
  285. package/package.json +5 -4
  286. package/src/access-log/access-log.controller.ts +29 -0
  287. package/src/access-log/access-log.interceptor.ts +38 -0
  288. package/src/access-log/access-log.module.ts +16 -0
  289. package/src/access-log/access-log.service.ts +129 -0
  290. package/src/access-log/dto/query-access-log.dto.ts +23 -0
  291. package/src/auth/auth.service.ts +0 -7
  292. package/src/challenge/challenge.service.ts +0 -2
  293. package/src/core/system.module.ts +1 -0
  294. package/src/core.module.ts +15 -0
  295. package/src/dashboard/dashboard.module.ts +4 -1
  296. package/src/file/file.controller.ts +14 -14
  297. package/src/file/file.service.ts +198 -4
  298. package/src/file/provider/abstract.provider.ts +10 -0
  299. package/src/file/provider/azure.provider.ts +24 -0
  300. package/src/file/provider/gcs.provider.ts +20 -0
  301. package/src/file/provider/local.provider.ts +30 -2
  302. package/src/file/provider/provider.factory.ts +3 -0
  303. package/src/file/provider/s3.provider.ts +22 -0
  304. package/src/index.ts +5 -0
  305. package/src/mcp/guards/mcp-auth.guard.ts +64 -32
  306. package/src/mcp/mcp-api-key.controller.ts +42 -0
  307. package/src/mcp/mcp-api-key.service.ts +66 -0
  308. package/src/mcp/mcp-audit.service.ts +47 -36
  309. package/src/mcp/mcp-registry.service.ts +75 -69
  310. package/src/mcp/mcp.controller.ts +40 -30
  311. package/src/mcp/mcp.module.ts +115 -36
  312. package/src/mcp/tools/core-ai.mcp-tools.ts +156 -0
  313. package/src/mcp/tools/core-dashboard-items.mcp-tools.ts +63 -0
  314. package/src/mcp/tools/core-dashboard.mcp-tools.ts +103 -0
  315. package/src/mcp/tools/core-event-webhooks.mcp-tools.ts +134 -0
  316. package/src/mcp/tools/core-files.mcp-tools.ts +105 -0
  317. package/src/mcp/tools/core-integration-events.mcp-tools.ts +118 -0
  318. package/src/mcp/tools/core-mail-profile.mcp-tools.ts +128 -0
  319. package/src/mcp/tools/core-mail-sent.mcp-tools.ts +76 -0
  320. package/src/mcp/tools/core-mail.mcp-tools.ts +130 -0
  321. package/src/mcp/tools/core-mcp-chat.mcp-tools.ts +81 -0
  322. package/src/mcp/tools/core-menus.mcp-tools.ts +197 -0
  323. package/src/mcp/tools/core-notifications.mcp-tools.ts +128 -0
  324. package/src/mcp/tools/core-profile.mcp-tools.ts +74 -0
  325. package/src/mcp/tools/core-roles.mcp-tools.ts +288 -0
  326. package/src/mcp/tools/core-routes.mcp-tools.ts +196 -0
  327. package/src/mcp/tools/core-screens.mcp-tools.ts +186 -0
  328. package/src/mcp/tools/core-sessions.mcp-tools.ts +97 -0
  329. package/src/mcp/tools/core-settings.mcp-tools.ts +171 -53
  330. package/src/mcp/tools/core-system.mcp-tools.ts +19 -0
  331. package/src/mcp/tools/core-webhooks.mcp-tools.ts +199 -0
  332. package/src/mcp-chat/mcp-chat.controller.ts +113 -60
  333. package/src/mcp-chat/mcp-chat.service.ts +1343 -332
  334. package/src/notification/dto/create-notification.dto.ts +71 -0
  335. package/src/notification/dto/update-progress.dto.ts +16 -0
  336. package/src/notification/notification.controller.ts +83 -0
  337. package/src/notification/notification.module.ts +16 -0
  338. package/src/notification/notification.service.ts +324 -0
  339. package/src/pdf/pdf.service.ts +1 -1
  340. package/src/profile/profile.controller.ts +1 -1
  341. package/src/profile/profile.module.ts +1 -0
  342. package/src/setting/dto/update-setting-list.dto.ts +32 -0
  343. package/src/setting/setting.controller.ts +9 -0
  344. package/src/setting/setting.service.ts +99 -11
  345. package/src/task/task.service.ts +103 -0
  346. package/src/token/token.service.ts +0 -2
  347. package/src/webhook-integration/dto/webhook-action.dto.ts +96 -0
  348. package/src/webhook-integration/webhook-integration.controller.ts +124 -103
  349. package/src/webhook-integration/webhook-integration.service.ts +1137 -735
  350. package/src/webhook-integration/webhook-utils.ts +136 -79
@@ -20,7 +20,15 @@
20
20
  },
21
21
  "SearchBar": {
22
22
  "searchPlaceholder": "Pesquisar...",
23
- "btnBuscar": "Buscar"
23
+ "btnBuscar": "Buscar",
24
+ "filterPlaceholder": "Filtrar"
25
+ },
26
+ "Sheet": {
27
+ "close": "Fechar"
28
+ },
29
+ "PageHeader": {
30
+ "openBreadcrumbLevels": "Abrir níveis do breadcrumb",
31
+ "openActionsMenu": "Abrir menu de ações"
24
32
  },
25
33
  "EmailVerificationPage": {
26
34
  "title": "Verificação de E-mail",
@@ -67,6 +75,7 @@
67
75
  "tab2fa": "2FA",
68
76
  "tabAccounts": "Contas",
69
77
  "tabSessions": "Sessões",
78
+ "tabMcpTokens": "Tokens MCP",
70
79
  "breadcrumbLabel": "Conta",
71
80
  "home": "Home",
72
81
  "title": "Conta",
@@ -125,6 +134,56 @@
125
134
  "timezoneUpdated": "Fuso horário atualizado com sucesso",
126
135
  "timezoneUpdateError": "Falha ao atualizar o fuso horário"
127
136
  },
137
+ "SettingListPage": {
138
+ "breadcrumbs": {
139
+ "home": "Home",
140
+ "core": "Core"
141
+ },
142
+ "title": "Gerenciar opções de configurações",
143
+ "description": "Gerencie as opções das settings do tipo lista (combobox e checkbox), organizadas por grupo e subgrupo.",
144
+ "searchPlaceholder": "Pesquisar por nome, slug, descrição ou opção...",
145
+ "loading": "Carregando configurações...",
146
+ "emptyTitle": "Nenhuma setting de lista encontrada",
147
+ "emptyDescriptionNoSettings": "O grupo selecionado não possui settings de lista (combobox/checkbox) com opções.",
148
+ "emptyDescriptionFiltered": "Nenhuma setting encontrada para o filtro informado.",
149
+ "itemCount": "{count, plural, one {# item} other {# itens}}",
150
+ "emptyOptions": "Nenhuma opção cadastrada.",
151
+ "optionPlaceholder": "Digite o valor da opção",
152
+ "optionsSavedSuccess": "Opções atualizadas com sucesso.",
153
+ "optionsSavedError": "Não foi possível atualizar as opções.",
154
+ "optionsClearedSuccess": "Lista limpa com sucesso.",
155
+ "optionsClearedError": "Não foi possível limpar a lista.",
156
+ "actions": {
157
+ "editOptions": "Editar lista",
158
+ "clearOptions": "Limpar lista",
159
+ "addOption": "Adicionar opção",
160
+ "removeOption": "Remover opção",
161
+ "saveOptions": "Salvar opções",
162
+ "saving": "Salvando..."
163
+ },
164
+ "sheet": {
165
+ "title": "Editar opções da lista",
166
+ "description": "Gerencie os itens da lista de \"{name}\".",
167
+ "descriptionFallback": "Gerencie os itens da lista selecionada."
168
+ },
169
+ "sections": {
170
+ "withoutSubgroup": "Sem subgrupo"
171
+ },
172
+ "kpis": {
173
+ "groups": "Grupos",
174
+ "settingsTotal": "Settings de lista",
175
+ "subgroups": "Subgrupos",
176
+ "settingsWithOptions": "Com opções",
177
+ "totalOptions": "Opções totais",
178
+ "options": "Opções"
179
+ },
180
+ "filters": {
181
+ "allGroups": "Todas",
182
+ "groupPlaceholder": "Grupo",
183
+ "subgroupPlaceholder": "Subgrupo",
184
+ "allSubgroups": "Todos os subgrupos"
185
+ }
186
+ },
128
187
  "UserPage": {
129
188
  "errorName": "O nome deve ter pelo menos 2 caracteres",
130
189
  "errorEmail": "Endereço de e-mail inválido",
@@ -242,7 +301,13 @@
242
301
  "buttonCopyPassword": "Copiar senha",
243
302
  "passwordCopied": "Senha copiada para a área de transferência.",
244
303
  "passwordCopyError": "Não foi possível copiar a senha.",
245
- "close": "Fechar"
304
+ "close": "Fechar",
305
+ "viewMode": "Visualização",
306
+ "viewModeTable": "Tabela",
307
+ "viewModeCards": "Cards",
308
+ "columnName": "Nome",
309
+ "columnEmail": "E-mail",
310
+ "columnStatus": "Status"
246
311
  },
247
312
  "RolePage": {
248
313
  "title": "Gerenciamento de Cargos",
@@ -1807,15 +1872,144 @@
1807
1872
  "grantedByRole": "Liberado por",
1808
1873
  "moreUsers": "+{count} usuários"
1809
1874
  },
1875
+ "IntegrationsWebhooksPage": {
1876
+ "title": "Integrações e Webhooks",
1877
+ "description": "Gerencie eventos, webhooks de entrada e webhooks de saída por evento.",
1878
+ "breadcrumbHome": "Dashboard",
1879
+ "breadcrumbManagement": "Gerenciamento",
1880
+ "statsEvents": "Eventos",
1881
+ "statsIncoming": "Webhooks de entrada",
1882
+ "statsEventWebhooks": "Webhooks de evento",
1883
+ "tabCatalog": "Catálogo",
1884
+ "tabIncoming": "Entrada",
1885
+ "tabEventWebhooks": "Saída",
1886
+ "newEvent": "Novo evento",
1887
+ "newIncoming": "Novo webhook de entrada",
1888
+ "newEventWebhook": "Novo webhook de evento",
1889
+ "searchEvents": "Buscar eventos...",
1890
+ "searchIncoming": "Buscar webhooks de entrada...",
1891
+ "searchEventWebhooks": "Buscar webhooks de evento...",
1892
+ "emptyEvents": "Nenhum evento cadastrado",
1893
+ "emptyEventsDescription": "Cadastre o primeiro evento para iniciar o catálogo.",
1894
+ "emptyIncoming": "Nenhum webhook de entrada cadastrado",
1895
+ "emptyIncomingDescription": "Cadastre um webhook de entrada para receber chamadas externas.",
1896
+ "emptyEventWebhooks": "Nenhum webhook de evento cadastrado",
1897
+ "emptyEventWebhooksDescription": "Cadastre um webhook para disparo automático por evento.",
1898
+ "eventName": "Evento",
1899
+ "name": "Nome",
1900
+ "technicalName": "Nome técnico",
1901
+ "module": "Módulo",
1902
+ "provider": "Provedor",
1903
+ "descriptionColumn": "Descrição",
1904
+ "status": "Status",
1905
+ "updatedAt": "Atualizado em",
1906
+ "actions": "Ações",
1907
+ "publicUrl": "URL pública",
1908
+ "security": "Segurança",
1909
+ "actionsCount": "Qtd. ações",
1910
+ "events": "Eventos",
1911
+ "httpTarget": "Destino HTTP",
1912
+ "retry": "Tentativas",
1913
+ "eventFormDescription": "Defina os dados do evento que poderá disparar integrações.",
1914
+ "incomingFormDescription": "Configure o endpoint público e ações para o webhook de entrada.",
1915
+ "eventWebhookFormDescription": "Configure o envio HTTP quando os eventos selecionados ocorrerem.",
1916
+ "requireToken": "Exigir token",
1917
+ "requireTokenHelp": "Quando ativo, cada chamada deve informar o token secreto.",
1918
+ "token": "Token",
1919
+ "uuid": "UUID",
1920
+ "oneTimeTokenTitle": "Token gerado",
1921
+ "oneTimeTokenDescription": "Copie agora. Este token é exibido apenas uma vez.",
1922
+ "tokenConfiguredTitle": "Token configurado",
1923
+ "tokenConfiguredDescription": "O token atual está ativo. Gere um novo se precisar rotacionar.",
1924
+ "tokenWillBeCreatedDescription": "O token será criado ao salvar este webhook.",
1925
+ "regenerateToken": "Gerar novo token",
1926
+ "allowedIps": "IPs permitidos",
1927
+ "ipAddress": "Endereço IP",
1928
+ "emptyAllowedIps": "Nenhum IP configurado. Qualquer origem poderá chamar o endpoint.",
1929
+ "addIp": "Adicionar IP",
1930
+ "bodySchema": "Schema do corpo",
1931
+ "regenerateUuid": "Gerar novo UUID",
1932
+ "actionSection": "Ações do webhook",
1933
+ "actionType": "Tipo de ação",
1934
+ "email": "E-mail",
1935
+ "whatsapp": "WhatsApp",
1936
+ "order": "Ordem",
1937
+ "mailProfile": "Perfil de e-mail",
1938
+ "mailTemplate": "Template de e-mail",
1939
+ "select": "Selecione",
1940
+ "emailTo": "E-mail para",
1941
+ "emailCc": "E-mail CC",
1942
+ "whatsappTargetType": "Tipo de destino WhatsApp",
1943
+ "phone": "Telefone",
1944
+ "group": "Grupo",
1945
+ "whatsappTarget": "Destino WhatsApp",
1946
+ "whatsappInstance": "Instância WhatsApp",
1947
+ "whatsappBaseUrl": "URL base WhatsApp",
1948
+ "whatsappToken": "Token WhatsApp",
1949
+ "whatsappTemplate": "Template WhatsApp",
1950
+ "addAction": "Adicionar ação",
1951
+ "incomingSheetTabSettings": "Configurações",
1952
+ "incomingSheetTabLogs": "Logs",
1953
+ "emptyIncomingLogs": "Nenhum log de execução",
1954
+ "emptyIncomingLogsDescription": "As tentativas de chamada aparecerão aqui com resultado por ação.",
1955
+ "incomingLogsLoading": "Carregando logs...",
1956
+ "logStatusSuccess": "Sucesso",
1957
+ "logStatusFailed": "Falha",
1958
+ "logDuration": "Duração",
1959
+ "logRemoteIp": "IP remoto",
1960
+ "logResponse": "Resposta",
1961
+ "method": "Método",
1962
+ "url": "URL",
1963
+ "timeout": "Timeout (ms)",
1964
+ "headers": "Headers",
1965
+ "query": "Query",
1966
+ "payload": "Payload",
1967
+ "active": "Ativo",
1968
+ "inactive": "Inativo",
1969
+ "save": "Salvar",
1970
+ "cancel": "Cancelar",
1971
+ "delete": "Excluir",
1972
+ "deleteTitle": "Confirmar exclusão",
1973
+ "deleteDescription": "Tem certeza que deseja excluir \"{name}\"? Esta ação não pode ser desfeita.",
1974
+ "created": "Criado com sucesso",
1975
+ "updated": "Atualizado com sucesso",
1976
+ "deleted": "Excluído com sucesso",
1977
+ "loadError": "Não foi possível carregar os dados.",
1978
+ "saveError": "Não foi possível salvar. Verifique os dados e tente novamente.",
1979
+ "deleteError": "Não foi possível excluir o item.",
1980
+ "tokenGenerated": "Token gerado com sucesso",
1981
+ "uuidRegenerated": "UUID regenerado com sucesso",
1982
+ "editEvent": "Editar evento",
1983
+ "editIncoming": "Editar webhook de entrada",
1984
+ "editEventWebhook": "Editar webhook de evento",
1985
+ "logDate": "Data",
1986
+ "logDetailTitle": "Detalhes do log",
1987
+ "logError": "Erro",
1988
+ "logPayload": "Payload recebido",
1989
+ "logRequest": "Requisição",
1990
+ "logOrderDesc": "Mais recentes primeiro",
1991
+ "logOrderAsc": "Mais antigos primeiro"
1992
+ },
1810
1993
  "McpChatPage": {
1811
1994
  "title": "Chat MCP",
1812
1995
  "description": "Converse com IA usando ferramentas MCP",
1813
1996
  "newConversation": "Nova Conversa",
1814
1997
  "conversations": "Conversas",
1998
+ "openConversations": "Abrir conversas",
1815
1999
  "placeholder": "Digite sua mensagem... (Enter para enviar, Shift+Enter para nova linha)",
1816
2000
  "send": "Enviar",
1817
2001
  "sending": "Enviando...",
1818
2002
  "noConversation": "Selecione ou crie uma conversa",
2003
+ "loadMessagesError": "Falha ao carregar as mensagens",
2004
+ "createConversationError": "Falha ao criar conversa",
2005
+ "sendMessageError": "Falha ao enviar mensagem",
2006
+ "uploadFileError": "Falha ao enviar arquivo",
2007
+ "deleteConversationSuccess": "Conversa excluida",
2008
+ "deleteConversationError": "Falha ao excluir conversa",
2009
+ "attachFile": "Anexar arquivo",
2010
+ "uploadingFile": "Enviando arquivo...",
2011
+ "removeAttachment": "Remover anexo",
2012
+ "attachedFilesPrefix": "Arquivos anexados:",
1819
2013
  "toolCalled": "Ferramenta chamada",
1820
2014
  "toolResult": "Resultado da ferramenta",
1821
2015
  "cancel": "Cancelar",
@@ -1823,6 +2017,152 @@
1823
2017
  "emptyConversations": "Nenhuma conversa ainda",
1824
2018
  "breadcrumbDashboard": "Painel",
1825
2019
  "breadcrumbManagement": "Gerenciamento",
1826
- "breadcrumbCurrent": "Chat MCP"
2020
+ "breadcrumbCurrent": "Chat MCP",
2021
+ "mcpDisabled": "O Servidor MCP está desabilitado. Habilite-o em Configurações → MCP."
2022
+ },
2023
+ "McpTokens": {
2024
+ "title": "Chaves de API MCP",
2025
+ "description": "Crie e gerencie tokens de acesso pessoal para autenticação no servidor MCP",
2026
+ "createToken": "Criar Token",
2027
+ "createTokenTitle": "Criar Chave de API MCP",
2028
+ "createTokenDescription": "Dê um nome ao seu token para identificá-lo depois",
2029
+ "tokenNameLabel": "Nome do Token",
2030
+ "tokenNamePlaceholder": "ex.: Claude Desktop",
2031
+ "tokenCreatedTitle": "Token Criado",
2032
+ "tokenCreatedWarning": "Este token é exibido apenas uma vez. Copie-o agora e guarde em local seguro.",
2033
+ "tokenCreatedLabel": "Sua nova chave de API MCP",
2034
+ "copyToken": "Copiar",
2035
+ "tokenCopied": "Copiado!",
2036
+ "closeDialog": "Fechar",
2037
+ "mcpUrlLabel": "URL do Servidor MCP",
2038
+ "copyUrl": "Copiar URL",
2039
+ "name": "Nome",
2040
+ "tokenPrefix": "Prefixo do Token",
2041
+ "lastUsed": "Último Uso",
2042
+ "createdAt": "Criado Em",
2043
+ "never": "Nunca",
2044
+ "noTokens": "Nenhuma chave de API MCP. Crie uma para conectar clientes externos.",
2045
+ "revoke": "Revogar",
2046
+ "revokeTokenTitle": "Revogar Chave de API",
2047
+ "revokeTokenDescription": "Esta chave deixará de funcionar imediatamente. Esta ação não pode ser desfeita.",
2048
+ "cancel": "Cancelar",
2049
+ "revokeConfirm": "Revogar Chave",
2050
+ "createSuccess": "Chave de API criada",
2051
+ "createFailure": "Falha ao criar a chave de API",
2052
+ "revokeSuccess": "Chave de API revogada",
2053
+ "revokeFailure": "Falha ao revogar a chave de API"
2054
+ },
2055
+ "McpFloatingChat": {
2056
+ "title": "Chat MCP",
2057
+ "openFullPage": "Abrir visão completa",
2058
+ "minimize": "Minimizar",
2059
+ "openChat": "Abrir Chat IA (Ctrl+/)",
2060
+ "inputPlaceholder": "Pergunte qualquer coisa...",
2061
+ "newConversation": "Nova conversa",
2062
+ "emptyState": "Inicie uma conversa com o assistente de IA.",
2063
+ "send": "Enviar",
2064
+ "sending": "Enviando...",
2065
+ "attachFile": "Anexar arquivo",
2066
+ "uploadingFile": "Enviando arquivo...",
2067
+ "removeAttachment": "Remover anexo",
2068
+ "createConversationError": "Falha ao iniciar conversa",
2069
+ "sendMessageError": "Falha ao enviar mensagem",
2070
+ "uploadFileError": "Falha ao enviar arquivo"
2071
+ },
2072
+ "Notification": {
2073
+ "title": "Notificações",
2074
+ "markAllRead": "Marcar todas como lidas",
2075
+ "empty": "Nenhuma notificação",
2076
+ "justNow": "Agora mesmo",
2077
+ "minutesAgo": "há {count}min",
2078
+ "hoursAgo": "há {count}h",
2079
+ "daysAgo": "há {count}d",
2080
+ "elapsed": "{time} decorrido",
2081
+ "inProgress": "Em andamento...",
2082
+ "completed": "Concluído",
2083
+ "clearAll": "Limpar todas as notificações",
2084
+ "failed": "Falhou"
2085
+ },
2086
+ "FfmpegParamsEditor": {
2087
+ "resolution": "Resolução",
2088
+ "customResolution": "Personalizada",
2089
+ "width": "Largura",
2090
+ "height": "Altura",
2091
+ "videoCodec": "Codec de Vídeo",
2092
+ "encodingSpeed": "Velocidade de Codificação",
2093
+ "quality": "Qualidade",
2094
+ "qualityBest": "Melhor (arquivo maior)",
2095
+ "qualityWorst": "Pior (arquivo menor)",
2096
+ "qualityPerfect": "Sem perdas",
2097
+ "qualityVeryHigh": "Muito Alta",
2098
+ "qualityHigh": "Alta",
2099
+ "qualityMedium": "Média",
2100
+ "qualityLow": "Baixa",
2101
+ "qualityVeryLow": "Muito Baixa",
2102
+ "audioCodec": "Codec de Áudio",
2103
+ "audioChannels": "Canais de Áudio",
2104
+ "mono": "Mono (1 canal)",
2105
+ "stereo": "Estéreo (2 canais)",
2106
+ "webOptimized": "Otimizar para streaming web",
2107
+ "webOptimizedDescription": "Habilita início rápido para download progressivo (recomendado para vídeos online)",
2108
+ "keepAspectRatio": "Manter proporção original",
2109
+ "keepAspectRatioDescription": "Adiciona barras para preservar as proporções originais do vídeo",
2110
+ "deinterlace": "Desinterlace",
2111
+ "deinterlaceDescription": "Remove artefatos de entrelaçamento de gravações de broadcast ou câmera",
2112
+ "presets": {
2113
+ "ultrafast": "Ultra Rápida (menor qualidade)",
2114
+ "superfast": "Super Rápida",
2115
+ "veryfast": "Muito Rápida",
2116
+ "faster": "Mais Rápida",
2117
+ "fast": "Rápida",
2118
+ "medium": "Média",
2119
+ "slow": "Lenta",
2120
+ "slower": "Mais Lenta (recomendada)",
2121
+ "veryslow": "Muito Lenta (melhor qualidade)"
2122
+ }
2123
+ },
2124
+ "AccessLog": {
2125
+ "breadcrumbHome": "Início",
2126
+ "breadcrumbTitle": "Logs de Acesso",
2127
+ "title": "Logs de Acesso",
2128
+ "description": "Registro em tempo real de todos os acessos HTTP e MCP ao sistema",
2129
+ "totalLogs": "Total de Logs",
2130
+ "httpRequests": "Requisições HTTP",
2131
+ "mcpCalls": "Chamadas MCP",
2132
+ "uniqueUsers": "Usuários Únicos",
2133
+ "searchPlaceholder": "Buscar por path ou ferramenta...",
2134
+ "userPickerPlaceholder": "Todos os usuários",
2135
+ "userPickerSearch": "Buscar usuários...",
2136
+ "filterByType": "Tipo",
2137
+ "typeAll": "Todos",
2138
+ "typeHttp": "HTTP",
2139
+ "typeMcp": "MCP",
2140
+ "noLogsFound": "Nenhum log encontrado",
2141
+ "adjustSearch": "Tente ajustar os filtros ou o intervalo de datas",
2142
+ "noLogsYet": "Nenhum log de acesso registrado ainda",
2143
+ "viewDetails": "Detalhes",
2144
+ "logDetails": "Detalhes do Log",
2145
+ "clearFilters": "Limpar Filtros",
2146
+ "user": "Usuário",
2147
+ "ip": "IP",
2148
+ "browser": "Navegador",
2149
+ "method": "Método",
2150
+ "path": "Rota",
2151
+ "tool": "Ferramenta MCP",
2152
+ "prompt": "Prompt / Input",
2153
+ "createdAt": "Data / Hora",
2154
+ "anonymous": "Anônimo",
2155
+ "loadingLogs": "Carregando logs...",
2156
+ "viewMode": "Visualização",
2157
+ "viewModeTable": "Tabela",
2158
+ "viewModeCards": "Cards",
2159
+ "refreshList": "Atualizar",
2160
+ "liveMode": "Ao Vivo",
2161
+ "pauseUpdates": "Pausar",
2162
+ "resumeUpdates": "Retomar",
2163
+ "id": "ID",
2164
+ "actions": "Ações",
2165
+ "noUserAgent": "—",
2166
+ "detailsDescription": "Detalhes completos desta entrada de log de acesso"
1827
2167
  }
1828
2168
  }
@@ -0,0 +1,31 @@
1
+ columns:
2
+ - type: pk
3
+ - name: user_id
4
+ type: fk
5
+ references:
6
+ table: user
7
+ column: id
8
+ onDelete: SET NULL
9
+ isNullable: true
10
+ - name: ip
11
+ length: 45
12
+ isNullable: true
13
+ - name: user_agent
14
+ type: text
15
+ isNullable: true
16
+ - name: method
17
+ length: 10
18
+ isNullable: true
19
+ - name: path
20
+ length: 2048
21
+ isNullable: true
22
+ - name: mcp_tool
23
+ length: 255
24
+ isNullable: true
25
+ - name: mcp_prompt
26
+ type: text
27
+ isNullable: true
28
+ - type: created_at
29
+ indexes:
30
+ - fields: [user_id]
31
+ - fields: [created_at]
@@ -0,0 +1,30 @@
1
+ columns:
2
+ - type: pk
3
+ - name: user_id
4
+ type: fk
5
+ references:
6
+ table: user
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: name
10
+ type: varchar
11
+ - name: token_hash
12
+ type: varchar
13
+ - name: token_prefix
14
+ type: varchar
15
+ - name: last_used_at
16
+ type: datetime
17
+ isNullable: true
18
+ - name: expires_at
19
+ type: datetime
20
+ isNullable: true
21
+ - name: revoked_at
22
+ type: datetime
23
+ isNullable: true
24
+ - type: created_at
25
+ - type: updated_at
26
+ indices:
27
+ - columns:
28
+ - user_id
29
+ - columns:
30
+ - token_hash
@@ -0,0 +1,72 @@
1
+ columns:
2
+ - type: pk
3
+ - name: user_id
4
+ type: fk
5
+ references:
6
+ table: user
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: title
11
+ type: varchar
12
+ length: 255
13
+ - name: body
14
+ type: text
15
+ isNullable: true
16
+ - name: type
17
+ type: enum
18
+ values:
19
+ - info
20
+ - success
21
+ - warning
22
+ - error
23
+ - progress
24
+ default: info
25
+ - name: status
26
+ type: enum
27
+ values:
28
+ - unread
29
+ - read
30
+ default: unread
31
+ - name: icon
32
+ type: varchar
33
+ length: 64
34
+ isNullable: true
35
+ - name: action_type
36
+ type: enum
37
+ values:
38
+ - url
39
+ - sheet
40
+ - modal
41
+ default: url
42
+ isNullable: true
43
+ - name: action_data
44
+ type: json
45
+ isNullable: true
46
+ - name: action_url
47
+ type: varchar
48
+ length: 512
49
+ isNullable: true
50
+ - name: auto_remove
51
+ type: boolean
52
+ default: false
53
+ - name: progress
54
+ type: int
55
+ isNullable: true
56
+ - name: started_at
57
+ type: timestamptz
58
+ isNullable: true
59
+ - name: finished_at
60
+ type: timestamptz
61
+ isNullable: true
62
+ - type: created_at
63
+ - type: updated_at
64
+ indices:
65
+ - columns:
66
+ - user_id
67
+ - columns:
68
+ - user_id
69
+ - status
70
+ - columns:
71
+ - user_id
72
+ - created_at
@@ -0,0 +1,49 @@
1
+ columns:
2
+ - type: pk
3
+ - type: fk
4
+ name: webhook_call_log_id
5
+ references:
6
+ table: webhook_call_log
7
+ column: id
8
+ onDelete: cascade
9
+ onUpdate: cascade
10
+ - type: fk
11
+ name: webhook_action_id
12
+ isNullable: true
13
+ references:
14
+ table: webhook_action
15
+ column: id
16
+ onDelete: set null
17
+ onUpdate: cascade
18
+ - name: action_name
19
+ type: varchar
20
+ length: 127
21
+ - name: action_type
22
+ type: varchar
23
+ length: 64
24
+ - name: status
25
+ type: varchar
26
+ length: 16
27
+ - name: duration_ms
28
+ type: int
29
+ default: 0
30
+ - name: request_payload
31
+ type: json
32
+ isNullable: true
33
+ - name: response_payload
34
+ type: json
35
+ isNullable: true
36
+ - name: error_message
37
+ type: text
38
+ isNullable: true
39
+ - type: created_at
40
+ - type: updated_at
41
+ indices:
42
+ - columns:
43
+ - webhook_call_log_id
44
+ - columns:
45
+ - webhook_action_id
46
+ - columns:
47
+ - status
48
+ - columns:
49
+ - created_at
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hed-hog/core",
3
- "version": "0.0.349",
3
+ "version": "0.0.351",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "dependencies": {
@@ -24,6 +24,7 @@
24
24
  "multer": "^2.0.1",
25
25
  "pako": "^2.1.0",
26
26
  "pdf-parse": "^1.1.1",
27
+ "playwright": "^1.49.0",
27
28
  "png-to-ico": "^2.1.8",
28
29
  "qrcode": "^1.5.4",
29
30
  "rxjs": "^7.8.2",
@@ -31,12 +32,12 @@
31
32
  "speakeasy": "^2.0.0",
32
33
  "uuid": "^11.1.0",
33
34
  "@modelcontextprotocol/sdk": "^1.12.0",
35
+ "@hed-hog/api-types": "0.0.1",
34
36
  "@hed-hog/api-locale": "0.0.14",
35
- "@hed-hog/api-pagination": "0.0.7",
37
+ "@hed-hog/api-mail": "0.0.9",
36
38
  "@hed-hog/api-prisma": "0.0.6",
37
39
  "@hed-hog/api": "0.0.8",
38
- "@hed-hog/api-mail": "0.0.9",
39
- "@hed-hog/api-types": "0.0.1"
40
+ "@hed-hog/api-pagination": "0.0.7"
40
41
  },
41
42
  "exports": {
42
43
  ".": {
@@ -0,0 +1,29 @@
1
+ import { Role } from '@hed-hog/api';
2
+ import { Pagination } from '@hed-hog/api-pagination';
3
+ import { Controller, Get, Inject, Query, forwardRef } from '@nestjs/common';
4
+ import { AccessLogService } from './access-log.service';
5
+ import { QueryAccessLogDto } from './dto/query-access-log.dto';
6
+
7
+ @Role()
8
+ @Controller('access-log')
9
+ export class AccessLogController {
10
+ constructor(
11
+ @Inject(forwardRef(() => AccessLogService))
12
+ private readonly accessLogService: AccessLogService,
13
+ ) {}
14
+
15
+ @Get()
16
+ async list(
17
+ @Pagination() paginationParams,
18
+ @Query() query: QueryAccessLogDto,
19
+ ) {
20
+ return this.accessLogService.list({
21
+ ...paginationParams,
22
+ userId: query.userId ? Number(query.userId) : undefined,
23
+ userSearch: query.userSearch,
24
+ createdAtFrom: query.createdAtFrom,
25
+ createdAtTo: query.createdAtTo,
26
+ type: query.type,
27
+ });
28
+ }
29
+ }
@@ -0,0 +1,38 @@
1
+ import {
2
+ CallHandler,
3
+ ExecutionContext,
4
+ Injectable,
5
+ NestInterceptor,
6
+ } from '@nestjs/common';
7
+ import { Observable, tap } from 'rxjs';
8
+ import { AccessLogService } from './access-log.service';
9
+
10
+ @Injectable()
11
+ export class AccessLogInterceptor implements NestInterceptor {
12
+ constructor(private readonly accessLogService: AccessLogService) {}
13
+
14
+ intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
15
+ if (context.getType() !== 'http') {
16
+ return next.handle();
17
+ }
18
+
19
+ const request = context.switchToHttp().getRequest();
20
+ const path: string = request.url ?? '';
21
+
22
+ if (path.startsWith('/mcp')) {
23
+ return next.handle();
24
+ }
25
+
26
+ return next.handle().pipe(
27
+ tap(() => {
28
+ const userId: number | undefined = request.auth?.sub;
29
+ const forwarded = request.headers['x-forwarded-for'] as string | undefined;
30
+ const ip: string = forwarded ? forwarded.split(',')[0].trim() : (request.ip ?? '');
31
+ const userAgent: string = (request.headers['user-agent'] as string) ?? '';
32
+ const method: string = request.method ?? '';
33
+
34
+ this.accessLogService.recordHttp({ userId, ip, userAgent, method, path });
35
+ }),
36
+ );
37
+ }
38
+ }