From a01f964b531f12fd89cbdb0f2132aecbfaebf546 Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Sat, 30 Jul 2022 12:15:10 +0200 Subject: refactor(web/server): Create standalone OpenDC distribution This change updates the Quarkus configuration of the OpenDC web server to serve as a fully standalone distribution that is capable of serving the web UI, web API, and experiment runner. Such an approach vastly simplifies local deployments. For Docker deployments, we create a custom Quarkus profile that uses PostgreSQL and disables the web UI. --- .../main/resources/application-docker.properties | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 opendc-web/opendc-web-server/src/main/resources/application-docker.properties (limited to 'opendc-web/opendc-web-server/src/main/resources/application-docker.properties') diff --git a/opendc-web/opendc-web-server/src/main/resources/application-docker.properties b/opendc-web/opendc-web-server/src/main/resources/application-docker.properties new file mode 100644 index 00000000..cd1f9ff3 --- /dev/null +++ b/opendc-web/opendc-web-server/src/main/resources/application-docker.properties @@ -0,0 +1,50 @@ +# Copyright (c) 2022 AtLarge Research +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +# Configuration for standalone Docker server distribution without web UI. + +# Datasource +quarkus.datasource.db-kind=postgresql +quarkus.datasource.username=${OPENDC_DB_USERNAME} +quarkus.datasource.password=${OPENDC_DB_PASSWORD} +quarkus.datasource.jdbc.url=${OPENDC_DB_URL} + +# Hibernate +quarkus.hibernate-orm.dialect=org.hibernate.dialect.PostgreSQL95Dialect +quarkus.hibernate-orm.database.generation=validate + +# Disable OpenDC web UI +quarkus.opendc-ui.include=false + +# Security +opendc.security.enabled=true +quarkus.oidc.auth-server-url=https://${OPENDC_AUTH0_DOMAIN} +quarkus.oidc.client-id=${OPENDC_AUTH0_AUDIENCE} +quarkus.oidc.token.audience=${quarkus.oidc.client-id} +quarkus.oidc.roles.role-claim-path=scope + +# Swagger UI +quarkus.swagger-ui.oauth-client-id=${OPENDC_AUTH0_DOCS_CLIENT_ID:} +quarkus.swagger-ui.oauth-additional-query-string-params={"audience":"${OPENDC_AUTH0_AUDIENCE:https://api.opendc.org/v2/}"} + +quarkus.smallrye-openapi.security-scheme=oidc +quarkus.smallrye-openapi.security-scheme-name=Auth0 +quarkus.smallrye-openapi.oidc-open-id-connect-url=https://${OPENDC_AUTH0_DOMAIN:opendc.eu.auth0.com}/.well-known/openid-configuration +quarkus.smallrye-openapi.servers=https://api.opendc.org -- cgit v1.2.3 From acfab9d4ca84e9331bb40c74d300c593915c542a Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Mon, 1 Aug 2022 21:51:18 +0200 Subject: feat(web/server): Implement database migrations using Flyway This change updates the Quarkus-based web server to use Flyway for migrating between schema versions. This enables us to evolve the schema and denote it in SQL. --- .../opendc-web-server/src/main/resources/application-docker.properties | 1 - 1 file changed, 1 deletion(-) (limited to 'opendc-web/opendc-web-server/src/main/resources/application-docker.properties') diff --git a/opendc-web/opendc-web-server/src/main/resources/application-docker.properties b/opendc-web/opendc-web-server/src/main/resources/application-docker.properties index cd1f9ff3..eae9ee1e 100644 --- a/opendc-web/opendc-web-server/src/main/resources/application-docker.properties +++ b/opendc-web/opendc-web-server/src/main/resources/application-docker.properties @@ -28,7 +28,6 @@ quarkus.datasource.jdbc.url=${OPENDC_DB_URL} # Hibernate quarkus.hibernate-orm.dialect=org.hibernate.dialect.PostgreSQL95Dialect -quarkus.hibernate-orm.database.generation=validate # Disable OpenDC web UI quarkus.opendc-ui.include=false -- cgit v1.2.3