Page tree

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 54 Next »

This is the documentation for ConfiForms Server/Data Center app

However, this might also work for ConfiForms cloud and in most cases it does. But please see this page to understand the differences between server and cloud versions of the ConfiForms app.


What is ConfiForms?

ConfiForms is an add-on (a plugin, an app) for Atlassian Confluence which helps you to build and manage data entry forms.

What ConfiForms can do for me?

ConfiForms app can help you to build data entry forms directly in Confluence, using Confluence editor. ConfiForms app is very versatile in functionality and covers a lot of user scenarios, with lot's of integration options - ranging from JIRA to databases and external web services. All these could be integrated into ConfiForms Form to help you to build a truly interactive user friendly forms.


Who develops and supports ConfiForms and how I can get help? 

ConfiForms add-on is developed and maintained by Vertuna LLC, established in 2005 and based in Estonia, Tallinn. We are Atlassian Verified partner (now the program is called Top Vendor, no called Silver level Atlassian partner) since 2015

You can contact us directly via the button below and we aim to answer you within 48 hours, but in most cases much faster (smile)



Where ConfiForms stores data?

ConfiForms stores data in your database, same database you Confluence is using. Where exactly depends on the version of ConfiForms you are using. If you are on version 1.x of ConfiForms please consider upgrading to Data Center ready and much more performant 2.x version of ConfiForms. Please see Release Notes for details

VersionStorage
Version 2.xConfiForms stores data in your Confluence database in a table "AO_CEFA84_CONFI_FORMS_ENTITY", one record per row. There are no limits on the dataset size per form in ConfiForms, but your database is limited to holding the total of 2,147,483,647 records (for all the forms). And the size of the record is limited by the number of characters your database can hold in a CLOB type field (ConfiForms limit is 2,147,483,647 bytes per record).
Version 1.x

ConfiForms stores data in page metadata table called OS_PROPERTYENTRY. Internally the data is stored as XML. As the data is stored as page metadata it becomes a part of Confluence standard backup and restrore procedure. But this also introduces the limits - we are able store (within one form) as much as the "text_val" field in "OS_PROPERTYENTRY" table can accomodate. You can have multiple ConfiForms, this limit is per form. For example, when Confluence uses MySQL database then this field type is MEDIUMTEXT which has a limit of 16MBs (which you can easily ALTER to be of a larger size). 

There are no limits on the number of forms and fields per form you can have.


What is storage format?

When we ask you to provide us with a storage format for your page configuration - this is what we mean.

Server/Data centerCloud



It allows us to import the contents directly to our test server and see exactly the configuration you have, and to help you with troubleshooting the issues you might have, a lot faster.

Atlassian documentation on storage format - https://confluence.atlassian.com/doc/confluence-storage-format-790796544.html


How do I see the version of ConfiForms

This is easy when you already have a form (ConfiForms Form macro). It requires you to do the following 2 steps



How many records could I save into ConfiForms?

With ConfiForms version 2.x there are no set limits on the number of records. See Where ConfiForms stores data?


Below is valid for ConfiForms version 1.x

We do not have any hard limits but you have to understand that ConfiForms is not a replacement to JIRA and storing support cases in thousands and having hundreds of concurrent users accessing the same forms datasets is not what it is designed for. However, we have seen installations where ConfiForms holds 5000+ records in one form. Not recommended, but possible (See also the Q/A above). We suggest to split your data into multiple forms, have an archiving in-place using IFTTT macro and try to keep your busy ConfiForms with small datasets. Please also note that complex forms with many fields (like 100+) will need more space to hold for one record.

Some numbers to share (very old (for version 1.x), and has been improved with new releases):


Records #Fields #Data sizeForm renderedData loadedEdit entry dialogAdmin UI all records (TableView rendering)Rendered size (of HTML for admin UI)All records filtered by one field, no edit controlsAll records with sorting (3 fields) with Edit controlsAll records,   no sorting, no Edit controlsPaged view, 50 records per page sorted, and with edit controlsPaged view, 50 records per page sorted, and no edit controls
Version 2.x1564172.5MB81 ms307 ms230 ms10 sec

11.912.913 bytes! (11 MB of data)

0.893 s5.8 sec8.9 sec

Version 1.x1564172.5MB0.15 sec
4 sec32 sec 12 sec
6 sec50 sec8.5 sec0.9 sec0.6 sec

This tests were executed on a very low-end machine, with 2GB of RAM total, shared VM on SSD, having the PostgreSQL database on the same machine, 1 core, Linux CentOS 7
Updated results for AdminUI loading of 1564 records: ConfiForms version 1.26.2+ (optimizations of edit controls rendering)

Tests are intentionally executed on a very low end machine.

Please note that the numbers shown above are not reference numbers but just a snapshot of how ConfiForms performs on a very low level hardware. Please also note that the tables it renders are very huge in size and in normal life you will not output something like 1500 records to your users on a page just for fun...



I have a feature request - what shall I do?

Happy to hear that and yes, please share it with us! We are very customer driven and love to hear your feedback. The feedback you gave us helps us to built the product you want! Use the contact form above to do that. Thank you in advance.

Where I can find SLA for ConfiForms?

Service Level Agreement for Add-ons developed by Vertuna LLC

Where I can find EULA for ConfiForms?

Vertuna Atlassian Add-ons EULA

Who is form admin and how to remove AdminUI?

Each ConfiForms Form is associated with a page (or a blogpost), the page where this form is defined using ConfiForms Form macro container. Administrators for this form are users who: have administrative access to Confluence (Confluence admins and superusers) users who have edit permissions on the page where the form is configured users (users in a group) who are explicitly set to be Form administrators via ConfiForms Form parameter to set additional form admins (they might not have Edit permissions on the page). Also see: Why do I see an extra button with + sign on my form and ownedBy field

Why do I see a "+" button on my form?

This is because you are the administrator of the form and allowed to see some metadata and create records on someones behalf. Ordinal users will not see this button. Also see: Why do I see an extra button with + sign on my form and ownedBy field

What happens with the data stored when the ConfiForms plugin gets disabled/uninstalled

Nothing. The data stored with ConfiForms plugin is stored as page metadata and remains in the database even if uninstall the plugin.


ConfiForms plugin is not a replacement for your Jira

This is very important to understand. ConfiForms is not a replacement to JIRA or any other issue tracking system. However, it could be easily used as one, but keep in mind the dataset size and the complexity of the forms you are building.


The original purpose of ConfiForms plugin is to allow customers to store structured data within Confluence. We strongly advice you to try to avoid forms with 5000+ rows, or better put, to avoid pages with forms that have 5000+ rows (as you may have many forms on the same Confluence page) There is no limit on a number of forms you can create, and no limit on number of rows, but our tests show that the plugin works best then a number of rows is up to 2000 (per form) and dataset is smaller than 10MB. We strongly suggest to keep the datasets sizes as small as possible, splitting the data between forms or using other external storages, such as JIRA as an example.


I could not enable the plugin (Plugins are disabled during startup due to unsatisfied dependencies errors)

We have a strict dependency on Confluence Workbox plugin, to send internal notifications. Please make sure you have  Workbox – Host Plugin (version 4.0.2 or can be other version, depending on your Confluence server version) is enabled

This might be the log entry you see in the Confluence general log:

ERROR [http-nio-8090-exec-10] [atlassian.plugin.manager.PluginEnabler] actualEnable Unable to start the following plugins due to timeout while waiting for plugin to enable: com.vertuna.confluence.plugins.confiforms -- referer: https://YOUR_SERVER/plugins/servlet/upm | url: /rest/plugins/1.0/com.vertuna.confluence.plugins.confiforms-key 
 
WARN [http-nio-8090-exec-10] [confluence.util.profiling.DefaultActivityMonitor] close Exceeded the threshold of 60000 ms: ActivitySnapshot{startTime=1500375387027, threadId=214, threadName='http-nio-8090-exec-10', userId='admin', type='web-request', summary='/rest/plugins/1.0/com.vertuna.confluence.plugins.confiforms-key'}

Or something along these lines

ERROR [Spring DM Context Creation Timer] [plugin.osgi.factory.OsgiPlugin] onPluginContainerFailed Unable to start the plugin container for plugin 'com.vertuna.confluence.plugins.confiforms'
org.springframework.context.ApplicationContextException: Application context initialization for 'com.vertuna.confluence.plugins.confiforms' has timed out waiting for (|(objectClass=com.atlassian.mywork.service.LocalNotificationService)(objectClass=com.atlassian.mywork.service.LocalTaskService))
ERROR [UpmAsynchronousTaskManager:thread-4] [atlassian.plugin.manager.PluginEnabler] actualEnable Unable to start the following plugins due to timeout while waiting for plugin to enable: com.vertuna.confluence.plugins.confiforms
ERROR [Spring DM Context Creation Timer] [extender.internal.support.ExtenderConfiguration] onOsgiApplicationEvent Application context refresh failed (NonValidatingOsgiBundleXmlApplicationContext(bundle=com.vertuna.confluence.plugins.confiforms, config=osgibundle:/META-INF/spring/*.xml))
org.springframework.context.ApplicationContextException: Application context initialization for 'com.vertuna.confluence.plugins.confiforms' has timed out waiting for (|(objectClass=com.atlassian.mywork.service.LocalNotificationService)(objectClass=com.atlassian.mywork.service.LocalTaskService))
ERROR [Spring DM Context Creation Timer] [internal.dependencies.startup.DependencyWaiterApplicationContextExecutor] fail Unable to create application context for [com.vertuna.confluence.plugins.confiforms], unsatisfied dependencies: Dependency on [(objectClass=com.atlassian.mywork.service.LocalTaskService)] (from bean [&taskService]), Dependency on [(objectClass=com.atlassian.mywork.service.LocalNotificationService)] (from bean [&notificationService])
org.springframework.context.ApplicationContextException: Application context initialization for 'com.vertuna.confluence.plugins.confiforms' has timed out waiting for (|(objectClass=com.atlassian.mywork.service.LocalNotificationService)(objectClass=com.atlassian.mywork.service.LocalTaskService))



I could not edit ConfiForms Field Definition macros - the loading icon keeps spinning.

This is a known issue, when you have Brikit Theme plugin version 2.0.0 and up till 2.0.4, where the issue has been fixed (Brikit broke the Confluence editor JavaScript scripts execution and blocked ConfiForms scripts from running). Please update your Brikit plugin to version 2.0.4.

How to get the number of pages using ConfiForms?

On a database level this operation is quite simple. Below you can find the queries which can help you to do this

select count(*) from os_propertyentry where entity_name = 'confluence_ContentEntityObject' and entity_key like 'confiform_content%';

select distinct entity_id as "content_id" from os_propertyentry where entity_name = 'confluence_ContentEntityObject' and entity_key like 'confiform_content%';

Why in the editor I get autolinks instead of [entry.field_name] notations

Sometimes you need to work with ConfiForms field value sin a raw format, and that goes through the use of [entry.field_name] notations (Accessing field values and properties)

Yes, we know it might be frustrating to type [entry.field_name] into a rich text macros( non-plain text), as Confluence editor tries to autoconvert them into a links...

The workaround for this would be as follows:

  1. Type [ 
  2. click Esc button to cancel lookups
  3. continue typing entry.field_name and so on...
  4. and on closing ] it will autolink, 
  5. but you do the ctrl+z to undo the autolink operation, so you will get a nicely written reference to ConfiForms field

Another workaround is to type your field reference in some plaintext editor and copy it directly to Confluence editor 

Or as follows - type [] then press ctrl+Z and start typing your expression inside the brackets


Another workaround suggested by one of our customers

  1. Type [[]
  2. And then fill in the expression between the [], removing one extra leading opening bracket


ConfiForms is slower to render on Confluence 6.x than on Confluence 5

We have also noticed that - the same plugin code renders slower in Confluence 6 than in Confluence 5. In fact. our macros rendering is not that slower (How to enable debug logging for ConfiForms app), however, the output to user is sent considerably slower than in Confluence 5.

We think, that this might be one of the reasons https://confluence.atlassian.com/confkb/slow-page-rendering-of-large-pages-due-to-http-post-limitations-183137.html

We have also noticed that rendering times (in fact the time used to sent the rendered output to user) has been improved in Confluence 6.8.x, but is still is slower than on Confluence 5. We are continuing to investigate this issue and looking for solutions.

Why ConfiForms creates a broken page from Confluence template

Using ConfiForms app as template engine to create pages in Confluence#WhyConfiFormscreatesabrokenpagefromConfluencetemplate

Why ConfiForms "auto wraps" everything with ConfiForms ListView on a created page

Using ConfiForms app as template engine to create pages in Confluence#WhyConfiForms%22autowraps%22everythingwithConfiFormsListViewonacreatedpage


ConfiForms cannot create a Jira issue - I am getting lot's of errors I don't understand

Best tutorial to start with is Creating Jira issue from Confluence with ConfiForms

Look at the pages mentioned below to learn what your Jira may expect as an input format for a certain field type and how you can prepare the values from ConfiForms to be in the format your Jira expects



  • No labels