~shulhan/karajo

v0.9.1 3 months ago .tar.gz browse log

Release karajo v0.9.1 (2024-04-06)

This release mostly contains chores.

* env: remove [rand.Seed] usage

  The [ascii.Random] generate random using "crypto/rand", so no need
  to seed it anymore.

* all: replace module "share" with "pakakeh.go"

  The "share" module repository has been moved to SourceHut, with new
  name "pakakeh.go".

v0.9.0 5 months ago .tar.gz browse log

Release karajo v0.9.0 (2024-02-08)

=== Breaking changes

* all: refactoring JobExec APIs to have "_exec" suffix

  In JobHttp, we have "_http" suffix for its HTTP APIs.
  To make it consistent we changes the HTTP API path to have "_exec" suffix.

* all: apply default revive suggestions

  I prefer zero configuration rather that creating exclusions,
  like "revive.toml" file that we have earlier, even thought it will cause
  breaking changes to our APIs.

  Some breaking changes, [Env.HttpJobs] become [Env.HTTPJobs]
  [Env.HttpTimeout] become [Env.HTTPTimeout],
  [Env.HttpJobs] become [Env.HTTPJobs], and many more.

=== New features

* all: implement API to cancel running job

  In the JobBase we add method Cancel to cancel running JobExec or JobHTTP.
  In the HTTP server, we add endpoint "POST /karajo/api/job_exec/cancel"
  to cancel JobExec by its ID.

  Implements: https://todo.sr.ht/~shulhan/karajo/1

=== Enhancements

* all: export the HTTP server field in Karajo

  By exporting the HTTP server field, user of Karajo can register
  additional HTTP endpoints without creating new HTTP server instance.

=== Bug fixes

* all: always call finish even if the job is paused

  This is to make the [JobBase.NextRun] always set to next interval or
  schedule.

  Fixes: https://todo.sr.ht/~shulhan/karajo/2

* _sys: set systemd unit to start after network.target

  This is to fix karajo failed to start because the DNS has not working
  yet when initializing email notification.

v0.8.0 8 months ago .tar.gz browse log

Release karajo v0.8.0 (2023-11-10)

=== New features

* all: implement notification using email

  Karajo server now support sending notification when the job success or
  failed with inline log inside the email body.

=== Breaking changes

* all: change the JobHttp log to use the same as Job

  Previously, the JobHttp use single file for log with limited size.
  The way it works is quite complex, we need to maintain one file and
  a buffer that able to truncate the log if its reached its max size.
  We also need to store the job state in separate file.

  In this changes, we replace the JobHttp log mechanism to use the same
  as Job, where each execution will be log separately. Not only this
  give us less complex code, it also remove some duplicate code.

  In the HTTP API we changes the path to get the JobHttp log to match
  with Job path.

=== Bug fixes

* all: fix the HTTP API to get the Job log

  The loop set job to non-nil if the Job ID not found, which may
  return the wrong Job log.

* all: changes the HTTP response code for a success JobExec run to 200

  Previously, in the HTTP endpoint for running a job, we return HTTP
  status code 202 (Accepted) on success, but in the WUI we check using
  200 (OK).

  This changes fix this by return HTTP status code 200 to make it
  consistent with other endpoints.

v0.7.0 1 year, 2 months ago .tar.gz browse log

Release karajo v0.7.0 (2023-05-10)

This release add login feature to Karajo using user name and password
that are pre-defined in the user.conf.

=== Breaking changes

* all: remove MaxRunning and NumRunning from JobBase

=== New features

* all: implement login page

=== Bug fixes

* all: fix possible lock on API environment

===  Enhancements

* all: changes on how the job queued using channel

v0.6.0 1 year, 4 months ago .tar.gz browse log

Release karajo v0.6.0 (2023-03-04)

This release add Job scheduler, Job as WebHook, loading Job and JobHttp
configuration from directory, and HTTP APIs for pausing and resuming
Job.

=== Breaking changes

* all: change the API path to execute Job

===  New features

* all: implement job timer with Scheduler
* all: implement Job auth_kind
* all: implement loading JobHTTP configuration from separate
  directory
* all: implement loading Job configuration from separate directory
* all: implement HTTP API to resume the job execution
* all: implement HTTP API to pause a job
* all: implement interval based Hook

=== Enhancements

* all: set default DirBase to "/"
* all: implement UI to trigger hook manually

=== Bug fixes

* all: fix double checking for isPaused
* _www/karajo: fix UI rendering empty hook and with status "Running"

=== Chores

* _AUR: add package builder script for Arch Linux

v0.5.0 1 year, 11 months ago .tar.gz browse log

Release karajo v0.5.0 (2022-08-10)

This release add auto-refresh when viewing hook's log, add options to
customized hook header signature, and option to set maximum hook running at
the same time.

v0.4.0 2 years ago .tar.gz browse log

Release karajo v0.4.0 (2022-07-10)

Highlights on this release,

* Set minimum Go version to 1.17.
* Introduce Hook, a HTTP endpoint that execute commands; reverse of Job.
* Refactoring Environment.
  Karajo now run under DirBase where all Hook and Job logs, state stored.
* Refactoring Job configuration.
* Improve web user interface (WUI) refresh mechanism.
* Add authorization to Job APIs using secret and signature mechanism.

v0.3.0 2 years ago .tar.gz browse log

Release karajo v0.3.0 (2022-03-12)

This release change the license of karajo software to GPL 3.0 or later.

See https://kilabit.info/journal/2022/gpl/ for more information.

v0.2.1 2 years ago .tar.gz browse log

Release karajo v0.2.1 (2022-01-10)

This release update all dependencies and codes related to affected changes.

v0.2.0 2 years ago .tar.gz browse log

Release karajo v0.2.0 (2021-12-07)

===  Breaking changes

*  all: move the karajo web user interface to sub-directory karajo

   In case the user of karajo module also have embedded memfs, merging
   the Karajo memfs with their memfs may cause conflict (especially if
   the user have /index.html and /favicon.png).

===  Enhancements

*  www: make the showAttrs and showLogs to pool per 10 seconds

   Previously, the showAttrs and showLogs pool the job attributes and logs
   per job interval. For example, if the interval is 5 minutes, then the
   attributes and/or logs will be refreshed every 5 minutes.

   In order to make user can view the latest attributes and/logs
   immediately, we changes the interval to 10 seconds.

===  Chores

*  all: add prefix "http://" to address when logging at Start
1 / 2