Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Note
titleVersion warning

In Syncope 1.1 .0 there are two REST interfaces:

  1. a new
REST interface was introduced
  1. one (referred as new in the following)
.
  1. exposed under /cxf
  2. the one
The REST interface
  1. available in 1.0
.X
  1. (referred as old in the following) is still present but will be removed from releases >= 1.2.0. It is exposed by default in 1.

This page shall give you an overview of old and new REST API.

Table of Contents
  1. 1 under /rest

In Syncope >= 1.2 there is a single REST interface, available under /rest

Starting with Syncope 2.0 the Reference Guide is available.

This page shall give you an overview of old and new REST API.

Table of Contents

Main focus on redesign REST interface Main focus on redesign REST interface was to apply RESTful Best Practices

...

Old URL

New URL

Comment

POST /configuration/create

POST /configurations

Creates a new Configuration.

GET /configuration/read/{key}

GET /configurations/{key}

Returns configuration element with matching key.

GET /configuration/list

GET /configurations

Returns a list of all configuration elements.

POST /configuration/update

PUT /configurations/{key}

Overwrites configuration element with matching key.

GET /configuration/delete/{key}

DELETE /configurations/{key}

Deletes configuration with matching key.

Old URL

New URL

Comment

GET /configuration/validators

GET /configurations/validators

Returns a list of known validators.

GET /configuration/mailTemplates

GET /configurations/mailTemplates

Returns a list of known mail-templates.

GET /configuration/dbexport

GET /configurations/dbDump stream

Returns configuration as an downloadable content.xml database export file.

...

Old URL

New URL

Comment

POST /connector/create

POST /connectors

Creates a new connector instance.

GET /connector/read/{connectorId}

GET /connectors/{connectorId}

Returns connector with matching id.

GET /connector/list?lang={lang}

GET /connectors?lang={lang}

Returns a list of all connectors. Default language is English.

POST /connector/update

PUT /connectors/{connectorId}

Overwrites connector with matching key.

GET /connector/delete/{connectorId}

DELETE /connectors/{connectorId}

Deletes connector with matching id.

Old URL

New URL

Comment

GET /connector/bundle/list?lang={lang}

GET /connectors/bundles?lang={lang}

Returns known bundles. Default language is English.

POST /connector/schema/list?showall={showall}

POST /connectors/{connectorId}/schemas?showAll={showall}

Returns schema names for connector. Default is showAll=false.

GET /connector/{connectorId}/configurationProperty/list

GET /connectors/{connectorId}/configuration

Returns configuration for selected connector.

POST /connector/check

POST /connectors/check

Checks if a connection can be established.

GET /connector/{resourceName}/connectorBean readByResource

GET /connectors;resourceName={connectorId}

Returns connector for resourceName.

POST /connector/reload

POST /connectors/reload

Reload all connector bundles and instances.

Entitlement Service

Old URL

New URL

Comment

GET /auth/allentitlements

GET /entitlements

Returns a list of all known entitlements.

GET /auth/entitlements

GET /entitlements/own

Returns a list of entitlements assigned to the authenticated user.

...

Policy Service

Old URL

New URL

Comment

GET POST /policy/{kind}account/list create GET

POST /policies/{kind} account

Returns a list of policies with matching kindCreates a new account policy.

GET /policy/read/{id}

GET /policies/account/{id}

Returns a account policy with matching id.

POST GET /policy/account/global/create read

POST GET /policies/account/0

Returns global Creates a new account policy.

POST GET /policy/syncaccount/create list

POST GET /policies/account

Creates a new sync policyReturns a list of account policies.

POST /policy/passwordaccount/create update

POST PUT /policies

Creates a new password policy.

POST /policy/account/update PUT /policies/{id}

Updates account policy with matching id.

POST GET /policy/syncdelete/update {id}

PUT DELETE /policies/account/{id}

Updates Deletes account policy with matching id.

Old URL

New URL

Comment

POST /policy/passwordsync/update create

PUT POST /policies/{id} sync

Creates a new sync policy Updates policy with matching id.

GET /policy/deleteread/{id}

DELETE GET /policies/sync/{id}

Deletes Returns sync policy with matching id.

GET /policy/accountsync/global/read

DELETE GET /policies/globalsync/{kind} 0

Returns global sync policy for matching kind.

GET /policy/sync/list

GET /policies/sync/global/read

Returns a list of sync policies.

POST /policy/sync/update

PUT DELETE /policies/globalsync/{kindid}

Returns global Updates sync policy for with matching kindid.

GET /policy/password/global/read delete/{id}

DELETE /policies/globalsync/{kindid}

Returns global Deletes sync policy for with matching kindid.

Report Service

Old URL

New URL

Comment

POST /reportpolicy/password/create

POST /policies/reports password

Creates a new reportpassword policy.

POST GET /policy/reportread/update {id}

GET /policies/password PUT /reports/{reportIdid}

Updates report Returns password policy with matching reportIdid.

POST GET /reportpolicy/count POST password/reportsglobal/count

Returns number of existing reports.

GET /report/list

GET /reports

Returns a list of all reports.

read

GET /policies/password/0

Returns global password policy.

GET /policy/password/list

GET /policies/password

GET /report/list/{page}/{size}

GET /reports?page={page}&size={size}

Returns a list of reports according to paginationpassword policies.

GET POST /reportpolicy/executionpassword/list update GET

PUT /policies/reportspassword/executions {id}

Updates password policy with matching id.

GET /policy/delete/{id}

DELETE /policies/password/{id}

Deletes password policy with matching id.

Report Service

Old URL

New URL

Comment

POST /report/create

POST /reports

Creates a new report

Returns a list of all execution reports.

GET /report/reportletConfClasses

GET /reports/reportletConfClasses

Returns a list of all reportletConfClasses.

GET /report/read/{reportId}

GET /reports/{reportId}

Returns report with matching reportId.

GET /report/execution/read/{executionId}

GET /reports/executions/{executionId}

list

GET /reports

Returns a list of all reports Returns execution report.

GET /report/execution/exportlist/{executionIdpage}?fmt=/{formatsize}

GET /reports/executions/{executionId}?format={format} (Accept: application/octet-stream) ?page={page}&size={size}

Returns a list of reports according to pagination. Returns execution report as an downloadable file. Format is optional.

POST /report/execute/{reportId} count

POST /reports/{reportId}/execute

Executes report.

count

Returns number of existing reports.

POST GET /report/delete/{reportId} update

PUT DELETE /reports/{reportId}

Deletes Updates report with matching idreportId.

GET /report/execution/delete/{executionIdreportId}

DELETE /reports/executions/{executionIdreportId}

Deletes execution report with matching id.

...

Old URL

New URL

Comment

POST /report/resourceexecute/create {reportId}

POST /resources

Creates a new resource.

reports/{reportId}/execute

Executes report and returns execution result.

GET /report/execution/read/{executionId}

GET /reports/executions/{executionId}

Returns execution report.

GET /report/execution/export/{executionId}?fmt={format}

GET /reports/executions/{executionId}/dbDump?format={format}

Returns execution report as an downloadable file. Format is optional.

GET /report/execution/delete/{executionId}

DELETE /reports/executions/{executionId}

Deletes execution report with matching id.

Old URL

New URL

Comment

GET /report/reportletConfClasses

GET /reports/reportletConfClasses

Returns a list of all reportletConfClasses.

Resource Service

Old URL

New URL

Comment

POST /resource/create

POST /resources

Creates a new resource.

GET /resource/read/{resourceName

POST /resource/update

PUT /resources/{resourceName}

Updates resource with matching resourceName.

GET /resource/delete/{resourceName}

DELETE /resources/{resourceName}

Deletes resource with specified resourceName. HTTP operation is changed to DELETE, because GET operation must be safe.

GET /resource/read/{resourceName}

GET /resources/{resourceName}

Returns a resource with specified name.

GET /resource/propagationActionsClasses

GET /resources/propagationActionsClasses

Returns a list of classes with name PROPAGATION_ACTIONS. Actually method is used only in context of resources, therefore it is grouped to resources.

GET /resource/list

GET /resources

Returns a list of all resources. There is optional matrix parameter: connInstanceId.

GET /resource/{resourceName}/read/{type}/{objectId}

GET /resources/{resourceName}

Returns a resource with specified name.

GET /resource/list

GET /resources

Returns a list of all resources.

GET /resource/list?connInstanceId={typeconnInstanceId}

GET /resources;connectorId={objectIdconnectorId}

Returns specified connector object for resourcea list of all resources used by matching connector.

POST /resource/check update POST

PUT /resources/validate

Verifies connection using resource connector parameters. HTTP operation can be changed to GET if resource is always created previously.

Role Service

...

{resourceName}

Updates resource with matching resourceName.

GET /resource/delete/{resourceName}

DELETE /resources/{resourceName}

Deletes resource with specified resourceName.

Old URL

New URL

Comment

POST /role/create

POST /roles/

Creates a new role. Returns URL to new role definition

GET /role/list

GET /roles

Returns a list of all known roles

GET /role/read/{roleId}

GET /roles/{roleId}

Returns a single role definition matching the provided roleID

GET /role/selfRead/{roleId}

GET /roles/{roleId}

Authorization mechanisms will be independent of URL

GET /role/parent/{roleId}

GET /roles/{roleId}/parent

Returns a single parent role definition (if available)

GET /role/children/{roleId}

GET /roles/{roleId}/children

Returns a list of children role definitions

POST /role/update

POST /roles/{roleId}

Updates role. (POST is used here instead of PUT, because RoleMod only contains changes for a role and not a complete representation thereof.)

GET /role/delete/{roleId}

DELETE /roles/{roleId}

Deletes role.

...

GET /resource/{resourceName}/read/{type}/{id}

GET /resources/{resourceName}/{type}/{id}

Returns connector object from the external resource, for the given type and id.

POST /resource/check

POST /resources/check

Verifies connection using resource connector parameters.

GET /resource/propagationActionsClasses

GET /resources/propagationActionsClasses

Returns a list of classes with name PROPAGATION_ACTIONS.

Role Service

Old URL

New URL

Comment

POST /role/create

POST /roles/

Creates a new role. Returns URL to new role definition

GET /role/read/{roleId}

GET /roles/{roleId}

Returns a single role definition matching the provided roleID

GET /role/selfRead/{roleId}

GET /roles/{roleId}

Authorization mechanisms will be independent of URL

GET /role/list

GET /roles

Returns a list of all known roles

GET /role/parent/{roleId}

GET /roles/{roleId}/parent

Returns a single parent role definition (if available)

GET /role/children/{roleId}

GET /roles/{roleId}/children

Returns a list of children role definitions

POST /role/update

POST /roles/{roleId}

Updates role. (POST is used here instead of PUT, because RoleMod only
contains changes for a role and not a complete representation thereof.)

GET /role/delete/{roleId}

DELETE /roles/{roleId}

Deletes role.

Schema Service

Info: {kind} can be USER, ROLE or MEMBERSHIP.

Old URL

New URL

Comment

POST /schema/{kind}/create

POST /schemas/{kind}/NORMAL

Creates a new "normal" schema for matching kind.

GET /schema/{kind}/read/{name}

GET /schemas/{kind}/NORMAL/{name}

Returns matching schema.

GET /schema/{kind}/list

GET /schemas/{kind}/NORMAL

Returns a list of all "normal" schema definitions of matching kind.

POST /schema/{kind}/update

PUT /schemas/{kind}/NORMAL/{name}

Updates matching schema.

GET /schema/{kind}/delete/{name}

DELETE /schemas/{kind}/NORMAL/{name}

Deletes matching schema.

Old URL

New URL

Comment

POST /virtualSchema/{kind}/create

POST /schemas/{kind}/VIRTUAL

Creates a new "virtual" schema for matching kind.

GET /virtualSchema/{kind}/read/{name}

GET /schemas/{kind}/VIRTUAL/{name}

Returns matching schema.

GET /virtualSchema/{kind}/list

GET /schemas/{kind}/VIRTUAL

Returns a list of all "virtual" schema definitions of matching kind.

POST /virtualSchema/{kind}/update

PUT /schemas/{kind}/VIRTUAL/{name}

Updates matching schema.

GET /virtualSchema/{kind}/delete/{name}

DELETE /schemas/{kind}/VIRTUAL/{name}

Deletes matching schema.

Old URL

New URL

Comment

GET POST /schemaderivedSchema/{kind}/list create

GET POST /schemas/{kind}/{type} DERIVED

Returns Creates a list of all new "normalderived" schema definitions of for matching kind.

GET /virtualSchemaderivedSchema/{kind}/list read/{name}

GET /schemas/{kind}/DERIVED/{typename}

Returns a list of all "virtual" schema definitions of matching kindmatching schema.

GET /derivedSchema/{kind}/list

GET /schemas/{kind}/{type}/DERIVED

Returns a list of all "derived" schema definitions of matching kind.

POST /schemaderivedSchema/{kind}/create update

POST PUT /schemas/{kind}/DERIVED/{typename}

Creates a new "normal" schema for matching kindUpdates matching schema.

POST GET /virtualSchemaderivedSchema/{kind}/delete/create {name}

POST DELETE /schemas/{kind}/{type} kind}/DERIVED/{name}

Deletes matching schema.

Task Service

Old URL

New URL

Comment

POST /task/create/sync

POST /tasks

Creates a new "virtual" schema for matching kindsync task.

POST GET /task/derivedSchemaread/{kindtaskId}/create POST

GET /schemastasks/{kind}sync/{typetaskId}

Creates a new "derived" schema for matching kindReturns sync task with matching id.

GET /schematask/{kind}/delete/{name}

DELETE /schemas/{kind}/{type}/{name}

sync/list

GET /tasks/sync/list

Returns a list of sync tasks Deletes matching schema.

GET /virtualSchematask/sync/list/{kindpage}/delete/{namesize} DELETE

GET /schemastasks/sync?page={kindpage}/{type}/{name} &size={size}

Returns a list of paginated sync tasks Deletes matching schema.

GET /derivedSchema/{kind}/delete/{name}

DELETE /schemas/{kind}/{type}/{name}

Deletes matching schema.

GET /schema/{kind}/read/{name}

GET /schemas/{kind}/{type}/{name}

Returns matching schema.

GET /virtualSchema/{kind}/read/{name}

GET /schemas/{kind}/{type}/{name}

Returns matching schema.

GET /derivedSchema/{kind}/read/{name}

GET /schemas/{kind}/{type}/{name}

Returns matching schema.

POST /schema/{kind}/update

PUT /schemas/{kind}/{type}/{name}

Updates matching schema.

POST /virtualSchema/{kind}/update

PUT /schemas/{kind}/{type}/{name}

Updates matching schema.

POST /derivedSchema/{kind}/update

PUT /schemas/{kind}/{type}/{name}

Updates matching schema.

...

task/sync/count

GET /tasks/sync/count

Returns number of sync tasks.

POST /task/update/sync

PUT /tasks/{taskId}

Updates sync task with matching id.

Old URL

New URL

Comment

POST /task/create/sched

POST /tasks

Creates a new sched task.

GET /task/read/{taskId}

GET /tasks/sched/{taskId}

Returns sched task with matching id.

GET /task/sched/list

GET /tasks/sched/list

Returns a list of sched tasks.

GET /task/sched/list/{page}/{size}

GET /tasks/sched?page={page}&size={size}

Returns a list of paginated sched tasks.

GET /task/sched/count

GET /tasks/sched/count

Returns number of sched tasks.

POST /task/update/sched

PUT /tasks/{taskId}

Updates sched task with matching id.

Old URL

New URL

Comment

POST GET /task/createread/sync {taskId}

GET /tasks/propagation/{taskId}

Returns propagation task with matching id.

GET /task/propagation/list

GET /tasks/propagation/list

Returns a list of propagation tasks

POST /tasks

Creates a new (sync) task.

POST /task/create/sched

POST /tasks

Creates a new (sched) task.

GET /task/propagation/list/{kindpage}/count {size}

GET /tasks/{kind}/count propagation?page={page}&size={size}

Returns a list of paginated propagation tasks Returns number of tasks for matching kind.

GET /task/deletepropagation/{taskId} count DELETE

GET /tasks/propagation/{taskId} count

Returns number of propagation tasks Deletes task with matching id.

GET /task/propagation/execution/delete/{executionId} DELETE list

GET /tasks/propagation/executions/{executionId}

Deletes execution of task with matching id.

Returns list of propagation task executions.

Old URL

New URL

Comment

GET POST /task/executeread/{taskId}?dryRun={dryRun} POST

GET /tasks/notification/{taskId}/execute?dryRun={dryRun}

Returns notification Executes task with matching id.

GET /task/notification/jobClasses list

GET /tasks/jobClasses notification/list

Returns a list of available jobClassesnotification tasks.

GET /task/syncActionsClasses /notification/list/{page}/{size}

GET /tasks/syncActionsClasses notification?page={page}&size={size}

Returns a list of available syncActionsClassespaginated notification tasks.

GET /task/{kind}notification/list count

GET /tasks/tasksnotification/{kind} count

Returns a list of task of matching kind. number of notification tasks.

Old URL

New URL

Comment

GET /task/{kind}delete/list/{page}/{size{taskId} GET

DELETE /tasks/{kind}?page={page}&size={size} taskId}

Deletes task with matching id Returns a list of task of matching kind with page contrains.

GET /task/execution/read/{kindexecutionId}/execution/list

GET /tasks/executions/{kindexecutionId}/executions

Returns list execution of executions task with matching kindid.

GET POST /task/readexecute/{taskId}?dryRun={dryRun}

POST GET /tasks/{taskId}/execute?dryRun={dryRun}

Returns Executes task with matching id.

GET /task/execution/readdelete/{executionId}

GET DELETE /tasks/executions/{executionId}

Returns Deletes execution of task with matching id.

POST GET /task/update/sync jobClasses

PUT GET /tasks/{taskId}

Updates (sync) task with matching id.

jobClasses

Returns a list of available jobClasses.

GET POST /task/update/sched syncActionsClasses

PUT GET /tasks/{taskId} syncActionsClasses

Returns a list of available syncActionsClasses Updates (sched) task with matching id.

GET /task/execution/report/{executionId}
?executionStatus={executionStatus}&message={message}

POST /tasks/executions/{executionId}/report

Creates a report for matching execution id.

...

report

Creates a new report for matching execution id.

User Service

Note
titleVersion warning

User Service Interface in Version 1.1.0 is still not applying some major RESTful best practices. Therefore refactoring for release >= 1.2.0 is most likely.

CRUD operations:

Old URL

New URL

Comment

POST /user/create

POST /users

Creates a new user. (Returns URL to new user definition)

GET /user/list

GET /users

Returns a list of all known users

GET /user/list/{page}/{size}

GET /users?page={page}&size={size}

Returns a list of known users matching page/size conditions

GET /user/read/{userId}

GET /users/{userId}

Returns a single user matching the provided userId

GET /user/read/self

GET /users/self

Returns the authenticated user

GET /user/readByUsername/{username}

GET /users;uname?username={username}

Returns a single user matching the provided username

POST /user/search

POST /users/search

Returns a list of user matching the provided search conditions.

POST /user/search/{page}/{size}

POST /users/search?page={page}&size={size}

Returns a list of user matching the provided page/size and search conditions.

GET /user/count

GET /users/count

Returns a number of existing users.

POST /user/search/count

POST /users/search/count

Returns a number of user matching the provided search conditions.

GET /user/verifyPassword/{username}?password={password} GET /users;uname={username};pwd?password={password} Returns user if username and password match with an existing account

<<removed>>

Use Basic-Authentication and GET /users/self to verify authentication and retrieve user object including assigned roles.

POST /user/update

POST /users/{userId}

Updates user. (POST is used here instead of PUT, because UserMod only contains changes for a user and not a complete representation thereof.)

GET /user/delete/{userId}

DELETE /users/{userId}

Deletes user.

GET /deleteByUsername/{username}

<<removed>>

Please use 'GET /user;uname?username={username}' to discover userId and then use 'DELETE /user/{userId}' to delete user.

...

Old URL

New URL

Comment

GET /user/activate/{userId}

POST /users/{userId}/status

Post a new StatusMod element with status ACTIVATE.

/activate

Activates matching user account.

GET /user/activateByUsername/{username}

GET /user/activateByUsername/{username}

<<removed>>

Please use 'GET /user;uname={username}' to discover userId and then use 'POST /user/activateByUsername/{userId}/status' to enable username}

Activates matching user account.

GET /user/reactivate/{userId}

POST /users/{userId}/status/reactivate

Post a new StatusMod element with status REACTIVATEReactivates new user account.

GET /user/reactivateByUsername/{username}

<<removed>>

POST /user/reactivateByUsername/{username}

Reactivates new Please use 'GET /user;uname={username}' to discover userId and then use 'POST /user/{userId}/status' to reactivate user account.

GET /user/suspend/{userId}

POST /users/{userId}/status/suspend

Suspends user account Post a new StatusMod element with status SUSPEND.

GET /user/suspendByUsername/{username}

<<removed>>

Please use 'GET /user;uname={username}' to discover userId and then use 'POST /user/{userId}/status' to suspend user account.

...

POST /user/suspendByUsername/{username}

Suspends user account.

UserWorkflow Service

Old URL

New URL

Comment

GET /user/workflow/form/list

GET /usersuserworkflow/workflow/form forms

Returns a list of user workflow forms.

GET POST /user/workflow/form/{userId} submit GET

POST /users/{userId}/workflow/form userworkflow/forms

Submits a form to a user workflow.

GET

Returns a (single) workflow form assigned to user.

POST /user/workflow/form/submit {userId} POST

GET /usersuserworkflow/workflowforms/form {userId}

Submittes Returns a (single) workflow form assigned to a user workflow.

POST /user/execute/workflow/{taskId}

POST /usersuserworkflow/workflow/tasktasks/{taskId}/execute

Executes workflow task on user.

GET /workflow/form/claim/{taskId}

POST /usersuserworkflow/workflowtasks/task/{taskId}/claim

Claims workflow task for authenticated (session) user.

UserRequest Service

task for authenticated (session) user.

UserRequest Service

Old URL

New URL

Comment

Old URL

New URL

Comment

GET /user/request/create/allowed

GET /requests/user/create/allowed

Returns true/false whether user is allowed to create a new user.

POST /user/request/create

POST /requests/user/create

POST Content contains user and create status Creates a new user creation request.

POST /user/request/update

POST /requests/user/update

POST Content contains userMod and update status Creates a new user update request.

GET /user/request/delete/{userId}

POST /requests/user/delete

POST Content contains user id and delete status. Creates a new user delete request. (Id will now be part of HTTP body)

GET /user/request/list

GET /requests/user

Returns a list of all user requests.

GET /user/request/read/{requestId}

GET /requests/user/{requestId}

Returns a user request with matching id.

GET /user/request/deleteRequest/{requestId}

DELETE /requests/user/{requestId}

/{requestId}

DELETE /requests/user/{requestId}

Deletes request with matching id.

Old URL

New URL

Comment

GET /user/request/create/allowed

GET /requests/user/create/allowed

Returns true/false whether user is allowed to create a new user.

GET /user/request/create/allowed

OPTIONS

Returns HTTP header "Syncope-Create-Allowed" indicating if user create is allowed or not Deletes request with matching id.

Workflow Service

Old URL

New URL

Comment

PUT /workflow/definition/user

PUT /workflows/user

Creates or updates workflow definition for users.

GET /workflow/definition/user

GET /workflows/{kind} user

Returns a workflow definition of matching kindfor users.

GET /workflow/definitiontasks/role user

GET /workflows/user/{kind} tasks

Returns a workflow definition of matching kind. workflow tasks for users.

Old URL

New URL

Comment

PUT /workflow/definition/user role

PUT /workflows/{kind} role

Creates or updates workflow definition of matching kindfor roles.

PUT GET /workflow/definition/role

PUT GET /workflows/{kind} role

Returns a workflow definition for roles Creates or updates workflow definition of matching kind.

GET /workflow/tasks/user role

GET /workflows/{kind}role/tasks

Returns workflow tasks with matching kindfor roles.