Easy Pivot Logo
  • Pricing

Manual

OverviewFolder SystemData Sources
User and RoleRestful Interfaces

Integration

Restful Interfaces

Restful Interfaces

Restful Interfaces

Authentication API

Login authentication. All subsequent Restful APIs requiring security authentication must use the token returned after successful authentication.

POST /auth

ParameterTypeDescriptionRequiredSince
usernameStringUsernametrue
passwordStringPasswordtrue

Success

{
    "token": "VhzJp0k6",
    "user": {
        "password": "ee11cbb19052e40b07aac0ca060c23ee",
        "username": "user",
        "authorities": [],
        "accountNonExpired": true,
        "accountNonLocked": true,
        "credentialsNonExpired": true,
        "enabled": true,
        "userId": "244e8c1c-ec29-44de-ab37-f32f78825514",
        "company": "Company",
        "department": "R&D",
        "name": "Alias",
        "title": "Frontend"
    },
    "msg": null,
    "valid": true
}

Failure

{
    "token": null,
    "user": null,
    "msg": null,
    "valid": false
}

Important Notice

Starting from v1.4.3, JWT authentication is adopted. The token is longer and can be placed in the header. Tokens in URLs are also supported for compatibility.

axios.create({
    headers: {
        token: "244e8c1c-ec29-44de-ab37-f32f78825514"
    }
})

Resource Lists

Get Folder List

  1. Get all folders and the current user's access attributes for each folder.

GET /folder/getFolderList

ParameterTypeRequiredDescriptionSince
userIdStringfalseIf not provided, retrieves the resource list of the currently logged-in user. Otherwise, retrieves the specified user's resource list.1.2.2
  1. Get all folder lists.

GET /folder/getAllFolderList

ParameterTypeRequiredDescriptionSince
userIdStringfalseIf not provided, retrieves the resource list of the currently logged-in user. Otherwise, retrieves the specified user's resource list.1.2.2
[
    {
        "id": 10000,
        "name": "Root",
        "parentId": -1,
        "isPrivate": 0,
        "userId": "1",
        "userName": "Super Administrator",
        "loginName": "peter",
        "createTime": "2018-07-04 10:22:59.0",
        "updateTime": "2018-07-04 10:22:59.0"
    },
    ...
]

Get Dashboard List API

  1. Get the list of dashboards the current user has permission to access.

GET /board/getBoardList

ParameterTypeRequiredDescriptionSince
userIdStringfalseIf not provided, retrieves the resource list of the currently logged-in user. Otherwise, retrieves the specified user's resource list.1.2.2
  1. Get all dashboard lists.

GET /board/getAllBoardList

ParameterTypeDescriptionRequiredSince
None
{
    "resList": [
        {
            "folderId": 10036,
            "folderPath": "Root\\foodmart\\Dashboards",
            "id": 91,
            "userId": "1",
            "folderName": "Dashboards",
            "folderIsPrivate": 0,
            "name": "Foodmart Comprehensive Analysis Dashboard",
            "userName": "Super Administrator",
            "loginName": "peter",
            "createTime": "2019-09-27 11:48:36.0",
            "updateTime": "2020-02-19 11:59:46.0",
            "layoutType": "freelayout",
            "layout": null,
            "edit": false,
            "delete": false
        },
        ....
    ],
    "folderList": [
        {
            "id": 10000,
            "name": "Root",
            "parentId": -1,
            "isPrivate": 0,
            "userId": "1",
            "userName": "Super Administrator",
            "loginName": "peter",
            "createTime": "2018-07-04 10:22:59.0",
            "updateTime": "2018-07-04 10:22:59.0",
            "edit": false,
            "delete": false
        },
        ....
    ]
}

Get Data Source List API

  1. Get the list of data sources the current user has permission to access.

GET /datasource/getDatasourceList

  1. Get all data source lists.

GET /datasource/getAllDatasourceList

ParameterTypeDescriptionRequiredSince
None
[
    {
        "id": 1,
        "userId": "1",
        "name": "foodmart",
        "type": "jdbc",
        "config": null,
        "edit": false,
        "delete": false,
        "userName": "Super Administrator",
        "loginName": "peter",
        "createTime": "2018-07-04 10:27:06.0",
        "updateTime": "2020-03-03 22:23:29.0"
    },
    ....
]

Get Dataset List API

  1. Get the list of datasets the current user has permission to access.

GET/POST /dataset/getDatasetList

ParameterTypeRequiredDescriptionSince
userIdStringfalseIf not provided, retrieves the resource list of the currently logged-in user. Otherwise, retrieves the specified user's resource list.1.2.2
  1. Get all dataset lists.

GET/POST /dataset/getAllDatasetList

ParameterTypeDescriptionRequiredSince
None
{
    "resList": [
        {
            "folderId": 10030,
            "folderPath": "Root\\ES",
            "id": 41,
            "userId": "1",
            "name": "es-bank",
            "categoryName": "Default Category",
            "userName": "Super Administrator",
            "loginName": "peter",
            "createTime": "2018-09-21 16:47:07.0",
            "updateTime": "2020-02-20 18:13:48.0",
            "data": null,
            "edit": false,
            "delete": false
        },
        ....
    ],
    "folderList": [
        {
            "id": 10000,
            "name": "Root",
            "parentId": -1,
            "isPrivate": 0,
            "userId": "1",
            "userName": "Super Administrator",
            "loginName": "peter",
            "createTime": "2018-07-04 10:22:59.0",
            "updateTime": "2018-07-04 10:22:59.0",
            "edit": false,
            "delete": false
        },
        ....
    ]
}

Get Chart List API

  1. Get the list of charts the user has permission to access.

GET /widget/getWidgetList

ParameterTypeRequiredDescriptionSince
userIdStringfalseIf not provided, retrieves the resource list of the currently logged-in user. Otherwise, retrieves the specified user's resource list.1.2.2
  1. Get all independently saved chart lists.

GET /widget/getAllWidgetList

{
  "resList": [
    {
      "folderId": 10004,
      "folderPath": "Root\\foodmart\\Charts\\Cross Tables",
      "id": 9,
      "userId": "1",
      "name": "2.3-Row Percentage-Expense Ratio",
      "categoryName": null,
      "userName": "Super Administrator",
      "loginName": "peter",
      "createTime": "2018-07-04 11:42:01.0",
      "updateTime": "2020-03-07 14:51:19.0",
      "dataset": null,
      "data": null,
      "edit": false,
      "delete": false
    },
    ...
  ],
  "folderList": [
    {
      "id": 10042,
      "name": "ddd",
      "parentId": 10032,
      "isPrivate": 0,
      "userId": "1",
      "userName": "Super Administrator",
      "loginName": "peter",
      "createTime": "2018-12-06 12:08:19.0",
      "updateTime": "2018-12-06 12:08:41.0",
      "edit": false,
      "delete": false
    },
    ...
  ]
}

Dashboards

Export Dashboard as Image

GET /export/exportCockpit

ParameterTypeRequiredDescriptionSince
boardIdlongtrueDashboard ID1.6.0
timeoutintfalseScreenshot wait time, in seconds, default 15s1.6.0
scalefloatfalseImage resolution, default 11.6.0
typeStringtruepng/jpeg/pdf, export type, default png1.6.0
@RequestMapping(value = "/exportCockpit")
public ResponseEntity<byte[]> exportCockpit(
    @RequestParam Long boardId,
    @RequestParam(defaultValue = "15") Integer timeout, // Screenshot wait time in seconds
    @RequestParam(defaultValue = "1") float scale, // Image resolution
    @RequestParam(defaultValue = "png") String type // png/jpeg/pdf
)

Authorization

Modules

CodeModuleDescription
menuFunction Menu Module
datasourceData Source Module
datasetDataset Module
widgetChart Module
boardDashboard Module
jobScheduled Task Module

Function Menu Module Introduction

Function menus are currently hard-coded.

 {resId: 1,  pid:-1, name: "Configuration",          }
 {resId: 2,  pid:1,  name: "Data Source Management", }
 {resId: 3,  pid:1,  name: "Dataset Management",     }
 {resId: 4,  pid:-1,  name: "Self-Service Analysis", }
 {resId: 41, pid:-1,  name: "Complex Reports",       }
 {resId: 5,  pid:-1, name: "Dashboard",              }
 {resId: 51, pid:5,  name: "Dashboard Management",   }
 {resId: 52, pid:5,  name: "Grid Layout",            }
 {resId: 53, pid:5,  name: "Cockpit Layout",         }
 {resId: 7,  pid:-1, name: "Administration",         }
 {resId: 71, pid:7,  name: "Permission Templates",   }
 {resId: 8,  pid:7,  name: "User Management",        }
 {resId: 81, pid:8,  name: "User Resource Management", }
 {resId: 9,  pid:1,  name: "Scheduled Tasks",        }
 {resId: 91, pid:1,  name: "Email Sending",          }
 {resId: 10, pid:-1, name: "Resource Sharing",       }

Permission/Resource Object Structure: Res

PropertyTypeRequiredDescription
resTypeStringtrueResource module. Values: menu, datasource, dataset, widget, board, job
resIdlongtrueResource ID within the module
editbooleanfalseWhether edit permission is granted
deletebooleanfalseWhether delete permission is granted

User Permissions

  1. Full Update of User Permissions

POST /admin/updateUserRes

  1. Incremental Grant of User Permissions

POST /admin/grantUserRes

  1. Incremental Revocation of User Permissions

POST /admin/revokeUserRes

ParameterTypeDescriptionRequiredSince
userIdArrJSON StringArray of user IDs. Supports updating permissions for multiple users at once.true1.2.0
resIdArrJSON StringArray of Res[], permission/resource list arraytrue
_this.updateUserRes = function (userIds, resIds) {
    return _axios.post('admin/updateUserRes', {
        userIdArr: JSON.stringify(userIds),
        resIdArr: JSON.stringify(resIds),
    });
};
  • userIdArr
["uid1", "uid2"]
  • resIds
[
  {
    "resId": 1,
    "resType": "menu",
    "edit": false
  },
  {
    "resId": 1,
    "resType": "datasource",
    "edit": false
  },
  {
    "resId": 7,
    "resType": "widget",
    "edit": false
  },
  {
    "resId": 1,
    "resType": "dataset",
    "edit": false
  },
  {
    "resId": 6745078,
    "resType": "folder",
    "edit": false
  }
]

ServiceStatus

PropertyValueDescription
status1, 21: success, 2: failure
msgStringRelated message (success or error message)
objObjectOriginal number, indicating the number of records affected
id
  1. Update Success
{
    "status": "1",
    "msg": "success",
    "obj": 4,
    "id": null
}
  1. Update Failure
{
    "status": "2",
    "msg": "No Module Permission!",
    "obj": null,
    "id": null
}

Query User Authorization

  1. Query all user authorization lists.

GET /admin/getAllUserResList

ParameterTypeDescriptionRequiredSince
None
  1. Query specified user authorization list.

GET/POST /admin/getUserResListByUserId

ParameterTypeDescriptionRequiredSince
userIdStringUser IDtrue
[
    {
        "userResId": "034f6429-cff6-4274-b5ff-2f9df9f8e1c4",
        "userId": "244e8c1c-ec29-44de-ab37-f32f78825514",
        "resId": 10042,
        "resType": "folder",
        "edit": false,
        "delete": false,
        "createTime": null
    },
    {
        "userResId": "123ee3dc-44f8-4c58-8f68-c56c78a239a4",
        "userId": "244e8c1c-ec29-44de-ab37-f32f78825514",
        "resId": 47,
        "resType": "widget",
        "edit": false,
        "delete": false,
        "createTime": null
    },
    ...
]

Grant User Roles

  1. Incremental Grant of User Roles

POST /admin/grantRoles

  1. Incremental Deletion of User Roles

POST /admin/deleteUserRole

ParameterTypeDescriptionRequiredSince
userIdArrJSON StringJSON.stringify(Array of User IDs) e.g., ["BoNSmgq5"]true
roleIdArrJSON StringJSON.stringify(Array of Role IDs)true
  • Request
userIdArr: '["BoNSmgq5"]'
roleIdArr: '["kZKs0eAB","mW7MgbRi"]'
  • Response
    ServiceStatus
{
    "status": "1",
    "msg": "success",
    "obj": 4,
    "id": null
}

Role Query

  1. Query the role list where the current user is an administrator.

GET /admin/getRoleList

  1. Query all role lists.

GET /admin/getRoleListAll

  • Request
ParameterTypeDescriptionRequiredSince
None
  • Response
[
    {
        "roleId": "9yp5FYGV",
        "roleName": "Foodmart Country Access Rule",
        "userId": "admin"
    },
    {
        "roleId": "afff8e98-c223-4b71-8a44-946b9eeb9585",
        "roleName": "Experience Account",
        "userId": "1"
    },
    ...
]

Query User Roles

  1. Query roles assigned to a user.

GET /admin/getUserRoleList

  • Request
ParameterTypeDescriptionRequiredSince
userIdStringUser ID. If not provided, retrieves roles for all users.false
  • Response
[
    {
        "userRoleId": 5297009885287913052,
        "userId": "cf592eb2-91fd-4319-925e-141d5a1b58b3",
        "roleId": "afff8e98-c223-4b71-8a44-946b9eeb9585"
    },
    {
        "userRoleId": 2139519606675883725,
        "userId": "cf592eb2-91fd-4319-925e-141d5a1b58b3",
        "roleId": "o7OfQhTB"
    }
    .....
]

Role Permissions

(Section content not provided in original)

User Management

User Object Structure

PropertyTypeRequiredDescription
userIdStringtrueID, primary key
loginNameStringtrueLogin name
userNameStringtrueNickname
userPasswordStringtruePassword
companyStringfalseCompany
departmentStringfalseDepartment
titleStringfalseJob title
validDatetimestampfalseExpiry date
enabledbooleanfalseWhether the account is enabled

Add User

POST /admin/saveNewUser

  • Request
ParameterTypeDescriptionRequiredDefaultSince
userJSON StringUser objecttrue
md5PwdbooleanWhether password is encryptedfalsefalse
{
  "loginName": "biuser",
  "userName": "Analyst",
  "userPassword": "xxxx",
  "company": "Company Name",
  "department": "BI",
  "title": "Analyst",
  "validDate": 4073990400000,
  "enabled": true
}
  • Response

Success

{
    "status": "1",
    "msg": "success",
    "obj": {
        "userId": "Sl4LqKFe",
        "loginName": "api-new",
        "userName": "New API",
        "userPassword": "f561aaf6ef0bf14d4208bb46a4ccb3ad",
        "userStatus": null,
        "company": "Company Name",
        "department": "BI",
        "title": "Analyst",
        "validDate": 4073990400000,
        "enabled": true
    },
    "id": null
}

Failure

{
    "status": "2",
    "msg": "No Module Permission!",
    "obj": null,
    "id": null
}

Update User

POST /admin/updateUser

  • Request
ParameterTypeDescriptionRequiredDefaultSince
userJSON StringUser objecttrue
md5PwdbooleanWhether password is encryptedfalsefalse
{
  "userId": "cf592eb2-91fd-4319-925e-141d5a1b58b3",
  "loginName": "biuser",
  "userName": "Analyst",
  "userPassword": null, // If password is empty, the password will not be modified.
  "company": "Company",
  "department": "BI",
  "title": "Analyst",
  "validDate": 4073990400000,
  "enabled": true
}

Delete User

POST/GET /admin/deleteUser

ParameterTypeDescriptionRequiredDefaultSince
userIdStringUser IDtrue
  • Response Success
{
    "status": "1", // Whether the interface call was successful
    "msg": "success",
    "obj": 1, // 0 indicates the interface call was successful but no data was deleted
    "id": null
}

Get User Information

GET/POST /admin/getUserList?token=yU2TbYpA

ParameterTypeDescriptionRequiredDefaultSince
userIdStringUser ID. If not provided, retrieves the list of all users.false
  • Response
[
    {
        "userId": "a18033335555",
        "loginName": "a18033335555",
        "userName": "18033335555",
        "userPassword": null, // Password not returned
        "userStatus": null,
        "company": null,
        "department": null,
        "title": null,
        "validDate": null,
        "enabled": false
    },
    {
        "userId": "admin",
        "loginName": "admin",
        "userName": "admin",
        "userPassword": null, // Password not returned
        "userStatus": null,
        "company": null,
        "department": null,
        "title": null,
        "validDate": null,
        "enabled": true
    },
    ....
]

User and Role

User and Role

Embedding Dashboards as iframe

Embedding Dashboards as iframe

On this page

Restful InterfacesAuthentication APIResource ListsGet Folder ListGet Dashboard List APIGet Data Source List APIGet Dataset List APIGet Chart List APIDashboardsExport Dashboard as ImageAuthorizationModulesFunction Menu Module IntroductionPermission/Resource Object Structure: ResUser PermissionsServiceStatusQuery User AuthorizationGrant User RolesRole QueryQuery User RolesRole PermissionsUser ManagementUser Object StructureAdd UserUpdate UserDelete UserGet User Information
Log InStart Free