fix(dkv): fix inbox processing pipeline — orphan tenant, MIME detection, UNSEEN filter
- Fix orphaned DkvModuleConfig: tenantId pointed to deleted tenant, updated to Default tenant - DKV controller: return 404 instead of HTTP 200 null when no config exists - IMAP provider: also detect PDFs sent as application/octet-stream (check filename extension) - IMAP provider: add seen:false filter so already-processed emails are skipped on re-poll - IMAP provider: mark email as \Seen after successful PDF download to prevent reprocessing - Frontend dkv-api: handle 404 from fetchConfig as "not yet configured" (returns null) - InboxConfigForm: show warning banner when config not yet saved in DB - InboxConfigForm: add "Jetzt prüfen" button to manually trigger POST /dkv/check-now Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -55,12 +55,16 @@ export class DkvController {
|
||||
|
||||
// ─── Config ────────────────────────────────────────────────────────────────
|
||||
|
||||
/** GET /dkv/config — returns module config without encrypted credentials. */
|
||||
/** GET /dkv/config — returns module config without encrypted credentials. 404 when not yet configured. */
|
||||
@Get('config')
|
||||
@Roles(Role.ADMIN, Role.SUPER_ADMIN)
|
||||
async getConfig(@Req() req: any) {
|
||||
const tenantId = this._requireTenant(req);
|
||||
return this.dkvService.loadConfig(tenantId);
|
||||
const config = await this.dkvService.loadConfig(tenantId);
|
||||
if (!config) {
|
||||
throw new NotFoundException('DKV module not yet configured');
|
||||
}
|
||||
return config;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user