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
@@ -0,0 +1,133 @@
<?php
/**
* AbsencesApiTest
* PHP version 8.1
*
* @category Class
* @package OmsorgCoreClient
* @author OpenAPI Generator team
* @link https://openapi-generator.tech
*/
/**
* OmsorgCore.Api
*
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: 1.0
* Generated by: https://openapi-generator.tech
* Generator version: 7.14.0
*/
/**
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Please update the test case below to test the endpoint.
*/
namespace OmsorgCoreClient\Test\Api;
use \OmsorgCoreClient\Configuration;
use \OmsorgCoreClient\ApiException;
use \OmsorgCoreClient\ObjectSerializer;
use PHPUnit\Framework\TestCase;
/**
* AbsencesApiTest Class Doc Comment
*
* @category Class
* @package OmsorgCoreClient
* @author OpenAPI Generator team
* @link https://openapi-generator.tech
*/
class AbsencesApiTest extends TestCase
{
/**
* Setup before running any test cases
*/
public static function setUpBeforeClass(): void
{
}
/**
* Setup before running each test case
*/
public function setUp(): void
{
}
/**
* Clean up after running each test case
*/
public function tearDown(): void
{
}
/**
* Clean up after running all test cases
*/
public static function tearDownAfterClass(): void
{
}
/**
* Test case for apiAbsencesGet
*
* .
*
*/
public function testApiAbsencesGet()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiAbsencesIdDecisionPost
*
* .
*
*/
public function testApiAbsencesIdDecisionPost()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiAbsencesIdDelete
*
* .
*
*/
public function testApiAbsencesIdDelete()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiAbsencesIdGet
*
* .
*
*/
public function testApiAbsencesIdGet()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiAbsencesPost
*
* .
*
*/
public function testApiAbsencesPost()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
}
@@ -0,0 +1,133 @@
<?php
/**
* DocumentsApiTest
* PHP version 8.1
*
* @category Class
* @package OmsorgCoreClient
* @author OpenAPI Generator team
* @link https://openapi-generator.tech
*/
/**
* OmsorgCore.Api
*
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: 1.0
* Generated by: https://openapi-generator.tech
* Generator version: 7.14.0
*/
/**
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Please update the test case below to test the endpoint.
*/
namespace OmsorgCoreClient\Test\Api;
use \OmsorgCoreClient\Configuration;
use \OmsorgCoreClient\ApiException;
use \OmsorgCoreClient\ObjectSerializer;
use PHPUnit\Framework\TestCase;
/**
* DocumentsApiTest Class Doc Comment
*
* @category Class
* @package OmsorgCoreClient
* @author OpenAPI Generator team
* @link https://openapi-generator.tech
*/
class DocumentsApiTest extends TestCase
{
/**
* Setup before running any test cases
*/
public static function setUpBeforeClass(): void
{
}
/**
* Setup before running each test case
*/
public function setUp(): void
{
}
/**
* Clean up after running each test case
*/
public function tearDown(): void
{
}
/**
* Clean up after running all test cases
*/
public static function tearDownAfterClass(): void
{
}
/**
* Test case for apiDocumentsGet
*
* .
*
*/
public function testApiDocumentsGet()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiDocumentsIdDelete
*
* .
*
*/
public function testApiDocumentsIdDelete()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiDocumentsIdDownloadGet
*
* .
*
*/
public function testApiDocumentsIdDownloadGet()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiDocumentsIdPut
*
* .
*
*/
public function testApiDocumentsIdPut()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiDocumentsPost
*
* .
*
*/
public function testApiDocumentsPost()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
}
@@ -0,0 +1,121 @@
<?php
/**
* FacilityQualificationRatesApiTest
* PHP version 8.1
*
* @category Class
* @package OmsorgCoreClient
* @author OpenAPI Generator team
* @link https://openapi-generator.tech
*/
/**
* OmsorgCore.Api
*
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: 1.0
* Generated by: https://openapi-generator.tech
* Generator version: 7.14.0
*/
/**
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Please update the test case below to test the endpoint.
*/
namespace OmsorgCoreClient\Test\Api;
use \OmsorgCoreClient\Configuration;
use \OmsorgCoreClient\ApiException;
use \OmsorgCoreClient\ObjectSerializer;
use PHPUnit\Framework\TestCase;
/**
* FacilityQualificationRatesApiTest Class Doc Comment
*
* @category Class
* @package OmsorgCoreClient
* @author OpenAPI Generator team
* @link https://openapi-generator.tech
*/
class FacilityQualificationRatesApiTest extends TestCase
{
/**
* Setup before running any test cases
*/
public static function setUpBeforeClass(): void
{
}
/**
* Setup before running each test case
*/
public function setUp(): void
{
}
/**
* Clean up after running each test case
*/
public function tearDown(): void
{
}
/**
* Clean up after running all test cases
*/
public static function tearDownAfterClass(): void
{
}
/**
* Test case for apiFacilitiesFacilityIdQualificationRatesGet
*
* .
*
*/
public function testApiFacilitiesFacilityIdQualificationRatesGet()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiFacilitiesFacilityIdQualificationRatesIdDelete
*
* .
*
*/
public function testApiFacilitiesFacilityIdQualificationRatesIdDelete()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiFacilitiesFacilityIdQualificationRatesIdPut
*
* .
*
*/
public function testApiFacilitiesFacilityIdQualificationRatesIdPut()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiFacilitiesFacilityIdQualificationRatesPost
*
* .
*
*/
public function testApiFacilitiesFacilityIdQualificationRatesPost()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
}
@@ -0,0 +1,157 @@
<?php
/**
* TimeEntriesApiTest
* PHP version 8.1
*
* @category Class
* @package OmsorgCoreClient
* @author OpenAPI Generator team
* @link https://openapi-generator.tech
*/
/**
* OmsorgCore.Api
*
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: 1.0
* Generated by: https://openapi-generator.tech
* Generator version: 7.14.0
*/
/**
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Please update the test case below to test the endpoint.
*/
namespace OmsorgCoreClient\Test\Api;
use \OmsorgCoreClient\Configuration;
use \OmsorgCoreClient\ApiException;
use \OmsorgCoreClient\ObjectSerializer;
use PHPUnit\Framework\TestCase;
/**
* TimeEntriesApiTest Class Doc Comment
*
* @category Class
* @package OmsorgCoreClient
* @author OpenAPI Generator team
* @link https://openapi-generator.tech
*/
class TimeEntriesApiTest extends TestCase
{
/**
* Setup before running any test cases
*/
public static function setUpBeforeClass(): void
{
}
/**
* Setup before running each test case
*/
public function setUp(): void
{
}
/**
* Clean up after running each test case
*/
public function tearDown(): void
{
}
/**
* Clean up after running all test cases
*/
public static function tearDownAfterClass(): void
{
}
/**
* Test case for apiTimeEntriesGet
*
* .
*
*/
public function testApiTimeEntriesGet()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiTimeEntriesIdDecisionPost
*
* .
*
*/
public function testApiTimeEntriesIdDecisionPost()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiTimeEntriesIdDelete
*
* .
*
*/
public function testApiTimeEntriesIdDelete()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiTimeEntriesIdGet
*
* .
*
*/
public function testApiTimeEntriesIdGet()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiTimeEntriesIdPut
*
* .
*
*/
public function testApiTimeEntriesIdPut()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiTimeEntriesIdSubmitPost
*
* .
*
*/
public function testApiTimeEntriesIdSubmitPost()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiTimeEntriesPost
*
* .
*
*/
public function testApiTimeEntriesPost()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
}
@@ -0,0 +1,241 @@
<?php
/**
* TrashApiTest
* PHP version 8.1
*
* @category Class
* @package OmsorgCoreClient
* @author OpenAPI Generator team
* @link https://openapi-generator.tech
*/
/**
* OmsorgCore.Api
*
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: 1.0
* Generated by: https://openapi-generator.tech
* Generator version: 7.14.0
*/
/**
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Please update the test case below to test the endpoint.
*/
namespace OmsorgCoreClient\Test\Api;
use \OmsorgCoreClient\Configuration;
use \OmsorgCoreClient\ApiException;
use \OmsorgCoreClient\ObjectSerializer;
use PHPUnit\Framework\TestCase;
/**
* TrashApiTest Class Doc Comment
*
* @category Class
* @package OmsorgCoreClient
* @author OpenAPI Generator team
* @link https://openapi-generator.tech
*/
class TrashApiTest extends TestCase
{
/**
* Setup before running any test cases
*/
public static function setUpBeforeClass(): void
{
}
/**
* Setup before running each test case
*/
public function setUp(): void
{
}
/**
* Clean up after running each test case
*/
public function tearDown(): void
{
}
/**
* Clean up after running all test cases
*/
public static function tearDownAfterClass(): void
{
}
/**
* Test case for apiTrashAbsencesGet
*
* .
*
*/
public function testApiTrashAbsencesGet()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiTrashAbsencesIdRestorePost
*
* .
*
*/
public function testApiTrashAbsencesIdRestorePost()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiTrashContractsGet
*
* .
*
*/
public function testApiTrashContractsGet()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiTrashContractsIdRestorePost
*
* .
*
*/
public function testApiTrashContractsIdRestorePost()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiTrashEmployeesGet
*
* .
*
*/
public function testApiTrashEmployeesGet()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiTrashEmployeesIdRestorePost
*
* .
*
*/
public function testApiTrashEmployeesIdRestorePost()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiTrashFacilitiesGet
*
* .
*
*/
public function testApiTrashFacilitiesGet()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiTrashFacilitiesIdRestorePost
*
* .
*
*/
public function testApiTrashFacilitiesIdRestorePost()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiTrashFacilityContactsGet
*
* .
*
*/
public function testApiTrashFacilityContactsGet()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiTrashFacilityContactsIdRestorePost
*
* .
*
*/
public function testApiTrashFacilityContactsIdRestorePost()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiTrashFacilityQualificationRatesGet
*
* .
*
*/
public function testApiTrashFacilityQualificationRatesGet()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiTrashFacilityQualificationRatesIdRestorePost
*
* .
*
*/
public function testApiTrashFacilityQualificationRatesIdRestorePost()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiTrashOrdersGet
*
* .
*
*/
public function testApiTrashOrdersGet()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test case for apiTrashOrdersIdRestorePost
*
* .
*
*/
public function testApiTrashOrdersIdRestorePost()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
}