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
@@ -59,6 +59,7 @@ class CreateFacilityRequest implements ModelInterface, ArrayAccess, \JsonSeriali
protected static $openAPITypes = [
'name' => 'string',
'facility_type' => 'string',
'website' => 'string',
'street' => 'string',
'postal_code' => 'string',
'city' => 'string',
@@ -79,6 +80,7 @@ class CreateFacilityRequest implements ModelInterface, ArrayAccess, \JsonSeriali
protected static $openAPIFormats = [
'name' => null,
'facility_type' => null,
'website' => null,
'street' => null,
'postal_code' => null,
'city' => null,
@@ -97,6 +99,7 @@ class CreateFacilityRequest implements ModelInterface, ArrayAccess, \JsonSeriali
protected static array $openAPINullables = [
'name' => true,
'facility_type' => true,
'website' => true,
'street' => true,
'postal_code' => true,
'city' => true,
@@ -195,6 +198,7 @@ class CreateFacilityRequest implements ModelInterface, ArrayAccess, \JsonSeriali
protected static $attributeMap = [
'name' => 'name',
'facility_type' => 'facilityType',
'website' => 'website',
'street' => 'street',
'postal_code' => 'postalCode',
'city' => 'city',
@@ -213,6 +217,7 @@ class CreateFacilityRequest implements ModelInterface, ArrayAccess, \JsonSeriali
protected static $setters = [
'name' => 'setName',
'facility_type' => 'setFacilityType',
'website' => 'setWebsite',
'street' => 'setStreet',
'postal_code' => 'setPostalCode',
'city' => 'setCity',
@@ -231,6 +236,7 @@ class CreateFacilityRequest implements ModelInterface, ArrayAccess, \JsonSeriali
protected static $getters = [
'name' => 'getName',
'facility_type' => 'getFacilityType',
'website' => 'getWebsite',
'street' => 'getStreet',
'postal_code' => 'getPostalCode',
'city' => 'getCity',
@@ -300,6 +306,7 @@ class CreateFacilityRequest implements ModelInterface, ArrayAccess, \JsonSeriali
{
$this->setIfExists('name', $data ?? [], null);
$this->setIfExists('facility_type', $data ?? [], null);
$this->setIfExists('website', $data ?? [], null);
$this->setIfExists('street', $data ?? [], null);
$this->setIfExists('postal_code', $data ?? [], null);
$this->setIfExists('city', $data ?? [], null);
@@ -420,6 +427,40 @@ class CreateFacilityRequest implements ModelInterface, ArrayAccess, \JsonSeriali
return $this;
}
/**
* Gets website
*
* @return string|null
*/
public function getWebsite()
{
return $this->container['website'];
}
/**
* Sets website
*
* @param string|null $website website
*
* @return self
*/
public function setWebsite($website)
{
if (is_null($website)) {
array_push($this->openAPINullablesSetToNull, 'website');
} else {
$nullablesSetToNull = $this->getOpenAPINullablesSetToNull();
$index = array_search('website', $nullablesSetToNull);
if ($index !== FALSE) {
unset($nullablesSetToNull[$index]);
$this->setOpenAPINullablesSetToNull($nullablesSetToNull);
}
}
$this->container['website'] = $website;
return $this;
}
/**
* Gets street
*