External Task Providers¶
Kanboard can be used to manage tasks stored in another system. For example, an external system can be a bug tracker or any kind of ticketing software. In this way, you can use Kanboard to manage external tasks in the same way as native tasks.
Workflow¶
Creation:
The end-user select an alternative task provider during the task creation
The external task provider expose a form to the user to be able to fetch the external task
The external task is retrieved from the other system
A customized form is shown to the user
Visualization:
When the task detail page is opened, Kanboard will load asynchronously the remote task. This information might be cached by the plugin to improve the loading time.
Modification:
Optionally, the plugin can offer a custom form to save extra information to the external system.
Interfaces¶
External task providers must implements at least two interfaces:
Kanboard\Core\ExternalTask\ExternalTaskProviderInterface
Kanboard\Core\ExternalTask\ExternalTaskInterface
ExternalTaskProviderInterface¶
Method |
Usage |
---|---|
|
Get provider name (label) |
|
Retrieve task from external system or cache |
|
Save external task to another system |
|
Get task import template name |
|
Get creation form template |
|
Get modification form template |
|
Get task view template name |
|
Build external task URI based on import form values |
ExternalTaskInterface¶
Method |
Usage |
---|---|
|
Return Uniform Resource Identifier for the task |
|
Return a dict to populate the task form |
Exceptions¶
The plugin may raise an exception if something goes wrong:
Kanboard\Core\ExternalTask\ExternalTaskException
: Generic error related to the external systemKanboard\Core\ExternalTask\AccessForbiddenException
: Access not allowed by the external systemKanboard\Core\ExternalTask\NotFoundException
: External task not found
Provider Registration¶
class Plugin extends Base
{
public function initialize()
{
$this->externalTaskManager->register(new MyExternalTaskProvider());
}
}