Commit Graph

1613 Commits

Author SHA1 Message Date
jamesread c72d180fae fix: Dashboards now can have ACLs (#445) 2026-07-18 23:57:09 +01:00
jamesread 25fd92396c Merge branch 'next' of github.com:OliveTin/OliveTin into next 2026-07-18 22:46:14 +01:00
jamesread 25b80e1460 fmt: Code style and linter 2026-07-18 22:46:05 +01:00
jamesread ad22434ec8 chore: fix macos signing 2026-07-18 12:24:18 +01:00
James Read e1290ad195
Next (#1076) 2026-07-18 10:57:25 +00:00
jamesread 79b8504326 Merge branch 'next' of github.com:OliveTin/OliveTin into next 2026-07-18 11:49:20 +01:00
jamesread 43fd83da26 chore: Various windows and signing improvements 2026-07-18 11:38:18 +01:00
James Read ba3f4321f6
Merge branch 'main' into next 2026-07-18 11:31:12 +01:00
jamesread f4f644fbc3 fix: Early support for MacOS Signing (#931) 2026-07-18 11:21:29 +01:00
jamesread e322887c4a fix: Windows artifact signing 2026-07-18 10:36:18 +01:00
James Read 5c3d34228e
Next (#1074) 2026-07-17 16:29:45 +00: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
James Read 28722a2aa9
Merge branch 'main' into next 2026-07-17 16:26:58 +01:00
James Read ecb0486074
fix(ui): restore completion flash for argument actions (#1075) 2026-07-17 12:10:24 +01:00
jamesread 153049f29f fix(ui): restore completion flash for argument actions
Argument-form submits remount the dashboard, so flash via a one-shot
binding-scoped pending result that ActionButton consumes after return.
2026-07-17 11:21:59 +01:00
jamesread 9b3fa813f6 fix: Packaging on Alpine (#761) 2026-07-15 23:42:49 +01:00
James Read 4d6199a8c7
Update oauth2_pocketid.adoc scopes (#1073) 2026-07-15 22:30:11 +01:00
HurracaineIke 751d574d75
Update oauth2_pocketid.adoc
PocketID now requires to explicitly include the `openid` scope in the `scopes` list. PocketID will strictly block user information queries with a `403 Forbidden` if this scope is missing.
2026-07-15 08:13:42 -07:00
James Read ee97906808
fix: prefix form arguments to prevent collisions with other page elem… (#1072) 2026-07-14 19:49:10 +01:00
jamesread 62ae4fea2b fix: prefix form arguments to prevent collisions with other page elements 2026-07-13 22:10:43 +01:00
jamesread 5b1a29db7f docs: Standardize on "Server Diagnostics", update many screenshots 2026-07-09 11:30:16 +01:00
jamesread 929e951a58 docs: dropdown images 2026-07-09 09:00:32 +01:00
jamesread 1708cf15ad docs: screenshot for checklist 2026-07-08 22:32:41 +01:00
jamesread 5f0d7d2392 docs: Extra entities fields 2026-07-08 21:46:14 +01:00
James Read d0075a7a8d
Next (#1070) 2026-07-08 19:00:51 +00: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
James Read e421780c98
Merge commit from fork
security: GHSA-jm28-2wcr-qf3h (LOW) enforce logs ACL on sync execution endpoints
2026-07-08 09:53:16 +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 e8e2d1ff7c chore: add SECURITY_ADVISORY_DUPLICATES maintainer guide
Document known duplicate advisory clusters and triage steps referenced
from SECURITY.md.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-08 09:51:44 +01:00
James Read 995ff79736
Merge commit from fork
security: GHSA-xc5w-4v5w-7x65 (HIGH) harden shell argument type safety
2026-07-08 09:45:48 +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 114a007d9d chore: Add developer check for current environment 2026-07-07 10:32:20 +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 f3a1315e00
Merge branch 'main' into next 2026-07-07 00:39:01 +01:00
James Read 6ce93629e7
feat: add entity UI with list filtering and prefilled action arguments (#1069) 2026-07-07 00:32:15 +01:00
jamesread 9028b8ef03 chore: coderabbit suggestions 2026-07-07 00:24:00 +01:00
jamesread 9f5c3bf596 Merge branch 'next' into feat/entity-ui-prefilled-arguments
Resolve conflicts after merging entity API and justification changes in
the wrong order, keeping prefilled entity arguments with string justification.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-07 00:12:49 +01:00
James Read 506ad4c883
feat: expand entity list and detail APIs with properties and related … (#1068) 2026-07-07 00:09:24 +01:00
jamesread 74504aabec chore: resolve proto conflict 2026-07-06 23:57:41 +01:00
James Read 1325ba6a72
Merge branch 'next' into feat/entity-list-related-actions-api 2026-07-06 23:57:06 +01:00
James Read 832e706a43
refactor: collapse action justification into a string template field (#1067) 2026-07-06 23:55:20 +01:00
jamesread 58dc804e78 fix: coderabbit suggestions on the justification 2026-07-06 23:35:04 +01:00
jamesread 0c4d25e525 feat: add entity UI with list filtering and prefilled action arguments
Introduce entity list/detail components and wire related actions through the
argument form so entity context can prefill values when starting actions.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-06 20:37:59 +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