IRISLIB database
v3 Class Reference

This class provides validation and dispatch for version 2 of the DeepSee REST services. More...

Inheritance diagram for v3:
Collaboration diagram for v3:

Static Private Member Functions

_.Library.Status ValidateRequest (_.Library.String pUrl, _.Library.String pMethod)
 This class provides validation and dispatch for version 2 of the DeepSee REST services. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from REST
_.Library.Status OnPreDispatch (_.Library.String pUrl, _.Library.String pMethod, _.Library.Boolean pContinue)
 This method Gets called prior to dispatch of the request. More...
 
- Static Public Member Functions inherited from REST
_.Library.Boolean AcceptsContentType (_.Library.String pType)
 This method tests the HTTP_ACCEPT header and returns true if. More...
 
_.Library.Status AccessCheck (_.Library.Boolean pAuthorized)
 This method performs a basic access check. More...
 
_.Library.Status DispatchRequest (_.Library.String url, _.Library.String method, _.Library.Boolean forwarded, args)
 Dispatch a REST request according to URL and Method. More...
 
_.Library.Status Error (_.Library.Boolean skipheader)
 Called for a REST page in the event of an error being trapped by CSP server.
 
_.Library.String GetAuthChallenge ()
 This method determines what challenge will be sent with a 401 (Unauthorized) response. More...
 
_.Library.Status Http403 (_.Library.Status pSC)
 Issue a '403' error (Deprecated, use ..ReportHttpStatusCode)
 
_.Library.Status Http404 (_.Library.Status pSC)
 Issue a '404' error (Deprecated, use ..ReportHttpStatusCode)
 
_.Library.Status Http405 (_.Library.String pSupportedVerbs)
 Issue a '405' error ( user can override)
 
_.Library.Status Http500 (_.Exception.AbstractException pE)
 Issue a '500' error and give some indication as to what occurred.
 
_.Library.Status Login (_.Library.Boolean skipheader)
 Called for a REST page in the event of a login being required.
 
_.Library.Status Page (_.Library.Boolean skipheader)
 This method matches the request and method and calls the dispatcher.
 
_.Library.Status ReportHttpStatusCode (pHttpStatus, _.Library.Status pSC)
 Issue an 'Http' error.
 
 SetResponseHeaderIfEmpty (_.Library.String pHeader, _.Library.String pValue)
 This utility method sets a response header only if it currently does not have a value.
 
_.Library.Status StatusToJSON (_.Library.Status pSC, _.Library.DynamicObject pJSON)
 Render a Status as JSON.
 
_.Library.Status StatusToProxyObject (_.Library.Status pSC, _.ZEN.proxyObject pJSON)
 Render a Status as JSON (in the form of an array of objects representing each status value).
 
_.Library.Status SupportedVerbs (pUrl, _.Library.String pVerbs)
 This generator creates the SupportedVerbs Method used to determine supported verbs to return for the OPTIONS request.
 
- Static Public Member Functions inherited from Login
 DrawCSS3STYLE ()
 Draw the style definitions for the login page. More...
 
 DrawHEAD (pTitle)
 Draw the HEAD section of the login page. More...
 
 DrawSTHEAD ()
 Draw the HEAD section of the security token page. More...
 
 DrawSTTitle (_.Library.String pTitle)
 Draw the title section of the security token page. More...
 
 DrawSTYLE ()
 Draw the style definitions for the login page. More...
 
 DrawTitle (_.Library.String pTitle)
 Draw the title section of the login page. More...
 
 DrawTitleSection (_.Library.String msgs)
 Draw the title section of the page. More...
 
_.Library.Status OnHandleCorsRequest (_.Library.String url)
 This is the CORS request handler. More...
 
_.Library.Status OnHandleOptionsRequest (_.Library.String url)
 This methods provides handling of the options request for this CSP application. More...
 
_.Library.Status OnPage ()
 Output the default login page as HTML.
 
_.Library.Boolean OnPreHTTP ()
 Determine if we need login CSRF tokens and if so add them. More...
 
- Static Public Member Functions inherited from Page
_.Library.Status ConvertParameter (_.Library.String url, _.Library.String name, _.Library.String value)
 You pass this the <parameter>url</parameter> of the page you are going to and a. More...
 
_.Library.Binary Decrypt (_.Library.String data)
 Decrypts the input string using the session.Key value that is unique to. More...
 
_.Library.String Encrypt (_.Library.Binary data)
 Encrypts the input string using the session.Key value that is unique to this. More...
 
_.Library.String EscapeHTML (in)
 This method converts input HTML text into Escaped HTML text.
 
_.Library.String EscapeURL (_.Library.String in, _.Library.String charset)
 This method converts the in input URL string into Escaped URL string. More...
 
_.Library.String HyperEventCall (_.Library.String methodName, _.Library.String args, _.Library.Integer type, _.Library.Boolean mobile)
 This method returns the string that needs to be written to the current. More...
 
_.Library.String HyperEventHead (_.Library.Boolean iframeOnly, _.Library.Boolean strict, _.Library.Boolean optionalBroker)
 This method returns the string that needs to be written to the current. More...
 
 Include (_.Library.String url)
 Include another csp page or file in the output at this point. More...
 
_.Library.String InsertHiddenField (_.Library.String url, _.Library.String name, _.Library.String value, _.Library.String extra)
 Inserts a '<input type="hidden" name="Name" value="Value">' tag into the current document. More...
 
_.Library.String InsertHiddenFields (_.Library.String url, _.Library.String query)
 Return the string containing the hidden form tags. More...
 
_.Library.Boolean IsPrivate ()
 Returns 1 if this page is in fact a private page (see <parameter>PRIVATE</parameter>).
 
_.Library.String Link (_.Library.String link, _.Library.String query, _.Library.Boolean addQ)
 Tranforms the link specified by link into a URL and returns it as a string. More...
 
_.Library.Status OnHTTPHeader (_.Library.Boolean OutputBody)
 Event handler for PAGE event: this is invoked in order to
More...
 
 OnPageError (_.Library.Status sc)
 Event handler for any error that occurs on the page. More...
 
 OnPostHTTP ()
 Event handler for POSTPAGE event: this is invoked after the data. More...
 
_.Library.Status OnPostHyperEvent (_.Library.String class, _.Library.String method)
 Event handler which is invoked after a hyperevent method is called on this page.
 
_.Library.Status OnPreHyperEvent (_.Library.String class, _.Library.String method)
 Event handler which is invoked before a hyperevent method is called on this page. More...
 
_.Library.String QuoteJS (in)
 This method converts input string into quoted JavaScript literal.
 
_.Library.String RewriteURL (_.Library.String url)
 This method will rewrite a URL to use #url()# if needed.
 
 ShowError (_.Library.Status sc)
 Display a <class>Status</class> error code to the CSP Page.
 
 StartTimer (_.Library.String name)
 Used to get performance information on your CSP pages. More...
 
 StopTimer (_.Library.String name)
 Used to time performance information on your CSP pages. More...
 
 ThrowError (_.Library.Status sc)
 Passed a <class>Status</class> code this goes to the error page passing this status code.
 
_.Library.String UnescapeHTML (in)
 This method converts Escaped HTML text into normal HTML text.
 
_.Library.String UnescapeURL (_.Library.String in, _.Library.String charset)
 This method converts the in Escaped URL string back to its original form. More...
 
- Static Public Attributes inherited from REST
 CHARSET = None
 Specifies the default character set for the page. More...
 
 CONTENTTYPE = None
 Specifies the default content type for the page. More...
 
 HandleCorsRequest = None
 This parameter influences the CORS support. More...
 
- Static Public Attributes inherited from REST
 HandleCorsRequest = None
 This parameter influences the CORS support. More...
 
 TokenLoginEndpoint = None
 If the REST application is using token authentication, then this parameter gives the path to use for the "login" endpoint. More...
 
 TokenLogoutEndpoint = None
 If the REST application is using token authentication, then this parameter gives the path to use for the "logout" endpoint. More...
 
 TokenRefreshEndpoint = None
 If the REST application is using token authentication, then this parameter gives the path to use for the "refresh" endpoint. More...
 
 TokenRevokeEndpoint = None
 If the REST application is using token authentication, then this parameter gives the path to use for the token revocation endpoint. More...
 
 UseSession = None
 This parameter controls the CSP session support. More...
 
- Static Public Attributes inherited from Login
 DOMAIN = None
 Provide a default login and security-token pages for CSP applications. More...
 
 FAVORITEICON = None
 Home favorite icon.
 
 HandleCorsRequest = None
 This parameter influences the CORS support for the CSP application that has this login page assigned. More...
 
 LOGINTITLE = None
 Title displayed for login page. More...
 
 STYLESHEET = None
 Name of stylesheet used for login page. More...
 
- Static Public Attributes inherited from Page
 CHARSET = None
 The <CLASS>CSP.Page</CLASS> object serves as an event handler for CSP requests. More...
 
 CONTENTTYPE = None
 Specifies the default content type for the page. More...
 
 CONVERTINPUTSTREAM = None
 Specifies if input request.Content or request.MimeData values are converted from their. More...
 
 CSPFILE = None
 If this page was compiled from a .csp file, then this parameter contains the. More...
 
 CSPSTRICT = None
 The CSPSTRICT parameter is set to 1, if the DOCTYPE indicates that this. More...
 
 CSPURL = None
 This parameter is used to make sure that if multiple. More...
 
 CSPXHTML = None
 The CSPXHTML parameter is set to 1, if the DOCTYPE indicates that this. More...
 
 DOMAIN = None
 The default domain for csp:text, span and div tags. More...
 
 ENCODED = None
 Controls how the query parameters for this page are passed, it can. More...
 
 ERRORPAGE = None
 Specify a custom error page to call if there are any problems with generating this page. More...
 
 EXPIRES = None
 Specified the default value for the response.Expires. More...
 
 NOCHARSETCONVERT = None
 Specifies if we wish to turn off charset conversion for this page. More...
 
 PAGETIMING = None
 If this parameter is true then we automatically record timing statistics of how long it takes to. More...
 
 PRIVATE = None
 Controls the access to the page, it can be set to one of the following:
More...
 
 SECURITYRESOURCE = None
 This is a comma-delimited list of system Resources and associated. More...
 
 TIMINGSLOTS = None
 Used by the timing to decide how many slots a day should be divided up into. More...
 
 UseSession = None
 This parameter controls the CSP session support. More...
 

Detailed Description

This class provides validation and dispatch for version 2 of the DeepSee REST services.

For /Command calls, required arguments are expected in the request body. Every request is treated as a POST request (including those that only fetch values) This is to prevent running into the error where the number of characters in the URL exceeds the limit.

For /Data and /Info calls, required arguments are expected in the URL. The exceptions to this rule are /Data/MDXExecute and /Data/PivotExecute, which require an argument POSTed to the the body of the request. For some services, the client may POST additional parameters in the body of the request. The description for each service outlines the parameters accepted for that particular service. In all services, unknown parameters that are included in the request body are ignored.

Example: Execute an MDX query using an HTTP POST request, sent to a web application with Dispatch class DeepSee.REST.v3.

var request = {}; var mdx = 'SELECT ' + ' NON EMPTY [Product].[P1].[Product Category].Members ON 0,' + ' NON EMPTY [Outlet].[H1].[Region].Members ON 1 ' + 'FROM [HoleFoods]' request.method = 'POST'; request.user = 'user'; request.passwd = 'pass'; request.acceptType = 'JSON'; request.contentType = 'JSON'; request.body = '{"MDX":"' + mdx + '"}'; request.callback = custom.queryCallBack request.async = true; request.url = 'http://host/port/restApplication/v3/Data/MDXExecute';

// run the query var xhr = new XMLHttpRequest(); xhr.open(request.method,request.url,request.async);

// kick off the request xhr.send(contents);


Requests can also be sent to the system /api/deepsee REST application. For example:

request.url = 'http://host/port/api/deepsee/v3/namespace/Info/Cubes';



Requests may be sent to the following services:

  • /Data/TestConnection or /Info/TestConnection - get test info to confirm connection to the server. A payload may be POSTed and will be echoed back.
  • /Data/MDXExecute - get result in JSON format for MDX query. POST the query in the required property "MDX". The server will assume the client wishes to wait for complete results before sending a response. The default timeout for this wait is 2 seconds less than the session's timeout setting. This can be set using the TIMEOUT property in the request.
    The client can optionally instruct the server to send partial results by POSTing "WAIT":0.

    request.body = '{ "MDX": "SELECT FROM PATIENTS",' + ' "FILTERS": [' + ' "[HomeD].[H1].[ZIP].&[32006]",' + ' "%OR({[PatGrpD].[H1].[Patient Group].&[Group A],[PatGrpD].[H1].[Patient Group].&[Group B]})"' + ' ]' + ' "WAIT":1' + ' "TIMEOUT":30' + '};'

/Data/PivotExecute - get result in JSON format for a stored pivot table. POST the full name (Folder/SubFolder/Name) of the table in the required property "PIVOT". Filters may be optionally be POSTed in the FILTERS property of the request. These filters take the identical form as described in /Data/MDXExecute. This service also supports the WAIT and TIMEOUT options. A pivot table that supports pivot variables may have those variables set using the VARIABLES array in the request.

request.body = '{ "PIVOT":"Pivot Variables/Commission Calculator",' + ' "VARIABLES": [' + ' "name":"commissionpercentage",' + ' "value":15' + ' ]' + '};'

/Data/KPIExecute - execute a KPI. POST the logical name of KPI in "KPI". Filters may be added as an array of objects in "FILTER". Each of the filter objects must provide a "name" and a "value" property.

request.body = '{ "KPI": "DemoMDX",' + ' "FILTERS": [ {' + ' "name" : "[aged].[h1].[age group]",' + ' "value" : "&[0 to 29]" }' + ' ]' + '};'

/Data/MDXDrillthrough - execute a detail listing on the cube's source class. POST the query in "MDX". DRILLTHROUGH requests will support a list of RETURN fields in the request, or a choice of LISTING. Attempting to post both will result in an error.

request.body = '{ "MDX": "DRILLTHROUGH SELECT FROM [PATIENTS]",' + ' "LISTING":"Doctor details"' + '};'

request.body = '{ "MDX": "DRILLTHROUGH SELECT FROM [PATIENTS]",' + ' "RETURN":"Age,BirthDate"' + '};'

/Data/KPIDrillthrough - execute a detail listing using a compiled KPI class. The source KPI is POSTed as "KPI" and must include support for executing a listing. DRILLTHROUGH requests will support a list of RETURN fields in the request, or a choice of LISTING. Attempting to post both will result in an error.

request.body = '{ "KPI": "HoleFoods/KPISQL"' +
'};'

/Data/Favorites/:Item - Add or remove an item from the Favorites list for a user. Use PUT to add an Item and DELETE to remove. /Data/GetDashboard/:dashboardName - Fetch the dashboard definition named dashboardName. /Data/GetDSTIME/:sourceClass - /Data/GetPivot/:pivotName - Fetch the pivot definition named pivotName. /Data/GetPivot/:termList - Fetch the key-value pair data defined in termList. /Data/MDXCancelQuery/:queryID - if a previous query has not completed, it can be canceled. /Data/MDXUpdateResults/:queryID - given a previous query response with ResultsComplete = 0, the client can request an update to the results using the cubeKey and queryKey.



/Info/Config/:appName - Storage of an arbitrary configuration document. Each configuratoin document is stored using the userName and the suplplied appName. Using POST will store contents filed under CONFIG in the request payload. Sending a GET request to this service will fetch a stored document. /Info/Filters/:dataSource - to get a list of filters available for a particular cube. /Info/FilterMembers/:dataSource/:filterSpec/ - get a list of values for a particular filter. Supported dataSources are cubes and KPIs. Values can be limited by POSTing values of other filters or a search key in the request.

request.body = '{ "RELATED": [' + ' {' + ' "spec": "[DateOfSale].[Actual].[YearSold]",' + ' "value": "&[2013]:&[2016]"' + ' }' + ' ],' + ' "SEARCHKEY":"Jan"' + '}';

/Info/Cubes/ - Fetch a list of cubes available in the namespace. /Info/DataSources/:sourceType - Generic access point for fetching data sources for widgets. Supports the types "pivot", "kpi", and "metric". For the "pivot" type POST can be used to limit the sources to a particular BASECUBE. See /Info/Pivots. /Info/Pivots/ - Fetch a list of pivots available. The listing can be limited to pivots based on a particular cube by POST to the BASECUBE property in the request.

request.body = '{"BASECUBE":"HOLEFOODS"}'

/Info/KPIs - Fetch a list of kpis available in the namespace. /Info/Metrics - Fetch a list of Interoperability Metrics available in the namespace. /Info/Dashboards/ - get a list of available dashboards. /Info/Listings/:cube - get a list of available listings for a particular cube. /Info/Measures/:cube - get a list of measures available for a particular cube. /Info/ListingFields/:cube - get the list of listing fields defined for a particular cube, for user-defined custom listings. /Info/NamedFilters/:cube - get a list of named filters defined for a cube. /Info/PivotVariables/:cube - get a list of pivot variables defined a cube. /Info/PivotVariableDetails/:cube/:variable - get the details for a single pivot variable. /Info/QualityMeasures/:cube - get a list of quality measures available for the cube. /Info/TermLists - Fetch a list of termLists available in the namespace. /Info/Favorites - Get the list of favorites stored for the current user.



/Command/Action/:cube/:action - Execute a KPI action that is available for the given cube. If applicable to the action, the additional calling context can be POSTed under the CONTEXT, and will be returned as the Context object in the Result payload. /Command/BuildCube - A wrapper for <method>DeepSee.Utils.BuildCube</method> which records cube event information when building the cube. /Command/RepairBuild - This method provides a means of doing an unscheduled repair build of a registered cube. /Command/BuildAllRegisteredGroups - This is a utility method which executes a complete build of all currently registered cubes in the current cube registry. /Command/BuildOneRegisteredGroup - This is a utility method which executes a complete build of one registered cube group in the current cube registry. /Command/SynchronizeCube - A wrapper for <method>DeepSee.Utils.SynchronizeCube</method> which records cube event information when building the cube. /Command/GetLastUpdate - Retrieves the timestamp of the the last registered data update for the cube. Updates performed outside of the Cube Manager will not be recognized in this check. /Command/GetActiveRegistry - Retrieve the name of the Cube Registry currently marked Active /Command/SetActiveRegistry - Change which Cube Registry is currently active. The Active Registry is the only one that is visible to the updater tasks. /Command/BuildRegistryMap - Retrieve the map that describes the current state of the Cube Registry and all other unregistered cubes on the system. For the lookup variable in the output JSON, for each array in the "cubes" object, the first value corresponds
to that the GroupIdx value and the second the CubeIdx value for that cube. The Cube can then be retrieved as follows: Set Cube = Map.Groups.GetAt(GroupIdx).Cubes.GetAt(CubeIdx) Currently GroupIdx and CubeIdx are 1-indexed. Subtract 1 from GroupIdx asnd CubeIdx to make them work for a 0-indexed system /Command/WriteToRegistry - Walk through a CubeManager.RegistryMap object and register the cubes. /Command/ScheduleUpdaterTasks - Schedule the build and synch tasks according to the settings in a CubeManager.RegistryMap object. /Command/GetSynchScheduleParameters - Convenience method – takes the number of seconds between synchs and sets the parameters for the call to ##class(DeepSee.CubeManager.Task.Synch).Schedule /Command/GetCubeSize - Given the logical name, pCubeName of a DeepSee cube, return the number of rows within its fact table. /Command/IsValidGroup - Boolean test which returns 1 if the group supplied as the argument is no less than the union of the natural groups of each of its members. /Command/IsValidCubeSchedule - Validation for the current cube settings.

Member Function Documentation

◆ ValidateRequest()

_.Library.Status ValidateRequest ( _.Library.String  pUrl,
_.Library.String  pMethod 
)
staticprivate

This class provides validation and dispatch for version 2 of the DeepSee REST services.

For /Command calls, required arguments are expected in the request body. Every request is treated as a POST request (including those that only fetch values) This is to prevent running into the error where the number of characters in the URL exceeds the limit.

For /Data and /Info calls, required arguments are expected in the URL. The exceptions to this rule are /Data/MDXExecute and /Data/PivotExecute, which require an argument POSTed to the the body of the request. For some services, the client may POST additional parameters in the body of the request. The description for each service outlines the parameters accepted for that particular service. In all services, unknown parameters that are included in the request body are ignored.

Example: Execute an MDX query using an HTTP POST request, sent to a web application with Dispatch class DeepSee.REST.v3.

var request = {}; var mdx = 'SELECT ' + ' NON EMPTY [Product].[P1].[Product Category].Members ON 0,' + ' NON EMPTY [Outlet].[H1].[Region].Members ON 1 ' + 'FROM [HoleFoods]' request.method = 'POST'; request.user = 'user'; request.passwd = 'pass'; request.acceptType = 'JSON'; request.contentType = 'JSON'; request.body = '{"MDX":"' + mdx + '"}'; request.callback = custom.queryCallBack request.async = true; request.url = 'http://host/port/restApplication/v3/Data/MDXExecute';

// run the query var xhr = new XMLHttpRequest(); xhr.open(request.method,request.url,request.async);

// kick off the request xhr.send(contents);


Requests can also be sent to the system /api/deepsee REST application. For example:

request.url = 'http://host/port/api/deepsee/v3/namespace/Info/Cubes';



Requests may be sent to the following services:

  • /Data/TestConnection or /Info/TestConnection - get test info to confirm connection to the server. A payload may be POSTed and will be echoed back.
  • /Data/MDXExecute - get result in JSON format for MDX query. POST the query in the required property "MDX". The server will assume the client wishes to wait for complete results before sending a response. The default timeout for this wait is 2 seconds less than the session's timeout setting. This can be set using the TIMEOUT property in the request.
    The client can optionally instruct the server to send partial results by POSTing "WAIT":0.

    request.body = '{ "MDX": "SELECT FROM PATIENTS",' + ' "FILTERS": [' + ' "[HomeD].[H1].[ZIP].&[32006]",' + ' "%OR({[PatGrpD].[H1].[Patient Group].&[Group A],[PatGrpD].[H1].[Patient Group].&[Group B]})"' + ' ]' + ' "WAIT":1' + ' "TIMEOUT":30' + '};'

/Data/PivotExecute - get result in JSON format for a stored pivot table. POST the full name (Folder/SubFolder/Name) of the table in the required property "PIVOT". Filters may be optionally be POSTed in the FILTERS property of the request. These filters take the identical form as described in /Data/MDXExecute. This service also supports the WAIT and TIMEOUT options. A pivot table that supports pivot variables may have those variables set using the VARIABLES array in the request.

request.body = '{ "PIVOT":"Pivot Variables/Commission Calculator",' + ' "VARIABLES": [' + ' "name":"commissionpercentage",' + ' "value":15' + ' ]' + '};'

/Data/KPIExecute - execute a KPI. POST the logical name of KPI in "KPI". Filters may be added as an array of objects in "FILTER". Each of the filter objects must provide a "name" and a "value" property.

request.body = '{ "KPI": "DemoMDX",' + ' "FILTERS": [ {' + ' "name" : "[aged].[h1].[age group]",' + ' "value" : "&[0 to 29]" }' + ' ]' + '};'

/Data/MDXDrillthrough - execute a detail listing on the cube's source class. POST the query in "MDX". DRILLTHROUGH requests will support a list of RETURN fields in the request, or a choice of LISTING. Attempting to post both will result in an error.

request.body = '{ "MDX": "DRILLTHROUGH SELECT FROM [PATIENTS]",' + ' "LISTING":"Doctor details"' + '};'

request.body = '{ "MDX": "DRILLTHROUGH SELECT FROM [PATIENTS]",' + ' "RETURN":"Age,BirthDate"' + '};'

/Data/KPIDrillthrough - execute a detail listing using a compiled KPI class. The source KPI is POSTed as "KPI" and must include support for executing a listing. DRILLTHROUGH requests will support a list of RETURN fields in the request, or a choice of LISTING. Attempting to post both will result in an error.

request.body = '{ "KPI": "HoleFoods/KPISQL"' +
'};'

/Data/Favorites/:Item - Add or remove an item from the Favorites list for a user. Use PUT to add an Item and DELETE to remove. /Data/GetDashboard/:dashboardName - Fetch the dashboard definition named dashboardName. /Data/GetDSTIME/:sourceClass - /Data/GetPivot/:pivotName - Fetch the pivot definition named pivotName. /Data/GetPivot/:termList - Fetch the key-value pair data defined in termList. /Data/MDXCancelQuery/:queryID - if a previous query has not completed, it can be canceled. /Data/MDXUpdateResults/:queryID - given a previous query response with ResultsComplete = 0, the client can request an update to the results using the cubeKey and queryKey.



/Info/Config/:appName - Storage of an arbitrary configuration document. Each configuratoin document is stored using the userName and the suplplied appName. Using POST will store contents filed under CONFIG in the request payload. Sending a GET request to this service will fetch a stored document. /Info/Filters/:dataSource - to get a list of filters available for a particular cube. /Info/FilterMembers/:dataSource/:filterSpec/ - get a list of values for a particular filter. Supported dataSources are cubes and KPIs. Values can be limited by POSTing values of other filters or a search key in the request.

request.body = '{ "RELATED": [' + ' {' + ' "spec": "[DateOfSale].[Actual].[YearSold]",' + ' "value": "&[2013]:&[2016]"' + ' }' + ' ],' + ' "SEARCHKEY":"Jan"' + '}';

/Info/Cubes/ - Fetch a list of cubes available in the namespace. /Info/DataSources/:sourceType - Generic access point for fetching data sources for widgets. Supports the types "pivot", "kpi", and "metric". For the "pivot" type POST can be used to limit the sources to a particular BASECUBE. See /Info/Pivots. /Info/Pivots/ - Fetch a list of pivots available. The listing can be limited to pivots based on a particular cube by POST to the BASECUBE property in the request.

request.body = '{"BASECUBE":"HOLEFOODS"}'

/Info/KPIs - Fetch a list of kpis available in the namespace. /Info/Metrics - Fetch a list of Interoperability Metrics available in the namespace. /Info/Dashboards/ - get a list of available dashboards. /Info/Listings/:cube - get a list of available listings for a particular cube. /Info/Measures/:cube - get a list of measures available for a particular cube. /Info/ListingFields/:cube - get the list of listing fields defined for a particular cube, for user-defined custom listings. /Info/NamedFilters/:cube - get a list of named filters defined for a cube. /Info/PivotVariables/:cube - get a list of pivot variables defined a cube. /Info/PivotVariableDetails/:cube/:variable - get the details for a single pivot variable. /Info/QualityMeasures/:cube - get a list of quality measures available for the cube. /Info/TermLists - Fetch a list of termLists available in the namespace. /Info/Favorites - Get the list of favorites stored for the current user.



/Command/Action/:cube/:action - Execute a KPI action that is available for the given cube. If applicable to the action, the additional calling context can be POSTed under the CONTEXT, and will be returned as the Context object in the Result payload. /Command/BuildCube - A wrapper for <method>DeepSee.Utils.BuildCube</method> which records cube event information when building the cube. /Command/RepairBuild - This method provides a means of doing an unscheduled repair build of a registered cube. /Command/BuildAllRegisteredGroups - This is a utility method which executes a complete build of all currently registered cubes in the current cube registry. /Command/BuildOneRegisteredGroup - This is a utility method which executes a complete build of one registered cube group in the current cube registry. /Command/SynchronizeCube - A wrapper for <method>DeepSee.Utils.SynchronizeCube</method> which records cube event information when building the cube. /Command/GetLastUpdate - Retrieves the timestamp of the the last registered data update for the cube. Updates performed outside of the Cube Manager will not be recognized in this check. /Command/GetActiveRegistry - Retrieve the name of the Cube Registry currently marked Active /Command/SetActiveRegistry - Change which Cube Registry is currently active. The Active Registry is the only one that is visible to the updater tasks. /Command/BuildRegistryMap - Retrieve the map that describes the current state of the Cube Registry and all other unregistered cubes on the system. For the lookup variable in the output JSON, for each array in the "cubes" object, the first value corresponds
to that the GroupIdx value and the second the CubeIdx value for that cube. The Cube can then be retrieved as follows: Set Cube = Map.Groups.GetAt(GroupIdx).Cubes.GetAt(CubeIdx) Currently GroupIdx and CubeIdx are 1-indexed. Subtract 1 from GroupIdx asnd CubeIdx to make them work for a 0-indexed system /Command/WriteToRegistry - Walk through a CubeManager.RegistryMap object and register the cubes. /Command/ScheduleUpdaterTasks - Schedule the build and synch tasks according to the settings in a CubeManager.RegistryMap object. /Command/GetSynchScheduleParameters - Convenience method – takes the number of seconds between synchs and sets the parameters for the call to ##class(DeepSee.CubeManager.Task.Synch).Schedule /Command/GetCubeSize - Given the logical name, pCubeName of a DeepSee cube, return the number of rows within its fact table. /Command/IsValidGroup - Boolean test which returns 1 if the group supplied as the argument is no less than the union of the natural groups of each of its members. /Command/IsValidCubeSchedule - Validation for the current cube settings.

Verfies required Converts request body

Reimplemented from REST.