{"id":19538546,"url":"https://github.com/indoqa/indoqa-boot","last_synced_at":"2025-09-14T18:12:46.015Z","repository":{"id":29225000,"uuid":"32756714","full_name":"Indoqa/indoqa-boot","owner":"Indoqa","description":"Bootstrap your project based on Javaspark, Spring, Jackson and Log4j2","archived":false,"fork":false,"pushed_at":"2025-09-11T07:23:58.000Z","size":381,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-09-11T10:44:32.238Z","etag":null,"topics":["annotations","frontend-backend","indoqa-boot","indoqa-library","jackson","jackson-json-processor","java","javaspark","log4j","spring"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Indoqa.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2015-03-23T20:21:17.000Z","updated_at":"2025-09-11T07:24:01.000Z","dependencies_parsed_at":"2022-08-30T09:11:24.118Z","dependency_job_id":"453e79c6-9298-4ea3-9dfb-aa4b6e531483","html_url":"https://github.com/Indoqa/indoqa-boot","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/Indoqa/indoqa-boot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Indoqa%2Findoqa-boot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Indoqa%2Findoqa-boot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Indoqa%2Findoqa-boot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Indoqa%2Findoqa-boot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Indoqa","download_url":"https://codeload.github.com/Indoqa/indoqa-boot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Indoqa%2Findoqa-boot/sbom","scorecard":{"id":66242,"data":{"date":"2025-08-11","repo":{"name":"github.com/Indoqa/indoqa-boot","commit":"96f940f2ad8f5d8b207a11b34aab3f84dbfbfd4e"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.6,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":1,"reason":"2 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-15T02:39:29.473Z","repository_id":29225000,"created_at":"2025-08-15T02:39:29.473Z","updated_at":"2025-08-15T02:39:29.473Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275144918,"owners_count":25413111,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-14T02:00:10.474Z","response_time":75,"last_error":null,"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":["annotations","frontend-backend","indoqa-boot","indoqa-library","jackson","jackson-json-processor","java","javaspark","log4j","spring"],"created_at":"2024-11-11T02:35:27.665Z","updated_at":"2025-09-14T18:12:45.972Z","avatar_url":"https://github.com/Indoqa.png","language":"Java","readme":"# Indoqa Boot\n[![Javadocs](https://www.javadoc.io/badge/com.indoqa/indoqa-boot.svg)](https://www.javadoc.io/doc/com.indoqa/indoqa-boot)\n\n## Getting started\n\nThe best way to bootstrap an Indoqa-Boot application is using the [indoqa-quickstart-boot](https://github.com/Indoqa/indoqa-quickstart/tree/master/indoqa-quickstart-boot) Maven archetype:\n\n```bash\nmvn archetype:generate \\\n  -DarchetypeGroupId=com.indoqa.quickstart \\\n  -DarchetypeArtifactId=quickstart-boot-archetype \\\n  -DarchetypeVersion=0.15.0\n```\n\n## Changelog\n[Learn about the lastest improvements](./CHANGELOG.md)\n\n## Motivation and history\n\nIn 2015 [Indoqa](https://www.indoqa.com) started to look for alternatives to traditional Java web application frameworks like JSF, Apache Wicket or Vaadin. During this journey we decided to give up Java for building web frontends and switch to Javascript. This had brought us to the question how we wanted to implement the Backend for Frontend (BFF). One alternative would have been to use node.js for the BFF implementation but in our opinion the Java platform is still years ahead in terms of stability and available libraries and tools for the development of server side applications.\n\nThe first obvious choice would have been using [Spring Boot](https://projects.spring.io/spring-boot/) but we were overwhelmed with annotations and the learning curve. We only needed a simple framework to provide RESTful resources and a JSON transformer. We came across [Javaspark](http://sparkjava.com/) and were immediately intrigued by its simplicity. The integration with [Jackson](https://github.com/FasterXML/jackson) was quickly done and this was the basis for the first internal release of Indoqa Boot. The third ingredient was the [Spring Framework](https://projects.spring.io/spring-framework/), which we use as dependency injection framework since its alpha days and helps us to structure our code.\n\n## Goals\n\n * Build on stable and widely adopted open source software with active communities\n\n * Simple project setup, cover HTTP endpoints, JSON, dependency injection and logging\n\n * Seamless integration of [React](https://facebook.github.io/react/)/[Redux](http://redux.js.org/) single page applications based on [@indoqa/react-app](https://github.com/Indoqa/indoqa-react) and [Create-React-App](https://facebook.github.io/create-react-app/).\n\n * Reduce the usage of annotations to a minimum. We are not strictly against annotations (we use them e.g. for the mapping of Java objects to JSON) but for the most other use cases (e.g. configuration of Indoqa-Boot, creation of HTTP endpoints) we prefer to write plain Java code.\n\n * Support of web service HTTP proxies\n\n * Creation of an as small as possible runnable Java archive (currently 11.5 megabytes) to make the distribution and the deployment of the application simple by not relying on (bloated) Java application servers\n\n * Small memory footprint\n\n * Fast startup times (\u003c 1 second) and short development cycles\n\n * Central dependency management using a Maven bill of material (BOM) to centrally manage library updates\n\n## Technologies\n\nIndoqa-Boot is built upon following open source libraries and frameworks:\n\n * [Javaspark](http://sparkjava.com/) which comes with [Jetty](http://www.eclipse.org/jetty/)\n * [Jackson](https://github.com/FasterXML/jackson)\n * [Spring Framework](https://projects.spring.io/spring-framework/)\n * [log4j2](https://logging.apache.org/log4j/2.x/)\n\n Additionally we use following Indoqa open source libraries:\n\n * [indoqa-http-proxy](https://github.com/Indoqa/http-proxy) to proxy pass other web services without having to deal with CORS\n * [system-test-tools](https://github.com/Indoqa/system-test-tools) for a DSL to setup and run integration tests against HTTP endpoints\n * [jar-in-jar](https://github.com/Indoqa/jar-in-jar) to create runnable JAR files\n * [indoqa-boot-bom](https://github.com/Indoqa/indoqa-boot-bom/blob/master/pom.xml) to manage Indoqa Boot relevant dependencies\n\n## Usage\n\n * [Initialization in your Java main method](./docs/initialization-java-main.md)\n * [Spring: Manage your components](./docs/spring-manage-your-components.md)\n * [Spark: Register your HTTP endpoints](./docs/spark-register-http-endpoints.md)\n * [Jackson: Dealing with Json](./docs/jackson-dealing-with-json.md)\n * [Configuration: Provide properties for run profiles, ports etc.](./docs/configuration-provide-properties.md)\n * [React/Redux: Integrate a Javascript single page application](./docs/react-redux-single-page-application.md)\n * [log4j2: Configure logging]()\n * [Monitoring: Health checks and system info]()\n * [Maven: Configure your Maven build and produce deployment artifacts]()\n * [Hot-reload Java]()\n * [Integration tests]()\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Findoqa%2Findoqa-boot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Findoqa%2Findoqa-boot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Findoqa%2Findoqa-boot/lists"}