Alex Holliday
d1b6d08c73
add tests
2026-06-16 10:50:39 -07:00
Alex Holliday
2d68e96782
drop jobs in migration
2026-06-16 10:50:29 -07:00
Alex Holliday
306f2a60a2
update tests
2026-06-15 12:22:55 -07:00
Alex Holliday
abf6dc2908
single worker ID
2026-06-15 12:21:36 -07:00
Alex Holliday
7ce6068757
fix migration
2026-06-15 12:12:14 -07:00
Alex Holliday
a7d9bb822e
add tests, fix failing tests
2026-06-15 12:05:31 -07:00
Alex Holliday
142ecaaf8b
handle renewing locks for long running jobs
2026-06-15 12:05:15 -07:00
Alex Holliday
90bbc764fc
readd queue-worker domain, add heartbewat to db-queue
2026-06-15 11:26:49 -07:00
Alex Holliday
ae4c433246
add a feature flag to toggle primary worker processing jobs or not
2026-06-15 11:02:46 -07:00
Alex Holliday
d2461ef118
remove old queues
2026-06-15 10:39:48 -07:00
Alex Holliday
47162f2064
add a batch claim method
2026-06-12 16:04:31 -07:00
Alex Holliday
8b9c41464a
dbQueueWorker
2026-06-12 15:43:36 -07:00
Alex Holliday
51b6ec1751
add check producer and evaluator
2026-06-12 12:36:50 -07:00
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
Alex Holliday
eff4f8ad69
fix method name
2026-06-11 15:20:13 -07:00
Alex Holliday
bca902471d
update tests
2026-06-11 15:19:53 -07:00
Alex Holliday
1b3f2f0365
add toStatusResponse to service, add findUnevaluated to repo
2026-06-11 15:19:45 -07:00
Alex Holliday
be12991997
add tests
2026-06-11 14:19:21 -07:00
Alex Holliday
54596fe776
add mongodb-memory-server for testing
2026-06-11 14:19:14 -07:00
Alex Holliday
8d637dbcac
update validation
2026-06-11 14:18:56 -07:00
Alex Holliday
771fd5b50f
add migration for lastEvaluatedAt backfill
2026-06-11 14:18:44 -07:00
Alex Holliday
8dedf2a742
add last evaluated at field
2026-06-11 14:18:32 -07:00
Alex Holliday
c882daf000
add job domain
2026-06-11 14:18:21 -07:00
Alexander Holliday
1aa7ae8f11
Merge pull request #3715 from Cincinnatus101010/feat/status-page-custom-domain
...
feat: custom domain support for published status pages
2026-06-11 12:31:20 -07: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
Alexander Holliday
2f22a52116
Merge commit from fork
...
Advisory fix 1
2026-06-11 10:44:42 -07:00
Ian Troisi
8af13b04ec
fix: derive custom domain URL protocol from client host
...
Use the configured client host protocol instead of hardcoding https for
custom domain status page links.
2026-06-11 13:43:19 -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
Alexander Holliday
20863fbce7
Merge pull request #3725 from bluewave-labs/feat/decouple-worker
...
feat: decouple worker
2026-06-10 13:24:11 -07: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
Alexander Holliday
7ee30e12f5
Merge pull request #3724 from bluewave-labs/chore/worker-reorg
...
chore: worker reorg
2026-06-10 09:34:31 -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
25d8839441
feat: render admin status page preview in an iframe
...
The preview previously rendered the themed status page inline in the
admin document, so document-global concerns leaked in both directions:
custom CSS spilled into the admin UI and the theme body painting never
showed. Pointing the BrowserFrame at the real public URL in an iframe
isolates the CSS completely and makes the preview pixel-identical to
what visitors see. Auth for unpublished pages keeps working because the
same-origin iframe shares localStorage and the API client reads the
token from the rehydrated store.
2026-06-10 17:02:18 +02: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
Alexander Holliday
c8c4bac2c7
Merge pull request #3719 from bluewave-labs/chore/organization
...
chore: organization
2026-06-09 12:40:06 -07:00
Alex Holliday
9fecfa562f
update claude.md
2026-06-09 12:36:38 -07:00