Migrate omsorgapp to browser SPA, add Docker/CI build setup
Docker-Images bauen und veröffentlichen / build (, omsorgCore/Dockerfile, omsorgcore) (push) Successful in 3s
Docker-Images bauen und veröffentlichen / build (, omsorgWeb/Dockerfile, omsorgweb) (push) Failing after 4s
Docker-Images bauen und veröffentlichen / build (VITE_OMSORG_CORE_URL=${{ vars.OMSORG_CORE_PUBLIC_URL }}, omsorgapp/Dockerfile, omsorgapp) (push) Successful in 3s

- omsorgapp: drop Electron, run as a plain Vite/React browser app; refresh
  token moves to an HttpOnly cookie (omsorgCore), CORS added for the new
  browser origin, document download/preview switched to Blob-based browser
  APIs.
- Add Dockerfiles for omsorgCore, omsorgapp, and omsorgWeb, a docker-compose.yml
  wiring Postgres/MySQL/all three apps together, and a Gitea Actions workflow
  that builds and pushes images to the repo's container registry on push to
  main and on version tags.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Felix Kemmler
2026-08-10 17:42:45 +02:00
co-authored by Claude Sonnet 5
parent e9e96a57dc
commit 598dfcd38a
461 changed files with 59753 additions and 2859 deletions
+6 -26
View File
@@ -23,10 +23,8 @@ import type {
ForgotPasswordVerifyResponse,
LoginRequest,
LoginResponse,
LogoutRequest,
MeResponse,
PasswordPolicyResponse,
RefreshRequest,
} from '../models/index';
import {
ChangePasswordRequestFromJSON,
@@ -45,14 +43,10 @@ import {
LoginRequestToJSON,
LoginResponseFromJSON,
LoginResponseToJSON,
LogoutRequestFromJSON,
LogoutRequestToJSON,
MeResponseFromJSON,
MeResponseToJSON,
PasswordPolicyResponseFromJSON,
PasswordPolicyResponseToJSON,
RefreshRequestFromJSON,
RefreshRequestToJSON,
} from '../models/index';
export interface ApiAuthChangePasswordPostRequest {
@@ -75,14 +69,6 @@ export interface ApiAuthLoginPostRequest {
loginRequest?: LoginRequest;
}
export interface ApiAuthLogoutPostRequest {
logoutRequest?: LogoutRequest;
}
export interface ApiAuthRefreshPostRequest {
refreshRequest?: RefreshRequest;
}
/**
*
*/
@@ -278,13 +264,11 @@ export class AuthApi extends runtime.BaseAPI {
/**
*/
async apiAuthLogoutPostRaw(requestParameters: ApiAuthLogoutPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>> {
async apiAuthLogoutPostRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>> {
const queryParameters: any = {};
const headerParameters: runtime.HTTPHeaders = {};
headerParameters['Content-Type'] = 'application/json';
if (this.configuration && this.configuration.accessToken) {
const token = this.configuration.accessToken;
const tokenString = await token("Bearer", []);
@@ -301,7 +285,6 @@ export class AuthApi extends runtime.BaseAPI {
method: 'POST',
headers: headerParameters,
query: queryParameters,
body: LogoutRequestToJSON(requestParameters['logoutRequest']),
}, initOverrides);
return new runtime.VoidApiResponse(response);
@@ -309,8 +292,8 @@ export class AuthApi extends runtime.BaseAPI {
/**
*/
async apiAuthLogoutPost(requestParameters: ApiAuthLogoutPostRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void> {
await this.apiAuthLogoutPostRaw(requestParameters, initOverrides);
async apiAuthLogoutPost(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void> {
await this.apiAuthLogoutPostRaw(initOverrides);
}
/**
@@ -385,13 +368,11 @@ export class AuthApi extends runtime.BaseAPI {
/**
*/
async apiAuthRefreshPostRaw(requestParameters: ApiAuthRefreshPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<LoginResponse>> {
async apiAuthRefreshPostRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<LoginResponse>> {
const queryParameters: any = {};
const headerParameters: runtime.HTTPHeaders = {};
headerParameters['Content-Type'] = 'application/json';
if (this.configuration && this.configuration.accessToken) {
const token = this.configuration.accessToken;
const tokenString = await token("Bearer", []);
@@ -408,7 +389,6 @@ export class AuthApi extends runtime.BaseAPI {
method: 'POST',
headers: headerParameters,
query: queryParameters,
body: RefreshRequestToJSON(requestParameters['refreshRequest']),
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => LoginResponseFromJSON(jsonValue));
@@ -416,8 +396,8 @@ export class AuthApi extends runtime.BaseAPI {
/**
*/
async apiAuthRefreshPost(requestParameters: ApiAuthRefreshPostRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<LoginResponse> {
const response = await this.apiAuthRefreshPostRaw(requestParameters, initOverrides);
async apiAuthRefreshPost(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<LoginResponse> {
const response = await this.apiAuthRefreshPostRaw(initOverrides);
return await response.value();
}