{"id":44763449,"url":"https://github.com/range79/range-meili-validator","last_synced_at":"2026-02-16T03:30:56.530Z","repository":{"id":334383171,"uuid":"1141066778","full_name":"range79/range-meili-validator","owner":"range79","description":null,"archived":false,"fork":false,"pushed_at":"2026-02-15T00:46:07.000Z","size":218,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-15T08:11:54.643Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/range79.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-24T07:18:36.000Z","updated_at":"2026-02-15T00:46:03.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/range79/range-meili-validator","commit_stats":null,"previous_names":["range79/chris-meili-validator","range79/range-meili-validator"],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/range79/range-meili-validator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/range79%2Frange-meili-validator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/range79%2Frange-meili-validator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/range79%2Frange-meili-validator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/range79%2Frange-meili-validator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/range79","download_url":"https://codeload.github.com/range79/range-meili-validator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/range79%2Frange-meili-validator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29499615,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T02:07:14.481Z","status":"online","status_checked_at":"2026-02-16T02:03:22.852Z","response_time":115,"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":true,"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":[],"created_at":"2026-02-16T03:30:55.827Z","updated_at":"2026-02-16T03:30:56.508Z","avatar_url":"https://github.com/range79.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# range Meilisearch Startup Validator \nIdea credit: Chris\n\n\n## Latest version\n[![](https://jitpack.io/v/range79/range-meili-validator.svg)](https://jitpack.io/#range79/Chris-meili-validator)\n\nThis library solves a simple but annoying problem:\n\nSpring Boot starts.  \nMeilisearch is not fully ready yet.  \nYour application crashes because it tries to use Meili too early.\n\nThis validator blocks application startup until Meilisearch is actually healthy.\n\n---\n\n## Modules\n\nThis project is split into two modules:\n\n### core\n- Pure Java\n- No Spring dependency\n- Can be used in any JVM application\n- Manually triggered validation\n\n### spring\n- Spring Boot integration\n- Automatically runs validation during application startup\n- Depends on `core` (you don’t need to add `core` manually)\n\n---\n\n## Installation\n\n### Maven\n\nAdd JitPack repository:\n\n```xml\n\u003crepositories\u003e\n  \u003crepository\u003e\n    \u003cid\u003ejitpack.io\u003c/id\u003e\n    \u003curl\u003ehttps://jitpack.io\u003c/url\u003e\n  \u003c/repository\u003e\n\u003c/repositories\u003e\n````\n\n#### Core only\n\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003ecom.github.range79\u003c/groupId\u003e\n  \u003cartifactId\u003erange-meili-validator-core\u003c/artifactId\u003e\n  \u003cversion\u003e1.6.1\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n#### Spring Boot integration\n\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003ecom.github.range79\u003c/groupId\u003e\n  \u003cartifactId\u003erange-meili-validator-spring\u003c/artifactId\u003e\n  \u003cversion\u003e1.6.1\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n---\n\n### Gradle\n\nAdd JitPack repository:\n\n```gradle\nrepositories {\n    mavenCentral()\n    maven { url = uri(\"https://jitpack.io\") }\n}\n```\n\n#### Core only\n\n```gradle\nimplementation(\"com.github.range79:range-meili-validator-core:1.6.1\")\n```\n\n#### Spring Boot integration\n\n```gradle\nimplementation(\"com.github.range79:range-meili-validator-spring:1.6.1\")\n```\n\nWhen you use the Spring module, `core` is included automatically.\n\n---\n\n## Configuration (Spring Boot)\n\nSet Meili search URL in your application configuration:\n\n```properties\nmeili.startup.url=\u003cYour-Meili-app-url\u003e like(http://localhost:7070)(default url is https://localhost:7070)\n```\n\nOptional settings:\n\n```properties\n# How often (in seconds) the system checks whether Meilisearch is ready.\n# Default: 1\n# Increasing this value is recommended when log-mode is enabled,\n# because very small intervals may cause excessive log output.\nmeili.startup.interval=\n\n# Maximum time (in seconds) to wait for Meili search to become ready.\n# Default: 30\nmeili.startup.timeout=\n\n# Optional API key.\n# Only set this if your Meilisearch instance was started with an API key.\nmeili.startup.api-key=YOUR_MEILI_API_KEY\n```\n\n# what is interval ?\ninterval is the frequency at which requests are sent during the timeout period.\nIn other words, it defines how often the system should check Meili until the timeout is reached.\n\n\n## ⚠Disclaimer: Master API Key Required\n\n**Important:** If your Meilisearch instance requires a master API key:\n\n- **Invalid API key**, or  \n- **No API key provided** while the instance enforces authentication  \n\nwill cause the application to **terminate immediately**.\n\nThe validator will log a clear error message and then call:\n\n```java\nSystem.exit(1);\n```\n\nThis ensures the application does **not continue running without proper authentication**, preventing any unsafe attempts to query Meilisearch.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frange79%2Frange-meili-validator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frange79%2Frange-meili-validator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frange79%2Frange-meili-validator/lists"}