Git Product home page Git Product logo

automaticmode / active_workflow Goto Github PK

View Code? Open in Web Editor NEW
795.0 23.0 65.0 12.22 MB

Polyglot workflows without leaving the comfort of your technology stack.

Home Page: https://www.activeworkflow.org

License: Other

Dockerfile 0.03% Ruby 80.79% Makefile 0.02% JavaScript 4.88% HTML 10.16% Shell 0.43% SCSS 3.13% CSS 0.54% Procfile 0.01%
orchestration-framework scheduling workflow event-driven ifttt scheduler services-platform data-engineering data-ops activeworkflow

active_workflow's Introduction


Turn complex requirements to workflows
without leaving the comfort of your technology stack


GitHub GitHub GitHub release (latest by date) GitHub release (latest by date)

About

ActiveWorkflow works alongside your existing technology stack to give you an easy and structured way to:

  • Group business logic for periodic execution—for example, to generate and distribute a weekly PDF report.
  • Poll resources—for example, to check if a file has become available on S3.
  • Orchestrate event-driven functionality—for example, to trigger a customised email campaign in reaction to a pattern of user behaviour.

You can do all of the above by creating, scheduling, and monitoring workflows of agents, which are self-contained services (or microservices) written in any programming language you choose. ActiveWorkflow as a platform gives you a simple way for connecting your agents (services), extensive logging, state management, and a foundation to build a scalable and reliable system without vendor lock-in.

ActiveWorkflow is not a no-code platform, but it does offer a fully featured UI so that both software engineers and other stakeholders can manage and monitor workflows.

Periodic Execution ◆ Polling ◆ Orchestration

Screenshot of ActiveWorkflow

Getting Started

See the Getting Started documentation page for full details.

If you are in a hurry and wish to take a sneak peek, you can try ActiveWorkflow in one of the following ways.

Try it with Docker

docker run -p 3000:3000 --rm automaticmode/active_workflow

Once it starts you can login at http://localhost:3000 with admin/password.

Documentation

You can find the full project documentation at docs.activeworkflow.org.

Screenshot of documentation

Acknowledgements

ActiveWorkflow started as a fork of Huginn with the goal of targeting solely business use, API and polyglot functionality, and a smaller codebase. ActiveWorkflow is incompatible with Huginn.

License

ActiveWorkflow is released under the MIT License.

active_workflow's People

Contributors

ipweblab avatar raspberry-lef avatar vidas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

active_workflow's Issues

TCP Timeout for Remote Agents / Async HTTP

Hey everyone,

I am running into TCP timeouts with remote agents that take some time to finish. I have raised the RACK_TIMEOUT_SERVICE_TIMEOUT setting in .env with no luck.
On the remote agent side, I tried to enable async http, again no luck (active workflow will error out with Net::ReadTimeout with #<TCPSocket:(closed)>

I assume the relevant error output is:

/app/vendor/bundle/ruby/2.6.0/gems/faraday-0.17.3/lib/faraday/connection.rb:175:in `post'
/app/vendor/bundle/ruby/2.6.0/gems/faraday-0.17.3/lib/faraday.rb:102:in `method_missing'
/app/lib/remote_agents.rb:96:in `perform_request'
/app/lib/remote_agents.rb:108:in `remote_action'
/app/lib/remote_agents.rb:55:in `receive'

Any ideas on how to solve this?
Cheers, Marcel

Send array in Post Agent

Hey all,

I was wondering how I can send a JSON array using a Post Agent? I can send a JSON object just fine, but an API I'm working with only accepts an array.

Thanks!

How to use credentials?

Hey all,
very simple question here: how do I refer to stored credentials in an Agent's options?

Best regards,
Markus

Application freezes when run with docker-compose since v0.9.9

Hey,
I realised that instances of ActiveWorkflow that I installed after the v0.9.9 update are not working properly. My environment is d
Docker-based, I built the v0.9.9 image and created the deployment from scratch with the new v0.9.9 docker-compose.yml an .env files.
AW starts alright but if run with SINGLE_DYNO = 1 seems to run into 2+ minute freezes very frequently. See logs (1) and(2) below for output.
If I uncomment the SINGLE_DYNO line from the docker-compose.yml file and restart, there are no such freezes and no abnormalities in the logs as far as I can tell but message propagation does not work anymore at all.

Instances set up with version 0.9.7 don't seem to encounter these problems
Is there something off with the basic settings for Docker deployment in v0.9.9?

Best,
Markus

Logs

(1) startup produces a bunch of log messages, see the 2+ min delay at the end. I cut out ~50 lines of the same message with the same timestamp each where there are "..."

active_workflow_1  | 17:29:57 worker.1    | 2020-08-30T10:29:57-0700: [Worker(delayed_job.0 host:82cd6c4e3049 pid:31)] Starting job worker
active_workflow_1  | 17:29:57 web.1       | [29] * Listening on tcp://0.0.0.0:3000
active_workflow_1  | 17:29:57 web.1       | [29] ! WARNING: Detected 2 Thread(s) started in app boot:
active_workflow_1  | 17:29:57 web.1       | [29] ! #<Thread:0x000055f81fbdb808@/app/vendor/bundle/ruby/2.6.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/atomic/ruby_thread_local_var.rb:38 sleep_forever> - /app/vendor/bundle/ruby/2.6.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/atomic/ruby_thread_local_var.rb:40:in `pop'
active_workflow_1  | 17:29:57 web.1       | [29] ! #<Thread:0x000055f821ef34f8@/app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:334 sleep> - /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:337:in `sleep'
active_workflow_1  | 17:29:57 web.1       | [29] Use Ctrl-C to stop
active_workflow_1  | 17:29:57 web.1       | [29] - Worker 0 (pid: 64) booted, phase: 0
active_workflow_1  | 17:32:18 scheduler.1 | Starting scheduler
active_workflow_1  | 17:32:18 scheduler.1 | Queuing message propagation
active_workflow_1  | 17:32:18 scheduler.1 | Queuing message propagation
active_workflow_1  | 17:32:18 scheduler.1 | Queuing message propagation
active_workflow_1  | 17:32:18 scheduler.1 | Queuing message propagation
active_workflow_1  | 17:32:18 scheduler.1 | Queuing message propagation
active_workflow_1  | 17:32:18 scheduler.1 | Queuing message propagation
active_workflow_1  | 17:32:18 scheduler.1 | Queuing message propagation
active_workflow_1  | 17:32:18 scheduler.1 | Queuing schedule for every_1m
active_workflow_1  | 17:32:18 scheduler.1 | Queuing schedule for every_2m
active_workflow_1  | 17:32:18 scheduler.1 | Queuing schedule for every_5m
active_workflow_1  | 17:32:18 scheduler.1 | Queuing schedule for every_10m
active_workflow_1  | 17:32:18 scheduler.1 | Queuing schedule for every_30m
active_workflow_1  | 17:32:18 scheduler.1 | Queuing message propagation
active_workflow_1  | 17:32:18 scheduler.1 | Queuing message propagation
...
active_workflow_1  | 17:32:18 scheduler.1 | Queuing message propagation
active_workflow_1  | 17:32:18 scheduler.1 | Queuing message propagation
active_workflow_1  | 17:32:18 scheduler.1 | Queuing schedule for every_1m
active_workflow_1  | 17:32:18 scheduler.1 | Queuing message propagation
active_workflow_1  | 17:32:18 scheduler.1 | Queuing message propagation
...
active_workflow_1  | 17:32:18 scheduler.1 | Queuing message propagation
active_workflow_1  | 17:32:18 scheduler.1 | Queuing schedule for every_1m
active_workflow_1  | 17:32:18 scheduler.1 | Queuing schedule for every_2m
active_workflow_1  | 17:32:18 scheduler.1 | Queuing message propagation
...
active_workflow_1  | 17:32:18 scheduler.1 | Queuing message propagation
active_workflow_1  | 17:32:18 scheduler.1 | Queuing message propagation
active_workflow_1  | 17:34:41 scheduler.1 | Queuing message propagation

After the 2+ min freeze, AW webinterface resumes normal operation and logs blurt out all of the following at once:

logs2.txt

Updating Remote Agent information/description

Hey,
I noticed that when updating a Remote Agent's description, the AW main application does not pull updated name, description, etc. Is it possible to manually trigger an update, clearing caches or something?

Best regards,
Markus

SMTP configuration

Hi, I'm not able to get a working smtp configuration for outgoing mails.

I'm using the docker-compose.yml and .env files from the repo with the following smtp configuration:

# Mail configuration.
SMTP_DOMAIN=mydomain.de
SMTP_SERVER=smtp.gmail.com
SMTP_PASSWORD=mypasswd
[email protected]
SMTP_PORT=587
SMTP_SSL=true

# You may need this for some servers
SMTP_ENABLE_STARTTLS_AUTO: true
# Don't disable openssl verification on production!
SMTP_OPENSSL_VERIFY_MODE: peer

But I'm facing this error:

SSL_connect returned=1 errno=0 state=error: wrong version number
/usr/local/lib/ruby/2.6.0/net/protocol.rb:44:in `connect_nonblock'
/usr/local/lib/ruby/2.6.0/net/protocol.rb:44:in `ssl_socket_connect'
/usr/local/lib/ruby/2.6.0/net/smtp.rb:584:in `tlsconnect'
/usr/local/lib/ruby/2.6.0/net/smtp.rb:552:in `do_start'
/usr/local/lib/ruby/2.6.0/net/smtp.rb:518:in `start'
/app/vendor/bundle/ruby/2.6.0/gems/mail-2.7.1/lib/mail/network/delivery_methods/smtp.rb:109:in `start_smtp_session'
/app/vendor/bundle/ruby/2.6.0/gems/mail-2.7.1/lib/mail/network/delivery_methods/smtp.rb:100:in `deliver!'
/app/vendor/bundle/ruby/2.6.0/gems/mail-2.7.1/lib/mail/message.rb:2159:in `do_delivery'
/app/vendor/bundle/ruby/2.6.0/gems/mail-2.7.1/lib/mail/message.rb:260:in `block in deliver'
/app/vendor/bundle/ruby/2.6.0/gems/actionmailer-6.0.5.1/lib/action_mailer/base.rb:589:in `block in deliver_mail'
/app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.5.1/lib/active_support/notifications.rb:180:in `block in instrument'
/app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.5.1/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
/app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.5.1/lib/active_support/notifications.rb:180:in `instrument'
/app/vendor/bundle/ruby/2.6.0/gems/actionmailer-6.0.5.1/lib/action_mailer/base.rb:587:in `deliver_mail'
/app/vendor/bundle/ruby/2.6.0/gems/mail-2.7.1/lib/mail/message.rb:260:in `deliver'
/app/vendor/bundle/ruby/2.6.0/gems/actionmailer-6.0.5.1/lib/action_mailer/message_delivery.rb:115:in `block in deliver_now'
/app/vendor/bundle/ruby/2.6.0/gems/actionmailer-6.0.5.1/lib/action_mailer/rescuable.rb:17:in `handle_exceptions'
/app/vendor/bundle/ruby/2.6.0/gems/actionmailer-6.0.5.1/lib/action_mailer/message_delivery.rb:114:in `deliver_now'
/app/app/models/agents/email_agent.rb:53:in `block in receive'
/app/app/models/agents/email_agent.rb:43:in `each'
/app/app/models/agents/email_agent.rb:43:in `receive'
/app/app/jobs/agent_receive_job.rb:10:in `perform'
/app/vendor/bundle/ruby/2.6.0/gems/activejob-6.0.5.1/lib/active_job/execution.rb:40:in `block in perform_now'
/app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.5.1/lib/active_support/callbacks.rb:112:in `block in run_callbacks'
/app/vendor/bundle/ruby/2.6.0/gems/i18n-1.12.0/lib/i18n.rb:322:in `with_locale'
/app/vendor/bundle/ruby/2.6.0/gems/activejob-6.0.5.1/lib/active_job/translation.rb:9:in `block (2 levels) in <module:Translation>'
/app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.5.1/lib/active_support/callbacks.rb:121:in `instance_exec'
/app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.5.1/lib/active_support/callbacks.rb:121:in `block in run_callbacks'
/app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.5.1/lib/active_support/core_ext/time/zones.rb:66:in `use_zone'
/app/vendor/bundle/ruby/2.6.0/gems/activejob-6.0.5.1/lib/active_job/timezones.rb:9:in `block (2 levels) in <module:Timezones>'
/app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.5.1/lib/active_support/callbacks.rb:121:in `instance_exec'
/app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.5.1/lib/active_support/callbacks.rb:121:in `block in run_callbacks'
/app/vendor/bundle/ruby/2.6.0/gems/activejob-6.0.5.1/lib/active_job/logging.rb:25:in `block (4 levels) in <module:Logging>'
/app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.5.1/lib/active_support/notifications.rb:180:in `block in instrument'
/app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.5.1/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
/app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.5.1/lib/active_support/notifications.rb:180:in `instrument'
/app/vendor/bundle/ruby/2.6.0/gems/activejob-6.0.5.1/lib/active_job/logging.rb:24:in `block (3 levels) in <module:Logging>'
/app/vendor/bundle/ruby/2.6.0/gems/activejob-6.0.5.1/lib/active_job/logging.rb:45:in `block in tag_logger'
/app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.5.1/lib/active_support/tagged_logging.rb:80:in `block in tagged'
/app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.5.1/lib/active_support/tagged_logging.rb:28:in `tagged'
/app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.5.1/lib/active_support/tagged_logging.rb:80:in `tagged'
/app/vendor/bundle/ruby/2.6.0/gems/activejob-6.0.5.1/lib/active_job/logging.rb:45:in `tag_logger'
/app/vendor/bundle/ruby/2.6.0/gems/activejob-6.0.5.1/lib/active_job/logging.rb:21:in `block (2 levels) in <module:Logging>'
/app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.5.1/lib/active_support/callbacks.rb:121:in `instance_exec'
/app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.5.1/lib/active_support/callbacks.rb:121:in `block in run_callbacks'
/app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.5.1/lib/active_support/callbacks.rb:139:in `run_callbacks'
/app/vendor/bundle/ruby/2.6.0/gems/activejob-6.0.5.1/lib/active_job/execution.rb:39:in `perform_now'
/app/vendor/bundle/ruby/2.6.0/gems/activejob-6.0.5.1/lib/active_job/execution.rb:25:in `block in execute'
/app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.5.1/lib/active_support/callbacks.rb:112:in `block in run_callbacks'
/app/vendor/bundle/ruby/2.6.0/gems/activejob-6.0.5.1/lib/active_job/railtie.rb:43:in `block (4 levels) in <class:Railtie>'
/app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.5.1/lib/active_support/execution_wrapper.rb:91:in `wrap'
/app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.5.1/lib/active_support/reloader.rb:72:in `block in wrap'
/app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.5.1/lib/active_support/execution_wrapper.rb:91:in `wrap'
/app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.5.1/lib/active_support/reloader.rb:71:in `wrap'
/app/vendor/bundle/ruby/2.6.0/gems/activejob-6.0.5.1/lib/active_job/railtie.rb:42:in `block (3 levels) in <class:Railtie>'
/app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.5.1/lib/active_support/callbacks.rb:121:in `instance_exec'
/app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.5.1/lib/active_support/callbacks.rb:121:in `block in run_callbacks'
/app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.5.1/lib/active_support/callbacks.rb:139:in `run_callbacks'
/app/vendor/bundle/ruby/2.6.0/gems/activejob-6.0.5.1/lib/active_job/execution.rb:23:in `execute'
/app/vendor/bundle/ruby/2.6.0/gems/activejob-6.0.5.1/lib/active_job/queue_adapters/delayed_job_adapter.rb:42:in `perform'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/backend/base.rb:81:in `block in invoke_job'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/lifecycle.rb:61:in `block in initialize'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/lifecycle.rb:66:in `execute'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/lifecycle.rb:40:in `run_callbacks'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/backend/base.rb:78:in `invoke_job'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/worker.rb:230:in `block (2 levels) in run'
/usr/local/lib/ruby/2.6.0/timeout.rb:93:in `block in timeout'
/usr/local/lib/ruby/2.6.0/timeout.rb:103:in `timeout'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/worker.rb:230:in `block in run'
/usr/local/lib/ruby/2.6.0/benchmark.rb:308:in `realtime'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/worker.rb:229:in `run'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/worker.rb:312:in `block in reserve_and_run_one_job'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/lifecycle.rb:61:in `block in initialize'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/lifecycle.rb:66:in `execute'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/lifecycle.rb:40:in `run_callbacks'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/worker.rb:312:in `reserve_and_run_one_job'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/worker.rb:213:in `block in work_off'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/worker.rb:212:in `times'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/worker.rb:212:in `work_off'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/worker.rb:175:in `block (4 levels) in start'
/usr/local/lib/ruby/2.6.0/benchmark.rb:308:in `realtime'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/worker.rb:174:in `block (3 levels) in start'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/lifecycle.rb:61:in `block in initialize'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/lifecycle.rb:66:in `execute'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/lifecycle.rb:40:in `run_callbacks'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/worker.rb:173:in `block (2 levels) in start'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/worker.rb:172:in `loop'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/worker.rb:172:in `block in start'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/plugins/clear_locks.rb:7:in `block (2 levels) in <class:ClearLocks>'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/lifecycle.rb:79:in `block (2 levels) in add'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/lifecycle.rb:61:in `block in initialize'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/lifecycle.rb:79:in `block in add'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/lifecycle.rb:66:in `execute'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/lifecycle.rb:40:in `run_callbacks'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/worker.rb:171:in `start'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/command.rb:137:in `run'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/command.rb:125:in `block in run_process'
/app/vendor/bundle/ruby/2.6.0/gems/daemons-1.3.1/lib/daemons/application.rb:275:in `block in start_proc'
/app/vendor/bundle/ruby/2.6.0/gems/daemons-1.3.1/lib/daemons/application.rb:284:in `start_proc'
/app/vendor/bundle/ruby/2.6.0/gems/daemons-1.3.1/lib/daemons/application.rb:305:in `start'
/app/vendor/bundle/ruby/2.6.0/gems/daemons-1.3.1/lib/daemons/controller.rb:59:in `run'
/app/vendor/bundle/ruby/2.6.0/gems/daemons-1.3.1/lib/daemons.rb:199:in `block in run_proc'
/app/vendor/bundle/ruby/2.6.0/gems/daemons-1.3.1/lib/daemons/cmdline.rb:121:in `catch_exceptions'
/app/vendor/bundle/ruby/2.6.0/gems/daemons-1.3.1/lib/daemons.rb:198:in `run_proc'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/command.rb:123:in `run_process'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/command.rb:104:in `block in daemonize'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/command.rb:102:in `times'
/app/vendor/bundle/ruby/2.6.0/gems/delayed_job-4.1.8/lib/delayed/command.rb:102:in `daemonize'
script/delayed_job:5:in `<top (required)>'
/usr/local/bundle/gems/bundler-2.3.24/lib/bundler/cli/exec.rb:58:in `load'
/usr/local/bundle/gems/bundler-2.3.24/lib/bundler/cli/exec.rb:58:in `kernel_load'
/usr/local/bundle/gems/bundler-2.3.24/lib/bundler/cli/exec.rb:23:in `run'
/usr/local/bundle/gems/bundler-2.3.24/lib/bundler/cli.rb:486:in `exec'
/usr/local/bundle/gems/bundler-2.3.24/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/bundle/gems/bundler-2.3.24/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/bundle/gems/bundler-2.3.24/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
/usr/local/bundle/gems/bundler-2.3.24/lib/bundler/cli.rb:31:in `dispatch'
/usr/local/bundle/gems/bundler-2.3.24/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
/usr/local/bundle/gems/bundler-2.3.24/lib/bundler/cli.rb:25:in `start'
/usr/local/bundle/gems/bundler-2.3.24/exe/bundle:48:in `block in <top (required)>'
/usr/local/bundle/gems/bundler-2.3.24/lib/bundler/friendly_errors.rb:120:in `with_friendly_errors'
/usr/local/bundle/gems/bundler-2.3.24/exe/bundle:36:in `<top (required)>'
/usr/local/bundle/bin/bundle:23:in `load'
/usr/local/bundle/bin/bundle:23:in `<main>'

From what I understand this error has something to do with TLS-version, but the .env file does not specify a configuration option for TLS-version.

How to fix this?

Using alpine image

Hi! Just tried active_workflow on Heroku, and right now im starting to install it on my raspberry.

I was thinking of making a pull request for changing

services:
  postgres:
    image: postgres:9.5

to

services:
  postgres:
    image: postgres:9.5-alpine

Alpine is a small version of linux, it has some small differences with other distros, but at least for the database, the change should be transparent, and it consumes lot less space, ram, and cpu (You can read more about it on https://alpinelinux.org/about/)

What do you think about the change?

Security concern

Hey there!

I belong to an open source security research community, and a member (@thelabda) has found an issue, but doesn’t know the best way to disclose it.

If not a hassle, might you kindly add a SECURITY.md file with an email, or another contact method? GitHub recommends this best practice to ensure security issues are responsibly disclosed, and it would serve as a simple instruction for security researchers in the future.

Thank you for your consideration, and I look forward to hearing from you!

(cc @huntr-helper)

docker workflow isn't working

in contrast to what is described in the readme the docker workflow is not working

git clone [email protected]:automaticmode/active_workflow.git
cd active_workflow 
docker-compose up

Pulling active_workflow (local/active_workflow:)...
ERROR: The image for the service you're trying to recreate has been removed. If you continue, volume data could be lost. Consider backing up your data before continuing.

Remote Agent API: empty strings in errors or logs cause errors

Hey everyone,

I have found a rather odd error that will be raised when using remote agents via the remote agent API. If the remote agent responds to a check (maybe even a receive, I did not check that) with empty strings in the errors or logs, Active Workflow will throw an error: Exception during check. Validation failed: Message can't be blank. See this gist for the more details.

I have fixed it by removing all empty strings that would be returned in my remote agent. Still, this seems a little fragile to me on the Active Workflow side.

If this behaviour is intended, do not hesitate to close this issue. It may come in handy for anyone that encounters the same problem :-)

Cheers
Marcel

Contribute back to Huginn?

Hey folks, this looks like an awesome fork of Huginn, with some nice API additions. What made you decide not to contribute back upstream?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.