RedXSecureUpdater


NameRedXSecureUpdater JSON
Version 0.3.1 PyPI version JSON
download
home_pagehttps://github.com/redxdev/RedXSecureUpdater
SummaryA comprehensive Python package for secure automatic project updates
upload_time2025-01-28 09:01:38
maintainerNone
docs_urlNone
authorRedX Development
requires_python>=3.11
licenseMIT License Copyright (c) 2025 RedX Development Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords update secure automation version-control
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # RedXSecureUpdater

A comprehensive Python package for seamless and secure automatic project updates across different environments. RedXSecureUpdater provides real-time file monitoring, secure update distribution, and robust rollback capabilities.

## What's New in 0.3.1

- **Improved Server Integration**: Added built-in secure local server for update distribution
- **Enhanced Security**: Improved SSL implementation and authentication
- **Optimized Server Behavior**: Server now automatically starts/stops based on update availability
- **Improved File Monitoring**: More reliable change detection and file tracking
- **Better Error Handling**: Enhanced error recovery and logging
- **Performance Improvements**: Reduced resource usage during monitoring

## Installation

```bash
pip install RedXSecureUpdater
```

## Features

- **Automatic Updates**: Seamlessly update your application with a single command
- **Built-in Update Server**: Secure local server for update distribution
- **Real-time File Monitoring**: Track changes in project files instantly
- **Safe Executable Updates**: Update running executables without crashes
- **Automatic Version Control**: Version management (e.g., 1.0.0 to 1.0.1)
- **Robust Rollback System**: Automatic backup and restore if updates fail
- **Update Validation**: Verify file integrity with checksums
- **Change Detection**: Track new, modified, and deleted files
- **Secure Local Server**: Built-in HTTPS server for secure update distribution
- **SSL Support**: Enhanced security with SSL certificate support
- **Update Scheduling**: Configure automated update checks and installations
- **Compression Support**: Optimize update size with built-in compression
- **Update Notifications**: Keep users informed about update progress

## Quick Start Guide

### Basic Update Command

The simplest way to trigger updates is using the provided update trigger script:

```bash
# Basic version update
python -m redx_secure_updater.trigger -m "Update message" -v "1.1.0" -d "./my_app"

# Schedule update for specific time
python -m redx_secure_updater.trigger -m "Scheduled update" -v "1.2.0" -t "3:45 PM" -d "./my_app"

# Update with application restart
python -m redx_secure_updater.trigger -m "Update and restart" -v "2.0.0" -r "python my_app.py" -d "./my_app"
```

### Command Arguments Explained

- `-m` or `--message`: Update message to display (optional)
- `-v` or `--version`: New version number (e.g., "1.1.0")
- `-d` or `--dir`: Application directory to update
- `-t` or `--time`: Schedule time for the update (e.g., "3:45 PM")
- `-r` or `--restart`: Command to run after update completes

### Using the Secure Local Server

The package includes a built-in secure update server that automatically starts when updates are available:

```python
from redx_secure_updater import RedXSecureUpdater

# Initialize with SSL certificates for secure updates
updater = RedXSecureUpdater(
    directory="your_app_directory",
    ssl_cert="path/to/cert.pem",  # Optional: Enable HTTPS
    ssl_key="path/to/key.pem"     # Optional: Enable HTTPS
)

# Server automatically starts when updates are available
# Default port: 8443 (HTTPS) or 8000 (HTTP)
```

### Remote Updates Architecture

The RedXSecureUpdater uses a secure client-server architecture for distributing updates:

1. **Update Server (Application Owner)**:
   ```python
   # Server automatically starts when changes are detected
   owner = RedXSecureUpdater(
       directory="app_source",
       ssl_cert="ssl/cert.pem",
       ssl_key="ssl/key.pem"
   )

   # Server runs on https://localhost:8443 by default
   # Only starts when updates are available
   # Automatically handles file monitoring and change detection
   ```

2. **Update Client (Application Users)**:
   ```python
   # Initialize client for receiving updates
   client = RedXSecureUpdater(
       directory="app_installation",
       version="1.0.0"
   )

   # Check for updates periodically
   # Updates are verified with checksums before applying
   # Automatic rollback on failure
   ```

3. **Security Features**:
   - SSL/TLS encryption for all communications
   - Checksum verification for file integrity
   - Automatic backup before updates
   - Token-based authentication
   - Secure version control

4. **Network Architecture**:
   ```
   [App Owner] --> [Secure Update Server] --> [Client Apps]
         |                  |                     |
   Monitors Changes    SSL Encryption     Receives Updates
   ```

### Best Practices

1. **Version Numbers**:
   - Use semantic versioning (MAJOR.MINOR.PATCH)
   - Example: 1.0.0, 1.1.0, 2.0.0

2. **SSL Configuration**:
   - Always use SSL certificates in production
   - Keep certificates in a secure location
   - Regularly rotate SSL certificates
   - Use proper file permissions for key files

3. **Server Security**:
   - Configure firewall rules appropriately
   - Use strong authentication tokens
   - Monitor server logs for suspicious activity
   - Keep SSL certificates up to date

4. **Backup Strategy**:
   - Keep automated backups enabled
   - Test rollback functionality
   - Verify application state after updates

### Common Issues and Solutions

1. **Version Conflicts**:
   ```python
   # Fix: Explicitly set version
   RedXSecureUpdate(version="1.0.0", force=True)
   ```

2. **Update Failures**:
   - Check logs in `.redx/update_logs.txt`
   - Verify file permissions
   - Ensure no files are locked

3. **SSL Certificate Issues**:
   - Verify certificate path and permissions
   - Check certificate expiration dates
   - Ensure proper key permissions

4. **Server Connection Issues**:
   - Verify firewall settings
   - Check port availability
   - Confirm SSL configuration

## Support

For issues and feature requests, please use our [GitHub issue tracker](https://github.com/redxdev/RedXSecureUpdater/issues).

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/redxdev/RedXSecureUpdater",
    "name": "RedXSecureUpdater",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "update, secure, automation, version-control",
    "author": "RedX Development",
    "author_email": "RedX Development <support@redxdev.com>",
    "download_url": null,
    "platform": null,
    "description": "# RedXSecureUpdater\n\nA comprehensive Python package for seamless and secure automatic project updates across different environments. RedXSecureUpdater provides real-time file monitoring, secure update distribution, and robust rollback capabilities.\n\n## What's New in 0.3.1\n\n- **Improved Server Integration**: Added built-in secure local server for update distribution\n- **Enhanced Security**: Improved SSL implementation and authentication\n- **Optimized Server Behavior**: Server now automatically starts/stops based on update availability\n- **Improved File Monitoring**: More reliable change detection and file tracking\n- **Better Error Handling**: Enhanced error recovery and logging\n- **Performance Improvements**: Reduced resource usage during monitoring\n\n## Installation\n\n```bash\npip install RedXSecureUpdater\n```\n\n## Features\n\n- **Automatic Updates**: Seamlessly update your application with a single command\n- **Built-in Update Server**: Secure local server for update distribution\n- **Real-time File Monitoring**: Track changes in project files instantly\n- **Safe Executable Updates**: Update running executables without crashes\n- **Automatic Version Control**: Version management (e.g., 1.0.0 to 1.0.1)\n- **Robust Rollback System**: Automatic backup and restore if updates fail\n- **Update Validation**: Verify file integrity with checksums\n- **Change Detection**: Track new, modified, and deleted files\n- **Secure Local Server**: Built-in HTTPS server for secure update distribution\n- **SSL Support**: Enhanced security with SSL certificate support\n- **Update Scheduling**: Configure automated update checks and installations\n- **Compression Support**: Optimize update size with built-in compression\n- **Update Notifications**: Keep users informed about update progress\n\n## Quick Start Guide\n\n### Basic Update Command\n\nThe simplest way to trigger updates is using the provided update trigger script:\n\n```bash\n# Basic version update\npython -m redx_secure_updater.trigger -m \"Update message\" -v \"1.1.0\" -d \"./my_app\"\n\n# Schedule update for specific time\npython -m redx_secure_updater.trigger -m \"Scheduled update\" -v \"1.2.0\" -t \"3:45 PM\" -d \"./my_app\"\n\n# Update with application restart\npython -m redx_secure_updater.trigger -m \"Update and restart\" -v \"2.0.0\" -r \"python my_app.py\" -d \"./my_app\"\n```\n\n### Command Arguments Explained\n\n- `-m` or `--message`: Update message to display (optional)\n- `-v` or `--version`: New version number (e.g., \"1.1.0\")\n- `-d` or `--dir`: Application directory to update\n- `-t` or `--time`: Schedule time for the update (e.g., \"3:45 PM\")\n- `-r` or `--restart`: Command to run after update completes\n\n### Using the Secure Local Server\n\nThe package includes a built-in secure update server that automatically starts when updates are available:\n\n```python\nfrom redx_secure_updater import RedXSecureUpdater\n\n# Initialize with SSL certificates for secure updates\nupdater = RedXSecureUpdater(\n    directory=\"your_app_directory\",\n    ssl_cert=\"path/to/cert.pem\",  # Optional: Enable HTTPS\n    ssl_key=\"path/to/key.pem\"     # Optional: Enable HTTPS\n)\n\n# Server automatically starts when updates are available\n# Default port: 8443 (HTTPS) or 8000 (HTTP)\n```\n\n### Remote Updates Architecture\n\nThe RedXSecureUpdater uses a secure client-server architecture for distributing updates:\n\n1. **Update Server (Application Owner)**:\n   ```python\n   # Server automatically starts when changes are detected\n   owner = RedXSecureUpdater(\n       directory=\"app_source\",\n       ssl_cert=\"ssl/cert.pem\",\n       ssl_key=\"ssl/key.pem\"\n   )\n\n   # Server runs on https://localhost:8443 by default\n   # Only starts when updates are available\n   # Automatically handles file monitoring and change detection\n   ```\n\n2. **Update Client (Application Users)**:\n   ```python\n   # Initialize client for receiving updates\n   client = RedXSecureUpdater(\n       directory=\"app_installation\",\n       version=\"1.0.0\"\n   )\n\n   # Check for updates periodically\n   # Updates are verified with checksums before applying\n   # Automatic rollback on failure\n   ```\n\n3. **Security Features**:\n   - SSL/TLS encryption for all communications\n   - Checksum verification for file integrity\n   - Automatic backup before updates\n   - Token-based authentication\n   - Secure version control\n\n4. **Network Architecture**:\n   ```\n   [App Owner] --> [Secure Update Server] --> [Client Apps]\n         |                  |                     |\n   Monitors Changes    SSL Encryption     Receives Updates\n   ```\n\n### Best Practices\n\n1. **Version Numbers**:\n   - Use semantic versioning (MAJOR.MINOR.PATCH)\n   - Example: 1.0.0, 1.1.0, 2.0.0\n\n2. **SSL Configuration**:\n   - Always use SSL certificates in production\n   - Keep certificates in a secure location\n   - Regularly rotate SSL certificates\n   - Use proper file permissions for key files\n\n3. **Server Security**:\n   - Configure firewall rules appropriately\n   - Use strong authentication tokens\n   - Monitor server logs for suspicious activity\n   - Keep SSL certificates up to date\n\n4. **Backup Strategy**:\n   - Keep automated backups enabled\n   - Test rollback functionality\n   - Verify application state after updates\n\n### Common Issues and Solutions\n\n1. **Version Conflicts**:\n   ```python\n   # Fix: Explicitly set version\n   RedXSecureUpdate(version=\"1.0.0\", force=True)\n   ```\n\n2. **Update Failures**:\n   - Check logs in `.redx/update_logs.txt`\n   - Verify file permissions\n   - Ensure no files are locked\n\n3. **SSL Certificate Issues**:\n   - Verify certificate path and permissions\n   - Check certificate expiration dates\n   - Ensure proper key permissions\n\n4. **Server Connection Issues**:\n   - Verify firewall settings\n   - Check port availability\n   - Confirm SSL configuration\n\n## Support\n\nFor issues and feature requests, please use our [GitHub issue tracker](https://github.com/redxdev/RedXSecureUpdater/issues).\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n",
    "bugtrack_url": null,
    "license": "MIT License\n        \n        Copyright (c) 2025 RedX Development\n        \n        Permission is hereby granted, free of charge, to any person obtaining a copy\n        of this software and associated documentation files (the \"Software\"), to deal\n        in the Software without restriction, including without limitation the rights\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n        copies of the Software, and to permit persons to whom the Software is\n        furnished to do so, subject to the following conditions:\n        \n        The above copyright notice and this permission notice shall be included in all\n        copies or substantial portions of the Software.\n        \n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n        SOFTWARE.\n        ",
    "summary": "A comprehensive Python package for secure automatic project updates",
    "version": "0.3.1",
    "project_urls": {
        "Documentation": "https://redxsecureupdater.readthedocs.io/",
        "Homepage": "https://github.com/redxdev/RedXSecureUpdater",
        "Issues": "https://github.com/redxdev/RedXSecureUpdater/issues",
        "Repository": "https://github.com/redxdev/RedXSecureUpdater.git"
    },
    "split_keywords": [
        "update",
        " secure",
        " automation",
        " version-control"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6e765f08513464be5148253fdb08c35afcf99a3c16cbae87bef225b29ef67552",
                "md5": "270fc1c8164c0d3c88d2a298c443ce41",
                "sha256": "cdecbbcecccbf22770fc4dd9c6696e53ddbd8aceefa21910610855478321f2d0"
            },
            "downloads": -1,
            "filename": "RedXSecureUpdater-0.3.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "270fc1c8164c0d3c88d2a298c443ce41",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 36187,
            "upload_time": "2025-01-28T09:01:38",
            "upload_time_iso_8601": "2025-01-28T09:01:38.146305Z",
            "url": "https://files.pythonhosted.org/packages/6e/76/5f08513464be5148253fdb08c35afcf99a3c16cbae87bef225b29ef67552/RedXSecureUpdater-0.3.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-28 09:01:38",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "redxdev",
    "github_project": "RedXSecureUpdater",
    "github_not_found": true,
    "lcname": "redxsecureupdater"
}
        
Elapsed time: 0.43065s