Integrate IBM Connections Docs with BOX

This is a very useful integration, once set up you will be able to use IBM Docs to edit your files stored in BOX. What I found is that is not so easy to set up, requires some fiddling with json files and this can be tricky, at least for me it was since I am not that familiar with json. But with some attention in editing the file it can be done.

IBM published in June 2016 a Technote on how to perform the integration., and I followed the instructions written there. The first part is pretty much straightforward, just do what is indicated there and you will create your BOX application for Docs integration.

1. Log in to the Box developer console at
  2. Create a Box application, choose a name, for example, "Edit in IBM Docs".
  (Make sure Content API Access Only is selected.)
  3. Remember client_id and client_secret for the Box application.
  You need to import the OAuth credentials to the IBM Docs system.
  4. The redirect_uri in the OAuth2driverscallback".
  5. Set the user type to Standard Box users.
  6. Go to the Web App Integrations section and click
  Create a New Web App Integration.
  7. Configure the web app integration:
     a. Choose a name for the web application, and fill in the description
        for the application.
     b. Add supported extensions for Docs: .docx, .pptx, .xlsx, .doc, .xls,
       .ppt, .ods, .odt, .odp, .csv, .txt.
     c. Under Permissions requirement, select Full permissions are required.
     d. In the Scoped to field, select
        The parent folder of the file/folder from which this integration is invoked.
     e. Set the category to Editing.
     f. Set the file type category to Documents.
     g. Set the integration status to Online.
     h. Make the integration open a popup in a new tab.
     i. Use REST method.
     j. Leave the Preliminary Callback URL field empty.
     k. The client callback URL should be the callback URL of the
        IBM Docs non-IBM product integration and must use the https protocol,
        such as "https://docs_server/docs/driverscallback".
     l. Callback parameters should be configured as follows:


8. Leave the other fields as default.

9. Save the web app integration and then save the application.

Then there are two options, depending if you are integrating when installing Docs or if you want to integrate an existing installation. I choose the second, since I already have some servers with Connections and Docs installed.

1. Download and install IBM Connections Docs 2.0 iFix 004 or IBM Connections Docs 2.0 CR1
2. Update the Editor Application configuration file <WAS install root>/profiles/Dmgr01/config/cells//IBMDocs-config/concord-config.json.

Now you have to add some code, paying close attention to the json file format.

(This is where I struggled a bit. You have to make sure you use the correct syntax and I strongly suggest you to use a smart editor like Notepad++ that will show the format of the file better than the simple Notepad)

You have to add this at the beginning of the file

       "allow_uri":""     } 

Then you have to update Update ExternalRestRepository configuration:


           "id" : "",

           "class" : "",
             "config" :
             "s2s_method" : "oauth2",
             "customer_id" : "",
             "oauth2_endpoint" : "", 
             "j2c_alias" : "",
             "s2s_token" : "",
             "token_key" : "",
             "onbehalf_header" : "",
                          "media_meta_url" : "{ID}",
             "media_get_url" : "{ID}/content",
             "media_set_url" : "{ID}/content",
             "docs_callback_endpoint" : "https://<docs_server name>/docs/driverscallback",
             "repository_home" : ""

Update ExternalAuth configuration:

          "id" : "",
          "config" : {
          "s2s_method" : "oauth2"                                

Update ExternalDirectory configuration, and add new keys “bypass_sso” and “current_user_profiles_url”.


            "id": "",
              "class": "",

            "profiles_url": "{ID}", 
              "token_key": "",
              "docs_callback_endpoint": "https://<docs_server name>/docs/driverscallback",
              "oauth2_endpoint": "",
              "j2c_alias": "",
              "onbehalf_header": "",
              "customer_id": "",
              "config": {
              "s2s_token": "",
              "s2s_method": "oauth2",
              "keys": {
              "org_id_key": "org_id",
              "photo_url_key": "",
              "url_query_key": "ID",
              "display_name_key": "name",
              "name_key": "name",
              "id_key": "id",
              "email_key": "login"

Basically search for in the file and you will find these 3 sections.

Then Update socialConfig configuration

  "profile": "null",
  "BIZCard": "null",
  "ST": "null", 
  "url": "{ID}",
  "useInitialName": false 

Now sync all the nodes to propagate the changes from Deployment Manager to App Servers

There are two more steps:
Step 1: Set up OAuth2 credentials for Box
Extract the file from the IBM Docs installation package, for example,\IBMConnectionsDocsrepo\ native\\installer\docs\tasks\
Run wsadmin.bat -lang jython -username xx -password xx -f ${PATH}/ -action add -customer customer_id -key key -value “value”
Where :
customer_id is the value specified in customer_id in ${WAS_INSTALL_ROOT}/profiles/AppSrv1/config/cells/{cell}/IBMDocs-config/concord-config.json.
Note: the technote says the value is the one specified in external_customer_id but this is wrong, use the one specified in customer_id
key could be oauth2_client_id or oauth2_client_secret
value is the value of the client_id or client_secret you should have copied when creating the BOX app. If you did not, you can always edit the BOX app and you’ll find the values you need
For example:
wsadmin.bat -lang jython -user xx -password xx -f -action
add -customer -key oauth2_client_id -value “l7xxf61984f99f404575a781d47c6bfebdca”

Step2: Add https certificates into the WebSphere local trust store
a. Log into the WebSphere Application Server Administrative Console.
b. Expand Security and click SSL certificate and key management.
c. Under Configuration settings, click Manage endpoint security configurations.
d. Select the appropriate outbound configuration to get to the (cell) management scope.
e. Under Related Items, click Key stores and certificates.
f. Click the CellDefaultTrustStore key store.
g. Under Additional Properties, click Signer certificates > Retrieve From Port.
h. In the Host field, enter the in the host name field, the port_number value 443 in the Port field, and the in the Alias field.
i. Click Retrieve Signer Information.
j. Verify that the certificate information is for a certificate that you can trust.
k. Click Apply and Save.
l. Restart Deployment Manager, all nodes and app servers.

Now open a browser and log on to Connections, then in another tab log on to BOX, select a file from the list in BOX and click the small rectangle with the three dots
A popup menu will appear
Click on “More Actions” and you should see the BOX app you created before available
A popup will appear the first time
Click Okay and a new tab will open with the document opened in Docs

I would like to thank Wei Li and my friend Stefano Pogliani, both from IBM, for the help they provided me with.

And now for something completely different: how to recover several hundreds of MB of space on your iOS device.

On the web somewhere, I can’t recall where, I found this trick to recover space on your iOS device. Check how much space you’ve left in Settings-> General, in my case I was left with 800 MB. Now open the iTunes Store, go in movies and select a movie to rent greater than the space you have free, let’s say 4GB. Select to rent it, after a few seconds you’ll get the message that you don’t have enough space and told to manage the free space and you’ll be sent again in the settings. Check the free space you have now, it should be increased by several hundred MBs; in my case went from 800 MB to 1.2 GB. Repeat this again four or five times, until you see that the free space doesn’t increase anymore. In my case I ended up with 2.1 GB free.

I do not know exactly what iOS does to free the space, I guess it will clean some cache or the like, but I would have never been able to clean 1.3 GB of free space manually myself.

IBM Connections Docs 2.0 CR1 fix does not install

I tried to install Docs 2.0 CR1 but when I ran the command to perform the upgrade the task failed, specifically when updating the Conversion server, with the error “Target with name was not found.”

I quickly found out that two other esteemed friends, Christoph Stoettner and Milan Matejic, had encountered the same issue and were able to solve it.

The problem is in the file that is in the patch installation directory. At the bottom of the file there the line “self.me_hostname = socket.gethostname()”. The solution  is to change that to “self.me_hostname = socket.getfqdn()”.

Once I did that, CR1 installed flawlessly. Thanks a lot to Christian and Milan!

I'll be speaking at DNUG 2016

Today I received in my inbox the confirmation that I have been accepted as a speaker at the DNUG Konferenz 2016, which will be in Hamburg on June 1-2.

My session is IBM Connections Docs 2.0 from zero to hero, in which I will show the architecture of IBM Connections Docs and live-demonstrate how to deploy and integrate it with IBM Connections.
The full agenda of the event is here.

It is an event geared primarily towards a German audience, as you can see from the list of sessions, and I am one of the few English language speaker; I am sure that the fact that my usual partner in crime Martti Garden, who would have surely given the session in his native language, will be away on holiday has something to do with this 🙂

There are other friends and IBM Champions speaking at DNUG which is a great event, so if you understand the language is definitely worth attending.

IBM Connections iFix LO87906 may cause Files not work correctly in some circumstances

I performed an upgrade of Connections from 5.0 to 5.5 for a customer, and in the new environment Files were not working correctly using the web UI. When a user clicked on Files the page would get stuck showing “Loading…”.

In a chat with Michael Urspringer from IBM I found he had stumbled up on the same issue and that he solved it uninstalling iFix LO87906. So I did the same and the problem was gone; there is no official from IBM Support at this time, but the fact that two installations had the same problem and solved it by removing the fix leads toward the identification of LO87906 as the culprit. 

I have other installations, both new and upgraded from 5.0, where this does not happen so it seems that the fix breaks Files only in some specific circumstances I have not been able to identify, in any case if you see Files not working correctly it would be worth removing that fix and see if this solves the problem.

Connections related blogs list

My friend and fellow IBM Champion Christoph Stoettner has compiled a useful list of blogs that deal with IBM Connections and more in general with ICS solutions.

If you work with ICS products, you will find lots of useful info in those blogs, I strongly suggest you to check them out.

Sharon Bellamy
Christoph Stoettner
Connections scripting
Nico Meisenzahl
Martin Leyrer
Klaus Bild
Susan Bulloch
Kim Greene
Victor Toal
Roberto Boccadoro
Gab Davis
The Turtle Partnership ( Gab davis again )
Dave Hay
Michael Urspringer
Robert Farstad
Mitch Cohen
Wannes Rams
GIS blog
Milan Matejic
Martti Garden
Rob Sullivan
Ben Williams
Rainer Brandl
Hogne Pettersen