Ktor GraphQL Template
A template to use ktor with GraphQL and MongoDB
To configure the library to the desired shape. It is better to configure it in these steps.
Change the available environment variables
Configure the plugins at the
You might skip routing configuration until you configure your routes later on the process.
You might skip session configuration until you configure your session models, user models, role classes and privilege factories.
Configure Runtime/GraphQL/MongoDB models at
You might flag permission checks until you configure your permissions.
Configured project enums and data classes at
In this step you configure available roles, permissions, permits and privilege factories and other project-wide constants.
Finally, you might define your REST routes and your GraphQL query, mutation and subscription fields.
- Ktor: The server/client framework
Mongo Java Driver: The core mongodb driver
KMongo: A mongodb library optimized for kotlin
Mangaka: A mongodb library for schema validation.
GraphQL-Java: The core graphql driver
Kaguya: A graphql library optimized for kotlin
Tink: Main encryption library
BCrypt: Hashing library
BCrypt-Kt: A bcrypt library optimized for kotlin
Dotenv: Environment variables parser
Openperm: Permission calculator
Cufy Ktor Commons: Common utilities for
Logback Classic: Core logging framework