diff --git a/functional_tests/features/monkeysphere.feature b/functional_tests/features/monkeysphere.feature index 4abaca68c..deaf54741 100644 --- a/functional_tests/features/monkeysphere.feature +++ b/functional_tests/features/monkeysphere.feature @@ -15,7 +15,7 @@ # along with this program. If not, see . # -@apps @monkeysphere +@apps @monkeysphere @backups Feature: Monkeysphere Import and publish OpenPGP keys for SSH and HTTPS keys @@ -39,3 +39,12 @@ Scenario: Publish SSH keys Scenario: Publish HTTPS keys Given the HTTPS key for mydomain.example is imported in monkeysphere Then I should be able to publish HTTPS key for mydomain.example in monkeysphere + +Scenario: Backup and restore monkeysphere + When I import SSH key for mydomain.example in monkeysphere + And I import HTTPS key for mydomain.example in monkeysphere + And I create a backup of the monkeysphere app data + And I export the monkeysphere app data backup + And I restore the monkeysphere app data backup + Then the SSH key should imported for mydomain.example in monkeysphere + And the HTTPS key should imported for mydomain.example in monkeysphere diff --git a/plinth/modules/monkeysphere/__init__.py b/plinth/modules/monkeysphere/__init__.py index 7e33216c2..f88b3d476 100644 --- a/plinth/modules/monkeysphere/__init__.py +++ b/plinth/modules/monkeysphere/__init__.py @@ -22,6 +22,8 @@ from django.utils.translation import ugettext_lazy as _ from plinth.menu import main_menu +from .manifest import backup + version = 1 managed_packages = ['monkeysphere'] diff --git a/plinth/modules/monkeysphere/manifest.py b/plinth/modules/monkeysphere/manifest.py new file mode 100644 index 000000000..b1fa622bc --- /dev/null +++ b/plinth/modules/monkeysphere/manifest.py @@ -0,0 +1,30 @@ +# +# This file is part of FreedomBox. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +""" +Application manfiest for monkeysphere. +""" + +from plinth.modules.backups.api import validate as validate_backup + +backup = validate_backup({ + 'config': { + 'directories': ['/etc/monkeysphere/'] + }, + 'secrets': { + 'directories': ['/var/lib/monkeysphere/'] + } +})