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 jcognos
Once 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.
debug
timeout
ignoreInvalidCertificates
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.
user
String Cognos usernamepassword
String Passwordnamespace
String 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
id
String Cognos Object id of the folderpattern
String = '' Pattern like you would use when listing folders in your filesystem. eg. 'Sales' (optional, default'*'
)types
Array = '['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
id
String 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
id
String Id of the folder to be deletedforce
type = true Not sure, actually (optional, defaulttrue
)recursive
type = 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;
filename
String Path to the .zip filename
String name of the module (as found in the spec.json), for visualisations: id of the visualisation (as found in the package.json > meta > id)type
String 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.
url
String The URL of your Cognos installation. If empty, this function becomes static and a Promise for the current jCognos object is returned. (optional, defaultfalse
)debug
Boolean If true, starts debugging into the console (optional, defaultfalse
)timeout
(optional, default60000
)ignoreInvalidCertificates
(optional, defaultfalse
)Timeout
Number value for http(s) connections. In milliseconds. Default is 60000.ignoreinvalidcertificates
Boolean Should invalid certificates over ssl be ignored. Default = false
Returns Promise a promise that will return the jCognos object
Type: Object
id
String The id of the namespacevalue
String Displayname of the NameSpaceisDefault
Boolean 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}