tlsCAFile=certifi.where() is the correct pymongo parameter to supply the
Mozilla CA bundle, resolving TLSV1_ALERT_INTERNAL_ERROR on both Python
3.11 and 3.14 when connecting to Atlas over TLS.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Blocking startup_event on connect_to_mongo() prevented the server from
opening its port when Atlas was slow or unreachable, causing Render to
wait indefinitely. Connection now runs as a background task.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
pymongo does not accept ssl_context as a constructor argument. Python 3.11
(now enforced via .python-version) handles Atlas TLS fine without it.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
OpenSSL 3.x defaults to security level 2 which drops cipher suites Atlas needs.
Create an explicit SSL context at SECLEVEL=1 so TLS negotiation succeeds on any
Python version. Also add .python-version to steer Render toward Python 3.11.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Python 3.14 on Render has OpenSSL incompatibilities causing TLSV1_ALERT_INTERNAL_ERROR
when connecting to MongoDB Atlas. Pinning to 3.11.9 resolves the SSL negotiation issue.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add vercel.json with Angular build config and SPA rewrites
- Increase Angular bundle budgets to unblock production build
- Fix TS strict null error in runtime-config.ts (return _config ?? {})
- Load API_URL from /assets/config.json at bootstrap via prebuild script
- Wire getRuntimeConfig() into FormService instead of hardcoded localhost
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Revised performance metrics with updated data from September 2025 testing.
- Enhanced recent testing activity section to reflect new testing dates and results.
- Improved clarity in performance summary with updated ranges for validation, parsing, upload, and delete operations.
- Added support for concurrent file uploads with a maximum limit.
- Implemented async processing for file uploads, allowing for pause, resume, and cancel functionality.
- Introduced an AbortController to manage ongoing uploads and handle cancellation.
- Updated UI feedback for upload status and error handling.
- Refactored upload logic to improve state management and user experience.
- Refactored methods to extract form details such as title, language, version, questions count, and options count.
- Updated XLSFormParser to use default form IDs and improved data conversion from tempData.json.
- Adjusted the getFormById method to return a more flexible response type.
- Modified the parse_file endpoint to return data in mForm comptaible format instead of the previous schema.
- Updated the get_form_by_id endpoint to return forms in the new tempData.json format.
- Enhanced XLSFormParser to support the conversion of database format to tempData.json format.
- Adjusted tests to validate the new response structure for parsed forms.
- Added buttons to pause, resume, and cancel file uploads.
- Improved upload progress display to show current file status.
- Implemented session storage to restore upload state after page refresh.
- Refactored file upload logic to handle individual file uploads and track progress.
- Added default values for 'version' and 'created_at' fields in the database service.
- Updated XLSFormParser to parse and include 'version' and 'created_at' from the form metadata.
- Changed font from 'Roboto' to 'Inter' across frontend components for consistency.
- Improved upload component to display default values for 'language', 'version', and 'created_at' in the form details.
- Adjusted progress display messages for clarity during file uploads.
- Updated project title and description to reflect the comprehensive nature of the application.
- Expanded sections on architecture, technology stack, and system requirements.
- Added detailed API reference, including endpoints for validation, parsing, and form management.
- Included performance characteristics and testing strategy for better understanding of system capabilities.
- Enhanced installation and setup instructions for both backend and frontend components.
- Renamed backend README to reflect "Bulk Questionnaire Upload" focus.
- Expanded backend documentation to include detailed architecture, API references, and error handling strategies.
- Updated frontend README to include new features, installation instructions, and API integration details.
- Improved project structure descriptions and added sections for testing, deployment, and future enhancements.
- Created a new workflow that triggers on pushes to the main branch and manual dispatch.
- The workflow checks out the repository and the wiki, prepares the wiki content by copying README files, and commits changes if there are updates.
- Introduced a CI workflow for automated testing of backend and frontend components.
- Added pytest configuration for backend tests and Vitest configuration for frontend tests.
- Enhanced file validation logic in the backend to improve error handling and reporting.
- Created comprehensive test cases for various validation scenarios, including edge cases and incorrect formats.
- Updated requirements to include necessary testing libraries and tools.
• Add comprehensive schema viewer modal with dark mode theme
• Implement copy/download functionality and keyboard shortcuts
• Update README files with latest performance metrics and API documentation
• Remove colorful UI elements for consistent monochrome design
• Enhance viewParsedSchema from console.log to interactive modal