Metadata-Version: 2.1
Name: opsbox
Version: 0.1.2
Summary: AI-powered infrastructure management
Author-email: Opsbox Team <opsbox@gsudoers.com>
Project-URL: Homepage, https://example.com
Project-URL: Documentation, https://example.com
Project-URL: Repository, https://github.com/me/spam.git
Project-URL: Issues, https://github.com/me/spam/issues
Project-URL: Changelog, https://github.com/me/spam/blob/master/CHANGELOG.md
Classifier: Environment :: Console
Classifier: Programming Language :: Python :: 3
Classifier: Intended Audience :: Developers
Classifier: Topic :: System :: Systems Administration
Classifier: Topic :: Utilities
Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
Requires-Python: ==3.11.*
Description-Content-Type: text/markdown
License-File: LICENCE.txt
Requires-Dist: pluggy<2.0.0,>=1.5.0
Requires-Dist: loguru<0.8.0,>=0.7.2
Requires-Dist: pydantic<3.0.0,>=2.8.0
Requires-Dist: rich-argparse<2.0.0,>=1.5.2
Requires-Dist: requests<3.0.0,>=2.32.3
Requires-Dist: python-dotenv<2.0.0,>=1.0.1
Requires-Dist: llama-index<0.12.0,>=0.11.2
Requires-Dist: llama-index-llms-anthropic<0.4.0,>=0.3.0
Requires-Dist: toml<0.11.0,>=0.10.2
Requires-Dist: importlib-resources>=6.4.5
Provides-Extra: docs
Requires-Dist: mkdocs<2.0.0,>=1.6.0; extra == "docs"
Requires-Dist: mkdocstrings-python<2.0.0,>=1.10.5; extra == "docs"
Requires-Dist: mkdocstrings<0.26.0,>=0.25.1; extra == "docs"
Requires-Dist: pymdown-extensions<11.0.0,>=10.8.1; extra == "docs"
Provides-Extra: aws
Requires-Dist: opsbox-s3-checks>=0.1.2; extra == "aws"
Requires-Dist: opsbox-ec2-checks>=0.1.2; extra == "aws"
Requires-Dist: opsbox-elb-checks>=0.1.2; extra == "aws"
Requires-Dist: opsbox-aws-iam-checks>=0.1.2; extra == "aws"
Requires-Dist: opsbox-r53-checks>=0.1.2; extra == "aws"
Requires-Dist: opsbox-rds-checks>=0.1.2; extra == "aws"
Requires-Dist: opsbox-general-handler>=0.1.2; extra == "aws"
Requires-Dist: opsbox-rego-handler>=0.1.2; extra == "aws"

# Opsbox

**AI-Powered Infrastructure Management**

Welcome to Opsbox, the open-source platform that adds a dash of AI magic to your infrastructure management. With our flexible plugin system and policy-as-code approach using Rego, managing your infrastructure has never been this enjoyable!

## Features

- 🎛️ **Plugin System**: Customize and extend functionality with ease.
- 📝 **Policy-as-Code with Rego**: Define compliance checks and policies efficiently.
- 🤖 **AI Assistance**: Leverage AI models to analyze and process your infrastructure data.
- 💻 **Command-Line Interface**: An interactive CLI.
- 📚 **Documentation Support**: Generate and view documentation effortlessly using mkdocs.

## Installation

Ready to dive in? Let's get you set up!

### Prerequisites

- **Python 3.11**
- **uv**

### Step-by-Step

1. **Clone the Repository**

    ```bash
    git clone https://github.com/sudoersllc/Opsbox.git
    cd Opsbox
    ```

2. **Install with uv**

    We use [`uv`] for managing dependencies. If you don't have it installed, you can get it via pip:

    ```bash
    pip install uv
    ```

    Now, let's install Opsbox:

    ```bash
    uv sync
    ```

    This command will install all required dependencies specified in `pyproject.toml`.

## Running Opsbox

Time to see the magic in action!

Simply run:

```bash
python -m opsbox
```

This will launch Opsbox and display the CLI help along with available commands.

### Example Usage

Want to run a specific pipeline? Here's how:


```bash
python -m opsbox --modules your_input-your_optional_assistant-your_output --opa_upload_url http://your-opa-upload-url --opa_apply_url http://your-opa-apply-url
```

## Configuration

Opsbox is flexible when it comes to configuration. You can provide options via:

- **Command-Line Arguments**
- **Configuration Files**
- **Environment Variables**

### Using a Configuration File

Create a file named `.opsbox_conf.json` in your home directory:

```json
{
  "aws_access_key_id": "YOUR_ACCESS_KEY_ID",
  "aws_secret_access_key": "YOUR_SECRET_ACCESS_KEY",
  "aws_region": "YOUR_AWS_REGION",
  "opa_upload_url": "http://your-opa-upload-url",
  "opa_apply_url": "http://your-opa-apply-url"
}
```

### Command-Line Arguments

You can also provide configuration options directly through the command line:

```bash
python -m opsbox --modules example_module --aws_access_key_id YOUR_ACCESS_KEY_ID --aws_secret_access_key YOUR_SECRET_ACCESS_KEY --aws_region YOUR_AWS_REGION --opa_upload_url http://your-opa-upload-url --opa_apply_url http://your-opa-apply-url
```


## Let's Get Started!

Now that you're all set, it's time to unleash the power of AI on your infrastructure. Happy automating!
