From 2411e72aeef829b8ae72aace68ceecdd903fe530 Mon Sep 17 00:00:00 2001 From: Niek Otten Date: Sat, 18 Jul 2026 10:57:41 +0200 Subject: [PATCH] fix(infra): deploy the DMN via the process repository, not dmn-api (S-13, refs #14) flowable/flowable-rest embeds the DMN engine but does not expose the dmn-api REST app, so POSTing the .dmn to dmn-api/dmn-repository/deployments 404'd and flowable-init exited 22. Deploy the .dmn through the process repository endpoint instead; the process deployment cross-deploys the resource to the DMN engine, where the registratie businessRuleTask resolves it by key. Co-Authored-By: Claude Opus 4.8 (1M context) --- infra/docker-compose.yml | 11 ++++++----- infra/flowable/docker-compose.yml | 11 ++++++----- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/infra/docker-compose.yml b/infra/docker-compose.yml index e141d56..357b675 100644 --- a/infra/docker-compose.yml +++ b/infra/docker-compose.yml @@ -267,14 +267,15 @@ services: - -c - | base=http://flowable-rest:8080/flowable-rest/service/repository/deployments - dmnbase=http://flowable-rest:8080/flowable-rest/dmn-api/dmn-repository/deployments until curl -sf -u rest-admin:test "$$base" >/dev/null 2>&1; do echo "waiting for flowable-rest..."; sleep 3; done - # Deploy the diploma-eligibility DMN to the DMN engine so the registratie process's - # businessRuleTask can resolve it by key (S-13, ADR-0016). - if curl -s -u rest-admin:test "$$dmnbase?name=diploma-eligibility" | grep -q '"name":"diploma-eligibility"'; then + # Deploy the diploma-eligibility DMN via the process repository: the flowable-rest image embeds + # the DMN engine but does not expose the dmn-api app, so the process deployment cross-deploys the + # .dmn resource to the DMN engine, where the registratie businessRuleTask resolves it by key + # (S-13, ADR-0016). + if curl -s -u rest-admin:test "$$base?name=diploma-eligibility" | grep -q '"name":"diploma-eligibility"'; then echo "diploma-eligibility already deployed; skip" else - curl -sf -u rest-admin:test -F 'file=@/work/diploma-eligibility.dmn;filename=diploma-eligibility.dmn' "$$dmnbase" >/dev/null && echo "deployed diploma-eligibility" + curl -sf -u rest-admin:test -F 'file=@/work/diploma-eligibility.dmn;filename=diploma-eligibility.dmn' "$$base" >/dev/null && echo "deployed diploma-eligibility" fi if curl -s -u rest-admin:test "$$base?name=registratie" | grep -q '"name":"registratie"'; then echo "registratie already deployed; skip" diff --git a/infra/flowable/docker-compose.yml b/infra/flowable/docker-compose.yml index 084fe1f..b29ff3c 100644 --- a/infra/flowable/docker-compose.yml +++ b/infra/flowable/docker-compose.yml @@ -48,14 +48,15 @@ services: - -c - | base=http://flowable-rest:8080/flowable-rest/service/repository/deployments - dmnbase=http://flowable-rest:8080/flowable-rest/dmn-api/dmn-repository/deployments until curl -sf -u rest-admin:test "$$base" >/dev/null 2>&1; do echo "waiting for flowable-rest..."; sleep 3; done - # Deploy the diploma-eligibility DMN to the DMN engine so the registratie process's - # businessRuleTask can resolve it by key (S-13, ADR-0016). - if curl -s -u rest-admin:test "$$dmnbase?name=diploma-eligibility" | grep -q '"name":"diploma-eligibility"'; then + # Deploy the diploma-eligibility DMN via the process repository: the flowable-rest image embeds + # the DMN engine but does not expose the dmn-api app, so the process deployment cross-deploys the + # .dmn resource to the DMN engine, where the registratie businessRuleTask resolves it by key + # (S-13, ADR-0016). + if curl -s -u rest-admin:test "$$base?name=diploma-eligibility" | grep -q '"name":"diploma-eligibility"'; then echo "diploma-eligibility already deployed; skip" else - curl -sf -u rest-admin:test -F 'file=@/work/diploma-eligibility.dmn;filename=diploma-eligibility.dmn' "$$dmnbase" >/dev/null && echo "deployed diploma-eligibility" + curl -sf -u rest-admin:test -F 'file=@/work/diploma-eligibility.dmn;filename=diploma-eligibility.dmn' "$$base" >/dev/null && echo "deployed diploma-eligibility" fi if curl -s -u rest-admin:test "$$base?name=registratie" | grep -q '"name":"registratie"'; then echo "registratie already deployed; skip"