mrhid6
5a701acc82
fix: Removed tests
2026-07-22 09:31:29 +01:00
mrhid6
dff3668a25
fix(server): validate cross-org resource ownership
...
Review of the org-scoping pass found that org_id on a query filter
protects the row you look up, but does nothing when a handler accepts a
foreign resource ID as data and a downstream unscoped query consumes it.
- AssignKey: verify key and server both belong to the org
- BuildAuthorizedKeys: resolve server first, scope assignments and keys
to that server's org (was honouring foreign assignment rows)
- Workflows: validate TargetServerIDs on create/update and re-check at
trigger time
- Monitor incidents/uptime handlers: gate on org-scoped GetMonitor
- GetChannels: take orgID; validate channel_ids on monitor create/update
- Secret and default-step unique indexes: scope to org_id so a second
org no longer hits E11000
- DeleteServer/DeleteMonitor: scope cascading deletes
2026-07-22 09:28:43 +01:00
mrhid6
850aa0ed05
feat(server): org-scope service layer + handlers + org admin API
...
Threads org_id through every admin-facing service function (servers, keys,
assignments, secrets, workflows/steps/runs, monitors, channels, audit),
adds RequireRole middleware, and wires /api/org user + OIDC management
routes. Agent/scheduler paths keep unique-key signatures and resolve org
from the loaded record; internal-only helpers (getServerByID,
getRunByID, getMonitorByID) preserve those call sites.
2026-07-21 16:56:39 +01:00
mrhid6
d0ed9885e7
feat(auth): per-org OIDC resolver replaces global provider
2026-07-21 16:41:50 +01:00
mrhid6
ff22340561
feat(auth): host-based org resolution + session/host match guard
2026-07-21 16:38:24 +01:00
mrhid6
2038e86b53
feat(auth): local email/password login + first-run bootstrap
2026-07-21 16:36:13 +01:00
mrhid6
404214d82e
fix(services): keep original step Slugify; org reuses it
2026-07-21 16:33:31 +01:00
mrhid6
01fd2e201e
feat(services): org create+slug and user service with bcrypt
2026-07-21 16:30:42 +01:00
mrhid6
066095ffca
feat(auth): session carries org_id/role; add context helpers
2026-07-21 16:28:06 +01:00
mrhid6
022b1ef8ec
feat(server): auth indexes + default-org backfill migration
2026-07-21 16:25:37 +01:00
mrhid6
a8771a6e4d
style(models): gofmt org_id field alignment
2026-07-21 16:24:16 +01:00
mrhid6
502045d3af
feat(models): add org/user/org_oidc models and org_id on scoped collections
2026-07-21 16:23:14 +01:00
mrhid6
ea73fc3a18
docs(plan): saas auth + orgs implementation plan
2026-07-21 16:20:20 +01:00
mrhid6
75b86e3843
docs(spec): add org slug, host-based resolution, single gRPC endpoint
2026-07-21 16:15:29 +01:00
mrhid6
9767e18123
chore: removed old plans
2026-07-21 15:54:11 +01:00
mrhid6
19b4aef95b
feat(server): dark-themed HTML email notification template
Server Deploy / deploy (push) Successful in 1m22s
2026-07-21 15:14:57 +01:00
mrhid6
0464c540b2
feat: edit monitors + notification channels; HTTP monitor insecure-TLS option
Server Deploy / deploy (push) Successful in 2m9s
Agent Release / build (push) Successful in 10m39s
Agent Release / msi (push) Successful in 35s
agent/v1.2.1
2026-07-21 14:55:41 +01:00
mrhid6
45178d455e
fix(server): SMTP dispatch dial timeout + implicit/STARTTLS handling
Server Deploy / deploy (push) Successful in 2m19s
2026-07-21 14:46:15 +01:00
mrhid6
f28ab1a741
feat(web): redesign settings page, drop legacy webhook/email alerting UI
Server Deploy / deploy (push) Successful in 1m24s
2026-07-21 14:40:36 +01:00
mrhid6
df6f8b6f62
feat(web): notification channel settings UI
Server Deploy / deploy (push) Successful in 1m24s
2026-07-21 14:24:38 +01:00
mrhid6
8f3a27100f
feat(server): multi-channel monitor notifications
Server Deploy / deploy (push) Successful in 1m16s
2026-07-21 14:22:55 +01:00
mrhid6
69c7a352f6
feat(agent): agent-run monitor scheduler
Server Deploy / deploy (push) Successful in 1m21s
Agent Release / build (push) Successful in 10m43s
Agent Release / msi (push) Successful in 1m5s
agent/v1.2.0
2026-07-21 14:19:59 +01:00
mrhid6
a2bfa98a2d
feat(proto): SyncMonitors + ReportChecks RPCs
Server Deploy / deploy (push) Successful in 1m27s
2026-07-21 14:18:49 +01:00
mrhid6
57151826ae
feat(web): monitors list/detail/form UI
Server Deploy / deploy (push) Successful in 2m1s
2026-07-21 14:16:08 +01:00
mrhid6
e413009faa
feat(server): server-run monitor scheduler + REST API
Server Deploy / deploy (push) Successful in 58s
2026-07-21 14:13:26 +01:00
mrhid6
3ec9f1b35f
feat(server): monitor ingest pipeline, incidents, rollups
Server Deploy / deploy (push) Successful in 2m0s
2026-07-21 14:12:03 +01:00
mrhid6
e019493087
feat(server): monitor model + checker package
Server Deploy / deploy (push) Successful in 53s
2026-07-21 14:10:46 +01:00
mrhid6
ca2c05db14
feat(web): inventory panel on server detail
Server Deploy / deploy (push) Successful in 41s
2026-07-21 14:08:36 +01:00
mrhid6
1850f352a2
feat(agent): schedule inventory reporting (30s metrics, 15m static)
Server Deploy / deploy (push) Successful in 1m15s
2026-07-21 14:07:09 +01:00
mrhid6
850ffbafe1
feat(agent): /proc-based inventory collectors
Server Deploy / deploy (push) Successful in 16s
2026-07-21 14:06:11 +01:00
mrhid6
a28157dcf8
feat(server): store inventory and handle ReportInventory RPC
Server Deploy / deploy (push) Successful in 1m4s
2026-07-21 14:05:19 +01:00
mrhid6
03e2c3c50d
feat(proto): add ReportInventory RPC and inventory model
Server Deploy / deploy (push) Successful in 2m38s
2026-07-21 14:04:28 +01:00
mrhid6
fb1a1292ec
docs: add service monitoring phases to fleet inventory plan
Server Deploy / deploy (push) Successful in 21s
2026-07-21 14:01:50 +01:00
mrhid6
ec201a23a2
fix: Fixed draft workflow status
Server Deploy / deploy (push) Successful in 41s
2026-07-21 12:09:19 +01:00
mrhid6
d9a33b0672
fix(web): stop autosave loop by ignoring volatile server-echo fields
Server Deploy / deploy (push) Successful in 39s
2026-07-21 12:01:57 +01:00
mrhid6
2b7ef98dff
fix(web): move autosave hooks above early return (React #310 )
Server Deploy / deploy (push) Successful in 1m37s
2026-07-21 11:55:20 +01:00
mrhid6
b5f30bc7c8
Merge feat/step-picker-modal: autosave, step-picker modal, Steps page
Server Deploy / deploy (push) Successful in 1m22s
2026-07-21 11:51:03 +01:00
mrhid6
3a0116248e
fix(web): guard autosave against in-flight lost-update race
2026-07-21 11:50:53 +01:00
mrhid6
6af0a88841
feat(web): add Steps to main nav
2026-07-21 11:45:43 +01:00
mrhid6
e4c3fc24d3
feat(web): standalone Steps management page
2026-07-21 11:43:42 +01:00
mrhid6
e46d0edbf2
feat(web): replace builder step sidebar with Add-step modal
2026-07-21 11:41:37 +01:00
mrhid6
a4c4a72dbc
feat(web): StepPickerModal step picker component
2026-07-21 11:37:47 +01:00
mrhid6
67d729b360
feat(web): api.stepUsage binding
2026-07-21 11:36:03 +01:00
mrhid6
da6d825f45
fix(server): TestMain must not exit(0) before m.Run(); skip DB test individually
2026-07-21 11:34:56 +01:00
mrhid6
93423e32e6
feat(server): step usage counts endpoint
2026-07-21 11:31:05 +01:00
mrhid6
d0442291f5
feat(web): workflow builder autosave with last-saved status
2026-07-21 11:27:55 +01:00
mrhid6
6c5472760b
Merge branch 'feat/adhoc-steps-import-export': ad-hoc steps, step import/export, default steps, auto-derived outputs
Server Deploy / deploy (push) Successful in 1m26s
2026-07-21 10:42:02 +01:00
mrhid6
7c4a676742
fix: inline step secrets + inline input/output display + import body limit
2026-07-21 10:40:45 +01:00
mrhid6
fbda26a188
feat(web): ad-hoc inline steps + import-to-inline in workflow editor
2026-07-21 10:34:51 +01:00
mrhid6
90ce7af769
feat(web): step export/import, sync defaults, auto outputs, default badge
2026-07-21 10:31:28 +01:00