Hello, my name is Lafina, I am a software development engineer at Lauderd, and I am a software
development engineer in Lauderd, and today I will talk about Libra Office based
document editing in Lauderd, using Columbo online, and I will show you quickly how the integration
actually is looking, and I will go through some technical details about how the integration
was done. To say a few words about XWiki, XWiki, it is a Wikipedia-based collaborative tool
that enables collaboration. It is a light and a powerful platform that allows you to
have a bit nervous. It is my first time, it is my first presentation.
I know you can customize your Wiki based on your needs, relying on this, you can develop
and install extensions, so we did such an extension for integrating with Columbo.
I will show you a little bit how it looks, so starting from a basic Wikipedia page, you can
go through the attachment section where you can either edit existing office attachments using
the Columbo robot, or you can create new office files that will be attached to this page.
This is the form for creating a new office document, and this is how it looks when you are
editing to a page to edit the file using Columbo. This enables all the Columbo online features.
You can also, for example, see the fact that you can edit Columbo relatively, like you
have many people on the same file.
On the integration, first I want to thank Columbo because the integration was pretty smoothly.
Went pretty smoothly, and the documentation was really helpful.
So integrate with Columbo, you need to rely on the Wiki protocol.
This is an open standard for that allows web-based application to integrate with
the online office server. To set it, you need to first set the actual Wiki protocol.
There are some rest endpoints for exposing the information about the file you want to edit.
Then is the Wiki discovery step. There is a discovery XML file that provides information about
the capabilities, the web application exposes. This is provided by Columbo online.
You need to set up the host page, which is the UI, the user actually sees.
It's an I-frame that about this Columbo run.
There's also the post message API, which is needed for interacting with the I-frame.
This is optional. You might not need it.
For the Wiki protocol, there are many rest endpoints, but for integrating Columbo,
we only need it this far. Get file for retrieving the file, the execute attachment.
Put file for updating the file binary content content.
Put Relative file, which is needed for the save as action, to create a new file based on one existing.
Check file info that returns information about the file, such as the names,
or if you want to disable some UI.
Authentication. This is the most important part of the integration.
XWiki has to have the secure way of editing and viewing the files.
You need to use an access token.
The tokens are managed by XWiki, so we have to create a unique token for each user.
This token expire, and you are denied access to the file if it's a wrong token, of course.
The post message API, the web message protocol, let's collaborate, webframe communicate with the parent's host page,
and reach a versa. This is the structure of the message that is sent.
The post message API enables things like querying the iFrame for certain information.
You can know when certain events happen, like when a user went idle,
when a save action was performed, but you can also send messages like, I don't know,
maybe you want to customize the UI, you want to insert the button, or other UI things.
Or you can also perform a save action yourself.
These are some new cases when we actually needed to use the post message API to show you how it works.
As I said, XWiki is the one responsible for managing the tokens for editing security files.
So every time you save a document, we are looking at the documentified status message that we get,
we check if the token wasn't actually, isn't expired, actually, because it has a lifetime.
If the token is expired, we renew it on our side, and then we continue the editing.
Other use case, when we needed to use the post message API is for doing some UI changes,
we wanted to integrate the save and exit and close editor buttons.
This is still working progress, we haven't released it, but I thought it's interesting to show it.
Future work that needs to be done on this application, the application is already pretty mature, but there are still some things for the future.
One is what I already mentioned about the save and exit buttons, but also we also want to have a better token management.
Right now, this tokens are saved in memory, and there are some use cases when the tokens might be lost.
We have ways to recover them, but we need something better.
This was it, thank you.