keyvault-llm


Namekeyvault-llm JSON
Version 0.1.4.dev0 PyPI version JSON
download
home_pagehttps://github.com/yourusername/keyvault
SummaryA simple key management system for development environments
upload_time2024-09-15 21:39:57
maintainerNone
docs_urlNone
authorLorenzo Toscano
requires_python>=3.7
licenseMIT License Copyright (c) 2023 Your Name 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 key management development security
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # KeyVault

## Introduction

Simple, fast, convenient! KeyVault is a lightweight solution for centralizing the management of cloud service keys, particularly in development environments. It provides a centralized point for storing and retrieving API keys and secrets, streamlining the development process and enhancing security practices.

Key features and benefits include:

- Centralized storage of API keys and secrets
- Easy integration with development workflows
- Simplified key management across multiple projects
- Improved security through centralized access control
- Configurable storage location for secrets
- Production-ready with Waitress WSGI server

## Features

- Secure storage of key-value pairs
- RESTful API for key retrieval and listing
- Python client for easy integration
- Configurable secret storage location
- Logging and improved error handling
- Waitress WSGI server for production deployment

## Prerequisites

- Python 3.7+

## Installation

You can install KeyVault using pip:

```bash
pip install keyvault-llm
```

Or directly from the GitHub repository:

```bash
pip install git+https://github.com/ltoscano/keyvault.git
```

## Quickstart

1. Create a configuration file:

   ```json
   {
     "OPENAI_API_KEY": "your-api-key-here",
     "OTHER_KEY": "another-key-value"
   }
   ```

   Save this as `config.json` in a secure location.

2. Start the KeyVault server:

   ```bash
   python -m keyvault_llm.server --config /path/to/config.json
   ```

   By default, the server will run on `http://localhost:38680`. You can change the host and port using the `--host` and `--port` options.

3. Use the client to interact with the server:

   ```python
   from keyvault_llm.client import KeyVaultClient
   import logging

   logging.basicConfig(level=logging.INFO)

   client = KeyVaultClient("http://localhost:38680")

   try:
       # Get a specific key
       api_key = client.get_key('OPENAI_API_KEY')
       print("API Key:", api_key)

       # List all keys
       keys = client.list_keys()
       print("Available keys:", keys)
   except Exception as e:
       print(f"An error occurred: {str(e)}")
   ```

## Configuration

KeyVault can be configured using command-line arguments when starting the server:

- `--config`: Path to the config.json file (default: ~/.keyvault/config.json)
- `--host`: Host to bind the server to (default: 0.0.0.0)
- `--port`: Port to run the server on (default: 38680)

Example:

```bash
python -m keyvault_llm.server --config /path/to/config.json --host 127.0.0.1 --port 8080
```

## Security Considerations

KeyVault is designed for use in development environments. While it can be used in production with proper security measures, it's essential to consider the following:

1. **Access Control**: Ensure that the KeyVault server is only accessible within your trusted network.
2. **Secure Configuration**: Store your `config.json` file in a secure location with appropriate file permissions.
3. **HTTPS**: For production use, configure KeyVault behind a reverse proxy with HTTPS enabled.
4. **Regular Updates**: Keep your KeyVault installation up to date with the latest security patches.

## Contributing

Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests.

## 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/yourusername/keyvault",
    "name": "keyvault-llm",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "key management, development, security",
    "author": "Lorenzo Toscano",
    "author_email": "Lorenzo Toscano <lorenzo.toscano@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/ef/16/a84ac369a1e0e1472685154e70937b56d7093f28dd3bb62979e49aaa4ab0/keyvault_llm-0.1.4.dev0.tar.gz",
    "platform": null,
    "description": "# KeyVault\n\n## Introduction\n\nSimple, fast, convenient! KeyVault is a lightweight solution for centralizing the management of cloud service keys, particularly in development environments. It provides a centralized point for storing and retrieving API keys and secrets, streamlining the development process and enhancing security practices.\n\nKey features and benefits include:\n\n- Centralized storage of API keys and secrets\n- Easy integration with development workflows\n- Simplified key management across multiple projects\n- Improved security through centralized access control\n- Configurable storage location for secrets\n- Production-ready with Waitress WSGI server\n\n## Features\n\n- Secure storage of key-value pairs\n- RESTful API for key retrieval and listing\n- Python client for easy integration\n- Configurable secret storage location\n- Logging and improved error handling\n- Waitress WSGI server for production deployment\n\n## Prerequisites\n\n- Python 3.7+\n\n## Installation\n\nYou can install KeyVault using pip:\n\n```bash\npip install keyvault-llm\n```\n\nOr directly from the GitHub repository:\n\n```bash\npip install git+https://github.com/ltoscano/keyvault.git\n```\n\n## Quickstart\n\n1. Create a configuration file:\n\n   ```json\n   {\n     \"OPENAI_API_KEY\": \"your-api-key-here\",\n     \"OTHER_KEY\": \"another-key-value\"\n   }\n   ```\n\n   Save this as `config.json` in a secure location.\n\n2. Start the KeyVault server:\n\n   ```bash\n   python -m keyvault_llm.server --config /path/to/config.json\n   ```\n\n   By default, the server will run on `http://localhost:38680`. You can change the host and port using the `--host` and `--port` options.\n\n3. Use the client to interact with the server:\n\n   ```python\n   from keyvault_llm.client import KeyVaultClient\n   import logging\n\n   logging.basicConfig(level=logging.INFO)\n\n   client = KeyVaultClient(\"http://localhost:38680\")\n\n   try:\n       # Get a specific key\n       api_key = client.get_key('OPENAI_API_KEY')\n       print(\"API Key:\", api_key)\n\n       # List all keys\n       keys = client.list_keys()\n       print(\"Available keys:\", keys)\n   except Exception as e:\n       print(f\"An error occurred: {str(e)}\")\n   ```\n\n## Configuration\n\nKeyVault can be configured using command-line arguments when starting the server:\n\n- `--config`: Path to the config.json file (default: ~/.keyvault/config.json)\n- `--host`: Host to bind the server to (default: 0.0.0.0)\n- `--port`: Port to run the server on (default: 38680)\n\nExample:\n\n```bash\npython -m keyvault_llm.server --config /path/to/config.json --host 127.0.0.1 --port 8080\n```\n\n## Security Considerations\n\nKeyVault is designed for use in development environments. While it can be used in production with proper security measures, it's essential to consider the following:\n\n1. **Access Control**: Ensure that the KeyVault server is only accessible within your trusted network.\n2. **Secure Configuration**: Store your `config.json` file in a secure location with appropriate file permissions.\n3. **HTTPS**: For production use, configure KeyVault behind a reverse proxy with HTTPS enabled.\n4. **Regular Updates**: Keep your KeyVault installation up to date with the latest security patches.\n\n## Contributing\n\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests.\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  Copyright (c) 2023 Your Name  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.",
    "summary": "A simple key management system for development environments",
    "version": "0.1.4.dev0",
    "project_urls": {
        "Homepage": "https://github.com/yourusername/keyvault"
    },
    "split_keywords": [
        "key management",
        " development",
        " security"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cab92cd10f3e075d129f32018368b3ad82c2b9318aa1f7bd5d33ffd1ca07069d",
                "md5": "8e73da67c116c4dbd556a86360eb8781",
                "sha256": "2aa797379f57d345476a8f51e3380fee5e5a67c8b8c4b1cac7401f52480fb786"
            },
            "downloads": -1,
            "filename": "keyvault_llm-0.1.4.dev0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8e73da67c116c4dbd556a86360eb8781",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 7553,
            "upload_time": "2024-09-15T21:39:56",
            "upload_time_iso_8601": "2024-09-15T21:39:56.080004Z",
            "url": "https://files.pythonhosted.org/packages/ca/b9/2cd10f3e075d129f32018368b3ad82c2b9318aa1f7bd5d33ffd1ca07069d/keyvault_llm-0.1.4.dev0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ef16a84ac369a1e0e1472685154e70937b56d7093f28dd3bb62979e49aaa4ab0",
                "md5": "a35e2f160b813c3658884f2ebd3ae73c",
                "sha256": "01f5442acbaa61f8281fdd70a24c024b086b753ff5cc87d2a90b38486f176506"
            },
            "downloads": -1,
            "filename": "keyvault_llm-0.1.4.dev0.tar.gz",
            "has_sig": false,
            "md5_digest": "a35e2f160b813c3658884f2ebd3ae73c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 9133,
            "upload_time": "2024-09-15T21:39:57",
            "upload_time_iso_8601": "2024-09-15T21:39:57.948333Z",
            "url": "https://files.pythonhosted.org/packages/ef/16/a84ac369a1e0e1472685154e70937b56d7093f28dd3bb62979e49aaa4ab0/keyvault_llm-0.1.4.dev0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-15 21:39:57",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "yourusername",
    "github_project": "keyvault",
    "github_not_found": true,
    "lcname": "keyvault-llm"
}
        
Elapsed time: 0.32479s