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
@@ -58,9 +58,10 @@ class UserPermissionOverrideResponse implements ModelInterface, ArrayAccess, \Js
*/
protected static $openAPITypes = [
'id' => 'string',
'module' => 'string',
'action' => 'string',
'effect' => 'string'
'module' => '\OmsorgCoreClient\Model\ModuleType',
'action' => '\OmsorgCoreClient\Model\PermissionAction',
'effect' => '\OmsorgCoreClient\Model\PermissionEffect',
'scope' => '\OmsorgCoreClient\Model\PermissionScope'
];
/**
@@ -74,7 +75,8 @@ class UserPermissionOverrideResponse implements ModelInterface, ArrayAccess, \Js
'id' => 'uuid',
'module' => null,
'action' => null,
'effect' => null
'effect' => null,
'scope' => null
];
/**
@@ -84,9 +86,10 @@ class UserPermissionOverrideResponse implements ModelInterface, ArrayAccess, \Js
*/
protected static array $openAPINullables = [
'id' => false,
'module' => true,
'action' => true,
'effect' => true
'module' => false,
'action' => false,
'effect' => false,
'scope' => false
];
/**
@@ -178,7 +181,8 @@ class UserPermissionOverrideResponse implements ModelInterface, ArrayAccess, \Js
'id' => 'id',
'module' => 'module',
'action' => 'action',
'effect' => 'effect'
'effect' => 'effect',
'scope' => 'scope'
];
/**
@@ -190,7 +194,8 @@ class UserPermissionOverrideResponse implements ModelInterface, ArrayAccess, \Js
'id' => 'setId',
'module' => 'setModule',
'action' => 'setAction',
'effect' => 'setEffect'
'effect' => 'setEffect',
'scope' => 'setScope'
];
/**
@@ -202,7 +207,8 @@ class UserPermissionOverrideResponse implements ModelInterface, ArrayAccess, \Js
'id' => 'getId',
'module' => 'getModule',
'action' => 'getAction',
'effect' => 'getEffect'
'effect' => 'getEffect',
'scope' => 'getScope'
];
/**
@@ -266,6 +272,7 @@ class UserPermissionOverrideResponse implements ModelInterface, ArrayAccess, \Js
$this->setIfExists('module', $data ?? [], null);
$this->setIfExists('action', $data ?? [], null);
$this->setIfExists('effect', $data ?? [], null);
$this->setIfExists('scope', $data ?? [], null);
}
/**
@@ -340,7 +347,7 @@ class UserPermissionOverrideResponse implements ModelInterface, ArrayAccess, \Js
/**
* Gets module
*
* @return string|null
* @return \OmsorgCoreClient\Model\ModuleType|null
*/
public function getModule()
{
@@ -350,21 +357,14 @@ class UserPermissionOverrideResponse implements ModelInterface, ArrayAccess, \Js
/**
* Sets module
*
* @param string|null $module module
* @param \OmsorgCoreClient\Model\ModuleType|null $module module
*
* @return self
*/
public function setModule($module)
{
if (is_null($module)) {
array_push($this->openAPINullablesSetToNull, 'module');
} else {
$nullablesSetToNull = $this->getOpenAPINullablesSetToNull();
$index = array_search('module', $nullablesSetToNull);
if ($index !== FALSE) {
unset($nullablesSetToNull[$index]);
$this->setOpenAPINullablesSetToNull($nullablesSetToNull);
}
throw new \InvalidArgumentException('non-nullable module cannot be null');
}
$this->container['module'] = $module;
@@ -374,7 +374,7 @@ class UserPermissionOverrideResponse implements ModelInterface, ArrayAccess, \Js
/**
* Gets action
*
* @return string|null
* @return \OmsorgCoreClient\Model\PermissionAction|null
*/
public function getAction()
{
@@ -384,21 +384,14 @@ class UserPermissionOverrideResponse implements ModelInterface, ArrayAccess, \Js
/**
* Sets action
*
* @param string|null $action action
* @param \OmsorgCoreClient\Model\PermissionAction|null $action action
*
* @return self
*/
public function setAction($action)
{
if (is_null($action)) {
array_push($this->openAPINullablesSetToNull, 'action');
} else {
$nullablesSetToNull = $this->getOpenAPINullablesSetToNull();
$index = array_search('action', $nullablesSetToNull);
if ($index !== FALSE) {
unset($nullablesSetToNull[$index]);
$this->setOpenAPINullablesSetToNull($nullablesSetToNull);
}
throw new \InvalidArgumentException('non-nullable action cannot be null');
}
$this->container['action'] = $action;
@@ -408,7 +401,7 @@ class UserPermissionOverrideResponse implements ModelInterface, ArrayAccess, \Js
/**
* Gets effect
*
* @return string|null
* @return \OmsorgCoreClient\Model\PermissionEffect|null
*/
public function getEffect()
{
@@ -418,26 +411,46 @@ class UserPermissionOverrideResponse implements ModelInterface, ArrayAccess, \Js
/**
* Sets effect
*
* @param string|null $effect effect
* @param \OmsorgCoreClient\Model\PermissionEffect|null $effect effect
*
* @return self
*/
public function setEffect($effect)
{
if (is_null($effect)) {
array_push($this->openAPINullablesSetToNull, 'effect');
} else {
$nullablesSetToNull = $this->getOpenAPINullablesSetToNull();
$index = array_search('effect', $nullablesSetToNull);
if ($index !== FALSE) {
unset($nullablesSetToNull[$index]);
$this->setOpenAPINullablesSetToNull($nullablesSetToNull);
}
throw new \InvalidArgumentException('non-nullable effect cannot be null');
}
$this->container['effect'] = $effect;
return $this;
}
/**
* Gets scope
*
* @return \OmsorgCoreClient\Model\PermissionScope|null
*/
public function getScope()
{
return $this->container['scope'];
}
/**
* Sets scope
*
* @param \OmsorgCoreClient\Model\PermissionScope|null $scope scope
*
* @return self
*/
public function setScope($scope)
{
if (is_null($scope)) {
throw new \InvalidArgumentException('non-nullable scope cannot be null');
}
$this->container['scope'] = $scope;
return $this;
}
/**
* Returns true if offset exists. False otherwise.
*