P2503 · Karriere · F-280

Personio XML-Feed (Import)

DONE P2503-106 Erstellt: 2026-05-11 · Kanonisch seit: 2026-05-15

User Story

Als SOLCOM möchte ich Stellenanzeigen einmalig in Personio pflegen und sie automatisch im Karriere-Bereich von solcom.de ausspielen lassen, um redaktionellen Doppelaufwand zu vermeiden und den offenen Stellenbestand jederzeit aktuell zu halten.

Technische Beschreibung

Öffentlicher XML-Feed https://solcom-gmbh.jobs.personio.de/xmlmigrate_plus-Migration solcom_vacancy → Bundle node.type.vacancy. Stündlicher Cron-Import via solcom_vacancy_cron() (State-gated, 3600s). Hard-Delete-Sweep über VacancyHardDeleteSubscriber mit Empty-Response-Schutz. Bewerbung über Personio-Hosted-Apply-URL https://solcom-gmbh.jobs.personio.de/job/<id>.

Akzeptanzkriterien

  1. Eine in Personio neu publizierte offene Stelle erscheint spätestens 60 Minuten später im Karriere-Bereich von solcom.de.
  2. Eine in Personio geschlossene Stelle verschwindet spätestens 60 Minuten später aus dem Karriere-Bereich.
  3. Eine in Personio geänderte Stelle (Titel, Beschreibung, Office, Department, Schedule, Seniority, Gehalt) wird spätestens 60 Minuten später auf solcom.de aktualisiert.
  4. Liefert die Quelle einen leeren oder fehlerhaften Datenstand, bleibt der bestehende Drupal-Bestand erhalten; das Ereignis wird im Log sichtbar.
  5. Drupal-Redakteur:innen können Vacancy-Nodes nicht manuell anlegen oder ändern (konsistent mit ADR-0026).
  6. Die Bewerbung auf eine Stelle erfolgt über den von Personio gehosteten Apply-Link pro Stelle.

Kontext aus docs/

  • ADR-0035: Personio-XML-Pfad bleibt, anonymes Pulling toleriert — Bestätigt diese Story als kanonischen Sync-Pfad nach Spike-basierter Verwerfung des REST-Refactor-Vorhabens.
  • ADR-0026: Vacancy-Ausschluss Editorial-Workflow — Stützt den Migrate-Pfad explizit; Vacancy-Nodes laufen am Content-Moderation-Workflow vorbei.
  • Code: web/modules/custom/solcom_vacancy/ + config/sync/migrate_plus.migration.solcom_vacancy.yml + VacancyHardDeleteSubscriber.
  • Historisches Spike-Artefakt: F-280-personio-rest-import.html (Status superseded) — der verworfene REST-Refactor mit Spike-Findings, die zur Verwerfung führten.

Worklog

Datum Phase Eintrag
2026-05-11 Backlog-Import F-280 aus dem Story-Backlog ins Jira als P2503-106 angelegt (Status: Idee). Status-Quo: migrate_plus.migration.solcom_vacancy läuft seit Q2/2025 produktiv.
2026-05-15 Refactor-Erwägung Story wurde temporär auf authentifizierten REST-Refactor umetikettiert (Spiegel-Story F-280-personio-rest-import.html, PRD 2026-05-15-personio-rest-import-prd.html, Plan 2026-05-15-001-feat-personio-rest-import.html). Treiber: Compliance / Service-Identity.
2026-05-15 Spike Live-Spike gegen Personio v2-REST-API (Bearer-Token, 2345 Responses, 429 distinct Jobs) widerlegt die Refactor-Annahme: REST liefert nur 8 Header-Felder, alle 11 Content-Felder leben ausschließlich im XML-Feed. Details: F-280-personio-rest-import.html#spike-findings.
2026-05-15 Architektur-Entscheidung Grilling-Session: REST-Refactor verworfen. Migrate+XML bleibt kanonisch. ADR-0035 angelegt. Diese Story wieder als kanonisch zurückgesetzt; REST-Variante als historisches Spike-Artefakt erhalten.