fix(auth): register magic_link event type + use admin productId for enterprise IdP

- Register 'auth.magic_link_requested' in @bytelyst/events PlatformEventSchemas
- Remove any-cast from magic-link/routes.ts — now properly typed
- Enterprise IdP creation uses admin's JWT productId instead of hardcoded 'smartauth'
- All 53 auth tests passing
This commit is contained in:
saravanakumardb1 2026-03-12 15:55:09 -07:00
parent b8f22be677
commit 2b3130821c
3 changed files with 10 additions and 3 deletions

View File

@ -67,6 +67,13 @@ export const PlatformEventSchemas = {
secondaryUserId: z.string(), secondaryUserId: z.string(),
productId: z.string(), productId: z.string(),
}), }),
'auth.magic_link_requested': z.object({
userId: z.string(),
email: z.string(),
token: z.string(),
productId: z.string(),
expiresAt: z.string(),
}),
// Subscription events // Subscription events
'subscription.created': z.object({ 'subscription.created': z.object({

View File

@ -53,10 +53,11 @@ export async function enterpriseRoutes(app: FastifyInstance) {
} }
const now = new Date().toISOString(); const now = new Date().toISOString();
const adminProductId = payload.productId ?? 'smartauth';
const doc: EnterpriseIdpDoc = { const doc: EnterpriseIdpDoc = {
id: `idp_${data.orgId}_${data.protocol}_${randomUUID().slice(0, 6)}`, id: `idp_${data.orgId}_${data.protocol}_${randomUUID().slice(0, 6)}`,
orgId: data.orgId, orgId: data.orgId,
productId: 'smartauth', productId: adminProductId,
protocol: data.protocol, protocol: data.protocol,
name: data.name, name: data.name,
emailDomains: data.emailDomains.map(d => d.toLowerCase()), emailDomains: data.emailDomains.map(d => d.toLowerCase()),

View File

@ -49,8 +49,7 @@ export async function magicLinkRoutes(app: FastifyInstance) {
await repo.create(doc); await repo.create(doc);
// Emit event for delivery module to send email // Emit event for delivery module to send email
// eslint-disable-next-line @typescript-eslint/no-explicit-any await bus.emit('auth.magic_link_requested', {
(bus as any).emit('auth.magic_link_requested', {
userId: user.id, userId: user.id,
email: user.email, email: user.email,
token, token,