# Bareos REST API using fastAPI and python-bareos
Experimental and subject to enhancements and changes.
This is an experimental backend for development purposes.
It provides a REST API using fastapi and python-bareos to connect to
a Bareos director.
* https://fastapi.tiangolo.com/
* https://www.openapis.org/
## Guide
### Installation
We recommend to create a dedicated Python environment for the installation in an own directory:
```
python3 -m venv env
# Activate the virtual environment inside the directory
source env/bin/activate
# Install dependencies into the virtual environment
pip install bareos-restapi
```
Note: The optional module _sslpsk_ can be installed manually, if you want encrypted communication between the API and the Bareos director.
### Configuration
The module directory contains a sample ini-file. Change into this directory (something like */lib/python3.x/site-packages/bareosRestapiModels* on most operating systems) and copy _api.ini.sample_ to _api.ini_ and adapt it to your director. Make sure to generate an own secret-key for the _JWT_ section.
Your director configuration in _api.ini_ should look like:
```
[Director]
Name=bareos-dir
Address=127.0.0.1
Port=9101
```
Note: you will need a *named console* (user/password) to acces the Bareos director using this API. Read more about Consoles here:
https://docs.bareos.org/Configuration/Director.html#console-resource
### Start the backend server
From inside the module directory run:
```
uvicorn bareos-restapi:app --reload
```
* Serve the Swagger UI to explore the REST API: http://127.0.0.1:8000/docs
* Alternatively you can use the redoc format: http://127.0.0.1:8000/redoc
### Browse
The Swagger UI contains documentation and online-tests. Use "authorize" to connect to your Bareos director using a named console. Read here to learn how to configure
a named console: https://docs.bareos.org/Configuration/Director.html#console-resource
The Swagger documentation also contains CURL statements for all available endpoints.
## Future work
The API will be extended by some methods provided by the Bareos console, that are not yet implemented. It is also planned to add delete / update options for configuration in the director and REST API. If you are interested in support and / or funding enhancements, please visit https://www.bareos.com
TODO:
- define and document response model
- add possibility to connect to a choice of directors
- add start-script with ini-file name as parameter
Raw data
{
"_id": null,
"home_page": "https://github.com/bareos/bareos/",
"name": "bareos-restapi",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "bareos,REST API",
"author": "Bareos Team",
"author_email": "packager@bareos.com",
"download_url": "https://files.pythonhosted.org/packages/7b/d1/0b749dacfcebcac60f84c88ceb4822c56ef1caf9cf97f67d4a5d60acdac3/bareos-restapi-23.0.2.tar.gz",
"platform": null,
"description": "# Bareos REST API using fastAPI and python-bareos\n\nExperimental and subject to enhancements and changes.\n\nThis is an experimental backend for development purposes.\n\nIt provides a REST API using fastapi and python-bareos to connect to\na Bareos director.\n\n* https://fastapi.tiangolo.com/\n* https://www.openapis.org/\n\n## Guide\n\n### Installation\n\nWe recommend to create a dedicated Python environment for the installation in an own directory:\n\n```\npython3 -m venv env\n# Activate the virtual environment inside the directory\nsource env/bin/activate\n# Install dependencies into the virtual environment\npip install bareos-restapi\n```\n\nNote: The optional module _sslpsk_ can be installed manually, if you want encrypted communication between the API and the Bareos director.\n\n### Configuration\n\nThe module directory contains a sample ini-file. Change into this directory (something like */lib/python3.x/site-packages/bareosRestapiModels* on most operating systems) and copy _api.ini.sample_ to _api.ini_ and adapt it to your director. Make sure to generate an own secret-key for the _JWT_ section.\n\nYour director configuration in _api.ini_ should look like:\n```\n[Director]\nName=bareos-dir\nAddress=127.0.0.1\nPort=9101\n```\n\nNote: you will need a *named console* (user/password) to acces the Bareos director using this API. Read more about Consoles here:\nhttps://docs.bareos.org/Configuration/Director.html#console-resource\n\n\n### Start the backend server\n\nFrom inside the module directory run:\n\n```\nuvicorn bareos-restapi:app --reload\n```\n\n* Serve the Swagger UI to explore the REST API: http://127.0.0.1:8000/docs\n* Alternatively you can use the redoc format: http://127.0.0.1:8000/redoc\n\n\n### Browse\nThe Swagger UI contains documentation and online-tests. Use \"authorize\" to connect to your Bareos director using a named console. Read here to learn how to configure\na named console: https://docs.bareos.org/Configuration/Director.html#console-resource\n\nThe Swagger documentation also contains CURL statements for all available endpoints.\n\n## Future work\n\nThe API will be extended by some methods provided by the Bareos console, that are not yet implemented. It is also planned to add delete / update options for configuration in the director and REST API. If you are interested in support and / or funding enhancements, please visit https://www.bareos.com\n\nTODO: \n- define and document response model\n- add possibility to connect to a choice of directors\n- add start-script with ini-file name as parameter\n",
"bugtrack_url": null,
"license": "AGPLv3",
"summary": "REST API for Bareos console access.",
"version": "23.0.2",
"project_urls": {
"Homepage": "https://github.com/bareos/bareos/"
},
"split_keywords": [
"bareos",
"rest api"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e31c4d9fdea8f8b20b71aabbeaf8bc9c3f298cfdc703d610c65630eed463e951",
"md5": "623a0e02c20007790cc7687f06f48169",
"sha256": "e75a6801baad2dc125cc565f959506d19deeb008b07226987e92dbfa9f8e7f5d"
},
"downloads": -1,
"filename": "bareos_restapi-23.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "623a0e02c20007790cc7687f06f48169",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 41455,
"upload_time": "2024-02-28T13:21:57",
"upload_time_iso_8601": "2024-02-28T13:21:57.575483Z",
"url": "https://files.pythonhosted.org/packages/e3/1c/4d9fdea8f8b20b71aabbeaf8bc9c3f298cfdc703d610c65630eed463e951/bareos_restapi-23.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7bd10b749dacfcebcac60f84c88ceb4822c56ef1caf9cf97f67d4a5d60acdac3",
"md5": "cd0d113077c5ae2413edb753fecb1721",
"sha256": "7432aaf225126ec4c7ff7763228692699bfed7b87656935259f4f9cd29ecf9de"
},
"downloads": -1,
"filename": "bareos-restapi-23.0.2.tar.gz",
"has_sig": false,
"md5_digest": "cd0d113077c5ae2413edb753fecb1721",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 41996,
"upload_time": "2024-02-28T13:21:59",
"upload_time_iso_8601": "2024-02-28T13:21:59.351546Z",
"url": "https://files.pythonhosted.org/packages/7b/d1/0b749dacfcebcac60f84c88ceb4822c56ef1caf9cf97f67d4a5d60acdac3/bareos-restapi-23.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-28 13:21:59",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "bareos",
"github_project": "bareos",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "bareos-restapi"
}