This is the backend of SONATA's web-based service and function descriptor editor. It serves as the data storage for the editor and interacts with all other services that are needed to create, update and release SONATA Service and VNF descriptors. It is designed to be used with the son-editor-frontend but because all interaction and communication is taking place through a RESTful API, it is possible to be used with other user interfaces.
The editor (frontend and backend) can be installed and deployed as single Docker container and a docker-compose script.
- Since the editor uses OAuth to authenticate its users, a OAuth application token is required to run it. To retrieve such a token (from GitHub), go to GitHub Settings > OAuth applications and 'Register a new application'.
- Chose an application name:
SONATA Editor
- Configure the URL of your installation:
http://localhost/
orhttp://your-domain.com
- Configure the authentication callback URL:
http://localhost/backend/login
orhttp://your-domain.com/backend/login
Save
and collect the generatedClientID
andClientSecret
for step 4
- Chose an application name:
- Clone this repository:
git clone https://github.com/sonata-nfv/son-editor-backend
- Switch to
son-editor-backend
folder:cd son-editor-backend/
- Add GitHub OAuth
ClientID
andClientSecret
toconfig.yaml
vim config.yaml
- Build and run container:
docker-compose up
Open your web browser and point to your server / local machine, e.g., http://localhost/
and login to the editor using your GitHub account.
We recommend using venv. If you have setup your Python 3 environment, open a shell in your virtual environment and install son-cli:v2.
pip install git+https://github.com/sonata-nfv/son-cli.git
python setup.py install
python setup.py develop
To re-build the container:
- Do
docker-compose build --no-cache
- Configuration file used during tests:
src/son_editor/config.yaml
- Run tests:
python setup.py test
All SONATA projects are automatically tested with SONATA's Jenkins CI environment. But this editor is an exception to this and uses a Travis CI job that is configured in .travis
.
- son-cli >= 2.1
- flask-restplus ==0.9.2
- flask == 0.12
- sqlalchemy == 1.1.6
- requests == 2.13.0
- pyaml == 16.12.2
Contributing to the son-editor is really easy. You must:
- Clone this repository;
- Work on your proposed changes, preferably through submiting issues;
- Submit a Pull Request;
- Follow/answer related issues (see Feedback-Chanel, below).
You can find the editor's manual here.
The server code is documented using sphinx: documentation.
Son-editor is published under Apache 2.0 license. Please see the LICENSE file for more details.
The following lead developers are responsible for this repository and have admin rights. They can, for example, merge pull requests.
- Manuel Peuster (https://github.com/mpeuster)
- Hadi Razzaghi Kouchaksaraei (https://github.com/hadik3r)
- Sevil Dräxler (https://github.com/mehraghdam)
- Jonas Manuel
- Christian Korfmacher
- Linghui Luo
- Surendra Kulkarni
- You may use the mailing list [email protected]
- GitHub issues