예제 #1
0
def register() -> Plugin:
    return Plugin(
        start=False,
        spec=Spec(
            module='app.process_engine.action.v1.traits.delete_trait_action',
            className='DeleteTraitAction',
            inputs=['payload'],
            outputs=["payload"],
            init={"delete": [
                "payload@undefied",
                "profile@undefined",
            ]},
            version='0.1',
            license="MIT",
            author="Risto Kowaczewski"),
        metadata=MetaData(
            name='Delete Trait',
            desc=
            'Deletes traits from profile or payload. Accepts dotted notation as definition of a filed to be '
            'deleted. Returns payload.',
            type='flowNode',
            width=100,
            height=100,
            icon='remove',
            group=["Traits"]))
예제 #2
0
def register() -> Plugin:
    return Plugin(
        start=False,
        spec=Spec(
            module='app.process_engine.action.v1.traits.copy_trait_action',
            className='CopyTraitAction',
            inputs=['payload'],
            outputs=["payload"],
            init={
                "copy": {
                    "target1": "source1",
                    "target2": "source2",
                }
            },
            version='0.1',
            license="MIT",
            author="Risto Kowaczewski"
        ),
        metadata=MetaData(
            name='Copy/Set Trait',
            desc='Returns payload with copied/set traits.',
            type='flowNode',
            width=100,
            height=100,
            icon='copy',
            group=["Traits"]
        )
    )
예제 #3
0
def register() -> Plugin:
    return Plugin(
        start=False,
        spec=Spec(
            module='app.process_engine.action.v1.new_profile_action',
            className='NewProfileAction',
            inputs=["void"],
            outputs=['TRUE', 'FALSE'],
            init=None,
            manual="new_profile_action",
            version='0.1',
            license="MIT",
            author="Risto Kowaczewski"
        ),
        metadata=MetaData(
            name='New profile',
            desc='If new profile then it returns true on TRUE output, otherwise returns false on FALSE port.',
            keywords=['condition'],
            type='flowNode',
            width=200,
            height=100,
            icon='question',
            group=["Processing"]
        )
    )
예제 #4
0
def register() -> Plugin:
    return Plugin(
        start=False,
        debug=False,
        spec=Spec(
            module='app.process_engine.action.v1.detect_client_agent_action',
            className='DetectClientAgentAction',
            inputs=["void"],
            outputs=["client-info"],
            init=None,
            manual="detect_client_agent_action",
            version='0.1',
            license="MIT",
            author="Risto Kowaczewski"),
        metadata=MetaData(
            name='Get client agent',
            desc=
            'It will parse any user agent and detect the browser, operating system, device used (desktop, '
            'tablet, mobile, tv, cars, console, etc.), brand and model. It detects thousands '
            'of user agent strings, even from rare and obscure browsers and devices. It returns an object containing '
            'all the information',
            type='flowNode',
            width=100,
            height=100,
            icon='browser',
            group=["Processing"]))
예제 #5
0
def register() -> Plugin:
    return Plugin(
        start=False,
        spec=Spec(
            module='app.process_engine.action.v1.if_action',
            className='IfAction',
            inputs=["payload"],
            outputs=["TRUE", "FALSE"],
            init={"condition": "please-configure-condition"},
            manual="if_action",
            version='0.1',
            license="MIT",
            author="Risto Kowaczewski"
        ),
        metadata=MetaData(
            name='If',
            desc='This a conditional action that conditionally runs a branch of workflow.',
            keywords=['condition'],
            type='flowNode',
            width=200,
            height=100,
            icon='if',
            editor='text',
            group=['Processing']
        )
    )
예제 #6
0
def register() -> Plugin:
    return Plugin(
        start=True,
        debug=True,
        spec=Spec(module='app.process_engine.action.v1.debug_payload_action',
                  className='DebugPayloadAction',
                  inputs=[],
                  outputs=["event"],
                  init={"event": {
                      "id": "undefined",
                  }},
                  version='0.1',
                  license="MIT",
                  author="Risto Kowaczewski"),
        metadata=MetaData(
            name='Debug',
            desc=
            'Loads debug payload into flow. This action is executed only in debug mode. '
            +
            'Use it to inject payload defined it config to analyse you workflow.',
            keywords=['start node'],
            type='flowNode',
            width=100,
            height=100,
            icon='debug',
            group=["Input/Output"]))
예제 #7
0
 def decode(self) -> Spec:
     return Spec(
         className=self.className,
         module=self.module,
         inputs=self.inputs,
         outputs=self.outputs,
         init=decrypt(self.init),
         manual=self.manual
     )
예제 #8
0
def register() -> Plugin:
    return Plugin(spec=Spec(module='task_plugins.debug.debug_plugin',
                            className='DebugPlugin',
                            inputs=[],
                            outputs=["payload"]),
                  metadata=MetaData(
                      name='Debug',
                      desc='Logs payload for debugging purposes.',
                      type='flowNode',
                      width=100,
                      height=100,
                      icon='debug'))
예제 #9
0
def register() -> Plugin:
    return Plugin(start=False,
                  spec=Spec(module='app.process_engine.action.v1.end_action',
                            className='EndAction',
                            inputs=["void"],
                            outputs=[],
                            version='0.1',
                            license="MIT",
                            author="Risto Kowaczewski"),
                  metadata=MetaData(name='End',
                                    desc='Ends workflow.',
                                    type='flowNode',
                                    width=100,
                                    height=100,
                                    icon='stop',
                                    group=["Input/Output"]))
예제 #10
0
def register() -> Plugin:
    return Plugin(
        spec=Spec(
            module='task_plugins.payload.payload_plugin',
            className='PayloadPlugin',
            inputs=[],
            outputs=["payload"]
        ),
        metadata=MetaData(
            name='Start',
            desc='Loads payload into flow.',
            type='flowNode',
            width=100,
            height=100,
            icon='payload'
        )
    )
예제 #11
0
def register() -> Plugin:
    return Plugin(
        start=False,
        spec=Spec(
            module=
            'app.process_engine.action.v1.operations.update_profile_action',
            className='UpdateProfileAction',
            inputs=["void"],
            outputs=[],
            init=None,
            manual="update_profile_action"),
        metadata=MetaData(name='Update profile',
                          desc='Updates profile in storage.',
                          type='flowNode',
                          width=200,
                          height=100,
                          icon='store',
                          group=["Operations"]))
예제 #12
0
def register() -> Plugin:
    return Plugin(
        start=False,
        spec=Spec(
            module='app.process_engine.action.v1.traits.cut_out_trait_action',
            className='CutOutTraitAction',
            inputs=['payload'],
            outputs=["trait"],
            init={"trait": "undefined"},
            version='0.1',
            license="MIT",
            author="Risto Kowaczewski"),
        metadata=MetaData(name='Cut out trait',
                          desc='Returns defined property from payload.',
                          type='flowNode',
                          width=200,
                          height=100,
                          icon='property',
                          group=["Traits"]))
예제 #13
0
def register() -> Plugin:
    return Plugin(
        start=False,
        spec=Spec(module='app.process_engine.action.v1.read_session_action',
                  className='ReadSessionAction',
                  inputs=["void"],
                  outputs=['session'],
                  init=None,
                  manual="read_session_action",
                  version='0.1',
                  license="MIT",
                  author="Risto Kowaczewski"),
        metadata=MetaData(name='Read session',
                          desc='Loads session data and returns it.',
                          type='flowNode',
                          width=200,
                          height=100,
                          icon='json',
                          group=["Read"]))
예제 #14
0
def register() -> Plugin:
    return Plugin(start=False,
                  debug=False,
                  spec=Spec(
                      module='app.process_engine.action.v1.read_event_action',
                      className='ReadEventAction',
                      inputs=['void'],
                      outputs=["event"],
                      init=None,
                      version='0.1',
                      license="MIT",
                      author="Risto Kowaczewski"),
                  metadata=MetaData(name='Read event',
                                    desc='Loads event into workflow.',
                                    type='flowNode',
                                    width=200,
                                    height=100,
                                    icon='event',
                                    group=["Read"]))
예제 #15
0
def register() -> Plugin:
    return Plugin(
        start=False,
        spec=Spec(module='app.process_engine.action.remote_call_action',
                  className='RemoteCallAction',
                  inputs=['payload'],
                  outputs=["response", "error"],
                  init={
                      "method": "undefined",
                      "url": "undefined",
                      "payloadIn": "body|params"
                  },
                  manual="remote_call_action"),
        metadata=MetaData(name='Remote call',
                          desc='Sends request to remote API endpoint.',
                          type='flowNode',
                          width=200,
                          height=100,
                          icon='cloud',
                          group=["Integration"]))
예제 #16
0
def register() -> Plugin:
    return Plugin(start=True,
                  debug=False,
                  spec=Spec(module='app.process_engine.action.v1.start_action',
                            className='StartAction',
                            inputs=["void"],
                            outputs=["payload"],
                            init=None,
                            version='0.1',
                            license="MIT",
                            author="Risto Kowaczewski"),
                  metadata=MetaData(
                      name='Start',
                      desc='Starts workflow and returns empty payload.',
                      type='flowNode',
                      keywords=['start node'],
                      width=200,
                      height=100,
                      icon='start',
                      group=["Input/Output"]))
예제 #17
0
def register() -> Plugin:
    return Plugin(
        start=False,
        spec=Spec(module='app.process_engine.action.v1.increase_views_action',
                  className='IncreaseViewsAction',
                  inputs=["payload"],
                  outputs=['payload'],
                  init=None,
                  manual="increase_views_action",
                  version='0.1',
                  license="MIT",
                  author="Risto Kowaczewski"),
        metadata=MetaData(
            name='Increase views',
            desc='Increases view field in profile and returns profile.',
            type='flowNode',
            width=200,
            height=100,
            icon='plus',
            group=["Stats"]))
예제 #18
0
def register() -> Plugin:
    return Plugin(
        start=False,
        spec=Spec(
            module=
            'app.process_engine.action.v1.operations.segment_profile_action',
            className='SegmentProfileAction',
            inputs=["void"],
            outputs=["void"],
            init=None,
            manual="segment_profiles_action"),
        metadata=MetaData(
            name='Segment profile',
            desc=
            'Segment profile when flow ends.This action forces segmentation on profile after flow ends. See '
            'documentation for more information.',
            type='flowNode',
            width=200,
            height=100,
            icon='segment',
            group=["Operations"]))
예제 #19
0
def register() -> Plugin:
    return Plugin(
        start=False,
        spec=Spec(
            module=
            'app.process_engine.action.v1.operations.merge_profiles_action',
            className='MergeProfilesAction',
            inputs=["void"],
            outputs=["void"],
            init={"mergeBy": []},
            manual="merge_profiles_action"),
        metadata=MetaData(
            name='Merge profiles',
            desc=
            'Merges profile in storage when flow ends. This operation is expensive so use it with caution, '
            'only where this is new PII information added.',
            type='flowNode',
            width=200,
            height=100,
            icon='merge',
            group=["Operations"]))
예제 #20
0
def register() -> Plugin:
    return Plugin(start=True,
                  debug=True,
                  spec=Spec(
                      module='app.process_engine.action.v1.inject_action',
                      className='InjectAction',
                      inputs=[],
                      outputs=["value"],
                      init={"inject": {}},
                      manual='inject_action',
                      version='0.1',
                      license="MIT",
                      author="Risto Kowaczewski"),
                  metadata=MetaData(name='Inject',
                                    desc='Injector.',
                                    keywords=['start node'],
                                    type='flowNode',
                                    width=100,
                                    height=100,
                                    icon='json',
                                    group=["Input/Output"]))
예제 #21
0
def register() -> Plugin:
    return Plugin(
        start=False,
        debug=False,
        spec=Spec(module='app.process_engine.action.v1.join_action',
                  className='JoinAction',
                  inputs=["payload"],
                  outputs=["payload"],
                  init=None,
                  version='0.1',
                  license="MIT",
                  author="Risto Kowaczewski"),
        metadata=MetaData(
            name='Join',
            desc=
            'This action waits for previous actions to finish working. It passes payload '
            'it recevied without any modifications.',
            type='flowNode',
            width=100,
            height=100,
            icon='join',
            group=["Flow"]))
예제 #22
0
def register() -> Plugin:
    return Plugin(
        start=False,
        spec=Spec(
            module='app.process_engine.action.new_event_action',
            className='NewEventAction',
            inputs=["payload"],
            outputs=['result'],
            init={
                "event": {"type": "undefined", "properties": "undefined"}
            },
            manual="new_event_action"
        ),
        metadata=MetaData(
            name='New event',
            desc='Raises new event with defined properties. Please define event type and event properties in configuration tab.',
            type='flowNode',
            width=200,
            height=100,
            icon='event'
        )
    )
예제 #23
0
def register() -> Plugin:
    return Plugin(
        start=False,
        spec=Spec(module='app.process_engine.action.v1.increment_action',
                  className='IncrementAction',
                  inputs=["payload"],
                  outputs=['payload'],
                  init={
                      "field": None,
                      "increment": 1
                  },
                  manual="increment_action",
                  version='0.1',
                  license="MIT",
                  author="Risto Kowaczewski"),
        metadata=MetaData(
            name='Increment counter',
            desc='Increment profile stats.counters value. Returns payload',
            type='flowNode',
            width=200,
            height=100,
            icon='plus',
            group=["Stats"]))
예제 #24
0
def register() -> Plugin:
    return Plugin(
        start=False,
        spec=Spec(
            module='app.process_engine.action.v1.traits.append_trait_action',
            className='AppendTraitAction',
            inputs=['payload'],
            outputs=["payload"],
            init={"append": {
                "target1": "source1",
                "target2": "source2",
            }},
            version='0.1',
            license="MIT",
            author="Risto Kowaczewski"),
        metadata=MetaData(
            name='Append Trait',
            desc=
            'Appends trait if it a value already exists or sets trait if it does not.',
            type='flowNode',
            width=100,
            height=100,
            icon='append',
            group=["Traits"]))