<workflowRun _class='org.jenkinsci.plugins.workflow.job.WorkflowRun'><action _class='hudson.model.CauseAction'><cause _class='com.cloudbees.jenkins.GitHubPushCause'><shortDescription>Started by GitHub push by younex1</shortDescription></cause><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action _class='org.jenkinsci.plugins.workflow.libs.LibrariesAction'></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>3</buildNumber><marked><SHA1>3365492e0eebdab580a2e8c2b0c0eea00e89d606</SHA1><branch><SHA1>3365492e0eebdab580a2e8c2b0c0eea00e89d606</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>3365492e0eebdab580a2e8c2b0c0eea00e89d606</SHA1><branch><SHA1>3365492e0eebdab580a2e8c2b0c0eea00e89d606</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>3365492e0eebdab580a2e8c2b0c0eea00e89d606</SHA1><branch><SHA1>3365492e0eebdab580a2e8c2b0c0eea00e89d606</SHA1><name>refs/remotes/origin/main</name></branch></lastBuiltRevision><remoteUrl>https://github.com/younex1/blut24-landing.git</remoteUrl><scmName></scmName></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.EnvActionImpl'></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.job.views.FlowGraphAction'></action><action></action><action></action><action></action><building>false</building><displayName>#3 3365492</displayName><duration>32350</duration><estimatedDuration>28038</estimatedDuration><fullDisplayName>blut24-landing #3 3365492</fullDisplayName><id>3</id><keepLog>false</keepLog><number>3</number><queueId>5444</queueId><result>SUCCESS</result><timestamp>1785220314292</timestamp><url>https://jenkins.younex.de/job/blut24-landing/3/</url><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.env.example</affectedPath><affectedPath>server/utils/registrationValidation.ts</affectedPath><affectedPath>server/api/registration/submit.post.ts</affectedPath><commitId>d91c3a46ec2b1420a63ba8ecab63a9cb21593616</commitId><timestamp>1785219798000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@logyou.de</authorEmail><comment>registration: operator test domains may register for any clinic

Adds REGISTRATION_TEST_DOMAINS (comma-separated). Addresses on those domains skip
the "e-mail domain belongs to the chosen Standort" check, so the flow can be
exercised end-to-end against arbitrary clinics.

That check is the only thing preventing a stranger from registering someone else's
hospital, so it is never relaxed for real users. The bypass therefore:
  - does not exist at all when the variable is empty or unset (the default)
  - never counts as domain-verified (domain_verified stays 0)
  - forces needs_manual_approval and prefixes the note with [TESTREGISTRIERUNG via &lt;domain&gt;]
  - leaves the freemail blocklist and the per-Standort duplicate guard intact

Verified: younex.de/it-beratung.it accepted for a non-matching Charité Standort;
a non-whitelisted business domain and a freemail address both still rejected; and
with the variable unset younex.de is rejected again.

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</comment><date>2026-07-28 08:23:18 +0200</date><id>d91c3a46ec2b1420a63ba8ecab63a9cb21593616</id><msg>registration: operator test domains may register for any clinic</msg><path><editType>edit</editType><file>server/utils/registrationValidation.ts</file></path><path><editType>edit</editType><file>server/api/registration/submit.post.ts</file></path><path><editType>edit</editType><file>.env.example</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>Jenkinsfile</affectedPath><affectedPath>deploy/deploy.sh</affectedPath><commitId>3365492e0eebdab580a2e8c2b0c0eea00e89d606</commitId><timestamp>1785220306000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@logyou.de</authorEmail><comment>ci: move the deploy concurrency guard from Jenkins to the target

Every build after the first sat in the queue as a BlockedItem and never started
until Jenkins was restarted - observed three times on this controller. The only
plausible cause was disableConcurrentBuilds(), so it is removed.

The race it guarded against is two deploys swapping the `current` symlink at the
same time. That resource lives on the TARGET, not on Jenkins, so deploy.sh now
takes an flock on /var/lock/blut24-landing-deploy.lock for the whole run. That is
strictly better: it also covers deploys started by hand or from another controller,
which the Jenkins-side option never did.

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</comment><date>2026-07-28 08:31:46 +0200</date><id>3365492e0eebdab580a2e8c2b0c0eea00e89d606</id><msg>ci: move the deploy concurrency guard from Jenkins to the target</msg><path><editType>edit</editType><file>Jenkinsfile</file></path><path><editType>edit</editType><file>deploy/deploy.sh</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></culprit><inProgress>false</inProgress><nextBuild><number>4</number><url>https://jenkins.younex.de/job/blut24-landing/4/</url></nextBuild><previousBuild><number>2</number><url>https://jenkins.younex.de/job/blut24-landing/2/</url></previousBuild></workflowRun>