This implements archive import feature. The feature is divided in two main subfeatures: archive validation and archive import. Archive validation performs different validation on input user archive. This can be used without actually running import, e.g. when user wants to check the archive before import from the frontend. Validators may add messages and modify the archive. Validators are separated in two types: critical validators and non-critical validators. If validations by critical validators fail it means we can't import archive. If non-critical validations fail, we can import archive, but some warning messages are rendered. Also validators may change archive contents, e.g. when some entity can't be imported it may be removed from the archive. Validators' job is to take away complexity from the importer and perform the validations which are not implemented in other parts of the system, e.g. DB validations or diaspora_federation entity validations. Archive importer then takes the modified archive from the validator and imports it. In order to incapsulate high-level migration logic a MigrationService is introduced. MigrationService links ArchiveValidator, ArchiveImporter and AccountMigration. Also here is introduced a rake task which may be used by podmins to run archive import. |
||
|---|---|---|
| app | ||
| bin | ||
| config | ||
| db/migrate | ||
| docker/develop | ||
| features | ||
| graphics | ||
| lib | ||
| public | ||
| script | ||
| spec | ||
| tmp/pids | ||
| vendor | ||
| .codeclimate.yml | ||
| .editorconfig | ||
| .eslintrc | ||
| .foreman | ||
| .gitignore | ||
| .haml-lint.yml | ||
| .pronto.yml | ||
| .rspec | ||
| .rubocop.yml | ||
| .ruby-gemset | ||
| .ruby-version | ||
| .scss-lint.yml | ||
| .slugignore | ||
| .travis.yml | ||
| AUTHORS | ||
| browserlist | ||
| Changelog.md | ||
| CODE_OF_CONDUCT.md | ||
| config.ru | ||
| CONTRIBUTING.md | ||
| COPYRIGHT | ||
| FederationProcfile | ||
| Gemfile | ||
| Gemfile.lock | ||
| Guardfile | ||
| LICENSE | ||
| Procfile | ||
| Rakefile | ||
| README.md | ||
| redis-integration1.conf | ||
| redis-integration2.conf | ||
diaspora*
A privacy-aware, distributed, open source social network
master:
next-minor:
|
develop:
|
Project site | Wiki | Bugtracker | Discussions and Support | License | Authors
Installation
You don't have to install diaspora* to use the network. There are many servers connected to diaspora*s network which are open to anyone, and you can create an account on one of these servers. Have a look at our tips for finding a home, or you can just go straight to the list of open servers to sign up.
Want to own your data and install diaspora*? Whether you just want to try it out, want to install it on your server or want to contribute and need a development setup, our installation guides will get you started!
Questions?
Have a look at our FAQs for users, for pod administrators or for developers.
Still haven't found an answer? Talk to us! Read how we communicate. We're here to answer all your questions.
Contribute
To keep diaspora* growing and improving we need all help we can get. Whether you can contribute code, ideas, translations, bug reports or simply extend the community as a helpful user or pod administrator, your help is welcome!
Everyone interacting in diaspora’s codebases, issue trackers, chat rooms, the wiki, and the Discourse is expected to follow the diaspora* code of conduct.
Security
Found a security issue? Please disclose it responsibly. We have a team of developers listening to security@diasporafoundation.org. The PGP fingerprint is AB0D AB02 0FC5 D398 03AB 3CE1 6F70 243F 27AD 886A.