@adonis-agora/authkit-server 0.78.0 → 0.80.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/build/index.d.ts +1 -0
  2. package/build/index.js +1 -0
  3. package/build/src/agents/config.d.ts +2 -0
  4. package/build/src/agents/config.js +3 -0
  5. package/build/src/agents/delegation_store.d.ts +16 -0
  6. package/build/src/agents/delegation_store.js +44 -0
  7. package/build/src/agents/poppy/config.d.ts +3 -0
  8. package/build/src/agents/poppy/config.js +7 -0
  9. package/build/src/agents/poppy/email_code_sign_in.d.ts +27 -0
  10. package/build/src/agents/poppy/email_code_sign_in.js +140 -0
  11. package/build/src/agents/poppy/service.d.ts +6 -0
  12. package/build/src/agents/poppy/service.js +12 -0
  13. package/build/src/agents/poppy/store.d.ts +2 -0
  14. package/build/src/agents/poppy/store.js +9 -0
  15. package/build/src/agents/registry_store.d.ts +41 -0
  16. package/build/src/agents/registry_store.js +138 -0
  17. package/build/src/agents/runtime.d.ts +13 -0
  18. package/build/src/agents/runtime.js +87 -5
  19. package/build/src/audit/audit_sink.d.ts +1 -1
  20. package/build/src/audit/audit_sink.js +6 -0
  21. package/build/src/define_config.d.ts +12 -0
  22. package/build/src/host/admin_api/dto.d.ts +1 -1
  23. package/build/src/host/admin_console/admin_shell_controller.js +7 -0
  24. package/build/src/host/admin_console/console_personal_agents_controller.d.ts +83 -0
  25. package/build/src/host/admin_console/console_personal_agents_controller.js +337 -0
  26. package/build/src/host/default_mailer.d.ts +11 -0
  27. package/build/src/host/default_mailer.js +29 -0
  28. package/build/src/host/i18n.d.ts +10 -0
  29. package/build/src/host/i18n.js +12 -0
  30. package/build/src/host/register_auth_host.js +16 -0
  31. package/build/src/host/ui-dist/assets/index-LrScaR9C.js +155 -0
  32. package/build/src/host/ui-dist/index.html +1 -1
  33. package/build/src/schema/ensure.js +28 -0
  34. package/package.json +2 -2
  35. package/build/src/host/ui-dist/assets/index-CIqtoNcO.js +0 -155
@@ -294,6 +294,35 @@ export async function sendMagicLinkEmail(ctx, data) {
294
294
  ctx.logger.error({ err: error, email: data.email }, 'authkit: falha ao enviar magic link de login');
295
295
  }
296
296
  }
297
+ /**
298
+ * Envia o código do Mediated Sign-In pronto do Poppy (`poppyEmailCodeSignIn`) pelo
299
+ * mailer default do host. Só código, sem link: quem digita é a pessoa, no agente.
300
+ * Best-effort: no fallback (sem mail) loga o código, como o magic link loga o link; nunca lança.
301
+ */
302
+ export async function sendPoppySignInCodeEmail(ctx, data) {
303
+ try {
304
+ const brand = resolveBrand(ctx);
305
+ const { messages: t, locale } = resolveMailMessages(ctx);
306
+ const params = { agent: data.agentName, minutes: data.expiresInMinutes };
307
+ const content = renderTransactionalEmail({
308
+ brand,
309
+ locale,
310
+ subject: translate(t, 'mail.poppy_sign_in.subject', params),
311
+ heading: translate(t, 'mail.poppy_sign_in.heading', params),
312
+ intro: translate(t, 'mail.poppy_sign_in.intro', params),
313
+ footnote: translate(t, 'mail.poppy_sign_in.fallback'),
314
+ code: data.code,
315
+ codeLabel: translate(t, 'mail.poppy_sign_in.code_label'),
316
+ });
317
+ const sent = await sendEmail(ctx, data.email, content);
318
+ if (!sent) {
319
+ ctx.logger.info({ email: data.email, agent: data.agentName, code: data.code }, 'authkit: código do Poppy Mediated Sign-In (dev — @adonisjs/mail ausente)');
320
+ }
321
+ }
322
+ catch (error) {
323
+ ctx.logger.error({ err: error, email: data.email }, 'authkit: falha ao enviar o código do Poppy Mediated Sign-In');
324
+ }
325
+ }
297
326
  /**
298
327
  * Envia o link de CONFIRMAÇÃO DE IDENTIDADE (sudo) pelo mailer default do host.
299
328
  *
@@ -561,6 +561,11 @@ export declare const DEFAULT_MESSAGES: {
561
561
  'mail.magic_link.code_subject': string;
562
562
  'mail.magic_link.code_intro': string;
563
563
  'mail.magic_link.code_only_label': string;
564
+ 'mail.poppy_sign_in.subject': string;
565
+ 'mail.poppy_sign_in.heading': string;
566
+ 'mail.poppy_sign_in.intro': string;
567
+ 'mail.poppy_sign_in.code_label': string;
568
+ 'mail.poppy_sign_in.fallback': string;
564
569
  'mail.sudo_link.subject': string;
565
570
  'mail.sudo_link.heading': string;
566
571
  'mail.sudo_link.intro': string;
@@ -1315,6 +1320,11 @@ export declare const PT_BR_MESSAGES: {
1315
1320
  'mail.magic_link.code_subject': string;
1316
1321
  'mail.magic_link.code_intro': string;
1317
1322
  'mail.magic_link.code_only_label': string;
1323
+ 'mail.poppy_sign_in.subject': string;
1324
+ 'mail.poppy_sign_in.heading': string;
1325
+ 'mail.poppy_sign_in.intro': string;
1326
+ 'mail.poppy_sign_in.code_label': string;
1327
+ 'mail.poppy_sign_in.fallback': string;
1318
1328
  'mail.sudo_link.subject': string;
1319
1329
  'mail.sudo_link.heading': string;
1320
1330
  'mail.sudo_link.intro': string;
@@ -604,6 +604,12 @@ export const DEFAULT_MESSAGES = {
604
604
  'mail.magic_link.code_subject': 'Your login code',
605
605
  'mail.magic_link.code_intro': 'Use the code below to sign in. It expires shortly and can be used once.',
606
606
  'mail.magic_link.code_only_label': 'Enter this code to sign in:',
607
+ // Código do Mediated Sign-In do Poppy: um personal agent pede para entrar na conta.
608
+ 'mail.poppy_sign_in.subject': 'Your code to connect {agent}',
609
+ 'mail.poppy_sign_in.heading': 'Connect {agent} to your account',
610
+ 'mail.poppy_sign_in.intro': '{agent} asked to sign in to your account. If that was you, give it the code below. It expires in {minutes} minutes and works once.',
611
+ 'mail.poppy_sign_in.code_label': 'Your code:',
612
+ 'mail.poppy_sign_in.fallback': 'If you did not ask for this, ignore this email — nobody gets in without the code. Never share it with anyone else.',
607
613
  // Link de CONFIRMAÇÃO DE IDENTIDADE (sudo). Copy DISTINTA da do magic link de
608
614
  // login de propósito: este link não autentica ninguém — quem o abre já está
609
615
  // logado e só reprova que é quem diz ser. Prometer "entre na sua conta" num
@@ -1444,6 +1450,12 @@ export const PT_BR_MESSAGES = {
1444
1450
  'mail.magic_link.code_subject': 'Seu código de login',
1445
1451
  'mail.magic_link.code_intro': 'Use o código abaixo para entrar. Ele expira em instantes e serve para um único acesso.',
1446
1452
  'mail.magic_link.code_only_label': 'Digite este código para entrar:',
1453
+ // Código do Mediated Sign-In do Poppy — ver o comentário no catálogo `en`.
1454
+ 'mail.poppy_sign_in.subject': 'Seu código para conectar {agent}',
1455
+ 'mail.poppy_sign_in.heading': 'Conecte {agent} à sua conta',
1456
+ 'mail.poppy_sign_in.intro': '{agent} pediu para entrar na sua conta. Se foi você, informe o código abaixo. Ele expira em {minutes} minutos e serve uma única vez.',
1457
+ 'mail.poppy_sign_in.code_label': 'Seu código:',
1458
+ 'mail.poppy_sign_in.fallback': 'Se não foi você, ignore este e-mail — ninguém entra sem o código. Nunca o compartilhe com outra pessoa.',
1447
1459
  // Link de CONFIRMAÇÃO DE IDENTIDADE (sudo) — ver o comentário no catálogo `en`.
1448
1460
  'mail.sudo_link.subject': 'Confirme que é você',
1449
1461
  'mail.sudo_link.heading': 'Confirme sua identidade',
@@ -220,6 +220,7 @@ const C = {
220
220
  consoleSettings: () => import('./admin_console/console_settings_controller.js'),
221
221
  consoleKeys: () => import('./admin_console/console_keys_controller.js'),
222
222
  consoleImpersonation: () => import('./admin_console/console_impersonation_controller.js'),
223
+ consolePersonalAgents: () => import('./admin_console/console_personal_agents_controller.js'),
223
224
  apiUsers: () => import('./admin_api/api_users_controller.js'),
224
225
  apiClients: () => import('./admin_api/api_clients_controller.js'),
225
226
  apiMisc: () => import('./admin_api/api_misc_controller.js'),
@@ -915,6 +916,21 @@ export function registerAuthHost(router, opts = {}) {
915
916
  // Chave de assinatura managed (status + rotação ao vivo).
916
917
  router.get(`${ap}/api/keys`, [C.consoleKeys, 'status']);
917
918
  router.post(`${ap}/api/keys/rotate`, [C.consoleKeys, 'rotate']);
919
+ // Personal agents (capability-gated: 404 sem `personalAgents` ou sem banco).
920
+ router.get(`${ap}/api/personal-agents`, [C.consolePersonalAgents, 'index']);
921
+ router.get(`${ap}/api/personal-agents/connections`, [
922
+ C.consolePersonalAgents,
923
+ 'connections',
924
+ ]);
925
+ router.post(`${ap}/api/personal-agents/connections/:grantId/revoke`, [
926
+ C.consolePersonalAgents,
927
+ 'revokeConnection',
928
+ ]);
929
+ router.post(`${ap}/api/personal-agents/registry`, [C.consolePersonalAgents, 'upsert']);
930
+ router.delete(`${ap}/api/personal-agents/registry/:id`, [
931
+ C.consolePersonalAgents,
932
+ 'destroy',
933
+ ]);
918
934
  // Impersonation (capability-gated: 404 quando desabilitado ou sem client).
919
935
  router.get(`${ap}/api/impersonation/:userId`, [C.consoleImpersonation, 'handle']);
920
936
  // ─── Shell HTML — POR ÚLTIMO (catch-all) ──────────────────────────────