Repository: owncloud/ocis
Pull request #10351 (2024-10-18 13:34:16)

[test-only] add test for checking service ready and health
releated #8783 #10316

I checked `/healthz` and `/readyz` of every services


my steps: 
- run nats separately `ocis/bin/ocis nats server`
- run ocis without nats `OCIS_INSECURE=true PROXY_ENABLE_BASIC_AUTH=true IDM_CREATE_DEMO_USERS=true OCIS_EXCLUDE_RUN_SERVICES=nats ocis/bin/ocis server`
- run test: 
```
Scenario: health check extra services
    When a user requests these endpoints with "GET"
      | endpoint                      | service      | comment |
      | http://127.0.0.1:9260/healthz | clientlog |         |
    Then the HTTP status code of responses on all endpoints should be "200"
    When a user requests these endpoints with "GET"
      | endpoint                     | service      | comment |
      | http://127.0.0.1:9260/readyz | clientlog |         |
    Then the HTTP status code of responses on all endpoints should be "200"

``` 
Okay
- stop nats->waiting->run test again 
`http://127.0.0.1:9243/healthz` -> okay
`http://127.0.0.1:9243/readyz` - should be 500

run nats again 
``` 
 When a user requests these endpoints with "GET"
      | endpoint                      | service      | comment |
      | http://127.0.0.1:9260/healthz | clientlog |         |
| http://127.0.0.1:9260/readyz | clientlog |         |
    Then the HTTP status code of responses on all endpoints should be "200"
``` 


@saw-jan regarding stop and start nats during the test: 
let do it in the next PR: 
I see two ways: 
- run/stop nats inside the ocis-server container in CI $command = "docker exec ocis-server ocis/bin/ocis nats server &";
- or use wrapper for nats


### Default Services:
| SERVICE            | HEALTH CHECK | READINESS CHECK  |
|--------------------|-----------------|---------------|
| activitylog        | ✅ Pass          | ✅ Pass        |
| app-provider       | ✅ Pass          | ✅ Pass        |
| app-registry       | ✅ Pass          | ✅ Pass        |
| auth-basic         | ✅ Pass          | ✅ Pass        |
| auth-machine       | ✅ Pass          | ✅ Pass        |
| auth-service       | ✅ Pass          | ✅ Pass        |
| clientlog          | ✅ Pass          | ✅ Pass        |
| eventhistory       | ✅ Pass          | ✅ Pass        |
| frontend           | ✅ Pass          | ✅ Pass        |
| gateway            | ✅ Pass          | ✅ Pass        |
| graph              | ✅ Pass          | ✅ Pass |
| groups             | ✅ Pass          | ✅ Pass        |
| idm                | ✅ Pass          | ✅ Pass        |
| idp                | ✅ Pass          | ✅ Pass |
| nats               | ✅ Pass          | ✅ Pass        |
| ocdav              | ✅ Pass          | ✅ Pass        |
| ocm                | ✅ Pass          | ✅ Pass |
| ocs                | ✅ Pass          | ✅ Pass        |
| postprocessing     | ✅ Pass          | ✅ Pass        |
| proxy              | ✅ Pass          | ✅ Pass |
| search             | ✅ Pass          | ✅ Pass        |
| settings           | ✅ Pass          | ✅ Pass        |
| sharing            | ✅ Pass          | ✅ Pass        |
| sse                | ✅ Pass          | ✅ Pass |
| storage-publiclink | ✅ Pass          | ✅ Pass        |
| storage-shares     | ✅ Pass          | ✅ Pass        |
| storage-system     | ✅ Pass          | ✅ Pass        |
| storage-users      | ✅ Pass          | ✅ Pass        |
| thumbnails         | ✅ Pass          | ✅ Pass        |
| userlog            | ✅ Pass          | ✅ Pass        |
| users              | ✅ Pass          | ✅ Pass        |
| web                | ✅ Pass          | ✅ Pass        |
| webdav             | ✅ Pass          | ✅ Pass        |
| webfinger          | ✅ Pass          | ✅ Pass        |

### Other Services
| SERVICE     | HEALTH CHECK | READINESS CHECK |
|-------------|-----------------|--------------|
| audit       | ✅ Pass          | ✅ Pass       |
| auth-app    | ✅ Pass          | ✅ Pass       |
| auth-bearer | ✅ Pass    | ✅ Pass |
| invitations | ✅ Pass          | ✅ Pass       |
| policies    | ✅ Pass          | ✅ Pass       |
| antivirus | ✅ Pass          | ✅ Pass       |
| notification | ✅ Pass          | ✅ Pass       |


### Depriciated Services
| SERVICE |
|---------|
| store   |

update-docs[bot]: Thanks for opening this pull request! The maintainers of this repository would appreciate it if you would create a [changelog](https://github.com/owncloud/ocis/blob/master/changelog/README.md) item based on your changes.

sonarcloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarCloud](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351)


sonarcloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarCloud](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351)


sonarcloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarCloud](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351)


sonarcloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarCloud](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351)


sonarcloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarCloud](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351)


sonarcloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarCloud](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351)


sonarcloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarCloud](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351)


sonarcloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarCloud](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351)


sonarcloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarCloud](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351)


sonarcloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarCloud](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351)


sonarcloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarCloud](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351)


sonarcloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarCloud](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351)


ScharfViktor: CI red 🤯 tests start to run, but after a while the server crashes. can't understand the reason from the logs
I tried running ocis localy in docker using envs from ci - everything works fine

my running was: 
`docker run --rm -it     --mount type=bind,source=/Users/scharfviktor/dockerocis/ocis/ocis-config,target=/etc/ocis   -e IDM_ADMIN_PASSWORD=admin  owncloud/ocis init`

```
docker run     --name ocis-server --rm     -it     -p 9200:9200     --mount type=bind,source=/Users/scharfviktor/dockerocis/ocis/ocis-config,target=/etc/ocis     --mount type=bind,source=/Users/scharfviktor/dockerocis/ocis/ocis-data,target=/var/lib/ocis     -e OCIS_INSECURE=true     -e PROXY_HTTP_ADDR=0.0.0.0:9200     -e OCIS_URL=https://ocis-server:9200     -e CLIENTLOG_DEBUG_ADDR=0.0.0.0:9260     -e ACTIVITYLOG_DEBUG_ADDR=0.0.0.0:9197     -e APP_PROVIDER_DEBUG_ADDR=0.0.0.0:9165     -e APP_REGISTRY_DEBUG_ADDR=0.0.0.0:9243     -e AUTH_BASIC_DEBUG_ADDR=0.0.0.0:9147     -e AUTH_MACHINE_DEBUG_ADDR=0.0.0.0:9167     -e AUTH_SERVICE_DEBUG_ADDR=0.0.0.0:9198     -e EVENTHISTORY_DEBUG_ADDR=0.0.0.0:9270     -e FRONTEND_DEBUG_ADDR=0.0.0.0:9141     -e GATEWAY_DEBUG_ADDR=0.0.0.0:9143     -e GRAPH_DEBUG_ADDR=0.0.0.0:9124     -e GROUPS_DEBUG_ADDR=0.0.0.0:9161     -e IDM_DEBUG_ADDR=0.0.0.0:9239     -e IDP_DEBUG_ADDR=0.0.0.0:9134     -e NATS_DEBUG_ADDR=0.0.0.0:9234     -e OCDAV_DEBUG_ADDR=0.0.0.0:9163     -e OCM_DEBUG_ADDR=0.0.0.0:9281     -e OCS_DEBUG_ADDR=0.0.0.0:9114     -e POSTPROCESSING_DEBUG_ADDR=0.0.0.0:9255     -e PROXY_DEBUG_ADDR=0.0.0.0:9205     -e SEARCH_DEBUG_ADDR=0.0.0.0:9224     -e SETTINGS_DEBUG_ADDR=0.0.0.0:9194     -e SHARING_DEBUG_ADDR=0.0.0.0:9151     -e SSE_DEBUG_ADDR=0.0.0.0:9135     -e STORAGE_PUBLICLINK_DEBUG_ADDR=0.0.0.0:9179     -e STORAGE_SHARES_DEBUG_ADDR=0.0.0.0:9156     -e STORAGE_SYSTEM_DEBUG_ADDR=0.0.0.0:9217     -e STORAGE_USERS_DEBUG_ADDR=0.0.0.0:9159     -e THUMBNAILS_DEBUG_ADDR=0.0.0.0:9189     -e USERLOG_DEBUG_ADDR=0.0.0.0:9214     -e USERS_DEBUG_ADDR=0.0.0.0:9145     -e WEB_DEBUG_ADDR=0.0.0.0:9104     -e WEBDAV_DEBUG_ADDR=0.0.0.0:9119     -e OCIS_ASYNC_UPLOADS=True     -e OCIS_EVENTS_ENABLE_TLS=false     -e MICRO_REGISTRY=nats-js-kv     -e MICRO_REGISTRY_ADDRESS=127.0.0.1:9233     -e NATS_NATS_HOST=0.0.0.0     -e NATS_NATS_PORT=9233     -e OCIS_JWT_SECRET=some-ocis-jwt-secret     -e EVENTHISTORY_STORE=memory     -e GRAPH_AVAILABLE_ROLES=b1e2218d-eef8-4d4c-b82d-0f1a1b48f3b5,a8d5fe5e-96e3-418d-825b-534dbdf22b99,fb6c3e19-e378-47e5-b277-9732f9de6e21,58c63c02-1d89-4572-916a-870abc5a1b7d,2d00ce52-1fc2-4dbc-8b95-a73b73395f5a,1c996275-f1c9-4e71-abdf-a42f6495e960,312c0871-5ef7-4b3a-85b6-0e4074c64049,aa97fe03-7980-45ac-9e50-b325749fd7e6   -e PROXY_ENABLE_BASIC_AUTH=true  owncloud/ocis
```
saw-jan: Could be related to https://github.com/owncloud/ocis/pull/10405?
sonarcloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351)


sonarcloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351)


sonarcloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351)


sonarcloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351)


sonarcloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351)


sonarcloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351)


sonarcloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351)


sonarcloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351)


sonarcloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351)


sonarcloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=10351&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=10351&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=10351&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=owncloud_ocis&pullRequest=10351)



Patch:
diff --git a/.drone.star b/.drone.star
index 84fca6d7e93..9fda683de21 100644
--- a/.drone.star
+++ b/.drone.star
@@ -94,6 +94,7 @@ config = {
         "graph": {
             "suites": [
                 "apiGraph",
+                "apiServiceAvailability",
             ],
             "skip": False,
             "withRemotePhp": [True],
@@ -180,6 +181,7 @@ config = {
                 "NOTIFICATIONS_SMTP_PORT": "2500",
                 "NOTIFICATIONS_SMTP_INSECURE": "true",
                 "NOTIFICATIONS_SMTP_SENDER": "ownCloud <noreply@example.com>",
+                "NOTIFICATIONS_DEBUG_ADDR": "0.0.0.0:9174",
             },
         },
         "antivirus": {
@@ -194,6 +196,7 @@ config = {
                 "POSTPROCESSING_STEPS": "virusscan",
                 "OCIS_ASYNC_UPLOADS": True,
                 "OCIS_ADD_RUN_SERVICES": "antivirus",
+                "ANTIVIRUS_DEBUG_ADDR": "0.0.0.0:9297",
             },
         },
         "searchContent": {
@@ -1029,6 +1032,7 @@ def localApiTests(ctx, name, suites, storage = "ocis", extra_environment = {}, w
         "UPLOAD_DELETE_WAIT_TIME": "1" if storage == "owncloud" else 0,
         "OCIS_WRAPPER_URL": "http://%s:5200" % OCIS_SERVER_NAME,
         "WITH_REMOTE_PHP": with_remote_php,
+        "COLLABORATION_SERVICE_URL": "http://wopi-fakeoffice:9300",
     }
 
     for item in extra_environment:
@@ -2322,6 +2326,42 @@ def ocisServer(storage = "ocis", accounts_hash_difficulty = 4, volumes = [], dep
         "OCIS_JWT_SECRET": "some-ocis-jwt-secret",
         "EVENTHISTORY_STORE": "memory",
         "OCIS_TRANSLATION_PATH": "%s/tests/config/translations" % dirs["base"],
+        # debug addresses required for running services health tests
+        "ACTIVITYLOG_DEBUG_ADDR": "0.0.0.0:9197",
+        "APP_PROVIDER_DEBUG_ADDR": "0.0.0.0:9165",
+        "APP_REGISTRY_DEBUG_ADDR": "0.0.0.0:9243",
+        "AUTH_BASIC_DEBUG_ADDR": "0.0.0.0:9147",
+        "AUTH_MACHINE_DEBUG_ADDR": "0.0.0.0:9167",
+        "AUTH_SERVICE_DEBUG_ADDR": "0.0.0.0:9198",
+        "CLIENTLOG_DEBUG_ADDR": "0.0.0.0:9260",
+        "EVENTHISTORY_DEBUG_ADDR": "0.0.0.0:9270",
+        "FRONTEND_DEBUG_ADDR": "0.0.0.0:9141",
+        "GATEWAY_DEBUG_ADDR": "0.0.0.0:9143",
+        "GRAPH_DEBUG_ADDR": "0.0.0.0:9124",
+        "GROUPS_DEBUG_ADDR": "0.0.0.0:9161",
+        "IDM_DEBUG_ADDR": "0.0.0.0:9239",
+        "IDP_DEBUG_ADDR": "0.0.0.0:9134",
+        "INVITATIONS_DEBUG_ADDR": "0.0.0.0:9269",
+        "NATS_DEBUG_ADDR": "0.0.0.0:9234",
+        "OCDAV_DEBUG_ADDR": "0.0.0.0:9163",
+        "OCM_DEBUG_ADDR": "0.0.0.0:9281",
+        "OCS_DEBUG_ADDR": "0.0.0.0:9114",
+        "POSTPROCESSING_DEBUG_ADDR": "0.0.0.0:9255",
+        "PROXY_DEBUG_ADDR": "0.0.0.0:9205",
+        "SEARCH_DEBUG_ADDR": "0.0.0.0:9224",
+        "SETTINGS_DEBUG_ADDR": "0.0.0.0:9194",
+        "SHARING_DEBUG_ADDR": "0.0.0.0:9151",
+        "SSE_DEBUG_ADDR": "0.0.0.0:9139",
+        "STORAGE_PUBLICLINK_DEBUG_ADDR": "0.0.0.0:9179",
+        "STORAGE_SHARES_DEBUG_ADDR": "0.0.0.0:9156",
+        "STORAGE_SYSTEM_DEBUG_ADDR": "0.0.0.0:9217",
+        "STORAGE_USERS_DEBUG_ADDR": "0.0.0.0:9159",
+        "THUMBNAILS_DEBUG_ADDR": "0.0.0.0:9189",
+        "USERLOG_DEBUG_ADDR": "0.0.0.0:9214",
+        "USERS_DEBUG_ADDR": "0.0.0.0:9145",
+        "WEB_DEBUG_ADDR": "0.0.0.0:9104",
+        "WEBDAV_DEBUG_ADDR": "0.0.0.0:9119",
+        "WEBFINGER_DEBUG_ADDR": "0.0.0.0:9279",
     }
 
     if deploy_type == "":


Test patch:
diff --git a/tests/acceptance/TestHelpers/OcisHelper.php b/tests/acceptance/TestHelpers/OcisHelper.php
index 606c6bbe0ad..93ba8ba6752 100644
--- a/tests/acceptance/TestHelpers/OcisHelper.php
+++ b/tests/acceptance/TestHelpers/OcisHelper.php
@@ -74,6 +74,16 @@ class OcisHelper {
 		return 'https://localhost:10200';
 	}
 
+	/**
+	 * @return string
+	 */
+	public static function getCollaborationServiceUrl(): string {
+		if (\getenv("COLLABORATION_SERVICE_URL")) {
+			return \getenv("COLLABORATION_SERVICE_URL");
+		}
+		return "http://localhost:9300";
+	}
+
 	/**
 	 * @return bool
 	 */
diff --git a/tests/acceptance/bootstrap/AuthContext.php b/tests/acceptance/bootstrap/AuthContext.php
index 6d73ad1d4fa..24b8f8c222f 100644
--- a/tests/acceptance/bootstrap/AuthContext.php
+++ b/tests/acceptance/bootstrap/AuthContext.php
@@ -205,9 +205,14 @@ class AuthContext implements Context {
 	 * @throws Exception
 	 */
 	public function userRequestsEndpointsWithNoAuthentication(string $method, TableNode $table):void {
-		$this->featureContext->verifyTableNodeColumns($table, ['endpoint']);
+		$this->featureContext->verifyTableNodeColumns($table, ['endpoint'], ['service']);
 		foreach ($table->getHash() as $row) {
-			$this->featureContext->setResponse($this->sendRequest($row['endpoint'], $method));
+			$this->featureContext->setResponse(
+				$this->sendRequest(
+					$this->featureContext->substituteInLineCodes($row['endpoint']),
+					$method
+				)
+			);
 			$this->featureContext->pushToLastStatusCodesArrays();
 		}
 	}
diff --git a/tests/acceptance/bootstrap/CollaborationContext.php b/tests/acceptance/bootstrap/CollaborationContext.php
index d6772eea219..006430d206c 100644
--- a/tests/acceptance/bootstrap/CollaborationContext.php
+++ b/tests/acceptance/bootstrap/CollaborationContext.php
@@ -355,75 +355,4 @@ class CollaborationContext implements Context {
 			}
 		}
 	}
-
-	/**
-	 * @Then the app list response should contain the following template information for office :app:
-	 *
-	 * @param string $app
-	 * @param TableNode $table
-	 *
-	 * @return void
-	 */
-	public function theAppListResponseShouldContainTheFollowingTemplateInformationForOffice(string $app, TableNode $table): void {
-		$responseArray = $this->featureContext->getJsonDecodedResponse($this->featureContext->getResponse());
-
-		Assert::assertArrayHasKey("mime-types", $responseArray, "Expected 'mime-types' in the response but not found.\n" . print_r($responseArray, true));
-
-		$mimeTypes = $responseArray['mime-types'];
-
-		$mimeTypeMap = [];
-		foreach ($mimeTypes as $mimeType) {
-			$mimeTypeMap[$mimeType['mime_type']] = $mimeType;
-		}
-
-		foreach ($table->getColumnsHash() as $row) {
-			Assert::assertArrayHasKey($row['mime-type'], $mimeTypeMap, "Expected mime-type '{$row['mime-type']}' to exist in the response but it doesn't.\n" . print_r($mimeTypeMap, true));
-
-			$mimeType = $mimeTypeMap[$row['mime-type']];
-			$found = false;
-
-			foreach ($mimeType['app_providers'] as $provider) {
-				if ($provider['name'] === $app && isset($row['target-extension'])) {
-					Assert::assertSame(
-						$row['target-extension'],
-						$provider['target_ext'],
-						"Expected 'target_ext' for $app to be '{$row['target-extension']}' but found '{$provider['target_ext']}'"
-					);
-					$found = true;
-					break;
-				}
-			}
-
-			if (!$found) {
-				Assert::fail(
-					"Expected response to contain app-provider '$app' with target-extension '{$row['target-extension']}' for mime-type '{$row['mime-type']}', but no matching provider was found.\n" .
-					"App Providers Found: " . print_r($mimeType['app_providers'], true)
-				);
-			}
-		}
-	}
-
-	/**
-	 * @When user :user has created a file :file using wopi endpoint
-	 *
-	 * @param string $user
-	 * @param string $file
-	 *
-	 * @return string
-	 * @throws GuzzleException
-	 */
-	public function userHasCreatedAFileInSpaceUsingWopiEndpoint(string $user, string $file):string {
-		$parentContainerId = $this->featureContext->getFileIdForPath($user, "/");
-		$response = CollaborationHelper::createFile(
-			$this->featureContext->getBaseUrl(),
-			$this->featureContext->getStepLineRef(),
-			$user,
-			$this->featureContext->getPasswordForUser($user),
-			$parentContainerId,
-			$file
-		);
-		$this->featureContext->theHTTPStatusCodeShouldBe(200, "", $response);
-		$decodedResponse[] = $this->featureContext->getJsonDecodedResponseBodyContent($response);
-		return $decodedResponse[0]->file_id;
-	}
 }
diff --git a/tests/acceptance/bootstrap/FeatureContext.php b/tests/acceptance/bootstrap/FeatureContext.php
index 5bf1cb956cf..e1807e0d040 100644
--- a/tests/acceptance/bootstrap/FeatureContext.php
+++ b/tests/acceptance/bootstrap/FeatureContext.php
@@ -728,6 +728,18 @@ class FeatureContext extends BehatVariablesContext {
 		return $parsedUrl["host"] . ":" . $parsedUrl["port"];
 	}
 
+	/**
+	 * removes the port from the ocis URL
+	 *
+	 * @param string $url
+	 *
+	 * @return string
+	 */
+	public function removeSchemeAndPortFromUrl(string $url): string {
+		$parsedUrl = parse_url($url);
+		return $parsedUrl["host"];
+	}
+
 	/**
 	 * returns the base URL (which is without a slash at the end)
 	 *
@@ -783,6 +795,24 @@ class FeatureContext extends BehatVariablesContext {
 		return $this->removeSchemeFromUrl($this->getBaseUrl());
 	}
 
+	/**
+	 * returns the base URL but without "http(s)://" and port
+	 *
+	 * @return string
+	 */
+	public function getBaseUrlHostName(): string {
+		return $this->removeSchemeAndPortFromUrl($this->getBaseUrl());
+	}
+
+	/**
+	 * returns the base URL but without "http(s)://" and port
+	 *
+	 * @return string
+	 */
+	public function getCollaborationHostName(): string {
+		return $this->removeSchemeAndPortFromUrl(OcisHelper::getCollaborationServiceUrl());
+	}
+
 	/**
 	 * returns the local base URL (which is without a slash at the end)
 	 *
@@ -2178,6 +2208,22 @@ class FeatureContext extends BehatVariablesContext {
 				],
 				"parameter" => []
 			],
+			[
+				"code" => "%base_url_hostname%",
+				"function" => [
+					$this,
+					"getBaseUrlHostName"
+				],
+				"parameter" => []
+			],
+			[
+				"code" => "%collaboration_hostname%",
+				"function" => [
+					$this,
+					"getCollaborationHostName"
+				],
+				"parameter" => []
+			],
 			[
 				"code" => "%remote_server%",
 				"function" => [
diff --git a/tests/acceptance/bootstrap/SpacesContext.php b/tests/acceptance/bootstrap/SpacesContext.php
index 45183408a38..0695f0c2355 100644
--- a/tests/acceptance/bootstrap/SpacesContext.php
+++ b/tests/acceptance/bootstrap/SpacesContext.php
@@ -1345,33 +1345,6 @@ class SpacesContext implements Context {
 		$this->featureContext->setResponse($response);
 	}
 
-	/**
-	 * @When user :user updates the content of federated share :share with :content using the WebDAV API
-	 *
-	 * @param string $user
-	 * @param string $share
-	 * @param string $content
-	 *
-	 * @return void
-	 * @throws GuzzleException
-	 * @throws Exception
-	 */
-	public function userUpdatesTheContentOfFederatedShareWithUsingTheWebdavApi(
-		string $user,
-		string $share,
-		string $content,
-	): void {
-		$spaceId = $this->getSharesRemoteItemId($user, $share);
-		$this->featureContext->setResponse(
-			$this->featureContext->uploadFileWithContent(
-				$user,
-				$content,
-				'',
-				$spaceId
-			)
-		);
-	}
-
 	/**
 	 * @When /^user "([^"]*)" uploads a file "([^"]*)" to "([^"]*)" in space "([^"]*)" using the WebDAV API$/
 	 *
@@ -1998,6 +1971,7 @@ class SpacesContext implements Context {
 		string $fileName,
 		string $spaceName
 	):void {
+		$this->getSpaceIdByName($user, $spaceName);
 		$response = $this->featureContext->downloadFileAsUserUsingPassword($user, $fileName, $this->featureContext->getPasswordForUser($user));
 		Assert::assertGreaterThanOrEqual(
 			400,
diff --git a/tests/acceptance/config/behat.yml b/tests/acceptance/config/behat.yml
index dae41ec96e1..8d35def18d9 100644
--- a/tests/acceptance/config/behat.yml
+++ b/tests/acceptance/config/behat.yml
@@ -416,6 +416,14 @@ default:
         - CollaborationContext:
         - TrashbinContext:
 
+    apiServiceAvailability:
+      paths:
+        - "%paths.base%/../features/apiServiceAvailability"
+      context: *common_ldap_suite_context
+      contexts:
+        - FeatureContext: *common_feature_context_params
+        - OcisConfigContext:
+
     cliCommands:
       paths:
         - "%paths.base%/../features/cliCommands"
diff --git a/tests/acceptance/features/apiAntivirus/serviceAvailabilityCheck.feature b/tests/acceptance/features/apiAntivirus/serviceAvailabilityCheck.feature
new file mode 100644
index 00000000000..e686283445e
--- /dev/null
+++ b/tests/acceptance/features/apiAntivirus/serviceAvailabilityCheck.feature
@@ -0,0 +1,15 @@
+Feature: service health check
+
+
+  Scenario: check service health
+    When a user requests these endpoints with "GET" and no authentication
+      | endpoint                         | service   |
+      | %base_url_hostname%:9297/healthz | antivirus |
+    Then the HTTP status code of responses on all endpoints should be "200"
+
+
+  Scenario: check service readiness
+    When a user requests these endpoints with "GET" and no authentication
+      | endpoint                        | service   |
+      | %base_url_hostname%:9297/readyz | antivirus |
+    Then the HTTP status code of responses on all endpoints should be "200"
diff --git a/tests/acceptance/features/apiCollaboration/checkFileInfo.feature b/tests/acceptance/features/apiCollaboration/checkFileInfo.feature
index 5998860b7a7..477b63c5af0 100644
--- a/tests/acceptance/features/apiCollaboration/checkFileInfo.feature
+++ b/tests/acceptance/features/apiCollaboration/checkFileInfo.feature
@@ -1862,24 +1862,3 @@ Feature: check file info with different wopi apps
     Then the HTTP status code should be "200"
     And the response should not contain the following MIME types:
       | application/octet-stream |
-
-
-  Scenario: check target extensions for template mime types
-    When user "Alice" sends HTTP method "GET" to URL "/app/list"
-    Then the HTTP status code should be "200"
-    And the app list response should contain the following template information for office "OnlyOffice":
-      | mime-type                                                               | target-extension |
-      | application/vnd.oasis.opendocument.spreadsheet-template                 | xlsx             |
-      | application/vnd.oasis.opendocument.text-template                        | docx             |
-      | application/vnd.oasis.opendocument.presentation-template                | pptx             |
-      | application/vnd.openxmlformats-officedocument.spreadsheetml.template    | xlsx             |
-      | application/vnd.openxmlformats-officedocument.presentationml.template   | pptx             |
-      | application/vnd.openxmlformats-officedocument.wordprocessingml.template | docx             |
-      | application/vnd.ms-word.template.macroenabled.12                        | docx             |
-      | application/vnd.ms-powerpoint.template.macroenabled.12                  | pptx             |
-      | application/vnd.ms-excel.template.macroenabled.12                       | xlsx             |
-    And the app list response should contain the following template information for office "Collabora":
-      | mime-type                                                | target-extension |
-      | application/vnd.oasis.opendocument.spreadsheet-template  | ods              |
-      | application/vnd.oasis.opendocument.text-template         | odt              |
-      | application/vnd.oasis.opendocument.presentation-template | odp              |
diff --git a/tests/acceptance/features/apiCollaboration/serviceAvailabilityCheck.feature b/tests/acceptance/features/apiCollaboration/serviceAvailabilityCheck.feature
new file mode 100644
index 00000000000..866c2d1fbc8
--- /dev/null
+++ b/tests/acceptance/features/apiCollaboration/serviceAvailabilityCheck.feature
@@ -0,0 +1,15 @@
+Feature: service health check
+
+
+  Scenario: check service health
+    When a user requests these endpoints with "GET" and no authentication
+      | endpoint                              | service       |
+      | %collaboration_hostname%:9304/healthz | collaboration |
+    Then the HTTP status code of responses on all endpoints should be "200"
+
+
+  Scenario: check service readiness
+    When a user requests these endpoints with "GET" and no authentication
+      | endpoint                             | service       |
+      | %collaboration_hostname%:9304/readyz | collaboration |
+    Then the HTTP status code of responses on all endpoints should be "200"
diff --git a/tests/acceptance/features/apiCollaboration/wopi.feature b/tests/acceptance/features/apiCollaboration/wopi.feature
index 8fbfffae8de..741e003a5a5 100644
--- a/tests/acceptance/features/apiCollaboration/wopi.feature
+++ b/tests/acceptance/features/apiCollaboration/wopi.feature
@@ -1080,52 +1080,3 @@ Feature: collaboration (wopi)
       """
     And for user "Alice" folder "testFolder" of the space "new-space" should not contain these files:
       | simple.odt |
-
-
-  Scenario Outline: create a file using a template
-    Given using spaces DAV path
-    And user "Alice" has uploaded file "filesForUpload/<template>" to "<template>"
-    And we save it into "TEMPLATEID"
-    And user "Alice" has created a file "<target>" using wopi endpoint
-    And we save it into "FILEID"
-    When user "Alice" sends HTTP method "POST" to URL "<app-endpoint>"
-    Then the HTTP status code should be "200"
-    And the JSON data of the response should match
-      """
-      {
-        "type": "object",
-        "required": [
-          "app_url",
-          "method",
-          "form_parameters"
-        ],
-        "properties": {
-          "app_url": {
-            "type": "string",
-            "pattern": "^.*\\?WOPISrc=.*wopi%2Ffiles%2F[a-fA-F0-9]{64}$"
-          },
-          "method": {
-            "const": "POST"
-          },
-          "form_parameters": {
-            "type": "object",
-            "required": [
-              "access_token",
-              "access_token_ttl"
-            ],
-            "properties": {
-              "access_token": {
-                "type": "string"
-              },
-              "access_token_ttl": {
-                "type": "string"
-              }
-            }
-          }
-        }
-      }
-      """
-    Examples:
-      | app-endpoint                                                                                | template      | target        |
-      | /app/open?file_id=<<FILEID>>&app_name=Collabora&view_mode=write&template_id=<<TEMPLATEID>>  | template.ott  | template.odt  |
-      | /app/open?file_id=<<FILEID>>&app_name=OnlyOffice&view_mode=write&template_id=<<TEMPLATEID>> | template.dotx | template.docx |
diff --git a/tests/acceptance/features/apiNotification/serviceAvailabilityCheck.feature b/tests/acceptance/features/apiNotification/serviceAvailabilityCheck.feature
new file mode 100644
index 00000000000..1f343875ab6
--- /dev/null
+++ b/tests/acceptance/features/apiNotification/serviceAvailabilityCheck.feature
@@ -0,0 +1,15 @@
+Feature: service health check
+
+
+  Scenario: check service health
+    When a user requests these endpoints with "GET" and no authentication
+      | endpoint                         | service      |
+      | %base_url_hostname%:9174/healthz | notification |
+    Then the HTTP status code of responses on all endpoints should be "200"
+
+
+  Scenario: check service readiness
+    When a user requests these endpoints with "GET" and no authentication
+      | endpoint                        | service      |
+      | %base_url_hostname%:9174/readyz | notification |
+    Then the HTTP status code of responses on all endpoints should be "200"
diff --git a/tests/acceptance/features/apiOcm/share.feature b/tests/acceptance/features/apiOcm/share.feature
index 5ce6bbcca16..0aacfeb0d8e 100755
--- a/tests/acceptance/features/apiOcm/share.feature
+++ b/tests/acceptance/features/apiOcm/share.feature
@@ -753,26 +753,3 @@ Feature: an user shares resources using ScienceMesh application
     Then the HTTP status code should be "200"
     And the downloaded image should be "32" pixels wide and "32" pixels high
     And the downloaded preview content should match with "thumbnail.png" fixtures preview content
-
-  @issue-10358
-  Scenario: user edits content of a federated share file
-    Given using spaces DAV path
-    And using server "LOCAL"
-    And "Alice" has created the federation share invitation
-    And using server "REMOTE"
-    And "Brian" has accepted invitation
-    And using server "LOCAL"
-    And user "Alice" has uploaded file with content "ocm test" to "/textfile.txt"
-    And user "Alice" has sent the following resource share invitation to federated user:
-      | resource        | textfile.txt |
-      | space           | Personal     |
-      | sharee          | Brian        |
-      | shareType       | user         |
-      | permissionsRole | File Editor  |
-    And using server "REMOTE"
-    And for user "Brian" the content of file "textfile.txt" of federated share "textfile.txt" should be "ocm test"
-    When user "Brian" updates the content of federated share "textfile.txt" with "this is a new content" using the WebDAV API
-    Then the HTTP status code should be "204"
-    And for user "Brian" the content of file "textfile.txt" of federated share "textfile.txt" should be "this is a new content"
-    And using server "LOCAL"
-    And for user "Alice" the content of the file "textfile.txt" of the space "Personal" should be "this is a new content"
diff --git a/tests/acceptance/features/apiServiceAvailability/serviceAvailabilityCheck.feature b/tests/acceptance/features/apiServiceAvailability/serviceAvailabilityCheck.feature
new file mode 100644
index 00000000000..faf55b6aaa8
--- /dev/null
+++ b/tests/acceptance/features/apiServiceAvailability/serviceAvailabilityCheck.feature
@@ -0,0 +1,119 @@
+Feature: service health check
+
+
+  Scenario: check default services health
+    When a user requests these endpoints with "GET" and no authentication
+      | endpoint                         | service            |
+      | %base_url_hostname%:9197/healthz | activitylog        |
+      | %base_url_hostname%:9165/healthz | app-provider       |
+      | %base_url_hostname%:9243/healthz | app-registry       |
+      | %base_url_hostname%:9147/healthz | auth-basic         |
+      | %base_url_hostname%:9167/healthz | auth-machine       |
+      | %base_url_hostname%:9198/healthz | auth-service       |
+      | %base_url_hostname%:9260/healthz | clientlog          |
+      | %base_url_hostname%:9270/healthz | eventhistory       |
+      | %base_url_hostname%:9141/healthz | frontend           |
+      | %base_url_hostname%:9143/healthz | gateway            |
+      | %base_url_hostname%:9124/healthz | graph              |
+      | %base_url_hostname%:9161/healthz | groups             |
+      | %base_url_hostname%:9239/healthz | idm                |
+      | %base_url_hostname%:9134/healthz | idp                |
+      | %base_url_hostname%:9234/healthz | nats               |
+      | %base_url_hostname%:9163/healthz | ocdav              |
+      | %base_url_hostname%:9281/healthz | ocm                |
+      | %base_url_hostname%:9114/healthz | ocs                |
+      | %base_url_hostname%:9255/healthz | postprocessing     |
+      | %base_url_hostname%:9205/healthz | proxy              |
+      | %base_url_hostname%:9224/healthz | search             |
+      | %base_url_hostname%:9194/healthz | settings           |
+      | %base_url_hostname%:9151/healthz | sharing            |
+      | %base_url_hostname%:9139/healthz | sse                |
+      | %base_url_hostname%:9179/healthz | storage-publiclink |
+      | %base_url_hostname%:9156/healthz | storage-shares     |
+      | %base_url_hostname%:9217/healthz | storage-system     |
+      | %base_url_hostname%:9159/healthz | storage-users      |
+      | %base_url_hostname%:9189/healthz | thumbnails         |
+      | %base_url_hostname%:9214/healthz | userlog            |
+      | %base_url_hostname%:9145/healthz | users              |
+      | %base_url_hostname%:9104/healthz | web                |
+      | %base_url_hostname%:9119/healthz | webdav             |
+      | %base_url_hostname%:9279/healthz | webfinger          |
+    Then the HTTP status code of responses on all endpoints should be "200"
+
+  @env-config
+  Scenario: check extra services health
+    Given the following configs have been set:
+      | config                 | value                                           |
+      | OCIS_ADD_RUN_SERVICES  | audit,auth-app,auth-bearer,policies,invitations |
+      | AUDIT_DEBUG_ADDR       | 0.0.0.0:9229                                    |
+      | AUTH_APP_DEBUG_ADDR    | 0.0.0.0:9245                                    |
+      | AUTH_BEARER_DEBUG_ADDR | 0.0.0.0:9149                                    |
+      | POLICIES_DEBUG_ADDR    | 0.0.0.0:9129                                    |
+      | INVITATIONS_DEBUG_ADDR | 0.0.0.0:9269                                    |
+    When a user requests these endpoints with "GET" and no authentication
+      | endpoint                         | service     |
+      | %base_url_hostname%:9229/healthz | audit       |
+      | %base_url_hostname%:9245/healthz | auth-app    |
+      | %base_url_hostname%:9149/healthz | auth-bearer |
+      | %base_url_hostname%:9269/healthz | invitations |
+      | %base_url_hostname%:9129/healthz | policies    |
+    Then the HTTP status code of responses on all endpoints should be "200"
+
+
+  Scenario: check default services readiness
+    When a user requests these endpoints with "GET" and no authentication
+      | endpoint                        | service            |
+      | %base_url_hostname%:9197/readyz | activitylog        |
+      | %base_url_hostname%:9165/readyz | app-provider       |
+      | %base_url_hostname%:9243/readyz | app-registry       |
+      | %base_url_hostname%:9147/readyz | auth-basic         |
+      | %base_url_hostname%:9167/readyz | auth-machine       |
+      | %base_url_hostname%:9198/readyz | auth-service       |
+      | %base_url_hostname%:9260/readyz | clientlog          |
+      | %base_url_hostname%:9270/readyz | eventhistory       |
+      | %base_url_hostname%:9141/readyz | frontend           |
+      | %base_url_hostname%:9143/readyz | gateway            |
+      | %base_url_hostname%:9124/readyz | graph              |
+      | %base_url_hostname%:9161/readyz | groups             |
+      | %base_url_hostname%:9239/readyz | idm                |
+      | %base_url_hostname%:9134/readyz | idp                |
+      | %base_url_hostname%:9234/readyz | nats               |
+      | %base_url_hostname%:9163/readyz | ocdav              |
+      | %base_url_hostname%:9281/readyz | ocm                |
+      | %base_url_hostname%:9114/readyz | ocs                |
+      | %base_url_hostname%:9255/readyz | postprocessing     |
+      | %base_url_hostname%:9205/readyz | proxy              |
+      | %base_url_hostname%:9224/readyz | search             |
+      | %base_url_hostname%:9194/readyz | settings           |
+      | %base_url_hostname%:9151/readyz | sharing            |
+      | %base_url_hostname%:9139/readyz | sse                |
+      | %base_url_hostname%:9179/readyz | storage-publiclink |
+      | %base_url_hostname%:9156/readyz | storage-shares     |
+      | %base_url_hostname%:9217/readyz | storage-system     |
+      | %base_url_hostname%:9159/readyz | storage-users      |
+      | %base_url_hostname%:9189/readyz | thumbnails         |
+      | %base_url_hostname%:9214/readyz | userlog            |
+      | %base_url_hostname%:9145/readyz | users              |
+      | %base_url_hostname%:9104/readyz | web                |
+      | %base_url_hostname%:9119/readyz | webdav             |
+      | %base_url_hostname%:9279/readyz | webfinger          |
+    Then the HTTP status code of responses on all endpoints should be "200"
+
+  @env-config
+  Scenario: check extra services readiness
+    Given the following configs have been set:
+      | config                 | value                                           |
+      | OCIS_ADD_RUN_SERVICES  | audit,auth-app,auth-bearer,policies,invitations |
+      | AUDIT_DEBUG_ADDR       | 0.0.0.0:9229                                    |
+      | AUTH_APP_DEBUG_ADDR    | 0.0.0.0:9245                                    |
+      | AUTH_BEARER_DEBUG_ADDR | 0.0.0.0:9149                                    |
+      | POLICIES_DEBUG_ADDR    | 0.0.0.0:9129                                    |
+      | INVITATIONS_DEBUG_ADDR | 0.0.0.0:9269                                    |
+    When a user requests these endpoints with "GET" and no authentication
+      | endpoint                        | service     |
+      | %base_url_hostname%:9229/readyz | audit       |
+      | %base_url_hostname%:9245/readyz | auth-app    |
+      | %base_url_hostname%:9149/readyz | auth-bearer |
+      | %base_url_hostname%:9269/readyz | invitations |
+      | %base_url_hostname%:9129/readyz | policies    |
+    Then the HTTP status code of responses on all endpoints should be "200"