2026-03-11 20:11:01 +01:00
|
|
|
# CoreCore (MintyPHP)
|
2026-02-04 23:31:53 +01:00
|
|
|
|
2026-03-11 20:11:01 +01:00
|
|
|
CoreCore ist eine mandantenfaehige Admin-Anwendung auf Basis von MintyPHP.
|
add composer-unused, comprehensive docs, and project restructure
- Add icanhazstring/composer-unused as dev dependency for dependency hygiene checks
- Add German documentation (docs/) covering architecture, conventions, workflows, and developer checklists
- Add API layer (ApiAuth, ApiBootstrap, ApiResponse), audit, scheduler, custom fields, and SSO services
- Add Microsoft OIDC SSO, API token management, and user lifecycle features
- Add swagger-ui vendor integration and OpenAPI spec
- Add production Docker setup and bin/ scripts
- Update composer dependencies, config, templates, and frontend assets throughout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 15:27:35 +01:00
|
|
|
Der Fokus liegt auf klarer Rollen-/Rechtestruktur, Tenant-Scope und einer konsistenten Admin-UI.
|
2026-02-04 23:31:53 +01:00
|
|
|
|
add composer-unused, comprehensive docs, and project restructure
- Add icanhazstring/composer-unused as dev dependency for dependency hygiene checks
- Add German documentation (docs/) covering architecture, conventions, workflows, and developer checklists
- Add API layer (ApiAuth, ApiBootstrap, ApiResponse), audit, scheduler, custom fields, and SSO services
- Add Microsoft OIDC SSO, API token management, and user lifecycle features
- Add swagger-ui vendor integration and OpenAPI spec
- Add production Docker setup and bin/ scripts
- Update composer dependencies, config, templates, and frontend assets throughout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 15:27:35 +01:00
|
|
|
## Funktionsumfang
|
2026-02-04 23:31:53 +01:00
|
|
|
|
add composer-unused, comprehensive docs, and project restructure
- Add icanhazstring/composer-unused as dev dependency for dependency hygiene checks
- Add German documentation (docs/) covering architecture, conventions, workflows, and developer checklists
- Add API layer (ApiAuth, ApiBootstrap, ApiResponse), audit, scheduler, custom fields, and SSO services
- Add Microsoft OIDC SSO, API token management, and user lifecycle features
- Add swagger-ui vendor integration and OpenAPI spec
- Add production Docker setup and bin/ scripts
- Update composer dependencies, config, templates, and frontend assets throughout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 15:27:35 +01:00
|
|
|
- Mandantenverwaltung (inkl. Branding/Farbe/Favicon)
|
|
|
|
|
- Abteilungen pro Mandant
|
|
|
|
|
- Benutzerverwaltung mit Rollen, Sichtbarkeit und Stammdaten
|
|
|
|
|
- Rollen- und Berechtigungsverwaltung
|
|
|
|
|
- Adressbuch (tenant-scoped, read-only Profilansicht)
|
|
|
|
|
- Globale Suche (Admin + Address Book)
|
|
|
|
|
- Mail-Versand (SMTP/PHPMailer) inkl. Mail-Log
|
|
|
|
|
- Onboarding-PDF fuer Zugangsdaten (Single inline, Bulk als ZIP)
|
|
|
|
|
- Passwort-Reset und Remember-Login-Tokens
|
2026-02-04 23:31:53 +01:00
|
|
|
|
add composer-unused, comprehensive docs, and project restructure
- Add icanhazstring/composer-unused as dev dependency for dependency hygiene checks
- Add German documentation (docs/) covering architecture, conventions, workflows, and developer checklists
- Add API layer (ApiAuth, ApiBootstrap, ApiResponse), audit, scheduler, custom fields, and SSO services
- Add Microsoft OIDC SSO, API token management, and user lifecycle features
- Add swagger-ui vendor integration and OpenAPI spec
- Add production Docker setup and bin/ scripts
- Update composer dependencies, config, templates, and frontend assets throughout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 15:27:35 +01:00
|
|
|
## Tech Stack
|
2026-02-04 23:31:53 +01:00
|
|
|
|
add composer-unused, comprehensive docs, and project restructure
- Add icanhazstring/composer-unused as dev dependency for dependency hygiene checks
- Add German documentation (docs/) covering architecture, conventions, workflows, and developer checklists
- Add API layer (ApiAuth, ApiBootstrap, ApiResponse), audit, scheduler, custom fields, and SSO services
- Add Microsoft OIDC SSO, API token management, and user lifecycle features
- Add swagger-ui vendor integration and OpenAPI spec
- Add production Docker setup and bin/ scripts
- Update composer dependencies, config, templates, and frontend assets throughout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 15:27:35 +01:00
|
|
|
- PHP 8.5 (Runtime im Docker-Container)
|
|
|
|
|
- MintyPHP Core
|
|
|
|
|
- MariaDB 11
|
|
|
|
|
- Memcached
|
|
|
|
|
- Nginx
|
|
|
|
|
- Grid.js (Tabellen)
|
|
|
|
|
- PHPMailer
|
|
|
|
|
- Dompdf (PDF Rendering)
|
|
|
|
|
- endroid/qr-code (QR-Code Rendering)
|
2026-02-04 23:31:53 +01:00
|
|
|
|
add composer-unused, comprehensive docs, and project restructure
- Add icanhazstring/composer-unused as dev dependency for dependency hygiene checks
- Add German documentation (docs/) covering architecture, conventions, workflows, and developer checklists
- Add API layer (ApiAuth, ApiBootstrap, ApiResponse), audit, scheduler, custom fields, and SSO services
- Add Microsoft OIDC SSO, API token management, and user lifecycle features
- Add swagger-ui vendor integration and OpenAPI spec
- Add production Docker setup and bin/ scripts
- Update composer dependencies, config, templates, and frontend assets throughout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 15:27:35 +01:00
|
|
|
## Schnellstart (Docker)
|
2026-02-04 23:31:53 +01:00
|
|
|
|
add composer-unused, comprehensive docs, and project restructure
- Add icanhazstring/composer-unused as dev dependency for dependency hygiene checks
- Add German documentation (docs/) covering architecture, conventions, workflows, and developer checklists
- Add API layer (ApiAuth, ApiBootstrap, ApiResponse), audit, scheduler, custom fields, and SSO services
- Add Microsoft OIDC SSO, API token management, and user lifecycle features
- Add swagger-ui vendor integration and OpenAPI spec
- Add production Docker setup and bin/ scripts
- Update composer dependencies, config, templates, and frontend assets throughout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 15:27:35 +01:00
|
|
|
1. Umgebungsdatei anlegen
|
2026-02-04 23:31:53 +01:00
|
|
|
|
add composer-unused, comprehensive docs, and project restructure
- Add icanhazstring/composer-unused as dev dependency for dependency hygiene checks
- Add German documentation (docs/) covering architecture, conventions, workflows, and developer checklists
- Add API layer (ApiAuth, ApiBootstrap, ApiResponse), audit, scheduler, custom fields, and SSO services
- Add Microsoft OIDC SSO, API token management, and user lifecycle features
- Add swagger-ui vendor integration and OpenAPI spec
- Add production Docker setup and bin/ scripts
- Update composer dependencies, config, templates, and frontend assets throughout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 15:27:35 +01:00
|
|
|
```bash
|
|
|
|
|
cp .env.example .env
|
|
|
|
|
```
|
2026-02-04 23:31:53 +01:00
|
|
|
|
add composer-unused, comprehensive docs, and project restructure
- Add icanhazstring/composer-unused as dev dependency for dependency hygiene checks
- Add German documentation (docs/) covering architecture, conventions, workflows, and developer checklists
- Add API layer (ApiAuth, ApiBootstrap, ApiResponse), audit, scheduler, custom fields, and SSO services
- Add Microsoft OIDC SSO, API token management, and user lifecycle features
- Add swagger-ui vendor integration and OpenAPI spec
- Add production Docker setup and bin/ scripts
- Update composer dependencies, config, templates, and frontend assets throughout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 15:27:35 +01:00
|
|
|
2. Container starten
|
2026-02-04 23:31:53 +01:00
|
|
|
|
add composer-unused, comprehensive docs, and project restructure
- Add icanhazstring/composer-unused as dev dependency for dependency hygiene checks
- Add German documentation (docs/) covering architecture, conventions, workflows, and developer checklists
- Add API layer (ApiAuth, ApiBootstrap, ApiResponse), audit, scheduler, custom fields, and SSO services
- Add Microsoft OIDC SSO, API token management, and user lifecycle features
- Add swagger-ui vendor integration and OpenAPI spec
- Add production Docker setup and bin/ scripts
- Update composer dependencies, config, templates, and frontend assets throughout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 15:27:35 +01:00
|
|
|
```bash
|
|
|
|
|
docker compose up --build -d
|
|
|
|
|
```
|
2026-02-04 23:31:53 +01:00
|
|
|
|
add composer-unused, comprehensive docs, and project restructure
- Add icanhazstring/composer-unused as dev dependency for dependency hygiene checks
- Add German documentation (docs/) covering architecture, conventions, workflows, and developer checklists
- Add API layer (ApiAuth, ApiBootstrap, ApiResponse), audit, scheduler, custom fields, and SSO services
- Add Microsoft OIDC SSO, API token management, and user lifecycle features
- Add swagger-ui vendor integration and OpenAPI spec
- Add production Docker setup and bin/ scripts
- Update composer dependencies, config, templates, and frontend assets throughout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 15:27:35 +01:00
|
|
|
3. App oeffnen
|
2026-02-04 23:31:53 +01:00
|
|
|
|
add composer-unused, comprehensive docs, and project restructure
- Add icanhazstring/composer-unused as dev dependency for dependency hygiene checks
- Add German documentation (docs/) covering architecture, conventions, workflows, and developer checklists
- Add API layer (ApiAuth, ApiBootstrap, ApiResponse), audit, scheduler, custom fields, and SSO services
- Add Microsoft OIDC SSO, API token management, and user lifecycle features
- Add swagger-ui vendor integration and OpenAPI spec
- Add production Docker setup and bin/ scripts
- Update composer dependencies, config, templates, and frontend assets throughout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 15:27:35 +01:00
|
|
|
- App: [http://localhost:8080](http://localhost:8080)
|
|
|
|
|
- phpMyAdmin: [http://localhost:8081](http://localhost:8081)
|
2026-02-04 23:31:53 +01:00
|
|
|
|
add composer-unused, comprehensive docs, and project restructure
- Add icanhazstring/composer-unused as dev dependency for dependency hygiene checks
- Add German documentation (docs/) covering architecture, conventions, workflows, and developer checklists
- Add API layer (ApiAuth, ApiBootstrap, ApiResponse), audit, scheduler, custom fields, and SSO services
- Add Microsoft OIDC SSO, API token management, and user lifecycle features
- Add swagger-ui vendor integration and OpenAPI spec
- Add production Docker setup and bin/ scripts
- Update composer dependencies, config, templates, and frontend assets throughout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 15:27:35 +01:00
|
|
|
4. Container stoppen
|
2026-02-04 23:31:53 +01:00
|
|
|
|
add composer-unused, comprehensive docs, and project restructure
- Add icanhazstring/composer-unused as dev dependency for dependency hygiene checks
- Add German documentation (docs/) covering architecture, conventions, workflows, and developer checklists
- Add API layer (ApiAuth, ApiBootstrap, ApiResponse), audit, scheduler, custom fields, and SSO services
- Add Microsoft OIDC SSO, API token management, and user lifecycle features
- Add swagger-ui vendor integration and OpenAPI spec
- Add production Docker setup and bin/ scripts
- Update composer dependencies, config, templates, and frontend assets throughout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 15:27:35 +01:00
|
|
|
```bash
|
|
|
|
|
docker compose down
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Produktion (Docker)
|
|
|
|
|
|
|
|
|
|
Es gibt eine getrennte Produktions-Compose:
|
|
|
|
|
|
|
|
|
|
- Dev: `/docker-compose.yml`
|
|
|
|
|
- Prod: `/docker-compose.prod.yml`
|
|
|
|
|
|
|
|
|
|
Grundschritte:
|
|
|
|
|
|
|
|
|
|
1. `.env` auf Produktionswerte setzen (siehe `/.env.prod.example`)
|
|
|
|
|
2. Domain und TLS in `/docker/nginx/prod.conf` anpassen
|
|
|
|
|
3. Zertifikate unter `/docker/nginx/certs/` bereitstellen
|
|
|
|
|
4. Starten:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
docker compose -f docker-compose.prod.yml up --build -d
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Details stehen in:
|
|
|
|
|
|
2026-03-09 18:30:52 +01:00
|
|
|
- `/docs/howto-docker-lokal.md`
|
|
|
|
|
- `/docs/howto-docker-produktiv.md`
|
|
|
|
|
- `/docs/explanation-docker-betrieb.md` (Übersicht)
|
add composer-unused, comprehensive docs, and project restructure
- Add icanhazstring/composer-unused as dev dependency for dependency hygiene checks
- Add German documentation (docs/) covering architecture, conventions, workflows, and developer checklists
- Add API layer (ApiAuth, ApiBootstrap, ApiResponse), audit, scheduler, custom fields, and SSO services
- Add Microsoft OIDC SSO, API token management, and user lifecycle features
- Add swagger-ui vendor integration and OpenAPI spec
- Add production Docker setup and bin/ scripts
- Update composer dependencies, config, templates, and frontend assets throughout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 15:27:35 +01:00
|
|
|
|
|
|
|
|
## Seed-Daten
|
|
|
|
|
|
|
|
|
|
Die Initialisierung liegt in `/db/init/init.sql`.
|
|
|
|
|
|
|
|
|
|
Standard-Demo-User:
|
|
|
|
|
|
|
|
|
|
- E-Mail: `demo@user.com`
|
|
|
|
|
- Passwort: `Demo123`
|
2026-03-11 20:24:18 +01:00
|
|
|
- Tenant: `MusterMandant`
|
|
|
|
|
- Abteilung: `Musterabteilung`
|
|
|
|
|
- Rollen: `Admin`, `User`
|
add composer-unused, comprehensive docs, and project restructure
- Add icanhazstring/composer-unused as dev dependency for dependency hygiene checks
- Add German documentation (docs/) covering architecture, conventions, workflows, and developer checklists
- Add API layer (ApiAuth, ApiBootstrap, ApiResponse), audit, scheduler, custom fields, and SSO services
- Add Microsoft OIDC SSO, API token management, and user lifecycle features
- Add swagger-ui vendor integration and OpenAPI spec
- Add production Docker setup and bin/ scripts
- Update composer dependencies, config, templates, and frontend assets throughout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 15:27:35 +01:00
|
|
|
|
2026-03-11 21:11:19 +01:00
|
|
|
Initiale DB-Settings (Seed):
|
|
|
|
|
|
|
|
|
|
- `app_title` -> `CoreCore`
|
|
|
|
|
- `app_locale` -> `de`
|
|
|
|
|
- `app_theme` -> `light`
|
|
|
|
|
- `app_theme_user` -> `1`
|
|
|
|
|
- `app_registration` -> `1` (aktiv)
|
|
|
|
|
- `app_primary_color` -> `#105433`
|
|
|
|
|
- `api_token_default_ttl_days` -> `90`
|
|
|
|
|
- `api_token_max_ttl_days` -> `365`
|
|
|
|
|
- `api_cors_allowed_origins` -> `http://localhost:8080`, `http://127.0.0.1:8080`
|
|
|
|
|
- `session_idle_timeout_minutes` -> `30`
|
|
|
|
|
- `session_absolute_timeout_hours` -> `8`
|
|
|
|
|
- `user_inactivity_deactivate_days` -> `180`
|
|
|
|
|
- `user_inactivity_delete_days` -> `365`
|
|
|
|
|
- `default_tenant_id` -> `MusterMandant`
|
|
|
|
|
- `default_department_id` -> Abteilungscode `MUSTER` (`Musterabteilung`)
|
|
|
|
|
- `default_role_id` -> Rolle `USER` (`User`)
|
|
|
|
|
- `frontend_telemetry_enabled` -> `1`
|
|
|
|
|
- `frontend_telemetry_sample_rate` -> `0.2`
|
|
|
|
|
- `frontend_telemetry_allowed_events` -> `ajax_error,warn_once`
|
|
|
|
|
|
add composer-unused, comprehensive docs, and project restructure
- Add icanhazstring/composer-unused as dev dependency for dependency hygiene checks
- Add German documentation (docs/) covering architecture, conventions, workflows, and developer checklists
- Add API layer (ApiAuth, ApiBootstrap, ApiResponse), audit, scheduler, custom fields, and SSO services
- Add Microsoft OIDC SSO, API token management, and user lifecycle features
- Add swagger-ui vendor integration and OpenAPI spec
- Add production Docker setup and bin/ scripts
- Update composer dependencies, config, templates, and frontend assets throughout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 15:27:35 +01:00
|
|
|
## Projektstruktur
|
|
|
|
|
|
|
|
|
|
- `/config` Konfiguration (Routen, Settings, Themes, Assets)
|
|
|
|
|
- `/db/init` Datenbankschema + Seeds
|
|
|
|
|
- `/lib` Backend-Code (`Repository`, `Service`, `Http`, `Support`)
|
|
|
|
|
- `/pages` Action-Layer + Views pro Route
|
|
|
|
|
- `/templates` Layouts + wiederverwendbare Partials
|
|
|
|
|
- `/web` oeffentliche Assets (CSS/JS/Vendor)
|
|
|
|
|
- `/i18n` Uebersetzungen
|
|
|
|
|
- `/tests` PHPUnit-Tests
|
|
|
|
|
- `/docs` Projekt-Dokumentation
|
|
|
|
|
|
|
|
|
|
## Architektur-Kurzregeln
|
|
|
|
|
|
|
|
|
|
- Keine DB-Zugriffe in `.phtml`-Views.
|
|
|
|
|
- SQL bleibt in Repositories.
|
|
|
|
|
- Geschaeftslogik bleibt in Services.
|
|
|
|
|
- `pages/.../*.php` fungiert als Action-/Controller-Schicht.
|
2026-03-04 15:56:58 +01:00
|
|
|
- Service-Aufloesung in Actions/Helpern ueber `app(Foo::class)`.
|
|
|
|
|
- `new ...Factory()` nur im Composition Root (`web/index.php` + `lib/App/registerContainer.php`) oder in `*Factory.php`.
|
|
|
|
|
- `pages/**/data().php` sind GET-only (`gridRequireGetRequest()`) und normalisieren `limit`/`offset`/`order`/`dir` ueber Grid-Helper.
|
add composer-unused, comprehensive docs, and project restructure
- Add icanhazstring/composer-unused as dev dependency for dependency hygiene checks
- Add German documentation (docs/) covering architecture, conventions, workflows, and developer checklists
- Add API layer (ApiAuth, ApiBootstrap, ApiResponse), audit, scheduler, custom fields, and SSO services
- Add Microsoft OIDC SSO, API token management, and user lifecycle features
- Add swagger-ui vendor integration and OpenAPI spec
- Add production Docker setup and bin/ scripts
- Update composer dependencies, config, templates, and frontend assets throughout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 15:27:35 +01:00
|
|
|
- Permissions + Tenant-Scope werden in Actions/Services erzwungen.
|
|
|
|
|
- Wiederkehrende UI-Bloecke als Partials zentralisieren.
|
|
|
|
|
|
|
|
|
|
## UI-Konventionen
|
|
|
|
|
|
|
|
|
|
Edit-Seiten verwenden einheitliche Tab-Struktur:
|
|
|
|
|
|
|
|
|
|
- erster Tab: `Master data`
|
|
|
|
|
- letzter Tab: `Visibility`
|
|
|
|
|
- optional letzter Tab: `Danger zone`
|
|
|
|
|
|
|
|
|
|
User-Organisation:
|
|
|
|
|
|
|
|
|
|
- Departments werden tenantweise angezeigt (ein Multi-Select je ausgewaehltem Tenant).
|
|
|
|
|
- Nach Tenant-Aenderungen im selben Formular werden Department-Optionen nach Speichern/Reload aktualisiert (kein Live-Update).
|
|
|
|
|
|
|
|
|
|
Zentrale Partials:
|
|
|
|
|
|
|
|
|
|
- `/templates/partials/app-details-titlebar.phtml`
|
|
|
|
|
- `/templates/partials/app-visibility-status-field.phtml`
|
|
|
|
|
- `/templates/partials/app-danger-zone-delete-field.phtml`
|
|
|
|
|
- `/templates/partials/app-details-aside-audit.phtml`
|
|
|
|
|
- `/templates/partials/app-details-aside-ids.phtml`
|
|
|
|
|
|
|
|
|
|
## Onboarding-PDF (User)
|
|
|
|
|
|
|
|
|
|
- Permission: `users.access_pdf`
|
|
|
|
|
- Single: `admin/users/access-pdf/{uuid}` (inline im neuen Tab)
|
|
|
|
|
- Bulk: `admin/users/access-pdf-bulk` (POST, ZIP mit einer PDF pro User)
|
|
|
|
|
- Hard limit: maximal 100 User pro Bulk-Request
|
|
|
|
|
- Benoetigte Extensions: `ext-zip`, `ext-dom`, `ext-mbstring`
|
|
|
|
|
- Bestehende Installationen: Schema-/Permission-Updates als idempotentes SQL-Update ausfuehren
|
|
|
|
|
|
|
|
|
|
## Microsoft SSO (Tenant, Entra ID)
|
|
|
|
|
|
|
|
|
|
- Zentraler Einstieg: `login` (optional mit Tenant-Hint `login?tenant={tenant-slug}`)
|
|
|
|
|
- OIDC-Endpunkte: `auth/microsoft/start` und `auth/microsoft/callback`
|
|
|
|
|
- Tenant-Config liegt in `tenant_auth_microsoft`
|
|
|
|
|
- Externe User-Linkung liegt in `user_external_identities`
|
|
|
|
|
- Optionaler Profil-Sync pro Tenant:
|
|
|
|
|
- `sync_profile_on_login` aktiviert Sync bei jedem Microsoft-Login
|
|
|
|
|
- `sync_profile_fields`: `first_name`, `last_name`, `phone`, `mobile`, `avatar`
|
|
|
|
|
- Default-Felder bei aktivem Sync ohne Auswahl: `first_name,last_name`
|
|
|
|
|
- `phone/mobile/avatar` nutzen Microsoft Graph (`User.Read`)
|
|
|
|
|
- Shared App Credentials werden in Settings gepflegt (optional Tenant-Overrides)
|
|
|
|
|
- Permission fuer Tenant-SSO-Konfiguration: `tenants.sso_manage`
|
|
|
|
|
- Bestandsinstallationen: Schema-/Permission-Updates als idempotentes SQL-Update ausfuehren
|
|
|
|
|
- Wichtig: `APP_CRYPTO_KEY` in `.env` setzen, sonst koennen SSO-Secrets nicht gespeichert/verwendet werden
|
|
|
|
|
|
|
|
|
|
## Asset- und Frontend-System
|
|
|
|
|
|
|
|
|
|
- CSS-Layer-Entrypoint: `/web/css/app-layers.css`
|
|
|
|
|
- Vendor-Overrides: `/web/css/vendor-overrides`
|
|
|
|
|
- Asset-Gruppen: `/config/assets.php`
|
|
|
|
|
- Template-Styles: `renderTemplateStyles('default'|'login')`
|
|
|
|
|
- Seiten-Styles per Action: `Buffer::set('style_groups', ...)`
|
|
|
|
|
- JS-Bootstrap:
|
|
|
|
|
- `/web/js/app-boot.js` (frueh, ohne Module)
|
|
|
|
|
- `/web/js/app-init.js` (Standardseiten)
|
|
|
|
|
- `/web/js/app-login-init.js` (Loginseiten)
|
|
|
|
|
|
|
|
|
|
## Qualitaetschecks
|
|
|
|
|
|
|
|
|
|
Alle Befehle aus dem Projekt-Root ausfuehren.
|
|
|
|
|
|
|
|
|
|
### PHPUnit
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
docker compose exec php vendor/bin/phpunit --bootstrap vendor/autoload.php
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Gezielt:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
docker compose exec php vendor/bin/phpunit --bootstrap vendor/autoload.php tests/I18n/TranslationKeysTest.php
|
|
|
|
|
docker compose exec php vendor/bin/phpunit --bootstrap vendor/autoload.php tests/Repository/RepoQueryTest.php
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### PHPStan
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
docker compose exec php vendor/bin/phpstan analyse -c phpstan.neon --no-progress
|
|
|
|
|
```
|
|
|
|
|
|
2026-03-05 11:17:42 +01:00
|
|
|
### Coding Style (PHP CS Fixer)
|
|
|
|
|
|
|
|
|
|
CI-Check (ohne Dateien zu aendern):
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-03-24 20:13:16 +01:00
|
|
|
docker compose exec php vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php --dry-run --diff --verbose
|
2026-03-05 11:17:42 +01:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Lokal automatisch formatieren:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
docker compose exec php composer cs:fix
|
|
|
|
|
```
|
|
|
|
|
|
2026-03-04 15:56:58 +01:00
|
|
|
### Frontend-JS Smoke-Check (ohne Node)
|
add composer-unused, comprehensive docs, and project restructure
- Add icanhazstring/composer-unused as dev dependency for dependency hygiene checks
- Add German documentation (docs/) covering architecture, conventions, workflows, and developer checklists
- Add API layer (ApiAuth, ApiBootstrap, ApiResponse), audit, scheduler, custom fields, and SSO services
- Add Microsoft OIDC SSO, API token management, and user lifecycle features
- Add swagger-ui vendor integration and OpenAPI spec
- Add production Docker setup and bin/ scripts
- Update composer dependencies, config, templates, and frontend assets throughout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 15:27:35 +01:00
|
|
|
|
2026-03-04 15:56:58 +01:00
|
|
|
- Browser-DevTools öffnen (Console + Preserve log)
|
|
|
|
|
- Kernflows klicken: Users, Address-Book, Audit-Listen, Filter setzen/zurücksetzen
|
|
|
|
|
- Keine JavaScript-Errors/Unhandled-Rejections in der Console
|
add composer-unused, comprehensive docs, and project restructure
- Add icanhazstring/composer-unused as dev dependency for dependency hygiene checks
- Add German documentation (docs/) covering architecture, conventions, workflows, and developer checklists
- Add API layer (ApiAuth, ApiBootstrap, ApiResponse), audit, scheduler, custom fields, and SSO services
- Add Microsoft OIDC SSO, API token management, and user lifecycle features
- Add swagger-ui vendor integration and OpenAPI spec
- Add production Docker setup and bin/ scripts
- Update composer dependencies, config, templates, and frontend assets throughout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 15:27:35 +01:00
|
|
|
|
|
|
|
|
## Dokumentation
|
|
|
|
|
|
2026-03-04 15:56:58 +01:00
|
|
|
- `/docs/index.md` Dokumentationsstart mit chronologischem Lernpfad und Referenzbereichen
|
2026-03-09 18:30:52 +01:00
|
|
|
- `/docs/tutorial-02-systemueberblick.md` Einstieg in Produktbild und Kernprinzipien
|
|
|
|
|
- `/docs/tutorial-03-setup-und-erster-login.md` lokales Setup und erster Smoke-Test
|
|
|
|
|
- `/docs/reference-domain-glossar.md` zentrale Begriffe fuer Tenant/Role/Scope
|
|
|
|
|
- `/docs/tutorial-04-architektur-request-flow.md` Request-Flow und Schichtmodell
|
|
|
|
|
- `/docs/tutorial-07-security-tenant-scope.md` Security-Grundlagen vor Feature-Arbeit
|
|
|
|
|
- `/docs/tutorial-08-api-erweitern.md` verbindlicher API-Aenderungsablauf inkl. OpenAPI
|
add composer-unused, comprehensive docs, and project restructure
- Add icanhazstring/composer-unused as dev dependency for dependency hygiene checks
- Add German documentation (docs/) covering architecture, conventions, workflows, and developer checklists
- Add API layer (ApiAuth, ApiBootstrap, ApiResponse), audit, scheduler, custom fields, and SSO services
- Add Microsoft OIDC SSO, API token management, and user lifecycle features
- Add swagger-ui vendor integration and OpenAPI spec
- Add production Docker setup and bin/ scripts
- Update composer dependencies, config, templates, and frontend assets throughout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 15:27:35 +01:00
|
|
|
|
|
|
|
|
## Troubleshooting
|
|
|
|
|
|
|
|
|
|
- Verhalten wirkt stale nach groesseren Refactors:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
docker compose restart php nginx
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- Uebersetzungs-Keys fehlen:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
docker compose exec php vendor/bin/phpunit --bootstrap vendor/autoload.php tests/I18n/TranslationKeysTest.php
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- Favicon/Logo aus Storage fehlt:
|
|
|
|
|
- Symlink und Tenant-Kontext pruefen (`web/favicon/tenants -> storage/tenants`).
|
|
|
|
|
|
|
|
|
|
## Lizenz
|
|
|
|
|
|
|
|
|
|
MIT (siehe `/LICENSE.md`)
|