dmx-platform issueshttps://git.dmx.systems/dmx-platform/dmx-platform/-/issues2024-03-22T14:06:47+01:00https://git.dmx.systems/dmx-platform/dmx-platform/-/issues/539CI: errors running javadocs2024-03-22T14:06:47+01:00Juergen NeumannCI: errors running javadocs@jri @rsc There are errors building the apidocs. When scrolling through https://git.dmx.systems/dmx-platform/dmx-platform/-/jobs/48836 I see a lot of warnings and errors. I guess this is not good. Can you help me please to fix the issue....@jri @rsc There are errors building the apidocs. When scrolling through https://git.dmx.systems/dmx-platform/dmx-platform/-/jobs/48836 I see a lot of warnings and errors. I guess this is not good. Can you help me please to fix the issue. You can check the results at https://apidocs.dmx.systems/ Thank you!Robert SchusterRobert Schusterhttps://git.dmx.systems/dmx-platform/dmx-platform/-/issues/538CI: deploy javadocs via download of job artifacts2024-03-08T15:31:05+01:00Juergen NeumannCI: deploy javadocs via download of job artifactsATM javadocs are deployed via rsync. To dockerize the deployment, the webserver should download javadocs from job artifacts - triggered via cgi script.ATM javadocs are deployed via rsync. To dockerize the deployment, the webserver should download javadocs from job artifacts - triggered via cgi script.Juergen NeumannJuergen Neumannhttps://git.dmx.systems/dmx-platform/dmx-platform/-/issues/537Revise Files API2024-03-02T21:44:34+01:00Jörg RichterRevise Files APIThe current Files API (DMX 5.3.4) does not support the use case described in dmx-plugins/dmx-linqa#38 very well, that is **transforming an uploaded file before storing** it in DMX file repo. The Files API should be revised.
@jpn FYIThe current Files API (DMX 5.3.4) does not support the use case described in dmx-plugins/dmx-linqa#38 very well, that is **transforming an uploaded file before storing** it in DMX file repo. The Files API should be revised.
@jpn FYIDMX 5.3.5Jörg RichterJörg Richterhttps://git.dmx.systems/dmx-platform/dmx-platform/-/issues/536DMX Webclient: emojis does not render uniformly on all platforms/browsers2024-01-17T06:03:44+01:00Jörg RichterDMX Webclient: emojis does not render uniformly on all platforms/browsersExample (on a Mac)
Firefox:
![image](/uploads/000200a9f48b84a2fcd94b7b9a1728de/image.png)
Chrome:
![image](/uploads/73a9655d07bd6285e14d37edf4c81227/image.png)
See https://git.dmx.systems/dmx-plugins/dmx-linqa/-/issues/34
@jpn FYIExample (on a Mac)
Firefox:
![image](/uploads/000200a9f48b84a2fcd94b7b9a1728de/image.png)
Chrome:
![image](/uploads/73a9655d07bd6285e14d37edf4c81227/image.png)
See https://git.dmx.systems/dmx-plugins/dmx-linqa/-/issues/34
@jpn FYIDMX 5.3.4Jörg RichterJörg Richterhttps://git.dmx.systems/dmx-platform/dmx-platform/-/issues/535Revise resource handling2024-02-22T23:33:14+01:00Jörg RichterRevise resource handlingCurrent resource handling (#504) is still not optimal.
The current approach causes confusion about
a) how webpack output coexists with static web resources, and
b) how to control what to include in git repo.
Webpack output should ...Current resource handling (#504) is still not optimal.
The current approach causes confusion about
a) how webpack output coexists with static web resources, and
b) how to control what to include in git repo.
Webpack output should go to `target/`, not `src/`.
`src/main/resources/web/` should not be .gitignored.
The `resources-static/` directory is possibly not needed then.
See https://git.dmx.systems/dmx-plugins/dmx-sign-up-ui/-/issues/15#note_26032
@rsc FYIDMX 5.3.4Jörg RichterJörg Richterhttps://git.dmx.systems/dmx-platform/dmx-platform/-/issues/534introduce a way to restrict authorization methods via configuration2023-12-09T11:00:10+01:00Robert Schusterintroduce a way to restrict authorization methods via configurationdmx-sign-up has a config parameters that currently influences which authorization methods are available (and in what order). This option however only has an effect on the web ui that the plugin renders itself. Additionally the option is ...dmx-sign-up has a config parameters that currently influences which authorization methods are available (and in what order). This option however only has an effect on the web ui that the plugin renders itself. Additionally the option is completely cosmetic because the platform itself still allows login with whatever available authorization method.
ACs:
- configure allowed authorization methods via property dmx.security.restrict_auth_methods
- the property should contain comma-separated a list of allowed authorization methods
- the platform should only allow logins with the mentioned authorization methods
- the function List<String> getAuthorizationMethods() should only return the authorization methods that are left after having applied the filter list from the configuration option
- the order of the items in the filter list should be reflected in the getAuthorizationMethods() function
See
https://git.dmx.systems/dmx-plugins/dmx-sign-up-ui/-/issues/12https://git.dmx.systems/dmx-platform/dmx-platform/-/issues/533Update SLF4J to 2.02024-01-08T21:15:23+01:00Jörg RichterUpdate SLF4J to 2.0Current DMX platform (5.3.3) comes with SLF4J 1.7 deployed, a **logging facade**. Tess4J (#532) needs SLF4J 2.0.
https://www.slf4j.org/manual.html
Unfortunately this is not an easy upgrade. SLF4J API version 2.0.0 relies on Java's [Se...Current DMX platform (5.3.3) comes with SLF4J 1.7 deployed, a **logging facade**. Tess4J (#532) needs SLF4J 2.0.
https://www.slf4j.org/manual.html
Unfortunately this is not an easy upgrade. SLF4J API version 2.0.0 relies on Java's [ServiceLoader](https://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html) mechanism to find its logging backend, and this mechanism is known for not working well with OSGi :unamused:
https://blog.osgi.org/2013/02/javautilserviceloader-in-osgi.html
As a solution we can utilize Apache Aries [SPI Fly](https://aries.apache.org/documentation/modules/spi-fly.html) component, an implementation of the OSGi ServiceLoader Mediator specification.
https://aries.apache.org/documentation/modules/spi-fly.html
SPI Fly does his job by *Java byte code manipulation* dynamically at plugin deployment time, in order to replace all ServiceLoader calls with an OSGi compliant logic. Byte code manipulation is done by ObjectWeb ASM.
https://asm.ow2.io
As logging is a cross-cutting concern it needs to be deployed at platform level (in contrast to plugin level). So with upcoming 5.3.4 the DMX standard installation will come with a whole lot of new dependencies, just to do logging :rolling_eyes:
@jpn FYIDMX 5.3.4Jörg RichterJörg Richterhttps://git.dmx.systems/dmx-platform/dmx-platform/-/issues/532Bring OCR to DMX2024-01-08T21:29:25+01:00Jörg RichterBring OCR to DMXIn the scope of #529 we need OCR capability to make pure image PDFs searchable.
This could be realized by utilization of [Tesseract](https://github.com/tesseract-ocr/tesseract), a very mature open source software written in C++, availab...In the scope of #529 we need OCR capability to make pure image PDFs searchable.
This could be realized by utilization of [Tesseract](https://github.com/tesseract-ocr/tesseract), a very mature open source software written in C++, available for all platforms. Its API can be accessed from Java by utilization of [Tess4J](https://github.com/nguyenq/tess4j).
Tesseract could be bring to DMX as a plugin: [dmx-tesseract](https://git.dmx.systems/dmx-plugins/dmx-tesseract). It's functionality would rely on a local native Tesseract installation.
Needed for dmx-projects/lqdn#2
@jpn FYIDMX 5.3.4Jörg RichterJörg Richterhttps://git.dmx.systems/dmx-platform/dmx-platform/-/issues/531Plugin dev: more Core API support for update operations2024-01-08T21:39:08+01:00Jörg RichterPlugin dev: more Core API support for update operations1) Core API: at the moment `ChildTopicsModel`'s `setRef()` and `addRef()` methods do not support specifying a value for the created association. Additionally to the current methods there should be ones with an `assoc` parameter:
```
...1) Core API: at the moment `ChildTopicsModel`'s `setRef()` and `addRef()` methods do not support specifying a value for the created association. Additionally to the current methods there should be ones with an `assoc` parameter:
```
ChildTopicsModel setRef(String compDefUri, long refTopicId, AssocModel assoc);
ChildTopicsModel setRef(String compDefUri, String refTopicUri, AssocModel assoc);
ChildTopicsModel addRef(String compDefUri, long refTopicId, AssocModel assoc);
ChildTopicsModel addRef(String compDefUri, String refTopicUri, AssocModel assoc);
```
2) At the moment Core's `ModelFactory` provides a method for creating an association model with a *composite* value (`ChildTopicsModel`). Additionally there should be a method for creating one with a *simple* value:
```
AssocModel newAssocModel(SimpleValue value);
```
Without these methods the desired result can only be achieved by utilization of more lower-level methods, which makes plugin code very ugly/unreadable.
@gev FYI :grin:DMX 5.3.4Jörg RichterJörg Richterhttps://git.dmx.systems/dmx-platform/dmx-platform/-/issues/530Plugin dev: simplify update format for setting relating association value2024-01-08T21:44:29+01:00Jörg RichterPlugin dev: simplify update format for setting relating association valueAt the moment in a composite update operation when an association value is given the plugin developer needs to set that association's type as well, otherwise the value will not be updated/stored. The DMX Core should work in a way that se...At the moment in a composite update operation when an association value is given the plugin developer needs to set that association's type as well, otherwise the value will not be updated/stored. The DMX Core should work in a way that setting the association type is not required, as this puts 1) unnecessary burden on the developer and 2) when forgot, updating the value silently fails without obvious reason.
@gev FYI :wink:DMX 5.3.4Jörg RichterJörg Richterhttps://git.dmx.systems/dmx-platform/dmx-platform/-/issues/529Make PDF files searchable2024-01-08T21:36:11+01:00Jörg RichterMake PDF files searchableSubject of this ticket is making PDF files searchable by their text content.
- Indexing:
- Both needs to be indexed, local PDF files (single-user installation), and uploaded PDF files (client/server installation).
- Indexing takes p...Subject of this ticket is making PDF files searchable by their text content.
- Indexing:
- Both needs to be indexed, local PDF files (single-user installation), and uploaded PDF files (client/server installation).
- Indexing takes place automatically whenever a File topic is created.
- This ticket addresses only PDF that contain extractable text. In contrast, PDFs containing only (scanned) images is not part of this ticket.
- Frontend:
- Existing Webclient search dialog transparently also searches PDF content. Result are File topics. No UI change needed.
- Visualization of actual match positions within PDF file is not part of this ticket.
- Implementation:
- Extend Core's [`DMXStorage`](https://git.dmx.systems/dmx-platform/dmx-platform/-/blob/master/modules/dmx-core/src/main/java/systems/dmx/core/storage/spi/DMXStorage.java) interface by dedicated indexing method.
- Provide indexing functionality as separate module [dmx-pdf-search](https://git.dmx.systems/dmx-plugins/dmx-pdf-search).
- For text extraction [Apache PDFBox](https://pdfbox.apache.org) could be used. The indexing facade for various files types, [Apache Tika](https://tika.apache.org), is possibly not needed at the moment (for PDF it relies on PDFBox anyways).
Needed for dmx-projects/lqdn#2
@jpn FYIDMX 5.3.4Jörg RichterJörg Richterhttps://git.dmx.systems/dmx-platform/dmx-platform/-/issues/528Adapt Core API: remove value from multi-value2024-01-08T21:47:42+01:00Jörg RichterAdapt Core API: remove value from multi-valueSince DMX 5.3 we can have duplicate values in a multi-value (#509). For removing a particular value `ChildTopicsModel`'s `addDeletionRef()` method (Core API) needs to be revised.
At the moment the topic to be removed is specified by its...Since DMX 5.3 we can have duplicate values in a multi-value (#509). For removing a particular value `ChildTopicsModel`'s `addDeletionRef()` method (Core API) needs to be revised.
At the moment the topic to be removed is specified by its ID or URI:
```
ChildTopicsModel addDeletionRef(String compDefUri, long refTopicId);
ChildTopicsModel addDeletionRef(String compDefUri, String refTopicUri);
```
With duplicates this is no longer suitable as the topic is not unique. We need to specify an *association ID* instead, referring the *association* that connects the topic to the parent.
Subject of this ticket is replacing the 2 methods above with:
```
ChildTopicsModel addDeletionRef(String compDefUri, long assocId);
```
@gev FYI :wink:DMX 5.3.4Jörg RichterJörg Richterhttps://git.dmx.systems/dmx-platform/dmx-platform/-/issues/527Plugin dev: support for getting plattform's conf directory2023-11-11T15:27:11+01:00Jörg RichterPlugin dev: support for getting plattform's conf directory@rsc FYI
See also https://git.dmx.systems/dmx-plugins/dmx-sign-up-ui/-/issues/3#note_25760@rsc FYI
See also https://git.dmx.systems/dmx-plugins/dmx-sign-up-ui/-/issues/3#note_25760DMX 5.3.3Jörg RichterJörg Richterhttps://git.dmx.systems/dmx-platform/dmx-platform/-/issues/526Adopt in-map details design from Kuoho2023-10-26T23:37:36+02:00Jörg RichterAdopt in-map details design from KuohoBit by bit we want move parts from the Kuohu UI to the Webclient.
This ticket is about the in-map details design which looks much better than the Webclient's one:
![grafik](/uploads/3ea5c87eb4c172e557c962254705bb35/grafik.png)
![grafik...Bit by bit we want move parts from the Kuohu UI to the Webclient.
This ticket is about the in-map details design which looks much better than the Webclient's one:
![grafik](/uploads/3ea5c87eb4c172e557c962254705bb35/grafik.png)
![grafik](/uploads/10840cb09cfe6ace6a7147b989670f93/grafik.png)
Some conceptualization is still required though. :smile:
@irau @gev @tta @jpn FYIDMX 5.4https://git.dmx.systems/dmx-platform/dmx-platform/-/issues/525Error notifications are truncated2023-10-28T16:07:24+02:00Jörg RichterError notifications are truncatedError notifications are truncated. Full message is not readable:
![grafik](/uploads/d223f6b4c09cf36232b1ab3fb6a0c2b7/grafik.png)Error notifications are truncated. Full message is not readable:
![grafik](/uploads/d223f6b4c09cf36232b1ab3fb6a0c2b7/grafik.png)DMX 5.3.3Jörg RichterJörg Richterhttps://git.dmx.systems/dmx-platform/dmx-platform/-/issues/524Webclient: several URL malfunctions regarding object selection2023-11-10T19:00:19+01:00Jörg RichterWebclient: several URL malfunctions regarding object selectionIn the Webclient there are several malfunctions in conjunction with browser URL and object selection.
1. When you're revealing and selecting an object (=topic/association) *in a topicmap you have no WRITE permission for*, that selection...In the Webclient there are several malfunctions in conjunction with browser URL and object selection.
1. When you're revealing and selecting an object (=topic/association) *in a topicmap you have no WRITE permission for*, that selection is reflected in the URL. This is expected behavior, BUT: when you now press reload an error is shown in the browser console, and the Webclient is in an inconsistent state.
![grafik](/uploads/ef881c33750200f498ae5dbcb0301885/grafik.png)
![grafik](/uploads/42008ae72dbd57f478981928ea8c51f4/grafik.png)
Correct behavior would be, when such an URL is openend the Webclient strips the selection part from URL and possibly closes/clears the detail panel.
2. When you select an object you have READ permission for only when logged in, and then logout, the object disappears from canvas. This is correct behavior, BUT: the selection is still part of the URL (and an open detail stays open), and when you now press reload the Webclient shows an error:
![grafik](/uploads/08481b975aa37d22b21697ebd7edb564/grafik.png)
![grafik](/uploads/bddf091749f5ea8a0c649408665661ba/grafik.png)
Correct behavior would be, in the moment you log out, the Webclient strips the selection part from URL and closes/clears an possibly open detail panel.
@jpn FYIDMX 5.3.3Jörg RichterJörg Richterhttps://git.dmx.systems/dmx-platform/dmx-platform/-/issues/523Edit User Account: setting empty Password shows cryptic error message2023-10-24T19:57:11+02:00Jörg RichterEdit User Account: setting empty Password shows cryptic error messageWhile editing an User Account (see #519), when clearing the Password field and press Save a cryptic error message is shown:
![grafik](/uploads/1a1129882a3a304ee7dd72c49ed36d3f/grafik.png)
The account is still functional with the old pa...While editing an User Account (see #519), when clearing the Password field and press Save a cryptic error message is shown:
![grafik](/uploads/1a1129882a3a304ee7dd72c49ed36d3f/grafik.png)
The account is still functional with the old password then.
Note: DMX platform basically allows to *create* users with empty password (see "admin" default account), but does not allow to *update* an account by setting empty password. This is regarded wanted/accepted behavior.
Subject of this ticket to provide a more clear error message in that case.
@jpn FYIDMX 5.3.3Jörg RichterJörg Richterhttps://git.dmx.systems/dmx-platform/dmx-platform/-/issues/522Word-break2023-10-27T16:00:25+02:00GloriaWord-breakThe words are broken (... or divided ...) in the results texts that appear in the search dialog. See attached image.
![Screen_Shot_2023-10-17_at_13.25.05](/uploads/64c0aa211c9e191a6ed732185af370eb/Screen_Shot_2023-10-17_at_13.25.05.png)The words are broken (... or divided ...) in the results texts that appear in the search dialog. See attached image.
![Screen_Shot_2023-10-17_at_13.25.05](/uploads/64c0aa211c9e191a6ed732185af370eb/Screen_Shot_2023-10-17_at_13.25.05.png)DMX 5.3.3Jörg RichterJörg Richterhttps://git.dmx.systems/dmx-platform/dmx-platform/-/issues/521Regression: users can change their username2023-10-24T19:57:37+02:00Jörg RichterRegression: users can change their usernameWhen editing her User Account (see #519) a user can change its Username.
This is a bug, a regression in conjunction with DM5's Value Integration feature.
A DMX Username must not be editable resp. such a request must be rejected.
Act...When editing her User Account (see #519) a user can change its Username.
This is a bug, a regression in conjunction with DM5's Value Integration feature.
A DMX Username must not be editable resp. such a request must be rejected.
Actually if a Username is changed all kinds of bad things can happen.
@jpn FYIDMX 5.3.3Jörg RichterJörg Richterhttps://git.dmx.systems/dmx-platform/dmx-platform/-/issues/520Password gets corrupted when saving User Account w/o changes2023-10-24T19:58:06+02:00Jörg RichterPassword gets corrupted when saving User Account w/o changesTry this in Webclient:
1. Select a workspace where you have WRITE permission
2. Change your password by editing your User Account topic (see #519)
3. Press again "Edit" on your User Account topic
4. Press immediately "Save" *without actu...Try this in Webclient:
1. Select a workspace where you have WRITE permission
2. Change your password by editing your User Account topic (see #519)
3. Press again "Edit" on your User Account topic
4. Press immediately "Save" *without actually editing anything*.
=> Your password is now corrupted. After logging out you can't login anymore. **Your account is now broken.**
This is a severe bug.
What actually happens here: your already hashed password gets hashed again, rendering it corrupt.
What needs to be fixed: when saving an User Account only hash password if user actually typed in a new password.
@jpn @rsc FYIDMX 5.3.3Jörg RichterJörg Richter