apiguidibm-connections

IBM Connections: userid vs key - Why has connection multiple identifier for a single user?


When I look at the source of a profile page like https://<connections-host>/profiles/html/profileView.do?userid=98A10FD8-FCC3-5DD7-C125-6A9B0055D8C8 I see two kind of ids in the page source:

profilesData.displayedUser = { 
        key: "7a74e3bf-6cf4-40cd-a593-801275661353",
        dn: "<dn>",
        displayName: "Alice Someone", 
        userid:"98A10FD8-FCC3-5DD7-C125-6A9B0055D8C8", 
        // ...
};

userid seems like a regular GUID for the user, that's clear for me. But why do we have an additional key attribute? It also looks like another GUID but lowercase.

Connections API

The reason why I'm asking is: IBM's User API asks for a key attribute, e.g. /profiles/atom/profileEntry.do?key=7a74e3bf-6cf4-40cd-a593-801275661353. We can also call /profiles/atom/profileEntry.do?userid=98A10FD8-FCC3-5DD7-C125-6A9B0055D8C8, altough this is not official documentated.

Can someone explain why we have two ids? And what is the reason for using key instead of userid here? It disagrees the concept of an id to be unique.


Solution

  • Connections is built from several different apps with different databases (People, Blogs, Homepage, ....). Each DB has its own user table with their own keys. The second id is the userid, which should be the same across all DBs.

    In your example, the key refers to the peopledb. It's only valid in the profiles app. The Userid is valid accross all connections apps.