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,312 @@
# OmsorgCoreClient\DocumentsApi
All URIs are relative to http://localhost, except if the operation defines another base path.
| Method | HTTP request | Description |
| ------------- | ------------- | ------------- |
| [**apiDocumentsGet()**](DocumentsApi.md#apiDocumentsGet) | **GET** /api/documents | |
| [**apiDocumentsIdDelete()**](DocumentsApi.md#apiDocumentsIdDelete) | **DELETE** /api/documents/{id} | |
| [**apiDocumentsIdDownloadGet()**](DocumentsApi.md#apiDocumentsIdDownloadGet) | **GET** /api/documents/{id}/download | |
| [**apiDocumentsIdPut()**](DocumentsApi.md#apiDocumentsIdPut) | **PUT** /api/documents/{id} | |
| [**apiDocumentsPost()**](DocumentsApi.md#apiDocumentsPost) | **POST** /api/documents | |
## `apiDocumentsGet()`
```php
apiDocumentsGet($entity_type, $entity_id): \OmsorgCoreClient\Model\DocumentResponse[]
```
### Example
```php
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure Bearer (JWT) authorization: Bearer
$config = OmsorgCoreClient\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN');
$apiInstance = new OmsorgCoreClient\Api\DocumentsApi(
// If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
// This is optional, `GuzzleHttp\Client` will be used as default.
new GuzzleHttp\Client(),
$config
);
$entity_type = 'entity_type_example'; // string
$entity_id = 'entity_id_example'; // string
try {
$result = $apiInstance->apiDocumentsGet($entity_type, $entity_id);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling DocumentsApi->apiDocumentsGet: ', $e->getMessage(), PHP_EOL;
}
```
### Parameters
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **entity_type** | **string**| | [optional] |
| **entity_id** | **string**| | [optional] |
### Return type
[**\OmsorgCoreClient\Model\DocumentResponse[]**](../Model/DocumentResponse.md)
### Authorization
[Bearer](../../README.md#Bearer)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: `text/plain`, `application/json`, `text/json`
[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)
## `apiDocumentsIdDelete()`
```php
apiDocumentsIdDelete($id)
```
### Example
```php
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure Bearer (JWT) authorization: Bearer
$config = OmsorgCoreClient\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN');
$apiInstance = new OmsorgCoreClient\Api\DocumentsApi(
// If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
// This is optional, `GuzzleHttp\Client` will be used as default.
new GuzzleHttp\Client(),
$config
);
$id = 'id_example'; // string
try {
$apiInstance->apiDocumentsIdDelete($id);
} catch (Exception $e) {
echo 'Exception when calling DocumentsApi->apiDocumentsIdDelete: ', $e->getMessage(), PHP_EOL;
}
```
### Parameters
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **id** | **string**| | |
### Return type
void (empty response body)
### Authorization
[Bearer](../../README.md#Bearer)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: Not defined
[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)
## `apiDocumentsIdDownloadGet()`
```php
apiDocumentsIdDownloadGet($id)
```
### Example
```php
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure Bearer (JWT) authorization: Bearer
$config = OmsorgCoreClient\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN');
$apiInstance = new OmsorgCoreClient\Api\DocumentsApi(
// If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
// This is optional, `GuzzleHttp\Client` will be used as default.
new GuzzleHttp\Client(),
$config
);
$id = 'id_example'; // string
try {
$apiInstance->apiDocumentsIdDownloadGet($id);
} catch (Exception $e) {
echo 'Exception when calling DocumentsApi->apiDocumentsIdDownloadGet: ', $e->getMessage(), PHP_EOL;
}
```
### Parameters
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **id** | **string**| | |
### Return type
void (empty response body)
### Authorization
[Bearer](../../README.md#Bearer)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: Not defined
[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)
## `apiDocumentsIdPut()`
```php
apiDocumentsIdPut($id, $update_document_request): \OmsorgCoreClient\Model\DocumentResponse
```
### Example
```php
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure Bearer (JWT) authorization: Bearer
$config = OmsorgCoreClient\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN');
$apiInstance = new OmsorgCoreClient\Api\DocumentsApi(
// If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
// This is optional, `GuzzleHttp\Client` will be used as default.
new GuzzleHttp\Client(),
$config
);
$id = 'id_example'; // string
$update_document_request = new \OmsorgCoreClient\Model\UpdateDocumentRequest(); // \OmsorgCoreClient\Model\UpdateDocumentRequest
try {
$result = $apiInstance->apiDocumentsIdPut($id, $update_document_request);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling DocumentsApi->apiDocumentsIdPut: ', $e->getMessage(), PHP_EOL;
}
```
### Parameters
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **id** | **string**| | |
| **update_document_request** | [**\OmsorgCoreClient\Model\UpdateDocumentRequest**](../Model/UpdateDocumentRequest.md)| | [optional] |
### Return type
[**\OmsorgCoreClient\Model\DocumentResponse**](../Model/DocumentResponse.md)
### Authorization
[Bearer](../../README.md#Bearer)
### HTTP request headers
- **Content-Type**: `application/json`, `text/json`, `application/*+json`
- **Accept**: `text/plain`, `application/json`, `text/json`
[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)
## `apiDocumentsPost()`
```php
apiDocumentsPost($entity_type, $entity_id, $category, $description, $file): \OmsorgCoreClient\Model\DocumentResponse
```
### Example
```php
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure Bearer (JWT) authorization: Bearer
$config = OmsorgCoreClient\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN');
$apiInstance = new OmsorgCoreClient\Api\DocumentsApi(
// If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
// This is optional, `GuzzleHttp\Client` will be used as default.
new GuzzleHttp\Client(),
$config
);
$entity_type = 'entity_type_example'; // string
$entity_id = 'entity_id_example'; // string
$category = 'category_example'; // string
$description = 'description_example'; // string
$file = '/path/to/file.txt'; // \SplFileObject
try {
$result = $apiInstance->apiDocumentsPost($entity_type, $entity_id, $category, $description, $file);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling DocumentsApi->apiDocumentsPost: ', $e->getMessage(), PHP_EOL;
}
```
### Parameters
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **entity_type** | **string**| | [optional] |
| **entity_id** | **string**| | [optional] |
| **category** | **string**| | [optional] |
| **description** | **string**| | [optional] |
| **file** | **\SplFileObject****\SplFileObject**| | [optional] |
### Return type
[**\OmsorgCoreClient\Model\DocumentResponse**](../Model/DocumentResponse.md)
### Authorization
[Bearer](../../README.md#Bearer)
### HTTP request headers
- **Content-Type**: `multipart/form-data`
- **Accept**: `text/plain`, `application/json`, `text/json`
[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)