Merge branch 'master' of ssh://git.eclipse.org:29418/openk-usermodules/org.eclipse.openk-usermodules.gridFailureInformation.documentation
diff --git a/get_started.txt b/get_started.txt
index 6eac812..a40deb3 100644
--- a/get_started.txt
+++ b/get_started.txt
@@ -21,14 +21,21 @@
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *
 **********************************************************************
 
+Here you find a step-by-step instruction on how to build all documentation in this repository including:
+- architectureDocumentation.adoc
+- howtoBuild.adoc
+- howtoConfigure.adoc
+- howtoRun.adoc
+- userDocumentation.adoc
+At the end you have a pdf and a html version of each adoc (documentation).
 
 ---------------- REQUIREMENTS -------------
 * Java 1.8
 * Apache Maven 3.6.1
+* Graphviz
 
-
-IF you have this versions, check if you have set JAVA_HOME and M2_HOME.
-    - If yes: Ignore step 1 and 2
+If you meet this requirements, check if you have set JAVA_HOME and M2_HOME.
+    - If yes: Ignore step 1,2 and 3
     - If no: Follow the corresponding steps below
 
 
@@ -74,57 +81,20 @@
  Value of variable: <GRAPHVIZ_DIR>\bin
 
 -------------------- 4 ---------------------
-To get started with the project you have to clone gridFailureInformation backend and frontend projects.
-
-Backend <project_url>: https://git.eclipse.org/r/openk-usermodules/org.eclipse.openk-usermodules.gridFailureInformation.backend.git
-Frontend <project_url>: https://git.eclipse.org/r/openk-usermodules/org.eclipse.openk-usermodules.gridFailureInformation.frontend.git
-
-- Create a folder and do following for each of them
-- Open a cmd and navigate to the folder
-- use the command to create a clone of each project
-    § git clone <project_url>
-
-Developing only:
-- if you are going to develop, important is a switch to the develop branch
-    - navigate in the folder with the clone and switch to develop branch
-        $ git checkout <branch>
-- At the end just pull the actual version of the code
-    $ git pull origin <branch>
-
-
---------------------------
-Active Develop Branches: |
-Backend -> DEVELOP       |
-Frontend -> DEVELOP      |
--------------------------|
-Stable Branches: master  |
---------------------------
-
-
--------------------- 5 ---------------------
-Build the maven project
-
-The backend repository consists of several subprojects. The main backend is the
-"gfsBackService". Depending on the interfaces and the features you want to use, you
-need to build other subprojects as well:
--addressImport: Importing addresses from csv-files
--mailExport: Publish messages via e-mail
--stoerungsauskundtInteraces: Export and import messages from the site "stoerungsauskunft.de"
--others in future
-
-Building such a maven project, will produce a <project_name>.jar file, which is needed to run the project.
-- Open a command line and navigate to the root folder of the backend project
-- Use the following call to cleanly build and install artifacts into the local repository:
+Building the documentation:
+- Open a command line and navigate to the root folder of this project (same location of this very get_started.txt file)
+- Use the following call to cleanly build and install artifacts:
     $ mvn clean install
 
--------------------- 6 ---------------------
-Open and familiarize yourself with the project
-
-- if you successfully build the maven project you can find in /target/generated-docs all the documentations of this projects
+-------------------- 5 ---------------------
+If you successfully build the maven project you can find in /target/generated-docs all the documentations of this projects
+in pdf and html form, choose according to your liking:
     - "howtoBuild" -> here you can read how to build the whole (backend and frontend) project
-    - "howtoRun" -> here you can read how to run the Application
+    - "howtoConfigure" -> here you can read how to configure the Application
+    - "howtoRun" -> here you can read how to run/start the Application
     - "architectureDocumentation" -> here you can read about the architecture pf this module
 
+
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 NEXT STEP -> READ THE howtoBuild FILE             !
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
\ No newline at end of file
diff --git a/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc b/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc
index bc11abb..060ec30 100644
--- a/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc
+++ b/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc
@@ -1066,23 +1066,6 @@
 |5|power station name|String(255)
 |=========================================================
 
-=== Deployment of the application components
-
-==== Deployment of the frontend
-
-TODO:
-
-==== Deployment of the backend
-TODO:
-
-==== Deployment of the database
-The component "Flyway" is used to make to distribute structural
-or content related changes to the database.
-
-The database is built out of the scripts in the directory "db/migrations". Every sql
-script contains the complete db script for the contact base data database (in different versions).
-The highest version number indicates the currently valid script.
-
 ==== Configuration of the system
 
 ===== DB based configuration
@@ -1217,6 +1200,21 @@
 This automatically triggers the build and the deployment on the
 Q-environment.
 
+==== Deployment of the frontend
+
+TODO:
+
+==== Deployment of the backend
+TODO:
+
+==== Deployment of the database
+The component "Flyway" is used to make to distribute structural
+or content related changes to the database.
+
+The database is built out of the scripts in the directory "db/migrations". Every sql
+script contains the complete db script for the contact base data database (in different versions).
+The highest version number indicates the currently valid script.
+
 <<<
 
 == Design decisions
diff --git a/src/main/asciidoc/howto/howtoBuild.adoc b/src/main/asciidoc/howto/howtoBuild.adoc
index 193ce1b..f9a3aea 100644
--- a/src/main/asciidoc/howto/howtoBuild.adoc
+++ b/src/main/asciidoc/howto/howtoBuild.adoc
@@ -12,6 +12,8 @@
 
 :lang: en
 :encoding: utf-8
+:sectanchors:
+:numbered:
 <<<
 
 IMPORTANT: Please be sure that you have first *Portal (Auth n Auth)* and *ContactBaseData* installed and configured!
@@ -19,9 +21,62 @@
 == Requirements
 * Node.js 12.14.0
 * Angular-CLI
+* Java 1.8
+* Apache Maven
+
+== Chekout the project
+To get started with the project you have to clone gridFailureInformation backend and frontend projects.
+
+Backend repository url <project_url>: +
+https://git.eclipse.org/r/openk-usermodules/org.eclipse.openk-usermodules.gridFailureInformation.backend.git +
+Frontend repository url <project_url>: +
+https://git.eclipse.org/r/openk-usermodules/org.eclipse.openk-usermodules.gridFailureInformation.frontend.git +
+
+- Create a folder and do following for each of them
+- Open a cmd and navigate to the folder
+- use the command to create a clone of each project +
+§ git clone <project_url>
+
+.Developing only:
+If you are going to develop, important is a switch to the develop branch.
+
+- Navigate in the folder with the clone and switch to develop branch: +
+----
+$ git checkout <branch>
+----
+- At the end just pull the actual version of the code: +
+----
+$ git pull origin <branch>
+----
+
+Active Develop Branches: +
+Backend -> DEVELOP +
+Frontend -> DEVELOP +
+Stable Branches -> master
+
 
 == How to build the Backend
-To build the backend you need to have installed Apache Maven and Java (look at `/deploy/`*get_started.txt*).
+
+The backend repository consists of several subprojects. The main backend is the
+"gfsBackendService". Depending on the interfaces and the features you want to use, you
+need to build other subprojects as well:
+
+[horizontal]
+addressImport:: Importing addresses from csv-files
+mailExport:: Publish messages via e-mail
+stoerungsauskundtInteraces:: Export and import messages from the site "stoerungsauskunft.de"
+SARIS-Interface:: Import messages from SARIS
+SAMO-Interface:: Import messages from SAMO
+other interfaces in future:: ...
+
+
+Building such a maven project, will produce a <project_name>.jar file, which is needed to run the project.
+
+- Open a command line and navigate to the root folder of the backend project
+- Use the following call to cleanly build and install artifacts into the local repository: +
+----
+$ mvn clean install
+----
 
 == How to build the Frontend
 
@@ -58,7 +113,7 @@
 ----
 {blank}
 
-TIP: Next Step -> Read the *grid-failure-information_howtoRun* file!
+TIP: Next Step -> Read the *howtoRun* file!
 
 == How to build the SIT-Web-FE (Map- and Table-Component)
 === Prerequirements
diff --git a/src/main/asciidoc/howto/howtoConfigure.adoc b/src/main/asciidoc/howto/howtoConfigure.adoc
new file mode 100644
index 0000000..638d7ff
--- /dev/null
+++ b/src/main/asciidoc/howto/howtoConfigure.adoc
@@ -0,0 +1,313 @@
+= openKonsequenz - How to configure the modules
+
+:Date: 2020-03-24
+:Revision: 1
+
+:icons:
+:source-highlighter: highlightjs
+:highlightjs-theme: solarized_dark
+
+:imagesdir: ../img
+:iconsdir: ../img/icons
+
+:lang: en
+:encoding: utf-8
+:sectanchors:
+:numbered:
+:xrefstyle: full
+
+<<<
+
+IMPORTANT: Please be sure that you have first *Portal (Auth n Auth)* and *ContactBaseData* installed and configured!
+
+
+== Prerequisites
+* *howToBuild* documentation read and steps completed
+* *howToRun* documentation read
+* *application.yml* was copied from [microservice]/src/main/resources/application.yml next to the *.jar into the deployment folder
+of each microservice you want to use
+
+CAUTION: Each [microservice] has its *own application.yml*
+
+== Configuration of the system
+
+The backend services are configured in *application.yml* files. If there is an *application.yml* file next to the
+**.jar* file of the microservice this very *application.yml* has precedence over the default *application.yml* which resides
+inside the jar file. In other words if there is no *application.yml* next to the jar file the default one inside is beeing used.
+For reasons of convenience we use the method config-file outside and next to the jar.
+After editing an *application.yml* file, you have to restart the microservice for changes to take effect.
+
+Yml-files can be divided into different configuration profiles.
+When starting the backend-service one has the possibility to specify
+the active profile, if no profile is set the default is beeing used.
+The default profile is the one which you most likely want to configure and which you are going
+to use. If you want different or more profiles see the following link for further details:
+https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-profiles
+
+CAUTION: _Credentials (Username and Password)_ +
+All credentials in this yml-files are hidden. Environment variables are used to set
+them. Get an environment variable in a yml-file this way `${ENVIRONEMT_VARIABLE}`.
+To successfully run the backend service either set the environment variable for the using platform
+or replace them in the yml-file.
+
+
+=== Periodically executed jobs - Cron expression
+
+To execute periodically occuring jobs, Spring uses a form of cron expression.
+They don't follow the same format as UNIX cron expressions.
+
+Spring Cron expression consists of six sequential fields:
+----
+second, minute, hour, day of month, month, day(s) of week
+----
+
+.Explenation
+[options="header,footer"]
+|=======================
+|syntax |means            |example        | explanation
+|*      |match any        |"* * * * * *"  | do always
+|*/x    |every x          |"*/5 * * * * *"| do every five seconds
+|?      |no specification |"0 0 0 24 12 ?"| do every Christmas Day
+|=======================
+
+.Examples
+[options="header,footer"]
+|=======================
+|syntax                 |means
+|"0 0 * * * *"          |the top of every hour of every day.
+|"0 */1 * ? * *"        |every minute starting at second 0.
+|"0 */5 * ? * *"        |every 5 minutes starting at second 0.
+|"*/10 * * * * *"       |every ten seconds.
+|"0 0 8-10 * * *"       |8, 9 and 10 o'clock of every day.
+|"0 0/30 8-10 * * *"    |8:00, 8:30, 9:00, 9:30 and 10 o'clock every day.
+|"0 0 9-17 * * MON-FRI" |on the hour nine-to-five weekdays
+|"0 0 0 24 12 ?"        |every Christmas Day at midnight
+|=======================
+
+You can use the following generator but keep in mind to *not use the year*.
+The spring expression hast to consist of six fields only:
+
+https://www.freeformatter.com/cron-expression-generator-quartz.html
+
+[#secureEndpoints]
+=== Secure Endpoints
+
+The main backend (gfsBackendService) is secured by JWTs (JSON-Web-Tokens).
+The following services are secured by "Basic Authentication":
+
+* addressImport
+* mailExport
+* stoerungsauskunftInterface
+* SARISInterface
+
+For each of them you will find the following parameters to configure the "Basic Authentication" in the
+corresponding *application.yml*:
+
+* *security.endpoint.user* Username for the secure endpoint
+* *security.endpoint.password* Password for the secure endpoint
+
+SAMOInterface has no public endpoints and therefore doesn't need to be secured.
+
+[NOTE]
+Besides the initial manual import of all addresses, this endpoints (in combination with Swagger) are primarily a convenient way to
+test the functionality of the application.
+
+
+=== Configuration of each service
+
+The following services has to be configured and its parameters will be explained in the next sections:
+
+* <<configuration-gfsBackendService>>
+* <<configuration-addressImport>>
+* <<configuration-mailExport>>
+* Interfaces
+** <<configuration-stoerungsauskunftInterface>>
+** <<configuration-SAMOInterface>>
+** <<configuration-SARISInterface>>
+
+Some parameters explained in <<configuration-gfsBackendService>> below, are used in other services
+as well an won't be explained again (for example <<configuration-section-rabbit_mq>>).
+
+[#configuration-gfsBackendService]
+==== Configuration of gfsBackendService (Main Backend)
+
+
+* *spring.datasource* configuration section for the database connection
+* *flyway.enabled* If enabled=true then the database migrations
+will automatically performed when starting the application
+(this parameter should normally be set to "false"
+* *server.port* Port on which this microservice is deployed on (DEPLOYMENT_PORT). (E.g. for gfsBackendService: 9165)
+* *server.max-http-header-size* Maximum size for the http-headers
+* *jwt.tokenHeader* Name of the http-header which carries the authentication-token.
+(should be "Authorization")
+* *jwt.useStaticJwt* If set to "true" then the backend will use *jwt.staticJwt*
+as Authorization-token. (This won't work for calls to other modules
+like the Auth'n'Auth-Modul, because the token will be out of date)
+* *process.definitions.classification.plannedMeasureDbid* Id in DB of "geplante Maßnahme" of table ref_failure_classification.
+This is needed for the proccess grid.
+* *reminder.status-change.minutes-before* Send reminder mail to publisher distribution group x minutes before planned end date
+of the gridfailureinformation. (value in minutes, Example: 1440)
+* *export-to-dmz.enabled* Switch to export periodically published gridfailureinformations  to the external "Table/Map-Web-Component"
+(true or false)
+* *export-to-dmz.cron* Cron-expression for the export job (above). (Example: 0 */10 * ? * *)
+* *swagger.enabled* Switch to enabled/disable Swagger (Endpoints). (true/false)
+
+
+
+[#configuration-section-rabbit_mq, reftext="_RabbitMQ configuration_"]
+_RabbitMQ configuration_
+
+* *rabbitmq.host* RabbitMQ-Server (for example "localhost")
+* *rabbitmq.port* Port of the RabbitMQ-Server (for example "5672")
+* *rabbitmq.username* Username for the technical RabbitMQ user
+* *rabbitmq.password* Password the the technical RabbitMQ user
+* *rabbitmq.routingkey* Routing key for the import queue
+* *rabbitmq.exchangename*: Exchange name for the import queue
+* *rabbitmq.importExchange*: Exchange name for the import queue
+* *rabbitmq.importQueue* Queuename for the import queue (will be created by the backend)
+* *rabbitmq.importkey* Routing key for the import queue
+* *rabbitmq.exportExchange*: Exchange name for the export queue
+* *rabbitmq.exportQueue*: Queuename for the export queue (will be created by the backend)
+* *rabbitmq.exportKey*: Exchange name for the export queue
+* *rabbitmq.isMailType*: Should this channel be treated as a mail channel? +
+If true messages of this channel will be sent via email.
+
+*exportExchange* in the main backend is further divided into *channels* functionality stays the same as describe above.
+
+
+[#configuration-section-settings]
+_UI setting_
+
+* *overviewMapInitialZoom*: Initial zoom-factor for the display of the overview map (default is 10)
+* *detailMapInitialZoom*: Inital zoom-factor for the display of map in the detail view (for example 10)
+* *overviewMapInitialLatitude*: Initial latitude for the overview map (for example 49.656634)
+* *overviewMapInitialLongitude*: Initial longitude for the overview map (for example 8.423207)
+* *daysInPastToShowClosedInfos*: Days in the past, before a closed failure information will not be shown any more (for example 365)
+* *dataExternInitialVisibility*: *show* or *hide* data in the external map or table unless a postcode has been entered
+
+[#configuration-section-mailtemplates]
+_Mail settings (Default templates)_
+
+
+* *emailSubjectPublishInit*: Template for the subject of the publishing e-mail
+* *emailContentPublishInit*: Template for the body of the publishing e-mail
+* *emailSubjectUpdateInit*: Template for the subject of the update e-mail
+* *emailContentUpdateInit*: Template for the body of the update e-mail
+* *emailSubjectCompleteInit*: Template for the subject of the completed e-mail
+* *emailContentCompleteInit*: Template for the body of the completed e-mail
+* *distribution-group-publisher.name*: Name of the distribution group for the publisher (Example: "Veröffentlicher")
+* *distribution-group-publisher.distribution-text*: Template for the body of the e-mail
+which is sent to the publisher distribution group
+
+[#configuration-section-visibility-of-fields]
+_Field visibility settings_
+
+Please configure the visibilty of fields in this section using "show" or "hide"
+
+* *visibilityConfiguration.fieldVisibility*: Here you can set the visibility of fields in the detail mask of the Failure
+Information
+* *visibilityConfiguration.tableInternColumnVisibility*: Here you can set the visibility of column in the
+internal table
+* *visibilityConfiguration.tableExternColumnVisibility*: Use "show" or "hide" to toggle the visibility of columns
+in the external table
+* *visibilityConfiguration.mapExternTooltipVisibility*: Here you can define which column shall be shown or hidden
+in the tooltips of the external map
+
+[#configuration-section-services]
+_Services configuration_
+
+* *services.authNAuth.name* Name for  Auth'n'Auth-Service-Service (for example "authNAuthService")
+* *services.authNAuth.technical-username* Technical user for Auth'n'Auth-Service-Service
+* *services.authNAuth.technical-userpassword* Password for technical-user for Auth'n'Auth-Service-Service
+* *services.contacts.name* Name for ContactBaseData-Service (for example "contactService")
+* *services.contacts.communicationType.mobile* Designation of mobile phone number as communication type in
+ContactBaseData-Service (for example "Mobil")
+* *services.contacts.useModuleNameForFilter*  Boolean Parameter to decide whether to filter contacts in
+contact service by module name in ContactBaseData-Service ("true" / "false")
+* *services.contacts.moduleName*  name of module to filter data from ContactBaseData-Service
+(for example "Störungsinformationstool")
+* *services.sitCache.name* Name for SitCache-Service (for example "sitCacheService")
+
+* *portalFeLoginURL* Login Url of your Portal (Auth n Auth) module.
+This is needed for the creation of the direct email link to a gridfailure information message.
+* *portalFeModulename* Name of this module as it is displayed in the Portal (Auth n Auth) module
+below the corresponding image (example "Störungsinformationstool").
+This is needed for the creation of the direct email link to a gridfailure information message.
+
+* *authNAuthService.ribbon.listOfServers* Here one can configure the base url to the Auth'n'Auth-Service
+* *contactService.ribbon.listOfServers* Here one can configure the base url to the ContactBaseData-Service
+* *sitCacheService.ribbon.listOfServers* Here one can configure the base url to the SitCacheService-Service
+
+
+[#configuration-addressImport]
+==== Configuration of addressImport
+* *utm.zoneNumber* Parameters needed to calculate latitude/longitude coordinates (32)
+* *utm.zoneLetter* Parameters needed to calculate latitude/longitude coordinates (U)
+https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system
+
+* *adressimport.cleanup* Cleanup the adress database before each import? (true/false)
+* *adressimport.cron* Cron-expression for the adress import job
+* *adressimport.file(s)* Path of each CSV-file to import
+
+''''
+.How to start import of addresses manually
+To start the import of addresses manually you can use the endpoint of the addressImporter,
+alternatively you can wait until the cron expression starts the job automatically.
+
+. Navigate with your browser to:
+
+----
+[HOSTNAME_OF_DEPLOYMENT]:[DEPLOYMENT_PORT_OF_ADDRESSIMPORTER]/swagger-ui.html#/
+----
+
+[start=2]
+. Enter the credentials you have set for the endpoints of the addressImporter. (See <<secureEndpoints>>)
+. Press "adress-import-controller". You should see now the following screen:
+
+image::swagger-ui-addressimporter.png[]
+
+[start=3]
+. Press somewhere in the "POST" row and then press "Try it out"
+
+image::swagger-ui-addressimporter-try-out.png[]
+
+[start=4]
+. Now press the big blue "Execute" button
+. The import has successfully started if you receive a status code 200
+
+[#configuration-mailExport]
+==== Configuration of mailExport
+* *email.sender* Email adress of your sender for the automatically sent emails.
+* *email.smtpHost* SMTP-Host of your email provider
+* *email.port* Port of your email provider
+
+[#configuration-stoerungsauskunftInterface]
+==== Configuration of stoerungsauskunft-Interface
+* *stoerungsauskunft.apiUrl* URL to the endpoint of "stoerungsauskunft.de"
+(Development: https://stage-api-operator.stoerungsauskunft.de/api/v1.0/ )
+change to production enviroment accordingly.
+* *stoerungsauskunft.user* Username for stoerungsauskunft.de
+* *stoerungsauskunft.password* Password for stoerungsauskunft.de
+* *stoerungsauskunft.scheduling-import.enabled* Switch to enable/disable automatic import from stoerungsauskunft.de (true/false)
+* *stoerungsauskunft.scheduling-import.cron* Cron-expression for automatic import from stoerungsauskunft.de (Example: 0 */20 * ? * *)
+
+[#configuration-SAMOInterface]
+==== Configuration of SAMO-Interface
+* *sftp.enable-polling* Switch to enable/disable automatic import from SAMO (true/false)
+* *sftp.host* IP-address of the host
+
+You can decide if you want to access sftp via username/password or with ssh private/publicKey. If you set a path to a privateKey
+this method has precedence over username/password-method and is used instead. Keep in mind *not* to set an passphrase since
+confirmation of the passphrase is not possible in this automatic process.
+
+* *sftp.privateKey*  Private key in form of "file: _PATH_TO_FILE_" without quotes (Example: "file:C:\sshKeys\privateOpenKQServer_key-SAMO-Interface" without quotes)
+* *sftp.privateKeyPassphrase* leave it empty
+* *sftp.user* Username for the sftp access
+* *sftp.password* Password for the sftp access
+* *sftp.deleteRemoteFile* Switch to delete remote file after succesfully import. Leave it on true (true/false)
+* *sftp.directory* Path of the remote directory on the server where the *.json file to import is located
+* *sftp.fileFilter* Which file formats to import, leave it in JSON (*.json)
+* *sftp.cron* Cron-expression for automatic import from SAMO (Example: 0 */10 * ? * *)
+
+[#configuration-SARISInterface]
+==== Configuration of SARIS-Interface
\ No newline at end of file
diff --git a/src/main/asciidoc/howto/howtoRun.adoc b/src/main/asciidoc/howto/howtoRun.adoc
index 1ac35d0..1fbffb7 100644
--- a/src/main/asciidoc/howto/howtoRun.adoc
+++ b/src/main/asciidoc/howto/howtoRun.adoc
@@ -38,13 +38,23 @@
 
 *** To initialize the database schema run the latest sql script:
 
- /src/resources/db/migration/V0_??__CREATE_GFI_DB.sql
+ /src/resources/db/migration/V0_60__CREATE_GFI_DB_Complete_V_1.0.0.sql
 
 
 == How to run the Backend
-To run the backend you to create a separate directory for each backend microservice
+To run the backend you need to create a separate directory for each backend microservice
 you want to use, get the **.jar* file from the *target* directory of the java-project (which should exists after
-a successful maven-build) and copy it to the new directory (i.e. "gfsBackService").
+a successful maven-build) and copy it to the new directory (i.e. "gfsBackendService" = [_deployFolder_]).
+
+To configure each application (microservice) and adjust to your likings, we use the file *application.yml* for. +
+Copy the file *application.yml* from [microservice]/src/main/resources/application.yml next to the **.jar* in your [_deployFolder_].
+This step has to be done for *each* microservice but most of the configuration is done in the "main backend" (i.e.
+"gfsBackendService"), so every microservice has its own *application.yml*. +
+The folder *logs* is created at the first time you start the application.
+
+.Deployment folder structure, folder logs is created at first start
+image::deployStructure.png[]
+
 
 Depending on which services you want to use, you have to install different microservices:
 
@@ -52,10 +62,11 @@
 * *gfsBackend* (Main backendservice - always needed)
 * *mailExport* (Export messages via e-mail)
 * *SAMOInterface* (Import interface for the SAMO System)
+* *SARISInterface* (Import interface for the SARIS System)
 * *StoerungsauskunftInterface* (Import and export interface for the site "Stoerungsauskunft.de")
 
-Once you created a directory and copied the **.jar* file you need to configure each service. Please
-read the architecture documentation to get information about the possible configurations of the services.
+Once you created a directory and copied the **.jar* file you need to configure each service via the *application.yml*. +
+See *howtoConfigure* documentation to get information about the possible configurations of the services.
 
 * Open a command line and navigate to the root folder of the service you want to start
 * Run the command
@@ -68,32 +79,32 @@
 
 
 == How to run the Frontend
+
+IMPORTANT: Please be sure that you have first *Portal (Auth n Auth)* and *ContactBaseData* installed and configured!
+Make sure you have added the module *gridFailureInformation* to the *Portal (Auth n Auth)* module configuration (see Portal Project: moduleConfig***.json)
+
 To run the frontend project you need to have installed and updated Node.js and npm Angular-CLI.
 
 === Compile the Frontend
 
 To compile say Angular-CLI to start.
 
+* Navigate to the root folder of the project. Adjust the parameter "target" in the file *proxy.conf.json* (root folder) accordingly, pointing to the main backend url and its port. +
+Example: If you have started the main backend ("gfsBackendService") on the same machine with default values, then the "target" would be
+"http://localhost:9165/".
 * Open a command line and navigate to the root folder of the frontend project
 * Run the command
 
 [source,command]
 ----
-   $  npm start
+   $  npm start-local
 ----
 {blank}
 
-* Open a browser and type:
+* You can now access the application via the *Portal (Auth n Auth)* with a valid user who owns rights for the module *gridFailureInformation*.
 
-[source,http]
-----
-    http://localhost:4200
-----
 {blank}
 
-IMPORTANT: The reason you maybe don´t see the application running properly, is that you have not even logged in.
-To do so, run first the Portal project, where you can log in and then open the elogbook.
-
 == How to run the SIT-Web-Cache-Service
 === Prerequirements
 * SIT-Web-Cache-Service is built properly. Otherwise following the instructions in the *howtoBuild* file!
diff --git a/src/main/asciidoc/img/deployStructure.png b/src/main/asciidoc/img/deployStructure.png
new file mode 100644
index 0000000..105c457
--- /dev/null
+++ b/src/main/asciidoc/img/deployStructure.png
Binary files differ
diff --git a/src/main/asciidoc/img/swagger-ui-addressimporter-try-out.png b/src/main/asciidoc/img/swagger-ui-addressimporter-try-out.png
new file mode 100644
index 0000000..47634cb
--- /dev/null
+++ b/src/main/asciidoc/img/swagger-ui-addressimporter-try-out.png
Binary files differ
diff --git a/src/main/asciidoc/img/swagger-ui-addressimporter.png b/src/main/asciidoc/img/swagger-ui-addressimporter.png
new file mode 100644
index 0000000..415d2c1
--- /dev/null
+++ b/src/main/asciidoc/img/swagger-ui-addressimporter.png
Binary files differ