{"id":21862303,"url":"https://github.com/innfactory/bootstrap-akka-graphql","last_synced_at":"2025-09-09T23:44:49.319Z","repository":{"id":103671845,"uuid":"100128665","full_name":"innFactory/bootstrap-akka-graphql","owner":"innFactory","description":"bootstrap template for akka microservices with an graphql endpoint ","archived":false,"fork":false,"pushed_at":"2017-08-13T00:54:52.000Z","size":26,"stargazers_count":11,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-09T16:14:35.879Z","etag":null,"topics":["akka","akka-http","aws","cognito-user-pool","flyway","graphql","graphql-server","hikaricp","jdk8","log4j","microservice","postgresql","sangria-graphql","scala"],"latest_commit_sha":null,"homepage":"https://innfactory.de","language":"Scala","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/innFactory.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}},"created_at":"2017-08-12T17:50:40.000Z","updated_at":"2020-11-16T19:29:16.000Z","dependencies_parsed_at":"2023-07-07T00:45:52.821Z","dependency_job_id":null,"html_url":"https://github.com/innFactory/bootstrap-akka-graphql","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/innFactory/bootstrap-akka-graphql","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/innFactory%2Fbootstrap-akka-graphql","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/innFactory%2Fbootstrap-akka-graphql/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/innFactory%2Fbootstrap-akka-graphql/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/innFactory%2Fbootstrap-akka-graphql/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/innFactory","download_url":"https://codeload.github.com/innFactory/bootstrap-akka-graphql/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/innFactory%2Fbootstrap-akka-graphql/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259945809,"owners_count":22935893,"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","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":["akka","akka-http","aws","cognito-user-pool","flyway","graphql","graphql-server","hikaricp","jdk8","log4j","microservice","postgresql","sangria-graphql","scala"],"created_at":"2024-11-28T03:14:37.727Z","updated_at":"2025-06-15T08:39:11.250Z","avatar_url":"https://github.com/innFactory.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"Akka-http graphQL Bootstrap\n=========================\n\n[![travis-ci.org](https://travis-ci.org/innFactory/bootstrap-akka-graphql.svg?branch=master)](https://travis-ci.org/innFactory/bootstrap-akka-graphql)\n[![codecov.io](https://img.shields.io/codecov/c/github/innFactory/bootstrap-akka-graphql/master.svg?style=flat)](https://codecov.io/github/innFactory/bootstrap-akka-graphql)\n[![shields.io](http://img.shields.io/badge/license-Apache2-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0.txt)\n[![jonato.de](https://img.shields.io/badge/Version-1.0-brightgreen.svg)](https://innFactory.de)\n\n## Info\nThis is a boilerplate template for a akka graphql microservice with slick and flyway database migration. You can use it to create your own GraphQL Services on top of the lightbend stack.\n\n### Requirements\n* JDK8 [http://www.oracle.com/technetwork/java/javase/downloads/index.html](http://www.oracle.com/technetwork/java/javase/downloads/index.html))\n* sbt([http://www.scala-sbt.org/release/docs/Getting-Started/Setup.html](http://www.scala-sbt.org/release/docs/Getting-Started/Setup.html))\n* docker for dockerbuild ([https://www.docker.com/community-edition/](https://www.docker.com/community-edition/))\n* aws account if you want to use a cognito userpool for authentifaction ([https://aws.amazon.com/de/](https://aws.amazon.com/de/))\n\n### Implemented Features\n\n* Integration of *graphiql* ui ```localhost:8080```\n* Integration *sangria* for graphql\n* CRUD Repositorys via *slick-repo* with a sample service with get and add implemented\n* CORS Support via *akka-http-cors*\n* Implemented Authentication with AWS Cognito (JWK) and JWT Token via *nimbusds* (in *Java*) - For Tests All Requests are allowed\n* Test coverage with *ScalaTest* and *scoverage* code coverage report\n* Ready for *Docker* deployment and *CloudFormation* deployment\n* Config file with optional runtime parameters\n* In-Memory Postgres SQL database for tests\n* Flyway database migration\n* *HikariCP* as connection pool\n* Logging via *Log4j* with a xml template\n\n## Configuration\n* Start a PostgreSQL Database via RDS, Docker or locally\n* Create a Userpool with AWS Cognito if you need AWS Authentication.\n* Configure your application.conf and the docker.conf (`src/main/resources/`) (application.conf in test has to stay as it is, for running in a in-memory postgresql instance)\n\n### Environment variables \n- `SQL_URL` - database url by scheme `jdbc:postgresql://host:port/database-name`\n- `SQL_USER` - database user\n- `SQL_PASSWORD` - database password\n- `NIC_IP` - IP Address bounded to the http service default is 0.0.0.0\n- `NIC_PORT` - TCP Port used for the http service default is 8080\n- `USER_POOL` - Define an other cognito user pool than the preconfigured userpool\n\n\n## Run application\nTo run application, call:\n```\nsbt run\n```\nIf you wanna restart your application without reloading of sbt, use (*revolver* sbt plugin):\n```\nsbt re-start\n```\n\n### Run in Docker\nFor launching application in Docker, you must configure database docker instance and run docker image, generated by sbt.\n\nGenerating application docker image and publishing on localhost:\n```\nsbt docker:publishLocal\n```\n\nExample of running, generated docker image:\n```\ndocker run --name akkaHttp -e SQL_USER=dbuser -e SQL_PASSWORD=dbpass -e SQL_URL=jdbcURL -d -p 9090:9000 APPLICATION_IMAGE\n```\n- `APPLICATION_IMAGE` - id or name of application docker image\n\nlook at ```--link``` parameter if the database is also a docker container\n\n## Test\nTo run tests, call:\n```\nsbt test\n```\n\nTo run all tests, with codecoverage, call:\n\n```sbt clean coverage test```\n\nTo generate a coverage report afterwars the testrun, call:\n\n```sbt coverageReport```\n\n## More Info\nWe will write a blog post soon on innFactory about microservice development.\n\n## Copyright \u0026 Contributers\nTobias Jonas\n\nCopyright (C) 2017 [innFactory Cloud- \u0026 DataEngineering](https://innFactory.de)\n\nPublished under the Apache 2 License.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finnfactory%2Fbootstrap-akka-graphql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finnfactory%2Fbootstrap-akka-graphql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finnfactory%2Fbootstrap-akka-graphql/lists"}