Skip to content
This repository was archived by the owner on May 5, 2021. It is now read-only.

Commit 38465a1

Browse files
author
jenkins
committed
[GITFLOW]merging 'release-1.50.0' into 'master'
2 parents cf5d6f9 + 1d99fa2 commit 38465a1

918 files changed

Lines changed: 30561 additions & 5590 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ deploy
2323
/sormas-app/java_pid21052.hprof
2424
bin
2525
/sormas-base/setup/setup.log
26+
27+
# Exclude maven wrapper
28+
!/.mvn/wrapper/maven-wrapper.jar
29+
2630
/sormas-cargoserver/.env
2731
/sormas-cargoserver/custom.env
2832
/sormas-cargoserver/custom.properties

.mvn/wrapper/maven-wrapper.jar

49.5 KB
Binary file not shown.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
2+
wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar

CONTRIBUTING.md

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,19 +79,36 @@ If you're interested in participating in the development of SORMAS, you can use
7979
> #61 - added model to define classification, apply automatic case classification whenever a field value changes
8080
6. Each pull request should be related to a single issue (if possible).
8181

82-
### SORMAS Sprint Board
82+
### SORMAS Product Backlog
8383

84-
The SORMAS sprint board is segmented into the following categories:
84+
The board **Product Backlog** is used to plan, refine and prioritize the tickets for the upcoming sprints.
85+
The sorting from top to bottom in every column reflects the priority for the product. The Product Owner is responsible to put tickets into the Backlog and keep the ticket information updated.
8586

86-
* **Backlog:** Issues that have been selected to be done in the current sprint, but for which work has not yet started.
87+
The Product Backlog contains the following columns:
88+
* **Backlog:** Issues that have been identified by the Product Owner to be done in the next sprints. There can be a column for each Scrum Team if it fits the need.
89+
* **Sprint n:** Contain tickets picked by the Product Owner to be done in the named sprint. Text notes or separate columns are used to separate issues between Scrum Teams. It gives a forecast what might come in the upcoming sprint and it is the starting point for the Sprint Planning. Every ticket the Development Team do not pick into their Sprint Backlog needs to be moved back to the Backlog column or one sprint further.
90+
* **Done:** Tickets that are closed (usually resolved within the running sprint) are moved here **automatically**. The sorting does not represent the priority here any more.
91+
92+
93+
### SORMAS Sprint Backlog
94+
95+
The board **Sprint Backlog** exists for each Scrum Team and is segmented into the following categories:
96+
97+
* **Backlog:** Issues that have been selected by the Development Team to be done in the current sprint, but for which work has not yet started. The sorting top to bottom on this column reflects the priority given by the Product Owner at the time of the Sprint Planning.
8798
* **In Progress:** Issues that have been assigned to a contributor and for which work has started.
8899
* **Waiting:** Issues for which work has started and that have been put on hold, e.g. because action or feedback by an external contributor is required.
89100
* **Review:** Issues that have been resolved, but not been reviewed by another contributor yet. The ticket status is usually **Open**, but **Closed** is also allowed if no code change or merge is needed.
101+
* **Testing:** Issues that have been reviewed and merged to **development** branch to be tested and verified on a central TEST instance. The ticket status is supposed to be **Closed**.
90102
* **Done:** Issues that have been resolved, reviewed and satisfy the Definition of Done. The ticket status is supposed to be **Closed**.
91103

92-
The general workflow is that whenever a contributor starts working on an issue, they **assign** themselves to it and manually **move the issue** from **Backlog** to **In Progress**.
104+
The general workflow is that whenever a contributor starts working on an issue, they **assign** themselves to it and manually **move the issue** from **Backlog** to **In Progress**.
105+
Transitions to **Waiting** and **Review** also need to be done manually. When the developer is done with all work (no code changes or merges needed, milestone is set), the ticket is supposed to be closed to go automatically to **Testing**.
106+
Approved tickets are supposed to be moved manually from **Testing** to **Done*.
107+
108+
The GitHub project has been configured to **automatically** move issues that are closed to **Testing** and issues that are reopened back to **In Progress**.
109+
110+
The Development Team is responsible to keep the tickets up to date on this board and to assign the appropriate milestone in which the work is going to be released.
93111

94-
The GitHub project has been configured to **automatically** move issues that are closed to **Done** and issues that are reopened back to **In Progress**.
95112

96113
### Eclipse Troubleshooting
97114

DEVELOPMENT_ENVIRONMENT.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,15 @@
6868
- Open the Ant window, click on the "+" icon and select the build.xml file from the sormas-base project
6969
- Execute the "install" and "deploy-serverlibs" scripts in this order
7070
- Set the default working directory for run configurations: Run -> Edit Configurations -> Templates -> Application -> set the value for *Working directory* to ``$MODULE_WORKING_DIR$``
71-
- Configure code formatting:
71+
- **Configure code formatting:**
72+
- disable "Optimize imports on the fly" (Editor -> General -> Auto Import)
7273
- install Eclipse Code Formatter for IntelliJ (https://plugins.jetbrains.com/plugin/6546-eclipse-code-formatter)
7374
- open the plugin settings (Other Settings -> Eclipse Code Formatter) and select "Use the Eclipse Code Formatter"
7475
- under "Eclipse Formatter config file", select ``sormas-base/java-formatter-profile.xml``
7576
- check optimize imports and, for "Import order", select ``sormas-base/java-importorder-profile.importorder``
7677
- **Important:** select "Do not format other file types by IntelliJ formatter"
7778
- go to Preferences -> Editor -> Code style -> Java -> Imports: set class and static names counts for import with * to 99
78-
- for IntelliJ, code formatting is usually done with Ctrl+Alt+L. For automatic formatting, it's recommended to use the plugin Save Actions (https://plugins.jetbrains.com/plugin/7642-save-actions)
79+
- for IntelliJ, code formatting is usually done with Ctrl+Alt+L. For automatic formatting, it's recommended to use the plugin Save Actions and check the first three checkboxes in "General" and the first two checkboxes in "Formatting Actions" (https://plugins.jetbrains.com/plugin/7642-save-actions)
7980

8081
## Android Studio
8182
**Note: This is only needed for development of the SORMAS Android app

GUIDE_SORMAS2SORMAS_CERTIFICATE.md

Lines changed: 62 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ This guide explains how to:
55
* set up the server address list file
66
* add certificates of other SORMAS instances to the local truststore
77
* add other servers to the local server list
8+
* handling self-signed ssl certificates on test systems
89

910
### Prerequisites
1011

@@ -13,32 +14,41 @@ See [Installing Java](SERVER_SETUP.md#java-11)
1314

1415
### Using the certificate generation script
1516

16-
1. Run ``bash ./generate-cert.sh``
17-
2. If the ``sormas2sormas`` directory is not found, you will be prompted to provide its path.
18-
3. If the ``SORMAS_PROPERTIES`` environment variable is not available, the script will search for the ``sormas.properties``
19-
file in ``/opt/domains/sormas/sormas.properties`` by default. If it is not found there, you will be prompted to provide
20-
the path to the ``sormas.properties`` file.
21-
4. For the generation of the certificate, the following data is needed: a password, a *Common Name* (CN)
22-
and an *Organization* (O). These may be set in environment variables (recommended), or provided
23-
manually as the script executes.
24-
* The password environment variable should be named ``SORMAS_S2S_CERT_PASS``. Please note that the password has to be
25-
at least 6 characters, or you will be prompted for a new one.
26-
* the *Common Name* environment variable should be named ``SORMAS_S2S_CERT_CN``.<br/>
27-
**Important**: for Germany, this value should be the SurvNet Code Site. <br/>
28-
E.g. *2.03.1.01.*
29-
* the *Organization* (O) environment variable should be named ``SORMAS_S2S_CERT_ORG``.<br/>
17+
1. Run ``bash ./s2s-generate-cert.sh``
18+
2. If the ``SORMAS2SORMAS_DIR`` environment variable is not available, the script will search for ``/opt/sormas2sormas`` by default.
19+
If it is not found there, you will be prompted to provide the pat to the *sormas2sormas* directory.
20+
3. If the ``SORMAS_DOMAIN_DIR`` environment variable is not available, the script will search for ``/opt/domains/sormas`` by default.<br>
21+
If it is not found there, you will be prompted to provide the path to the *sormas domain directory*.
22+
>If you don't have a local sormas installation, for example you are using the docker environment,
23+
>you can specify any existing directory and after the script finishes you will find a ``sormas.properties`` file there
24+
>that contains the necessary configuration that must be added to the ``sormas.properties`` file of your installation
25+
4. For the generation of the certificate, the following data is needed:
26+
an identifier of the *Organization*, the name of the *Organization*, the host name of the SORMAS server, the **https** port of the server,
27+
a password for the certificate keystore and a password for the REST user to be used when sharing data through the REST api.
28+
These may be set in environment variables (recommended), or provided manually as the script executes.
29+
30+
* the identifier of the *Organization* environment variable should be named ``SORMAS_ORG_ID``.
31+
This variable is also used as *Common Name* (CN) of the certificate<br/>
32+
**Important**: for Germany, this value should be the SORMAS SurvNet Code Site (e.g. 2.99.1.01. if the regular Code Site was 1.99.1.01.). <br/>
33+
* the name of the organization *Organization* (O) environment variable should be named ``SORMAS_ORG_NAME``.<br/>
3034
**Important**: for Germany, this value should be the name of the Health Department (Gesundheitsamt)
3135
to which the SORMAS instance will be assigned. <br/>
32-
E.g. *GA Braunschweig*
36+
E.g. *GA Musterhausen*
37+
* the host name variable should be named ``SORMAS_HOST_NAME``. <br/>
38+
E.g. *sormas.gesundheitsamt-musterhausen.de*
39+
* the https port environment variable should be named ``SORMAS_HTTPS_PORT``. If it is not found, you will be prompted to provide it.
40+
If you press enter without typing a port number the default 443 will be used.
41+
* The password environment variable should be named ``SORMAS_S2S_CERT_PASS``. Please note that the password has to be
42+
at least 6 characters, or you will be prompted for a new one.
43+
* the REST user password environment variable should be named ``SORMAS_S2S_REST_PASSWORD``.
44+
Please note that the password has to be at least 12 characters, or you will be prompted for a new one.
45+
3346
5. After providing the requested data, the certificate files will be generated. <br/>
3447
The generated certificate has a validity of 3 years.
3548
The certificate files will be available in the root SORMAS directory, in the folder ``/sormas2sormas``.
3649
6. A CSV file containing the access data for this instance will also be generated in the folder ``/sormas2sormas``.
37-
It will be named ``server-access-data.csv``.
38-
The file will contain on the first two columns of the first row the Common Name and the Organization, as provided
39-
when creating the certificate. <br/>
40-
**Please fill in on the third column the full URL of the server.** <br/>
41-
You will also have to set up a user for communicating with other SORMAS instances.
50+
It will be named ``{host name}-server-access-data.csv``.
51+
The file will contain the organization identifier, organization name, host name and the REST user password.<br/>
4252
7. The generated ``.p12`` file should not be shared with third parties. <br/>
4353
The generated ``.crt`` file will be verified and shared with other SORMAS instances, from which this instance
4454
will be able to request data. Conversely, in order to enable other SORMAS instances to request data from this
@@ -52,24 +62,43 @@ the path to the ``sormas.properties`` file.
5262
To enable other SORMAS instances to send and receive data from this instance, their certificate must be added to the
5363
truststore of this instance. Furthermore, the access data of other instances must be added to the local server
5464
list. To complete this setup, please follow the next steps:
55-
1. Run ``bash ./import-to-truststore.sh``
56-
2. If the ``sormas2sormas`` directory is not found, you will be prompted to provide its path.
57-
3. If the ``SORMAS_PROPERTIES`` environment variable is not available, the script will search for the ``sormas.properties``
58-
file in ``/opt/domains/sormas/sormas.properties`` by default. If it is not found there, you will be prompted to provide
59-
the path to the ``sormas.properties`` file.
65+
1. Run ``bash ./s2s-import-to-truststore.sh``
66+
2. If the ``SORMAS2SORMAS_DIR`` environment variable is not available, the script will search for ``/opt/sormas2sormas`` by default.
67+
If it is not found there, you will be prompted to provide the path to the *sormas2sormas* directory.
68+
3. If the ``SORMAS_DOMAIN_DIR`` environment variable is not available, the script will search for ``/opt/domains/sormas`` by default.
69+
If it is not found there, you will be prompted to provide the path to the *sormas domain directory*.
70+
>If you don't have a local sormas installation, for example you are using the docker environment,
71+
>you can specify any existing directory and after the script finishes you will find a ``sormas.properties`` file there
72+
>that contains the necessary configuration that must be added to the ``sormas.properties`` file of your installation
73+
6074
4. If ``sormas2sormas.truststore.p12`` is not found in the folder ``/sormas2sormas``, it will be created.
6175
The truststore password may be provided in an environment variable ``SORMAS_S2S_TRUSTSTORE_PASS``.
6276
* If the aforementioned environment variable is not available, the truststore password will be searched in the
6377
``sormas.properties`` file.
6478
* If it is not found there, you will be prompted to provide the truststore password.
6579
* The relevant properties will be automatically set by the script in the ``sormas.properties`` file.
6680
5. If the server address list file ``server-list.csv`` is not found in the folder ``/sormas2sormas``, it will also be created.
67-
6. You will be prompted to provide the file name of the certificate to be imported. This certificate should be located
68-
in the ``/sormas2sormas`` folder. Please provide the name including the extension. E.g ``mycert.crt``
81+
6. You will be prompted to provide the *host name* of the organization that's certificate is being imported.
82+
If the certificate was generated with the `s2s-generate-cert.sh` script, the identifier can be found at the beginning of the file.
83+
This certificate should be located in the ``/sormas2sormas`` folder.
6984
7. After providing the requested data, the certificate will be imported to the truststore.
70-
8. You should have also received a CSV file with the server access data. From this file, copy the line corresponding to the
71-
instance you would like to communicate with and add it to the local server address list file. This file is named
72-
``server-list.csv`` and is located in the ``/sormas2sormas`` folder. <br/>
73-
*Note*: You may check that the Common Name and the Organization of the certificate match the ones corresponding to
74-
the server in the CSV file.
75-
9. You may now delete the ``.crt`` file.
85+
8. The content of the ``server-access-data.csv`` provided together with the certificate will be copied to the ``server-list.csv`` file.
86+
9. You may now delete the ``.crt`` and ``server-access-data.csv`` files.
87+
88+
10. *Optional for test systems and other systems with self-signed ssl certificates* <br>
89+
You must import the SSL certificate of the other server into the ``cacerts.jks`` of your sormas domain.
90+
* For getting the SSL certificate you can use ``openssl`` <br>
91+
e.g.
92+
```shell script
93+
openssl s_client -showcerts -servername sormas.gesundheitsamt-musterhausen.de -connect sormas.gesundheitsamt-musterhausen.de:443 </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > certificate.cer
94+
```
95+
* To import the SSL certificate you can use ``keytool`` <br>
96+
e.g.
97+
```shell script
98+
keytool -importcert -trustcacerts -noprompt -keystore /opt/domains/sormas/config/cacerts.jks -alias sormas_dev -storepass changeit -file certificate.cer
99+
```
100+
Note that the alias can be used only once.
101+
102+
After the certificate is generated and at least one other certificate is imported,
103+
on some pages of the application you will see a new box with a *Share* button and information about sharing.
104+

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
You can give SORMAS a try on our play server at https://sormas.helmholtz-hzi.de!
1818

1919
#### How Can I Get Involved?
20-
Have a look at our [*Contributing Readme*](CONTRIBUTING.md) and contact us at [email protected] or join our [developer chat on Gitter](https://gitter.im/SORMAS-Project) to learn how you can help to drive the development of SORMAS forward and to get development support from our core developers. SORMAS is a community-driven project, and we'd love to have you on board!
20+
Read through our [*Contributing Readme*](CONTRIBUTING.md) and contact us at [email protected] or join our [developer chat on Gitter](https://gitter.im/SORMAS-Project) to learn how you can help to drive the development of SORMAS forward and to get development support from our core developers. SORMAS is a community-driven project, and we'd love to have you on board! If you want to contribute to the code, please strictly adhere to the [*Development Environment*](DEVELOPMENT_ENVIRONMENT.md) guide to ensure that everything is set up correctly. Please also make sure that you've read the [*Development Contributing Guidelines*](CONTRIBUTING.md#development-contributing-guidelines) before you start to develop.
2121

2222
#### How Can I Report a Bug or Request a Feature?
2323
Please [create a new issue](https://github.com/hzi-braunschweig/SORMAS-Project/issues/new/choose) and read the [*Submitting an Issue*](CONTRIBUTING.md#submitting-an-issue) guide for more detailed instructions. We appreciate your help!

0 commit comments

Comments
 (0)