
# Change Log
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).

## [2.6.2] - 2026-10-02

### Fixed
- Produktionsvorfall: `GET /datenschutzerklaerung/:id` crashte den
  kompletten Node-Prozess bei jeder ungültigen/verwaisten Bewerber-ID
  (nicht existierend, gelöschter Bewerber, oder kaputte
  User→Location→Mandant-Referenz — laut Live-Datenbestand bei ca. einem
  Drittel aller Bewerber-Datensätze der Fall). Ursache: `model.getMandant`
  hatte anders als die Schwesterfunktionen `getApplicant`/`getUser` kein
  try/catch und warf unbehandelt; unter Express 4 beendet eine solche
  "unhandled rejection" den ganzen Prozess. Betraf eine **öffentliche,
  nicht angemeldete** Route — auslösbar durch jeden GET-Request auf eine
  falsche ID (z. B. Scanner-Bots, alte/abgelaufene Consent-Links).
  `getMandant` jetzt defensiv wie die Schwesterfunktionen (loggen, kein
  Werfen), `/datenschutzerklaerung/:id` zeigt bei fehlgeschlagener
  Auflösung jetzt eine Fehlerseite statt zu crashen. Mit einem echten
  Bestandsdatensatz mit kaputter Kette und einem mit intakter Kette
  verifiziert (Erstere jetzt Fehlerseite statt Crash, Letztere
  unverändert funktionsfähig).

## [2.6.1] - 2026-10-02

### Fixed
- Produktionsvorfall: Ein fehlgeschlagener SMS-Versand (websms.com, hier
  durch falsche/abgelaufene Zugangsdaten ausgelöst) crashte wiederholt
  den kompletten Node-Prozess (`ERR_HTTP_HEADERS_SENT`, da `sendSMS()`
  bei einem Fehler selbst eine Response sendete, obwohl die drei
  aufrufenden Stellen — Bewerber anlegen mit SMS-Versand, erneuter
  DSGVO-Versand, WEX-Export — danach noch eine eigene Response senden).
  `sendSMS()` loggt Fehler jetzt nur noch, sendet keine eigene Response
  mehr. Akute Ursache (Zugangsdaten) wurde separat auf dem Server behoben.

## [2.6.0] - 2026-10-01

### Added
- `ppvc_pool: "active"` wird jetzt mit an den WEX-Export übergeben
- Versionsanzeige/Changelog-Link auf der Login-Seite (`package.json`
  "version" ist jetzt Single Source of Truth)

### Changed
- Konsent-Mailtext/SMS-Text für alle Mandanten auf neue
  Talente-Pool-Formulierung umgestellt (Du-Form für TTI/BERGER,
  Sie-Form für SQUADRA/IFAS)
- Frontend-Build von Gulp auf Webpack umgestellt (wie
  tti-service-designer); gebaute CSS-Dateien sind nicht mehr im Git,
  werden beim Deploy frisch gebaut
- Deployment auf zwei Branches (`staging`/`main`) mit automatisiertem
  SSH-Deploy via GitHub Actions umgestellt (wie tti-service-designer)

### Security
- `production.env`/`staging.env` aus dem Git entfernt (enthielten
  Live-Zugangsdaten im Klartext)
- Debug-Mail mit kompletter Bewerber-PII bei jedem WEX-Export entfernt
- `/delete-applicant/:id` von GET auf POST umgestellt (CSRF)
- SQL-Injection-Lücke in zwei Mandanten-Queries geschlossen
  (String-Interpolation → parametrisierte Queries)
- SMS-Zugangsdaten und Session-Secret aus dem Quellcode in
  Umgebungsvariablen verschoben

## [2.5] - 2023-12-21

### Added
Mandanten- und Locationänderungsmöglichkeit vor WEX Export

## [2.4] - 2023-12-21

### Added
Erstellungsdatum, Bestätigungsdatum
Neue Felder bearbeitbar
Speichern ohne Versand von neuen Bewerben
Cronjobs für automatische Löschungen
Einbau von Icons im Header für Platzoptimierungen

### Changed
nicht bearbeitbare Felder auch so anzeigen
diverse weitere Änderungen in den Formularen

### DB Changes


## [2.3.2] - 2023-12-11

### Added
neue Kategorie: Ausländische Jobbörsen
JOBBRIDGE Stellenbörse

## [2.3.2] - 2023-11-13

### Added
iswipe Stellenbörse

## [2.3.1] - 2023-10-08

### Added
ABA jobs.workinaustria 

## [2.3] - 2023-09-27

### Added
- possibility to delete applicant as Administrator

## [2.2.6] - 2023-07-31

### Fixed
- Menu highlight on edit applicant
- 
- text changes

## [2.2.5] - 2023-07-31

### Fixed
- new User needs PW
- text changes

## [2.2.4] - 2023-07-07

### Changed
- changed menuorder
- addded Applicant ID to Wex imported status

### Fixed
- SMS Sending not working

## [2.2.3] - 2023-07-05

### Changed
- active Menu marked
- Email address is always editable
- email field not required any more

## [2.2.2] - 2023-07-04

### Fixed
- ExportToWex Error

## [2.2.1] - 2023-07-04

### Changed
- show Substitutionname if Applicant is substituted instead of color
- if substituted, export to wex is filled with original data for agentID and locationWexID
- minor css changes

## [2.2] - 2023-06-29

### Changed
- Make Username and Email for Users unique
### Added
- Development has own header color
- save application_id from WEX to Database
- possibility to disable or enable SMS messages

## [2.1] - 2023-06-27

### Fixed

- If WEX creates an error, no more successmessage is shown and applicant is not moved to sent 
- editing an applicant now shows the stored data 

### Changed

- moved Wex connection from curl to axios

## [2.0] - 2023-06-01

### Added

- possibility to declare another user to substitute
- substituted applicants are marked
- password forgot
- user creation
- sort and filter applicants
- edit recruiting channel and send to WEX
- .env for configurations

