Progress Report Form Oct 2024
What progress was made on your grant this month?
- Middleware Development for Sia Integration:
- We completed the middleware layer necessary for connecting the Proxmox cloud backup plugin with the Sia decentralized storage APIs. This middleware resolves issues encountered in direct API connections, facilitating reliable data transfer between systems. Initial testing with middleware successfully enabled seamless data uploads and retrievals between the cloud backup service and Sia.
- Cloud Backup API Enhancements:
- Further refinements to the cloud backup API were made, focusing on stability and speed. We replaced outdated Rust dependencies with the latest, streamlined libraries, improving overall API responsiveness and system reliability.
- Integration Testing and Code Maintenance:
- We continued rigorous testing of the API connections and UI interactions. Postman testing confirmed the API’s stability, and our work on the ExtJS-based UI provided a more user-friendly experience. We also implemented robust encryption and decryption mechanisms for secure data transactions, improving the cloud backup’s security features.
- User Interface (UI) Improvements:
- A series of enhancements were made to the Proxmox Backup Server plugin’s UI to improve accessibility and aesthetics. This included updates to stylesheets and modifications to critical UI elements like backup scheduling features, access controls, and group ownership editing. This work contributed to a more intuitive and visually cohesive user experience.
Phase 8: Beta testing and bug cleanup:
Documentation and Repository Management:
We updated and merged our work on GitHub, including all major middleware and API connection changes, code maintenance tasks, and ExtJS UI updates.
Cloud Backup Middleware Development
Objective: Build middleware to enable interaction between Proxmox Backup Server’s cloud backup APIs and Sia’s decentralized storage API, addressing connectivity issues.
Changes:
Developed the middleware layer to route API calls effectively and provide consistent data handling across platforms.
Added error-handling routines to manage connectivity errors and log middleware actions for debugging.
What was done in the code:
src/middleware/siaIntegrationMiddleware.rs: Main middleware file for API requests.
src/middleware/siaIntegrationTest.js: Middleware test script for Sia API functionality checks.
API Connectivity Enhancements
Objective: Improve cloud backup API’s performance and security by updating dependencies and fixing broken functions.
Changes:Replaced outdated Rust dependencies with optimized libraries for faster and more stable performance.
Fixed broken functions within cloud backup API to ensure proper backend/frontend communication.
pbs/src/api2/cloud/backup.rs: Main cloud backup API file.
pbs/src/api2/cloud/mod.rs: Module configuration for cloud backup.
pbs/src/api2/cloud/restore.rs: Restoration logic for cloud backups.
Encryption & Decryption for Data Security
Objective: Secure data interactions by implementing hash encryption and decryption routines.
Changes:Added encryption methods to secure sensitive data during transmission between cloud backup UI and Sia storage.
www/cloud/window/Hashcrypt.js: Contains hash encryption and decryption methods.
Cloud Backup UI Development
Objective: Improve the cloud backup user experience through API integrations and UI styling enhancements.
Changes:Integrated backup and restore functionality directly into the cloud backup UI.
Enhanced UI and styling for improved user experience and accessibility.
www/cloud/window/CloudBackupJob.js: UI logic for backup jobs.
www/css/ext6-pbscloud.css: Stylesheet for cloud backup UI.
www/cloud/backupworks/backupschedule.js: UI for backup scheduling options.
Access Control and Backup Group Management
Objective: Enhance user access control settings and allow management of backup group ownership.
Changes:Introduced features for editing access control within the UI.
Added functionality to change backup group owners directly from the interface.
www/cloud/window/ACLEdit.js: Access control settings.
www/cloud/window/GroupManager.js: Management of backup groups.
ExtJS Frontend Development and API Testing
Objective: Ensure compatibility and test the UI for Sia integration using ExtJS and API testing tools.
Changes:Continued refining the ExtJS frontend for seamless user interactions with the Sia API.
Conducted API connection tests to validate functionality for cloud backups.
src/cloud/test/alloc_writable_media.rs: Test file for API connections.
www/cloud/window/UIComponents.js: Various UI components.
Links to repos worked on this month:
Merged branch ‘develop’ of https://github.com/AZComputerSolutions/PBSCloudBackupModule
What will you be working on this month?
Beta Testing and Bug Fixes:
Conduct in-depth beta testing to identify and resolve any remaining bugs, particularly focusing on the middleware’s performance with Sia decentralized storage and Proxmox’s cloud backup functionalities.
Test Server Setup and Deployment:
Deploy a test version of the product on the designated test server by midweek and provide detailed instructions on setting up the test environment by the end of the week.
Ensure the test server is configured for efficient replication of the production environment to streamline testing.
Middleware Enhancements:
Further optimize the middleware layer for faster and more stable API calls, focusing on resilience against connectivity issues.
Implement additional error-handling mechanisms based on insights gained from initial tests to further enhance data reliability and error recovery.
UI Refinements and User Experience Improvements:
Continue improving the ExtJS-based UI, including accessibility adjustments and more intuitive layout designs to support smooth navigation within the cloud backup plugin.
Incorporate user feedback from testing phases to refine specific UI elements, especially within the backup scheduling and access control features.
Documentation and GitHub Management
Update technical documentation to reflect recent changes in API, middleware, and UI code.
Please summarize your development goals into a few sentences or bullet points:
Fix bugs and code dependency changes in Rust that make our code no longer compile. Get a test server setup and working. Document setting up a test server. So that anyone can do it would the code in our github site. I would also like to note that because of the pending approval by the Sia Foundation (thank-you for your continued support) we have been running at full development speed this last month.