Releases: arkstack-hq/arkstack
Release list
0.17.19
0.17.18
What's Changed
- feat: add ngrok support for tunneling in DevCommand and update environment variables
Full Changelog: 0.17.17...0.17.18
0.17.17
What's Changed
- feat: upgrade musket and improve CLI teardown using new musket cli lifecycle features.
- fix(driver-express):
requestLoggerdoes not compute the accurate request duration as it doesn't run the logger within the finish event listener.
Full Changelog: 0.17.15...0.17.17
0.17.15
What's Changed
- fix(notifications): registerAuthRoute did not implement any validation logic
Full Changelog: 0.17.14...0.17.15
0.17.14
0.17.13
0.17.12
What's Changed
- fix(notifications): this.fromAddress is undefined for custom transports as it is only constructed after custom transport is initialized.
Full Changelog: 0.17.9...0.17.12
0.17.9
0.17.3
Added
- Added request-scoped Clear Router bindings for Arkstack
Request,Response, andSession. - Added automatic
arkstackHttpPluginregistration for Express and H3. - Added unified
clearRequestandclearResponsevalues to the route context. - Added automatic decorator setup, allowing controller arguments using
@Bind()to resolve without extra container configuration.
Improved
- Made
request(),response(), andsession()resolve from the active request scope. - Preserved request body, query, params, route, context, and original request data when adapting framework requests.
- Ensured repeated dependency resolution returns the same HTTP instances throughout a request.
- Added isolation for concurrent requests to prevent global helpers from returning stale instances.
Fixed
- Fixed database queue eligibility checks by comparing
available_atagainst the database timestamp. - Fixed request, response, and session helpers leaking state between concurrent requests.
Dependencies
- Updated
clear-routerto2.9.2. - Updated
@arkormx/plugin-clear-routerto0.1.54. - Updated
@resora/plugin-clear-routerto1.0.68.
Documentation
- Restored the missing Arkstack changelog history from
0.4.1through0.17.2.
Full Changelog: 0.17.0...0.17.3
0.17.0
Arkstack Release Notes
Task Scheduling (new: @arkstack/scheduler)
Define scheduled tasks fluently in code instead of managing a crowd of cron entries - a single per-minute cron entry drives everything.
Define your schedule in src/routes/console.ts:
import { Schedule } from '@arkstack/scheduler'
Schedule.command('cache:prune').hourly()
Schedule.call(() => prune()).dailyAt('01:30').withoutOverlapping()
Schedule.job(new SendDigest()).weeklyOn(1, '08:00')
Schedule.exec('backup.sh').daily().onOneServer()
Task types
- Schedule.command(name, args?) - run an Arkstack CLI command (ark )
- Schedule.call(fn) - run a callback
- Schedule.job(job) - dispatch a queued job (via @arkstack/jobs)
- Schedule.exec(cmd, args?) - run a shell command
Frequencies
everyMinute / everyTwoMinutes ... everyThirtyMinutes, hourly, hourlyAt, daily, dailyAt, twiceDaily, weekly, weeklyOn, monthly, monthlyOn, quarterly, yearly, cron('...'), plus day constraints (weekdays, weekends, mondays...sundays, days([...])) and timezone(tz).
Constraints
when(fn), skip(fn), environments(...envs), between('09:00','17:00'), unlessBetween(...) - overnight windows handled.
Overlaps, single-server & background
- withoutOverlapping() - skip if the previous run is still going
- onOneServer() - run on only one server per due minute
- runInBackground() - don't let a long task delay others
Locks coordinate through @arkstack/cache (configure a shared store like redis/database for onOneServer to be effective); without a cache they fall back to a process-local lock.
Hooks
before(), after(), onSuccess(), onFailure(error).
Running
Add one system cron entry that runs every minute:
* * * * * cd /path/to/app && npx ark schedule:run >> /dev/null 2>&1
Development / inspection:
ark schedule:work # evaluate the schedule every minute in the foreground
ark schedule:list # list tasks with their next run time
Notes
- Cron evaluation powered by croner (minute-resolution, timezone-aware).
- Schedules are defined in src/routes/console.ts (loaded via jiti - no build needed).
- @arkstack/cache and @arkstack/jobs are optional peers.
- Included in the app templates and create-arkstack; guide, API reference, and README added.
Full Changelog: 0.16.11...0.17.0