Planning Analytics with Watson

Expand all | Collapse all

End points Planning Analytics 2.0.9 TM1 REST API

  • 1.  End points Planning Analytics 2.0.9 TM1 REST API

    Posted Tue July 06, 2021 09:43 AM
    We are trying to establish REST API connectivity from an Angular application to the TM1 servers that are using CAM security.
    As we understand, the client application needs to make different calls to both TM1 and CAM to 1. Perform authentication and 2. To fetch data.
    Our integration architect wants to understand the details around the REST APIs that are being exposed by both TM1 server and the ClientCAMURI ( FYI.. We use IIS as webserver for Cognos analytics gateway).
    They would like to understand,

    REST API end points, services and the parameters to be passed for TM1 server.
    REST API end points, services and the payload info to be passed to CAM URI to get CAM Passport.

    Also, any possibility of having one of the below to authenticate into the TM1 / CAM thru REST API.

    TLS + Basic Auth, or
    TLS + OAuth2 Client Credentials grant

    Appreciate your help!

    ------------------------------
    Manitt Khanna
    ------------------------------


  • 2.  RE: End points Planning Analytics 2.0.9 TM1 REST API

    Posted Wed July 07, 2021 10:18 AM
    Hi, 

    as per my understanding, the client that login to TM1 through REST API connection should be able to login to TM1 directly as a client. Whatever the client's application, it is need to login to TM1 server using the REST API. 

    and you need to set the server as usual: 
    https://www.ibm.com/docs/en/planning-analytics/2.0.0?topic=security-configuring-tm1-server-use-cognos

    Regards,
    Veronika

    ------------------------------
    Veronika Gultom
    ------------------------------



  • 3.  RE: End points Planning Analytics 2.0.9 TM1 REST API

    Posted Wed July 07, 2021 10:31 AM
    Please see: https://www.ibm.com/docs/en/planning-analytics/2.0.0?topic=api-authenticating-managing-sessions#concept_ed4_h2h_ghb

    This explains how authentication with the REST API works.

    ------------------------------
    Stuart King
    IBM Planning Analytics Offering Manager
    ------------------------------



  • 4.  RE: End points Planning Analytics 2.0.9 TM1 REST API

    Posted Thu July 08, 2021 04:08 PM
    Hi

    I find the IBM documentation on this rather confusing where it talks about returning the details of the CAM server. That isn't necessary. In reality if someone is logging on then they are going to know whether they want to use TM1 or CAM authentication, or the application developer will have set this for them.  You only need to talk to the TM1 Rest API end point, not the CAM URI. The TM1 Server knows how to go to CAM via the information in its TM1S.CFG. It will do that for you.

    Below is a fragment of VueJS code that handles the formatting needed for TM1 or CAM Authentication. As per the comments, my VueJS code calls a NodeJS server which then adds on additional headers and makes the final call to the Rest API. However, the core bit is covered below in terms of making up the login details that need to be attached to the Authorization header. 

     async Submit() {
          try{
            // AuthType is TM1 or CAM
            const AuthType :string = this.AuthType
            const User :string = this.UserName
            const Pwd :string = this.Pwd
            // this.CAM will give the name of the CAM Name Space if using CAM
            const CAM :string = this.CAM
    
            let LoginType :string = 'Basic'
            let UserDetails :string = User + ':' + Pwd
            if(AuthType == 'CAM')
            {
                LoginType = 'CAMNamespace'
                UserDetails += ':' + CAM
    
            }
            // This bit does the Base64 Encoding in JS
            const LoginDetails :string = LoginType + ' ' + 
                 Buffer.from(UserDetails,'binary').toString('base64')
    
            const body = {
              LoginDetails: LoginDetails
            }
    
            // HTTP is an object set up with the end point for a NodeJS
            // server which adds additional headers to make the final call
            // to the TM1 Rest API
            const response = await HTTP.post('./Connect',body)​


    Now, if IBM could add some further information on handling certificates for SSL that would be good...

    Regards

    Paul Simon



    ------------------------------
    Paul Simon
    ------------------------------