Commit Graph
19 Commits
Author SHA1 Message Date
Cursor Agentandnsrb 4e6c336ae8 feat(web): add Ops page and proxy control on :8600
Vite listens on 8500 and proxies /ops to the control plane. Admin Ops UI
covers pause/resume, scale, drain/force restart, and restart-needed banner.

Co-authored-by: Nasyarobby Putra <nasyarobby@gmail.com>
2026-08-19 10:55:02 +00:00
Cursor Agentandnsrb 756ba8a7ac feat(queue): support REDIS_PASS for Redis AUTH
Wire optional REDIS_PASS into the BullMQ ioredis connection, redact
credentials in startup logs, and document REDIS_PASS plus JFLOW_ROLE.

Co-authored-by: Nasyarobby Putra <nasyarobby@gmail.com>
2026-08-19 09:05:29 +00:00
Cursor Agentandnsrb a95e6d7bc8 feat(runner): queue workflow runs with BullMQ (phase A)
Enqueue HTTP, cron, and manual runs via Redis/BullMQ; workers execute
asynchronously with configurable concurrency. Triggers return 202 and
clients poll GET /api/runs/:id for progress (queued → running → done).

Co-authored-by: Nasyarobby Putra <nasyarobby@gmail.com>
2026-08-19 04:25:21 +00:00
Cursor Agentandnsrb 64f605b135 chore: merge origin/main into cursor/ftp-sftp-script-3038
Co-authored-by: Nasyarobby Putra <nasyarobby@gmail.com>
2026-08-18 23:59:56 +00:00
Cursor Agentandnsrb 88cea85701 chore: merge origin/main into cursor/s3-compatible-script-3038
Co-authored-by: Nasyarobby Putra <nasyarobby@gmail.com>
2026-08-18 23:59:45 +00:00
Cursor Agentandnsrb 7474bb5c6d feat(scripts): add remote-fs script for SFTP and FTP access
Co-authored-by: Nasyarobby Putra <nasyarobby@gmail.com>
2026-08-17 00:22:30 +00:00
Cursor Agentandnsrb a6d83eb7cb feat(scripts): add s3 script for S3-compatible object storage
Co-authored-by: Nasyarobby Putra <nasyarobby@gmail.com>
2026-08-17 00:07:04 +00:00
Cursor Agentandnsrb 0c416506d6 feat(triggers): start alert workflow after consecutive cron/http failures
Co-authored-by: Nasyarobby Putra <nasyarobby@gmail.com>
2026-08-16 23:45:45 +00:00
Cursor Agentandnsrb 989bf5d487 feat(scripts): add slack-webhook script for Slack Incoming Webhooks
Co-authored-by: Nasyarobby Putra <nasyarobby@gmail.com>
2026-08-16 23:33:06 +00:00
Cursor Agentandnsrb 534c5bbea3 feat(scripts): add list-webdav script for WebDAV directory listing
Co-authored-by: Nasyarobby Putra <nasyarobby@gmail.com>
2026-08-16 23:15:20 +00:00
Cursor Agentandnsrb 26d31af17f chore(server): allow webdav package in script sandbox
Co-authored-by: Nasyarobby Putra <nasyarobby@gmail.com>
2026-08-16 23:15:20 +00:00
Cursor Agentandnsrb 46e2cbb83b feat(scripts): add mustache render-template via Responses pages
Add HTML template kind to Responses with a seeded system email-default
template, render-template.js using Mustache, and html body support in
send-email. Templates are editable but system pages cannot be deleted.

Co-authored-by: Nasyarobby Putra <nasyarobby@gmail.com>
2026-08-15 01:44:51 +00:00
Cursor Agentandnsrb 23ce72fec2 feat(scripts): expand send-email SMTP config and recipients
Expose broader nodemailer transport options, require a separate from
address, and support optional cc/bcc plus reply-to and custom headers.

Co-authored-by: Nasyarobby Putra <nasyarobby@gmail.com>
2026-08-15 01:10:37 +00:00
Cursor Agentandnsrb 13a46188ba feat(scripts): add send-email script using nodemailer
Add a sandboxed send-email.js workflow script with SMTP settings
exposed via script config and password loaded from named secrets.
Allow nodemailer in the script sandbox require whitelist.

Co-authored-by: Nasyarobby Putra <nasyarobby@gmail.com>
2026-08-15 01:04:34 +00:00
Cursor Agentandnsrb 5765b05e24 chore(workflows): register detect-example-changes demo workflow
Co-authored-by: Nasyarobby Putra <nasyarobby@gmail.com>
2026-08-15 00:39:33 +00:00
Cursor Agentandnsrb 9100b1d78b feat(scripts): add detect-url-changes change-detection step
Co-authored-by: Nasyarobby Putra <nasyarobby@gmail.com>
2026-08-15 00:37:52 +00:00
Cursor Agentandnsrb b88dd4d6e7 feat(server): add SQLite KV store exposed as $kv in script sandbox
Co-authored-by: Nasyarobby Putra <nasyarobby@gmail.com>
2026-08-14 11:11:17 +00:00
Cursor Agentandnsrb b181bd3414 fix(sandbox): allow localhost in axios URL screening
Self-hosted automation targets often run on localhost or loopback
addresses, so keep blocking private/metadata hosts but stop blocking
localhost, 127.x.x.x, and .localhost names.

Co-authored-by: Nasyarobby Putra <nasyarobby@gmail.com>
2026-08-14 05:01:45 +00:00
Cursor Agentandnsrb 8c9673444f feat(sandbox): expose screened $axios in script context
Add $axios to the VM sandbox with a request interceptor that blocks
non-http(s) URLs and common SSRF targets (localhost, private IPs,
link-local, and cloud metadata hosts). require('axios') and import
axios resolve to the same screened instance so scripts cannot bypass
URL screening.

Co-authored-by: Nasyarobby Putra <nasyarobby@gmail.com>
2026-08-14 04:56:25 +00:00