Skip to content
Open
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
215 commits
Select commit Hold shift + click to select a range
bedc24b
wire up husky pre-commit with lint-staged (#391)
juanmrad May 7, 2026
502e6b9
docs: Clean up redundant NCMEC docs (#172)
cassidyjames May 7, 2026
f8764e8
update env example with missing postgresql variables (#413)
juanmrad May 8, 2026
4c90f14
[Kysely] Migrate OrgAPI parent helpers off sequelize (#390)
juanmrad May 11, 2026
0fa12d2
mdbook: use versioned subdirectories for GitHub Pages (#417)
cassidyjames May 11, 2026
34e9c0d
Cleanup CODEOWNERS from non maintainers (#443)
juanmrad May 13, 2026
56a7e32
[Vulnerabilities] minor bumps on packages to solve vulnerabilvility i…
juanmrad May 13, 2026
52718cb
ci: harden GitHub Actions: SHA-pin all uses, --ignore-scripts (#439)
haileyok May 13, 2026
7d4f5c1
fix: Stop server crashes on transient ClickHouse errors and cap Scyll…
juanmrad May 13, 2026
5040548
[Vulnerabilities] bump nodejs-instrumentation otel packages to solve …
juanmrad May 13, 2026
02e4442
client: always use relative GraphQL URL (#455)
cassidyjames May 13, 2026
1226222
client: add missing ESLint ignores for postcss and storybook (#456)
cassidyjames May 13, 2026
683d0fb
[Bug Fix] Fix Submit button getting cut off in MRT and Investigation …
juanmrad May 14, 2026
80a4cab
[NCMEC][Bug Fix] Move NCMEC routing of reports to env config (#474)
juanmrad May 15, 2026
d56a398
fix: make CoopButton links respect disabled state (#472)
davidyshin May 15, 2026
61985f9
Surface users in investigation tool even when no Submitted item avail…
juanmrad May 15, 2026
0ec3523
[fix] Display report information on other reports table (#475)
juanmrad May 16, 2026
424f7a5
[Code simplification] Drop unmaintained graphql-passport server depen…
juanmrad May 18, 2026
f76fac6
client: Strip Cove marketing and tracking from index (#509)
julietshen May 18, 2026
016c75a
docs: Rework for v1 (#338)
cassidyjames May 19, 2026
6f726ca
[NCMEC] Add additionalInfo to reports; fix XML element ordering and N…
juanmrad May 19, 2026
e2b6c5e
[Fix] Provide recovery script on case of accidental queue cleanup (#479)
juanmrad May 19, 2026
75d375a
Fix ncmec wellness permission check (#505)
serendipty01 May 19, 2026
fb4af72
build(deps): bump ws in the root-prod-security group across 1 directo…
dependabot[bot] May 19, 2026
795fdd4
build(deps): bump the nodejs-instrumentation-prod group across 1 dire…
dependabot[bot] May 19, 2026
724c8c2
build(deps): bump facebook/threatexchange/hma in /hma (#425)
dependabot[bot] May 19, 2026
15edc18
docs: explicitly point to GitHub repo/README (#511)
cassidyjames May 19, 2026
4641a00
docs: correct site-url (#510)
cassidyjames May 19, 2026
3c7506c
docs: correct links in user README (#515)
cassidyjames May 19, 2026
6e789fe
[Errors] Surface reviewer-friendly last_error and unblock long-id err…
juanmrad May 19, 2026
645a390
docs: use Funnel Display and Funnel Sans (#525)
cassidyjames May 19, 2026
09fe5f0
docs: add Partial Items API (#523)
cassidyjames May 19, 2026
95bb2d5
Fix hardcoded docs and host URLs (#527)
juanmrad May 20, 2026
4e98ab8
Define AI Code review configurations and instructions (#445)
juanmrad May 21, 2026
03b0415
Fix ESLint warnings for `server` (#331)
pawiecz May 22, 2026
ec90bbf
Refactor dependencies in package.json (#549)
serendipty01 May 22, 2026
9d6bf65
Add IP_ADDRESS scalar to @roostorg/types (v2.1.0) (#559)
juanmrad May 22, 2026
cc6c48e
server: Survive Postgres idle-client errors without crashing the proc…
juanmrad May 23, 2026
8b39956
[143] Disable Point of Interest when Google Maps API Key not enabled …
juanmrad May 26, 2026
5b7c88f
docs: Provide cost/requirements for integrations (#595)
cassidyjames May 26, 2026
ede4414
docs: Correct API key scoping in architecture doc (#594)
cassidyjames May 26, 2026
04f8e7c
server: Add end-to-end item submission integration test and harness (…
julietshen May 27, 2026
8a6ecb8
Add OpenAI image moderation signals via omni-moderation-latest (#518)…
julietshen May 27, 2026
6f676dc
[Types] Rename published package to @roostorg/coop-types (#602)
juanmrad May 27, 2026
1da2546
Add IP Address schema field role so items can be tagged as expected (…
juanmrad May 27, 2026
7398937
[Coop-Types] Migrate to newly created package (#606)
juanmrad May 27, 2026
c51663c
Add MEDIA scalar to @roostorg/coop-types (v2.3.0) (#605)
julietshen May 28, 2026
c1a04a7
docs: Add database settings to deployment guide (#627)
cassidyjames May 28, 2026
3290512
docs: split NCMEC into user and integration guides (#526)
cassidyjames May 28, 2026
6b28c0b
Fix partial item rejects of extra top level items (#601)
juanmrad May 29, 2026
58923ed
fix(createOrg): order FK-dependent inserts and seed built-in actions …
julietshen May 29, 2026
071a4b2
Add root-level create-org proxy to match AGENTS.md (#537)
julietshen May 29, 2026
58e5831
Wire MEDIA scalar through server + client UI (#632)
julietshen May 29, 2026
c5e4faf
Fix MRT crash when partialItems returns empty items array (#645)
juanmrad May 29, 2026
b98d11b
Bump fuzzball to ^2.2.6 (now MIT-licensed) (#642)
julietshen May 29, 2026
d83257b
build(deps): bump brace-expansion (#554)
dependabot[bot] May 29, 2026
f3d3dbc
build(deps): bump facebook/threatexchange/hma in /hma (#568)
dependabot[bot] May 30, 2026
99c7e0f
CHANGELOG: prep release notes (#654)
cassidyjames Jun 1, 2026
994826f
Bump .nvmrc to 24.16.0 (matches in-flight Docker base-image bump) (#656)
julietshen Jun 1, 2026
8b25fd2
[468][592] Populate NCMEC reports with the `ipAddress` schema field r…
juanmrad Jun 1, 2026
edf3f2b
items/async: fail fast on Redis outage (closes #647) (#653)
julietshen Jun 1, 2026
dc279b7
[Permissions] Capability-based authz refactor. gate org secrets, dele…
juanmrad Jun 2, 2026
2c5b233
Add issue forms (#674)
cassidyjames Jun 2, 2026
b725930
Enable User Strikes dashboard + fix UX issues blocking v1 (#600)
julietshen Jun 3, 2026
7d8c17b
[280] Publish Docker Images (#665)
calebmcquaid Jun 3, 2026
1c35a1a
Add #341 report-flow integration test (#640)
julietshen Jun 3, 2026
0b489aa
fix: bump docker GH Action version (#678)
calebmcquaid Jun 3, 2026
da5ee75
Add #340 rule-change integration test (#637)
julietshen Jun 3, 2026
ab77888
Server-side enforcement of requires_policy_for_decisions (#533)
julietshen Jun 3, 2026
fac142b
Fix MEDIA fields rendering as links instead of images in manual revie…
juanmrad Jun 3, 2026
9fd5862
docs: add intention statement to README (#680)
julietshen Jun 3, 2026
43dd931
docs: update for v1 (#693)
cassidyjames Jun 4, 2026
c0a93b4
package.json: Move root dependencies to devDependencies (#691)
cassidyjames Jun 4, 2026
5230f4f
ci: Add License Check workflow (#692)
cassidyjames Jun 4, 2026
85ebfe4
docs: expand deployment guide for self-hosting (#675)
ded-furby Jun 4, 2026
45e529a
Fix NCMEC MRT gallery for MEDIA scalar fields (#694)
juanmrad Jun 4, 2026
b29242f
Remove unauthenticated org-data leaks and unused public mutations (#699)
juanmrad Jun 4, 2026
9ff7ea5
build(deps-dev): bump vitest from 4.0.18 to 4.1.0 in /client (#664)
dependabot[bot] Jun 4, 2026
3ded7b1
chore: remove deprecated @graphiql/create-fetcher (#702)
JagadeeshChandra12 Jun 4, 2026
3cecb32
docs: Add Musubi as adopter to README (#700)
cassidyjames Jun 4, 2026
db16f8c
docs: Iterate on deployment and Docker docs (#705)
cassidyjames Jun 4, 2026
fce42bd
build(deps): bump react-router (#695)
dependabot[bot] Jun 4, 2026
e1be9c1
[Kysely] Switch lint enforcement from Sequelize to Kysely and added t…
juanmrad Jun 5, 2026
75a943c
test: use makeKyselyTransactionWithRetry in rule-change integ test (#…
julietshen Jun 5, 2026
5c246ac
Server-side enforcement of requires_decision_reason (#636)
julietshen Jun 5, 2026
0884cf8
[404]Add "Invalidate reports from a reporter" action for MRT (#644)
juanmrad Jun 7, 2026
ef12e7a
[docker] Create docker image for migrations scripts to run (#708)
juanmrad Jun 7, 2026
4624904
Expose db settings (#709)
calebmcquaid Jun 8, 2026
69d23a4
Make sidebar Settings gear toggle the submenu (closes #419) (#722)
julietshen Jun 8, 2026
aa430b4
Disable reporting rules from being turned on from UI (#723)
juanmrad Jun 8, 2026
2a67b91
Community links and information on server startup (#724)
juanmrad Jun 8, 2026
5e21eb5
docs: Organization Settings and User Strikes guides (#725)
julietshen Jun 8, 2026
cac89b8
client: stop rendering User Score in MRT and Investigation (#596) (#726)
julietshen Jun 8, 2026
d97bde6
[NCMEC] Allow to configure min images to review for NCMEC report (#710)
juanmrad Jun 9, 2026
1bddb17
Show related item's name instead of its raw ID and fix duplicate rela…
juanmrad Jun 9, 2026
76aafe6
Update integrationManifests.ts with OpenAI Model Card (#739)
ludovic-openai Jun 9, 2026
f61f3c8
Label the OpenAI integration as "OpenAI Moderation API" (#742)
julietshen Jun 9, 2026
2d80529
Skip require-reason/policy checks for NCMEC jobs (closes #736) (#737)
julietshen Jun 9, 2026
f8d9b49
Remove GDPR delete endpoint, table, and docs (closes #336) (#728)
julietshen Jun 9, 2026
d928037
Fix release of docker image for tagged release and allow manual relea…
juanmrad Jun 9, 2026
e1bc79e
add .github AGENTS.md (#731)
taobojlen Jun 10, 2026
dbd71b8
[Bug] Fix vertical bug issue 735 (#740)
juanmrad Jun 11, 2026
b10a268
chore: switch postgres to official postgres:15.18 image (#720)
serendipty01 Jun 11, 2026
3b76de6
Only run License Check when we should check licenses (#745)
juanmrad Jun 11, 2026
c8df1ef
docs: update for 1.0.1 (#748)
cassidyjames Jun 11, 2026
43ddfe7
docs: remove User Scores API; add User Strikes to Actions (#756)
cassidyjames Jun 11, 2026
f71e236
docs: Remove duplicate settings page (#749)
cassidyjames Jun 11, 2026
0604b5d
[591][Feature] Add IP address lookups for investigations (#754)
juanmrad Jun 12, 2026
07bec5a
Set redis user and pw in no-cluster mode (#747)
dom-notion Jun 12, 2026
0a742ca
Setup Knip & remove unused server dependencies (#734)
taobojlen Jun 12, 2026
83326d4
Copy Lua assets when starting the dev server (#764)
taobojlen Jun 12, 2026
c888fc2
ci: standardize change detection on dorny/paths-filter (#733)
taobojlen Jun 12, 2026
95761ec
[Feature] Include creator in action webhook callback (#755)
juanmrad Jun 12, 2026
e5a9dd8
fix: gate job view iframe on content URL pattern (#771)
cassidyjames Jun 13, 2026
87e5b76
[Bug] Fix duplicate recent decisions on select latest (#774)
juanmrad Jun 15, 2026
f396968
ci: use zizmor to lint for CI security issues (#721)
taobojlen Jun 15, 2026
46efb16
Add missing @parcel/watcher dev dependency (#785)
reitblatt Jun 16, 2026
f226db0
(auth) Invalidate sessions on password change (#778)
taobojlen Jun 16, 2026
6562d65
ci: typecheck db and migrator in CI (#782)
taobojlen Jun 16, 2026
d1be81b
auth: fix SAML cross-org authentication bypass (#783)
taobojlen Jun 16, 2026
a72587c
(manual review) Split require-decision-reason into action vs ignore s…
taobojlen Jun 16, 2026
c92c30f
ci: checkout repo in changes job so paths-filter works on push (#794)
taobojlen Jun 16, 2026
97e617e
docs: tell agents to use the PR template (#800)
taobojlen Jun 16, 2026
334decb
fix: render content URL directly in iframe when no content proxy is s…
taobojlen Jun 16, 2026
4e7c0ae
[Feature] Add decision reason to recent decision view as well as csv …
juanmrad Jun 16, 2026
2fe3c2a
Add CLAUDE.md symlinks to AGENTS.md (#797)
taobojlen Jun 16, 2026
2c84a32
ci: update all actions to Node 24 runtime (#795)
taobojlen Jun 16, 2026
5bc204c
[Fix] Potential injection and safety consistency (#773)
juanmrad Jun 17, 2026
6bcec54
Fix email comma bug (#786)
reitblatt Jun 17, 2026
4283276
fix: don't hide empty threads (#804)
jess-upscrolled Jun 18, 2026
10f26ff
refactor: migrate CoreSignal to GQLSignal, remove redundant client ty…
serendipty01 Jun 18, 2026
beaaaf7
Fix clickhouse container_name conflict across git worktrees (#809)
reitblatt Jun 19, 2026
56a008f
Fix AGENTS.md first-run setup instructions (#814)
reitblatt Jun 20, 2026
81f5f40
migrator: set up knip (#762)
taobojlen Jun 22, 2026
cbac140
client: set up knip and remove unused dependencies (#760)
taobojlen Jun 22, 2026
f190a98
db: set up knip and remove unused dependencies (#761)
taobojlen Jun 22, 2026
ca3c06c
test: isolate server tests via transaction rollback (#732)
taobojlen Jun 22, 2026
d4f01e0
[Vuln] Fix vulnerabilities by upgrading packages (#813)
juanmrad Jun 22, 2026
8fc5457
Add per-queue "clear other reports for a user" action sweep (#817)
juanmrad Jun 23, 2026
b2b046c
[Fix] Ensure sweep also handles related items (#835)
juanmrad Jun 23, 2026
333b758
chore: apply prettier globally and enforce it in CI (#834)
taobojlen Jun 23, 2026
25d85c2
ci: make image pulls resilient to Docker Hub flakiness (#824)
taobojlen Jun 23, 2026
ab1ed56
[791] Extend parameterized actions to proactive rules and user strike…
juanmrad Jun 23, 2026
dfa5d71
remove PR checklist action in favor of PR template (#719)
serendipty01 Jun 24, 2026
3684882
ci: run server integration tests in CI (#827)
taobojlen Jun 24, 2026
db711d6
prettier: Ignore PR template to not break checklist formatting (#838)
cassidyjames Jun 24, 2026
476e8d4
tests: set up basic playwright E2E test (#823)
taobojlen Jun 24, 2026
3ed3bd4
fix: replace actorNote developer identifier in moderator textarea pla…
ltianyi992 Jun 24, 2026
e5dd46f
User Strikes: Add to Review Console jobs and item investigation view …
cassidyjames Jun 24, 2026
34530f4
fix: close express-session store on api shutdown (#825)
taobojlen Jun 24, 2026
0de640d
ncmec: add `email` schema field role for reported user (closes #839) …
julietshen Jun 26, 2026
a42369a
Add EMAIL_ADDRESS scalar to @roostorg/coop-types (v2.4.0) (#841)
julietshen Jun 26, 2026
03ace58
client: truncate queue ID column in ManualReviewQueuesDashboard (#849)
julietshen Jun 26, 2026
ae9b952
ncmec: tighten email field role from STRING to EMAIL_ADDRESS scalar (…
julietshen Jun 29, 2026
4a11305
ncmec: extract pure helpers from submitReport for testability (#853)
julietshen Jun 29, 2026
6a482f1
ncmec: auto-populate priorCTReports, originalFileName, fileRelevance …
julietshen Jun 29, 2026
dce048c
CHANGELOG: Document unreleased changes in main (#865)
cassidyjames Jun 29, 2026
6df2128
PR template: add checkbox for updating CHANGELOG/docs (#868)
cassidyjames Jun 29, 2026
dbc0682
ncmec: fix fileDetails.ipCaptureEvent XSD ordering (closes #856) (#869)
julietshen Jun 30, 2026
da877e7
test: handle concurrent queries in the transactional test harness (#826)
taobojlen Jun 30, 2026
bd8fc6c
fix(mrt): scope queue mutations to the correct org (#872)
taobojlen Jun 30, 2026
a612071
CHANGELOG: finalize 1.0.2 release notes (#876)
cassidyjames Jun 30, 2026
2739d56
feat(concord): route room reports and staff decisions through Coop
rabble Oct 14, 2026
ec85886
feat(moderation): show room evidence and independent delivery outcomes
rabble Oct 14, 2026
30e8eb3
test(moderation): use the configured type import convention
rabble Oct 14, 2026
2d85e77
fix(concord): preserve staff intent across retries and confirm guild …
rabble Oct 14, 2026
9a872e0
build(concord): restore source images and browser test dependencies
rabble Oct 14, 2026
fb030bb
fix(concord): validate browser dependencies and enforce moderation ch…
rabble Oct 14, 2026
98d73d0
fix(moderation): preserve room retries after JSON storage
rabble Oct 14, 2026
33c1a10
fix(concord): retain related room actions until delivery acceptance
dcadenas Oct 14, 2026
752ad65
fix(concord): reject invalid intent and preserve global retry recovery
dcadenas Oct 15, 2026
80483a8
fix(concord): preserve retries for ignored room reports
dcadenas Oct 15, 2026
3e795c8
fix(concord): validate staff authority before recording decisions
dcadenas Oct 15, 2026
668c149
fix(moderation): require reasons for room actions
rabble Oct 15, 2026
58a0576
test(moderation): reuse generated review fragments
rabble Oct 15, 2026
c96a10a
fix(mrt): preserve related action server scope through delivery
dcadenas Oct 15, 2026
38d26a9
fix(mrt): fail closed when room delivery configuration disappears
dcadenas Oct 15, 2026
4776be4
fix(moderation): keep room decision context out of global webhooks
dcadenas Oct 16, 2026
f346726
fix(mrt): retain unaccepted room decisions when dequeuing again
dcadenas Oct 16, 2026
d887f76
fix(mrt): resume recorded room intent when another reviewer dequeues
dcadenas Oct 16, 2026
86782b3
fix(concord): preserve the latest recorded membership decision
rabble Oct 17, 2026
94d8721
fix(concord): settle refused intents and run database checks in CI
rabble Oct 17, 2026
7226ac5
fix(concord): reject invalid membership configuration before recording
dcadenas Oct 18, 2026
3cfca02
fix(concord): recover fenced intents without relabeling legacy ops
dcadenas Oct 18, 2026
51886e5
fix(concord): flag cached legacy status for reconciliation
dcadenas Oct 18, 2026
3acf297
fix(concord): recover definitively rejected first attempts safely
NotThatKindOfDrLiz Oct 18, 2026
a497af2
test(concord): reuse generated mutation in retry transport coverage
NotThatKindOfDrLiz Oct 18, 2026
5772e7a
fix(concord): bind success cleanup to its room operation
dcadenas Oct 18, 2026
78f06e4
ci(concord): run room recovery and transport regressions
rabble Oct 18, 2026
65d915b
feat(concord): fence retired manual operations with durable receipts
rabble Oct 19, 2026
b433578
feat(concord): expose durable room recovery and lifecycle APIs
rabble Oct 19, 2026
f220c08
build(chat): prepare complete reviewed source artifact sets
rabble Oct 19, 2026
299254c
fix(concord): return current state in retirement conflicts
rabble Oct 19, 2026
1faab63
test(concord): exercise durable recovery in existing fixtures
rabble Oct 19, 2026
f2e1076
fix(build): verify OCI image archives and daemon handles
rabble Oct 19, 2026
b105738
fix(build): bind observed daemon handles to saved artifacts
rabble Oct 19, 2026
a23d660
fix(concord): expose send for registered unattempted receipts
dcadenas Oct 19, 2026
08c346e
fix(concord): prepare durable receipts before manual room actions
rabble Oct 19, 2026
c75930a
test: constrain valid datetime arbitrary to serializable dates
rabble Oct 19, 2026
e629c17
fix(concord): retain durable removal completion and retired closure
rabble Oct 19, 2026
53d6fc0
fix(concord): release matching retired browser receipts
dcadenas Oct 19, 2026
6a7be9f
fix(concord): stop recorded message removals before acceptance
rabble Oct 20, 2026
480cc24
test(concord): cover stopped removal settlement and lookup limits
rabble Oct 20, 2026
5a8975f
fix(concord): locate recorded recovery stops by primary decision
rabble Oct 20, 2026
1af6e0a
test(concord): mark asynchronous room resolver fixture explicitly
rabble Oct 20, 2026
5cb425a
fix(concord): document and derive audited MRT stop inputs
dcadenas Oct 20, 2026
ac3f448
fix(chat): align room moderation with Coop 1.0.2
rabble Oct 21, 2026
a539127
style(chat): normalize integration hook output
rabble Oct 21, 2026
c1a6b98
fix(chat): preserve review controls and response mock contracts
rabble Oct 21, 2026
2950997
fix(mrt): serialize room registration with queue removal
rabble Oct 21, 2026
4b5e3c7
fix(mrt): reuse queue cache across room submissions
rabble Oct 21, 2026
8b312e1
fix(migrator): package installed migration runtime at build time
rabble Oct 21, 2026
3fe3b9d
test(runtime): validate compiled images on full migration schemas
rabble Oct 21, 2026
e9398b8
fix(db): initialize missing MRT maintenance cursor
rabble Oct 21, 2026
62f6522
fix(ci): handle large checklists and pin workflow actions
rabble Oct 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .github/workflows/apply_pr_checks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,9 @@ jobs:
uses: actions/checkout@v4

- name: Check Divine Coop setup guards
run: bash divine/test-coop-setup-guards.sh
run: |
bash divine/test-coop-setup-guards.sh
bash divine/test-coop-setup-concord.sh

# jobs have to be defined in the root workflow file in order to be marked as
# 'Required Checks' in GitHub CI
Expand Down Expand Up @@ -176,6 +178,9 @@ jobs:
- name: Lint client
run: docker compose run --rm --quiet-pull client npm run lint

- name: Test room moderation UI
run: docker compose run --rm --quiet-pull client npm test -- --run src/components/ConcordEnforcementStatus.test.tsx src/components/DiscordGuildConfirmation.test.tsx src/components/roomOperation.test.ts src/webpages/dashboard/mrt/manual_review_job/ManualReviewJobReview.test.tsx

- name: Build client
run: docker compose run --rm --quiet-pull client npm run build

8 changes: 4 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
# Docker's cache will let us skip installs when the dependencies haven't changed.
# We build on debian because it has fewer dependency issues than Alpine for our
# native modules, and we don't really care about the larger image size.
FROM node:24.14.1-bullseye-slim AS server_base
FROM node:24.14.1-bookworm-slim@sha256:b506e7321f176aae77317f99d67a24b272c1f09f1d10f1761f2773447d8da26c AS server_base
WORKDIR /app
RUN apt-get update && apt-get install -y --no-install-recommends git && rm -rf /var/lib/apt/lists/*

Expand All @@ -19,9 +19,9 @@ FROM server_base AS build_backend
RUN npm run build

# make a shared layer that can be the base for worker and api images.
FROM node:24.14.1-bullseye-slim AS backend_base
FROM node:24.14.1-bookworm-slim@sha256:b506e7321f176aae77317f99d67a24b272c1f09f1d10f1761f2773447d8da26c AS backend_base
WORKDIR /app
RUN apt-get update && apt-get install dumb-init
RUN apt-get update && apt-get install -y --no-install-recommends dumb-init && rm -rf /var/lib/apt/lists/*
COPY --from=build_backend ["/app/package.json", "/app/package-lock.json", "./"]
RUN npm ci --omit=dev
COPY --from=build_backend /app/transpiled ./
Expand Down Expand Up @@ -49,7 +49,7 @@ CMD ["node", "bin/run-worker-or-job.js"]
# The K8s db-migrate Job provides the command at runtime (e.g.,
# npm run db:update -- --env staging --db api-server-pg
# ). Falls back to --help if no command is given.
FROM node:24.14.1-bullseye-slim AS build_migrator
FROM node:24.14.1-bookworm-slim@sha256:b506e7321f176aae77317f99d67a24b272c1f09f1d10f1761f2773447d8da26c AS build_migrator
WORKDIR /app
RUN groupadd -r migrator && useradd -r -g migrator -u 1001 migrator
ENV NPM_CONFIG_CACHE=/tmp/.npm
Expand Down
2 changes: 1 addition & 1 deletion client/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM node:24.14.1-bullseye-slim AS client_base
FROM node:24.14.1-bookworm-slim@sha256:b506e7321f176aae77317f99d67a24b272c1f09f1d10f1761f2773447d8da26c AS client_base
WORKDIR /app

# ARG is used to get the release id into the ENV from the command line, and then
Expand Down
Loading
Loading