@hed-hog/core 0.0.399 → 0.0.400

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 (668) hide show
  1. package/dist/ai/ai-agent.sort.d.ts +6 -0
  2. package/dist/ai/ai-agent.sort.d.ts.map +1 -0
  3. package/dist/ai/ai-agent.sort.js +21 -0
  4. package/dist/ai/ai-agent.sort.js.map +1 -0
  5. package/dist/ai/ai.controller.d.ts +4 -4
  6. package/dist/ai/ai.service.d.ts +35 -4
  7. package/dist/ai/ai.service.d.ts.map +1 -1
  8. package/dist/ai/ai.service.js +51 -137
  9. package/dist/ai/ai.service.js.map +1 -1
  10. package/dist/ai-instruction/ai-instruction.service.d.ts.map +1 -1
  11. package/dist/ai-instruction/ai-instruction.service.js +26 -23
  12. package/dist/ai-instruction/ai-instruction.service.js.map +1 -1
  13. package/dist/ai-instruction/ai-instruction.sort.d.ts +16 -0
  14. package/dist/ai-instruction/ai-instruction.sort.d.ts.map +1 -0
  15. package/dist/ai-instruction/ai-instruction.sort.js +32 -0
  16. package/dist/ai-instruction/ai-instruction.sort.js.map +1 -0
  17. package/dist/auth/auth.controller.d.ts +24 -8
  18. package/dist/auth/auth.controller.d.ts.map +1 -1
  19. package/dist/auth/auth.module.d.ts.map +1 -1
  20. package/dist/auth/auth.module.js +8 -1
  21. package/dist/auth/auth.module.js.map +1 -1
  22. package/dist/auth/auth.service.d.ts +72 -25
  23. package/dist/auth/auth.service.d.ts.map +1 -1
  24. package/dist/auth/auth.service.js +41 -4
  25. package/dist/auth/auth.service.js.map +1 -1
  26. package/dist/auth/guards/auth.guard.d.ts +3 -1
  27. package/dist/auth/guards/auth.guard.d.ts.map +1 -1
  28. package/dist/auth/guards/auth.guard.js +12 -3
  29. package/dist/auth/guards/auth.guard.js.map +1 -1
  30. package/dist/authorize/authorize.controller.d.ts +29 -5
  31. package/dist/authorize/authorize.controller.d.ts.map +1 -1
  32. package/dist/authorize/authorize.controller.js +120 -13
  33. package/dist/authorize/authorize.controller.js.map +1 -1
  34. package/dist/authorize/authorize.errors.d.ts +34 -0
  35. package/dist/authorize/authorize.errors.d.ts.map +1 -0
  36. package/dist/authorize/authorize.errors.js +37 -0
  37. package/dist/authorize/authorize.errors.js.map +1 -0
  38. package/dist/authorize/authorize.module.d.ts.map +1 -1
  39. package/dist/authorize/authorize.module.js +6 -1
  40. package/dist/authorize/authorize.module.js.map +1 -1
  41. package/dist/authorize/authorize.service.d.ts +77 -3
  42. package/dist/authorize/authorize.service.d.ts.map +1 -1
  43. package/dist/authorize/authorize.service.js +212 -21
  44. package/dist/authorize/authorize.service.js.map +1 -1
  45. package/dist/authorize/dto/authorize-info.dto.d.ts +10 -1
  46. package/dist/authorize/dto/authorize-info.dto.d.ts.map +1 -1
  47. package/dist/authorize/dto/authorize-info.dto.js +16 -1
  48. package/dist/authorize/dto/authorize-info.dto.js.map +1 -1
  49. package/dist/authorize/dto/consent.dto.d.ts +10 -1
  50. package/dist/authorize/dto/consent.dto.d.ts.map +1 -1
  51. package/dist/authorize/dto/consent.dto.js +16 -1
  52. package/dist/authorize/dto/consent.dto.js.map +1 -1
  53. package/dist/authorize/dto/token.dto.d.ts +12 -0
  54. package/dist/authorize/dto/token.dto.d.ts.map +1 -1
  55. package/dist/authorize/dto/token.dto.js +21 -1
  56. package/dist/authorize/dto/token.dto.js.map +1 -1
  57. package/dist/authorize/oauth-exception.filter.d.ts +17 -0
  58. package/dist/authorize/oauth-exception.filter.d.ts.map +1 -0
  59. package/dist/authorize/oauth-exception.filter.js +54 -0
  60. package/dist/authorize/oauth-exception.filter.js.map +1 -0
  61. package/dist/authorize/oauth-metadata.service.d.ts +39 -0
  62. package/dist/authorize/oauth-metadata.service.d.ts.map +1 -0
  63. package/dist/authorize/oauth-metadata.service.js +81 -0
  64. package/dist/authorize/oauth-metadata.service.js.map +1 -0
  65. package/dist/authorize/well-known.controller.d.ts +67 -0
  66. package/dist/authorize/well-known.controller.d.ts.map +1 -0
  67. package/dist/authorize/well-known.controller.js +126 -0
  68. package/dist/authorize/well-known.controller.js.map +1 -0
  69. package/dist/captcha/captcha.service.d.ts +32 -2
  70. package/dist/captcha/captcha.service.d.ts.map +1 -1
  71. package/dist/captcha/captcha.service.js +85 -12
  72. package/dist/captcha/captcha.service.js.map +1 -1
  73. package/dist/challenge/challenge.service.d.ts +2 -2
  74. package/dist/core.module.d.ts.map +1 -1
  75. package/dist/core.module.js +6 -0
  76. package/dist/core.module.js.map +1 -1
  77. package/dist/dashboard/dashboard/dashboard.controller.d.ts +9 -9
  78. package/dist/dashboard/dashboard/dashboard.service.d.ts +9 -9
  79. package/dist/dashboard/dashboard-component/dashboard-component.controller.d.ts +3 -3
  80. package/dist/dashboard/dashboard-component/dashboard-component.service.d.ts +3 -3
  81. package/dist/dashboard/dashboard-component-role/dashboard-component-role.controller.d.ts +3 -3
  82. package/dist/dashboard/dashboard-component-role/dashboard-component-role.service.d.ts +3 -3
  83. package/dist/dashboard/dashboard-component-role/dashboard-component-role.service.d.ts.map +1 -1
  84. package/dist/dashboard/dashboard-component-role/dashboard-component-role.service.js +2 -4
  85. package/dist/dashboard/dashboard-component-role/dashboard-component-role.service.js.map +1 -1
  86. package/dist/dashboard/dashboard-component-role/dashboard-component-role.sort.d.ts +8 -0
  87. package/dist/dashboard/dashboard-component-role/dashboard-component-role.sort.d.ts.map +1 -0
  88. package/dist/dashboard/dashboard-component-role/dashboard-component-role.sort.js +18 -0
  89. package/dist/dashboard/dashboard-component-role/dashboard-component-role.sort.js.map +1 -0
  90. package/dist/dashboard/dashboard-item/dashboard-item.service.d.ts.map +1 -1
  91. package/dist/dashboard/dashboard-item/dashboard-item.service.js +2 -4
  92. package/dist/dashboard/dashboard-item/dashboard-item.service.js.map +1 -1
  93. package/dist/dashboard/dashboard-item/dashboard-item.sort.d.ts +9 -0
  94. package/dist/dashboard/dashboard-item/dashboard-item.sort.d.ts.map +1 -0
  95. package/dist/dashboard/dashboard-item/dashboard-item.sort.js +19 -0
  96. package/dist/dashboard/dashboard-item/dashboard-item.sort.js.map +1 -0
  97. package/dist/dashboard/dashboard-role/dashboard-role.controller.d.ts +3 -3
  98. package/dist/dashboard/dashboard-role/dashboard-role.service.d.ts +3 -3
  99. package/dist/dashboard/dashboard-role/dashboard-role.service.d.ts.map +1 -1
  100. package/dist/dashboard/dashboard-role/dashboard-role.service.js +2 -4
  101. package/dist/dashboard/dashboard-role/dashboard-role.service.js.map +1 -1
  102. package/dist/dashboard/dashboard-role/dashboard-role.sort.d.ts +8 -0
  103. package/dist/dashboard/dashboard-role/dashboard-role.sort.d.ts.map +1 -0
  104. package/dist/dashboard/dashboard-role/dashboard-role.sort.js +16 -0
  105. package/dist/dashboard/dashboard-role/dashboard-role.sort.js.map +1 -0
  106. package/dist/file/file-upload-ticket.service.d.ts +160 -0
  107. package/dist/file/file-upload-ticket.service.d.ts.map +1 -0
  108. package/dist/file/file-upload-ticket.service.js +382 -0
  109. package/dist/file/file-upload-ticket.service.js.map +1 -0
  110. package/dist/file/file.controller.d.ts +24 -1
  111. package/dist/file/file.controller.d.ts.map +1 -1
  112. package/dist/file/file.controller.js +63 -2
  113. package/dist/file/file.controller.js.map +1 -1
  114. package/dist/file/file.module.d.ts.map +1 -1
  115. package/dist/file/file.module.js +14 -2
  116. package/dist/file/file.module.js.map +1 -1
  117. package/dist/file/file.service.d.ts +182 -6
  118. package/dist/file/file.service.d.ts.map +1 -1
  119. package/dist/file/file.service.js +386 -54
  120. package/dist/file/file.service.js.map +1 -1
  121. package/dist/file/filename-encoding.util.d.ts +24 -0
  122. package/dist/file/filename-encoding.util.d.ts.map +1 -0
  123. package/dist/file/filename-encoding.util.js +63 -0
  124. package/dist/file/filename-encoding.util.js.map +1 -0
  125. package/dist/file/image-optimization.service.d.ts +27 -0
  126. package/dist/file/image-optimization.service.d.ts.map +1 -1
  127. package/dist/file/image-optimization.service.js +63 -14
  128. package/dist/file/image-optimization.service.js.map +1 -1
  129. package/dist/file/mcp-file-source.schema.d.ts +33 -0
  130. package/dist/file/mcp-file-source.schema.d.ts.map +1 -0
  131. package/dist/file/mcp-file-source.schema.js +75 -0
  132. package/dist/file/mcp-file-source.schema.js.map +1 -0
  133. package/dist/file/mcp-file-source.service.d.ts +124 -0
  134. package/dist/file/mcp-file-source.service.d.ts.map +1 -0
  135. package/dist/file/mcp-file-source.service.js +262 -0
  136. package/dist/file/mcp-file-source.service.js.map +1 -0
  137. package/dist/file/mimetype-sniff.util.d.ts +62 -0
  138. package/dist/file/mimetype-sniff.util.d.ts.map +1 -0
  139. package/dist/file/mimetype-sniff.util.js +226 -0
  140. package/dist/file/mimetype-sniff.util.js.map +1 -0
  141. package/dist/file/remote-fetch.util.d.ts +35 -0
  142. package/dist/file/remote-fetch.util.d.ts.map +1 -0
  143. package/dist/file/remote-fetch.util.js +236 -0
  144. package/dist/file/remote-fetch.util.js.map +1 -0
  145. package/dist/impersonation/dto/start-impersonation.dto.d.ts +4 -1
  146. package/dist/impersonation/dto/start-impersonation.dto.d.ts.map +1 -1
  147. package/dist/impersonation/dto/start-impersonation.dto.js +1 -1
  148. package/dist/impersonation/dto/start-impersonation.dto.js.map +1 -1
  149. package/dist/impersonation/impersonation.service.d.ts +8 -3
  150. package/dist/impersonation/impersonation.service.d.ts.map +1 -1
  151. package/dist/impersonation/impersonation.service.js +14 -4
  152. package/dist/impersonation/impersonation.service.js.map +1 -1
  153. package/dist/incident/incident.controller.d.ts +2 -1
  154. package/dist/incident/incident.controller.d.ts.map +1 -1
  155. package/dist/incident/incident.controller.js +10 -6
  156. package/dist/incident/incident.controller.js.map +1 -1
  157. package/dist/incident/incident.service.d.ts +2 -0
  158. package/dist/incident/incident.service.d.ts.map +1 -1
  159. package/dist/incident/incident.service.js +4 -0
  160. package/dist/incident/incident.service.js.map +1 -1
  161. package/dist/index.d.ts +17 -0
  162. package/dist/index.d.ts.map +1 -1
  163. package/dist/index.js +17 -0
  164. package/dist/index.js.map +1 -1
  165. package/dist/integration-profile/integration-profile.secrets.d.ts.map +1 -1
  166. package/dist/integration-profile/integration-profile.secrets.js +7 -0
  167. package/dist/integration-profile/integration-profile.secrets.js.map +1 -1
  168. package/dist/integration-profile/integration-profile.service.d.ts +0 -13
  169. package/dist/integration-profile/integration-profile.service.d.ts.map +1 -1
  170. package/dist/integration-profile/integration-profile.service.js +5 -40
  171. package/dist/integration-profile/integration-profile.service.js.map +1 -1
  172. package/dist/integration-profile/integration-profile.utils.js +5 -5
  173. package/dist/integration-profile/integration-profile.utils.js.map +1 -1
  174. package/dist/integration-profile/testers/index.d.ts.map +1 -1
  175. package/dist/integration-profile/testers/index.js +2 -0
  176. package/dist/integration-profile/testers/index.js.map +1 -1
  177. package/dist/integration-profile/testers/shipping.testers.d.ts +3 -0
  178. package/dist/integration-profile/testers/shipping.testers.d.ts.map +1 -0
  179. package/dist/integration-profile/testers/shipping.testers.js +71 -0
  180. package/dist/integration-profile/testers/shipping.testers.js.map +1 -0
  181. package/dist/locale/locale.controller.d.ts +1 -1
  182. package/dist/locale/locale.service.d.ts +1 -1
  183. package/dist/mail/dto/send.dto.d.ts +6 -1
  184. package/dist/mail/dto/send.dto.d.ts.map +1 -1
  185. package/dist/mail/dto/send.dto.js.map +1 -1
  186. package/dist/mail/mail.service.d.ts +9 -0
  187. package/dist/mail/mail.service.d.ts.map +1 -1
  188. package/dist/mail/mail.service.js +34 -14
  189. package/dist/mail/mail.service.js.map +1 -1
  190. package/dist/mail-sent/mail-sent.controller.d.ts +1 -1
  191. package/dist/mail-sent/mail-sent.service.d.ts +1 -1
  192. package/dist/mail-sent/mail-sent.service.d.ts.map +1 -1
  193. package/dist/mail-sent/mail-sent.service.js +2 -1
  194. package/dist/mail-sent/mail-sent.service.js.map +1 -1
  195. package/dist/mail-sent/mail-sent.sort.d.ts +9 -0
  196. package/dist/mail-sent/mail-sent.sort.d.ts.map +1 -0
  197. package/dist/mail-sent/mail-sent.sort.js +19 -0
  198. package/dist/mail-sent/mail-sent.sort.js.map +1 -0
  199. package/dist/mcp/filters/mcp-challenge.filter.d.ts +20 -0
  200. package/dist/mcp/filters/mcp-challenge.filter.d.ts.map +1 -0
  201. package/dist/mcp/filters/mcp-challenge.filter.js +69 -0
  202. package/dist/mcp/filters/mcp-challenge.filter.js.map +1 -0
  203. package/dist/mcp/guards/mcp-auth.guard.d.ts +4 -1
  204. package/dist/mcp/guards/mcp-auth.guard.d.ts.map +1 -1
  205. package/dist/mcp/guards/mcp-auth.guard.js +19 -5
  206. package/dist/mcp/guards/mcp-auth.guard.js.map +1 -1
  207. package/dist/mcp/guards/mcp-permission.guard.d.ts +25 -3
  208. package/dist/mcp/guards/mcp-permission.guard.d.ts.map +1 -1
  209. package/dist/mcp/guards/mcp-permission.guard.js +46 -26
  210. package/dist/mcp/guards/mcp-permission.guard.js.map +1 -1
  211. package/dist/mcp/mcp-audit.service.d.ts +17 -0
  212. package/dist/mcp/mcp-audit.service.d.ts.map +1 -1
  213. package/dist/mcp/mcp-audit.service.js +32 -3
  214. package/dist/mcp/mcp-audit.service.js.map +1 -1
  215. package/dist/mcp/mcp-permission.service.d.ts +64 -0
  216. package/dist/mcp/mcp-permission.service.d.ts.map +1 -0
  217. package/dist/mcp/mcp-permission.service.js +178 -0
  218. package/dist/mcp/mcp-permission.service.js.map +1 -0
  219. package/dist/mcp/mcp-server.service.d.ts +3 -1
  220. package/dist/mcp/mcp-server.service.d.ts.map +1 -1
  221. package/dist/mcp/mcp-server.service.js +36 -15
  222. package/dist/mcp/mcp-server.service.js.map +1 -1
  223. package/dist/mcp/mcp.controller.d.ts.map +1 -1
  224. package/dist/mcp/mcp.controller.js +10 -2
  225. package/dist/mcp/mcp.controller.js.map +1 -1
  226. package/dist/mcp/mcp.module.d.ts.map +1 -1
  227. package/dist/mcp/mcp.module.js +5 -1
  228. package/dist/mcp/mcp.module.js.map +1 -1
  229. package/dist/mcp/tools/core-ai.mcp-tools.js +2 -9
  230. package/dist/mcp/tools/core-ai.mcp-tools.js.map +1 -1
  231. package/dist/mcp/tools/core-dashboard-items.mcp-tools.js +1 -1
  232. package/dist/mcp/tools/core-dashboard-items.mcp-tools.js.map +1 -1
  233. package/dist/mcp/tools/core-dashboard.mcp-tools.js +2 -9
  234. package/dist/mcp/tools/core-dashboard.mcp-tools.js.map +1 -1
  235. package/dist/mcp/tools/core-event-webhooks.mcp-tools.d.ts.map +1 -1
  236. package/dist/mcp/tools/core-event-webhooks.mcp-tools.js +2 -10
  237. package/dist/mcp/tools/core-event-webhooks.mcp-tools.js.map +1 -1
  238. package/dist/mcp/tools/core-files.mcp-tools.d.ts +17 -5
  239. package/dist/mcp/tools/core-files.mcp-tools.d.ts.map +1 -1
  240. package/dist/mcp/tools/core-files.mcp-tools.js +186 -24
  241. package/dist/mcp/tools/core-files.mcp-tools.js.map +1 -1
  242. package/dist/mcp/tools/core-integration-events.mcp-tools.js +2 -9
  243. package/dist/mcp/tools/core-integration-events.mcp-tools.js.map +1 -1
  244. package/dist/mcp/tools/core-mail-sent.mcp-tools.js +2 -14
  245. package/dist/mcp/tools/core-mail-sent.mcp-tools.js.map +1 -1
  246. package/dist/mcp/tools/core-mail.mcp-tools.js +2 -9
  247. package/dist/mcp/tools/core-mail.mcp-tools.js.map +1 -1
  248. package/dist/mcp/tools/core-menus.mcp-tools.d.ts.map +1 -1
  249. package/dist/mcp/tools/core-menus.mcp-tools.js +2 -10
  250. package/dist/mcp/tools/core-menus.mcp-tools.js.map +1 -1
  251. package/dist/mcp/tools/core-notifications.mcp-tools.d.ts.map +1 -1
  252. package/dist/mcp/tools/core-notifications.mcp-tools.js +0 -1
  253. package/dist/mcp/tools/core-notifications.mcp-tools.js.map +1 -1
  254. package/dist/mcp/tools/core-roles.mcp-tools.d.ts.map +1 -1
  255. package/dist/mcp/tools/core-roles.mcp-tools.js +2 -13
  256. package/dist/mcp/tools/core-roles.mcp-tools.js.map +1 -1
  257. package/dist/mcp/tools/core-routes.mcp-tools.d.ts.map +1 -1
  258. package/dist/mcp/tools/core-routes.mcp-tools.js +2 -11
  259. package/dist/mcp/tools/core-routes.mcp-tools.js.map +1 -1
  260. package/dist/mcp/tools/core-screens.mcp-tools.d.ts.map +1 -1
  261. package/dist/mcp/tools/core-screens.mcp-tools.js +2 -11
  262. package/dist/mcp/tools/core-screens.mcp-tools.js.map +1 -1
  263. package/dist/mcp/tools/core-sessions.mcp-tools.d.ts.map +1 -1
  264. package/dist/mcp/tools/core-sessions.mcp-tools.js +0 -2
  265. package/dist/mcp/tools/core-sessions.mcp-tools.js.map +1 -1
  266. package/dist/mcp/tools/core-settings.mcp-tools.d.ts.map +1 -1
  267. package/dist/mcp/tools/core-settings.mcp-tools.js +2 -10
  268. package/dist/mcp/tools/core-settings.mcp-tools.js.map +1 -1
  269. package/dist/mcp/tools/core-users.mcp-tools.js +2 -9
  270. package/dist/mcp/tools/core-users.mcp-tools.js.map +1 -1
  271. package/dist/mcp/tools/core-webhooks.mcp-tools.d.ts.map +1 -1
  272. package/dist/mcp/tools/core-webhooks.mcp-tools.js +2 -10
  273. package/dist/mcp/tools/core-webhooks.mcp-tools.js.map +1 -1
  274. package/dist/mcp/types/mcp-context.type.d.ts +9 -0
  275. package/dist/mcp/types/mcp-context.type.d.ts.map +1 -1
  276. package/dist/mcp-chat/mcp-chat.service.d.ts.map +1 -1
  277. package/dist/mcp-chat/mcp-chat.service.js +8 -0
  278. package/dist/mcp-chat/mcp-chat.service.js.map +1 -1
  279. package/dist/meeting/meeting-provider.registry.d.ts +115 -0
  280. package/dist/meeting/meeting-provider.registry.d.ts.map +1 -1
  281. package/dist/meeting/meeting-provider.registry.js.map +1 -1
  282. package/dist/meeting/meeting.constants.d.ts +70 -0
  283. package/dist/meeting/meeting.constants.d.ts.map +1 -1
  284. package/dist/meeting/meeting.constants.js +9 -1
  285. package/dist/meeting/meeting.constants.js.map +1 -1
  286. package/dist/menu/menu.service.d.ts.map +1 -1
  287. package/dist/menu/menu.service.js +29 -9
  288. package/dist/menu/menu.service.js.map +1 -1
  289. package/dist/message-template/dto/update-message-template.dto.d.ts +18 -0
  290. package/dist/message-template/dto/update-message-template.dto.d.ts.map +1 -0
  291. package/dist/message-template/dto/update-message-template.dto.js +38 -0
  292. package/dist/message-template/dto/update-message-template.dto.js.map +1 -0
  293. package/dist/message-template/message-template-admin.service.d.ts +70 -0
  294. package/dist/message-template/message-template-admin.service.d.ts.map +1 -0
  295. package/dist/message-template/message-template-admin.service.js +226 -0
  296. package/dist/message-template/message-template-admin.service.js.map +1 -0
  297. package/dist/message-template/message-template.controller.d.ts +29 -0
  298. package/dist/message-template/message-template.controller.d.ts.map +1 -0
  299. package/dist/message-template/message-template.controller.js +101 -0
  300. package/dist/message-template/message-template.controller.js.map +1 -0
  301. package/dist/message-template/message-template.module.d.ts +10 -0
  302. package/dist/message-template/message-template.module.d.ts.map +1 -0
  303. package/dist/message-template/message-template.module.js +33 -0
  304. package/dist/message-template/message-template.module.js.map +1 -0
  305. package/dist/message-template/message-template.registry.d.ts +55 -0
  306. package/dist/message-template/message-template.registry.d.ts.map +1 -0
  307. package/dist/message-template/message-template.registry.js +64 -0
  308. package/dist/message-template/message-template.registry.js.map +1 -0
  309. package/dist/message-template/message-template.service.d.ts +59 -0
  310. package/dist/message-template/message-template.service.d.ts.map +1 -0
  311. package/dist/message-template/message-template.service.js +166 -0
  312. package/dist/message-template/message-template.service.js.map +1 -0
  313. package/dist/notification/notification.constants.d.ts +11 -0
  314. package/dist/notification/notification.constants.d.ts.map +1 -0
  315. package/dist/notification/notification.constants.js +14 -0
  316. package/dist/notification/notification.constants.js.map +1 -0
  317. package/dist/notification/notification.controller.d.ts +20 -20
  318. package/dist/notification/notification.module.d.ts.map +1 -1
  319. package/dist/notification/notification.module.js +3 -0
  320. package/dist/notification/notification.module.js.map +1 -1
  321. package/dist/notification/notification.service.d.ts +33 -21
  322. package/dist/notification/notification.service.d.ts.map +1 -1
  323. package/dist/notification/notification.service.js +36 -2
  324. package/dist/notification/notification.service.js.map +1 -1
  325. package/dist/oauth/oauth.controller.d.ts +4 -6
  326. package/dist/oauth/oauth.controller.d.ts.map +1 -1
  327. package/dist/oauth/oauth.controller.js +0 -1
  328. package/dist/oauth/oauth.controller.js.map +1 -1
  329. package/dist/oauth/oauth.errors.d.ts +15 -1
  330. package/dist/oauth/oauth.errors.d.ts.map +1 -1
  331. package/dist/oauth/oauth.errors.js +9 -1
  332. package/dist/oauth/oauth.errors.js.map +1 -1
  333. package/dist/oauth/oauth.module.d.ts.map +1 -1
  334. package/dist/oauth/oauth.module.js +6 -1
  335. package/dist/oauth/oauth.module.js.map +1 -1
  336. package/dist/oauth/oauth.service.d.ts +25 -5
  337. package/dist/oauth/oauth.service.d.ts.map +1 -1
  338. package/dist/oauth/oauth.service.js +63 -27
  339. package/dist/oauth/oauth.service.js.map +1 -1
  340. package/dist/oauth/providers/abstract.provider.d.ts +10 -0
  341. package/dist/oauth/providers/abstract.provider.d.ts.map +1 -1
  342. package/dist/oauth/providers/abstract.provider.js +39 -12
  343. package/dist/oauth/providers/abstract.provider.js.map +1 -1
  344. package/dist/oauth/providers/github.provider.d.ts +1 -1
  345. package/dist/oauth/providers/github.provider.d.ts.map +1 -1
  346. package/dist/oauth/providers/github.provider.js +48 -22
  347. package/dist/oauth/providers/github.provider.js.map +1 -1
  348. package/dist/oauth/providers/microsoft-entra-id.provider.d.ts.map +1 -1
  349. package/dist/oauth/providers/microsoft-entra-id.provider.js +6 -0
  350. package/dist/oauth/providers/microsoft-entra-id.provider.js.map +1 -1
  351. package/dist/observability/monitored-cron.d.ts +29 -12
  352. package/dist/observability/monitored-cron.d.ts.map +1 -1
  353. package/dist/observability/monitored-cron.js +131 -46
  354. package/dist/observability/monitored-cron.js.map +1 -1
  355. package/dist/pairing/pairing.service.d.ts +6 -2
  356. package/dist/pairing/pairing.service.d.ts.map +1 -1
  357. package/dist/profile/dto/change-password.dto.d.ts.map +1 -1
  358. package/dist/profile/dto/change-password.dto.js +4 -6
  359. package/dist/profile/dto/change-password.dto.js.map +1 -1
  360. package/dist/profile/profile.controller.d.ts +1 -1
  361. package/dist/profile/profile.service.d.ts +1 -1
  362. package/dist/profile/profile.service.d.ts.map +1 -1
  363. package/dist/profile/profile.service.js +9 -3
  364. package/dist/profile/profile.service.js.map +1 -1
  365. package/dist/realtime/realtime-tick.coalescer.d.ts +34 -0
  366. package/dist/realtime/realtime-tick.coalescer.d.ts.map +1 -0
  367. package/dist/realtime/realtime-tick.coalescer.js +60 -0
  368. package/dist/realtime/realtime-tick.coalescer.js.map +1 -0
  369. package/dist/realtime/realtime.service.d.ts +2 -0
  370. package/dist/realtime/realtime.service.d.ts.map +1 -1
  371. package/dist/realtime/realtime.service.js +22 -2
  372. package/dist/realtime/realtime.service.js.map +1 -1
  373. package/dist/redis/redis-kv.service.d.ts +90 -0
  374. package/dist/redis/redis-kv.service.d.ts.map +1 -0
  375. package/dist/redis/redis-kv.service.js +247 -0
  376. package/dist/redis/redis-kv.service.js.map +1 -0
  377. package/dist/redis/redis-master.d.ts +29 -0
  378. package/dist/redis/redis-master.d.ts.map +1 -0
  379. package/dist/redis/redis-master.js +81 -0
  380. package/dist/redis/redis-master.js.map +1 -0
  381. package/dist/redis/redis-pubsub.d.ts +12 -0
  382. package/dist/redis/redis-pubsub.d.ts.map +1 -1
  383. package/dist/redis/redis-pubsub.js +25 -2
  384. package/dist/redis/redis-pubsub.js.map +1 -1
  385. package/dist/redis/redis.module.d.ts +11 -0
  386. package/dist/redis/redis.module.d.ts.map +1 -0
  387. package/dist/redis/redis.module.js +30 -0
  388. package/dist/redis/redis.module.js.map +1 -0
  389. package/dist/session/session.controller.d.ts +6 -2
  390. package/dist/session/session.controller.d.ts.map +1 -1
  391. package/dist/session/session.service.d.ts +118 -15
  392. package/dist/session/session.service.d.ts.map +1 -1
  393. package/dist/session/session.service.js +251 -77
  394. package/dist/session/session.service.js.map +1 -1
  395. package/dist/setting/setting.controller.d.ts +5 -0
  396. package/dist/setting/setting.controller.d.ts.map +1 -1
  397. package/dist/setting/setting.service.d.ts +7 -0
  398. package/dist/setting/setting.service.d.ts.map +1 -1
  399. package/dist/setting/setting.service.js +38 -3
  400. package/dist/setting/setting.service.js.map +1 -1
  401. package/dist/task/task.service.d.ts +17 -0
  402. package/dist/task/task.service.d.ts.map +1 -1
  403. package/dist/task/task.service.js +48 -13
  404. package/dist/task/task.service.js.map +1 -1
  405. package/dist/token/token.service.d.ts +19 -1
  406. package/dist/token/token.service.d.ts.map +1 -1
  407. package/dist/token/token.service.js +39 -2
  408. package/dist/token/token.service.js.map +1 -1
  409. package/dist/user/user-credential.util.d.ts +10 -0
  410. package/dist/user/user-credential.util.d.ts.map +1 -1
  411. package/dist/user/user-credential.util.js +14 -1
  412. package/dist/user/user-credential.util.js.map +1 -1
  413. package/dist/user/user.service.d.ts +12 -4
  414. package/dist/user/user.service.d.ts.map +1 -1
  415. package/dist/user/user.service.js +2 -11
  416. package/dist/user/user.service.js.map +1 -1
  417. package/dist/user/user.sort.d.ts +16 -0
  418. package/dist/user/user.sort.d.ts.map +1 -0
  419. package/dist/user/user.sort.js +25 -0
  420. package/dist/user/user.sort.js.map +1 -0
  421. package/dist/utils/abbreviate-name.d.ts +13 -0
  422. package/dist/utils/abbreviate-name.d.ts.map +1 -0
  423. package/dist/utils/abbreviate-name.js +42 -0
  424. package/dist/utils/abbreviate-name.js.map +1 -0
  425. package/dist/utils/date-range-query.dto.d.ts +11 -0
  426. package/dist/utils/date-range-query.dto.d.ts.map +1 -0
  427. package/dist/utils/date-range-query.dto.js +63 -0
  428. package/dist/utils/date-range-query.dto.js.map +1 -0
  429. package/dist/utils/date-range.d.ts +96 -0
  430. package/dist/utils/date-range.d.ts.map +1 -0
  431. package/dist/utils/date-range.js +172 -0
  432. package/dist/utils/date-range.js.map +1 -0
  433. package/dist/webhook-integration/webhook-utils.d.ts.map +1 -1
  434. package/dist/webhook-integration/webhook-utils.js +24 -0
  435. package/dist/webhook-integration/webhook-utils.js.map +1 -1
  436. package/dist/whatsapp-sender/whatsapp-recipients.d.ts +49 -0
  437. package/dist/whatsapp-sender/whatsapp-recipients.d.ts.map +1 -0
  438. package/dist/whatsapp-sender/whatsapp-recipients.js +66 -0
  439. package/dist/whatsapp-sender/whatsapp-recipients.js.map +1 -0
  440. package/dist/whatsapp-sender/whatsapp-sender.service.d.ts +25 -0
  441. package/dist/whatsapp-sender/whatsapp-sender.service.d.ts.map +1 -1
  442. package/dist/whatsapp-sender/whatsapp-sender.service.js +46 -5
  443. package/dist/whatsapp-sender/whatsapp-sender.service.js.map +1 -1
  444. package/hedhog/data/integration_provider.yaml +9 -0
  445. package/hedhog/data/integration_type.yaml +6 -0
  446. package/hedhog/data/locale.yaml +0 -1
  447. package/hedhog/data/mail.yaml +2 -2
  448. package/hedhog/data/mail_layout.yaml +6 -3
  449. package/hedhog/data/menu.yaml +25 -5
  450. package/hedhog/data/route.yaml +140 -0
  451. package/hedhog/data/setting_group.yaml +137 -3
  452. package/hedhog/frontend/app/access-log/page.tsx.ejs +47 -53
  453. package/hedhog/frontend/app/account/components/active-sessions.tsx.ejs +33 -8
  454. package/hedhog/frontend/app/account/components/mcp-tokens.tsx.ejs +54 -13
  455. package/hedhog/frontend/app/account/components/mfa-method-card.tsx.ejs +7 -1
  456. package/hedhog/frontend/app/account/components/recovery-codes-dialog.tsx.ejs +1 -0
  457. package/hedhog/frontend/app/account/components/tokens.tsx.ejs +47 -17
  458. package/hedhog/frontend/app/ai_agent/page.tsx.ejs +46 -5
  459. package/hedhog/frontend/app/ai_instruction/_components/ai-instruction-form.tsx.ejs +101 -30
  460. package/hedhog/frontend/app/ai_instruction/_components/ai-instruction-versions.tsx.ejs +24 -8
  461. package/hedhog/frontend/app/ai_instruction/page.tsx.ejs +80 -15
  462. package/hedhog/frontend/app/configurations/[slug]/components/image-optimization-action.tsx.ejs +166 -0
  463. package/hedhog/frontend/app/configurations/[slug]/components/setting-field.test.tsx.ejs +145 -45
  464. package/hedhog/frontend/app/configurations/[slug]/components/setting-field.tsx.ejs +99 -219
  465. package/hedhog/frontend/app/configurations/[slug]/page.tsx.ejs +19 -1
  466. package/hedhog/frontend/app/configurations/layout.tsx.ejs +19 -5
  467. package/hedhog/frontend/app/dashboard/[slug]/widget-renderer.tsx.ejs +2 -8
  468. package/hedhog/frontend/app/dashboard/components/dynamic-widget.tsx.ejs +3 -0
  469. package/hedhog/frontend/app/dashboard/components/widget-wrapper.tsx.ejs +4 -0
  470. package/hedhog/frontend/app/dashboard/dashboard-home-tabs.tsx.ejs +43 -44
  471. package/hedhog/frontend/app/dashboard/management/tabs/component-roles-tab.tsx.ejs +41 -3
  472. package/hedhog/frontend/app/dashboard/management/tabs/components-tab.tsx.ejs +42 -2
  473. package/hedhog/frontend/app/dashboard/management/tabs/dashboard-roles-tab.tsx.ejs +41 -3
  474. package/hedhog/frontend/app/dashboard/management/tabs/dashboards-tab.tsx.ejs +39 -4
  475. package/hedhog/frontend/app/dashboard/management/tabs/items-tab.tsx.ejs +42 -3
  476. package/hedhog/frontend/app/incidents/page.tsx.ejs +60 -31
  477. package/hedhog/frontend/app/integration/profiles/page.tsx.ejs +45 -5
  478. package/hedhog/frontend/app/integrations-webhooks/page.tsx.ejs +92 -15
  479. package/hedhog/frontend/app/mail/log/page.tsx.ejs +109 -61
  480. package/hedhog/frontend/app/mail/template/page.tsx.ejs +125 -23
  481. package/hedhog/frontend/app/mcp_chat/chat-components.tsx.ejs +13 -15
  482. package/hedhog/frontend/app/mcp_chat/page.tsx.ejs +116 -110
  483. package/hedhog/frontend/app/message-templates/_components/message-template-sheet.tsx.ejs +245 -0
  484. package/hedhog/frontend/app/message-templates/_lib/types.ts.ejs +24 -0
  485. package/hedhog/frontend/app/message-templates/page.tsx.ejs +182 -0
  486. package/hedhog/frontend/app/pages/_components/page-wizard-sheet.tsx.ejs +1 -0
  487. package/hedhog/frontend/app/pages/page.tsx.ejs +94 -9
  488. package/hedhog/frontend/app/roles/menus.tsx.ejs +4 -4
  489. package/hedhog/frontend/app/roles/routes.tsx.ejs +4 -4
  490. package/hedhog/frontend/app/roles/users.tsx.ejs +4 -4
  491. package/hedhog/frontend/app/setting-list/page.tsx.ejs +71 -9
  492. package/hedhog/frontend/app/users/page.tsx.ejs +77 -67
  493. package/hedhog/frontend/messages/en.json +183 -36
  494. package/hedhog/frontend/messages/pt.json +183 -36
  495. package/hedhog/table/cron_lock.yaml +17 -0
  496. package/hedhog/table/file.yaml +13 -1
  497. package/hedhog/table/file_upload_chunk.yaml +23 -0
  498. package/hedhog/table/file_upload_ticket.yaml +67 -0
  499. package/hedhog/table/mcp_tool_call_log.yaml +30 -22
  500. package/hedhog/table/message_template.yaml +33 -0
  501. package/hedhog/table/setting.yaml +8 -0
  502. package/hedhog/table/user_session.yaml +36 -1
  503. package/package.json +7 -5
  504. package/src/ai/ai-agent.sort.ts +21 -0
  505. package/src/ai/ai.service.spec.ts +173 -1
  506. package/src/ai/ai.service.ts +64 -193
  507. package/src/ai-instruction/ai-instruction.service.ts +32 -28
  508. package/src/ai-instruction/ai-instruction.sort.ts +32 -0
  509. package/src/auth/auth.module.ts +8 -1
  510. package/src/auth/auth.service.spec.ts +108 -1
  511. package/src/auth/auth.service.ts +59 -5
  512. package/src/auth/guards/auth.guard.ts +9 -1
  513. package/src/authorize/authorize.controller.ts +126 -11
  514. package/src/authorize/authorize.errors.ts +55 -0
  515. package/src/authorize/authorize.module.ts +6 -1
  516. package/src/authorize/authorize.service.spec.ts +379 -7
  517. package/src/authorize/authorize.service.ts +309 -23
  518. package/src/authorize/dto/authorize-info.dto.ts +21 -3
  519. package/src/authorize/dto/consent.dto.ts +21 -3
  520. package/src/authorize/dto/token.dto.ts +24 -2
  521. package/src/authorize/oauth-exception.filter.ts +58 -0
  522. package/src/authorize/oauth-metadata.service.ts +67 -0
  523. package/src/authorize/well-known.controller.spec.ts +84 -0
  524. package/src/authorize/well-known.controller.ts +96 -0
  525. package/src/captcha/captcha.service.spec.ts +211 -4
  526. package/src/captcha/captcha.service.ts +127 -10
  527. package/src/core.module.ts +6 -0
  528. package/src/dashboard/dashboard-component-role/dashboard-component-role.service.ts +2 -3
  529. package/src/dashboard/dashboard-component-role/dashboard-component-role.sort.ts +18 -0
  530. package/src/dashboard/dashboard-item/dashboard-item.service.ts +2 -3
  531. package/src/dashboard/dashboard-item/dashboard-item.sort.ts +19 -0
  532. package/src/dashboard/dashboard-role/dashboard-role.service.ts +2 -3
  533. package/src/dashboard/dashboard-role/dashboard-role.sort.ts +16 -0
  534. package/src/file/file-upload-ticket.service.spec.ts +422 -0
  535. package/src/file/file-upload-ticket.service.ts +513 -0
  536. package/src/file/file.controller.ts +65 -0
  537. package/src/file/file.module.ts +14 -2
  538. package/src/file/file.service.spec.ts +94 -0
  539. package/src/file/file.service.ts +433 -53
  540. package/src/file/filename-encoding.util.spec.ts +54 -0
  541. package/src/file/filename-encoding.util.ts +67 -0
  542. package/src/file/image-optimization.service.spec.ts +156 -19
  543. package/src/file/image-optimization.service.ts +106 -21
  544. package/src/file/mcp-file-source.schema.ts +83 -0
  545. package/src/file/mcp-file-source.service.spec.ts +473 -0
  546. package/src/file/mcp-file-source.service.ts +445 -0
  547. package/src/file/mimetype-sniff.util.spec.ts +126 -0
  548. package/src/file/mimetype-sniff.util.ts +265 -0
  549. package/src/file/remote-fetch.util.spec.ts +117 -0
  550. package/src/file/remote-fetch.util.ts +330 -0
  551. package/src/impersonation/dto/start-impersonation.dto.ts +5 -2
  552. package/src/impersonation/impersonation.service.spec.ts +24 -1
  553. package/src/impersonation/impersonation.service.ts +14 -4
  554. package/src/incident/incident.controller.ts +9 -1
  555. package/src/incident/incident.service.ts +7 -0
  556. package/src/index.ts +17 -0
  557. package/src/integration-profile/integration-profile.secrets.ts +7 -0
  558. package/src/integration-profile/integration-profile.service.ts +7 -64
  559. package/src/integration-profile/integration-profile.utils.spec.ts +9 -0
  560. package/src/integration-profile/integration-profile.utils.ts +5 -5
  561. package/src/integration-profile/testers/index.ts +2 -0
  562. package/src/integration-profile/testers/remaining.testers.spec.ts +79 -0
  563. package/src/integration-profile/testers/shipping.testers.ts +94 -0
  564. package/src/mail/dto/send.dto.ts +6 -1
  565. package/src/mail/mail-template.spec.ts +58 -1
  566. package/src/mail/mail.service.spec.ts +112 -0
  567. package/src/mail/mail.service.ts +42 -4
  568. package/src/mail-sent/mail-sent.service.ts +3 -0
  569. package/src/mail-sent/mail-sent.sort.ts +19 -0
  570. package/src/mcp/filters/mcp-challenge.filter.spec.ts +76 -0
  571. package/src/mcp/filters/mcp-challenge.filter.ts +70 -0
  572. package/src/mcp/guards/mcp-auth.guard.spec.ts +51 -2
  573. package/src/mcp/guards/mcp-auth.guard.ts +24 -1
  574. package/src/mcp/guards/mcp-permission.guard.spec.ts +109 -15
  575. package/src/mcp/guards/mcp-permission.guard.ts +76 -51
  576. package/src/mcp/mcp-audit.service.spec.ts +107 -0
  577. package/src/mcp/mcp-audit.service.ts +37 -1
  578. package/src/mcp/mcp-permission.service.spec.ts +197 -0
  579. package/src/mcp/mcp-permission.service.ts +184 -0
  580. package/src/mcp/mcp-server.service.spec.ts +84 -2
  581. package/src/mcp/mcp-server.service.ts +111 -87
  582. package/src/mcp/mcp.controller.ts +8 -1
  583. package/src/mcp/mcp.module.ts +5 -1
  584. package/src/mcp/tools/core-ai.mcp-tools.ts +1 -1
  585. package/src/mcp/tools/core-dashboard-items.mcp-tools.ts +1 -1
  586. package/src/mcp/tools/core-dashboard.mcp-tools.ts +1 -1
  587. package/src/mcp/tools/core-event-webhooks.mcp-tools.ts +1 -2
  588. package/src/mcp/tools/core-files.mcp-tools.ts +202 -22
  589. package/src/mcp/tools/core-integration-events.mcp-tools.ts +1 -1
  590. package/src/mcp/tools/core-mail-sent.mcp-tools.ts +1 -1
  591. package/src/mcp/tools/core-mail.mcp-tools.ts +1 -1
  592. package/src/mcp/tools/core-menus.mcp-tools.ts +1 -2
  593. package/src/mcp/tools/core-notifications.mcp-tools.ts +0 -1
  594. package/src/mcp/tools/core-roles.mcp-tools.ts +1 -5
  595. package/src/mcp/tools/core-routes.mcp-tools.ts +1 -3
  596. package/src/mcp/tools/core-screens.mcp-tools.ts +1 -3
  597. package/src/mcp/tools/core-sessions.mcp-tools.ts +0 -2
  598. package/src/mcp/tools/core-settings.mcp-tools.ts +1 -2
  599. package/src/mcp/tools/core-users.mcp-tools.ts +1 -1
  600. package/src/mcp/tools/core-webhooks.mcp-tools.ts +1 -2
  601. package/src/mcp/types/mcp-context.type.ts +15 -6
  602. package/src/mcp-chat/mcp-chat.service.ts +8 -0
  603. package/src/meeting/meeting-provider.registry.ts +121 -0
  604. package/src/meeting/meeting.constants.ts +74 -0
  605. package/src/menu/menu.service.spec.ts +89 -0
  606. package/src/menu/menu.service.ts +29 -11
  607. package/src/message-template/dto/update-message-template.dto.ts +22 -0
  608. package/src/message-template/message-template-admin.service.spec.ts +163 -0
  609. package/src/message-template/message-template-admin.service.ts +239 -0
  610. package/src/message-template/message-template.controller.ts +52 -0
  611. package/src/message-template/message-template.module.ts +21 -0
  612. package/src/message-template/message-template.registry.spec.ts +62 -0
  613. package/src/message-template/message-template.registry.ts +125 -0
  614. package/src/message-template/message-template.service.spec.ts +149 -0
  615. package/src/message-template/message-template.service.ts +149 -0
  616. package/src/notification/notification.constants.ts +10 -0
  617. package/src/notification/notification.module.ts +3 -0
  618. package/src/notification/notification.service.spec.ts +75 -1
  619. package/src/notification/notification.service.ts +39 -1
  620. package/src/oauth/oauth.controller.ts +0 -1
  621. package/src/oauth/oauth.errors.ts +7 -0
  622. package/src/oauth/oauth.module.ts +6 -1
  623. package/src/oauth/oauth.service.spec.ts +58 -7
  624. package/src/oauth/oauth.service.ts +71 -32
  625. package/src/oauth/providers/abstract.provider.spec.ts +192 -0
  626. package/src/oauth/providers/abstract.provider.ts +46 -14
  627. package/src/oauth/providers/github.provider.ts +57 -34
  628. package/src/oauth/providers/microsoft-entra-id.provider.ts +8 -1
  629. package/src/observability/monitored-cron.spec.ts +164 -31
  630. package/src/observability/monitored-cron.ts +154 -62
  631. package/src/profile/dto/change-password.dto.ts +25 -7
  632. package/src/profile/profile.service.spec.ts +97 -0
  633. package/src/profile/profile.service.ts +9 -3
  634. package/src/realtime/realtime-tick.coalescer.spec.ts +92 -0
  635. package/src/realtime/realtime-tick.coalescer.ts +60 -0
  636. package/src/realtime/realtime.service.spec.ts +33 -0
  637. package/src/realtime/realtime.service.ts +28 -2
  638. package/src/redis/redis-kv.service.ts +261 -0
  639. package/src/redis/redis-master.spec.ts +111 -0
  640. package/src/redis/redis-master.ts +86 -0
  641. package/src/redis/redis-pubsub.ts +27 -3
  642. package/src/redis/redis.module.ts +17 -0
  643. package/src/session/session.service.spec.ts +121 -42
  644. package/src/session/session.service.ts +279 -82
  645. package/src/setting/setting.service.ts +44 -3
  646. package/src/task/task.service.spec.ts +41 -0
  647. package/src/task/task.service.ts +53 -13
  648. package/src/token/token.service.spec.ts +90 -0
  649. package/src/token/token.service.ts +48 -2
  650. package/src/user/user-credential.util.ts +14 -5
  651. package/src/user/user.service.ts +2 -12
  652. package/src/user/user.sort.ts +25 -0
  653. package/src/utils/abbreviate-name.spec.ts +50 -0
  654. package/src/utils/abbreviate-name.ts +44 -0
  655. package/src/utils/date-range-query.dto.ts +56 -0
  656. package/src/utils/date-range.spec.ts +175 -0
  657. package/src/utils/date-range.ts +246 -0
  658. package/src/webhook-integration/webhook-utils.spec.ts +67 -0
  659. package/src/webhook-integration/webhook-utils.ts +26 -0
  660. package/src/whatsapp-sender/whatsapp-recipients.spec.ts +89 -0
  661. package/src/whatsapp-sender/whatsapp-recipients.ts +83 -0
  662. package/src/whatsapp-sender/whatsapp-sender.service.spec.ts +112 -0
  663. package/src/whatsapp-sender/whatsapp-sender.service.ts +58 -5
  664. package/hedhog/query/device_pairing_request.sql +0 -46
  665. package/hedhog/query/impersonation_grant.sql +0 -71
  666. package/hedhog/query/oauth_authorize_pkce.sql +0 -58
  667. package/hedhog/query/oauth_mobile_state_token.sql +0 -30
  668. package/hedhog/query/oauth_web_ref_token.sql +0 -25
@@ -1,4 +1,29 @@
1
1
  {
2
+ "DateRangePicker": {
3
+ "placeholder": "Selecionar período",
4
+ "apply": "Aplicar",
5
+ "clear": "Limpar",
6
+ "clearTooltip": "Limpar período",
7
+ "otherYears": "Outros anos",
8
+ "fromLabel": "De",
9
+ "toLabel": "Até",
10
+ "datePlaceholder": "dd/mm/aaaa",
11
+ "invalidDate": "Data inválida",
12
+ "previousDecade": "Década anterior",
13
+ "nextDecade": "Próxima década",
14
+ "presets": {
15
+ "today": "Hoje",
16
+ "yesterday": "Ontem",
17
+ "last7Days": "Últimos 7 dias",
18
+ "thisWeek": "Esta semana",
19
+ "lastWeek": "Semana passada",
20
+ "thisMonth": "Este mês",
21
+ "lastMonth": "Mês passado",
22
+ "last30Days": "Últimos 30 dias",
23
+ "last90Days": "Últimos 90 dias",
24
+ "thisYear": "Este ano"
25
+ }
26
+ },
2
27
  "TagSelectorSheet": {
3
28
  "addTag": "Adicionar tag",
4
29
  "sheetTitle": "Gerenciar tags",
@@ -23,6 +48,16 @@
23
48
  "btnBuscar": "Buscar",
24
49
  "filterPlaceholder": "Filtrar"
25
50
  },
51
+ "TableSort": {
52
+ "sortAscending": "Ordenar crescente",
53
+ "sortDescending": "Ordenar decrescente"
54
+ },
55
+ "ColumnsMenu": {
56
+ "trigger": "Colunas",
57
+ "label": "Exibir colunas",
58
+ "reset": "Restaurar padrão",
59
+ "dragHandle": "Arraste para reordenar a coluna"
60
+ },
26
61
  "Sheet": {
27
62
  "close": "Fechar"
28
63
  },
@@ -574,6 +609,8 @@
574
609
  "tableVariables": "Variáveis",
575
610
  "tableUpdated": "Atualizado",
576
611
  "tableActions": "Ações",
612
+ "moreVariables": "+{count} variáveis",
613
+ "allVariablesTitle": "Todas as variáveis",
577
614
  "editTemplate": "Editar Template",
578
615
  "newTemplateTitle": "Novo Template",
579
616
  "editTemplateDescription": "Edite as informações do template de e-mail",
@@ -976,7 +1013,8 @@
976
1013
  "nameLabel": "Nome",
977
1014
  "mfaNameAriaLabel": "Nome da MFA",
978
1015
  "cancel": "Cancelar",
979
- "save": "Salvar"
1016
+ "save": "Salvar",
1017
+ "removeMfa": "Remover método"
980
1018
  },
981
1019
  "RecoveryCodes": {
982
1020
  "title": "Códigos de Recuperação",
@@ -994,7 +1032,8 @@
994
1032
  "allCodesCopyFailed": "Falha ao copiar códigos",
995
1033
  "noCodesAvailable": "Nenhum código de recuperação disponível para download",
996
1034
  "codesDownloaded": "Códigos de recuperação baixados",
997
- "downloadFailed": "Falha ao baixar códigos"
1035
+ "downloadFailed": "Falha ao baixar códigos",
1036
+ "copyCode": "Copiar código"
998
1037
  },
999
1038
  "RegenerateRecoveryCodes": {
1000
1039
  "title": "Regenerar Códigos de Recuperação",
@@ -1413,44 +1452,99 @@
1413
1452
  "byteUnitGB": "GB",
1414
1453
  "byteUnitTB": "TB",
1415
1454
  "selectOption": "Selecione uma opção",
1416
- "selectMailProfile": "Selecione um perfil de email",
1417
- "mailProfileEmptyState": "Nenhum perfil de email encontrado.",
1418
- "selectWhatsAppProfile": "Selecione um perfil de WhatsApp",
1419
- "selectStorageProfile": "Selecione um perfil de armazenamento",
1420
- "storageProfileEmptyState": "Nenhum perfil de armazenamento encontrado.",
1421
- "selectAiProfile": "Selecione um perfil de IA",
1422
- "aiProfileEmptyState": "Nenhum perfil de IA encontrado.",
1423
- "selectOAuthProfile": "Selecione um perfil OAuth",
1424
- "oauthProfileEmptyState": "Nenhum perfil OAuth encontrado.",
1425
- "selectPaymentProfile": "Selecione um perfil de pagamento",
1426
- "paymentProfileEmptyState": "Nenhum perfil de pagamento encontrado.",
1427
- "whatsappProfileEmptyState": "Nenhum perfil de WhatsApp encontrado.",
1428
- "selectIntegrationProfile": "Selecione um perfil de integração",
1429
- "integrationProfileEmptyState": "Nenhum perfil de integração encontrado.",
1455
+ "profileTypes": {
1456
+ "ai": {
1457
+ "placeholder": "Selecione um perfil de IA",
1458
+ "emptyState": "Nenhum perfil de IA encontrado.",
1459
+ "name": "perfil de IA"
1460
+ },
1461
+ "email": {
1462
+ "placeholder": "Selecione um perfil de e-mail",
1463
+ "emptyState": "Nenhum perfil de e-mail encontrado.",
1464
+ "name": "perfil de e-mail"
1465
+ },
1466
+ "whatsapp": {
1467
+ "placeholder": "Selecione um perfil de WhatsApp",
1468
+ "emptyState": "Nenhum perfil de WhatsApp encontrado.",
1469
+ "name": "perfil de WhatsApp"
1470
+ },
1471
+ "storage": {
1472
+ "placeholder": "Selecione um perfil de armazenamento",
1473
+ "emptyState": "Nenhum perfil de armazenamento encontrado.",
1474
+ "name": "perfil de armazenamento"
1475
+ },
1476
+ "oauth": {
1477
+ "placeholder": "Selecione um perfil OAuth",
1478
+ "emptyState": "Nenhum perfil OAuth encontrado.",
1479
+ "name": "perfil OAuth"
1480
+ },
1481
+ "payment": {
1482
+ "placeholder": "Selecione um perfil de pagamento",
1483
+ "emptyState": "Nenhum perfil de pagamento encontrado.",
1484
+ "name": "perfil de pagamento"
1485
+ },
1486
+ "infrastructure": {
1487
+ "placeholder": "Selecione o perfil de infraestrutura",
1488
+ "emptyState": "Nenhum perfil de infraestrutura encontrado. Crie um perfil DigitalOcean ou Kubernetes primeiro.",
1489
+ "name": "perfil de infraestrutura"
1490
+ },
1491
+ "shipping": {
1492
+ "placeholder": "Selecione um perfil de frete",
1493
+ "emptyState": "Nenhum perfil de frete encontrado. Crie um perfil da Melhor Envio primeiro.",
1494
+ "name": "perfil de frete"
1495
+ },
1496
+ "captcha": {
1497
+ "placeholder": "Selecione um perfil de captcha",
1498
+ "emptyState": "Nenhum perfil de captcha encontrado.",
1499
+ "name": "perfil de captcha"
1500
+ },
1501
+ "video": {
1502
+ "placeholder": "Selecione um perfil de vídeo",
1503
+ "emptyState": "Nenhum perfil de vídeo encontrado.",
1504
+ "name": "perfil de vídeo"
1505
+ },
1506
+ "fiscal": {
1507
+ "placeholder": "Selecione um perfil fiscal",
1508
+ "emptyState": "Nenhum perfil fiscal encontrado.",
1509
+ "name": "perfil fiscal"
1510
+ },
1511
+ "generic": {
1512
+ "placeholder": "Selecione um perfil de integração",
1513
+ "emptyState": "Nenhum perfil de integração encontrado.",
1514
+ "name": "perfil de integração"
1515
+ }
1516
+ },
1517
+ "profileProviders": {
1518
+ "kubernetes": "perfil Kubernetes"
1519
+ },
1430
1520
  "editProfileAria": "Editar {profile}",
1431
1521
  "createProfileAria": "Criar {profile}",
1432
- "profileTypeNames": {
1433
- "ai": "perfil de IA",
1434
- "email": "perfil de e-mail",
1435
- "whatsapp": "perfil de WhatsApp",
1436
- "storage": "perfil de armazenamento",
1437
- "oauth": "perfil OAuth",
1438
- "payment": "perfil de pagamento",
1439
- "infrastructure": "perfil de infraestrutura",
1440
- "kubernetes": "perfil Kubernetes",
1441
- "generic": "perfil de integração"
1442
- },
1443
- "selectInfraProfile": "Selecione o perfil de infraestrutura",
1444
- "infraProfileEmptyState": "Nenhum perfil de infraestrutura encontrado. Crie um perfil DigitalOcean ou Kubernetes primeiro.",
1445
- "selectK8sInfraProfile": "Selecione o perfil Kubernetes",
1446
- "k8sInfraProfileEmptyState": "Nenhum perfil de infraestrutura Kubernetes encontrado. Crie um primeiro.",
1447
1522
  "openLink": "Abrir",
1448
1523
  "settingOptions": {
1449
1524
  "commerce-android-checkout-mode": {
1450
1525
  "web": "Checkout no site",
1451
1526
  "play_billing": "Google Play Billing (compra no app)"
1527
+ },
1528
+ "commerce-store-interest-mode": {
1529
+ "buyer_pays": "Comprador paga os juros",
1530
+ "merchant_absorbs": "Loja absorve os juros"
1452
1531
  }
1453
- }
1532
+ },
1533
+ "imageOptimization": {
1534
+ "title": "Reprocessar imagens já armazenadas",
1535
+ "description": "As configurações acima valem para uploads novos. Use esta ação para reaplicá-las às imagens que já estão no storage — o arquivo é regravado no lugar, mantendo o mesmo id, e só é substituído quando o resultado fica menor ou muda de formato.",
1536
+ "preview": "{count, plural, =0 {Nenhuma imagem acima desse tamanho.} one {# imagem acima desse tamanho, somando {size}.} other {# imagens acima desse tamanho, somando {size}.}}",
1537
+ "previewLoading": "Calculando…",
1538
+ "previewFailed": "Não foi possível calcular a prévia.",
1539
+ "refresh": "Recalcular",
1540
+ "queueAction": "Reprocessar",
1541
+ "queueHint": "O reprocessamento roda em segundo plano; acompanhe em <link>Fila de Jobs</link>.",
1542
+ "queuedSuccess": "{count, plural, =0 {Nenhum job enfileirado.} one {# imagem enfileirada para reprocessamento.} other {# imagens enfileiradas para reprocessamento.}}",
1543
+ "queuedRemaining": "{count, plural, one {Resta # imagem: repita a ação para enfileirar o restante.} other {Restam # imagens: repita a ação para enfileirar o restante.}}",
1544
+ "queueFailed": "Falha ao enfileirar o reprocessamento das imagens."
1545
+ },
1546
+ "menuActions": "Mais ações",
1547
+ "uploadFile": "Enviar arquivo"
1454
1548
  },
1455
1549
  "AddWidgetDialog": {
1456
1550
  "title": "Selecionar Componentes do Dashboard",
@@ -1668,6 +1762,7 @@
1668
1762
  "description": "Dispositivos conectados à sua conta",
1669
1763
  "moreInfo": "Mais Informações",
1670
1764
  "thisSession": "Esta sessão",
1765
+ "moreActions": "Mais ações",
1671
1766
  "terminateSession": "Encerrar sessão",
1672
1767
  "activeNow": "Ativo agora",
1673
1768
  "minutesAgo": "{count}min atrás",
@@ -1764,7 +1859,8 @@
1764
1859
  "darkPalette": "Paleta escura",
1765
1860
  "primary": "Primária",
1766
1861
  "notSet": "Não definido"
1767
- }
1862
+ },
1863
+ "removeWidget": "Remover widget"
1768
1864
  },
1769
1865
  "WidgetRenderer": {
1770
1866
  "saveWidgetPreview": "Salvar preview do widget",
@@ -1942,7 +2038,11 @@
1942
2038
  "componentSlugPlaceholder": "total-users",
1943
2039
  "componentNamePlaceholder": "Total de Usuários",
1944
2040
  "addItemError": "Erro ao adicionar item",
1945
- "deleteItemError": "Erro ao excluir item"
2041
+ "deleteItemError": "Erro ao excluir item",
2042
+ "goToFirstPage": "Ir para primeira página",
2043
+ "goToPreviousPage": "Ir para página anterior",
2044
+ "goToNextPage": "Ir para próxima página",
2045
+ "goToLastPage": "Ir para última página"
1946
2046
  },
1947
2047
  "DashboardComponent": {
1948
2048
  "title": "Componentes do Dashboard",
@@ -2258,7 +2358,13 @@
2258
2358
  "logRetryError": "Falha ao tentar reexecutar a chamada do webhook",
2259
2359
  "logRetryFailedAgain": "A reexecução rodou, mas a chamada falhou novamente",
2260
2360
  "logRetryConfirmTitle": "Tentar novamente esta chamada?",
2261
- "logRetryConfirmDescription": "Todas as actions ativas deste webhook serão executadas de novo usando o payload original. Actions que já tinham dado certo (ex.: e-mails ou mensagens de WhatsApp) podem ser reenviadas."
2361
+ "logRetryConfirmDescription": "Todas as actions ativas deste webhook serão executadas de novo usando o payload original. Actions que já tinham dado certo (ex.: e-mails ou mensagens de WhatsApp) podem ser reenviadas.",
2362
+ "duplicate": "Duplicar",
2363
+ "removeIp": "Remover IP",
2364
+ "editSelectedMailProfile": "Editar perfil de e-mail selecionado",
2365
+ "editSelectedMailTemplate": "Editar template de e-mail selecionado",
2366
+ "editAction": "Editar ação",
2367
+ "deleteAction": "Excluir ação"
2262
2368
  },
2263
2369
  "McpChatPage": {
2264
2370
  "title": "Chat MCP",
@@ -2365,7 +2471,10 @@
2365
2471
  "mcpUsageExampleLabel": "Exemplo (Claude Desktop / Cursor):",
2366
2472
  "apiUsageDesc": "Use este token para autenticar requisições à API REST passando-o como Bearer token no header Authorization.",
2367
2473
  "apiUsageHeader": "Adicione este header em cada requisição:",
2368
- "apiUsageExampleLabel": "Exemplo (curl):"
2474
+ "apiUsageExampleLabel": "Exemplo (curl):",
2475
+ "copy": "Copiar",
2476
+ "copyToken": "Copiar token",
2477
+ "revoke": "Revogar token"
2369
2478
  },
2370
2479
  "McpFloatingChat": {
2371
2480
  "title": "Chat MCP",
@@ -2484,6 +2593,8 @@
2484
2593
  "rawUserAgent": "User Agent",
2485
2594
  "simulated": "Simulado",
2486
2595
  "simulatedBy": "Simulado por {name}",
2596
+ "connectedApp": "Aplicativo conectado",
2597
+ "viaConnector": "Pelo conector",
2487
2598
  "simulatedAccess": "Acesso simulado",
2488
2599
  "filterBySimulated": "Simulação",
2489
2600
  "simulatedAll": "Todos os acessos",
@@ -2678,6 +2789,7 @@
2678
2789
  "paymentGooglePlayStep3": "Conceda à service account de publicação do Play permissão para publicar no tópico.",
2679
2790
  "paymentGooglePlayStep4": "Envie uma notificação de teste e confirme que ela chega.",
2680
2791
  "paymentWebhookSecretRequiredNote": "Em modo produção, configure o Webhook Secret do provedor — sem ele, os webhooks de produção são rejeitados (requisições sem assinatura não são processadas).",
2792
+ "paymentWebhookSecretMissingInProduction": "Este perfil está em produção sem Webhook Secret: nesse estado todo webhook do gateway é rejeitado com 401 e o pedido nunca sai de pendente. Cadastre a URL acima no painel do provedor, copie a chave secreta gerada e cole no campo Webhook Secret.",
2681
2793
  "paymentGooglePlayNote": "O RTDN do Google Play é autenticado pelo Pub/Sub (push OIDC); não há webhook secret para configurar. O estado da assinatura é sempre reconsultado na Play Developer API.",
2682
2794
  "fieldBasePath": "Caminho Base",
2683
2795
  "fieldBucket": "Bucket",
@@ -2704,6 +2816,7 @@
2704
2816
  "fieldModeSandbox": "Sandbox",
2705
2817
  "fieldModeProduction": "Produção",
2706
2818
  "fieldSiteKey": "Chave do Site",
2819
+ "fieldHostnames": "Hostnames permitidos",
2707
2820
  "fieldHmacKey": "Chave HMAC",
2708
2821
  "fieldScoreThreshold": "Limiar de Pontuação",
2709
2822
  "fieldApiUrl": "URL da API",
@@ -2719,6 +2832,8 @@
2719
2832
  "addCallbackUrl": "Adicionar URL",
2720
2833
  "noCallbackUrls": "Nenhuma URL de callback configurada.",
2721
2834
  "callbackUrlPlaceholder": "https://seudominio.com/callback/...",
2835
+ "copyUrl": "Copiar URL",
2836
+ "removeCallbackUrl": "Remover URL",
2722
2837
  "showPassword": "Mostrar valor",
2723
2838
  "hidePassword": "Ocultar valor",
2724
2839
  "leaveBlankToKeep": "Deixe em branco para manter o valor atual",
@@ -2730,6 +2845,8 @@
2730
2845
  "fieldApiServer": "URL do API Server",
2731
2846
  "fieldCaCert": "Certificado CA (PEM)",
2732
2847
  "fieldNamespace": "Namespace",
2848
+ "fieldUserAgent": "User-Agent (e-mail de contato)",
2849
+ "fieldSandbox": "Ambiente de testes (sandbox)",
2733
2850
  "fieldVideoNodePool": "Node Pool de Vídeo",
2734
2851
  "nodePoolSectionTitle": "Node Pool de Vídeo",
2735
2852
  "nodePoolSectionDescription": "Pool onde os pods de conversão de vídeo rodam. Carregue os pools da DigitalOcean e escolha um pelo nome.",
@@ -2923,6 +3040,7 @@
2923
3040
  "columnInList": "Na listagem",
2924
3041
  "columnInFilters": "Como filtro",
2925
3042
  "addColumn": "Adicionar coluna",
3043
+ "removeColumn": "Remover coluna",
2926
3044
  "generateBackend": "Gerar backend",
2927
3045
  "generateBackendHint": "Cria table YAML, migration, DTO, service, controller e módulo NestJS.",
2928
3046
  "menuParent": "Menu pai",
@@ -3105,6 +3223,7 @@
3105
3223
  "noContent": "Sem conteúdo para visualizar",
3106
3224
  "complexHtmlWarningTitle": "HTML complexo detectado",
3107
3225
  "complexHtmlWarningDesc": "Este conteúdo tem tags style, head ou script que o editor visual remove. Use a aba HTML para editá-lo.",
3226
+ "complexHtmlTabDisabled": "Indisponível para HTML complexo: o editor visual removeria as tags style, head ou script. Use a aba HTML.",
3108
3227
  "aiEditTitle": "Ajustar HTML com IA",
3109
3228
  "aiInstructionPlaceholder": "Descreva o ajuste que a IA deve fazer neste HTML.",
3110
3229
  "aiApplyButton": "Ajustar com IA",
@@ -3185,5 +3304,33 @@
3185
3304
  "redeemMissingCode": "Nenhum código de simulação foi encontrado no link.",
3186
3305
  "noAdminAccessTitle": "Este usuário não tem acesso ao painel",
3187
3306
  "noAdminAccessDescription": "{name} não tem papel administrativo, então não há o que mostrar aqui. Simule esse acesso na aplicação que a pessoa realmente usa."
3307
+ },
3308
+ "MessageTemplatesPage": {
3309
+ "title": "Modelos de mensagem",
3310
+ "description": "Texto das mensagens que a plataforma envia fora do e-mail, como os avisos de novo chamado e de venda no WhatsApp.",
3311
+ "breadcrumbDashboard": "Início",
3312
+ "breadcrumbManagement": "Gerenciamento",
3313
+ "breadcrumbCurrent": "Modelos de mensagem",
3314
+ "emptyTitle": "Nenhum modelo disponível",
3315
+ "emptyDescription": "Os modelos vêm dos módulos instalados. Se esta lista está vazia, nenhum módulo declarou mensagem para editar.",
3316
+ "edit": "Editar",
3317
+ "restore": "Restaurar padrão",
3318
+ "restoreHint": "Apaga o texto editado e volta ao que o módulo traz. As melhorias que vierem por atualização voltam a valer.",
3319
+ "customized": "Personalizado",
3320
+ "inactive": "Texto editado desligado",
3321
+ "sheetTitle": "Editar modelo",
3322
+ "sheetDescription": "O texto vai como está para o WhatsApp. Use *asteriscos* para negrito e as variáveis abaixo para os dados.",
3323
+ "fieldActive": "Usar o texto editado",
3324
+ "fieldActiveHint": "Desligado, o aviso volta a usar o texto padrão do módulo — nunca fica sem aviso.",
3325
+ "fieldBody": "Corpo da mensagem",
3326
+ "fieldBodyHint": "Uma linha com {{#if variavel}} sozinha não aparece na mensagem: ela só esconde o trecho quando o campo vem vazio.",
3327
+ "locale_pt": "Português",
3328
+ "locale_en": "Inglês",
3329
+ "variables": "Variáveis disponíveis",
3330
+ "preview": "Pré-visualizar",
3331
+ "previewHint": "Renderiza o texto com dados de exemplo, sem salvar.",
3332
+ "save": "Salvar",
3333
+ "cancel": "Cancelar",
3334
+ "saved": "Modelo salvo."
3188
3335
  }
3189
3336
  }
@@ -0,0 +1,17 @@
1
+ columns:
2
+ - type: pk
3
+ - name: slug
4
+ length: 127
5
+ - name: holder
6
+ length: 255
7
+ - name: locked_until
8
+ type: timestamptz
9
+ - type: created_at
10
+ - type: updated_at
11
+
12
+ indexes:
13
+ - columns:
14
+ - slug
15
+ isUnique: true
16
+ - columns:
17
+ - locked_until
@@ -27,5 +27,17 @@ columns:
27
27
  - name: is_private
28
28
  type: boolean
29
29
  default: false
30
+ # Quem enviou. O MCP so aceita `fileId` de arquivo do proprio usuario (ou de
31
+ # quem tem admin/admin-access) — pelo mesmo motivo do is_private acima, id
32
+ # sequencial e enumeravel, e sem dono nao ha como recusar um id adivinhado.
33
+ # Nulo nos arquivos anteriores a esta coluna e nos caminhos internos sem
34
+ # usuario (seed, cron, webhook); nulo so e utilizavel por admin.
35
+ - name: created_by_user_id
36
+ type: fk
37
+ references:
38
+ table: user
39
+ column: id
40
+ onDelete: SET NULL
41
+ isNullable: true
30
42
  - type: created_at
31
- - type: updated_at
43
+ - type: updated_at
@@ -0,0 +1,23 @@
1
+ # Partes do modo `chunked`. Ficam no banco, e nao em disco, porque a API roda com
2
+ # varios pods: dois `append` do mesmo upload caem em processos diferentes e um
3
+ # arquivo temporario local nao seria visto pelo pod seguinte. `bytea` guarda o
4
+ # binario ja decodificado, sem os 33% de inchaco do base64.
5
+ columns:
6
+ - type: pk
7
+ - name: ticket_id
8
+ type: fk
9
+ references:
10
+ table: file_upload_ticket
11
+ column: id
12
+ onDelete: CASCADE
13
+ - name: index
14
+ type: int
15
+ unsigned: true
16
+ - name: data
17
+ type: bytes
18
+ - type: created_at
19
+ indices:
20
+ - columns:
21
+ - ticket_id
22
+ - index
23
+ isUnique: true
@@ -0,0 +1,67 @@
1
+ # Upload iniciado fora do corpo da chamada MCP: o cliente pede um ticket, sobe o
2
+ # binario pelo PUT assinado (ou em partes, quando nao consegue falar HTTP) e so
3
+ # entao passa o fileId para a tool que vai usar o arquivo. O ticket e o que
4
+ # amarra o upload ao usuario, ao mimetype e ao tamanho declarados.
5
+ columns:
6
+ - type: pk
7
+ - name: user_id
8
+ type: fk
9
+ references:
10
+ table: user
11
+ column: id
12
+ onDelete: CASCADE
13
+ - name: filename
14
+ - name: mimetype
15
+ - name: size_bytes
16
+ type: int
17
+ unsigned: true
18
+ - name: destination
19
+ - name: is_private
20
+ type: boolean
21
+ default: false
22
+ # sha256 em hex declarado na abertura; conferido contra o conteudo no complete.
23
+ - name: sha256
24
+ type: varchar
25
+ length: 64
26
+ isNullable: true
27
+ - name: mode
28
+ type: enum
29
+ enum:
30
+ - signed_url
31
+ - chunked
32
+ # `completed` e gravado pelo update condicional que garante uso unico: quem
33
+ # perde a corrida ve count 0 e recebe erro em vez de gerar um segundo arquivo.
34
+ - name: status
35
+ type: enum
36
+ enum:
37
+ - pending
38
+ - completed
39
+ - failed
40
+ default: pending
41
+ - name: file_id
42
+ type: fk
43
+ references:
44
+ table: file
45
+ column: id
46
+ onDelete: SET NULL
47
+ isNullable: true
48
+ # Retry do cliente devolve o mesmo ticket em vez de abrir outro.
49
+ - name: idempotency_key
50
+ type: varchar
51
+ length: 128
52
+ isNullable: true
53
+ - name: expires_at
54
+ type: timestamptz
55
+ - name: consumed_at
56
+ type: timestamptz
57
+ isNullable: true
58
+ - type: created_at
59
+ - type: updated_at
60
+ indices:
61
+ - columns:
62
+ - user_id
63
+ - idempotency_key
64
+ isUnique: true
65
+ - columns:
66
+ - status
67
+ - expires_at
@@ -1,22 +1,30 @@
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: tool_name
11
- - name: input
12
- type: text
13
- isNullable: true
14
- - name: success
15
- type: boolean
16
- default: false
17
- - name: error
18
- isNullable: true
19
- - name: duration_ms
20
- type: int
21
- - type: created_at
22
- - type: updated_at
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: tool_name
11
+ - name: input
12
+ type: text
13
+ isNullable: true
14
+ - name: success
15
+ type: boolean
16
+ default: false
17
+ - name: error
18
+ isNullable: true
19
+ - name: duration_ms
20
+ type: int
21
+ # Por onde a chamada entrou: o client OAuth externo (hoje 'claude-connector')
22
+ # ou NULL para o caminho interno — chave hedhog_mcp_, JWT de login, mcp-chat.
23
+ # Sem isto uma acao feita pelo Claude Desktop e indistinguivel de uma feita
24
+ # pelo Claude Code, e a auditoria nao responde "quem pediu isso".
25
+ - name: client_id
26
+ type: varchar
27
+ length: 100
28
+ isNullable: true
29
+ - type: created_at
30
+ - type: updated_at
@@ -0,0 +1,33 @@
1
+ # Texto das mensagens que a plataforma manda por canal que nao e e-mail — hoje,
2
+ # os avisos internos de WhatsApp do atendimento e do comercio.
3
+ #
4
+ # Nao da para reusar a tabela `mail`: o render dela troca quebra de linha por
5
+ # `<br/>` porque corpo de e-mail e HTML, e no WhatsApp isso sai literal na tela.
6
+ # Aqui o corpo e texto puro, com o markdown do proprio WhatsApp.
7
+ #
8
+ # A tabela e MENOR do que parece necessario de proposito. Nome, descricao e a
9
+ # lista de variaveis nao moram aqui: moram no registry em codigo
10
+ # (`message-template.registry.ts`), declarados pela library dona do template, ao
11
+ # lado de quem produz os valores. Este e o mesmo desenho dos prompts de IA, e a
12
+ # frase que o resume esta la: o registry e o que faz do banco um OVERRIDE em vez
13
+ # da unica copia.
14
+ #
15
+ # Consequencia pratica: instalar uma library ja traz os modelos dela para a tela,
16
+ # sem migration por template, e a linha aqui so nasce quando alguem edita o texto
17
+ # ou desliga o aviso. "Restaurar padrao" apaga a linha.
18
+ columns:
19
+ - type: pk
20
+ - type: slug
21
+ - name: body
22
+ type: locale_text
23
+ locale:
24
+ en: Body
25
+ pt: Corpo
26
+ # Template desligado nao cala o aviso: o servico volta para o texto canonico do
27
+ # registry. Este campo e o desligamento do TEXTO EDITADO, para quem quer voltar
28
+ # ao padrao sem perder o que escreveu.
29
+ - name: is_active
30
+ type: boolean
31
+ default: true
32
+ - type: created_at
33
+ - type: updated_at
@@ -38,6 +38,14 @@ columns:
38
38
  - name: value
39
39
  length: 1023
40
40
  isNullable: true
41
+ # Filtro do picker de entidade (component: entity-picker). Hoje só perfil de
42
+ # integração: { typeSlug, providerSlug?, excludeProviders? }. As chaves vão
43
+ # cruas na query string de GET /integration-profile, por isso camelCase.
44
+ # O seeder do CLI serializa este objeto com JSON.stringify sem escapar aspas
45
+ # simples — mantenha os valores restritos a slugs.
46
+ - name: entity_filter
47
+ type: jsonb
48
+ isNullable: true
41
49
  - name: user_override
42
50
  type: boolean
43
51
  default: false
@@ -7,6 +7,17 @@ columns:
7
7
  column: id
8
8
  onDelete: CASCADE
9
9
  - name: hash
10
+ # Hash do refresh token IMEDIATAMENTE anterior, aceito ate
11
+ # `previous_hash_expires_at`. Sem essa janela, a rotacao e um handoff sem
12
+ # tolerancia: se a resposta do /auth/refresh se perde (rede caindo, aba
13
+ # suspensa, pod reciclado) o servidor ja girou e o cliente fica com um token
14
+ # morto — sessao de 30 dias destruida por um soluco de rede. Serve tambem para
15
+ # duas abas que renovam ao mesmo tempo.
16
+ - name: previous_hash
17
+ isNullable: true
18
+ - name: previous_hash_expires_at
19
+ type: datetime
20
+ isNullable: true
10
21
  - name: browser_id
11
22
  isNullable: true
12
23
  - name: ip_address
@@ -28,6 +39,25 @@ columns:
28
39
  type: varchar
29
40
  length: 255
30
41
  isNullable: true
42
+ # Recurso para o qual o access token desta sessao foi emitido (o `aud` do JWT).
43
+ # NULL e a sessao de login normal, que vale na API inteira; preenchida, o token
44
+ # so serve naquele recurso — e o TokenService recusa o caminho contrario, um
45
+ # token COM `aud` chegando numa rota que nao espera audiencia nenhuma.
46
+ #
47
+ # Mora na sessao, e nao so no JWT, porque o refresh token e opaco: na rotacao a
48
+ # unica coisa que sobrevive e esta linha. Sem a coluna, o primeiro
49
+ # POST /auth/refresh de um cliente externo devolveria um token sem `aud` e
50
+ # desfaria a restricao.
51
+ - name: audience
52
+ type: varchar
53
+ length: 255
54
+ isNullable: true
55
+ # Qual client OAuth abriu a sessao (oauth_app_client.client_id). Serve para a
56
+ # tela de sessoes dizer "Claude" em vez de repetir o user agent.
57
+ - name: oauth_client_id
58
+ type: varchar
59
+ length: 100
60
+ isNullable: true
31
61
  - type: created_at
32
62
  - type: updated_at
33
63
 
@@ -36,4 +66,9 @@ columns:
36
66
  # composto ja cobre esses casos.
37
67
  indices:
38
68
  - columns: [user_id, browser_id]
39
- - columns: [impersonator_user_id]
69
+ - columns: [impersonator_user_id]
70
+ # Todo /auth/refresh e todo /auth/logout procuram a sessao pelo hash. Sem
71
+ # indice sao seq scans na tabela inteira, e a latencia do refresh entra na
72
+ # janela de corrida da rotacao.
73
+ - columns: [hash]
74
+ - columns: [previous_hash]