1. Introduction
iKnowBase iKnowBook is a wiki solution for iKnowBase, developed as an iKnowBase JavaSDK plugin.
The solution is a simple, user-friendly tool for writing and maintaining structured documentation in a wiki-style way, ie iknowbooks. The solution contains logic for creating, maintaining and displaying iknowbooks, structured in chapters. Access rights are controlled per iknowbook and per section. Different users can edit different sections simultaneously.
2. Metadata
There are two document types in use: IKNOWBOOK and IKNOWBOOK_SECTION
An iKnowBook is stored as an iKnowBase document with document type IKNOWBOOK. Chapters are stored as subdocuments with document type IKNOWBOOK_SECTION.
The solution uses standard iKnowBase metadata in addition to custom iKnowBook metadata. The plugin contains scripts which may create and update metadata upon plugin startup. See Configuration for more details.
3. User interface
The iKnowBook solution consists of an overview page and a detail page. The overview page is available at /<context-root> and lists all the iknowbooks. The detail page is available at /<context-root>/<book-id> and displays the content of an iknowbook, including a navigational table of contents.
Iknowbooks are presented as thumbnails on the overview page. To get thumbnails of the same size, you should use images which are larger than the configured thumbnail transformation and with the same ratio.
Tip
|
After uploading an image, you can edit the image and crop it using the defined iknowbook crop area in the image picklist/image archive. |
Click on a book on the overview page to open the detail page for the book. The detail page is available in two modes: view and edit. Enter edit mode to enable inline edit of titles and text content.
Access to create iknowbooks is controlled by the iKnowBase iKnowBook ACL. Access to the iknowbooks themselves are controlled by ACLs on the iknowbook and section documents.
4. Installation
-
The ACL configured in
no.acando.iknowbase.plugin.iknowbook.adminAclExternalKey
(Default value IKNOWBOOK_ADMIN_ACL) must be created before you deploy the application. -
Set REQUIRED configuration options, see Configuration section below.
-
Application deployment: See the iKnowBase Installation Guide for instructions for Java Plugin installation.
4.1. Dependencies
The application has these library dependencies, which you’ll need to deploy as well:
The application also relies on iKnowBase Content Studio. This is almost always deployed, but if not you’ll need to deploy that as well.
4.2. Metadata
The iKnowBase iKnowBook plugin requires a set of metadata, which automatically gets installed upon startup of the plugin. You may disable this behaviour, see the configuration table below.
4.3. Configuration
4.3.1. Configuration options
Note
|
You must disable Spring Boot’s default flyway integration to avoid conflict with Spring Boot’s Flyway setup. |
The following configuration options are available for iKnowBase iKnowBook:
Property | Description |
---|---|
spring.flyway.enabled |
REQUIRED: Set this to false to disable Spring Boot’s default flyway integration. We’re handling this our selves and per plugin. |
no.acando.iknowbase.plugin.iknowbook.adminAclExternalKey |
External key for the ACL to be used to control access to create iknowbooks. Default value IKNOWBOOK_ADMIN_ACL. |
no.acando.iknowbase.plugin.iknowbook.databaseMigration.enabled |
Execute database migration (metadata) upon startup. Default value true. |
no.acando.iknowbase.plugin.iknowbook.databaseMigration.repair |
Execute repair for failed database migrations (metadata). Default value false. |
no.acando.iknowbase.plugin.iknowbook.databaseMigration.tableName |
Name of database table to be used for database migrations (metadata). Default value IKNOWBOOK_FLYWAY. |
no.acando.iknowbase.plugin.iknowbook.databaseMigration.baselineVersion |
The version to tag an existing schema with when executing baseline. Default value 1. |
no.acando.iknowbase.plugin.iknowbook.logoutLink |
The link used to log out from the application. Default value /ikb$auth/logout. |
no.acando.iknowbase.plugin.iknowbook.thumbnailTransformation |
The image thumbnail transformation to use on the overview page. Default value image:png:resize:700:500:best-fit-shrink. |
no.acando.iknowbase.plugin.iknowbook.thumbnailImageDefault |
Url to an image to use as default thumbnail on the overview page. |
no.acando.iknowbase.plugin.iknowbook.valueSetAclExternalKeys |
Comma separated list of external keys for ACLs which should be available for use in the iknowbooks. No default value supplied, ie all ACLs will be available for use. |