{"id":36626601,"url":"https://github.com/viascom/spring-boot-starter-maintenance","last_synced_at":"2026-01-12T09:32:39.542Z","repository":{"id":38017495,"uuid":"438303560","full_name":"viascom/spring-boot-starter-maintenance","owner":"viascom","description":"Maintenance mode library and auto-configuration for spring boot web and security projects.","archived":false,"fork":false,"pushed_at":"2025-06-02T12:57:29.000Z","size":582,"stargazers_count":4,"open_issues_count":14,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-06-03T01:41:27.798Z","etag":null,"topics":["auto-configuration","java","kotlin","library","spring-boot","spring-boot-security","spring-boot-web"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/viascom.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-12-14T15:26:21.000Z","updated_at":"2024-09-26T10:02:31.000Z","dependencies_parsed_at":"2024-05-06T00:24:44.999Z","dependency_job_id":"99cf408d-6d44-41cc-b895-f573ebbdf194","html_url":"https://github.com/viascom/spring-boot-starter-maintenance","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/viascom/spring-boot-starter-maintenance","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viascom%2Fspring-boot-starter-maintenance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viascom%2Fspring-boot-starter-maintenance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viascom%2Fspring-boot-starter-maintenance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viascom%2Fspring-boot-starter-maintenance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/viascom","download_url":"https://codeload.github.com/viascom/spring-boot-starter-maintenance/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viascom%2Fspring-boot-starter-maintenance/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28337728,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T06:09:07.588Z","status":"ssl_error","status_checked_at":"2026-01-12T06:05:18.301Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["auto-configuration","java","kotlin","library","spring-boot","spring-boot-security","spring-boot-web"],"created_at":"2026-01-12T09:32:39.481Z","updated_at":"2026-01-12T09:32:39.530Z","avatar_url":"https://github.com/viascom.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# spring-boot-starter-maintenance\n\n![Build Status](https://github.com/viascom/spring-boot-starter-maintenance/actions/workflows/build.yml/badge.svg)\n[![License: Unlicense](https://img.shields.io/badge/license-Unlicense-blue.svg)](http://unlicense.org/)\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.viascom.devutils/spring-boot-starter-maintenance/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.viascom.devutils/spring-boot-starter-maintenance/)\n\n**spring-boot-starter-maintenance** is an extensible auto-configuration library for spring boot web and security\nprojects supporting Java and Kotlin applications to block access to your application during maintenances and still\nprovide a secure open door for your maintainers.\n\nWith spring-boot-starter-maintenance anyone can easily make use of best practices during maintenance work on their\napplications. In fact, every HTTP client will receive a response with status code 503 - Service Unavailable during\nmaintenance. This library provides additionally injection points for alert- and clean-up tasks.\n\nspring-boot-starter-maintenance is ready to use out of the box for most common setups. Even for uncommon applications\nand technologies, it should be simple to implement the necessary interfaces to connect a library/framework/etc. to it.\n\n## Requirements\n\nJDK \u003e= 1.8\n\nspring-boot-starter-maintenance depends on the following two dependencies and will not start without them present.\n\n- org.springframework.boot:spring-boot-starter-web *(required)*\n- org.springframework.boot:spring-boot-starter-security *(required)*\n\n## Download\n\nGradle:\n\n```gradle\ndependencies {\n  implementation 'io.viascom.devutils:spring-boot-starter-maintenance:0.0.1'\n}\n```\n\nMaven:\n\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003eio.viascom.devutils\u003c/groupId\u003e\n  \u003cartifactId\u003espring-boot-starter-maintenance\u003c/artifactId\u003e\n  \u003cversion\u003e0.0.1\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n[spring-boot-starter-maintenance jar downloads](https://maven-badges.herokuapp.com/maven-central/io.viascom.devutils/spring-boot-starter-maintenance)\nare available from Maven Central.\n\n## Getting Started\n\nOpen your implementation of the WebSecurityConfigurerAdapter (f.e. named WebSecurityConfig) and add the following three\nparts:\n\n**Step 1:** Autowire maintenance\n\n```java\n@Autowired\nprivate Maintenance maintenance;\n```\n\n**Step 2:** Add a request matcher\n\n```java\n.authorizeRequests()\n.requestMatchers(new DefaultMaintenanceRequestMatcher(maintenance)).denyAll()\n```\n\n**Step 3:** Add a access denie handler\n\n```java\n.exceptionHandling()\n.accessDeniedHandler(new DefaultMaintenanceAccessDeniedHandler(maintenance))\n```\n\n## Configuration Properties\n\n### Basic configuration example\n\n```yaml\nmaintenance:\n  enabled: true\n  roles:\n    - ADMIN\n```\n\n### Full configuration example\n\n```yaml\nmaintenance:\n  enabled: true\n  roles:\n    - MAINTAINER\n    - ADMIN\n  alert: true\n  clean: true\n  retry-after: 30\n  events: true\n```\n\n### Maintenance properties\n\nAll properties can be accessed under the property `maintenance`.\n\n| Name        | Description                                                                                                                      | Default Value |\n|-------------|----------------------------------------------------------------------------------------------------------------------------------|---------------|\n| enabled     | Enable to instantiate the maintenance mode as active.                                                                            | false         |\n| roles       | Roles to be allowed the access to the API during a maintenance. This property is case-sensitive.                                 | *none*        |\n| alert       | Enable to run all classes implementing the MaintenanceAlert interface during the start maintenance process.                      | false         |\n| clean       | Enable to run all classes implementing the MaintenanceCleaner interface during the stop maintenance process.                     | false         |\n| retry-after | Default value for the \"Retry-After\" response HTTP header in seconds, which is used in the DefaultMaintenanceAccessDeniedHandler. | 60            |\n| events      | Enable to publish spring events for maintenance events.                                                                          | false         |\n\n## Versioning 🔖 [![GitHub release](https://img.shields.io/github/release/viascom/spring-boot-starter-maintenance/all?logo=GitHub)](https://github.com/viascom/spring-boot-starter-maintenance/releases/latest)\n\nThis project is developed by [Viascom](https://github.com/viascom) using\nthe [Semantic Versioning specification](https://semver.org). For the versions available, see\nthe [releases on this repository](https://github.com/viascom/spring-boot-starter-maintenance/releases).\n\n## Change log 📝\n\nSee the [CHANGELOG](CHANGELOG.md) file for details.\n\n## Authors 🖥️\n\n* **Nikola Stanković** - *Initial work* - [botscripter](https://github.com/botscripter)\n* **Patrick Bösch** - *Initial work* - [itsmefox](https://github.com/itsmefox)\n\nSee also the list of [contributors](https://github.com/viascom/spring-boot-starter-maintenance/contributors) who\nparticipated in this project. 💕\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) file.\n\n🙏 If you like spring-boot-starter-maintenance you can show support by starring ⭐ this repository.\n\n## License\n\nspring-boot-starter-maintenance is released under the [Unlicense](LICENSE).\n\n```\nThis is free and unencumbered software released into the public domain.\n\nAnyone is free to copy, modify, publish, use, compile, sell, or\ndistribute this software, either in source code form or as a compiled\nbinary, for any purpose, commercial or non-commercial, and by any\nmeans.\n\nIn jurisdictions that recognize copyright laws, the author or authors\nof this software dedicate any and all copyright interest in the\nsoftware to the public domain. We make this dedication for the benefit\nof the public at large and to the detriment of our heirs and\nsuccessors. We intend this dedication to be an overt act of\nrelinquishment in perpetuity of all present and future rights to this\nsoftware under copyright law.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\nARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE.\n\nFor more information, please refer to \u003chttp://unlicense.org/\u003e\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviascom%2Fspring-boot-starter-maintenance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fviascom%2Fspring-boot-starter-maintenance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviascom%2Fspring-boot-starter-maintenance/lists"}