Functional Documentation

You will find here all the functional documentation (how to use guide) of Project Web Manager.

 How to Log in

In order to connect it is necessary to go on the loginpage of Project Web Manager.

It can be reached on the following URL (ex: http://projectwebmanager.org/pwm/logon) :
http://[ServerName]:[ServerPort]/pwm/logon

  • ServerName represents the name of the server (or the IP address) which accommodates the Web application server.
  • ServerPort represents the port number of the Web server which accommodates the Web application server. He can be empty according to your technical configuration.
  • pwm represents the name of the application context defined during the deployment of the WAR. By default it is pwm but this information can be modified during the installation.

Every user in an available state () can connect on the application. This is the default state of all created users.

Every user in a deleted state () or in a deactivated () state will not be able to log in.


Three information are necessary for a user to log in:
  • His login: chooses during his creation and editable only by an administrator
  • His password: chooses during his creation and editable by himself or an administrator
  • His key of domain: chooses during his creation and not editable

When all the information is filled in, the user can press the enter of his keyboard or click the button .

Caution: after 5 failed attempts, the user cannot connect any more, he'll have to wait 2 minutes (editable parameters).

 How to Log out

The lifetime of a session is defined in a configuration file (web.xml), by default it is set to 90 minutes of inactivity.

If the user wishes to voluntarily disconnect it simply click on the icon in the top right of his screen.

 I forgot my Password

If the user does not remember his password or login, he can:
  • Contact his PWM administrator by mail or ask him to send his information.
  • From the login page, click on the link I forgot my password.

In the second case, he will need his login or email and his domain key to automatically receive its login/password.

 Domain: Definition

A domain is a grouping of several elements:
  • Units
  • Users
  • Projects
  • Tasks

A domain is a closed universe, there is no communication between two domains, no information can be shared between them.

It is defined by a license that will specify the following information:
  • Its identification key: used by users to connect. This key is a number.
  • A start date and an end date of validity: out of those dates all elements of the domain are no longer available, no user can connect.
  • A user number: when arrive at this figure, it is no longer possible to create users.

 Domain administration

Management of a domain is the responsibility of the Super Administrator. Their can be only one super administrator for each PWM instance.

It is done using the administration console. From there, the SA can add a new domain or edit an existing one.

Note: There is NO way to delete a domain, the domain is active or inactive according to the dates (start and end) associated with its license.
All information related to a domain remain physically in the database until the data base administrator deletes them.

 Unit: Definition

A unit is a group of users. Units are part of a domain.

A unit is defined by its name. We can add a description and geographic location. As indicated above, a service is a group of users, each of which may have zero or two roles in it.

It is represented by the icon

 Create a Unit

Only users who have an administrator role can create units.

To create a unit, simply use the Unit menu in the upper left panel and click the icon.

You must specify:
  • Mandatory, a name (or title) that must be unique on the domain
  • If you want, a description and a geographical location (office, building, ...)
  • A set of users who have a role as:
    • administrator of the unit, also called unit chief and represented by the icon .
    • member represented by the icon

You can set a default cost per hour for each user. This value will be used as the default cost/h in project creation for the specified user. Of course, you can specify an other value in the project team view if you like.

A chief is also a member of the unit.

A unit must have at least one chief.

At its creation unit is automatically in an available state (), that is to say it is operational.

 Roles in a Unit

The role of a user in a unit is represented by the following two icons:
  • : For a user who is a member of the unit. He may participate in projects.
  • : For a user who is chief. It can create projects and change the composition of its unit.

Important: Please note that only the unit chief can create standard projects.

 State of a Unit

Only administrator or unit chief can change the state of a unit.

A unit can be in the following states:
  • the unit is available, in this state it will be visible on the display when creating a project.
  • the unit is disabled, it will not be visible on the display when creating a project.
  • the unit is removed, the ties that bind a user will be broken and it will not be visible on the display when creating a project.

Note: a unit can be deleted () and become available () again, BUT all roles (, ) will be lost.

 Unit administration

An administrator can edit any units in a domain.

A unit chief can edit all units where he has a role as chief.

That is to say, they can:
  • Add or remove a role / a user.
  • Change the unit name, description, location.
  • Change the cost/hour of each member.

Reminder: a unit must have a unique name for the whole domain, and it must have at least one chief

When a user is removed from a unit (when he has no more role in it):

  • If this user still has some role in other units, then all the roles he has in projects will automatically changed in order to reference an other unit. He'll keep all his role in projects.
  • If this user does not have any more role in other units, then all the roles he has in projects will automatically be deleted. He'll be removed from all team he belong. But all the task he was assigned stay assigned to him until he end them or someon re-assign them.

 Search of Units

Only an administrator can do some research to find a unit. Simply use the icon in the Unit section () at the top left of the dashboard.

When viewing the search results, just click on an item to view.

Since v1.2.x, when clicking a phone number it will start a phone application (if any).

 User: Definition

A User is a person who can connect to Project Web Manager and interact with it.

It can have more or less roles in the units or projects.

Task can be assigned to a user, if it has a role in a project.

It is represented by the icon

 State of a User

An administrator when editing a user can modify the state of the latter as follows:
  • the user is available in this state it will be visible and can connect to PWM.
  •  the user is deactivated in this state it is not always visible and can not connect. All its projects and tasks are still assigned to him.
  • the user is deleted in this state it is not always visible, it will not be able to connect, but also all his personal projects will be removed and the tasks assigned will be reallocated. All the roles he has in projects or units will be deleted.

Note: Even if a user can move from a deleted state () to an available () state, all roles related with units (, ), projects (, , , , , , ), will be lost.

 Roles of users in a unit

When creating a user, an administrator can define its relationship with zero several units.

Its links are no longer editable when editing the user, but they are when editing units.

The role of a user in a unit is represented by the following two icons:
  • : For a user who is a member of the service. He may participate in projects.
  • : For a user who is chief. It can create projects and change the composition of its service.

 Roles of users in a project

When creating a project, an administrator or a chief of unit define its relationship with zero or multiple users.

The role of a user in a project is represented by the following icons:
  • : Is a project chief. Important: He will have all rights in the project.
  • : Representing a client.
  • : Is an architect.
  • : Represents an integrator.
  • : Is a developer.
  • : Represents an analyst.
  • : Is the author of the project.

Only a project chief can modify the project, but all others can, if they wish, add tasks to it.

Only users who have a role in the project can be assigned to a task that belong to the project.

 User with administration rights

An administrator is a user who has the maximum rights on all elements of the domain that are not personal (projects, tasks).

It can:
  • * Create / edit / Search a user
  • * Create / edit / * Search unit
  • Create / edit / Search project
  • Create / edit / search task

*: Means that only him can do that.

A user who has administrator rights can not be deleted (), however, it can be disabled ().

It will also be visible in a list of names at the preferences screen of each user. Like that it is reachable by email or phone if a problem occurs.

It is best to gather all the users who are administrators in the unit created for this purpose.

It is highly recommended NOT to give this role to all users.

Note: An administrator is not the super user or the domain manager, it is simply attached to a domain where it has full authority.

 Preferences of a User

Each user can change their preferences, just use the Preferences menu at the top right of the dashboard.

Note that almost all of the options will influence (good or bad) the speed of screens, the more the user wants to see the more the display will be slow.

 Create a User

Only users who have an administrator role can create users. The first user (who is an administrator) is created during the domain creation (this action is performed by the super user).

To create a user, just use the user menu in the upper left panel and click the icon .

You must specify:
  • Necessarily a user name and email that will be unique on the domain, and a password
  • If units are available, the user can play the following roles:
    • : unit manager, also known as unit chief.
    • : unit member.
  • You can set a default cost per hour for each unit/user. This value will be used as the default cost/h in project creation for the specified user. Of course, you can specify an other value in the project team view if you like.
When created:
  • a user is automatically in the available state (), that is to say that it is operational, it can connect.
  • an email will be sent to it with its credentials information (login, password, domain key).

 Edit a User

An administrator can change any of its domain users.

A user can edit all information about it, except:
  • its state (unless administrator)
  • date of first and last login
  • units where it has a role (unless unit chief and only through editing a service)
  • projects where it has a role (unless unit chief or project chief and only through editing a project)

 Search of Users

Every one (since v1.2.x) can do some research to find a user. Simply use the icon in the User section () at the top left of the dashboard.

When viewing the search results, just click on an item to view details.

User can only see/search others that are related to them (unit, project).

Since v1.2.x, when clicking a phone number it will start a phone application (if any).

 Project: Definitions

A Project is a collection of tasks, it consists of a label and a description. It will have a supposed start date and a supposed end date as a real start date and a real end date.

When tasks are associated with a project, you will see additional information from a calculation based on the information associated with tasks.

A project is represented by the icon .

A user can have more or less important roles in the life of a project.

Depending on the user's role within a unit, it will be possible to create normal or personal projects.

  • Supposed cost: the cost that you think the project will be.
  • Estimated computed cost: The sum of all estimated task cost (for a not ended task = estimated time * the cost of actual assigned user, for an ended task = final cost).
  • Real cost: the sum of real task cost computed regarding the actual elapsed time and the cost / user of all tasks.
  • Final cost: the real cost when project reached end state

 Standard Project

Only users with the role of unit chief () can create normal projects.

At its inception, it will define a set of users who participate in the project, they will all be part of the unit in which the author of the project is a department head.

Each user involved in the project may have one or more roles within the project.

Normal projects are available to all participants as well as users who are administrators.

The author of a normal project will act as a project chief. It can be taken away from him when editing the project.

The default state of a normal project (ie one right after its creation) is available . It is NOT started.

The cost per hour is set in the project team definition, one value per user.

 Personal Project

All users can create personal projects.

At its inception, the user project proponent will have all roles within the project. Other users will not be able to participate.

All tasks that are associated with a personal project are also noted as personal.

Personal projects are accessible only to the author, even an administrator can not access it.

A personal project is endorsed by the icon .

The default state of a personal project (ie one right after its creation) is started .

The cost per hour is set in the project basic definition, one value per project (since only the author is member of the project).

 State of a Project

When creating a project, it will always be in the state:
  • : Available if it is a normal project. Related tasks can not be started, they are all in the available state. To perform a task it will have to start the project.
  • : Started if it is a personal project. Related tasks can be started.
During his lifetime, a project may have the following states:
  •  the project is available. It is not yet started, you can add tasks to it, but its tasks can not be started.
  •  the project is deactivated in this state all tasks are disabled/deactivated.
  •  the project is deleted, it no longer exists, in this state all tasks are deleted.
  •  the project is started, the tasks that were disabled pass in the available state, so they can be realized.
  •  the project is completed, there is no more work to be done in the project.
  •  the project is paused, all project tasks are paused.
  •  the project is cancelled , it will not be realized.

 Roles of users in a project

When creating a project, an administrator or a unit chief may define its relationship with zero or multiple users.

The role of a user in a project is represented by the following icons:
  • : Is a project chief. Important: it will have all the rights to the project.
  • : Representing a client.
  • : Is an architect.
  • : Represents an integrator.
  • : Is a developer.
  • : Represents an analyst.
  • : Is the author of the project.

Only the project chief can modify the project, but all others can, if they wish, add tasks to it.

Only users who have a role in the project can be assigned to a task.

As for units, you can set a cost per hour value for each member of the project. By default, the value shown is the one set in the units. This value is used in order to compute the real cost of a task and the real cost of the project.

 Links between tasks and Projects

The link between a project and a task is done when creating or editing a task.

All tasks that are associated with a personal project () are also noted as personal.

All users with a role in the project can add tasks to it.

The real cost of a task depends on the cost per hour set in the project team definition.

 Events in projects

At its creation or edition it is possible to associate events to a project.

An event occurs when changing the state of the project, for example when it starts or when it ends.

To associate an event just use the tab .

Examples:
  • WHEN STARTED THEN TARGET_TASK=(55) START
    When the project will be in started state, then the task n° 55 will be passed automatically to the started state.
  • WHEN ENDED THEN TARGET_PROJECT=(5) START
    When the project will be ended, then the project n° 5 will be passed automatically to the started state.
  • WHEN ENDED THEN TARGET_PROJECT=(5,6) START#
    WHEN ENDED THEN TARGET_TASK=(5) START
    When the project moves into the finished state, then projects n° 5 and 6 will automatically pass in the started state so will the task n° 5.
  • WHEN ENDED THEN SEND_MAIL_TO=(toto@aol.fr) TITLE=(Information) BODY=(Bla bla bla)
    When the project moves into the finished state then an email will be automatically sent to toto@aol.fr.
  • WHEN ENDED THEN SEND_MAIL_TO=(toto@aol.fr,titi@aol.fr) TITLE=(Information) BODY=(Bla bla bla)
    When the project is ended, then an email will automatically be sent to toto@aol.fr and titi@aol.fr.

Possible states are triggered: OK, DISABLED, DELETED, STARTED, ENDED, PAUSED, CANCELED.

Possible states for the target elements are: OK, DISABLE, DELETE, START, END, PAUSE, CANCEL.

The type of the target element can be: TARGET_USER, TARGET_TASK, TARGET_PROJECT, TARGET_UNIT.

All action/event must end by #

 Create a Project

All users can create personal projects. but only users with the role of unit chief () can create normal projects.

To create a project, just use the Project menu at the top center of the dashboard and click the icon . Then, depending on the user's role in units, Normal option will be visible or not.

Label / title of the project is the only mandatory information.

When creating a project, it will always be in the state:
  • : Available if it is a normal project. Related tasks can not be started, they are all in the available state. To start a task it will have to start the project.
  • : Started if it is a personal project. Related tasks can be started.

The links between tasks and project are done when creating / editing tasks.

As for units, you can set a cost per hour value for each member of the project. By default, the value shown is the one set in the units. This value is used in order to compute the real cost of a task and the real cost of the project.

 Edit a Project

A project chief or unit chief may edit a project.

It can edit all information except the real start date and the real end date.

 Move a project in time

When editing a project it is possible to request that it be shifted / moved in time.

This action will result in the change of supposed dates (start and end) of all tasks that have no actual start date (ie those who have never been started).

The offset is a positive or negative number of days.

 Search of projects

Everyone can search a project. Simply use the icon in the Project section () at the top center of the dashboard.

However, only projects related to the user's doing the search will be visible.

All personal projects that do not belong to the user performing the search will be invisible and inaccessible (including to an administrator).

When viewing the search results, just click on an item to view details.

 Task: Definition

A task represents an action to be performed by a user. It is part of a project.

All users can create tasks. But, it can only be done in a project where the user has a role.

Only administrator, authors, project chief or assigned users can edit a task.

Important: After its creation, a task is not started () by default, it is, in most cases, available (). It will be deactivated () if the project is in available state () (ie it has not yet been started). It is automatically set in available state () when the project moves into the started state ().

A task will be personal if it belongs to a personal project, it will be prefixed with the icon .

A task is represented by the icon .

  • Supposed cost: the cost that you think the task will be.
  • Estimated computed cost: The cost computed regarding your estimated time and the cost of actual assigned user.
  • Real cost: the cost computed regarding the actual elapsed time and the cost / user.
  • Final cost: the real cost when task reached end state

 Standard Task

Normal task belongs to a project that is not personal.

It can be assigned to any user who is part of the project.

 Personal Task

Personal task belongs to a personal project.

It can only be assigned to the project author. It will be prefixed with the icon .

 State of a task

When creating a task, it will always be in the following state:
  • : Available if the project to which it belongs is started ().
  • : Disabled if the project to which it belongs is available ().
During his lifetime, a task can have the following states:
  • the task is available. Nobody has started, it is new.
  • the task is disabled. Default when the task is assigned to a project that is not started.
  • the task is deleted, it no longer exists and will not be visible on Gantt chart.
  • the task is started, someone is working on it.
  • the task is completed, there is no more work to do on this task.
  • the task is paused, you can change its status and elapsed time.
  • the task is cancelled, it will not be realized.

 Type of a task

You can type your task using the followings:
  • Standard
  • Analysis - Specification
  • Construction - Execution
  • Validation - Test
  • Release - Deployment
  • Bugs

Typing a task is just a filtering/viewing option.

 Mother task

A task is mother if she has children, in this case, it just serves as a container, assignment, dates are useless and are not taken into effect.

To be eligible as a mother task, a task must not have actual start date (ie it was never started).

A child task is a task that has a mother.

The mechanics of mother / child task is used to group tasks into sub tasks.

When editing or creating a task you can specify its mother task.

 Links between tasks

At its creation or edition it is possible to associate events to a task.

An event occurs when the task is changing os state, for example when it starts or when it ends.

To associate an event just use the tab .

Examples:
  • WHEN STARTED THEN TARGET_TASK=(55) START
    When the state of the task is started, then the task n°55 will be passed automatically to the started state.
  • WHEN ENDED THEN TARGET_PROJECT=(5) START
    When the task will end, then the project n°5 will be passed automatically to the started state.
  • WHEN ENDED THEN TARGET_PROJECT=(5,6) START#
    WHEN ENDED THEN TARGET_TASK=(5) START
    When the task will end, then projects n°5 and 6 will automatically pass in the started state and so will the task n°5.
  • WHEN ENDED THEN SEND_MAIL_TO=(toto@aol.fr) TITLE=(Information) BODY=(Bla bla bla)
    When the task will end, then an email will be automatically sent to toto@aol.fr.
  • WHEN ENDED THEN SEND_MAIL_TO=(toto@aol.fr,titi@aol.fr) TITLE=(Information) BODY=(Bla bla bla)
    When the task end, then an email will automatically be sent to toto@aol.fr and titi@aol.fr.

In addition to the states, tasks can generate events on the value of completion or elapsed time.

Examples:
  • WHEN ELAPSED=5000 THEN TARGET_USER=(3) DISABLED
    When the task has an elapsed time equal to 5000ms, then the user n°3 will be disabled.
  • WHEN ELAPSED>=5000 THEN TARGET_USER=(3) DISABLED
    When the task has an elapsed time greater than or equal to 5000ms, the user n°3 will be disabled.
  • WHEN COMPLETION=50 THEN SEND_MAIL_TO=(toto@aol.fr) TITLE=(Information) BODY=(Bla bla bla)
    When the task has a completion percentage of 50, then an email will automatically be sent to toto@aol.fr.

Possible states are triggered: OK, DISABLED, DELETED, STARTED, ENDED, PAUSED, CANCELED.

Possible states for the target elements are: OK, DISABLE, DELETE, START, END, PAUSE, CANCEL.

Tests may include: COMPLETION ( a whole percentage between 0 and 100) ELAPSED (a time in ms).

The test operators are: =, <, >, <=, >=.

The type of the target element will be: TARGET_USER, TARGET_TASK, TARGET_PROJECT, TARGET_UNIT.

Each action/event should be separated by a #.

 Create a task

All users can create tasks. But, as a task is a mandatory part of a project created task can only be done in a project where the user has a role.

To create a task, just use the Task menu at the top right of the dashboard and click the icon .

Label, supposed start and end date as well as the project and the user assigned to this task are the mandatory information you'll need to specify.

When creating a task, it will always be in the state:
  • : Available if the project to which it belongs is started ().
  • : Disabled if the project to which it belongs is available ().

You can also create a task from the Project view, from its task tab.

 Edit a task

All information of a task are not writeable, it will depends of its state.

Moreover, the information writeable vary depending on the role of the user who wants to edit it.

When a task is started (), some information can not be changed, you should set the task on pause () to be able to edit them.

Project chief, administrator, author of the task can change almost all information of a task.

Assigned user are limited in the changes they can do.

 Search of a tasks

Everyone can search a task. Simply use the icon located in the Task section () at the top right of the dashboard.

However, only tasks in relation to the user's doing the search will be visible.

All personal tasks that do not belong to the user performing the search will be invisible and inaccessible (including administrator user).

When viewing the search results, just click on an item to view details.

 Export your data

On almost all the views you can export your data in different formats.

Each user can export data.

For Excel and XML format, all information related (actors, tasks, ...) to an item will also be present, except for projects / tasks personal that do not belong to the user performing the export.

You can export the information to a file by clicking on one of these icons next to the title / label:
  • : Exporting to Excel format. The item you will look will be yellow.
  • : Exporting to UTF-8 XML. The item you selected will look have its property selected set to true.
  • : Exporting to CSV format = ASCII flat file. Warning, no related information will be present in the file.

 Import your data

Rather than using the management interface of PWM you can change / add / delete a lot of information by making use of the data import.

All users can import data, but if they do not have appropriate rights then an error message will occur while importing.

For example, a user without administrative role can not update or create a new user.

In its current version, PWM supports only importing data from Excel file. The Excel file must follow the same format as the one presented when exporting data.
Since version 1.1.02, you can use Zipped excel file (one Excel file zipped, so your file is xxx.zip), this is mandatory if your Excel file is bigger than 2Mg.

When importing you can perform three actions per element:
  • Add : To add an item
  • Update : To update an item
  • Delete: to remove an item

To select the action you want to perform, make the A column appear in your Excel file (it is hidden by default). On each line that you want to change select your action.

In the particular case where you want to create a new item (user, task, department, project), you can not create links (user roles) at the same time.

Because your new item does not have key to identify it.

So you have to realize the add action in several steps:
  • At first, create your items without links. Make an import.
  • Then export your information through PWM to get the keys of your new elements.
  • And finally, create your links by making use of the keys provided to you.

Note: When creating a user, the password will be auto generated and will be sent by email to this new user.

To import your data, click the icon in the top right corner of your desktop.

 Use the Web Services

To allow good interaction between different programs in your information system, Web Services are available in PWM.

In order to use web services, you must check with your license administrator.

The technology used is REST. The data is returned in JSON format.

Since release 1.2.1, all web services are available.

 Get an authentication key

Before calling a web service you must retrieve an authentication key.

A web service is available for this purpose on the URL:
http://[ServerName]:[ServerPort]/pwm/rest/key/[DomainKey]/[Login]/[Password]/[TimeToLive]
Important This web service uses a PUT method.
  • ServerName : is the server name or IP address
  • ServerPort : is the server port number (may be optional depending on the configuration)
  • DomainKey : is the domain key to which the user belongs
  • Login: represents the user login
  • Password: is the password of the user
  • TimeToLive: represents the time during which the authentication key is valid, this time is in ms

Example (using a PUT method): http://localhost:8080/pwm/rest/key/1/administrator/password/600000

If you succeed in your call, HTTP return code wille be 200 and the answer body will be a JSON object :

If you failed in your call, HTTP return code wille be 303 and the answer body will be a JSON object :

You will need the value under the attribute key to use the other web services, here we can see it is 151201359.

 Users Web Service

Before calling this web service you must have an authentication key.

The web services for users are available under the root URL: /users.
  • http://[ServerName]:[ServerPort]/pwm/rest/users/view/[AuthenticationKey]/[UserId] : if you want to see a user
  • http://[ServerName]:[ServerPort]/pwm/rest/users/search/[AuthenticationKey]?key1=value1&key2=value2&keyn=valuen : if you want to search among users using criteria
  • http://[ServerName]:[ServerPort]/pwm/rest/users/create/[AuthenticationKey]?key1=value1&key2=value2&keyn=valuen : if you want to create a user
  • http://[ServerName]:[ServerPort]/pwm/rest/users/update/[AuthenticationKey]/[UserId]?key1=value1&key2=value2&keyn=valuen : if you want to update a user
  • http://[ServerName]:[ServerPort]/pwm/rest/users/forgotpassword/[DomainKey]/[login] : if you want to receive an email with your connections information
  • ServerName : is the server name or IP address
  • ServerPort : is the server port number (may be optional depending on the configuration)
  • DomainKey : is your domain key
  • login: is your login or your email
  • AuthenticationKey : is key obtain with the authentication service
  • UserId: is the user id you are interested in
  • keyX: name of a paramter, caution to upper/lower case.
  • valueX: value linked with parameter keyX

 Users Web Service - View


http://[ServerName]:[ServerPort]/pwm/rest/users/view/[AuthenticationKey]/[UserId]
Important This web service uses a GET method.

Example (using a GET method) : http://localhost:8080/pwm/rest/users/view/1975043074/5

If you succeed in your call, HTTP return code wille be 200 and the answer body will be a JSON object :

If you failed in your call, HTTP return code wille be 303 and the answer body will be a JSON object.

 Users Web Service - Search


http://[ServerName]:[ServerPort]/pwm/rest/users/search/[AuthenticationKey]?key1=value1&key2=value2&keyn=valuen
Important
  • This web service uses a GET method.
  • Respect upper/lower case for parameters.
You can use all the following parameters for your search:
  • internalId
  • state : 0 for Ok, 1 for deactivated, 2 for deleted
  • sex: 0 for man, 1 for woman
  • firstname
  • lastname
  • email
  • phone
  • postalcode
  • city
  • country
  • connected : 1 for only those connected, 0 for only those not connected, null value for both

Example (using a GET method): http://localhost:8080/pwm/rest/users/search/1975043074?sex=1&lastname=bonnet

If you succeed in your call, HTTP return code wille be 200 and the answer body will be a JSON object :

If you failed in your call, HTTP return code wille be 303 and the answer body will be a JSON object.

 Users Web Service - Create


http://[ServerName]:[ServerPort]/pwm/rest/users/create/[AuthenticationKey]?key1=value1&key2=value2&keyn=valuen
Important
  • This web service uses a PUT method.
  • Respect upper/lower case for parameters.
You must specify values for the following parameters:
  • lastName
  • firstName
  • login : at least six characters
  • local : the language (ex: en_US) (Locale)
  • email
  • sex : 0 for man, 1 for woman
  • newPassword : the password
You can complet the creation of your user by using the following parameters:
  • address
  • dateFormat : date format for birth date (SimpleDateFormat)
  • birthDate
  • cellularPhone
  • city
  • country
  • office
  • phone
  • postalCode
  • internalId
  • isAdmin
  • chief_nb : wil indicate that this user is chief for the unit's id nb (ex: chief_5=true)
  • member_nb : wil indicate that this user is member for the unit's id nb (ex: member_3=true)
  • cost_nb : wil indicate that this user has a cost (the parameter value) for the unit's id nb (ex: cost_5=3.5)

Example (using a PUT method): http://localhost:8080/pwm/rest/users/create/124705338?sex=0&lastName=Bonnet&firstName=François&local=fr_FR&email=fb@totof.fr&newPassword=bonjour33&login=fbonnet

If you succeed in your call, HTTP return code wille be 200 and the answer body will be a JSON object :

If you failed in your call, HTTP return code wille be 303 and the answer body will be a JSON object.

 Users Web Service - Update


http://[ServerName]:[ServerPort]/pwm/rest/users/update/[AuthenticationKey]/[UserId]?key1=value1&key2=value2&keyn=valuen
Important
  • This web service uses a PUT method.
  • Respect upper/lower case for parameters.
Notes
  • you cannot change login nor the fact that the user is an administrator or not.
  • if you want to change the unit's role, you'll have to edit the unit.
You can use the following parameters:
  • lastName
  • firstName
  • local : la language (ex: fr_FR) (Locale)
  • state : 0 for Ok, 1 for deactivated, 2 for deleted
  • email
  • sex : 0 for man, 1 for woman
  • newPassword
  • address
  • dateFormat : date format for birth date (SimpleDateFormat)
  • birthDate
  • cellularPhone
  • city
  • country
  • office
  • phone
  • postalCode
  • internalId

Example (using a PUT method): http://localhost:8080/pwm/rest/users/update/124705338/131?newPassword=bonjour34

If you succeed in your call, HTTP return code wille be 200 and the answer body will be a JSON object :

If you failed in your call, HTTP return code wille be 303 and the answer body will be a JSON object.

 Web Service User : Forgot password


http://[NomDuServeur]:[PortDuServeur]/pwm/rest/users/forgotpassword/[DomainKey]/[login]
Important
  • This web service uses a GET method.

Example (using a GET method) : http://localhost:8080/pwm/rest/users/forgotpassword/1/administrator

If you succeed in your call, HTTP return code wille be 200 and the answer body will be a JSON object :

If you failed in your call, HTTP return code wille be 303 and the answer body will be a JSON object.

 Units Web Service

Before calling this web service you must have an authentication key.

The web services for units are all under the root URL /units:
  • http://[ServerName]:[ServerPort]/pwm/rest/units/view/[AuthenticationKey]/[UnitId] : if you want to see a unit
  • http://[ServerName]:[ServerPort]/pwm/rest/units/search/[AuthenticationKey]?key1=value1&key2=value2&keyn=valuen : if you want to search among units using criteria
  • http://[ServerName]:[ServerPort]/pwm/rest/units/create/[AuthenticationKey]?key1=value1&key2=value2&keyn=valuen : if you want to create a unit
  • http://[ServerName]:[ServerPort]/pwm/rest/units/update/[AuthenticationKey]/[UnitId]?key1=value1&key2=value2&keyn=valuen : if you want to update a unit
  • ServerName : is the server name or IP address
  • ServerPort : is the server port number (may be optional depending on the configuration)
  • AuthenticationKey : is key obtain with the authentication service
  • UnitId: is the unit id you are interested in
  • keyX: name of a paramter, caution to upper/lower case.
  • valueX: value linked with parameter keyX

 Web Service - Unit: View


http://[ServerName]:[ServerPort]/pwm/rest/units/view/[AuthenticationKey]/[UnitId]
Important This web service uses a GET method.

Example (using GET method): http://localhost:8080/pwm/rest/units/view/124705338/5

If you succeed in your call, HTTP return code wille be 200 and the answer body will be a JSON object :

If you failed in your call, HTTP return code wille be 303 and the answer body will be a JSON object.

 Web Service - Unit: Search


http://[ServerName]:[ServerPort]/pwm/rest/units/search/[AuthenticationKey]?key1=value1&key2=value2&keyn=valuen
Important
  • This web service uses a GET method.
  • Respect upper/lower case for parameters.
You can use all the following parameters :
  • internalId
  • state : 0 for Ok, 1 for deactivated, 2 for deleted
  • internalId
  • label
  • description
  • localization

Example (using GET method): http://localhost:8080/pwm/rest/units/search/124705338?label=cor

If you succeed in your call, HTTP return code wille be 200 and the answer body will be a JSON object :

If you failed in your call, HTTP return code wille be 303 and the answer body will be a JSON object.

 Web Service - Unit: Create


http://[ServerName]:[ServerPort]/pwm/rest/units/create/[AuthenticationKey]?key1=value1&key2=value2&keyn=valuen
Important
  • This web service uses a PUT method.
  • Respect upper/lower case for parameters.
You must specify values for the following parameters:
  • label
  • chief_nb : a unit must have at least one cheaf. This parameter indicates that the user'id nb will be chief for this unit (ex: chief_4=true)
You can complet the creation of your user by using the following parameters:
  • description
  • localization
  • internalId
  • chief_nb : This parameter indicates that the user'id nb will be chief for this unit (ex: chief_4=true)
  • member_nb : This parameter indicates that the user'id nb will be a member of this unit (ex: member_3=true)
  • cost_nb : This parameter indicates that the user'id nb will have a default cost (parameter value) for this unit (ex: cost_3=5.3)

Example (using PUT method): http://localhost:8080/pwm/rest/units/create/623649985?label=Service Achat&chief_3=true

If you succeed in your call, HTTP return code wille be 200 and the answer body will be a JSON object :

If you failed in your call, HTTP return code wille be 303 and the answer body will be a JSON object.

 Web Service - Unit: : Update


http://[ServerName]:[ServerPort]/pwm/rest/units/update/[AuthenticationKey]/[UnitId]?key1=value1&key2=value2&keyn=valuen
Important
  • This web service uses a PUT method.
  • Respect upper/lower case for parameters.
Notes
  • If you want to change a role value you'll have to specify all information. All missing information will be removed from the element.
You can use all the following parameters :
  • label
  • description
  • localization
  • state : 0 for Ok, 1 for deactivated, 2 for deleted
  • internalId
  • chief_nb : This parameter indicates that the user'id nb will be chief for this unit (ex: chief_4=true)
  • member_nb : This parameter indicates that the user'id nb will be a member of this unit (ex: member_3=true)
  • cost_nb : This parameter indicates that the user'id nb will have a default cost (parameter value) for this unit (ex: cost_3=5.3)

Example (using PUT method): http://localhost:8080/pwm/rest/units/update/623649985/40?chief_3=true&cost_3=3.5

If you succeed in your call, HTTP return code wille be 200 and the answer body will be a JSON object :

If you failed in your call, HTTP return code wille be 303 and the answer body will be a JSON object.

 Projects Web Service

Before calling this web service you must have an authentication key.

The web services for projects are all under the root URL /projects:
  • http://[ServerName]:[ServerPort]/pwm/rest/projects/view/[AuthenticationKey]/[ProjectId] : if you want to see a project
  • http://[ServerName]:[ServerPort]/pwm/rest/projects/search/[AuthenticationKey]?key1=value1&key2=value2&keyn=valuen : if you want to search among projects using criteria
  • http://[ServerName]:[ServerPort]/pwm/rest/projects/create/[AuthenticationKey]?key1=value1&key2=value2&keyn=valuen : if you want to create a project
  • http://[ServerName]:[ServerPort]/pwm/rest/projects/update/[AuthenticationKey]/[ProjectId]?key1=value1&key2=value2&keyn=valuen : if you want to update a project
  • http://[ServerName]:[ServerPort]/pwm/rest/projects/dueBy/[AuthenticationKey]?key1=value1&key2=value2&keyn=valuen : if you want to see all due projects
  • http://[ServerName]:[ServerPort]/pwm/rest/projects/assignedTo/[AuthenticationKey]?key1=value1&key2=value2&keyn=valuen : if you want to see all projects where user has a role
  • ServerName : is the server name or IP address
  • ServerPort : is the server port number (may be optional depending on the configuration)
  • AuthenticationKey : is key obtain with the authentication service
  • ProjectId: is the project id you are interested in
  • keyX: name of a paramter, caution to upper/lower case.
  • valueX: value linked with parameter keyX

 Projects Web Service: View


http://[ServerName]:[ServerPort]/pwm/rest/projects/view/[AuthenticationKey]/[ProjectId]
Important This web service uses a GET method.

Example (using GET method): http://localhost:8080/pwm/rest/projects/view/1975043074/188

If you succeed in your call, HTTP return code wille be 200 and the answer body will be a JSON object :

If you failed in your call, HTTP return code wille be 303 and the answer body will be a JSON object.

 Projects Web Service: Search


http://[ServerName]:[ServerPort]/pwm/rest/projects/search/[AuthenticationKey]?key1=value1&key2=value2&keyn=valuen
Important
  • This web service uses a GET method.
  • Respect upper/lower case for parameters.
You can use all the following parameters :
  • internalId
  • state:
    • 0 meaning project is available. All its tasks are disabled (until project get started).
    • 1 meaning project is disabled. All its tasks are disabled.
    • 2 meaning project is deleted. All its tasks are deleted.
    • 3 meaning project is started. All its tasks become available if they were disabled.
    • 4 meaning project is ended. All its tasks are ended.
    • 5 meaning project is paused. All its tasks are paused.
    • 6 meaning project is cancelled. All its tasks are cancelled.
  • label
  • description
  • startDateBegin
  • startDateEnd
  • endDateBegin
  • endDateEnd
  • priorityStart
  • priorityEnd
  • personal: accept,only,reject
  • dateFormat: see SimpleDateFormat

Example (using GET method): http://localhost:8080/pwm/rest/projects/search/1975043074?state=3&personal=reject

If you succeed in your call, HTTP return code wille be 200 and the answer body will be a JSON object :

If you failed in your call, HTTP return code wille be 303 and the answer body will be a JSON object.

 Projects Web Service: Create


http://[ServerName]:[ServerPort]/pwm/rest/projects/create/[AuthenticationKey]?key1=value1&key2=value2&keyn=valuen
Important
  • This web service uses a PUT method.
  • Respect upper/lower case for parameters.
You must specify values for the following parameters:
  • label
  • chief_userid_unitid=costvalue : you need at leasy one chief for all none personal project.
You can complete using the following parameters:
  • description
  • priority
  • internalId
  • estimatedTime
  • estimatedTimeUnit: 3 for days (default), 2 for hours, 1 for minutes;
  • supposedDateFormat : see SimpleDateFormat
  • supposedEndDate
  • supposedStartDate
  • isPersonal : true a personal project, false for standard
  • sendEvent
  • supposedCost
  • finalCost
  • personalCost: your cost if project is personal
  • analyst_userid_unitid=costvalue : If project is not personal, indicates that user's id userid linked with unit's id unitid will have the given role at the specified cost (ex: analyst_4_1=3)
  • architect_userid_unitid=costvalue : If project is not personal, indicates that user's id userid linked with unit's id unitid will have the given role at the specified cost (ex: architect_4_1=3)
  • chief_userid_unitid=costvalue : If project is not personal, indicates that user's id userid linked with unit's id unitid will have the given role at the specified cost (ex: chief_4_1=3)
  • client_userid_unitid=costvalue : If project is not personal, indicates that user's id userid linked with unit's id unitid will have the given role at the specified cost (ex: client_4_1=3)
  • developer_userid_unitid=costvalue : If project is not personal, indicates that user's id userid linked with unit's id unitid will have the given role at the specified cost (ex: developer_4_1=3)
  • integrator_userid_unitid=costvalue : If project is not personal, indicates that user's id userid linked with unit's id unitid will have the given role at the specified cost (ex: integrator_4_1=3)

Example (using PUT method): http://localhost:8080/pwm/rest/projects/create/1873272354?label=Projet Refonte Réseaux v4&chief_2_1=5.3&chief_1_5=8

If you succeed in your call, HTTP return code wille be 200 and the answer body will be a JSON object :

If you failed in your call, HTTP return code wille be 303 and the answer body will be a JSON object.

 Projects Web Service: Update


http://[ServerName]:[ServerPort]/pwm/rest/projects/update/[AuthenticationKey]/[ProjectId]?key1=value1&key2=value2&keyn=valuen
Important
  • This web service uses a PUT method.
  • Respect upper/lower case for parameters.
Notes
  • you cannot change the fact that a project is personal or not
  • If you want to change a role value you'll have to specify all information. All missing information will be removed from the element.
You can use all the following parameters :
  • label
  • description
  • priority
  • internalId
  • estimatedTime
  • estimatedTimeUnit: 3 for days (default), 2 for hours, 1 for minutes;
  • supposedDateFormat : see SimpleDateFormat
  • supposedEndDate
  • supposedStartDate
  • sendEvent
  • supposedCost
  • finalCost
  • comment: a new comment
  • personalCost: your cost if project is personal
  • analyst_userid_unitid=costvalue : If project is not personal, indicates that user's id userid linked with unit's id unitid will have the given role at the specified cost (ex: analyst_4_1=3)
  • architect_userid_unitid=costvalue : If project is not personal, indicates that user's id userid linked with unit's id unitid will have the given role at the specified cost (ex: architect_4_1=3)
  • chief_userid_unitid=costvalue : If project is not personal, indicates that user's id userid linked with unit's id unitid will have the given role at the specified cost (ex: chief_4_1=3)
  • client_userid_unitid=costvalue : If project is not personal, indicates that user's id userid linked with unit's id unitid will have the given role at the specified cost (ex: client_4_1=3)
  • developer_userid_unitid=costvalue : If project is not personal, indicates that user's id userid linked with unit's id unitid will have the given role at the specified cost (ex: developer_4_1=3)
  • integrator_userid_unitid=costvalue : If project is not personal, indicates that user's id userid linked with unit's id unitid will have the given role at the specified cost (ex: integrator_4_1=3)
  • author_userid_unitid=costvalue : If project is not personal, indicates that user's id userid linked with unit's id unitid will have the given role at the specified cost (ex: author_4_1=3)
  • state:
    • 0 meaning project is available. All its tasks are disabled (until project get started).
    • 1 meaning project is disabled. All its tasks are disabled.
    • 2 meaning project is deleted. All its tasks are deleted.
    • 3 meaning project is started. All its tasks become available if they were disabled.
    • 4 meaning project is ended. All its tasks are ended.
    • 5 meaning project is paused. All its tasks are paused.
    • 6 meaning project is cancelled. All its tasks are cancelled.

Example (using PUT method): http://localhost:8080/pwm/rest/projects/update/1873272354/257?state=3

If you succeed in your call, HTTP return code wille be 200 and the answer body will be a JSON object :

If you failed in your call, HTTP return code wille be 303 and the answer body will be a JSON object.

 Projects Web Service: : due


http://[ServerName]:[ServerPort]/pwm/rest/projects/dueBy/[AuthenticationKey]?key1=value1&key2=value2&keyn=valuen
Important
  • This web service uses a GET method.
  • Respect upper/lower case for parameters.
You can use all the following parameters :
  • states: a list of states ex: 0 or 0,1,2,3
  • before: a number, 7 by default
  • after: a number, 7 by default
  • unit: a time unit, 3 for days (default), 2 for hours, 1 for minutes
  • personal:
    • null/absent : will take both.
    • true : will take only personal project.
    • false : will take only standard project.

Example (using GET method): http://localhost:8080/pwm/rest/projects/dueBy/418664024?states=0,1,3

If you succeed in your call, HTTP return code wille be 200 and the answer body will be a JSON object.

If you failed in your call, HTTP return code wille be 303 and the answer body will be a JSON object.

 Projects Web Service: : where user has a role


http://[ServerName]:[ServerPort]/pwm/rest/projects/assignedTo/[AuthenticationKey]?key1=value1&key2=value2&keyn=valuen
Important
  • This web service uses a GET method.
  • Respect upper/lower case for parameters.
You can use all the following parameters :
  • states: a list of states ex: 0 or 0,1,2,3
  • supposedStartDateStart
  • supposedStartDateEnd
  • supposedEndDateStart
  • supposedEndDateEnd
  • dateFormat : see SimpleDateFormat
  • personal:
    • null/absent : will take both.
    • true : will take only personal project.
    • false : will take only standard project.

Example (using GET method): http://localhost:8080/pwm/rest/projects/assignedTo/418664024?states=0,3

If you succeed in your call, HTTP return code wille be 200 and the answer body will be a JSON object.

If you failed in your call, HTTP return code wille be 303 and the answer body will be a JSON object.

 Tasks Web Service

Before calling this web service you must have an authentication key.

The web services for tasks are all under the root URL /tasks:
  • http://[ServerName]:[ServerPort]/pwm/rest/tasks/view/[AuthenticationKey]/[TaskId] : if you want to see a task
  • http://[ServerName]:[ServerPort]/pwm/rest/tasks/search/[AuthenticationKey]?key1=value1&key2=value2&keyn=valuen : if you want to search among tasks using criteria
  • http://[ServerName]:[ServerPort]/pwm/rest/tasks/create/[AuthenticationKey]?key1=value1&key2=value2&keyn=valuen : if you want to create a task
  • http://[ServerName]:[ServerPort]/pwm/rest/tasks/update/[AuthenticationKey]/[TaskId]?key1=value1&key2=value2&keyn=valuen : if you want to update a task
  • http://[ServerName]:[ServerPort]/pwm/rest/tasks/dueBy/[AuthenticationKey]?key1=value1&key2=value2&keyn=valuen : if you want to see all due tasks
  • http://[ServerName]:[ServerPort]/pwm/rest/tasks/assignedTo/[AuthenticationKey]?key1=value1&key2=value2&keyn=valuen : if you want to see all tasks assigned to user
  • ServerName : is the server name or IP address
  • ServerPort : is the server port number (may be optional depending on the configuration)
  • AuthenticationKey : is key obtain with the authentication service
  • TaskId: is the task id you are interested in
  • keyX: name of a paramter, caution to upper/lower case.
  • valueX: value linked with parameter keyX

 Tasks Web Service: View


http://[ServerName]:[ServerPort]/pwm/rest/tasks/view/[AuthenticationKey]/[TaskId]
Important This web service uses a GET method.

Example (using GET method): http://localhost:8080/pwm/rest/tasks/view/190772752/5

If you succeed in your call, HTTP return code wille be 200 and the answer body will be a JSON object :

If you failed in your call, HTTP return code wille be 303 and the answer body will be a JSON object.

 Tasks Web Service: Search


http://[ServerName]:[ServerPort]/pwm/rest/tasks/search/[AuthenticationKey]?key1=value1&key2=value2&keyn=valuen
Important
  • This web service uses a GET method.
  • Respect upper/lower case for parameters.
You can use all the following parameters :
  • state
    • 0 meaning task is available. No one started it yet, it's a brand new one.
    • 1 meaning task is disabled.
    • 2 meaning task is deleted. It won't be visible in Gantt.
    • 3 meaning task is started. Someone started to work on this task.
    • 4 meaning task is ended. No more work to do on this one.
    • 5 meaning task is paused. In this state you can change timeline and completion
    • 6 meaning task is cancelled. This one will not be done.
  • label
  • description
  • priorityStart
  • priorityEnd
  • authorId
  • assignedId
  • projectId
  • personal: accept,only,reject
  • type

Example (using GET method): http://localhost:8080/pwm/rest/tasks/search/188688276?state=1&personal=reject

If you succeed in your call, HTTP return code wille be 200 and the answer body will be a JSON object :

If you failed in your call, HTTP return code wille be 303 and the answer body will be a JSON object.

 Tasks Web Service: Create


http://[ServerName]:[ServerPort]/pwm/rest/tasks/create/[AuthenticationKey]?key1=value1&key2=value2&keyn=valuen
Important
  • This web service uses a PUT method.
  • Respect upper/lower case for parameters.
You must specify values for the following parameters:
  • label
  • authorId
  • assignedToId
  • projectId
  • supposedEndDate
  • supposedStartDate
You can complete using the following parameters:
  • motherTaskId
  • completion
  • description
  • priority
  • internalId
  • estimatedTime
  • supposedDateFormat : see SimpleDateFormat
  • isPersonal
  • type
  • sendEvent
  • supposedCost
  • finalCost

Example (using PUT method): http://localhost:8080/pwm/rest/tasks/create/188688276?label=Exemple de tache&projectId=1&assignedId=1&authorId=1&supposedStartDate=20/01/2015&supposedEndDate=10/03/2015&supposedDateFormat=dd/MM/yyyy

If you succeed in your call, HTTP return code wille be 200 and the answer body will be a JSON object :

If you failed in your call, HTTP return code wille be 303 and the answer body will be a JSON object.

 Tasks Web Service: Update


http://[ServerName]:[ServerPort]/pwm/rest/tasks/update/[AuthenticationKey]/[TaskId]?key1=value1&key2=value2&keyn=valuen
Important
  • This web service uses a PUT method.
  • Respect upper/lower case for parameters.
You can use all the following parameters :
  • assignedToId
  • projectId
  • motherTaskId
  • completion
  • description
  • label
  • priority
  • state
    • 0 meaning task is available. No one started it yet, it's a brand new one.
    • 1 meaning task is disabled.
    • 2 meaning task is deleted. It won't be visible in Gantt.
    • 3 meaning task is started. Someone started to work on this task.
    • 4 meaning task is ended. No more work to do on this one.
    • 5 meaning task is paused. In this state you can change timeline and completion
    • 6 meaning task is cancelled. This one will not be done.
  • internalId
  • estimatedTime
  • supposedDateFormat : see SimpleDateFormat
  • supposedEndDate
  • supposedStartDate
  • isPersonal
  • type
  • sendEvent
  • supposedCost
  • finalCost
  • comment: a new comment that will be added to others
  • timeLineMap: the time line (respecting timeline format)

Example (using PUT method): http://localhost:8080/pwm/rest/tasks/update/418664024/687?state=3&completion=20

If you succeed in your call, HTTP return code wille be 200 and the answer body will be a JSON object :

If you failed in your call, HTTP return code wille be 303 and the answer body will be a JSON object.

 Tasks Web Service: due


http://[ServerName]:[ServerPort]/pwm/rest/tasks/dueBy/[AuthenticationKey]?key1=value1&key2=value2&keyn=valuen
Important
  • This web service uses a GET method.
  • Respect upper/lower case for parameters.
You can use all the following parameters :
  • states: a list of states ex: 0 or 0,1,2,3
  • before: a number, 7 by default
  • after: a number, 7 by default
  • unit: a time unit, 3 for days (default), 2 for hours, 1 for minutes
  • personal:
    • null/absent : will take both.
    • true : will take only personal task.
    • false : will take only standard task.

Example (using GET method): http://localhost:8080/pwm/rest/tasks/dueBy/418664024?states=0,1,3

If you succeed in your call, HTTP return code wille be 200 and the answer body will be a JSON object.

If you failed in your call, HTTP return code wille be 303 and the answer body will be a JSON object.

 Tasks Web Service: assignées


http://[ServerName]:[ServerPort]/pwm/rest/tasks/assignedTo/[AuthenticationKey]?key1=value1&key2=value2&keyn=valuen
Important
  • This web service uses a GET method.
  • Respect upper/lower case for parameters.
You can use all the following parameters :
  • states: a list of states ex: 0 or 0,1,2,3
  • supposedStartDateStart
  • supposedStartDateEnd
  • supposedEndDateStart
  • supposedEndDateEnd
  • dateFormat : see SimpleDateFormat
  • personal:
    • null/absent : will take both.
    • true : will take only personal task.
    • false : will take only standard task.

Example (using GET method): http://localhost:8080/pwm/rest/tasks/assignedTo/418664024?states=0,3

If you succeed in your call, HTTP return code wille be 200 and the answer body will be a JSON object.

If you failed in your call, HTTP return code wille be 303 and the answer body will be a JSON object.