nokker a75bacea5e Implement secure N8N webhook integration and resolve CORS issues
### 🔧 Technical Solution
- **API Key Authentication**: Migrated from Authelia session auth to X-N8N-API-KEY header authentication
- **CORS Resolution**: Eliminated preflight failures by removing authentication redirects from webhook endpoints
- **Error Handling**: Added graceful fallback for empty N8N responses with intelligent question generation
- **Type Safety**: Updated TypeScript interfaces for enhanced response format support

### 🛡️ Security Enhancements
- **Maintained Security**: N8N UI still protected by Authelia while webhooks use API key authentication
- **Audit Trail**: All webhook requests logged with API key identification for security monitoring
- **Rate Limiting**: Applied through Traefik middleware to prevent API abuse
- **Easy Key Rotation**: API keys can be changed instantly without affecting user sessions

### 📱 Application Updates
- **N8nSyncService**: Complete migration from Authelia to API key authentication
- **CV Upload Component**: Simplified flow without authentication popups for N8N integration
- **Fallback System**: Intelligent question generation based on CV content when N8N unavailable
- **User Experience**: Seamless PDF upload to analysis workflow without CORS barriers

### 🐳 Docker Configuration
- **Multi-stage Build**: Optimized Dockerfile with Node.js 20 and nginx:alpine
- **Docker Compose**: Complete service orchestration with port 3007 mapping
- **Nginx Configuration**: Custom MIME types for PDF.js worker files and SPA routing
- **SSL Integration**: Traefik labels for automatic HTTPS with proper CORS headers

### 🧪 Testing Results
-  **PDF Processing**: Successfully extracts text from uploaded CVs (2871+ characters)
-  **CORS Success**: OPTIONS and POST requests work without authentication redirects
-  **Webhook Integration**: Connects to N8N with X-N8N-API-KEY header
-  **Fallback Questions**: Generates contextual questions when N8N workflow unavailable
-  **Type Safety**: No TypeScript compilation errors with updated interfaces

### 💡 Intelligent Fallback Features
- **Technical Questions**: Generated based on actual CV skills (e.g., JavaScript experience)
- **Behavioral Questions**: Standard problem-solving and teamwork assessments
- **Experience-Specific**: Company and role-specific questions from work history
- **Career Development**: Growth and motivation questions tailored to experience level

### 🔗 Integration Points
- **Environment Config**: Added N8N API key and base URL configuration
- **Service Communication**: Direct HTTP with API key headers (no session dependency)
- **Response Handling**: Support for both N8N workflow responses and local fallback
- **Error Recovery**: Graceful degradation when external services unavailable

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-17 21:38:22 +02:00

InterviewAssistant

This project was generated using Angular CLI version 20.3.1.

Development server

To start a local development server, run:

ng serve

Once the server is running, open your browser and navigate to http://localhost:4200/. The application will automatically reload whenever you modify any of the source files.

Code scaffolding

Angular CLI includes powerful code scaffolding tools. To generate a new component, run:

ng generate component component-name

For a complete list of available schematics (such as components, directives, or pipes), run:

ng generate --help

Building

To build the project run:

ng build

This will compile your project and store the build artifacts in the dist/ directory. By default, the production build optimizes your application for performance and speed.

Running unit tests

To execute unit tests with the Karma test runner, use the following command:

ng test

Running end-to-end tests

For end-to-end (e2e) testing, run:

ng e2e

Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.

Additional Resources

For more information on using the Angular CLI, including detailed command references, visit the Angular CLI Overview and Command Reference page.

Description
Real-Time Interview Assistant with Authelia Authentication and n8n Integration
Readme 305 KiB
Languages
TypeScript 87.6%
SCSS 11.3%
HTML 0.5%
JavaScript 0.5%
Dockerfile 0.1%