From 42544a2478ae000b1db92af920fba75a733a01c9 Mon Sep 17 00:00:00 2001 From: Daniel Svitan Date: Sun, 11 May 2025 11:13:56 +0200 Subject: [PATCH] :wrench: Changes plugin config --- backend/build.gradle.kts | 4 ++-- backend/src/main/kotlin/Application.kt | 8 +++++++- backend/src/main/kotlin/UsersSchema.kt | 2 +- .../src/main/kotlin/{ => plugins}/Administration.kt | 2 +- backend/src/main/kotlin/{ => plugins}/Databases.kt | 4 +++- backend/src/main/kotlin/{ => plugins}/HTTP.kt | 7 +++---- backend/src/main/kotlin/{ => plugins}/Monitoring.kt | 2 +- backend/src/main/kotlin/{ => plugins}/Routing.kt | 10 +++++++++- backend/src/main/kotlin/{ => plugins}/Security.kt | 4 ++-- backend/src/test/kotlin/ApplicationTest.kt | 2 +- 10 files changed, 30 insertions(+), 15 deletions(-) rename backend/src/main/kotlin/{ => plugins}/Administration.kt (94%) rename backend/src/main/kotlin/{ => plugins}/Databases.kt (94%) rename backend/src/main/kotlin/{ => plugins}/HTTP.kt (82%) rename backend/src/main/kotlin/{ => plugins}/Monitoring.kt (91%) rename backend/src/main/kotlin/{ => plugins}/Routing.kt (77%) rename backend/src/main/kotlin/{ => plugins}/Security.kt (91%) diff --git a/backend/build.gradle.kts b/backend/build.gradle.kts index 70673b3..1badbbd 100644 --- a/backend/build.gradle.kts +++ b/backend/build.gradle.kts @@ -9,11 +9,11 @@ plugins { id("org.jetbrains.kotlin.plugin.serialization") version "2.1.10" } -group = "svitan.dev" +group = "dev.svitan" version = "0.0.1" application { - mainClass = "svitan.dev.ApplicationKt" + mainClass = "dev.svitan.ApplicationKt" } repositories { diff --git a/backend/src/main/kotlin/Application.kt b/backend/src/main/kotlin/Application.kt index 2fed4bd..b827da0 100644 --- a/backend/src/main/kotlin/Application.kt +++ b/backend/src/main/kotlin/Application.kt @@ -1,9 +1,15 @@ -package svitan.dev +package dev.svitan import io.github.cdimascio.dotenv.dotenv import io.ktor.server.application.* import io.ktor.server.engine.* import io.ktor.server.netty.* +import dev.svitan.plugins.configureAdministration +import dev.svitan.plugins.configureDatabases +import dev.svitan.plugins.configureHTTP +import dev.svitan.plugins.configureMonitoring +import dev.svitan.plugins.configureRouting +import dev.svitan.plugins.configureSecurity fun main() { embeddedServer( diff --git a/backend/src/main/kotlin/UsersSchema.kt b/backend/src/main/kotlin/UsersSchema.kt index 13e8fe6..055a448 100644 --- a/backend/src/main/kotlin/UsersSchema.kt +++ b/backend/src/main/kotlin/UsersSchema.kt @@ -1,4 +1,4 @@ -package svitan.dev +package dev.svitan import kotlinx.coroutines.Dispatchers import kotlinx.serialization.Serializable diff --git a/backend/src/main/kotlin/Administration.kt b/backend/src/main/kotlin/plugins/Administration.kt similarity index 94% rename from backend/src/main/kotlin/Administration.kt rename to backend/src/main/kotlin/plugins/Administration.kt index 3f3bbf8..fff8a6d 100644 --- a/backend/src/main/kotlin/Administration.kt +++ b/backend/src/main/kotlin/plugins/Administration.kt @@ -1,4 +1,4 @@ -package svitan.dev +package dev.svitan.plugins import io.github.flaxoos.ktor.server.plugins.ratelimiter.RateLimiting import io.github.flaxoos.ktor.server.plugins.ratelimiter.implementations.TokenBucket diff --git a/backend/src/main/kotlin/Databases.kt b/backend/src/main/kotlin/plugins/Databases.kt similarity index 94% rename from backend/src/main/kotlin/Databases.kt rename to backend/src/main/kotlin/plugins/Databases.kt index ee3e1d9..9d2204c 100644 --- a/backend/src/main/kotlin/Databases.kt +++ b/backend/src/main/kotlin/plugins/Databases.kt @@ -1,4 +1,4 @@ -package svitan.dev +package dev.svitan.plugins import io.ktor.http.* import io.ktor.server.application.* @@ -6,6 +6,8 @@ import io.ktor.server.request.* import io.ktor.server.response.* import io.ktor.server.routing.* import org.jetbrains.exposed.sql.Database +import dev.svitan.ExposedUser +import dev.svitan.UserService fun Application.configureDatabases() { val database = Database.connect( diff --git a/backend/src/main/kotlin/HTTP.kt b/backend/src/main/kotlin/plugins/HTTP.kt similarity index 82% rename from backend/src/main/kotlin/HTTP.kt rename to backend/src/main/kotlin/plugins/HTTP.kt index 456e944..7a2b5f1 100644 --- a/backend/src/main/kotlin/HTTP.kt +++ b/backend/src/main/kotlin/plugins/HTTP.kt @@ -1,4 +1,4 @@ -package svitan.dev +package dev.svitan.plugins import io.ktor.http.* import io.ktor.server.application.* @@ -8,11 +8,10 @@ import io.ktor.server.plugins.cors.routing.* fun Application.configureHTTP() { install(CORS) { allowMethod(HttpMethod.Options) + allowMethod(HttpMethod.Post) allowMethod(HttpMethod.Put) - allowMethod(HttpMethod.Delete) allowMethod(HttpMethod.Patch) - allowHeader(HttpHeaders.Authorization) - allowHeader("MyCustomHeader") + allowMethod(HttpMethod.Delete) anyHost() // @TODO: Don't do this in production if possible. Try to limit it. } install(Compression) diff --git a/backend/src/main/kotlin/Monitoring.kt b/backend/src/main/kotlin/plugins/Monitoring.kt similarity index 91% rename from backend/src/main/kotlin/Monitoring.kt rename to backend/src/main/kotlin/plugins/Monitoring.kt index 716d676..7ac46d8 100644 --- a/backend/src/main/kotlin/Monitoring.kt +++ b/backend/src/main/kotlin/plugins/Monitoring.kt @@ -1,4 +1,4 @@ -package svitan.dev +package dev.svitan.plugins import io.ktor.server.application.* import io.ktor.server.plugins.calllogging.* diff --git a/backend/src/main/kotlin/Routing.kt b/backend/src/main/kotlin/plugins/Routing.kt similarity index 77% rename from backend/src/main/kotlin/Routing.kt rename to backend/src/main/kotlin/plugins/Routing.kt index b21a8ea..d1ad409 100644 --- a/backend/src/main/kotlin/Routing.kt +++ b/backend/src/main/kotlin/plugins/Routing.kt @@ -1,10 +1,12 @@ -package svitan.dev +package dev.svitan.plugins import io.ktor.http.* import io.ktor.server.application.* import io.ktor.server.plugins.requestvalidation.* import io.ktor.server.plugins.statuspages.* import io.ktor.server.response.* +import io.ktor.server.routing.get +import io.ktor.server.routing.routing fun Application.configureRouting() { install(RequestValidation) { @@ -20,4 +22,10 @@ fun Application.configureRouting() { call.respondText(text = "500: $cause", status = HttpStatusCode.InternalServerError) } } + + routing { + get("/") { + call.respond("Hello World!") + } + } } diff --git a/backend/src/main/kotlin/Security.kt b/backend/src/main/kotlin/plugins/Security.kt similarity index 91% rename from backend/src/main/kotlin/Security.kt rename to backend/src/main/kotlin/plugins/Security.kt index a482064..cb47fb8 100644 --- a/backend/src/main/kotlin/Security.kt +++ b/backend/src/main/kotlin/plugins/Security.kt @@ -1,4 +1,4 @@ -package svitan.dev +package dev.svitan.plugins import io.github.cdimascio.dotenv.Dotenv import io.ktor.server.application.* @@ -9,7 +9,7 @@ fun Application.configureSecurity(dotenv: Dotenv) { authentication { basic { - realm = "Ktor Server" + realm = "ktor" validate { credentials -> if (credentials.name == "admin" && credentials.password == apiKey) { UserIdPrincipal(credentials.name) diff --git a/backend/src/test/kotlin/ApplicationTest.kt b/backend/src/test/kotlin/ApplicationTest.kt index d48cde1..64cc7af 100644 --- a/backend/src/test/kotlin/ApplicationTest.kt +++ b/backend/src/test/kotlin/ApplicationTest.kt @@ -1,4 +1,4 @@ -package svitan.dev +package dev.svitan import io.ktor.client.request.* import io.ktor.http.*