Library that encapsulates the (undocumented) IBM Cognos Analytics REST API.
You can use this to write tests, external clients or build tools for your Cognos environment. As the Cognos API is not official, things might break (badly) after Cognos upgrades.
npm install jcognosOnce the jcognos has been installed, you can include it in your projects as a CommonJS module
require("jcognos");or as an ES2016 module
import getCognos from "jcognos";Then get going like:
jcognos
.getCognos("https://cognos.example.com/ibmcognos/", true)
.then(function(lcognos) {
lcognos.login("username", "password"); // Which also returns a promise
});If you want to run this module in your browser, this version does not support XSRF headers. It is (temporarily) broken. To use the module against Cognos Analytics 11.0.7 or later, follow these steps:
-
Open the Windows Services window and stop the IBM Cognos service.
-
Open the file installation_location\wlp\usr\servers\cognosserver\bootstrap.properties.
-
Add the following line:
disableXSRFCheck=true
-
Save the file.
-
Restart the IBM Cognos service
You do not need to do this if you use jcognos in nodejs or in cordova.
- Cognos
- getCognos
- NameSpace
- CognosObject
- cRequest
- isStandardBrowserEnv
- isNode
Class that helps you connect with your inner Cognos. You can not create this class directly, use getCognos to retrieve the Cognos instance.
debugtimeoutignoreInvalidCertificates
capabilities - returns the Cognos User Capabilities object
Returns Object Object with Capabilities
preferences - returns the Cognos User Preferences, eg. timezone, skin, accessibiltity settings etc.
Returns Object Object with Preferences
defaultNamespace - returns the default namespace that jCognos will login to
Returns String id of the default namespace
namespaces - returns a list of possible namespaces, also when there is only 1
Returns Array<NameSpace> An array of objects describing the namespaces
login - Logs into Cognos.
userString Cognos usernamepasswordString PasswordnamespaceString Namespace (optional, defaultCognosDefaultnamespaceorthenamespacethatistheonlynamespace)
Returns Promise returns a promise.
logoff - Logs off from Cognos.
Returns Promise returns a promise.
reset - Create a new connection
Returns Promise When resolved we are logged in
getCurrentThemeSettings - Fetches current theme settings
Returns Promise The promise resolves to an object that holds the spec.json of the current theme. It has attributes such as brandTextSmall etc.
getCognosVersion - Fetches Cognos Product Version
Returns Promise The promise resolves to a string that holds the version number
setConfig - Sets Configuration Key
Returns Promise The promise resolves to a string that holds the key value
getConfig - Fetches Configuration Keys
Returns Promise The promise resolves to a string that holds the full config
getConfigKey - Fetches Configuration Keys
key
Returns Promise The promise resolves to a string that holds the key value
_getPublicFolderId - Internal function to retrieve the ObjectId of the public folders
Returns Promise Promise that results in an id as {String}.
listRootFolder - Returns the Public Folders and the My Content
Returns Array<CognosObject> Array of CognosObjects
listPublicFolders - List content of the Public Folders
Returns Array<CognosObject> List of sub-folders
listFolderById - Lists the folder content by id
idString Cognos Object id of the folderpatternString = '' Pattern like you would use when listing folders in your filesystem. eg. 'Sales' (optional, default'*')typesArray = '['folder']' Types of Cognos objects to list. defaults to folders only. Other values could be 'report' (optional, default['folder'])
Returns Array<CognosObject> List of sub-folders
getFolderDetails - Gets the raw Cognos details of a folder
idString objectId
Returns Object Full object as returned by Cognos
addFolder - Creates a new folder
Returns CognosObject The newly created folder
deleteFolder - Deletes a folder, its content and subfolders
idString Id of the folder to be deletedforcetype = true Not sure, actually (optional, defaulttrue)recursivetype = true Will probably fail if folder contains children and set to false (optional, defaulttrue)
Returns Boolean Returns true upon success
uploadExtension - Uploads zipfile containing Cognos Extension or visualisation. Only supports updating an existing module. This function is only supported by Node.js. In the browser this function returns false;
filenameString Path to the .zip filenameString name of the module (as found in the spec.json), for visualisations: id of the visualisation (as found in the package.json > meta > id)typeString type of upload. Default is 'extensions', for themes use 'themes' for visualisations 'visualisation'. (optional, default'extensions')
Returns Promise Promise that resolves to a string.
Check to see of user is loggedin or not
Type: Boolean
getCognos - Static function to get the Cognos Object. You can have only 1 Cognos object in your application at any time.
urlString The URL of your Cognos installation. If empty, this function becomes static and a Promise for the current jCognos object is returned. (optional, defaultfalse)debugBoolean If true, starts debugging into the console (optional, defaultfalse)timeout(optional, default60000)ignoreInvalidCertificates(optional, defaultfalse)TimeoutNumber value for http(s) connections. In milliseconds. Default is 60000.ignoreinvalidcertificatesBoolean Should invalid certificates over ssl be ignored. Default = false
Returns Promise a promise that will return the jCognos object
Type: Object
idString The id of the namespacevalueString Displayname of the NameSpaceisDefaultBoolean Set to true if this is the default namespace
Type: Object
Local Variable that holds the single CognosRequest instance
Determine if we're running in a standard browser environment returns {boolean}
Determine if we're running in node returns {boolean}