@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.
- package/build/index.d.ts +1 -0
- package/build/index.js +1 -0
- package/build/src/agents/config.d.ts +2 -0
- package/build/src/agents/config.js +3 -0
- package/build/src/agents/delegation_store.d.ts +16 -0
- package/build/src/agents/delegation_store.js +44 -0
- package/build/src/agents/poppy/config.d.ts +3 -0
- package/build/src/agents/poppy/config.js +7 -0
- package/build/src/agents/poppy/email_code_sign_in.d.ts +27 -0
- package/build/src/agents/poppy/email_code_sign_in.js +140 -0
- package/build/src/agents/poppy/service.d.ts +6 -0
- package/build/src/agents/poppy/service.js +12 -0
- package/build/src/agents/poppy/store.d.ts +2 -0
- package/build/src/agents/poppy/store.js +9 -0
- package/build/src/agents/registry_store.d.ts +41 -0
- package/build/src/agents/registry_store.js +138 -0
- package/build/src/agents/runtime.d.ts +13 -0
- package/build/src/agents/runtime.js +87 -5
- package/build/src/audit/audit_sink.d.ts +1 -1
- package/build/src/audit/audit_sink.js +6 -0
- package/build/src/define_config.d.ts +12 -0
- package/build/src/host/admin_api/dto.d.ts +1 -1
- package/build/src/host/admin_console/admin_shell_controller.js +7 -0
- package/build/src/host/admin_console/console_personal_agents_controller.d.ts +83 -0
- package/build/src/host/admin_console/console_personal_agents_controller.js +337 -0
- package/build/src/host/default_mailer.d.ts +11 -0
- package/build/src/host/default_mailer.js +29 -0
- package/build/src/host/i18n.d.ts +10 -0
- package/build/src/host/i18n.js +12 -0
- package/build/src/host/register_auth_host.js +16 -0
- package/build/src/host/ui-dist/assets/index-LrScaR9C.js +155 -0
- package/build/src/host/ui-dist/index.html +1 -1
- package/build/src/schema/ensure.js +28 -0
- package/package.json +2 -2
- 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
|
*
|
package/build/src/host/i18n.d.ts
CHANGED
|
@@ -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;
|
package/build/src/host/i18n.js
CHANGED
|
@@ -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) ──────────────────────────────
|