Proto commits in distribworks/dkron

These 35 commits are when the Protocol Buffers files have changed:

Commit:af00795
Author:copilot-swe-agent[bot]
Committer:GitHub

Add stop_on_failure feature for jobs When stop_on_failure is set to true on a job, if the execution fails after all retries are exhausted, the job is automatically disabled so it will not run again until re-enabled manually. - Add stop_on_failure field to proto definition (field 31) - Regenerate proto Go files - Add StopOnFailure field to Job struct with JSON tag - Update NewJobFromProto and ToProto to handle the new field - Implement stop-on-failure logic in ExecutionDone (disables job and removes from scheduler when execution fails and all retries are exhausted) - Add test for the new feature

Commit:3e5ce60
Author:Copilot
Committer:GitHub

Add DELETE /v1/jobs/:job/executions endpoint to clear counters (#1876) * Initial plan * Add DeleteExecutions API endpoint and implementation Co-authored-by: vcastellm <47026+vcastellm@users.noreply.github.com> * Add tests for DeleteExecutions functionality Co-authored-by: vcastellm <47026+vcastellm@users.noreply.github.com> * Address code review feedback: improve error handling and add validation Co-authored-by: vcastellm <47026+vcastellm@users.noreply.github.com> * Update OpenAPI documentation with DELETE executions endpoint Co-authored-by: vcastellm <47026+vcastellm@users.noreply.github.com> * Initial plan * Complete rebase onto latest main branch Co-authored-by: vcastellm <47026+vcastellm@users.noreply.github.com> * Update dkron.proto * Add DeleteExecutions proto and regenerate * fix: merge conflicts * Remove go_package options from proto files --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Victor Castell <0x@vcastellm.xyz> Co-authored-by: vcastellm <47026+vcastellm@users.noreply.github.com>

Commit:f06717c
Author:Blaž Dular
Committer:GitHub

feat: Buf gen and workflow (#1704) * feat: Added buf workflow that checks for breaking changes, lints and formats the code * feat: Added buf gen to simplify and standardize protobuf generation * fix: workflow name (duplicate) * chore: fixing lint issue, ignoring some linter complaints * feat: added makefile command for generating & linting proto files * chore: ignore breaking (temporary) * fix: imports * fix: missing file

Commit:2a9fb64
Author:Nikolay Alexandrov
Committer:GitHub

feat: startsAt field was added to the Job type (#1838) * feat: add headers in grpc executor * feat: startsAt field was added to the Job type * feat: update openapi spec and fix debug message

Commit:7394207
Author:Victor Castell
Committer:GitHub

Release 4.x (#1432) * Convert shell plugin to internal plugin (#975) The purpose of this PR is to embed the shell plugin in the main dkron binary, that will facilitate creating a single binary with the most important executor, for easy deployment using a single binary. * Remove old UI (#984) * Release a light image tag (#988) Omit all plugins except the shell plugin that will be included in the main binary. * Upgrade react admin to v4 (#1436) * Use exponential backoff for retries (#1433) * Handle ip changes (#1446) * consul like approach: add server_lookup to make dkron independent from server node IP on raft layer * handle memberupdate event * query other servers before start & add test * don't remove itself if node is a raft leader * don't remove dkron server node if id matches * Move config init to agent command (#1465) Config init was being done on the root level command but only the agent command was using config values. Now config init is done as pre-run of agent command only, getting rid of extra messages in other commands when the config was missing. * Fix disabled (#1467) * Embed http plugin (#1471) http plugin is one of the most used plugins together with the shell plugin, embedding it in the main binary allow for more lean deployment. * Show all Job fields * Refactor buttons for admin v4 * Docs v4 (#1473) * Reuse http clients with the same configuration (#1474) * Update OpenAPI spec to v3.1.0 and add ACLs spec * Refactor location of types as they not only belong to plugins, but used in general. (#1485) Also add Pro protobuf and gen code as this should be public. * Generate client * Extend protobuf defs for ACLs * Token fields * Minor improvement in RabbitMQ executor (#1500) * nice and forkable goreleaser (#1584) * add support for hash scheduling (#1260) * feat: Login form and admin update (#1589) Upgrade react-admin to v5 Implements a login form to use in Pro version --------- Co-authored-by: Victor Castell <victor@victorcastell.com> Co-authored-by: Ivan Kripakov <108407979+ivan-kripakov-m10@users.noreply.github.com> Co-authored-by: Filipe Pina <636320+fopina@users.noreply.github.com>

The documentation is generated from this commit.

Commit:d46947b
Author:Victor Castell

The policy should be just a ref

The documentation is generated from this commit.

Commit:b2d5928
Author:Victor Castell

Use accessor for tokens

Commit:e2a86ac
Author:Victor Castell

Token Type

Commit:fbac360
Author:Victor Castell

Typo

Commit:b1ce3da
Author:Victor Castell

Token fields

Commit:aae95b9
Author:Victor Castell

Extend protobuf defs for ACLs

Commit:4fcd8f7
Author:Victor Castell

protoc line

Commit:794a178
Author:Victor Castell
Committer:GitHub

Refactor location of types as they not only belong to plugins, but used in general. (#1485) Also add Pro protobuf and gen code as this should be public.

Commit:f0c0df3
Author:Paulo Moura
Committer:GitHub

Implement GRPC executor (#1049) Signed-off-by: Paulo Moura <itsme@paulomoura.com.pt> Co-authored-by: Victor Castell <victor@victorcastell.com>

Commit:2538be5
Author:Victor Castell
Committer:GitHub

feature: Implement ephemeral and expires at feature (#972) * Implement ephemeral and expires at feature Ephemeral jobs will be deleted after the first successful execution Expiring jobs won't be executed after the indicated datetime

Commit:e56ce03
Author:Victor Castell

chore: Use newer gRPC library version Implement all necessary changes to adapt to use latest gRPC imlpementation and code generators.

Commit:acb50cb
Author:Victor Castell
Committer:Victor Castell

refactor: Use gRPC streaming calls to run jobs Serf queries works over UDP sending messages to nodes and expecting a response, there is no guarantee or verification of the message delivery. This was causing some job executions to be lost, around 1%-2% on edge cases. Solution Agents will listen to gRPC calls from the servers, using server-side streaming, the other way around as currently, agents will send Execution progress as now. Servers will actively order nodes to run the jobs, so we can verify the job is actually being executed or report an error in case it's not. This maintains the same guarantees in job status reporting and streaming, also adding the possibility to cancel an execution in the future.

Commit:351e9c9
Author:Victor Castell

fix: Several fixes including new gRPCs method * New SetExecution method missing in the last PR * Fix race condition in job status save on start * computeStatus improvement * improve test jobs ansible playbook * Better swagger docs

Commit:b248867
Author:Victor Castell

feat: Implement bidirectional output in plugins So we can receive partial updates of the output of an executions and stream the update to the server for storing in the execution.

Commit:de54c8b
Author:Victor Castell
Committer:Victor Castell

Streaming executions refactor: Add gRPC method to get active connections

Commit:6bb35a9
Author:Victor Castell
Committer:GitHub

refactor: Move plugin code and types to packages (#696) * refactor: Move plugin code and types to packages This allows for plugins to not depend on the whole dkron code reducing its size to minimum. Also refactored Processor plugins type name * refactor: Add key method to gRPC execution * docs: Update CHANGELOG Co-authored-by: Filipe Pina <fopina@gmail.com>

Commit:e821de6
Author:Victor Castell
Committer:GitHub

Fixes issue with missing processor config (#601) * Fixes issue with missing processor config Processor config was missing in the FromProto ToProto conversions of the job model. This caused any change in the field to be lost. The change forced to redefine PluginConfig as map[string]string as proto3 doesn't have an easy concept of go interface. Also modified the corresponding processors.

Commit:294a09d
Author:yvanoers
Committer:yvanoers

Fix new jobs showing as failed in dashboard in western timezones

Commit:335b4d9
Author:Yuri van Oers
Committer:Yuri van Oers

Add displayname to job

Commit:11a8973
Author:Victor Castell
Committer:Victor Castell

Implement raft list-peers and remove-peer

Commit:f0bb687
Author:Victor Castell
Committer:Victor Castell

Fix next execution computation

Commit:faebbaa
Author:Victor Castell
Committer:Victor Castell

Dkron v2 PR that brings lots of changes to the previous version. Main architecture changes: - Not using valkeyrie anymore, moving to Hashicorp's Raft, not relying anymore in external distributed stores. - Local storage managed by BadgerDB in each node. - No changes to the API and the serf engine. - Include fixes and features for #540, #535, #546

Commit:e8b5d55
Author:Victor Castell
Committer:GitHub

Implement server selection using consistent hash (#522) * Implement server selection using consistent hash Server selection via consistent hash over peer members, ensures a good request distribution and mimics a cache store. * fix: Do not reply events on join. This could lead to unpredictable job executions out of time * refactor: To use GetExecutons in GetExecutionsGroup

Commit:896118c
Author:tengattack

Update executor support error log instead of fail only

Commit:d7b1eaa
Author:Victor Castell
Committer:GitHub

Leave cluster RPC command (#496) Leave cluster RPC command Implement the command to leave a cluster using an agent command and calling the leave method by RPC to the local or remote agent.

Commit:be8527d
Author:Victor Castell
Committer:GitHub

Remove deprecated parameters (#489) Remove support for old job command parameters Deprecated long ago, Job params: command, shell and environment_variables are now gone. This could be breaking change for installations still using those params

Commit:1f2c05c
Author:Victor Castell

Implement timestamps conversion

Commit:58465ab
Author:Victor Castell

Move away from RPC to gRPC

Commit:388be63
Author:Victor Castell

Simplify executors

Commit:4f0b3cb
Author:Victor Castell

Executors with GRPC