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
@@ -131,6 +131,7 @@ class AuditLogApi
* @param string|null $entity_type entity_type (optional)
* @param string|null $entity_id entity_id (optional)
* @param string|null $actor_user_id actor_user_id (optional)
* @param \OmsorgCoreClient\Model\AuditEventCategory|null $category category (optional)
* @param \DateTime|null $from_utc from_utc (optional)
* @param \DateTime|null $to_utc to_utc (optional)
* @param int|null $page page (optional, default to 1)
@@ -141,9 +142,9 @@ class AuditLogApi
* @throws \InvalidArgumentException
* @return \OmsorgCoreClient\Model\AuditLogEntryResponsePagedResponse
*/
public function apiAuditLogGet($entity_type = null, $entity_id = null, $actor_user_id = null, $from_utc = null, $to_utc = null, $page = 1, $page_size = 50, string $contentType = self::contentTypes['apiAuditLogGet'][0])
public function apiAuditLogGet($entity_type = null, $entity_id = null, $actor_user_id = null, $category = null, $from_utc = null, $to_utc = null, $page = 1, $page_size = 50, string $contentType = self::contentTypes['apiAuditLogGet'][0])
{
list($response) = $this->apiAuditLogGetWithHttpInfo($entity_type, $entity_id, $actor_user_id, $from_utc, $to_utc, $page, $page_size, $contentType);
list($response) = $this->apiAuditLogGetWithHttpInfo($entity_type, $entity_id, $actor_user_id, $category, $from_utc, $to_utc, $page, $page_size, $contentType);
return $response;
}
@@ -153,6 +154,7 @@ class AuditLogApi
* @param string|null $entity_type (optional)
* @param string|null $entity_id (optional)
* @param string|null $actor_user_id (optional)
* @param \OmsorgCoreClient\Model\AuditEventCategory|null $category (optional)
* @param \DateTime|null $from_utc (optional)
* @param \DateTime|null $to_utc (optional)
* @param int|null $page (optional, default to 1)
@@ -163,9 +165,9 @@ class AuditLogApi
* @throws \InvalidArgumentException
* @return array of \OmsorgCoreClient\Model\AuditLogEntryResponsePagedResponse, HTTP status code, HTTP response headers (array of strings)
*/
public function apiAuditLogGetWithHttpInfo($entity_type = null, $entity_id = null, $actor_user_id = null, $from_utc = null, $to_utc = null, $page = 1, $page_size = 50, string $contentType = self::contentTypes['apiAuditLogGet'][0])
public function apiAuditLogGetWithHttpInfo($entity_type = null, $entity_id = null, $actor_user_id = null, $category = null, $from_utc = null, $to_utc = null, $page = 1, $page_size = 50, string $contentType = self::contentTypes['apiAuditLogGet'][0])
{
$request = $this->apiAuditLogGetRequest($entity_type, $entity_id, $actor_user_id, $from_utc, $to_utc, $page, $page_size, $contentType);
$request = $this->apiAuditLogGetRequest($entity_type, $entity_id, $actor_user_id, $category, $from_utc, $to_utc, $page, $page_size, $contentType);
try {
$options = $this->createHttpClientOption();
@@ -242,6 +244,7 @@ class AuditLogApi
* @param string|null $entity_type (optional)
* @param string|null $entity_id (optional)
* @param string|null $actor_user_id (optional)
* @param \OmsorgCoreClient\Model\AuditEventCategory|null $category (optional)
* @param \DateTime|null $from_utc (optional)
* @param \DateTime|null $to_utc (optional)
* @param int|null $page (optional, default to 1)
@@ -251,9 +254,9 @@ class AuditLogApi
* @throws \InvalidArgumentException
* @return \GuzzleHttp\Promise\PromiseInterface
*/
public function apiAuditLogGetAsync($entity_type = null, $entity_id = null, $actor_user_id = null, $from_utc = null, $to_utc = null, $page = 1, $page_size = 50, string $contentType = self::contentTypes['apiAuditLogGet'][0])
public function apiAuditLogGetAsync($entity_type = null, $entity_id = null, $actor_user_id = null, $category = null, $from_utc = null, $to_utc = null, $page = 1, $page_size = 50, string $contentType = self::contentTypes['apiAuditLogGet'][0])
{
return $this->apiAuditLogGetAsyncWithHttpInfo($entity_type, $entity_id, $actor_user_id, $from_utc, $to_utc, $page, $page_size, $contentType)
return $this->apiAuditLogGetAsyncWithHttpInfo($entity_type, $entity_id, $actor_user_id, $category, $from_utc, $to_utc, $page, $page_size, $contentType)
->then(
function ($response) {
return $response[0];
@@ -267,6 +270,7 @@ class AuditLogApi
* @param string|null $entity_type (optional)
* @param string|null $entity_id (optional)
* @param string|null $actor_user_id (optional)
* @param \OmsorgCoreClient\Model\AuditEventCategory|null $category (optional)
* @param \DateTime|null $from_utc (optional)
* @param \DateTime|null $to_utc (optional)
* @param int|null $page (optional, default to 1)
@@ -276,10 +280,10 @@ class AuditLogApi
* @throws \InvalidArgumentException
* @return \GuzzleHttp\Promise\PromiseInterface
*/
public function apiAuditLogGetAsyncWithHttpInfo($entity_type = null, $entity_id = null, $actor_user_id = null, $from_utc = null, $to_utc = null, $page = 1, $page_size = 50, string $contentType = self::contentTypes['apiAuditLogGet'][0])
public function apiAuditLogGetAsyncWithHttpInfo($entity_type = null, $entity_id = null, $actor_user_id = null, $category = null, $from_utc = null, $to_utc = null, $page = 1, $page_size = 50, string $contentType = self::contentTypes['apiAuditLogGet'][0])
{
$returnType = '\OmsorgCoreClient\Model\AuditLogEntryResponsePagedResponse';
$request = $this->apiAuditLogGetRequest($entity_type, $entity_id, $actor_user_id, $from_utc, $to_utc, $page, $page_size, $contentType);
$request = $this->apiAuditLogGetRequest($entity_type, $entity_id, $actor_user_id, $category, $from_utc, $to_utc, $page, $page_size, $contentType);
return $this->client
->sendAsync($request, $this->createHttpClientOption())
@@ -323,6 +327,7 @@ class AuditLogApi
* @param string|null $entity_type (optional)
* @param string|null $entity_id (optional)
* @param string|null $actor_user_id (optional)
* @param \OmsorgCoreClient\Model\AuditEventCategory|null $category (optional)
* @param \DateTime|null $from_utc (optional)
* @param \DateTime|null $to_utc (optional)
* @param int|null $page (optional, default to 1)
@@ -332,7 +337,7 @@ class AuditLogApi
* @throws \InvalidArgumentException
* @return \GuzzleHttp\Psr7\Request
*/
public function apiAuditLogGetRequest($entity_type = null, $entity_id = null, $actor_user_id = null, $from_utc = null, $to_utc = null, $page = 1, $page_size = 50, string $contentType = self::contentTypes['apiAuditLogGet'][0])
public function apiAuditLogGetRequest($entity_type = null, $entity_id = null, $actor_user_id = null, $category = null, $from_utc = null, $to_utc = null, $page = 1, $page_size = 50, string $contentType = self::contentTypes['apiAuditLogGet'][0])
{
@@ -343,6 +348,7 @@ class AuditLogApi
$resourcePath = '/api/audit-log';
$formParams = [];
$queryParams = [];
@@ -378,6 +384,15 @@ class AuditLogApi
false // required
) ?? []);
// query params
$queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
$category,
'category', // param base name
'AuditEventCategory', // openApiType
'form', // style
true, // explode
false // required
) ?? []);
// query params
$queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
$from_utc,
'fromUtc', // param base name