Portal API
Portal API in Bonita is used to access and manage the following resources: Page, Profile, ProfileEntry, ProfileMember, Theme
Page
Description
Use the page resource to access custom pages, UI Designer pages, layouts or forms and REST API extensions.
Identifier
Simple, the ID of the object (a long value)
Representation
{
"id":"_page_id_",
"creationDate":"_date and time_",
"createdBy":"_created_by_user_id_",
"isProvided":"_true|false_",
"description":"_description_",
"contentName":"_custom_page_name_",
"displayName":"_custom_page_display_name_",
"updatedBy":"_updatedBy_user_id_",
"lastUpdateDate":"_date_and_time_",
"urlToken":"_custom_page_urlToken_"
}
Methods
The methods used for this resource are:
-
POST - Add a new custom page
-
GET - Read or search a custom page
-
PUT - Update a custom page
-
DELETE - Remove a custom page
Retrieve a Custom Page
Use a GET method to retrieve information about a custom page.
-
URL
/API/portal/page/:pageId
-
Method
GET
-
Success Response
-
Code: 200
-
Payload:
{ "id":"1", "creationDate":"2014-12-02 15:54:45.249", "createdBy":"", "isProvided":"true", "description":"HTML and Javascript example of custom page source structure (in English).", "contentName":"bonita-html-page-example.zip", "displayName":"HTML example page", "updatedBy":"-1", "lastUpdateDate":"2014-12-02 15:54:45.249", "urlToken":"custompage_htmlexample" }
-
Add a new custom page
Use the POST method to create a new custom page. To add a new custom page, there are two steps:
-
Upload the page content using the pageUpload servlet. This returns a temporary file name.
-
Call this API with the temporary file name, as in the example below.
-
URL
/API/portal/page
Example: Add the custom page that was given the temporary nametmp_2181700538398444744.zip
. The original name wasbonita-angular-dashboard.zip
. -
Method
POST
-
Request Payload
{ "pageZip":"tmp_113096560980259488.zip:bonita-angular-dashboard.zip" }
-
Success Response
-
Code: 200
-
Payload:
{ "id":"103", "creationDate":"2014-12-04 14:54:06.967", "createdBy":"1", "isProvided":"false", "description":"AngularJS dashboard using ngBonita", "contentName":"bonita-angular-dashboard.zip", "displayName":"AngularJS dashboard", "updatedBy":"1", "lastUpdateDate":"2014-12-04 14:54:06.967", "urlToken":"custompage_angulardashboard" }
-
-
Update a custom page
Use the PUT method to update an existing custom page. To update a custom page, upload the new page content using the pageUpload servlet, which returns a temporary file name, and then call this API with the temporary file name.
-
URL
/API/portal/page/:pageId
Example: Update the custom page with id = 103. The new uploaded file was given the temporary nametmp_4338264789005487499.zip
. The original name wasnew-bonita-angular-dashboard.zip
. -
Method
PUT
-
Request Payload
{ "pageZip":"tmp_4338264789005487499.zip:new-bonita-angular-dashboard.zip" }
-
Success Response
-
Code: 200
-
Search custom pages
Use a GET method with filters and search terms to search for custom pages.
-
URL
/API/portal/page?p={page}&c={count}&o={orders}&f={filters}&s={search}&d={deploy}
-
Method
GET
-
Data Params
Standard search parameters are available.
You can filter on:-
createdBy={user_id}
: retrieve only the pages created by the specified user ID. For example, to retrieve the custom pages created by the user with id 1:http://localhost:8080/bonita/API/portal/page?p=0&c=10&f=createdBy%3d1
. -
contentType={contentType}
: retrieve only the resources of requested type. This filter is available since v7.0. For example, to retrieve the theme resources:http://localhost:8080/bonita/API/portal/page?p=0&c=10&f=contentType%3Dtheme
.
You can search on:
-
displayName
ordescription
: search for custom pages with adisplayName
ordescription
that starts with the specified string. For example, to find the pages withdisplayName
starting withNew
:http://localhost:8080/bonita/API/portal/page?p=0&c=10&s=New
-
-
Success Response
An array of custom page objects-
Code: 200
-
Delete a custom page
Use the DELETE method to delete an existing custom page
-
URL
/API/portal/page/:pageId
-
Method
DELETE
-
Success Response
-
Code: 200
-
Profile
Description
Use the profile resource to access profiles.
Identifier
Simple, the ID of the object (a long value)
Representation
{
"id":"_profile id_",
"creationDate":"_date and time of profile creation_",
"icon":"_icon used in the portal to represent the profile_",
"createdBy":"_id of the uer who created the profile_",
"description":"_a description of the profile_",
"name":"_profile name_",
"is_default":"_true | false _",
"lastUpdateDate":"_date and time of the last update to the profile_",
"updatedBy":"_the id of the user who last updated the profile_"
}
Methods
The methods used for this resource are:
-
POST - Add a new profile
-
GET - Read or search a profile
-
PUT - Update a profile
-
DELETE - Remove a profile
Retrieve a Profile
Use a GET method to retrieve information about a profile.
-
URL
/API/portal/profile/:profileId
-
Method
GET
-
Success Response
-
Code: 200
-
Payload:
{ "id":"1", "creationDate":"2014-12-02 15:54:44.395", "icon":"/profiles/profileUser.png", "createdBy":"-1", "description":"The user can view and perform tasks and can start a new case of a process.", "name":"User", "is_default":"true", "lastUpdateDate":"2014-12-04 11:05:14.490", "updatedBy":"1" }
-
Add a new profile
Use the POST method to create a new profile.
-
URL
/API/portal/profile
-
Method
POST
-
Request Payload
{ "name":"MyCustomProfile", "description":"This is my custom profile" }
-
Success Response
-
Code: 200
-
Payload:
{ "id":"101", "creationDate":"2014-12-04 16:29:23.434", "icon":"/profiles/profileDefault.png", "createdBy":"1", "description":"This is my custom profile", "name":"MyCustomProfile", "is_default":"false", "lastUpdateDate":"2014-12-04 16:29:23.434", "updatedBy":"1" }
-
Update a profile
Use the PUT method to update an existing profile.
-
URL
/API/portal/profile/:profileId
-
Method
PUT
-
Request Payload
{ "id":"101", "name":"MyUpdatedCustomProfile", "description":"This is my updated custom profile" }
-
Success Response
-
Code: 200
-
Search profiles
Use a GET method with filters and search terms to search for profiles.
-
URL
/API/portal/profile?p={page}&c={count}&o={orders}&f={filters}&s={search}&d={deploy}
-
Method
GET
-
Data Params
Standard search parameters are available.
You can filter on:-
name={exact_profile_name}
: retrieve only the profiles with the specified name. For example, retrieve the profile withname=Administrator
:/API/portal/profile?p=0&c=10&f=name%3dAdministrator
-
hasNavigation={true|false}
: retrieve the profiles with (or without) attached navigation pages (profile entries):/API/portal/profile?p=0&c=10&f=hasNavigation=true
You can search on:
-
name: search all profiles which name starts with the search string. For example, name starting with Adm:
/API/portal/profile?p=0&c=10&s=Adm
-
-
Success Response
-
Code: 200
-
Payload:
An array of profile objects
-
Delete a profile
Use the DELETE method to delete an existing profile
-
URL
/API/portal/profile/
-
Method
DELETE
-
Success Response
-
Code: 200
-
ProfileEntry
Description
A profileEntry represents the association between pages and profiles. A profile is associated with a set of profileEntry items. This defines the pages that a user with this profile can access, and the menu structure that the user sees.
Identifier
Simple, the ID of the object (a long value)
Representation
{
"id":"_profileEntry id_",
"icon":"_icon used in the portal to represent a profileEntry_",
"index":"_position in a menu_",
"profile_id":"_id of the profile that contains this profileEntry_",
"page":"_pageToken (menu name or menu item name) used in a portal menu to identify the page associated with the profileEntry_",
"description":"_description_",
"name":"_name of the profileEntry_",
"type":"_link (if menu item) | folder (if menu)_",
"isCustom":"_ true | false _",
"parent_id":"_id or parent profileEntry if in a folder_"
}
Methods
The methods used for this resource are:
-
POST - Add a new profileEntry
-
GET - Read or search a profileEntry
-
PUT - Update a profileEntry
-
DELETE - Remove a profileEntry
Retrieve a profileEntry
Use a GET method to retrieve information about a profileEntry
-
URL
/API/portal/profileEntry/:profileEntryId
-
Method
GET
-
Success Response
-
Code: 200
-
Payload:
{ "id":"1", "icon":"", "index":"0", "profile_id":"1", "page":"tasklistinguser", "description":"Manage tasks", "name":"Tasks", "type":"link", "isCustom":"false", "parent_id":"0" }
-
Add a new profileEntry
Use the POST method to create a new profileEntry.
-
URL
API/portal/profileEntry
-
Method
POST
-
Request Payload
Example: Add the profileEntry with page token = tasklistingadmin with a display name = "Test menu" and associate it with the profile = 102.{ "page":"tasklistingadmin", "parent_id":"0", "name":"Test menu", "profile_id":"102", "type":"link", "isCustom":"false" }
Example 2: Create a menu called Folder containing two items, Child1 and Child2, and associate it with profile = 102 with three POST requests.
{ "page":"Null", "parent_id":"0", "name":"Folder", "profile_id":"102", "type":"folder", "isCustom":"false" }
{ "page":"custompage_groovyexample", "parent_id":"106", "name":"", "profile_id":"102", "type":"link", "isCustom":"true" }
{ "page":"tasklistingadmin", "parent_id":"106", "name":"", "profile_id":"102", "type":"link", "isCustom":"false" }
-
Success Response
-
Code: 200
-
Payload:
{ "id":"101", "icon":"", "index":"0", "profile_id":"102", "page":"tasklistingadmin", "description":"manage tasks", "name":"Test menu", "type":"link", "isCustom":"false", "parent_id":"0" }
-
Update a profileEntry
Use the PUT method to update an existing profileEntry.
-
URL
API/portal/profileEntry/:profileEntryId
-
Method
PUT
-
Request Payload
{ "name":"Test menu updated" }
-
Success Response
-
Code: 200
-
Search profileEntry items
Use a GET method with filters and search terms to search for profileEntry items.
-
URL
/API/portal/profileEntryEntry?p={page}&c={count}&o={orders}&f={filters}&s={search}&d={deploy}
-
Method
GET
-
Data Params
Standard search parameters are available.
You can filter on:-
page={exact_pageToken}
: retrieve only the profileEntry items with the specified tokenName. For example, retrieve the profileEntry with page name = tasklistinguser:/API/portal/profileEntry?p=0&c=10&f=page%3dtasklistinguser
. -
name={exact_page_name}
: retrieve only the profileEntry items with the specified pageName. For example, retrieve the profileEntry with page name = Tasks:/API/portal/profileEntry?p=0&c=10&f=name%3dTasks
. -
parentId={parent_id}
: retrieve only the profileEntry items with the specified parent_id. For example, retrieve the profileEntry with parent_id = 1:/API/portal/profileEntry?p=0&c=10&f=parent_id%3d1
.
You can search on:
-
name
: search all profileEntry definitions with name starting with the search string. For example, to find entries with name starting with Manage:/API/portal/profileEntry?p=0&c=10&s=Manage
.
-
-
Success Response
An array of profileEntry objects-
Code: 200
-
Payload:
-
Delete a profileEntry
Use the DELETE method to delete an existing profileEntry
-
URL
/API/portal/profileEntry/:profileEntryId
-
Method
DELETE
-
Success Response
-
Code: 200
-
ProfileMember
Description
A profileMember represents the association between the organization and profiles. In an organization we have three member_types = USER, GROUP and ROLE. You can assign a profile to a user by specifying a role, group, or specific user.
Identifier
Simple, the ID of the object (a long value)
Representation
{
"id":"_profileMemberid_",
"profile_id":"_id of the profile for this mapping_",
"role_id":"_id of role, or -1 if the member type is not role_",
"group_id":"_id of group, or -1 if the member type is not group_",
"user_id":"_id of user, or -1 if the member type is not user_"
}
Methods
The methods used for this resource are:
-
POST - Add a new profileMember
-
GET - Search a profileMember
-
DELETE - Remove a profileMember
Add a new profileMember
Use the POST method to create a new profileMember.
-
URL
API/portal/profileMember
-
Method
POST
-
Request Payload
Example 1: Add a member_type = USER to the profile with id = 2.{ "profile_id":"2", "member_type":"USER", "user_id":"101" }
Example 2: Add a member_type = GROUP to the profile with id = 2.
{ "profile_id":"2", "member_type":"GROUP", "group_id":"8" }
-
Success Response
-
Code: 200
-
Payload:
Example 1 response ;{ "id":"204", "profile_id":"2", "role_id":"-1", "group_id":"-1", "user_id":"101" }
Example 2 response ;
{ "id":"206", "profile_id":"2", "role_id":"-1", "group_id":"8", "user_id":"-1" }
-
Search profileMembers
Use a GET method with filters and search terms to search for profileMembers.
-
URL
/API/portal/profileMember?p={page}&c={count}&o={orders}&f={filters}&d={deploy}
-
Method
GET
-
Data Params
Standard search parameters are available.
There is a mandatory filter on:-
member_type=
. For example, retrieve the profileMembers of type user:/API/portal/profileMember?p=0&c=10&f=member_type%3duser
You can also filter also on:
-
profile_id={profile_id}
: retrieve only the profileMembers related to the specified profile_id./API/portal/profileMember?p=0&c=10&f=member_type%3duser&f=profile_id%3d1
-
user_id={user_id}
: retrieve only the profileMembers related to the specified user_id.API/portal/profileMember?p=0&c=10&f=member_type%3duser&f=profile_id%3d1&f=user_id%3d101
-
role_id={role_id}
: retrieve only the profileMembers related to the specified role_id.API/portal/profileMember?p=0&c=10&f=member_type%3drole&f=profile_id%3d1&f=role_id%3d101
-
group_id={group_id}
: retrieve only the profileMembers related to the specified group_id.API/portal/profileMember?p=0&c=10&f=member_type%3dgroup&f=profile_id%3d1&f=group_id%3d101
-
-
Success Response
An array of profileMember objects-
Code: 200
-
Delete a profileMember
Use the DELETE method to delete an existing profileMember.
-
URL
/API/portal/profileMember/:profileMemberId
-
Method
DELETE
-
Success Response
-
Code: 200
-
Theme
Description
Use the theme resource for managing the portal and mobile app theme (look & feel).
Identifier
Simple, the ID of the object (a long value)
Methods
The methods used for this resource are:
-
POST - Change the theme
-
PUT - Restore the default theme
Change a theme
Use the method POST for applying a new theme. Two types are permitted: portal
and mobile
.
-
URL
/API/portal/theme
-
Method
POST
-
Request Payload
Example 1: Change the portal theme by applying the definition in an already uploaded zip file.{ "type":"portal", "zipFilePathportal":"tmp_1939634566964075173.zip" }
Example 2: Change the mobile app theme by applying the definition in an already uploaded zip file.
{ "type":"mobile", "zipFilePathmobile":"tmp_5691887787551776477.zip" }
-
Success Response
-
Code: 200
-
Restore a default theme
Use the method PUT method for restoring the default theme. Two types are permitted: portal
and mobile
-
URL
/API/portal/theme/unusedId
-
Method
PUT
-
Request Payload
Example 1: Restore the default portal theme.{ "type":"portal" }
Example 2: Restore the default mobile theme.
{ "type":"mobile" }
-
Success Response
-
Code: 200
-