tRPC API Reference
All client-server interactions in Wunderkint AI CRM are powered by tRPC with end-to-end TypeScript type safety.
Procedure Guard Architecture
Section titled “Procedure Guard Architecture”Procedures in apps/web/lib/trpc/init.ts enforce access control before business logic executes:
// 1. Authenticated Userexport const protectedProcedure = t.procedure.use(isAuthed);
// 2. Module Access Matrix Guardexport function moduleGuard(moduleName: CRMModule, action: 'read' | 'create' | 'edit' | 'delete') { return protectedProcedure.use(async ({ ctx, next }) => { // Evaluates permissions against user_roles and role_permissions in ctx.systemDb const accessLevel = await checkModulePermission(ctx.user.id, moduleName, action, ctx.systemDb); if (accessLevel === 'none') { throw new TRPCError({ code: 'FORBIDDEN', message: 'Insufficient module permissions' }); } return next({ ctx: { ...ctx, accessLevel } }); });}Key tRPC Routers (28 Total)
Section titled “Key tRPC Routers (28 Total)”| Router | Purpose | Key Procedures |
|---|---|---|
leads |
Lead CRUD & pipeline transitions | leads.list, leads.getById, leads.create, leads.updateStage |
deals |
Deal forecasting & stage history | deals.list, deals.getMetrics, deals.update |
vendors |
Vendor directory & strike management | vendors.list, vendors.logStrike, vendors.getHealthScore |
tasks |
Task execution & blueprint templates | tasks.listByDeal, tasks.createSubtask, tasks.complete |
finance |
Invoices, commission & time entries | finance.getInvoices, finance.calculateCommissions, finance.logTime |
admin |
Role & workspace setting management | admin.getRoles, admin.updatePermissions, admin.getAuditLogs |
