Buco7854
6165ae60e6
Merge branch 'develop' of https://github.com/bluewave-labs/checkmate into feat/customcss-status-page
...
# Conflicts:
# server/src/api/routes/statusPageRoute.ts
2026-06-12 16:01:03 +00:00
Buco7854
69e142f711
fix: restrict status page mutations to admins and superadmins
...
Creating, updating and deleting status pages was only guarded by
verifyJWT, so any authenticated team member could set fields including
the new customCSS via a direct API call. The admin gating existed only
in the client UI (hidden buttons), and the create/configure routes had
no guard, so the form was reachable by URL. Enforce the role at the API
with isAllowed, matching the monitor routes.
2026-06-12 15:43:58 +00:00
Ian Troisi
517139cbf4
fix: cache negative custom domain CORS lookups
...
Use a shorter TTL for rejected origins so unknown domains do not hit
the database on every cross-origin request.
2026-06-11 14:48:31 -04:00
Ian Troisi
ef049b6521
fix: resolve CORS TypeScript error and format server files
...
Type defaultCorsOptions as CorsOptions so allowedHeaders is compatible
with the cors middleware. Format files from develop merge for CI.
2026-06-11 13:55:10 -04:00
Ian Troisi
33f8641f3a
Merge branch 'develop' into feat/status-page-custom-domain
2026-06-11 13:54:27 -04:00
Alex Holliday
ac77216f07
add middleware tests
2026-06-11 10:42:15 -07:00
Alex Holliday
a43363ebfc
apply middleware
2026-06-11 10:42:05 -07:00
Alex Holliday
0ca738b080
add an upload type with size constraints and acceptable file types
2026-06-11 10:41:53 -07:00
Alex Holliday
091c36cbf3
create upload middleware
2026-06-11 10:40:59 -07:00
Ian Troisi
120708ed47
perf: cache custom domain CORS origin lookups
...
Avoid hitting the database on every cross-origin request by caching
published custom domain checks for five minutes.
2026-06-11 13:15:02 -04:00
Ian Troisi
6a1ab622b3
fix: scope custom domain CORS to public status page routes
...
Only allow registered custom domain origins on public GET/OPTIONS status
page API routes instead of the entire application API surface.
2026-06-11 13:15:02 -04:00
Ian Troisi
0aef8b652f
fix: use partial index for status page customDomain
...
Replace the sparse unique index with a partial index so multiple status
pages without a custom domain no longer collide on null values.
2026-06-11 13:14:52 -04:00
Alex Holliday
fa7eaa4788
update tests
2026-06-10 13:13:01 -07:00
Alex Holliday
ee9c08b1bb
extract reactors and pipeline
2026-06-10 13:12:51 -07:00
Alex Holliday
c5f57eda62
update tests
2026-06-10 09:30:24 -07:00
Alex Holliday
2bf3c08f3c
reorg jobqueue to worker
2026-06-10 09:30:14 -07:00
Ian Troisi
187c8eaba1
chore: format openapi.json with prettier
2026-06-10 11:03:34 -04:00
Buco7854
0f4240d3db
feat: cap custom CSS length and add validation tests
...
Bound customCSS to 100000 characters on both the client schema and the
server body validation (the server is the enforcement boundary; multer's
1MB field cap was the only limit), regenerate the OpenAPI spec, and add
a validation test suite covering acceptance, clearing, the length cap,
and type rejection.
2026-06-10 17:02:17 +02:00
Ian Troisi
a37bc63f31
Merge branch 'develop' into feat/status-page-custom-domain
...
Resolve conflicts from server reorganization while preserving custom
domain support for published status pages.
2026-06-10 10:55:59 -04:00
Buco7854
73f95ac8e1
feat: complete custom CSS support for status pages
...
The customCSS field existed on the model, types, and form schema but was
never editable, sent to the API, or rendered. Wire it end to end:
- Accept customCSS in the create/update status page body validation and
regenerate the OpenAPI spec
- Add a Custom CSS editor (multiline field) to the status page form and
include the value in the submitted form data
- Support multiline mode in the shared TextInput component
- Inject the saved CSS via a style tag when rendering the status page
2026-06-10 14:16:27 +00:00
Alex Holliday
692d4d89d6
update configs
2026-06-09 12:35:57 -07:00
Alex Holliday
f1b104b78d
ignore unknown on format
2026-06-09 12:35:19 -07:00
Alex Holliday
3c2b571313
update openapi docs
2026-06-09 12:34:57 -07:00
Alex Holliday
abec4e6c70
update tests
2026-06-09 12:34:30 -07:00
Alex Holliday
d022f7d849
reorg to domain and api
2026-06-09 12:34:15 -07:00
Alexander Holliday
0fb210e9e1
Merge pull request #3713 from Rabson/fix/diagnostics-totalsize-undefined
...
fix: (diagnostics) derive Mongo totalSize when dbStats omits it (Atlas shared tier)
2026-06-09 09:09:47 -07:00
Alexander Holliday
ce4cb63035
Merge pull request #3690 from harsh-aghara/feat/accept-status-codes-backend
...
Add customUpCodes support for HTTP monitors (Backend)
2026-06-08 12:04:42 -07:00
harsh-aghara
f637b01631
refactor: introduced helper method to remove redundant code
2026-06-08 17:30:26 +05:30
Ian Troisi
e390bd764f
Format openapi.json for CI format-check.
2026-06-07 22:42:58 -04:00
Ian Troisi
30e8cfc9ec
Add custom domain support for published status pages.
...
Fixes #3647
2026-06-07 22:37:24 -04:00
Alex Holliday
9a85389b8c
update tests
2026-06-07 10:16:31 -07:00
Alex Holliday
19b873ca87
convert findByIds to aggregate pipeline to include uptime percentage
2026-06-07 10:02:25 -07:00
Rabson
6a566c3693
fix(diagnostics): derive Mongo totalSize when dbStats omits it
...
MongoDB Atlas shared/free tiers return a legacy dbStats shape that omits
`totalSize` (while still returning storageSize/indexSize). diagnosticService
passed that undefined straight through, so the Diagnostics UI crashed with
"Expected a finite number, got undefined".
Derive totalSize (storageSize + indexSize) at the DB and per-collection level
so it always satisfies the non-optional `totalSize: number` type. Confirmed it
is not a version removal (stock mongo:8 returns totalSize) nor a permissions
issue (missing even with atlasAdmin). Adds unit tests for the derivation.
2026-06-07 08:58:09 +08:00
Alex
395b7fbe2a
add uptimetime stats method and aggregation
2026-06-06 16:08:00 -07:00
Alex Holliday
a19479b578
fix migration race condition
2026-06-05 11:58:00 -07:00
Alexander Holliday
8dbe42288b
Merge pull request #3684 from jhcpeixoto/feat/ntfy-notifications
...
feat: add ntfy notification support
2026-06-05 09:35:04 -07:00
harsh-aghara
d2c13fac5a
Merge remote-tracking branch 'upstream/develop' into feat/accept-status-codes-backend
...
# Conflicts:
# server/src/service/infrastructure/network/HttpProvider.ts
2026-06-05 00:58:35 +05:30
harsh-aghara
dd16ac060a
fix: run advanced matcher on HTTP errors with custom up codes
...
When customUpCodes mark an HTTPError as up, parse the response body, apply advancedMatcher.validate, and set status to statusUp && matchResult.ok. Return parsed payload and extracted values to match the success path.
2026-06-05 00:35:30 +05:30
harsh-aghara
5628c202f7
refactor: extract isStatusUp utility to decouple from got's response.ok and modified utils test accordingly
2026-06-04 22:43:43 +05:30
Alex Holliday
3c85b36b1b
add pagnation validation to queue query
2026-06-03 13:30:03 -07:00
Alex Holliday
4729863826
add tests
2026-06-03 13:29:03 -07:00
Alex Holliday
174fb048f7
implement pagination, update metrics to use scheduler's aggregation
2026-06-03 13:28:53 -07:00
Alex Holliday
63fd3f6afd
bump scheduler
2026-06-03 13:28:25 -07:00
Alex Holliday
c3944f2fe7
Add pagination to controller
2026-06-03 13:28:15 -07:00
Alex Holliday
5e225f9173
update tests
2026-06-03 11:51:42 -07:00
Alex Holliday
d2d110fcd5
reuse http agent, use firstByte instead of total
2026-06-03 11:48:59 -07:00
harsh-aghara
372fc9869b
refactor(monitor): address PR feedback for customUpCodes
...
Add HttpStatusCode types and simplify provider logic
2026-06-03 23:39:26 +05:30
Alex Holliday
b8a44f09fc
update tests
2026-06-03 11:04:13 -07:00
Alex Holliday
f85f1aa1d1
add processEVery
2026-06-03 11:02:56 -07:00
Alex Holliday
707b8f903b
add bulk ops for inserting monitors, set primary concurrency to 0, handles scheduling only
2026-06-03 11:00:40 -07:00