Changes

Modularisation

490 bytes added, 15:24, 5 January 2015
/* schema */
* '''api''': REST Application Programming Interface.
* '''cli''': A command Line Interface, which uses the REST API to read or write data.
* '''docs''': The self-service module documentation.
* '''helpers''': Helper scripts and programmes, like notifications (quota, backup failed, rsnapshot, ...).
* '''provisioningprov-<SERVICE>-<TYPE>''': Scripts and programmes to provision services.
* '''web''': Ajax based web interface.
** '''cli''': Bash or Perl.
** '''helpers''': Bash or Perl. Other languages possible.
** '''provisioningprov-<SERVICE>-<TYPE>''': Perl
** '''web''': JavaScript Framework AngularJS (with HTML5).
/api # REST Application Programming Interface.
/cli # A command Line Interface, which uses the REST API to read or write data.
/docs # The self-service module documentation.
/examples # Example scripts for proof of concept and similar scripts.
/helpers # Helper scripts and programmes, like notifications (quota, backup failed, rsnapshot, ...).
/provisioning # Scripts and programmes to provision services.
/schema # Description, validation specification and documentation of the REST API.
/web # Ajax based web interface.
/LICENSE # The license the self-service module is released under.
/README.md # A simple readme file containing an overview and how to install as the absolute minimum.
</pre>
* A simple readme file containing an overview and how to install as the absolute minimum.
* Structure according to best practice of the programming language or framework (a separation of configuration and code would be nice).
* Tests A test directory (Unit-Tests, Test-Cases, Test-Data, ...).
* Documentation.
 
=== schema ===
The following shows how a '''schema''' directory structure could look like.
<pre>
/schema # Description, validation specification and documentation of the REST API.
/schema/core.schema.json # Every module has a master file, which includes all json files (the name is derived from the Git Repo module name)
/schema/base.schema.json # Type definitions.
/schema/reseller.schema.json # Per resource on file.
/schema/people.schema.json #
/schema/README.md # Information how the schema file(s) can be used and how the documentation can be extracted.
</pre>
=== helpers ===
</pre>
=== provisioning schema ===The following shows how a '''provisioningschema''' directory structure could look like.<pre>/schema # Description, validation specification and documentation of the REST API./schema/core.schema.json # Every module has a master file, which includes all json files (the name is derived from the Git Repo module name)/schema/base.schema.json # Type definitions./schema/reseller.schema.json # Per resource on file./schema/people.schema.json # /schema/README.md # Information how the schema file(s) can be used and how the documentation can be extracted.</pre> === prov-<SERVICE>-<TYPE> ===The following shows how a '''prov-<SERVICE>-<TYPE>''' directory structure could look like. The following example is done with '''prov-backup-rsnapshot'''.
<pre>
/provisioning/provisioning prov-backup-rsnapshot # Scripts and programmes to provision services./provisioningprov-backup-rsnapshot/bin # Binary / executable scripts and programmes./provisioningprov-backup-rsnapshot/etc # Configuration files and directories./provisioningprov-backup-rsnapshot/etc/Provsioning #/provisioningprov-backup-rsnapshot/etc/Provsioning/Backup #/provisioningprov-backup-rsnapshot/lib # Provisioning Perl-Modules for a dedicated Service (for example KVM.pm or rsnapshot.pm)/provisioningprov-backup-rsnapshot/lib/perl #/provisioningprov-backup-rsnapshot/lib/perl/Provisioning #/provisioningprov-backup-rsnapshot/lib/perl/Provisioning/Backup #/provisioningprov-backup-rsnapshot/lib/perl/Provisioning/Backup/Rsnapshot # /provisioningprov-backup-rsnapshot/libexec #/provisioningprov-backup-rsnapshot/test # Tests (CLI, Unit-Tests, ...): test.sh/provisioningprov-backup-rsnapshot/README.md # A simple readme file containing an overview and how to install as the absolute minimum.
</pre>
[[Category:Development]][[Category:Documentation]]
SLB, editor, reviewer
3,368
edits