DaCE data-centric workflow engine¶
Dace is a data-centric workflow engine. It enables the definition and execution of complex processes and the definition of objects of collaboration. In DaCE the rights management is based on the definition of roles.
It is licensed under a AGPLv3+ license.
Here is one of the simplest DaCE process you can make:
from dace.definition.processdef import ProcessDefinition
from dace.definition.activitydef import ActivityDefinition
from dace.definition.transitiondef import TransitionDefinition
from dace.definition.eventdef import (
StartEventDefinition,
EndEventDefinition)
from dace.model.services.processdef_container import (
process_definition)
from .behaviors import (
MyBehavior,
)
@process_definition(
id='myprocessid',
title='My process')
class MyProcess(ProcessDefinition):
def init_definition(self):
# define process nodes
self.define_nodes(
# start node: the beginning of the process
start=StartEventDefinition(),
# hello node
hello=ActivityDefinition(
# MyBehavior is the behavior to execute
# when the node is called
behaviors=[MyBehavior],
description='Hello behavior',
title='Hello!'),
# end node: the ending of the process
end=EndEventDefinition(),
)
# define transitions between process nodes
self.define_transitions(
TransitionDefinition('start', 'hello'),
TransitionDefinition('hello', 'end'),
)
Getting Started¶
If you are new to DaCE, we have a few resources that can help you get up to speed right away.
- Quick Tour of DaCE gives an overview of the major features in DaCE, covering a little about a lot.
- Quick Tutorial for DaCE is similar to the Quick Tour, but in a tutorial format, with somewhat deeper treatment of each topic and with working code.
- For help getting DaCE set up, try Installing DaCE.
- Need help? See Support and Development.
Tutorials¶
Official tutorials explaining how to use Dace to build various processes, and how to connect Dace processes to various applications.
Support and Development¶
To report bugs, use the issue tracker.
Browse and check out tagged and trunk versions of Dace via the DaCE GitHub repository. To check out the trunk via git, use either command:
# If you have SSH keys configured on GitHub:
git clone git@github.com:ecreall/dace.git
# Otherwise, HTTPS will work, using your GitHub login:
git clone https://github.com/ecreall/dace.git
Narrative Documentation¶
Narrative documentation in chapter form explaining how to use Dace.
API Documentation¶
Comprehensive reference material for every public API exposed by Dace: