Public REST API

 

Since v3.1.4, CSUM provides the option to hook into Public API REST Resources and Components, allowing 3rd party Developers to externally perform CSUM operations outside of the app.

Public Endpoints

You will need to perform these requests as the logged in user that has authorisation to the specific operation.

For example, using a curl command will require the -u username:password to authenticate.

Create Space Group

Allows the creation of a new Space Group using the provided groupName with the provided spaceKey.

Endpoint

Endpoint

/rest/csum/latest/public/group/create?spaceKey=<spaceKey>&groupName=<groupName>

Params

QueryParam Name

Description

QueryParam Name

Description

spaceKey

The SpaceKey of the Space the group should be created in and given the SpaceGroupPattern prefix/suffix from.

groupName

The name of the new Group to be created. This should contain the spaceKey suffix/prefix

SpaceGroupPattern is applied on this operation, for example:

#Example curl request using basic auth on a confluence debug instance curl -u admin:admin -X POST -H 'Content-Type: application/json' "http://localhost:1990/confluence/rest/csum/latest/public/group/create?spaceKey=TESTSPACE&groupName=new-group # This creates a new group "testspace-new-group" if the SpaceGroupPattern prefix is set.

Response

Returns the status code of the request if authentication is valid, else a 401 response page from Atlassian will be returned (which is not an int).

Response Type: int

Status Type

Description

Response Type: int

Status Type

Description

200

OK

Group Created successfully.

400

Bad Request

This can occur due to invalid Licensing or invalid SpaceKey provided.

409

Conflict

This can occur if a group creation attempts to create a group with the same name as an existing space group.

 

Delete Space Group

Allows the deletion of an existing Space Group using the provided groupName with the provided spaceKey.

Endpoint

Endpoint

/rest/csum/latest/public/group/delete?spaceKey=<spaceKey>&groupName=<groupName>

Params

QueryParam Name

Description

QueryParam Name

Description

spaceKey

The SpaceKey of the Space the group should be deleted from.

groupName

The name of the Group to be deleted. This should contain the spaceKey suffix/prefix

SpaceGroupPattern is applied on this operation, for example:

#Example curl request using basic auth on a confluence debug instance curl -u admin:admin -X DELETE -H 'Content-Type: application/json' "http://localhost:1990/confluence/rest/csum/latest/public/group/delete?spaceKey=TESTSPACE&groupName=new-group # This deletes the group "testspace-new-group" if the SpaceGroupPattern prefix is set.

Response

Returns the status code of the request if authentication is valid, else a 401 response page from Atlassian will be returned (which is not an int).

Response Type: int

Status Type

Description

Response Type: int

Status Type

Description

200

OK

Group Deleted successfully.

400

Bad Request

This can occur due to invalid Licensing or invalid SpaceKey provided.

409

Conflict

This can occur if a group creation attempts to create a group with the same name as an existing space group.

 

Add Group Members

Allows the addition of Users and Group Members to the provided SpaceGroups.

Endpoint

Endpoint

/rest/csum/latest/public/group/addusers?spaceKey=<spaceKey>&spaceGroups=<spaceGroups>&spaceUsers=<spaceUsers>&importViaGroups=<importViaGroups>

Params

QueryParam Name

Description

QueryParam Name

Description

spaceKey

The SpaceKey of the Space to operate against.

spaceGroups

CSV Split values of the SpaceGroup names you want to add members to

spaceUsers

CSV split usernames of users you want to add to the groups found in spaceGroups

importViaGroups

CSV split GroupNames of Groups. All members in these groups will be added into the groups from spaceGroups if valid.

 

#Example curl request using basic auth on a debug confluence instance curl -u admin:admin -X PUT -H 'Content-Type: application/json' "http://localhost:1990/confluence/rest/csum/latest/public/group/addusers?spaceKey=TEST&spaceGroups=test-newgroupname&spaceUsers=admin # This adds the user "admin" into the group "test-newgroupname" if valid.

Response

Returns the Response of failed users. If all is successful, {} should be returned.

Response:

Status Type

Description

Response:

Status Type

Description

{}

OK

Members added to group without error.

{"admindd":"invalid"}

All invalid users

If the user value is invalid/user could not be found, they will return with an ‘invalid’ value.

{"admin":"membership"}

All users with membership

If a user is attempted to be added to the provided groups but already has membership, they will return with a ‘membership’ value.

 

Remove Group Members

Allows the removal of Users and Group Members to the provided SpaceGroups.

Endpoint

Endpoint

/rest/csum/latest/public/group/removeusers?spaceKey=<spaceKey>&spaceGroups=<spaceGroups>&spaceUsers=<spaceUsers>&importViaGroups=<importViaGroups>

Params

QueryParam Name

Description

QueryParam Name

Description

spaceKey

The SpaceKey of the Space to operate against.

spaceGroups

CSV Split values of the SpaceGroup names you want to remove members from.

spaceUsers

CSV split usernames of users you want to remove from the groups found in spaceGroups

importViaGroups

CSV split GroupNames of Groups. All members in these groups will be removed from the groups from spaceGroups if valid.

 

Response

Returns the Response of the operation. If all is successful, no value is returned.

Response:

Status Type

Description

Response:

Status Type

Description

<No Value>

OK

Members removed from group without error.

<Value>

Invalid SpaceKey

If the SpaceKey value provided is returned, it is not a valid SpaceKey.

NullPointerException

Invalid / No Groups Provided

If spaceGroups contains no valid Groups, Group Membership removal can not occur.

 

Add Delegated Group Members

Allows the addition of Users and Group Members to the provided Delegated Groups.

Endpoint

Endpoint

/rest/csum/latest/public/dlggroup/addusers?spaceKey=<spaceKey>&dlgGroups=<dlgGroups>&spaceUsers=<spaceUsers>&importViaGroups=<importViaGroups>

Params

QueryParam Name

Description

QueryParam Name

Description

spaceKey

The SpaceKey of the Space to operate against.

dlgGroups

CSV Split values of the Delegated Group names you want to add members to

spaceUsers

CSV split usernames of users you want to add to the groups found in dlgGroups

importViaGroups

CSV split GroupNames of Groups. All members in these groups will be added into the groups from dlgGroups if valid.

 

Response

Returns JSONAddUserResultBean[]. Example Response and Bean values are listed below.

Response:

Status Type

Description

Response:

Status Type

Description

[{"groupName":"test-group","successCount":1,"totalUsers":1,"failedUsers":[],"failedUserNames":[],"failedUserReasons":[]}]

Example Bean Response

Bean response for each ‘add’ operation on dlgGroups

 

Remove Delegated Group Members

Allows the removal of Users and Group Members to the provided Delegated Groups.

Endpoint

Endpoint

/rest/csum/latest/public/dlggroup/removeusers?spaceKey=<spaceKey>&dlgGroups=<dlgGroups>&spaceUsers=<spaceUsers>&importViaGroups=<importViaGroups>

Params

QueryParam Name

Description

QueryParam Name

Description

spaceKey

The SpaceKey of the Space to operate against.

dlgGroups

CSV Split values of the SpaceGroup names you want to remove members from.

spaceUsers

CSV split usernames of users you want to remove from the groups found in spaceGroups

importViaGroups

CSV split GroupNames of Groups. All members in these groups will be removed from the groups from spaceGroups if valid.

 

Response

Returns the Response of the operation. If all is successful, [] (Empty Array) is returned.

Response:

Status Type

Description

Response:

Status Type

Description

[]

OK

Members removed from group without error.

[<Value>]

Invalid Users provided

If spaceUsers or importViaGroups have users that were not members of dlgGroups, they will be returned here.

 

Retrieve Audit Entries

Allows the retrieval of Audit Entries with pagination and offset limits.

Endpoint

Endpoint

/rest/csum/latest/public/group/removeusers?spaceKey=<spaceKey>&spaceGroups=<spaceGroups>&spaceUsers=<spaceUsers>&importViaGroups=<importViaGroups>

Params

QueryParam Name

Description

QueryParam Name

Description

draw

The draw counter for calling audit event retrieval. The most recent (largest value) draw is returned

start

The entry ID start point

length

The total number of audit entries to retrieve

(E.g. length=10 will return max 10 results)

orderCol

The column to be ordered against matching the In-App table (int)

orderDirStr

The direction of audit entries ("asc"/"desc")

outcomeVal

success / error / unauthorized

groupVal

The Context Group that was Operated on

userVal

The Context User that was Operated on

spaceKey

The space to retrieve audit entries for

 

Response

Returns the JSON response of the Audit entries found matching the given criteria.

 

Public Component Classes

The following Interfaces are exposed to perform the same functionality as above. These Classes can be used internally within your code to hook into CSUM’s operations.

IPublicCSUMSpaceGroupManager

Method Name

Description

Returns

Method Name

Description

Returns

createSpaceGroup(Space space, String groupName)

Allows SpaceGroup creation

Group

The Group created.

deleteSpaceGroup(Space space, String groupName)

Allows SpaceGroup deletion

boolean

Boolean value of if Group was deleted successfully or not.

addUsersToGroups(Space space, String spaceGroups, String spaceUsers, String importViaGroups)

Allows Group Membership addition

Pair<List<String>, List<String>>

Left List returns failed Users, Right List returns invalid Groups.

removeGroupMembers(Space space, @Nonnull String spaceGroupCsv, String userNameCsv, String membershipGroupsCsv)

Allows Group Membership removal

void - no return value.

Example:

IPublicCSUMDlgSpaceGroupManager

Method Name

Description

Returns

Method Name

Description

Returns

addUsersToGroups(Space space, String groupNames, String userNames, String importViaGroups)

Allows Group Membership addition for Authorized Delegated Space Groups

JSONAddUserResultBean[]

Response Bean of operation info (Success total, failed users, etc)

removeUsersSpaceDlgGroups(String dlgGroups, String userNames, String membershipGroups, String spaceKey)

Allows Group Membership removal for Authorized Delegated Space Groups

List<String>

List of failed users

Example: