dmx.host.url ignoring url?
I want to run DMX 5.0 beta 6 on my public web server. I want to make it available under the URL /dmx without creating a new subdomain. For this to happen I configured an apache proxy server, which works fine, from what I can tell. I can login to dmx initially, but then the client loads endlessly. Here is an excerpt of the client logs:
b67b3306c28222bc7f78.main.js:1 [DMX] Client API 2019/11/21
b67b3306c28222bc7f78.main.js:27 [DMX] 2019/11/23
b67b3306c28222bc7f78.main.js:27 dm5-detail-panel created {__ob__: ke}
b67b3306c28222bc7f78.main.js:13 GET https://my.domain.com/core/websockets 404 (Not Found)
(anonymous) @ b67b3306c28222bc7f78.main.js:13
e.exports @ b67b3306c28222bc7f78.main.js:13
e.exports @ b67b3306c28222bc7f78.main.js:27
Promise.then (async)
a.request @ b67b3306c28222bc7f78.main.js:27
o.forEach.a.<computed> @ b67b3306c28222bc7f78.main.js:27
(anonymous) @ b67b3306c28222bc7f78.main.js:13
getWebsocketConfig @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:27
r @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:1
b67b3306c28222bc7f78.main.js:13 GET https://my.domain.com/core/assoctype/all 404 (Not Found)
(anonymous) @ b67b3306c28222bc7f78.main.js:13
e.exports @ b67b3306c28222bc7f78.main.js:13
e.exports @ b67b3306c28222bc7f78.main.js:27
Promise.then (async)
a.request @ b67b3306c28222bc7f78.main.js:27
o.forEach.a.<computed> @ b67b3306c28222bc7f78.main.js:27
(anonymous) @ b67b3306c28222bc7f78.main.js:13
getAllAssocTypes @ b67b3306c28222bc7f78.main.js:1
init @ b67b3306c28222bc7f78.main.js:1
init @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:27
r @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:1
b67b3306c28222bc7f78.main.js:13 GET https://my.domain.com/core/topic/by_type/dmx.core.data_type 404 (Not Found)
(anonymous) @ b67b3306c28222bc7f78.main.js:13
e.exports @ b67b3306c28222bc7f78.main.js:13
e.exports @ b67b3306c28222bc7f78.main.js:27
Promise.then (async)
a.request @ b67b3306c28222bc7f78.main.js:27
o.forEach.a.<computed> @ b67b3306c28222bc7f78.main.js:27
(anonymous) @ b67b3306c28222bc7f78.main.js:13
getTopicsByType @ b67b3306c28222bc7f78.main.js:1
init @ b67b3306c28222bc7f78.main.js:1
init @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:27
r @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:1
b67b3306c28222bc7f78.main.js:13 Uncaught (in promise) Error: Request failed with status code 404
at e.exports (b67b3306c28222bc7f78.main.js:13)
at e.exports (b67b3306c28222bc7f78.main.js:27)
at XMLHttpRequest.d.onreadystatechange (b67b3306c28222bc7f78.main.js:13)
e.exports @ b67b3306c28222bc7f78.main.js:13
e.exports @ b67b3306c28222bc7f78.main.js:27
d.onreadystatechange @ b67b3306c28222bc7f78.main.js:13
Promise.then (async)
(anonymous) @ b67b3306c28222bc7f78.main.js:27
(anonymous) @ b67b3306c28222bc7f78.main.js:27
r @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:1
b67b3306c28222bc7f78.main.js:13 GET https://my.domain.com/core/topic/by_type/dmx.core.role_type 404 (Not Found)
(anonymous) @ b67b3306c28222bc7f78.main.js:13
e.exports @ b67b3306c28222bc7f78.main.js:13
e.exports @ b67b3306c28222bc7f78.main.js:27
Promise.then (async)
a.request @ b67b3306c28222bc7f78.main.js:27
o.forEach.a.<computed> @ b67b3306c28222bc7f78.main.js:27
(anonymous) @ b67b3306c28222bc7f78.main.js:13
getTopicsByType @ b67b3306c28222bc7f78.main.js:1
init @ b67b3306c28222bc7f78.main.js:1
init @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:27
r @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:1
b67b3306c28222bc7f78.main.js:13 GET https://my.domain.com/core/topictype/all 404 (Not Found)
(anonymous) @ b67b3306c28222bc7f78.main.js:13
e.exports @ b67b3306c28222bc7f78.main.js:13
e.exports @ b67b3306c28222bc7f78.main.js:27
Promise.then (async)
a.request @ b67b3306c28222bc7f78.main.js:27
o.forEach.a.<computed> @ b67b3306c28222bc7f78.main.js:27
(anonymous) @ b67b3306c28222bc7f78.main.js:13
getAllTopicTypes @ b67b3306c28222bc7f78.main.js:1
init @ b67b3306c28222bc7f78.main.js:1
init @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:27
r @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:1
b67b3306c28222bc7f78.main.js:13 GET https://my.domain.com/accesscontrol/methods 404 (Not Found)
(anonymous) @ b67b3306c28222bc7f78.main.js:13
e.exports @ b67b3306c28222bc7f78.main.js:13
e.exports @ b67b3306c28222bc7f78.main.js:27
Promise.then (async)
a.request @ b67b3306c28222bc7f78.main.js:27
o.forEach.a.<computed> @ b67b3306c28222bc7f78.main.js:27
(anonymous) @ b67b3306c28222bc7f78.main.js:13
getAuthorizationMethods @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:27
r @ b67b3306c28222bc7f78.main.js:1
t.default @ b67b3306c28222bc7f78.main.js:27
tt @ b67b3306c28222bc7f78.main.js:27
(anonymous) @ b67b3306c28222bc7f78.main.js:27
r @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:1
b67b3306c28222bc7f78.main.js:13 GET https://my.domain.com/core/plugin 404 (Not Found)
(anonymous) @ b67b3306c28222bc7f78.main.js:13
e.exports @ b67b3306c28222bc7f78.main.js:13
e.exports @ b67b3306c28222bc7f78.main.js:27
Promise.then (async)
a.request @ b67b3306c28222bc7f78.main.js:27
o.forEach.a.<computed> @ b67b3306c28222bc7f78.main.js:27
(anonymous) @ b67b3306c28222bc7f78.main.js:13
getPlugins @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:27
r @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:1
b67b3306c28222bc7f78.main.js:13 GET https://my.domain.com/core/topic/by_type/dmx.workspaces.workspace 404 (Not Found)
(anonymous) @ b67b3306c28222bc7f78.main.js:13
e.exports @ b67b3306c28222bc7f78.main.js:13
e.exports @ b67b3306c28222bc7f78.main.js:27
Promise.then (async)
a.request @ b67b3306c28222bc7f78.main.js:27
o.forEach.a.<computed> @ b67b3306c28222bc7f78.main.js:27
(anonymous) @ b67b3306c28222bc7f78.main.js:13
getTopicsByType @ b67b3306c28222bc7f78.main.js:1
u @ b67b3306c28222bc7f78.main.js:27
(anonymous) @ b67b3306c28222bc7f78.main.js:27
r @ b67b3306c28222bc7f78.main.js:1
t.default @ b67b3306c28222bc7f78.main.js:27
tt @ b67b3306c28222bc7f78.main.js:27
(anonymous) @ b67b3306c28222bc7f78.main.js:27
r @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:1
b67b3306c28222bc7f78.main.js:13 Uncaught (in promise) Error: Request failed with status code 404
at e.exports (b67b3306c28222bc7f78.main.js:13)
at e.exports (b67b3306c28222bc7f78.main.js:27)
at XMLHttpRequest.d.onreadystatechange (b67b3306c28222bc7f78.main.js:13)
e.exports @ b67b3306c28222bc7f78.main.js:13
e.exports @ b67b3306c28222bc7f78.main.js:27
d.onreadystatechange @ b67b3306c28222bc7f78.main.js:13
Promise.then (async)
(anonymous) @ b67b3306c28222bc7f78.main.js:27
r @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:1
b67b3306c28222bc7f78.main.js:13 Uncaught (in promise) Error: Request failed with status code 404
at e.exports (b67b3306c28222bc7f78.main.js:13)
at e.exports (b67b3306c28222bc7f78.main.js:27)
at XMLHttpRequest.d.onreadystatechange (b67b3306c28222bc7f78.main.js:13)
e.exports @ b67b3306c28222bc7f78.main.js:13
e.exports @ b67b3306c28222bc7f78.main.js:27
d.onreadystatechange @ b67b3306c28222bc7f78.main.js:13
Promise.then (async)
(anonymous) @ b67b3306c28222bc7f78.main.js:27
r @ b67b3306c28222bc7f78.main.js:1
t.default @ b67b3306c28222bc7f78.main.js:27
tt @ b67b3306c28222bc7f78.main.js:27
(anonymous) @ b67b3306c28222bc7f78.main.js:27
r @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:1
(anonymous) @ b67b3306c28222bc7f78.main.js:1
b67b3306c28222bc7f78.main.js:13 Uncaught (in promise) Error: Request failed with status code 404
at e.exports (b67b3306c28222bc7f78.main.js:13)
at e.exports (b67b3306c28222bc7f78.main.js:27)
at XMLHttpRequest.d.onreadystatechange (b67b3306c28222bc7f78.main.js:13)
But in config.properties I set the following:
dmx.websockets.url = wss://my.domain.com/dmx/
...
dmx.host.url = https://my.domain.com/dmx/
Could it be that the config settings are ignoring the URL part, but only use the domain part to rewrite the client settings?
This issue is relevant e.g. to operate DMX on the freedombox or anywhere else, where people cannot so easily run DMX under an exclusive subdomain.