Skip to content

Commit

Permalink
documentation for DSF v1.6.0
Browse files Browse the repository at this point in the history
  • Loading branch information
schwzr committed Oct 15, 2024
1 parent ab3a160 commit 75eb381
Show file tree
Hide file tree
Showing 29 changed files with 2,419 additions and 5 deletions.
99 changes: 95 additions & 4 deletions docs/src/.vuepress/theme.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ export default hopeTheme({
prefix: "/stable/",
children: [
{
text: "Guideline v1.5.2 (stable)",
text: "Guideline v1.6.0 (stable)",
icon: "info",
children: ["index", "maintain/install", "maintain/upgrade-from-0", "maintain/allowList-mgm", "maintain/install-plugins", "develop/create", "contribute/"],
}
Expand All @@ -66,7 +66,7 @@ export default hopeTheme({
text: "Versions",
icon: "note",
// children:["/v1/"],
children: [{ text: "v1.5.2 (stable)", link: "/stable/" }, { text: "v1.5.1", link: "/v1.5.1/" }, { text: "v1.5.0", link: "/v1.5.0/" }, { text: "v1.4.0", link: "/v1.4.0/" }, { text: "v1.3.2", link: "/v1.3.2/" }, { text: "v1.3.1", link: "/v1.3.1/" }, { text: "v1.3.0", link: "/v1.3.0/" }, { text: "v1.2.0", link: "/v1.2.0/" }, { text: "v1.1.0", link: "/v1.1.0/" }, { text: "v1.0.0", link: "/v1.0.0/" }, { text: "v0.9.3 (oldstable)", link: "/oldstable/"}],
children: [{ text: "v1.6.0 (stable)", link: "/stable/" }, { text: "v1.5.2", link: "/v1.5.2/" }, { text: "v1.5.1", link: "/v1.5.1/" }, { text: "v1.5.0", link: "/v1.5.0/" }, { text: "v1.4.0", link: "/v1.4.0/" }, { text: "v1.3.2", link: "/v1.3.2/" }, { text: "v1.3.1", link: "/v1.3.1/" }, { text: "v1.3.0", link: "/v1.3.0/" }, { text: "v1.2.0", link: "/v1.2.0/" }, { text: "v1.1.0", link: "/v1.1.0/" }, { text: "v1.0.0", link: "/v1.0.0/" }, { text: "v0.9.3 (archived)", link: "/oldstable/"}],
},
{
text: "",
Expand Down Expand Up @@ -216,7 +216,7 @@ export default hopeTheme({
]
},
],
"/v1.5.2/": [
"/v1.6.0/": [
{
text: "Home",
icon: "home",
Expand Down Expand Up @@ -299,13 +299,104 @@ export default hopeTheme({
children: ["create", "upgrade-from-0" ],
},
],
"/v1.5.2/": [
{
text: "Home",
icon: "home",
link: "/",
},
{
text: "Current version",
icon: "update",
link: "/stable/",
},
{
text: "Maintain a DSF instance",
icon: "tool",
prefix: "maintain/",
link: "maintain/",
children: ["install", "upgrade-from-1", "upgrade-from-0", "allowList-mgm", {
text: "FHIR Reverse Proxy",
icon: "module",
prefix: "fhir-reverse-proxy/",
link: "fhir-reverse-proxy/",
children: [{
icon: "config",
text: "Configuration",
link: "configuration"
}]
}, {
text: "FHIR Server",
icon: "module",
prefix: "fhir/",
link: "fhir/",
children: [{
icon: "config",
text: "Configuration",
link: "configuration"
}, {
icon: "config",
text: "Access Control",
link: "access-control"
}, {
icon: "config",
text: "OpenID Connect",
link: "oidc"
}]
}, {
text: "BPE Reverse Proxy",
icon: "module",
prefix: "bpe-reverse-proxy/",
link: "bpe-reverse-proxy/",
children: [{
icon: "config",
text: "Configuration",
link: "configuration"
}]
}, {
text: "BPE Server",
icon: "module",
prefix: "bpe/",
link: "bpe/",
children: [{
icon: "config",
text: "Configuration",
link: "configuration"
}, {
icon: "config",
text: "Access Control",
link: "access-control"
}, {
icon: "config",
text: "OpenID Connect",
link: "oidc"
}]
},
{
text: "Install Plugins",
icon: "plugin",
link: "install-plugins"
}],
},
{
text: "Develop process plugins",
icon: "plugin",
prefix: "develop/",
link: "develop/",
children: ["create", "upgrade-from-0" ],
},
],
"/v1.5.1/": [
{
text: "Home",
icon: "home",
link: "/",
},
"",
{
text: "Current version",
icon: "update",
link: "/stable/",
},
{
text: "Maintain a DSF instance",
icon: "tool",
Expand Down
2 changes: 1 addition & 1 deletion docs/src/stable
97 changes: 97 additions & 0 deletions docs/src/v1.6.0/contribute/code.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
---
title: Contribute code
icon: info
---

Your code can make a difference for the Data Sharing Framework (DSF). We invite all users to share their code, tests, scripts and improvement ideas. Contributions of any size enhance the DSF and support the data sharing framework community.

### Benefits of Contributing:
- Foster community growth and diversification.
- Sharpen your coding skills.
- Gain recognition in the DSF community.
- Directly impact the future of data sharing in medicine.

Start now by visiting our contribution pages. Every line of code helps us build a stronger and more versatile DSF.

## General

### Code style

You can import our code style for your specific IDE:

* [Eclipse](https://github.com/datasharingframework/dsf/blob/main/src/main/resources/eclipse-formatter-config.xml). Open your preferences, click on `Java`, `Code style`, `Formatter`, `Import` and select the downloaded file.
* [IntelliJ](https://github.com/datasharingframework/dsf/blob/main/src/main/resources/intellij-formatter-config.xml). Open your settings, click on `Editor`, `Code style`, `Java`, the settings icon, `import scheme`, `IntelliJ` and select the downloaded file.

Pull requests will only be approved if the code is formatted according to the code style configurations above. To format the code with maven before pushing to GitHub, use `mvn compile -Pformat-and-sort`.

### Branching strategy

[Git Flow](https://www.atlassian.com/de/git/tutorials/comparing-workflows/gitflow-workflow) is used as this project's branching strategy. Therefore, you will find the following structure:

* main
* develop
* issue
* hotfix
* release

Notice that only the first two elements listed are actual branches. The other elements are containers to hold all branches belonging to that category.


#### Branch naming

The following ruleset is applied to name branches:

* `issue/<issue-number>_<issue-name>`
* `hotfix/<version>`
* `release/<version>`

## Setting up the project

This chapter lists all important requirements to get the project buildable and running properly.

### Java

This project uses Java JDK 17, so make sure you have it installed on your system.

### Docker

[Docker](https://www.docker.com/) is used in this project to test database functionality and to run more complex test-setups.

### Maven

The project relies on [Maven](https://maven.apache.org/) as its management tool.
*Important:* When building the project you might encounter the following error:
*Could not determine gpg version* [GPG](https://gnupg.org/) is used to sign artifacts for public release. Since this does not concern contributors, you may skip this step in the maven build process with `-Dgpg.skip`.


## Workflow

1. Create an issue or comment on an issue that you want to contribute some feature
2. Fork the repository, create a branch and mention it in the issue
3. If you desire feedback, create a pull request or comment on it in the issue. Feel free to @ any member with write permissions if you feel like your request has not been registered yet. They will review your changes and/or change requests
4. If your changes are production-ready, create a [pull request](https://github.com/datasharingframework/dsf/pulls).

### Pull request process

We follow Martin Fowler's method for managing pull requests. This approach categorizes pull requests based on the level of trust and experience of the contributor, as well as the impact of the changes. Here's how we apply it:

1. **Ship**: For our most trusted contributors with a proven track record. These members can merge their pull requests without prior review, typically for minor or highly confident changes.

2. **Show**: This level is for trusted contributors who need some oversight, as well as for experienced developers who want to demonstrate how certain changes should be made in the future. They create pull requests and show their work to the team.

3. **Ask**: New or less experienced contributors, as well as those submitting more complex changes, fall into this category. They are required to ask for feedback and approval before their changes can be merged, ensuring thorough review and quality control.


This method helps us maintain a balance between code quality and efficient development, recognizing the varying levels of expertise among our contributors.

For more information on Fowler's approach, visit [Martin Fowler's article on Pull Requests](https://martinfowler.com/articles/ship-show-ask.html).


## Data Security in DSF Development

The DSF (Data Sharing Framework) and its process plugins are frequently used to transmit sensitive personal data. To prevent the release of personal data during development, please adhere to the following guidelines:

- **No development with real personal data:** Always use anonymized or synthetic data for development purposes.
- **No personal data in repositories:** Ensure no personal data is present in local and remote repositories intended for publication, not even temporarily.
- **Review all log files:** Before using log files in issues, examples, etc., thoroughly review them to ensure no personal and sensitive data is included.

15 changes: 15 additions & 0 deletions docs/src/v1.6.0/contribute/documentation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
title: Contribute documentation
icon: info
---

**Join us in enhancing our documentation!**

We believe in the power of community collaboration to make our documentation clearer, more comprehensive, and more user-friendly. There are several ways you can contribute, and we welcome greatly your input!


1. **Contact us with feedback**: If you find any of our documentation unclear or if you think there's a topic not covered yet, please don't hesitate to reach out to us. Your perspective as a reader is invaluable in helping us to identify areas for improvement.
2. **Create an issue**: You noticed something that needs fixing or you have a suggestion? Head over to our GitHub repository at [Data Sharing Framework Documentation](https://github.com/datasharingframework/datasharingframework.github.io/issues) and please create an issue. This way, our team and other contributors can track and address documentation changes systematically.
3. **Contribute directly with a pull request**: If you're feeling proactive and want to make direct changes, you're more than welcome to submit a pull request. Visit our GitHub repository at [Data Sharing Framework Documentation](https://github.com/datasharingframework/datasharingframework.github.io) and feel free to propose your changes. Whether it's a typo fix, a new section, or enhanced explanations, every contribution counts.

We're excited to see your suggestions and are grateful for every contribution that helps us improve. Let's build better documentation together!
35 changes: 35 additions & 0 deletions docs/src/v1.6.0/contribute/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
title: Contribute
icon: info
---

We are thrilled that you consider contributing to our projects. Your contributions, big or small, are greatly valued and play a significant role in the success and improvement of our work. Whether you're a seasoned developer or just starting out, there's a place for you here to make a meaningful impact.

### **Ways you can contribute:**


1. **Helping other users**:
* **MII Zulip**: If you are part of the German Medical Informatics Initiative, [join the MII Zulip community](https://mii.zulipchat.com/#narrow/stream/392426-Data-Sharing-Framework-.28DSF.29) to assist others, share your knowledge, and learn from fellow contributors.
* **GitHub Discussions**: Engage with our community in [GitHub Discussions](https://github.com/datasharingframework/dsf/discussions) by answering questions, providing feedback, and sharing your insights.
2. **Testing releases**:
* **Stay ahead**: Help us testing the latest releases. Your feedback on functionality, bugs, and user experience is invaluable.
* **Report findings**: Share your testing results to help us refine and enhance our releases.
3. **Reviewing changes**:
* **Peer review**: Contribute by reviewing pull requests. Your insights can help ensure the quality and integrity of code changes.
* **Constructive feedback**: Offer constructive feedback and suggestions to help improve and refine proposed changes.
4. **Documentation changes**:
* **Improve documentation**: Help us improving and updating our documentation. Clear and accurate documentation is crucial for user understanding and success. Please checkout our [Getting started guide for documentation contributions](./documentation) to DSF.
* **Suggest improvements**: If you notice gaps or areas for enhancement in our documentation, we welcome [your suggestions and contributions](https://github.com/datasharingframework/datasharingframework.github.io).
5. **Contributing bug reports**:
* **Report bugs**: If you find a bug, please report it via [an issue on GitHub](https://github.com/datasharingframework/dsf/issues). Detailed bug reports are incredibly helpful.
* **Reproduction steps**: Include steps to reproduce the bug and any relevant logs according to our bug report issue template.
6. **Contributing feature requests**:
* **Suggest features**: You have an idea for a new feature? We'd love to hear it! Open an issue to describe your proposed feature and its potential benefits according to our feature request template.
* **Collaborate on implementation**: If you're able to, contribute to the development of your proposed feature or bug fix. Collaboration can lead to more innovative and effective solutions. Please checkout our [Getting started guide for code contributions](./code) to DSF.
7. **Contributing process plugins**:
* **Develop process plugins for the DSF**: If you have ideas for a process plugin, we encourage you to develop and contribute them. Our [Getting started guide for process plugin development](https://dsf.dev/stable/develop/) will be a useful reference.
* **Share your work**: Your plugins could be a valuable addition to the ecosystem and benefit other users.

Before you start contributing, we recommend reading our getting started guidelines for detailed information on our processes and standards. This ensures a smooth and productive experience for everyone involved.

**Your contributions in any form, are what drives the continuous growth and improvement of this project. Thank you for being a part of our community and for your willingness to contribute!**
7 changes: 7 additions & 0 deletions docs/src/v1.6.0/develop/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
title: Develop Process Plugins
icon: plugin
---
## Overview
- [Create a new process plugin](create)
- [Upgrade processes from 0.9.x](upgrade-from-0)
14 changes: 14 additions & 0 deletions docs/src/v1.6.0/develop/create.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
title: Create a new process plugin
icon: code
---

Visit the [how the DSF can help you](../../for-you/) page to get started.


::: tip Work in progress
We are currently in the process of updating the written documentation on how to create a DSF process plugin. In the meantime we recommend to study the oldstable version of the [process plugin tutorial](/oldstable/tutorial/). Additionally, we recommend to take a look at the upgraded DSF processes here:
- The [hello world plugin](https://github.com/datasharingframework/dsf-process-hello-world)
- The [ping pong plugin](https://github.com/datasharingframework/dsf-process-ping-pong)
- The [update allowlist plugin](https://github.com/datasharingframework/dsf-process-allow-list)
:::
10 changes: 10 additions & 0 deletions docs/src/v1.6.0/develop/upgrade-from-0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
title: Upgrade processes from 0.9.x
icon: update
---
::: tip Work in progress
We are currently in the process of updating the written documentation on how to upgrade a DSF process plugin to DSF 1.0.0. In the meantime we recommend to take a look at the provided sample plugin and the upgraded DSF plugins:
- The [hello world plugin](https://github.com/datasharingframework/dsf-process-hello-world)
- The [ping pong plugin](https://github.com/datasharingframework/dsf-process-ping-pong)
- The [update allowlist plugin](https://github.com/datasharingframework/dsf-process-allow-list)
:::
4 changes: 4 additions & 0 deletions docs/src/v1.6.0/dsf-for-dev.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
title: DSF for Developers
icon: info
---
31 changes: 31 additions & 0 deletions docs/src/v1.6.0/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
title: DSF 1.6.0
icon: guide
---

Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click [here](/intro/) to find more information about the DSF in general.
::: tip Important note
This is a major DSF release not compatible with 0.9.x and older version developed at https://github.com/highmed/highmed-dsf.
:::

# System Administrators

- [Upgrade from DSF 0.9.x.](maintain/upgrade-from-0)
- [Upgrade from DSF 1.5.2](maintain/upgrade-from-1)
- [Install DSF 1.6.0](maintain/install)


# Developers
- [Create a new process plugin](develop/create)
- [Upgrade from DSF 0.9.x.](develop/upgrade-from-0)

## New features
- Improved versioning to support up- and downwards-compatibility
- Enhanced web ui to start processes in the web browser
- Allow local user authentication and authorization with OpenID Connect
- New process plugin API
- Removed mostly unused features to simplify instance configuration
- Unified proxy setup
- Many more features, see [1.x release-notes](https://github.com/datasharingframework/dsf/releases)


20 changes: 20 additions & 0 deletions docs/src/v1.6.0/maintain/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
title: Maintain a DSF instance
icon: tool
---
## Overview
- [Install DSF 1.5.2](install)
- [Upgrade from DSF 0.9.x](upgrade-from-0)
- [Allow List Management](allowList-mgm)
- FHIR Reverse Proxy
- [Configuration Parameters](fhir-reverse-proxy/configuration)
- FHIR Server
- [Configuration Parameters](fhir/configuration)
- [Access Control](fhir/access-control)
- [OpenID Connect](fhir/oidc)
- BPE Reverse Proxy
- [Configuration Parameters](bpe-reverse-proxy/configuration)
- BPE Server
- [Configuration Parameters](bpe/configuration)
- [Access Control](bpe/access-control)
- [OpenID Connect](bpe/oidc)
Loading

0 comments on commit 75eb381

Please sign in to comment.