Release karajo v0.9.3 (2024-12-08)
=== Bug fixes
* env: fix missing ini tag on IsDevelopment field::
* all: fix permission of "/srv/karajo"::
The content of directory "/srv/karajo" may contains files served to
public, even internal, so it should be accesible by other user or
group.
=== Enhancements
* all: return and show the current version in API environment and main
page
* all: set the module Version during build
The Version information is derived from latest tag and commit hash.
This allow command "karajo version" and user interface show on which
version its currently run.
Release karajo v0.9.2 (2024-09-08)
=== Bug fix
* make: fix file permissions when installing public index.html
Using 0640 (where user and group owner set to root) cause karajo
service—that run as karajo user—unable to read the file.
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".
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.
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.
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
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
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.
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.
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.