Commit Graph

311 Commits

Author SHA1 Message Date
jamesread 25b80e1460 fmt: Code style and linter 2026-07-18 22:46:05 +01:00
jamesread e2bf82ff9c fix(#952): carry arguments when rerunning an action
The Rerun button ignored the original arguments and always started
actions with an empty argument set, so actions that take arguments
threw instead of re-running.

Rerun now reuses the arguments stored on the log entry: complete
runs restart directly, and incomplete ones (missing values, or
password / very_dangerous_raw_string fields) open the argument form
pre-filled via history.state. Justification-required actions always
re-prompt so each execution is explicitly justified.

Storable arguments are copied onto the log entry only after argument
parsing succeeds, so failed executions no longer persist arguments
that could be replayed.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 17:06:04 +01:00
jamesread 5b1a29db7f docs: Standardize on "Server Diagnostics", update many screenshots 2026-07-09 11:30:16 +01:00
jamesread 8eda67a39e fix(docs): correct shellAfterCompleted quoting for output and exitCode
The after-completion example put {{ output }} and {{ exitCode }} inside
  single-quoted shell arguments, so  and  never expanded
  after substituteShellAfterCompletedEnvRefs runs.
  Update the apprise sample to use printf-based quoting that allows env
  substitution, document the single-quote pitfall, and extend
  TestShellAfterCompletedUsesOutputEnvSafely to assert stdout is
  substituted as well as injection being blocked.
2026-07-08 14:01:43 +01:00
jamesread 4ef86abee7 security: GHSA-vc6p-m6vx-6cwq (HIGH) harden shellAfterCompleted execution
Route output and exitCode through OUTPUT/EXITCODE environment variables
instead of shell interpolation, and block shellAfterCompleted for webhook
actions.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-08 12:29:37 +01:00
jamesread 1396184777 fix(executor): always anchor custom regex patterns and harden shellAfterCompleted
Wrap regex: patterns in a non-capturing group before applying ^...$ so
  alternation cannot bypass full-string matching. Return template parse
  errors from buildShellAfterCommand, and guard nil binding/action before
  building shellAfterCompleted commands.
2026-07-08 10:46:13 +01:00
jamesread 904616b1b1 security: GHSA-jm28-2wcr-qf3h (LOW) enforce logs ACL on sync execution endpoints
StartActionAndWait and StartActionByGetAndWait now apply the same logs
permission check used by GetLogs and ExecutionStatus.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-08 09:52:30 +01:00
jamesread 0e45f3b0e3 security: GHSA-xc5w-4v5w-7x65 (HIGH) harden shell argument type safety
Block additional unvalidated argument types from shell actions, enforce
full-string custom regex matching, and allowlist http/https URL schemes.

Update checkbox integration test to use exec, matching the intended shell
vs exec split for choiceless checkbox arguments.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-08 09:40:48 +01:00
James Read ec114e95d2
Merge commit from fork
security: GHSA-xpxj-f2fm-rqch (HIGH) bound OAuth2 state map growth
2026-07-08 08:59:51 +01:00
jamesread 422044317c security: GHSA-xpxj-f2fm-rqch (HIGH) bound OAuth2 state map growth
Sweep expired OAuth2 state entries, cap the map at 10000 entries, and
remove stale state on failed callback validation.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-07 14:26:37 +01:00
jamesread 42f2572616 fix(config): reject ambiguous checklist comma format and propagate encode errors
ParseChecklistValue now accepts JSON arrays or single bare values and rejects
  legacy comma-separated input. Empty JSON segments are validated consistently,
  and FormatChecklistValue returns marshal errors instead of an empty string
2026-07-07 11:57:20 +01:00
jamesread a58e2fe0c3 chore: fix flakey test 2026-07-07 10:32:33 +01:00
jamesread 9dc51df01d fix: harden checklist JSON wire format, entity pagination, and review findings across API and UI 2026-07-07 10:14:17 +01:00
James Read 1325ba6a72
Merge branch 'next' into feat/entity-list-related-actions-api 2026-07-06 23:57:06 +01:00
jamesread 58dc804e78 fix: coderabbit suggestions on the justification 2026-07-06 23:35:04 +01:00
jamesread afd9f9033a feat: expand entity list and detail APIs with properties and related actions
Support filtered paginated entity lists, configurable instance columns, and
entity-scoped actions with prefilled arguments for richer entity workflows.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-06 20:37:26 +01:00
jamesread a530dca579 refactor: collapse action justification into a string template field
Use a single justification string for both requirement and templating so
empty values skip prompts while templates can prefill audit reasons at start.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-06 20:36:30 +01:00
jamesread b18518ebea fix: add support for entities in checklists 2026-07-06 12:17:03 +01:00
jamesread 6077c63cfd chore: Fix coderabbit warnings 2026-07-06 11:39:43 +01:00
jamesread e24ae6265b feat: Checklist support (#922) 2026-07-06 11:01:22 +01:00
jamesread ba7d9f51a1 chore: flakey test finder 2026-06-29 20:40:05 +01:00
jamesread 1cbd1cfb6b fix: windows installer branding 2026-06-29 16:44:01 +01:00
jamesread 03af6890c2 fix: flakey unit tests 2026-06-29 16:25:10 +01:00
jamesread c5cd5295b0 chore: fix race condition in tests 2026-06-29 00:39:49 +01:00
jamesread a413f9d6af chore: fix flakey tests 2026-06-29 00:03:31 +01:00
James Read 5fca2d9482
Merge branch 'next' into feat/better-prometheus-metrics 2026-06-28 23:17:28 +01:00
jamesread 57f3ef46ad fix: several merge messes 2026-06-28 22:52:16 +01:00
jamesread e63094e8e8 fix: several merge messes 2026-06-28 22:15:46 +01:00
jamesread 4b2e78926c Merge branch 'next' of github.com:OliveTin/OliveTin into next 2026-06-27 07:50:29 +01:00
jamesread 42003da384 fix: rerun args 2026-06-26 23:25:24 +01:00
jamesread abf4fc2cf0 feat: Windows icons and MSI support 2026-06-26 21:19:19 +01:00
jamesread d1787a3823 feat: Better prometheus support 2026-06-25 23:05:47 +01:00
James Read e61c8b036d
Substitute environment variables when loading yaml config to fix #840 (#880) 2026-06-20 01:45:29 +01:00
James Read d23fb2fd77
Merge branch 'next' into wip 2026-06-20 01:27:37 +01:00
jamesread 03d188337e fix: Parse templates in action (#1035) 2026-06-20 00:26:13 +01:00
jamesread c442efe204 chore: register executor listener before startup 2026-06-19 10:37:33 +01:00
jamesread 7bd6e77ae2 chore: fix race conditions and little bugs 2026-06-19 09:56:41 +01:00
jamesread 633d9ecd82 feat: action group sizing 2026-06-18 23:33:27 +01:00
jamesread 03a9a05e38 fix: action group display fixes 2026-06-18 11:55:14 +01:00
jamesread de63793b3a feat: circle indicator for running actions, justification support 2026-06-17 23:29:30 +01:00
jamesread f4b3c4289a chore: Fix many little niggly bugs, test flakes, etc 2026-06-17 22:18:26 +01:00
jamesread d9c8cfb573 feat: Logs filtering, and log queue with group concurrency 2026-06-16 14:30:39 +01:00
jamesread 6aa672e6c0 feat: Logs filtering, and log queue with group concurrency 2026-06-16 14:16:43 +01:00
jamesread 37cde0d982 fix: custom CSS and custom JS (#804 and #803) hopefully 2026-06-16 11:56:14 +01:00
James Read f6fc775ef7
feat: Action grouping for concurrency limit and queuing (#1048) 2026-06-16 11:42:31 +01:00
jamesread 9d64b64bf9 fix: configurable log directory for windows
9;133u

0;133u
2026-06-16 11:24:19 +01:00
jamesread 8622b5b06c chore: coderabbit suggestions 2026-06-16 11:17:15 +01:00
jamesread 0e8f7c7be3 chore: coderabbit suggestions 2026-06-16 11:02:37 +01:00
jamesread 3471e2fb12 chore: coderabbit suggestions 2026-06-16 09:51:55 +01:00
jamesread 92f564ab45 feat: Action grouping for concurrency limit and queuing 2026-06-16 01:34:41 +01:00