Metadata-Version: 2.1
Name: exabgp_process
Version: 1.0.3
Summary: Process for ExaBGP, started by ExaBGP service
Author-email: Jiri Vrany <jiri.vrany@cesnet.cz>
License: MIT License
        
        Copyright (c) 2018 Jiri Vrany, Petr Adamec, Josef Verich, CESNET
        
        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.
Project-URL: Homepage, https://github.com/CESNET/exabgp-process
Keywords: exabgp,networking,BGP,process
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: System :: Networking
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pika
Requires-Dist: python-dotenv
Requires-Dist: loguru
Requires-Dist: click
Requires-Dist: flask


# ExaBGP Process Package

This application is a simple API that interfaces with the [ExaBGP service](https://github.com/Exa-Networks/exabgp/tree/main).

Each time this app receives a new command, it forwards the command to ExaBGP via stdout. The registered ExaBGP service monitors the stdout of this API application.

### Installation
You can install the package using pip:
```
pip install exabgp_process
```

### Configuration
Generate the configuration file and copy it to `/etc/exabgp/process.conf`. Be sure to set up the log directory and file in the config, and ensure the directory exists and is writable by the ExaBGP process:
```
exabgp-process --generate-config >> process.conf
mv process.conf /etc/exabgp/process.conf
```

### Add to ExaBGP Configuration
Include the following in your ExaBGP configuration:
```
process flowspec {
    run /usr/local/exabgp-process;
    encoder json;
}
```

The preferred setup uses RabbitMQ for message passing.

### Development and Testing
For development and testing, there is also an HTTP version available. However, please note that this web app lacks any security layer. Therefore, it's recommended to restrict access to localhost only.

For more information, refer to the [ExaBGP documentation](https://github.com/Exa-Networks/exabgp/wiki/Controlling-ExaBGP-:-possible-options-for-process).


### Changelog

1.0.3 - new format of message from server - json with keys: author, source, command. Author and source are for logging purposes, command is send to the process.
1.0.2 - switch to pyproject.toml for better description
